diff --git a/data/day20/example01.txt b/data/day20/example01.txt new file mode 100644 index 0000000..5cbf3d9 --- /dev/null +++ b/data/day20/example01.txt @@ -0,0 +1,7 @@ +1 +2 +-3 +3 +-2 +0 +4 \ No newline at end of file diff --git a/data/day20/input.txt b/data/day20/input.txt new file mode 100644 index 0000000..acb530d --- /dev/null +++ b/data/day20/input.txt @@ -0,0 +1,5000 @@ +-2420 +-4714 +4824 +-8212 +3533 +6535 +-4665 +1908 +-4128 +9266 +-6213 +9394 +-7999 +6199 +-6905 +-6728 +1490 +-6630 +-3061 +3216 +1119 +-6439 +-5156 +6868 +-3201 +5921 +-7940 +-8521 +-9130 +-1430 +6557 +-559 +9032 +-7885 +6399 +197 +9833 +-3060 +9843 +-9442 +6451 +8625 +-3283 +1316 +2949 +-8375 +8381 +-1943 +-1723 +353 +6718 +-956 +-4416 +-1784 +-3423 +5647 +-5537 +4166 +-8864 +-4028 +3145 +2907 +-4352 +5353 +-5355 +7866 +1604 +1792 +-8875 +4922 +-5011 +9783 +-2975 +-8105 +8159 +426 +8870 +8197 +-5860 +-7868 +190 +5276 +855 +1355 +-1480 +5724 +6960 +0 +7272 +9108 +9466 +8453 +-7699 +-200 +5333 +-6095 +7949 +-5377 +-9978 +-6701 +3533 +4802 +-6515 +-4171 +-6794 +9980 +3907 +9224 +-2951 +4333 +-2174 +7460 +-9341 +2407 +-343 +-819 +-6043 +-8858 +5637 +9805 +3671 +8410 +7255 +3480 +3247 +5470 +-1766 +-8281 +1359 +950 +7805 +-1214 +-3231 +-1899 +9600 +-8505 +2050 +-5112 +-2172 +-2957 +-5994 +5136 +2363 +9804 +-1348 +-3861 +-1637 +4499 +7475 +5025 +1293 +4537 +6623 +-121 +4020 +4682 +1673 +7907 +-8224 +-2009 +7015 +3681 +1859 +-5342 +-6374 +-5069 +-3804 +-1323 +-716 +-2295 +8974 +-7675 +-5422 +5434 +3309 +-3989 +-6925 +6804 +-6338 +662 +4582 +1161 +-7723 +5690 +3447 +7147 +-3340 +7879 +9372 +-6896 +-5341 +-4214 +-9346 +4840 +-9351 +4665 +8471 +3604 +1859 +-8285 +7619 +1991 +9732 +-2302 +-9360 +2341 +6383 +-7666 +-3835 +2139 +-4541 +9518 +7118 +3583 +6140 +-3162 +-8703 +-6998 +-5443 +-225 +7811 +-6692 +4645 +9196 +-7459 +8692 +-2396 +-3507 +3439 +5316 +3196 +3415 +-94 +-9856 +-8721 +2776 +-5885 +474 +8093 +3513 +1912 +6877 +2836 +6079 +7510 +9743 +7189 +-773 +1831 +-8259 +8596 +-9276 +8176 +-4001 +6999 +9031 +2303 +-8372 +-2157 +707 +-6082 +-9346 +2311 +1998 +-8369 +-7166 +3660 +-7877 +-9967 +-8785 +-7226 +-9100 +9933 +-531 +-2997 +9617 +-9066 +-9998 +2312 +-8492 +1943 +-2021 +9296 +8447 +-6769 +-7116 +-4609 +-761 +-581 +2358 +-7033 +725 +7423 +-5339 +-6790 +4374 +5236 +7807 +-2391 +1336 +-1537 +302 +-5312 +2877 +-4823 +-799 +-5419 +5275 +-6203 +9743 +2433 +-8867 +-7049 +7053 +3848 +-5699 +6381 +-851 +-4872 +-7267 +-456 +-9026 +-8259 +9307 +-4962 +-1660 +5041 +6712 +-5555 +-3289 +6312 +6659 +-5754 +2129 +-7357 +-3431 +8799 +7882 +2139 +8795 +-4416 +-9481 +5455 +5906 +6426 +-9100 +-3118 +-2159 +-1725 +5182 +4592 +-2392 +-6269 +142 +-7049 +8717 +-7049 +4905 +-9221 +1557 +3420 +696 +-3776 +-1460 +-312 +-8827 +-2438 +-6240 +4186 +-3965 +-7807 +-3503 +4534 +-4937 +-3567 +-995 +5041 +9780 +5901 +-6861 +-6330 +-7306 +-819 +-6037 +-5660 +-9561 +-159 +7642 +-8164 +3425 +8543 +-8592 +375 +-3858 +7539 +9794 +-7136 +-2518 +203 +3048 +4551 +-4891 +4711 +8195 +8289 +-3220 +-1876 +3659 +-9516 +-3742 +-7165 +-5321 +-9350 +1490 +-3146 +-788 +-8555 +-266 +3425 +-3118 +-2513 +-8494 +-1042 +-2988 +-3073 +6069 +-4001 +-3603 +-9162 +-533 +-8919 +-3509 +1419 +7177 +8125 +8182 +2838 +-3235 +-8252 +867 +-4892 +-9508 +-6550 +8852 +8911 +-3902 +-4275 +-268 +-7014 +-7507 +-5238 +1727 +7624 +5827 +-2572 +8073 +-7164 +8293 +1986 +9213 +-7614 +4569 +3173 +-4557 +3863 +9332 +-8832 +5689 +9610 +-6250 +126 +-2055 +-5553 +73 +-1694 +-6749 +-5838 +-2656 +-4651 +9466 +-4951 +552 +6744 +6752 +-8265 +-7318 +-6614 +9442 +-3258 +-9580 +-7777 +-6099 +5994 +4905 +-9302 +4806 +-7194 +2004 +6725 +1887 +-1529 +-3870 +-7209 +-4468 +-3070 +9326 +6537 +-9099 +7655 +7419 +4635 +-2058 +-3106 +9476 +8433 +6866 +-9351 +-5147 +-8464 +-517 +-8642 +-9332 +510 +-6584 +6165 +5780 +6269 +-4340 +6333 +8799 +-6088 +3171 +-9231 +6678 +8165 +6170 +-6043 +2196 +-2427 +7023 +7811 +6734 +2286 +5051 +-1835 +3851 +3321 +4374 +-6109 +498 +1621 +5745 +8955 +-1531 +-4488 +3117 +-6657 +7024 +1097 +-3437 +-7645 +7295 +-4275 +5578 +-8134 +-450 +9299 +3397 +-3603 +2292 +5938 +-489 +-2775 +-4804 +5737 +6130 +-4228 +7552 +-5312 +-1924 +9191 +1340 +7766 +6427 +7506 +5487 +4211 +-6470 +-5650 +-7819 +-8854 +259 +-1353 +-868 +-6042 +701 +-3848 +4289 +5135 +9275 +6904 +259 +-1334 +-4938 +-4171 +7760 +-3374 +9215 +-3564 +5395 +-2040 +6867 +-9997 +5468 +-3255 +7693 +8917 +-9592 +4151 +6228 +-6569 +674 +-8912 +-7027 +-302 +713 +-8126 +6781 +-1207 +275 +-3060 +-559 +2945 +-4925 +-7666 +1123 +-2096 +3301 +-4882 +4151 +-2495 +6752 +-6998 +-3854 +-2368 +-5319 +-2058 +-6439 +-5345 +-4105 +2488 +7897 +840 +9228 +-7479 +-2651 +-9062 +-6751 +3983 +-5720 +-2592 +7314 +-5313 +2837 +466 +3571 +-9459 +8585 +-7582 +5584 +7195 +9469 +-8463 +260 +-3669 +3370 +-1792 +5404 +-6948 +3544 +1017 +5461 +9562 +2120 +3495 +417 +4502 +-5785 +4211 +188 +-7167 +-1960 +4804 +9987 +4939 +-6813 +7295 +-2333 +4435 +-3773 +-5613 +5917 +-3075 +99 +5142 +-7204 +-5185 +7314 +7214 +7154 +-4337 +-2005 +-7498 +-6109 +2031 +-1463 +-9900 +-5345 +-2667 +-8974 +-7589 +373 +2493 +3212 +7667 +3216 +-8473 +9214 +469 +2630 +-5387 +-9604 +-9998 +-2157 +-1861 +5546 +4684 +-3784 +7803 +-7058 +-8176 +8148 +-6824 +-7075 +-7463 +-7651 +3049 +8727 +6771 +2094 +6867 +-2612 +-9957 +-5231 +9301 +3011 +-4769 +1628 +-205 +3404 +6584 +7613 +9272 +6729 +4797 +-2747 +8151 +7350 +-6303 +4650 +5101 +-4841 +-9085 +535 +4606 +-6721 +-9350 +257 +-2153 +-7439 +892 +-2833 +5755 +-6113 +4840 +-2827 +5287 +-8806 +5212 +-3852 +9146 +-6955 +6125 +-5216 +-1156 +8084 +-8449 +-2446 +6170 +7465 +4410 +2442 +4686 +-2871 +-2232 +186 +7259 +-3608 +-1378 +358 +7195 +-718 +9382 +5190 +-1214 +5782 +-9359 +-5011 +2425 +-4924 +-5614 +-3265 +5 +6795 +9685 +7512 +6078 +1551 +3473 +-3682 +3210 +-6004 +-3598 +4003 +6313 +4147 +-8653 +-5052 +-4644 +-8552 +1557 +566 +-5783 +9288 +5223 +3463 +4544 +7900 +8146 +6696 +4567 +-3178 +-7918 +1525 +966 +-6148 +7072 +3671 +-526 +9961 +-5165 +-8054 +8810 +8349 +3137 +-1875 +-7258 +5856 +7747 +-5851 +-3804 +4743 +-9283 +-2354 +-7086 +-5732 +9010 +-5866 +-6105 +-4888 +-1430 +1777 +-7719 +3835 +-44 +7649 +8699 +-8859 +5761 +8912 +9435 +-6241 +-6737 +-1529 +752 +1825 +-9876 +6257 +1543 +8098 +-1723 +5280 +1409 +-4174 +-5573 +4534 +-1695 +2848 +6357 +9367 +4100 +-3247 +1401 +-4275 +1554 +-9451 +5856 +3469 +-8739 +1720 +4668 +-3793 +2341 +1914 +3106 +-4166 +-9046 +-7438 +-7942 +-7944 +1238 +-377 +-1116 +-5634 +-8699 +-2654 +3149 +-8212 +-8161 +-5694 +1378 +-9162 +-7441 +1877 +2619 +-8289 +5287 +-6739 +4431 +424 +6041 +-9557 +5259 +-6466 +-4651 +-5120 +-2293 +3643 +-3529 +-117 +-4891 +5640 +4768 +-8316 +1896 +-755 +989 +2407 +-410 +-2801 +-2756 +4967 +1409 +-1017 +-140 +643 +-9100 +-7055 +5929 +-6162 +1037 +-1664 +692 +5994 +-8816 +1604 +3227 +-9557 +566 +-8323 +4821 +-7722 +-6646 +8721 +-273 +-6563 +-7815 +-1825 +8457 +-2923 +3381 +58 +4721 +-1142 +-8783 +3430 +8250 +7166 +-4940 +6330 +2082 +9786 +-6756 +-6335 +-2943 +-1035 +4988 +3496 +-7027 +-3248 +-2009 +9315 +3753 +3335 +-7692 +-201 +213 +-5526 +7640 +-1950 +-8038 +3768 +-729 +1081 +-5787 +4343 +-8397 +7306 +-2363 +2744 +4816 +-5646 +-1348 +5421 +-4996 +-873 +2449 +-1426 +-5305 +7487 +-4790 +6059 +8304 +-4028 +-4598 +8295 +-9099 +5325 +1690 +8417 +-9827 +-5931 +-1773 +1175 +-4391 +-6948 +-8676 +5650 +-8681 +9045 +-7817 +-9869 +6395 +1032 +-2586 +-6297 +5661 +-2161 +6774 +-1940 +-7600 +924 +-3116 +4487 +4645 +1632 +9619 +6661 +706 +8437 +-7703 +6581 +-408 +2152 +-2487 +-1495 +7948 +1963 +1662 +-6360 +-1352 +-7139 +9215 +-2329 +-8079 +-1017 +-5526 +7450 +4459 +-2838 +1258 +9837 +-3608 +1207 +-7510 +4355 +9942 +9130 +-25 +2913 +-4275 +1989 +-6863 +-2385 +-2143 +7506 +2619 +-9969 +7662 +-8481 +7662 +142 +827 +9072 +302 +2528 +7339 +-355 +1106 +-7007 +2064 +-4762 +-3823 +9464 +-2635 +-6697 +-6940 +3120 +2517 +3907 +5054 +5560 +989 +-11 +6655 +-5546 +-5717 +-4137 +3569 +-63 +5706 +481 +-2266 +-7286 +-3698 +1238 +1254 +3712 +7613 +1175 +-6321 +-2107 +-9450 +9147 +6078 +2712 +9248 +-8748 +899 +-1516 +8974 +-6560 +-1762 +-7747 +-7907 +-2536 +6665 +2427 +2029 +-2965 +7822 +741 +-5925 +4095 +725 +-5448 +4427 +-5456 +4434 +-8865 +-7703 +8917 +-1377 +-3171 +375 +-4985 +6074 +-2061 +-7439 +5372 +-6443 +298 +7347 +2877 +940 +8172 +6071 +4986 +-6361 +-9118 +1654 +9501 +-1792 +-2521 +-8962 +-1808 +8213 +-2679 +1329 +6768 +-4582 +-2285 +5690 +-1982 +9202 +6365 +4873 +5441 +-7905 +4372 +-8468 +-6166 +-613 +2619 +7216 +-912 +-8729 +-526 +-39 +5637 +6012 +-9538 +1025 +-9589 +8033 +1173 +5659 +4940 +-5521 +-3541 +7608 +5025 +-884 +-3166 +-5867 +-2708 +-4801 +-3120 +-7052 +-3568 +2432 +1179 +-2915 +-883 +-8084 +-607 +-2325 +-2345 +6016 +-5066 +-2804 +9959 +-7440 +-3307 +3467 +-6347 +-7957 +8588 +-4654 +2670 +3498 +7739 +4838 +-4306 +7647 +-6023 +-6338 +703 +-3477 +-6947 +9151 +7358 +-7075 +5902 +8447 +4551 +367 +-687 +6764 +5491 +9568 +-2635 +-520 +-6250 +1438 +-5608 +654 +-1302 +1173 +5548 +5506 +8535 +4618 +2562 +-1466 +-4202 +5917 +7844 +-9473 +-7030 +-1092 +-8035 +6426 +-5890 +601 +547 +1490 +5737 +1123 +-1669 +-3748 +-2203 +-7152 +-2951 +-803 +1128 +8480 +-7669 +6675 +7432 +-9423 +-3169 +-2438 +9603 +-7040 +8159 +3216 +3964 +-2009 +6074 +6492 +-1954 +3193 +2399 +-9921 +7845 +9130 +-8997 +6960 +6890 +3495 +-1514 +5637 +9641 +-6367 +3098 +-7793 +8710 +3987 +-9055 +9599 +1106 +-8017 +9397 +2799 +-9198 +3213 +1207 +-5069 +2126 +-3641 +-687 +7709 +-6678 +-4395 +-6166 +-2751 +-7752 +-2951 +-8193 +-2121 +4224 +-5198 +7714 +2562 +-9972 +6165 +1377 +9610 +-2376 +1209 +5421 +4966 +5691 +-451 +6436 +9481 +3134 +599 +5137 +-4989 +-6525 +2209 +526 +-2158 +3430 +-8577 +7529 +-8945 +2190 +8593 +-1571 +6877 +-9011 +-1895 +875 +-6330 +-8361 +3632 +7650 +7814 +469 +-8425 +2772 +1525 +-8017 +-1010 +-5997 +4679 +-3730 +-3522 +989 +288 +-8393 +469 +7151 +-8854 +-9580 +9675 +-5138 +-431 +-4297 +5659 +-4128 +454 +1278 +8570 +6600 +3891 +7845 +-7664 +7436 +6771 +4254 +5589 +3502 +2473 +-8832 +8479 +5054 +4559 +9015 +-7295 +-8029 +-4901 +9325 +-7377 +7610 +4855 +-1801 +8692 +2762 +-2241 +-9321 +-3631 +-5477 +388 +-8042 +2241 +-8481 +9164 +-7058 +-9781 +1557 +274 +4114 +-464 +253 +413 +-8502 +-6361 +9877 +-520 +6579 +8450 +-1010 +8746 +7359 +3117 +-2252 +-6367 +-6793 +5819 +8783 +1378 +-4980 +5711 +1766 +-8496 +-9592 +9529 +811 +-4417 +575 +-5706 +1219 +-3252 +3540 +7779 +-9950 +5730 +-5081 +-827 +-3131 +5143 +-3511 +-3148 +7809 +-6635 +-7519 +-443 +-6879 +5456 +-4762 +8969 +-8022 +-1579 +1332 +-6238 +5343 +9267 +884 +-5413 +-1405 +-9824 +-9469 +4669 +4641 +-1835 +8176 +-3219 +-444 +764 +4020 +-9176 +652 +-7680 +5135 +-6162 +238 +-1687 +8868 +3356 +5041 +-4370 +-4888 +-7530 +-2979 +5854 +2303 +740 +2598 +5440 +-7972 +-9407 +-481 +-859 +-9802 +-6618 +1782 +9951 +741 +5936 +5935 +-5729 +6918 +6426 +-2434 +-8261 +1632 +-2738 +-895 +4665 +-3398 +2064 +-8468 +-4340 +-7408 +-6695 +-7905 +-3237 +-2711 +5953 +-1622 +-7743 +6305 +5903 +9131 +7063 +-7779 +-5994 +-2412 +-4645 +-1142 +3971 +-3698 +-4662 +-8876 +-9911 +-5774 +-6824 +-2838 +-1828 +-5180 +8262 +8992 +5771 +844 +6300 +5806 +2319 +8699 +-607 +-4202 +-8297 +3709 +-4807 +-1259 +3381 +-7750 +-7337 +1238 +5445 +-8143 +-7654 +8721 +7461 +-8802 +-6736 +-542 +-8469 +3916 +9300 +8546 +-845 +-140 +-1247 +2093 +-4898 +7185 +4028 +-8017 +172 +-4417 +9599 +-6672 +-8531 +9216 +6383 +-242 +4401 +-2534 +-9474 +7412 +-9286 +9906 +-3577 +-2161 +-3412 +-3959 +-4924 +-9406 +-4403 +8675 +3473 +7168 +-2838 +-6711 +3090 +1888 +4840 +9978 +3324 +5462 +8413 +-2392 +4431 +-4673 +6583 +-1139 +2298 +-5656 +1409 +-7509 +5182 +-8645 +997 +-2897 +2231 +8446 +6399 +5956 +-3964 +457 +823 +1637 +5051 +6121 +-7944 +-1774 +-8179 +6676 +-9145 +2167 +-5360 +7906 +2155 +-2756 +6110 +-3209 +-5415 +6110 +5427 +-7409 +1998 +9459 +3736 +-9386 +-7560 +-3507 +6383 +7675 +-1493 +2433 +-1996 +-4304 +4068 +-5417 +2315 +-1800 +9062 +9658 +-2624 +2351 +-865 +-6486 +-3252 +-5861 +-5657 +6600 +2990 +-8208 +-6113 +6690 +-7284 +5956 +438 +5050 +-5104 +8873 +1413 +-9351 +-2157 +1017 +-694 +6681 +-2679 +-5838 +8289 +-6247 +6142 +8 +-2871 +-2857 +-6320 +253 +5698 +9146 +-3266 +-607 +7113 +9173 +-5835 +4964 +8192 +-331 +-7167 +-6913 +-7553 +-9664 +-3173 +4685 +811 +1636 +4695 +6141 +-8144 +405 +3419 +-6464 +-1283 +-5925 +2629 +3396 +6584 +7077 +-289 +-8444 +5136 +6219 +-2153 +-3457 +1305 +7309 +-4985 +-4391 +5028 +3090 +-4350 +8955 +391 +9566 +-8505 +577 +2399 +-4030 +6678 +-5985 +2191 +5775 +4 +-4285 +-5171 +6296 +7226 +-5433 +-7959 +-1657 +5812 +-1525 +7127 +-9601 +-544 +-8921 +-5809 +891 +3115 +1943 +-1955 +5025 +8516 +-1322 +-7026 +-3622 +-783 +-3989 +-6485 +-6503 +-6669 +9268 +5642 +-6704 +9279 +1770 +8950 +4807 +-6530 +-9627 +-3803 +5009 +-3463 +-6004 +9490 +6175 +6829 +-6109 +4598 +-2083 +7251 +-2642 +2433 +9594 +1869 +-8684 +7850 +5287 +-3995 +2907 +-8858 +5107 +2339 +3129 +3956 +-6215 +6774 +-2271 +4487 +6014 +-1958 +-8844 +-3300 +5907 +1525 +7675 +1350 +-1080 +87 +4744 +1123 +6604 +-8642 +1929 +4499 +-1575 +-4352 +9268 +-2089 +454 +1121 +7683 +7877 +-2477 +-2416 +2906 +7739 +-5794 +-2159 +-4444 +-7226 +-2025 +-3868 +6492 +-8340 +1731 +211 +4134 +-5011 +-4602 +-755 +9702 +-4891 +5830 +3467 +4934 +-5016 +-6877 +9288 +1490 +1097 +-4427 +2913 +1885 +-8085 +6383 +-5157 +8397 +9603 +7801 +-2385 +-6387 +-5210 +-3537 +-312 +-7777 +1988 +1766 +-7771 +-2203 +-2401 +3053 +-3507 +5901 +-7204 +-844 +2019 +-1394 +6363 +4319 +-1448 +4042 +-6376 +2520 +637 +-1125 +5108 +-8398 +2767 +882 +-527 +-4770 +5613 +-2965 +-1456 +6632 +-868 +-2534 +3467 +3536 +-599 +-4758 +8681 +-3388 +4540 +5689 +-882 +-7344 +8911 +-7180 +-6162 +-9856 +-7586 +-3279 +9202 +5249 +-4548 +3485 +4534 +-4740 +-4714 +774 +-8141 +9603 +-6394 +-1689 +4204 +7145 +7949 +4002 +-355 +-4166 +-4174 +-5337 +-5853 +-4232 +-8156 +-6027 +-6657 +-2850 +4256 +-4250 +-1099 +1267 +2004 +5025 +-1963 +-4248 +8870 +-1301 +6363 +9783 +-4952 +5259 +7098 +-1257 +688 +8644 +-7521 +577 +1222 +1017 +-277 +7385 +-1723 +-5647 +7465 +-993 +-3025 +-4378 +9113 +-8536 +1854 +8710 +-8778 +-200 +9438 +6342 +-2080 +8900 +8817 +-8773 +-9528 +-9933 +7016 +-142 +2229 +-3138 +-3358 +-9622 +-6967 +2879 +4599 +-5809 +8868 +-1342 +-5521 +-7403 +-2532 +1912 +-6922 +8532 +4852 +6751 +-1571 +3652 +-531 +1067 +-9949 +9754 +-2671 +3377 +7560 +-5157 +-600 +-9899 +-8252 +-8164 +-6020 +-9095 +7349 +-1442 +4838 +1890 +5535 +-1383 +3153 +3693 +-9592 +-6848 +6958 +-7149 +1230 +-9329 +6175 +7580 +4729 +-2497 +499 +-6258 +5183 +1267 +-5745 +8601 +-9811 +2877 +-3289 +-3204 +6040 +2037 +3499 +-6439 +4550 +-5907 +6523 +-9421 +7897 +7078 +4561 +-1232 +4315 +-677 +-8808 +5505 +8006 +-3292 +-2573 +89 +-5129 +-6873 +3485 +4001 +9194 +-3520 +3615 +2301 +6492 +7572 +6742 +2404 +3328 +333 +-3457 +4042 +1491 +-6178 +-8164 +-2923 +-581 +6524 +4994 +-4083 +-522 +8241 +9844 +811 +8900 +-2271 +1435 +855 +6572 +-1363 +6748 +-9368 +-7052 +-459 +1350 +-2850 +-845 +-9067 +3750 +-1260 +-5845 +3733 +3151 +-7985 +4390 +4337 +-7371 +335 +4373 +9006 +3645 +483 +-7384 +5459 +-3201 +-3848 +-9278 +-9780 +9933 +-8289 +-2576 +4655 +466 +3962 +6748 +-1835 +-5447 +-9526 +2337 +-4008 +-1726 +1693 +538 +-8281 +5051 +-3186 +4840 +9397 +-6667 +2703 +-2828 +8578 +-2392 +1220 +-3846 +3874 +3398 +-6192 +5638 +8801 +-1296 +5494 +3579 +7358 +-4263 +-2392 +2877 +7148 +8084 +-9256 +-5012 +1821 +-5926 +98 +-2026 +2718 +977 +-1437 +2505 +3291 +-4093 +469 +-4708 +-2691 +-4165 +3310 +4343 +4964 +1705 +687 +-1647 +5698 +3268 +-4008 +91 +7741 +3420 +757 +9451 +4982 +7178 +9640 +-6854 +-3482 +-3598 +9273 +2037 +-8067 +9447 +-2434 +-7557 +-4951 +-8728 +-9827 +-2241 +4172 +1267 +-6668 +-8525 +-7061 +-2389 +1986 +-811 +-925 +8800 +-892 +-5178 +6078 +-865 +9989 +-1825 +-906 +-2686 +7259 +2675 +-7437 +9312 +8870 +2978 +1238 +2307 +-2670 +5494 +2046 +-289 +-7464 +-6568 +-9466 +4409 +-1508 +713 +2089 +-5054 +6092 +757 +1091 +-526 +-2881 +2492 +4035 +961 +-2266 +-8126 +-140 +4189 +-6837 +-5360 +4382 +-8903 +-2841 +-7853 +-5890 +2853 +-4762 +-9983 +-9856 +9610 +2139 +3754 +5325 +6846 +-1304 +3762 +1753 +8437 +-785 +-6645 +-5435 +-9443 +9421 +2548 +-4912 +-6439 +857 +-3676 +-8393 +7117 +6718 +9510 +-7338 +-8630 +-7696 +-1268 +-2801 +404 +5805 +-2996 +7383 +-1820 +9186 +-3003 +-2718 +3282 +-3061 +-3756 +7262 +7230 +-9142 +7407 +-4836 +2972 +459 +8070 +8879 +-6255 +7066 +-2070 +-3423 +-1984 +-4483 +2590 +-2396 +3447 +3764 +7683 +-8616 +6209 +2006 +-7838 +6365 +-1921 +-873 +4153 +3287 +-2293 +7399 +-5107 +-7240 +9236 +-9677 +2591 +3606 +-7375 +8216 +1265 +2488 +-6148 +2448 +-7055 +8434 +-4896 +-5145 +6960 +1554 +-9853 +1821 +6363 +9125 +-6727 +5250 +2160 +-8151 +-8269 +1635 +-3169 +-5963 +6813 +4635 +-6728 +3496 +3173 +6897 +5374 +7610 +-4285 +1574 +2457 +-2910 +4157 +-6863 +5969 +-3424 +1281 +-568 +9554 +-5165 +-7755 +9634 +3137 +-9256 +-3286 +1433 +3962 +3228 +8063 +477 +701 +-8369 +3360 +9816 +4410 +-5555 +393 +-4865 +-886 +5487 +706 +-7408 +-7877 +9156 +-5802 +6078 +-1765 +713 +9103 +479 +-6645 +5969 +1557 +-6446 +-9100 +9638 +-7907 +-7843 +7882 +1720 +-9539 +6904 +2756 +4 +170 +6600 +-5614 +-901 +-7614 +-9095 +-8135 +-8281 +-2217 +-8724 +1930 +508 +-3164 +894 +-1204 +9125 +-6825 +4744 +-7585 +3721 +-8398 +5959 +7839 +4100 +6978 +-412 +4097 +8433 +1103 +3129 +-3966 +8064 +-5557 +3577 +1247 +-2817 +-5607 +8944 +6060 +458 +-1045 +-8544 +-8928 +4983 +-2401 +9653 +-6914 +-8078 +-8549 +9236 +4166 +5421 +637 +-6985 +-9423 +-2276 +-1381 +-1314 +-6842 +2061 +3696 +-489 +-1551 +2298 +5575 +3863 +-4734 +-995 +-9112 +-2585 +4928 +2702 +-4158 +-9487 +8427 +-7530 +8261 +5173 +-6445 +-2571 +-5294 +-2242 +-475 +3247 +-3608 +5506 +-1296 +7254 +7423 +2004 +1482 +-4679 +9049 +2038 +-8758 +-3733 +3 +2940 +-4834 +7297 +-3760 +4526 +4607 +7997 +-406 +666 +-7054 +3088 +1308 +-8554 +211 +8825 +1683 +3171 +-1508 +-1092 +-266 +-2651 +6783 +-9951 +4582 +5610 +-4673 +7882 +7969 +-1214 +-5865 +-284 +-1360 +-6126 +1393 +7261 +-650 +776 +7178 +-3574 +-2782 +4089 +5983 +5959 +-4913 +-1955 +7259 +-5414 +-7415 +1606 +-8067 +-3210 +4831 +-7225 +-5060 +4861 +-5527 +-3306 +9933 +7473 +-829 +6331 +8219 +-2747 +-6022 +-7983 +4607 +-3315 +-885 +4315 +6704 +4953 +1488 +-3614 +-9128 +288 +3381 +-7960 +5439 +8911 +4460 +2410 +-5165 +-996 +3533 +-760 +3011 +482 +-4280 +7845 +-8858 +-4141 +-9080 +2388 +-1367 +3206 +9365 +7346 +-8150 +-2330 +1214 +9556 +-4465 +-6913 +3723 +5041 +-4618 +-3564 +9211 +-4749 +-4557 +-7118 +3236 +4998 +7667 +5051 +-3698 +9579 +-6488 +5515 +6677 +3227 +1335 +-817 +-8837 +-5189 +4279 +-552 +-4774 +1853 +-4042 +-7312 +-6530 +4287 +-2586 +6623 +-2037 +1731 +-5237 +-3958 +4147 +-4618 +-6192 +8469 +-6776 +6389 +-2686 +-5330 +-2667 +-5031 +-5336 +5513 +704 +4041 +-6646 +6158 +1989 +-3437 +5179 +-9651 +-2060 +-186 +-1539 +173 +318 +2449 +5002 +459 +1454 +292 +-7501 +7076 +1435 +4709 +-160 +-2154 +-3734 +2042 +1753 +-8285 +-7328 +-6735 +-1011 +2033 +8546 +2493 +612 +-8572 +4042 +7866 +-7397 +-8865 +1112 +-9729 +1428 +3037 +1028 +9479 +-3176 +4581 +8469 +-5952 +8642 +-8592 +-3089 +-9146 +755 +6289 +-9192 +-6529 +9466 +-6948 +-7654 +86 +-1410 +-9615 +-8042 +4021 +8642 +-9951 +6323 +2952 +-1290 +-6515 +-2421 +-8987 +-5273 +3583 +2321 +4624 +6427 +-8366 +-716 +8157 +-8446 +-4155 +-8544 +662 +9024 +3972 +6945 +7644 +-6824 +-8699 +7642 +8176 +1879 +1988 +8558 +-9538 +6331 +-9601 +-9856 +-8473 +4483 +-8535 +-8854 +7461 +-3109 +-7902 +2716 +4821 +3117 +7319 +-8872 +7967 +1043 +-1664 +6604 +-7026 +-7373 +-6548 +5812 +-3457 +5659 +-6056 +5081 +1929 +-2923 +-5184 +-7086 +4089 +-636 +9088 +-7269 +-5355 +-6299 +-5157 +5405 +9930 +7262 +-4654 +-5595 +-9438 +-1187 +3671 +-7660 +1230 +-5185 +-5165 +-3088 +5175 +5554 +7212 +4958 +-6867 +-8621 +-9099 +-1683 +-4770 +-5795 +-5379 +-6998 +-3425 +-1586 +-9100 +2404 +-8227 +-2039 +-229 +-4417 +-4516 +-531 +-9877 +8414 +-7609 +6896 +2703 +-4831 +-6006 +-9026 +-2291 +9599 +-7047 +6256 +5519 +6352 +-2039 +5041 +-5783 +3150 +1356 +-7021 +-3850 +-9541 +-6782 +-4272 +9504 +-3123 +-3947 +-520 +-1368 +-5540 +3205 +7629 +-6918 +2376 +9414 +-6346 +6016 +150 +-2137 +-2445 +4390 +-2028 +9125 +6249 +539 +-2184 +-6430 +-785 +4187 +-9561 +9071 +3038 +-2061 +-1907 +8173 +571 +5984 +-844 +7264 +-6047 +-1455 +6639 +-6584 +-755 +7011 +7216 +-1279 +-7044 +7063 +-2706 +-2883 +-9421 +-7521 +4099 +1673 +-4525 +7188 +-2028 +-6356 +-7666 +2936 +4821 +-6027 +6142 +7892 +1554 +-305 +7803 +5837 +2006 +8547 +4909 +7028 +-8957 +-9272 +-4113 +5391 +-8350 +4647 +3445 +7270 +1221 +-4082 +5575 +9497 +1340 +2024 +-4815 +7429 +-8793 +-1916 +-2009 +3671 +-3383 +-4996 +1632 +-1131 +1704 +1793 +-8816 +4166 +-7067 +4840 +7148 +-9288 +7650 +-1916 +-5415 +7840 +-3428 +-7010 +-4567 +-3458 +2411 +9965 +7510 +3381 +-8897 +9447 +6012 +8707 +1005 +-5176 +4679 +-4517 +-5147 +9218 +-2477 +-5253 +2048 +6927 +-9803 +-9256 +-1348 +2307 +-5120 +-7955 +9574 +6677 +-7014 +-2305 +3677 +5747 +-8874 +5425 +5495 +4293 +-6852 +-6648 +-9276 +-3726 +779 +2210 +4459 +3467 +5456 +5630 +6853 +7465 +3374 +-9967 +-8350 +-5872 +-1994 +-6172 +4255 +5885 +8163 +-7419 +5706 +8532 +1234 +6652 +-5183 +-6042 +-92 +634 +-6 +4812 +7791 +-1269 +7845 +6068 +6259 +-3118 +5554 +-6776 +-8120 +6620 +-4602 +3670 +747 +1804 +-3238 +5338 +7785 +-225 +-4306 +8854 +940 +8424 +-7305 +-4852 +-1133 +-6879 +-6082 +-4351 +-5787 +5489 +7682 +-1363 +5627 +-8304 +-8837 +-4824 +155 +-5707 +9236 +7436 +8006 +1945 +-2642 +8985 +9926 +9705 +1664 +9332 +-5928 +7866 +3096 +5506 +-3931 +8452 +-9596 +-4143 +-9176 +-5606 +8248 +-9731 +2047 +-5846 +7436 +-9313 +3773 +664 +3115 +662 +-1110 +8173 +-5737 +-7301 +-2645 +3026 +-5178 +9803 +-552 +-85 +4669 +7089 +-3990 +9883 +7704 +9007 +-6921 +-8547 +2907 +576 +924 +-3463 +-6606 +6514 +4056 +9023 +-7339 +-5168 +-6175 +-5896 +6185 +483 +-9580 +6276 +2655 +-5355 +1275 +-1502 +-3819 +1027 +-2329 +-9194 +-7240 +9609 +7060 +-5662 +4357 +-6852 +6299 +-3003 +2613 +-5143 +-1421 +9863 +-9342 +-7511 +-9422 +-4469 +-2741 +-1080 +7092 +1011 +-3740 +-3011 +7629 +-4176 +6918 +-2346 +7886 +-5780 +2341 +-8162 +6267 +-2477 +-8676 +6199 +9989 +-8755 +-1114 +-8719 +6557 +2695 +-3166 +9856 +1601 +7255 +4292 +7846 +994 +7222 +76 +8872 +-2023 +6206 +-7187 +-5302 +-787 +-9711 +-4159 +-6985 +-9367 +6994 +5106 +9402 +1548 +7324 +7115 +-8812 +-7962 +-3238 +-2915 +-8225 +-1939 +-5183 +7258 +-1916 +228 +-5069 +2442 +-6088 +-925 +4913 +-451 +7462 +-5319 +2032 +8032 +-391 +9384 +-2067 +8532 +9841 +-3710 +-6220 +-3594 +-5161 +-8286 +7847 +-5802 +-1721 +-7463 +-8257 +-8385 +4502 +5198 +-2330 +5566 +-9729 +-3909 +-5498 +-3550 +-3028 +-7041 +-4702 +-9023 +7945 +3110 +5571 +7948 +-2384 +6514 +5828 +2702 +9186 +5316 +9615 +4920 +7589 +4187 +8907 +-2337 +4868 +-7469 +-5888 +-9837 +1249 +-2242 +2186 +-4762 +3200 +-9066 +3228 +6155 +-1707 +1362 +-6817 +5173 +-6173 +576 +3245 +3241 +4648 +1941 +4583 +-3227 +-4083 +-3852 +7182 +8083 +8165 +-9528 +5750 +357 +-1138 +2492 +-6894 +98 +9961 +-5958 +-2346 +-4951 +-310 +3434 +2728 +5101 +-1078 +4708 +8398 +6515 +-8398 +9390 +-7599 +-3462 +9688 +-1069 +111 +-1314 +-1984 +-2736 +9466 +-4643 +5483 +-8084 +-3868 +-9855 +7628 +-6343 +-5555 +2731 +7692 +4256 +2315 +-603 +-6727 +-8260 +5944 +-4888 +-6987 +5287 +5325 +-9623 +-7000 +4099 +1598 +-2358 +-583 +-2355 +-8886 +8697 +-5072 +-3965 +9371 +1887 +2850 +109 +-2650 +7414 +9685 +9234 +6736 +-4861 +9062 +8561 +891 +678 +-1258 +-6606 +-8620 +4374 +577 +1438 +2698 +7053 +-5896 +8953 +-8122 +-3603 +8950 +-5961 +9367 +3703 +1683 +8073 +2905 +5403 +-7370 +9247 +3140 +-5661 +1693 +6036 +9887 +4844 +3390 +7035 +-4449 +-1182 +4326 +9166 +-2923 +-8366 +8554 +7616 +-7510 +1080 +6353 +7308 +-7453 +6888 +78 +-7573 +6850 +4828 +4046 +-7406 +9172 +-2555 +-7955 +2471 +566 +7925 +-3324 +-1416 +-1099 +-6330 +-3258 +827 +-1621 +9824 +-4605 +-9848 +4006 +6623 +8170 +7706 +-2957 +7629 +666 +8016 +-6798 +-1338 +-6749 +6962 +1761 +-7703 +-496 +-6686 +-7387 +-6737 +-225 +-1509 +7251 +763 +961 +-5228 +-6721 +-884 +9877 +-9638 +-8830 +-8817 +-822 +7554 +3659 +-6816 +5103 +-6148 +2697 +-8676 +4569 +1831 +-9381 +1473 +5247 +5613 +-7632 +-6464 +1548 +2795 +6276 +-3586 +8897 +4070 +3274 +-5091 +-3759 +9510 +4829 +9658 +9965 +-1508 +3577 +-7070 +6569 +-1669 +8723 +8056 +6379 +6665 +-3762 +6350 +-8425 +3233 +5212 +-5016 +-5780 +-3842 +-5312 +9438 +8766 +-1647 +5403 +1556 +-568 +-4126 +-2975 +-6825 +4448 +4723 +2842 +-4702 +-2137 +-6703 +1606 +8090 +3328 +2367 +3816 +-4149 +4228 +-8024 +-8739 +7387 +-7675 +-8406 +-8531 +-8108 +9194 +2582 +-7582 +1498 +4340 +-8108 +9980 +840 +4315 +5461 +9421 +-9046 +1322 +1632 +-7139 +-3462 +-2271 +-8252 +7282 +3641 +-4988 +9920 +-7960 +-3762 +6742 +-791 +-6922 +9411 +-1391 +-9768 +-4574 +4515 +2021 +5041 +9374 +-2362 +4199 +8986 +5036 +3801 +-7987 +-6106 +1546 +-6313 +546 +-2460 +9824 +-7750 +-7539 +-4370 +-9010 +-9194 +5246 +-1113 +-9274 +-2392 +-379 +6133 +-8425 +5343 +9979 +9275 +333 +6465 +-6004 +-6122 +5627 +-6525 +8490 +-9795 +1051 +-5177 +5513 +7665 +2008 +5135 +8117 +9421 +-1542 +-8611 +3473 +-3107 +5421 +-9856 +1778 +-4513 +9805 +8469 +5658 +-4257 +8165 +6383 +3388 +-3374 +-3979 +7822 +-6721 +-8868 +-9009 +1764 +1704 +1693 +-1875 +-8079 +-239 +-1025 +7945 +5182 +-5101 +2006 +-264 +-5706 +5732 +7026 +4668 +2738 +7346 +-9450 +6423 +-865 +5820 +8907 +643 +8408 +4302 +-9477 +-1373 +2720 +6234 +-7354 +-2677 +7061 +8692 +-15 +-7075 +6877 +3537 +-8068 +-8449 +-1142 +-7983 +7210 +-7931 +6751 +5101 +-3467 +5233 +-844 +-5610 +-9910 +-9796 +3595 +-4354 +725 +2745 +8546 +-9859 +6147 +9023 +7512 +8481 +6228 +7350 +-352 +-289 +2008 +6533 +-2123 +6566 +-9110 +8710 +8810 +7195 +6994 +9576 +1061 +-889 +6568 +-81 +1623 +6452 +-33 +1673 +5117 +-5942 +7098 +-2801 +-1214 +-5869 +6206 +-9456 +4038 +6142 +5410 +-4924 +877 +-9663 +-8069 +6813 +-9278 +-6519 +7112 +2241 +3375 +-2094 +8615 +8086 +9408 +9826 +-134 +-6704 +8746 +1664 +-7160 +-4352 +2836 +3994 +5225 +-5103 +4269 +1760 +878 +-6067 +4744 +-4051 +9797 +-5634 +3389 +-1958 +-7717 +6168 +5177 +8482 +228 +9943 +945 +2050 +1622 +7916 +2936 +6071 +3340 +-1542 +-6267 +-3317 +-7955 +1491 +-7595 +-1996 +867 +20 +5065 +8366 +-8165 +-4435 +-725 +9864 +-760 +8263 +-4514 +-8771 +2222 +-8398 +9196 +-6175 +3335 +-1197 +-4630 +-9317 +-7166 +6003 +-1953 +-5757 +-8594 +-3612 +6742 +2845 +-7238 +-2573 +3686 +3771 +-8380 +-9 +6668 +-7170 +4598 +-6488 +-8388 +5737 +-8185 +8427 +-4548 +5851 +1438 +-516 +3746 +7080 +-3842 +-4529 +669 +6198 +-4818 +-160 +9031 +-6639 +-7301 +-3562 +3158 +-9967 +3908 +-2556 +-7066 +4534 +-7401 +5837 +1490 +-925 +1547 +9795 +6602 +4782 +2687 +3641 +-7624 +-8544 +3629 +1027 +1462 +4798 +-1599 +5231 +86 +-6589 +-802 +5257 +-7394 +6423 +-6563 +9397 +-9050 +-3475 +-7507 +-4951 +882 +-7650 +2230 +-3703 +1990 +2129 +3155 +-1702 +8084 +-4940 +-5022 +1716 +-4875 +-4938 +-6697 +7231 +5094 +2151 +767 +-490 +-4285 +9240 +-7997 +-3465 +9475 +-704 +-8385 +4024 +-5060 +3767 +9691 +3445 +5025 +8304 +-8612 +-1878 +4020 +-3759 +8737 +-5377 +1097 +-3855 +-1020 +1632 +-4033 +-5351 +860 +6078 +-2124 +2877 +-4993 +-8464 +8995 +6333 +-9710 +-4573 +-7992 +6075 +2132 +7292 +7028 +-2371 +6677 +4269 +8097 +3787 +-9289 +-7021 +6579 +8456 +2810 +5743 +3397 +842 +-8505 +4587 +-4709 +8872 +1395 +-4980 +2311 +8532 +9087 +-7534 +-3815 +-9732 +3590 +-8212 +-9878 +-309 +-440 +855 +6427 +-6385 +-5272 +1662 +7501 +-3601 +4583 +1021 +-7486 +7516 +-1092 +8912 +-3863 +-8806 +-970 +-6004 +5741 +741 +8419 +-4935 +4424 +1058 +-6413 +-7439 +-6252 +9475 +-269 +-1292 +-3210 +-9175 +9928 +-4130 +5405 +-7376 +-5223 +1986 +-9368 +-7680 +898 +4413 +127 +717 +-3453 +2493 +9198 +-5238 +-9555 +-1352 +-5822 +-3204 +6014 +6798 +-3541 +8522 +-3516 +5378 +474 +1409 +7850 +6808 +7811 +-4345 +-6957 +7396 +-3457 +9023 +7819 +4260 +-4162 +-4655 +-7518 +2877 +-3116 +1281 +-3300 +8916 +-2820 +-5127 +6524 +5269 +8165 +-1798 +30 +-9159 +8834 +8089 +-1967 +-1669 +-373 +576 +1579 +8574 +5956 +-3608 +-6193 +-6385 +-3632 +-8874 +9113 +-5050 +217 +4323 +-2726 +-8108 +-7507 +8491 +266 +7754 +-8457 +4035 +5854 +5569 +1359 +-2732 +-5473 +-1719 +-5422 +-3804 +-513 +-2741 +7206 +-2881 +393 +3839 +7570 +2521 +-3640 +503 +2093 +-4480 +7027 +-4913 +-6958 +-6201 +5287 +4534 +7259 +9524 +-5591 +5854 +109 +-7164 +1234 +1165 +7779 +9921 +-4051 +867 +8309 +-2784 +8801 +-8289 +1150 +-2975 +1147 +-6459 +-7515 +-1450 +-9014 +-7749 +768 +-2433 +9603 +-8391 +8817 +-7509 +8232 +8986 +91 +-4 +-5012 +-3139 +7839 +-1320 +1602 +3460 +-3779 +2492 +30 +-9145 +-4185 +6792 +8629 +-1741 +-8281 +-225 +-5699 +-9727 +5690 +-1202 +4140 +5041 +-2860 +-8236 +-3803 +-6678 +-993 +5522 +-6686 +3723 +1760 +7739 +-7112 +-6813 +4410 +-6926 +9165 +-7420 +7675 +-8867 +-588 +2805 +-3106 +7165 +-5489 +-1604 +7133 +6889 +-2654 +6115 +-7366 +7233 +-987 +2299 +7839 +-380 +8222 +-7131 +-8764 +6275 +9906 +-6716 +9753 +7214 +4172 +3950 +-6974 +4776 +-3861 +8589 +9944 +3546 +4147 +6877 +3247 +3768 +5474 +-8560 +-8541 +-6237 +-2555 +-7619 +-9140 +4363 +-1708 +-430 +8868 +9522 +1103 +6579 +3916 +-6704 +3390 +-6126 +-5360 +3546 +2896 +-2137 +7532 +-8038 +-3317 +7687 +-4363 +-505 +-1962 +-4872 +-9630 +8469 +-9533 +8138 +-5060 +6024 +-839 +7261 +3659 +-4508 +-6184 +9726 +2088 +1247 +4567 +-5103 +-8469 +9939 +5108 +-3824 +3867 +-1398 +7423 +-9014 +-3457 +9173 +-9365 +-2972 +578 +4686 +-6055 +1164 +1150 +-7486 +2299 +6853 +8818 +7631 +4038 +-3717 +5642 +991 +-6143 +-8398 +-1336 +5138 +591 +-6650 +6579 +-9970 +-3676 +8165 +9799 +7948 +-1631 +473 +-6450 +7306 +6514 +1568 +50 +-8471 +-5595 +-3081 +1179 +8142 +-6404 +-7047 +-3527 +4785 +7779 +302 +1482 +-9970 +-4951 +8919 +-1752 +-5783 +-9472 +4721 +-7785 +1632 +1268 +5692 +1317 +-4031 +4782 +-1550 +5191 +795 +-2649 +-8208 +-3031 +-7507 +7341 +3994 +8020 +1361 +-5846 +-9490 +4038 +-4665 +-2060 +-1408 +7353 +9856 +-4778 +-6606 +9727 +2631 +2598 +5961 +1350 +1063 +2903 +-6441 +-8185 +-445 +-7333 +8305 +-3603 +4038 +1818 +-4403 +4598 +3141 +2721 +-912 +7949 +7811 +-1214 +-9487 +1794 +-5318 +-1042 +-7377 +114 +4918 +-6424 +2111 +8538 +-5557 +-1959 +-5112 +6162 +5141 +5198 +-7384 +-8179 +-9738 +-5946 +-2055 +-1206 +-8668 +-6269 +-4888 +4645 +3769 +8734 +855 +4308 +977 +1557 +4969 +5572 +7121 +859 +-5993 +6240 +-5333 +-7409 +-3091 +9854 +8040 +-3220 +-7522 +-9439 +110 +-2741 +-8289 +2853 +6696 +-6676 +8089 +-3908 +5161 +6224 +-1483 +-3054 +6535 +-4244 +-2207 +-5138 +5025 +-1788 +-2307 +-1865 +5143 +-1328 +3659 +5869 +2258 +-2509 +-7108 +-7194 +6677 +-1632 +-6027 +-8870 +-6367 +-1160 +7150 +8561 +8063 +-4708 +-8903 +2453 +-2637 +-6060 +-1238 +2686 +8349 +-7052 +4333 +-1982 +-446 +-4755 +-390 +7853 +9023 +-7468 +-3577 +8293 +4089 +-1994 +1378 +8503 +4003 +5066 +-8052 +8032 +7385 +5123 +5316 +9288 +-2536 +-6916 +-5223 +-4734 +-6838 +9933 +-6360 +5480 +4549 +-7366 +3645 +1716 +-9243 +-8496 +-1202 +-443 +-8078 +-2477 +1340 +7432 +-7003 +2718 +-6384 +5055 +-8950 +9049 +-4749 +-45 +-7248 +-2996 +7017 +-7987 +3309 +-130 +8396 +-6824 +-2242 +-5984 +-1206 +4821 +30 +3085 +-2640 +-9827 +5542 +2361 +3389 +4042 +6890 +9696 +-7292 +4694 +1585 +-1733 +-3803 +4180 +-5301 +-8670 +7121 +-8298 +-6698 +-7937 +2449 +-1011 +-9243 +-4189 +-2708 +-716 +-4340 +-4580 +8868 +-6126 +6623 +-9002 +7945 +-3317 +1885 +2186 +8725 +160 +-6958 +-2337 +1361 +-617 +-2385 +-6777 +7801 +-9412 +-4892 +3786 +-2261 +5506 +2102 +-4269 +-530 +4703 +4499 +5495 +5903 +-8295 +-1766 +-310 +-7007 +5782 +-8560 +9665 +-2944 +6399 +2029 +6121 +5744 +8553 +-5774 +-4861 +-7033 +2299 +-6526 +-6298 +372 +7847 +-7658 +-3497 +7288 +5149 +-3577 +6576 +2632 +-6610 +9602 +-8751 +-516 +6868 +-5757 +-9630 +9703 +-1632 +3268 +5020 +1998 +7073 +-7723 +-7550 +-8686 +-7470 +-3369 +-3659 +-5319 +1410 +464 +-1615 +5947 +5780 +-9250 +-8570 +-6704 +3359 +2388 +-9100 +-4595 +-8628 +-5607 +-2705 +-291 +-4392 +-3758 +-3190 +678 +-6237 +-2939 +-1982 +1717 +-5360 +5830 +-4872 +2179 +-5381 +-1160 +-552 +-9700 +-5304 +4821 +2151 +-9296 +86 +-3709 +6175 +-3505 +4967 +-7478 +-6972 +3425 +-6672 +4913 +6768 +-1269 +-2203 +-6103 +5548 +-9972 +3615 +7292 +2398 +7664 +8408 +4524 +-9439 +9617 +-6962 +3385 +6130 +-1365 +1156 +5865 +78 +-1199 +4250 +-3265 +1870 +-4403 +-2078 +-8473 +-3418 +-5144 +-3152 +-1091 +7501 +-3033 +8611 +-4202 +5634 +-6162 +9989 +-8067 +-7514 +1808 +-3833 +6576 +-4599 +9524 +-5799 +696 +6432 +-3925 +5024 +99 +-2273 +-3603 +-6599 +3129 +-6882 +4006 +-5923 +4322 +-7030 +-5942 +6296 +-3088 +7926 +5989 +1766 +-2658 +8170 +-6883 +9100 +-7925 +8302 +7035 +5585 +-7267 +3374 +5713 +1588 +39 +-4051 +-4025 +-2728 +-6122 +3247 +-4861 +3792 +2808 +-251 +4957 +-4815 +6707 +-9557 +9161 +2312 +-7102 +13 +-9288 +7916 +-5312 +-1304 +-8026 +563 +6347 +-8897 +-5243 +6803 +-1940 +-6987 +-4029 +280 +7015 +-3979 +5659 +2291 +-9166 +9620 +2720 +483 +-2653 +5921 +878 +8556 +-9281 +4013 +-1671 +3301 +1058 +-6985 +-3418 +892 +-7959 +-4673 +1807 +-9638 +-7234 +4097 +-7667 +-2636 +7840 +-1097 +7279 +-354 +6533 +-8816 +-5630 +-276 +7840 \ No newline at end of file diff --git a/rest.txt b/rest.txt new file mode 100644 index 0000000..1a55fd3 --- /dev/null +++ b/rest.txt @@ -0,0 +1,5005 @@ + +0: 0 +1: -9978 +2: 5025 +3: 197 +4: -3116 +5: 190 +6: 7028 +7: 2129 +8: 4153 +9: -5433 +10: 5136 +11: -9998 +12: 6162 +13: -6987 +14: -2392 +15: -4714 +16: 8424 +17: -9967 +18: -2362 +19: -4665 +20: 5276 +21: -4962 +22: 5041 +23: 2795 +24: 9103 +25: -9856 +26: -886 +27: 353 +28: 5353 +29: -901 +30: 5041 +31: 5333 +32: -5052 +33: -4937 +34: -3908 +35: -6346 +36: -4872 +37: -4823 +38: 9186 +39: 142 +40: -8281 +41: -6894 +42: -5198 +43: 426 +44: -9243 +45: -4891 +46: 5182 +47: -785 +48: 1317 +49: -600 +50: -4951 +51: 5236 +52: 5316 +53: 9658 +54: -4815 +55: 4100 +56: 4097 +57: 9438 +58: 6579 +59: 73 +60: -6022 +61: 9273 +62: -4892 +63: 5275 +64: 126 +65: -8108 +66: 4337 +67: 2151 +68: 9987 +69: 4157 +70: 5470 +71: 203 +72: 1986 +73: 9049 +74: 4838 +75: 5051 +76: -9442 +77: 302 +78: -44 +79: 5434 +80: 7512 +81: 7925 +82: 9961 +83: -9997 +84: -7595 +85: -4416 +86: -4541 +87: -6356 +88: -4609 +89: -2271 +90: 9125 +91: -4938 +92: 474 +93: -6606 +94: -4269 +95: -8469 +96: 5647 +97: 9156 +98: -6817 +99: -4925 +100: -4352 +101: 4598 +102: -4189 +103: 5135 +104: 9594 +105: 8452 +106: 8165 +107: -9998 +108: -5011 +109: 5637 +110: 375 +111: 3200 +112: -8236 +113: 7665 +114: 8532 +115: -4882 +116: 2132 +117: -3457 +118: 4873 +119: 6792 +120: -4804 +121: 1361 +122: -9341 +123: -8903 +124: -996 +125: 1760 +126: 2230 +127: 5455 +128: -9957 +129: 99 +130: -9561 +131: 4540 +132: -8870 +133: 5724 +134: 1350 +135: -4651 +136: 4373 +137: -9900 +138: -9351 +139: -9360 +140: 4967 +141: 662 +142: 4534 +143: 5 +144: -9346 +145: 259 +146: 6240 +147: -9481 +148: 5142 +149: 9236 +150: 259 +151: 4343 +152: -331 +153: 3228 +154: 4390 +155: 5690 +156: 5744 +157: 9312 +158: -1187 +159: 7231 +160: -5802 +161: -9516 +162: 188 +163: -1721 +164: -3527 +165: 5101 +166: -4599 +167: 9942 +168: -9580 +169: -5521 +170: -531 +171: -4557 +172: 5782 +173: -242 +174: 275 +175: 2842 +176: -581 +177: -4392 +178: -4128 +179: -4924 +180: -9346 +181: -4416 +182: 6514 +183: -63 +184: 6224 +185: -2573 +186: -9130 +187: -3139 +188: 3671 +189: 3241 +190: -9508 +191: 1482 +192: -1279 +193: 3245 +194: -4841 +195: 260 +196: -4171 +197: 4089 +198: -3603 +199: 855 +200: 280 +201: 707 +202: -8471 +203: -9276 +204: -7354 +205: 4685 +206: 5921 +207: -2137 +208: -4214 +209: -4769 +210: -8668 +211: 9603 +212: 5548 +213: 8073 +214: -5138 +215: 186 +216: -3317 +217: 4166 +218: 5212 +219: 9397 +220: -1348 +221: 5395 +222: 4855 +223: 5190 +224: 4988 +225: -4888 +226: 4695 +227: -7070 +228: 725 +229: -9592 +230: 6579 +231: 552 +232: 510 +233: -4468 +234: 257 +235: -8398 +236: 8016 +237: -9876 +238: -8950 +239: -25 +240: 498 +241: -9350 +242: 696 +243: -4488 +244: 1568 +245: -4028 +246: -1011 +247: -1707 +248: 5487 +249: -9439 +250: -5865 +251: 5287 +252: 5223 +253: -7624 +254: -7139 +255: 5404 +256: 5468 +257: -5066 +258: -289 +259: 373 +260: -4891 +261: -5180 +262: -4996 +263: 58 +264: 678 +265: 417 +266: -4940 +267: 4940 +268: 3677 +269: -7650 +270: 950 +271: -9604 +272: 9877 +273: 9603 +274: 466 +275: -885 +276: -9221 +277: 5461 +278: 5578 +279: 5689 +280: 8707 +281: -9351 +282: -522 +283: 358 +284: -1502 +285: -4673 +286: -11 +287: 4041 +288: 7027 +289: 2720 +290: 5903 +291: 2738 +292: -4275 +293: -2556 +294: -9250 +295: -9332 +296: -4340 +297: -9100 +298: 469 +299: -5069 +300: -9302 +301: 5280 +302: 4382 +303: -39 +304: -4644 +305: 3140 +306: 1119 +307: -9459 +308: 9959 +309: -3106 +310: -9969 +311: -3989 +312: 3972 +313: 6889 +314: 7292 +315: -6056 +316: 5259 +317: -4403 +318: -9066 +319: -8875 +320: 9236 +321: -9869 +322: -9557 +323: 4986 +324: -8864 +325: -1363 +326: -9638 +327: -9002 +328: 5287 +329: 5780 +330: 4042 +331: -9296 +332: 5584 +333: -9100 +334: -2975 +335: 5054 +336: 4409 +337: 5906 +338: 213 +339: 4840 +340: -9827 +341: 5546 +342: -9162 +343: 3670 +344: 6199 +345: 9451 +346: -4001 +347: -4985 +348: -4275 +349: 5827 +350: -140 +351: -6727 +352: 4021 +353: -355 +354: 9447 +355: -5952 +356: -829 +357: -4790 +358: -312 +359: 674 +360: 2093 +361: 5901 +362: 2745 +363: 535 +364: -2820 +365: 701 +366: 4550 +367: 9702 +368: 7822 +369: 5745 +370: 6877 +371: -2881 +372: -9231 +373: -5081 +374: -8858 +375: 4599 +376: 2311 +377: 5780 +378: 5737 +379: -4651 +380: 142 +381: 4966 +382: -9026 +383: 867 +384: -3861 +385: 9024 +386: 1632 +387: 713 +388: 5634 +389: 4561 +390: -5337 +391: 9421 +392: -4228 +393: -4337 +394: -459 +395: 6079 +396: 4744 +397: 5025 +398: 424 +399: 1161 +400: 6140 +401: 8056 +402: -9557 +403: 566 +404: 5325 +405: -9350 +406: -9099 +407: -3804 +408: -4762 +409: -1269 +410: -3835 +411: -3965 +412: -4171 +413: 1316 +414: -9557 +415: -9359 +416: 5585 +417: -1421 +418: 483 +419: -4001 +420: 4147 +421: 8170 +422: -9451 +423: 302 +424: -4598 +425: -8867 +426: 5421 +427: 840 +428: -526 +429: 5994 +430: 1293 +431: 1355 +432: 5938 +433: -7507 +434: 6069 +435: 5755 +436: -5447 +437: 9906 +438: -9972 +439: -817 +440: -4989 +441: 5830 +442: -8785 +443: 6399 +444: -9921 +445: -4801 +446: -8919 +447: -4105 +448: 8398 +449: 298 +450: 1359 +451: -3858 +452: 566 +453: -3902 +454: 4807 +455: -8721 +456: 9211 +457: -8827 +458: -6798 +459: -5614 +460: -8703 +461: -9283 +462: -6006 +463: 7206 +464: -760 +465: 563 +466: -7680 +467: 5782 +468: 9951 +469: -1131 +470: -9062 +471: 1557 +472: -9100 +473: -5171 +474: 6451 +475: 5640 +476: 696 +477: -8521 +478: 5917 +479: 4410 +480: 1490 +481: 375 +482: 8532 +483: 1378 +484: 643 +485: -7401 +486: -3776 +487: -6816 +488: 5372 +489: -3803 +490: 8090 +491: -4275 +492: 3434 +493: 5054 +494: 5137 +495: -6047 +496: 752 +497: 5761 +498: -3870 +499: -8832 +500: 5947 +501: -568 +502: 6853 +503: -6172 +504: -4980 +505: -5104 +506: 892 +507: 6535 +508: 6383 +509: 1097 +510: -2726 +511: 481 +512: 692 +513: -5607 +514: -9085 +515: 4089 +516: -277 +517: -2732 +518: 9088 +519: -5210 +520: -4901 +521: -8038 +522: -3577 +523: 7945 +524: -2741 +525: 6535 +526: 1340 +527: -4391 +528: -4654 +529: -4582 +530: -6749 +531: 6312 +532: 1017 +533: 1336 +534: -9950 +535: -2123 +536: -2784 +537: 9510 +538: -5555 +539: -3742 +540: 6557 +541: 6165 +542: -9589 +543: -2860 +544: -8912 +545: 5856 +546: 6130 +547: -8505 +548: -4174 +549: -6922 +550: 6170 +551: -7075 +552: 5713 +553: 367 +554: -7394 +555: -4202 +556: 6121 +557: 5441 +558: 5650 +559: 5560 +560: -6737 +561: -7534 +562: -6027 +563: -7160 +564: 7259 +565: 2836 +566: -8974 +567: -9450 +568: 5661 +569: 5041 +570: 3773 +571: -3423 +572: -8854 +573: -8208 +574: -4166 +575: -9538 +576: 6381 +577: 1123 +578: -3848 +579: 4315 +580: 5856 +581: 9978 +582: -9162 +583: -650 +584: 5865 +585: 7133 +586: 5659 +587: 1604 +588: 5143 +589: -3854 +590: -7238 +591: -7301 +592: -8375 +593: 706 +594: -5557 +595: -6606 +596: -6825 +597: 4279 +598: -3507 +599: -9781 +600: 7396 +601: -6721 +602: 966 +603: -7749 +604: -4888 +605: -9288 +606: 8854 +607: 288 +608: 5135 +609: 6269 +610: -5157 +611: 6426 +612: -5435 +613: 4655 +614: -9824 +615: 5491 +616: 2687 +617: 7165 +618: 253 +619: -8592 +620: 4287 +621: -4275 +622: 9783 +623: -9911 +624: 6228 +625: 7501 +626: 274 +627: -1133 +628: -6686 +629: -3567 +630: -8492 +631: -9100 +632: 5506 +633: -3603 +634: -9046 +635: 3233 +636: 5706 +637: -2094 +638: -8670 +639: -3081 +640: 4729 +641: 6623 +642: -4762 +643: 6333 +644: 5421 +645: 6078 +646: -8185 +647: 3390 +648: -7486 +649: -9473 +650: 9640 +651: -3283 +652: 9754 +653: 3274 +654: 7516 +655: 1419 +656: -9802 +657: 5929 +658: 6125 +659: -9281 +660: 9071 +661: 1818 +662: 1794 +663: -4898 +664: -4924 +665: 5548 +666: 6718 +667: -8642 +668: -8555 +669: -7166 +670: 9610 +671: 238 +672: 5637 +673: -3852 +674: -2972 +675: -200 +676: 547 +677: -3773 +678: 9365 +679: 6696 +680: 5051 +681: 4964 +682: -8289 +683: -3503 +684: -8496 +685: 725 +686: -9580 +687: 1340 +688: 1673 +689: 989 +690: 2493 +691: -3784 +692: 741 +693: 5659 +694: 388 +695: 2845 +696: -1621 +697: 5690 +698: 8117 +699: -8212 +700: 7916 +701: -7518 +702: -3340 +703: -6082 +704: 6170 +705: -9099 +706: 9554 +707: -4807 +708: -7170 +709: -5360 +710: -9423 +711: -6175 +712: 1490 +713: 6677 +714: 469 +715: -6042 +716: 827 +717: 7233 +718: 2088 +719: 172 +720: 5994 +721: 601 +722: -8806 +723: -2371 +724: 469 +725: 454 +726: -8281 +727: 7214 +728: 1361 +729: 2936 +730: -7439 +731: -8179 +732: 5343 +733: 8 +734: -3509 +735: -8751 +736: 4099 +737: 9125 +738: 413 +739: -8372 +740: 6041 +741: -1110 +742: -3431 +743: -8494 +744: 526 +745: -3220 +746: 5050 +747: -3201 +748: 1557 +749: -3603 +750: -1669 +751: -8369 +752: -9592 +753: -5795 +754: 654 +755: -489 +756: -1875 +757: -716 +758: 924 +759: 1037 +760: 1792 +761: -6703 +762: -9166 +763: -4306 +764: -3669 +765: 4934 +766: 5182 +767: -8859 +768: -7507 +769: -4137 +770: 703 +771: -3031 +772: -4028 +773: -4395 +774: -8285 +775: 5637 +776: 6427 +777: -3231 +778: -4985 +779: 4 +780: 599 +781: 5028 +782: -3804 +783: -4662 +784: -8224 +785: -142 +786: 5456 +787: -5157 +788: -844 +789: 8165 +790: -3564 +791: -4645 +792: -475 +793: 2299 +794: 6868 +795: 899 +796: 4838 +797: 6659 +798: 5025 +799: 6537 +800: 3328 +801: -4051 +802: 8561 +803: 4460 +804: -5527 +805: 5989 +806: 5737 +807: -289 +808: 4852 +809: 4635 +810: -1647 +811: 4526 +812: 5440 +813: 5009 +814: -8464 +815: -412 +816: 1032 +817: 878 +818: -7376 +819: 4187 +820: 8985 +821: -5783 +822: -8259 +823: 5589 +824: 1908 +825: -1996 +826: -9118 +827: 6059 +828: 6399 +829: 6175 +830: 1081 +831: 6804 +832: -4025 +833: -2654 +834: -3793 +835: -6220 +836: -8105 +837: 5691 +838: -4673 +839: 9634 +840: -3289 +841: 5136 +842: -3758 +843: -1958 +844: -4202 +845: 892 +846: -6343 +847: 6712 +848: 2521 +849: -3682 +850: 989 +851: -9469 +852: -8686 +853: -5016 +854: -552 +855: 6130 +856: 6313 +857: 575 +858: -5011 +859: -3061 +860: -7515 +861: -785 +862: 5921 +863: 6257 +864: 5659 +865: -4417 +866: -8816 +867: -3925 +868: 940 +869: -1314 +870: -8560 +871: 9638 +872: -1509 +873: 8086 +874: 1238 +875: -3437 +876: -3060 +877: -8259 +878: 1859 +879: -8739 +880: 5445 +881: -8653 +882: -3091 +883: -1114 +884: -3162 +885: 1156 +886: 253 +887: 8872 +888: -4297 +889: -3608 +890: -7066 +891: 8554 +892: 1859 +893: -7509 +894: -9321 +895: 7261 +896: -9198 +897: 87 +898: 5107 +899: -4029 +900: 1585 +901: -3659 +902: 9844 +903: 1831 +904: -8783 +905: 5902 +906: -1080 +907: 7570 +908: 1716 +909: 6960 +910: 1621 +911: -7999 +912: -8699 +913: 4166 +914: -3577 +915: -8463 +916: -5129 +917: 1175 +918: -9407 +919: -3598 +920: 1106 +921: 6078 +922: 5462 +923: 4582 +924: 2492 +925: 5917 +926: -4370 +927: -406 +928: 1727 +929: 6877 +930: -8473 +931: -8962 +932: 4840 +933: -636 +934: -5872 +935: -1953 +936: -755 +937: 9007 +938: 652 +939: 457 +940: 5711 +941: -8252 +942: 5427 +943: -6721 +944: -7619 +945: 6357 +946: 6678 +947: -4891 +948: 4607 +949: -3709 +950: -3833 +951: -3979 +952: -3374 +953: 6012 +954: 8697 +955: -1508 +956: -9474 +957: -3220 +958: 6074 +959: -1416 +960: -9664 +961: -5928 +962: 1025 +963: -8552 +964: 2810 +965: 9653 +966: -5414 +967: -3235 +968: -3054 +969: 6071 +970: -8265 +971: -8628 +972: -2975 +973: 5730 +974: -6088 +975: 6725 +976: -6173 +977: 6016 +978: 1912 +979: 1410 +980: -2433 +981: -5178 +982: 6744 +983: -6464 +984: -3258 +985: 9023 +986: -7940 +987: 6752 +988: 9556 +989: 1409 +990: -3497 +991: 1378 +992: -3823 +993: 9466 +994: 1207 +995: -4340 +996: 1401 +997: 9479 +998: 6623 +999: 2299 +1000: -4417 +1001: 438 +1002: 5108 +1003: 875 +1004: -9055 +1005: -8865 +1006: -2124 +1007: 6330 +1008: -8164 +1009: 1058 +1010: 2877 +1011: -8570 +1012: 1175 +1013: 9218 +1014: 5025 +1015: -9406 +1016: 6734 +1017: -4403 +1018: -2555 +1019: 211 +1020: 405 +1021: -4128 +1022: -5595 +1023: 5287 +1024: -3118 +1025: -8897 +1026: 4056 +1027: -8449 +1028: 740 +1029: -2951 +1030: 4607 +1031: -7785 +1032: 5819 +1033: -4952 +1034: 2111 +1035: 764 +1036: 391 +1037: 811 +1038: 9579 +1039: 7015 +1040: 1258 +1041: 1991 +1042: 3703 +1043: 6584 +1044: 741 +1045: -9856 +1046: -8997 +1047: -8298 +1048: 1943 +1049: -3146 +1050: 1409 +1051: -8681 +1052: -2957 +1053: -8676 +1054: -1138 +1055: 1525 +1056: -9601 +1057: 2050 +1058: 1551 +1059: 3577 +1060: -1258 +1061: 8907 +1062: -7885 +1063: -3317 +1064: -9627 +1065: 1238 +1066: 1557 +1067: 7306 +1068: 4744 +1069: -3255 +1070: 1254 +1071: 3388 +1072: -6330 +1073: -140 +1074: 1628 +1075: -7420 +1076: 9933 +1077: -1338 +1078: 6576 +1079: -9176 +1080: -3118 +1081: -8748 +1082: -9933 +1083: 4483 +1084: -5294 +1085: 6999 +1086: -4770 +1087: 7754 +1088: 1998 +1089: -3529 +1090: 7811 +1091: -9011 +1092: -9386 +1093: 1173 +1094: 6074 +1095: -2997 +1096: -5896 +1097: -9286 +1098: -5846 +1099: -9949 +1100: -7868 +1101: 6752 +1102: 7819 +1103: -4758 +1104: 5771 +1105: 7121 +1106: 989 +1107: 1179 +1108: 3659 +1109: -8052 +1110: 1543 +1111: 884 +1112: 7423 +1113: 5854 +1114: 1123 +1115: 4390 +1116: 6296 +1117: -3698 +1118: 6781 +1119: 6395 +1120: 1128 +1121: -5787 +1122: 4255 +1123: 5249 +1124: -3073 +1125: -4202 +1126: 6866 +1127: -1542 +1128: 5806 +1129: -6704 +1130: 1554 +1131: -6525 +1132: 7850 +1133: -8945 +1134: 1106 +1135: -4740 +1136: -9899 +1137: 1887 +1138: 9816 +1139: 4994 +1140: 8408 +1141: -8295 +1142: 9414 +1143: -284 +1144: -8078 +1145: 1173 +1146: -3106 +1147: -5145 +1148: 4581 +1149: 4293 +1150: -9351 +1151: -3608 +1152: -4602 +1153: 3158 +1154: 3473 +1155: -8134 +1156: 8469 +1157: 8490 +1158: -7021 +1159: -4714 +1160: -266 +1161: -1078 +1162: -3505 +1163: -4304 +1164: 7532 +1165: 844 +1166: -8729 +1167: -531 +1168: -5165 +1169: -7366 +1170: -8816 +1171: 8263 +1172: 2877 +1173: 577 +1174: 8084 +1175: 454 +1176: 9236 +1177: 6729 +1178: 7118 +1179: 5259 +1180: -3070 +1181: 7053 +1182: -4391 +1183: 6867 +1184: 7779 +1185: 4964 +1186: 5936 +1187: 5903 +1188: 5935 +1189: 89 +1190: 7341 +1191: -1069 +1192: 7147 +1193: 7675 +1194: -2649 +1195: 2139 +1196: 1329 +1197: 6771 +1198: -3603 +1199: -8126 +1200: 6696 +1201: 1986 +1202: 6165 +1203: -3369 +1204: -2988 +1205: 5698 +1206: -5107 +1207: -5540 +1208: -3265 +1209: -5012 +1210: -925 +1211: -7877 +1212: -4350 +1213: -5054 +1214: 823 +1215: 6904 +1216: -3748 +1217: -5336 +1218: -1182 +1219: -5330 +1220: 5953 +1221: 1207 +1222: 4982 +1223: 3340 +1224: 6890 +1225: 7353 +1226: 1604 +1227: 3375 +1228: 5183 +1229: -8854 +1230: -520 +1231: -9811 +1232: -8176 +1233: 6432 +1234: 6365 +1235: -7486 +1236: 1209 +1237: 2004 +1238: 5051 +1239: -9145 +1240: 7272 +1241: 5642 +1242: -4444 +1243: -7164 +1244: -1391 +1245: 7255 +1246: -5707 +1247: 3155 +1248: -3060 +1249: 2129 +1250: 7739 +1251: -8832 +1252: 7150 +1253: 7189 +1254: -8481 +1255: -4548 +1256: -8397 +1257: 8723 +1258: 6795 +1259: -8316 +1260: 3641 +1261: -4285 +1262: -5737 +1263: 4624 +1264: 9504 +1265: 9989 +1266: 6347 +1267: 2139 +1268: 1720 +1269: -1878 +1270: -7699 +1271: 3335 +1272: 6867 +1273: 3389 +1274: -8323 +1275: -4427 +1276: -8289 +1277: 1885 +1278: 7023 +1279: 6581 +1280: -8473 +1281: -3075 +1282: -2741 +1283: 7024 +1284: 1777 +1285: -3247 +1286: -9622 +1287: 98 +1288: -4352 +1289: 8366 +1290: -3568 +1291: -2996 +1292: -3178 +1293: 8097 +1294: -4951 +1295: 8481 +1296: 811 +1297: 5956 +1298: -7723 +1299: 5775 +1300: -3730 +1301: 91 +1302: -3541 +1303: 1632 +1304: 1278 +1305: 997 +1306: 4709 +1307: -3641 +1308: -7987 +1309: -7807 +1310: -9780 +1311: -8212 +1312: 7017 +1313: 1219 +1314: -3959 +1315: 7839 +1316: -5958 +1317: -9983 +1318: 1438 +1319: 5812 +1320: 6661 +1321: -7675 +1322: 9332 +1323: 5613 +1324: 6426 +1325: -5780 +1326: 1825 +1327: -9528 +1328: 1690 +1329: -8876 +1330: 3537 +1331: 1662 +1332: 9447 +1333: -9592 +1334: 637 +1335: 7177 +1336: 2258 +1337: -3418 +1338: 1377 +1339: 333 +1340: -5888 +1341: -8468 +1342: 5956 +1343: -3964 +1344: 2805 +1345: 8766 +1346: 2363 +1347: -3248 +1348: -5237 +1349: 7687 +1350: 2303 +1351: -7666 +1352: -5355 +1353: 1717 +1354: -787 +1355: -7507 +1356: -6519 +1357: -8161 +1358: 9497 +1359: -6957 +1360: 2341 +1361: 2311 +1362: 8953 +1363: -9827 +1364: -6313 +1365: 4831 +1366: 8950 +1367: 8546 +1368: 6655 +1369: 2312 +1370: 6576 +1371: 2407 +1372: -6148 +1373: -1542 +1374: -3477 +1375: 7631 +1376: 2031 +1377: -1967 +1378: 577 +1379: -5379 +1380: 1490 +1381: -1099 +1382: 335 +1383: 9599 +1384: 891 +1385: -8577 +1386: -4912 +1387: 6436 +1388: 5689 +1389: 1017 +1390: 6492 +1391: 8482 +1392: -6639 +1393: -3631 +1394: -5165 +1395: 6868 +1396: 1877 +1397: -8054 +1398: -9856 +1399: 6665 +1400: 6121 +1401: 499 +1402: 4459 +1403: -8802 +1404: -7777 +1405: 6774 +1406: 6110 +1407: 2196 +1408: -4708 +1409: -4378 +1410: -5273 +1411: -5189 +1412: 7839 +1413: 1914 +1414: -1702 +1415: -7112 +1416: -5802 +1417: 6110 +1418: 5535 +1419: 1332 +1420: 4861 +1421: 3595 +1422: 1654 +1423: -4030 +1424: -1373 +1425: 2358 +1426: 7460 +1427: -7937 +1428: 1896 +1429: 1378 +1430: -7819 +1431: 5830 +1432: 2120 +1433: 3816 +1434: -3190 +1435: -5606 +1436: 4928 +1437: 9186 +1438: -6697 +1439: 1238 +1440: 8089 +1441: 5505 +1442: 5907 +1443: 688 +1444: -3522 +1445: 4187 +1446: -7131 +1447: 1588 +1448: 2094 +1449: 8427 +1450: -2775 +1451: 7475 +1452: 6305 +1453: -4896 +1454: -4836 +1455: -4762 +1456: -3698 +1457: 8897 +1458: 5459 +1459: -6958 +1460: 774 +1461: -186 +1462: -5662 +1463: 6300 +1464: 4292 +1465: -4250 +1466: 6768 +1467: 4 +1468: -3989 +1469: -4232 +1470: -9421 +1471: 9062 +1472: 466 +1473: 483 +1474: 7154 +1475: -2420 +1476: 4099 +1477: -4248 +1478: 8304 +1479: 7423 +1480: -5961 +1481: 4983 +1482: 1525 +1483: -9526 +1484: -3265 +1485: -9853 +1486: 7195 +1487: 6142 +1488: 2286 +1489: -3307 +1490: 7121 +1491: -3995 +1492: 4357 +1493: -3116 +1494: 2433 +1495: 7072 +1496: -7918 +1497: 5901 +1498: -8502 +1499: 2598 +1500: -1599 +1501: -2637 +1502: 3801 +1503: 882 +1504: -4174 +1505: -8921 +1506: 2029 +1507: 2292 +1508: -9329 +1509: -7522 +1510: 7295 +1511: -160 +1512: -2656 +1513: -2871 +1514: -4166 +1515: -6589 +1516: 6014 +1517: -8481 +1518: 5325 +1519: 8692 +1520: 6533 +1521: -8425 +1522: 6141 +1523: -2944 +1524: 469 +1525: 8165 +1526: 8615 +1527: -2137 +1528: 5494 +1529: 4006 +1530: -5415 +1531: 6768 +1532: -8496 +1533: -4865 +1534: -3511 +1535: 2631 +1536: -3418 +1537: 538 +1538: 6426 +1539: 9933 +1540: -552 +1541: 7214 +1542: -5060 +1543: 2102 +1544: 6675 +1545: -6488 +1546: -8038 +1547: -2833 +1548: -7944 +1549: 9574 +1550: -7942 +1551: 1998 +1552: -2827 +1553: -8079 +1554: -7614 +1555: 7510 +1556: -3171 +1557: -8393 +1558: 1557 +1559: 4046 +1560: -9368 +1561: 6600 +1562: -5896 +1563: 2896 +1564: 5250 +1565: -6563 +1566: 6383 +1567: -1798 +1568: -7459 +1569: 4647 +1570: -8361 +1571: -8645 +1572: -7645 +1573: 3 +1574: 6579 +1575: 6764 +1576: 4953 +1577: -7377 +1578: 170 +1579: 1963 +1580: -2572 +1581: 7195 +1582: 6219 +1583: 7385 +1584: -9677 +1585: -7666 +1586: 7314 +1587: -3577 +1588: -7333 +1589: -2509 +1590: 7295 +1591: 8710 +1592: -8858 +1593: -2943 +1594: 2186 +1595: -3166 +1596: 5494 +1597: 1766 +1598: 404 +1599: 2453 +1600: 1123 +1601: 6707 +1602: -2923 +1603: -2518 +1604: -2747 +1605: 6175 +1606: 1808 +1607: -7384 +1608: 4821 +1609: 6399 +1610: 7419 +1611: -5184 +1612: 1121 +1613: 1409 +1614: -8844 +1615: 2082 +1616: -229 +1617: 5638 +1618: -3803 +1619: 1989 +1620: 1097 +1621: -3152 +1622: -8468 +1623: -6106 +1624: -9951 +1625: -305 +1626: -7409 +1627: -2651 +1628: 1870 +1629: 6383 +1630: 7779 +1631: -8531 +1632: 7314 +1633: -9466 +1634: 7073 +1635: -2513 +1636: -3868 +1637: 9402 +1638: -6926 +1639: -2396 +1640: 7619 +1641: -1113 +1642: 7259 +1643: -3120 +1644: -5185 +1645: -9278 +1646: -7507 +1647: -6122 +1648: -2667 +1649: 459 +1650: 3445 +1651: 5374 +1652: -6974 +1653: 1305 +1654: -3169 +1655: -9095 +1656: -5157 +1657: 7539 +1658: -8469 +1659: 6296 +1660: -2438 +1661: 3397 +1662: 5173 +1663: 9384 +1664: -8084 +1665: -2391 +1666: 1017 +1667: -4913 +1668: -8193 +1669: 4256 +1670: 811 +1671: 687 +1672: 2721 +1673: 4679 +1674: -3398 +1675: -5165 +1676: -7651 +1677: -2536 +1678: -4834 +1679: -2708 +1680: -2592 +1681: -9443 +1682: 1413 +1683: 5698 +1684: -2801 +1685: -5031 +1686: -4263 +1687: 4998 +1688: 4070 +1689: 7166 +1690: -7582 +1691: 9166 +1692: 8746 +1693: 1632 +1694: -7815 +1695: -4483 +1696: 393 +1697: 7350 +1698: 9234 +1699: -9256 +1700: -884 +1701: 6771 +1702: -2939 +1703: 2064 +1704: -1719 +1705: -2392 +1706: 2029 +1707: -2640 +1708: -3507 +1709: -2295 +1710: -6267 +1711: -2965 +1712: 5041 +1713: -1214 +1714: 7432 +1715: 855 +1716: -7719 +1717: 2361 +1718: 8810 +1719: -4734 +1720: -7468 +1721: -2302 +1722: -7589 +1723: -2612 +1724: 211 +1725: -8684 +1726: -1669 +1727: -8067 +1728: 6890 +1729: 3686 +1730: 8456 +1731: -3252 +1732: 9172 +1733: 6803 +1734: 5051 +1735: -3412 +1736: -7357 +1737: -2756 +1738: 757 +1739: -3088 +1740: 7506 +1741: -1142 +1742: 1766 +1743: 2152 +1744: 6583 +1745: -3622 +1746: 8419 +1747: -4083 +1748: 477 +1749: 8986 +1750: -7817 +1751: -3033 +1752: 5002 +1753: 2488 +1754: -1962 +1755: -7907 +1756: 8232 +1757: 713 +1758: -8035 +1759: -2838 +1760: 6877 +1761: 5487 +1762: -2495 +1763: -9539 +1764: -6813 +1765: 1350 +1766: 7642 +1767: 479 +1768: 1067 +1769: -9067 +1770: 7552 +1771: -4679 +1772: -7722 +1773: -5253 +1774: -2427 +1775: 1807 +1776: 3629 +1777: 7948 +1778: -4165 +1779: 3641 +1780: -8261 +1781: 8907 +1782: 7811 +1783: -8642 +1784: 6960 +1785: 9247 +1786: -3219 +1787: 7624 +1788: -8297 +1789: -7479 +1790: 757 +1791: 7805 +1792: 6040 +1793: -2477 +1794: 1637 +1795: -7957 +1796: -822 +1797: 2341 +1798: 2425 +1799: -6004 +1800: 9930 +1801: 2493 +1802: 5421 +1803: 8309 +1804: 4821 +1805: -2307 +1806: -2654 +1807: -2174 +1808: 2299 +1809: -7498 +1810: 2442 +1811: -8505 +1812: -7047 +1813: 7288 +1814: -1741 +1815: -4673 +1816: 9390 +1817: -7905 +1818: 1782 +1819: 458 +1820: -3237 +1821: -8017 +1822: 6600 +1823: 508 +1824: -7306 +1825: -3148 +1826: -2915 +1827: 2776 +1828: -7267 +1829: 2151 +1830: -4093 +1831: -2172 +1832: 1222 +1833: 7866 +1834: 8532 +1835: -1025 +1836: 7465 +1837: 6676 +1838: -7692 +1839: -3131 +1840: -7226 +1841: 6383 +1842: 9609 +1843: -3457 +1844: 2449 +1845: 288 +1846: 2179 +1847: -1197 +1848: -8778 +1849: -2951 +1850: 1267 +1851: -8444 +1852: -7723 +1853: 4502 +1854: 2903 +1855: -9951 +1856: 7306 +1857: 9705 +1858: 3746 +1859: 3771 +1860: 8222 +1861: -5498 +1862: 6363 +1863: -4008 +1864: -4749 +1865: 7655 +1866: 2686 +1867: -7658 +1868: 7811 +1869: -8773 +1870: 4669 +1871: -4774 +1872: 4958 +1873: 173 +1874: -603 +1875: -6175 +1876: 86 +1877: 8138 +1878: -2060 +1879: 9371 +1880: -8017 +1881: 5179 +1882: -5355 +1883: -451 +1884: -7318 +1885: -7463 +1886: 7035 +1887: 6584 +1888: -7703 +1889: -7366 +1890: -8026 +1891: 2907 +1892: -5176 +1893: 977 +1894: -8042 +1895: -8029 +1896: -3463 +1897: 6175 +1898: 5805 +1899: -2951 +1900: -2207 +1901: 4840 +1902: 2407 +1903: 7512 +1904: -9487 +1905: -5661 +1906: 4326 +1907: -4285 +1908: 3590 +1909: 6690 +1910: 2836 +1911: -6686 +1912: -6678 +1913: 7807 +1914: -4008 +1915: -2368 +1916: 5506 +1917: 1525 +1918: -7166 +1919: 1636 +1920: 6681 +1921: -583 +1922: 857 +1923: -7925 +1924: 3247 +1925: 4374 +1926: -7747 +1927: -225 +1928: 8522 +1929: 701 +1930: -5555 +1931: -2705 +1932: 6492 +1933: -3537 +1934: -5780 +1935: 7949 +1936: -2157 +1937: -7439 +1938: 2853 +1939: -5147 +1940: -9423 +1941: 9367 +1942: 2949 +1943: -7194 +1944: -2446 +1945: 706 +1946: -6716 +1947: 1490 +1948: -6385 +1949: -6067 +1950: 9194 +1951: 8491 +1952: 7015 +1953: 9466 +1954: 7879 +1955: -6413 +1956: -8808 +1957: 1230 +1958: -8143 +1959: 5575 +1960: -9142 +1961: 713 +1962: 6363 +1963: 8020 +1964: -5183 +1965: 4909 +1966: -2804 +1967: -9256 +1968: 7216 +1969: 7907 +1970: 6918 +1971: 4812 +1972: -3252 +1973: 5081 +1974: -4618 +1975: 6342 +1976: -3209 +1977: -8022 +1978: 7949 +1979: 292 +1980: -2055 +1981: 9023 +1982: 5439 +1983: 4228 +1984: -3507 +1985: -1708 +1986: 961 +1987: -9856 +1988: 2126 +1989: -391 +1990: 2630 +1991: -5120 +1992: 7693 +1993: 637 +1994: -3848 +1995: -2159 +1996: 318 +1997: -8179 +1998: -7959 +1999: -9729 +2000: 1267 +2001: 7339 +2002: 7613 +2003: -6704 +2004: -3266 +2005: -7703 +2006: 6678 +2007: -7600 +2008: -7116 +2009: -2333 +2010: 8165 +2011: -9651 +2012: 6604 +2013: 3994 +2014: 2877 +2015: -2586 +2016: 2388 +2017: -4618 +2018: -8208 +2019: 8737 +2020: -4557 +2021: 7292 +2022: -791 +2023: 8142 +2024: 482 +2025: -2635 +2026: 8574 +2027: -3846 +2028: 4199 +2029: 2718 +2030: -7108 +2031: 7667 +2032: -7165 +2033: 1888 +2034: 5041 +2035: -1604 +2036: 4583 +2037: -7209 +2038: 2449 +2039: -7550 +2040: 6078 +2041: 3767 +2042: 7882 +2043: -7194 +2044: 5610 +2045: 7766 +2046: -2979 +2047: 3460 +2048: 2838 +2049: 9615 +2050: -2679 +2051: -2708 +2052: 4038 +2053: -5302 +2054: -7793 +2055: -7136 +2056: -7164 +2057: -7438 +2058: -7972 +2059: 9803 +2060: 7151 +2061: -7441 +2062: -5942 +2063: 7760 +2064: 7347 +2065: -2385 +2066: -9877 +2067: 7853 +2068: -8536 +2069: -1959 +2070: -865 +2071: -1352 +2072: 666 +2073: 5175 +2074: -2009 +2075: -6385 +2076: 7450 +2077: 7811 +2078: 2190 +2079: 7487 +2080: -5319 +2081: -5178 +2082: 1220 +2083: 3908 +2084: 1091 +2085: 6092 +2086: -4465 +2087: -3300 +2088: -8340 +2089: -7248 +2090: -8398 +2091: 5515 +2092: -7292 +2093: 2209 +2094: -6459 +2095: -8017 +2096: -1943 +2097: -8903 +2098: -92 +2099: 459 +2100: -3173 +2101: -4831 +2102: -2354 +2103: -7752 +2104: -2751 +2105: 2064 +2106: -3388 +2107: -2337 +2108: 9965 +2109: -1450 +2110: 1770 +2111: -9615 +2112: -7049 +2113: -1292 +2114: -9100 +2115: -7033 +2116: -6998 +2117: -2242 +2118: -889 +2119: 3390 +2120: 4648 +2121: 6632 +2122: 2427 +2123: -4770 +2124: 4315 +2125: -7510 +2126: 7063 +2127: -6905 +2128: -2021 +2129: -8144 +2130: 7649 +2131: 8040 +2132: -7470 +2133: 5513 +2134: 2398 +2135: -7049 +2136: 3787 +2137: -5168 +2138: 2619 +2139: -844 +2140: -2487 +2141: 150 +2142: 3141 +2143: -9095 +2144: 1350 +2145: -4996 +2146: -7049 +2147: 5969 +2148: 894 +2149: -7905 +2150: 4340 +2151: -2728 +2152: -6252 +2153: 7358 +2154: 6774 +2155: 1731 +2156: -7052 +2157: -7669 +2158: 7506 +2159: -2536 +2160: -5869 +2161: -2635 +2162: -7204 +2163: 5969 +2164: -9601 +2165: 6829 +2166: 1998 +2167: -4158 +2168: 2241 +2169: 9275 +2170: 1267 +2171: -8728 +2172: 2837 +2173: -1752 +2174: 1238 +2175: -4654 +2176: 2517 +2177: 2528 +2178: 7803 +2179: 2093 +2180: 2632 +2181: 776 +2182: -7167 +2183: -2232 +2184: -2658 +2185: 9926 +2186: 2432 +2187: -6925 +2188: 9883 +2189: -2055 +2190: 5959 +2191: 1435 +2192: -9112 +2193: -7944 +2194: -1899 +2195: -4280 +2196: -2521 +2197: -7258 +2198: 1766 +2199: -3520 +2200: -2058 +2201: 3145 +2202: -9538 +2203: 7747 +2204: -3279 +2205: 5405 +2206: -2261 +2207: -496 +2208: -5143 +2209: 1869 +2210: 8089 +2211: -6650 +2212: -2838 +2213: 6523 +2214: 6492 +2215: 7640 +2216: -2363 +2217: 1491 +2218: -310 +2219: -85 +2220: -2157 +2221: 2399 +2222: 2312 +2223: -7478 +2224: 9031 +2225: -6 +2226: 9688 +2227: 9863 +2228: -568 +2229: -2293 +2230: 2291 +2231: -7014 +2232: 612 +2233: -5183 +2234: 9438 +2235: -9967 +2236: -1982 +2237: -6896 +2238: -2897 +2239: 8159 +2240: -1994 +2241: -2096 +2242: -3358 +2243: 7897 +2244: 8872 +2245: -7664 +2246: 6078 +2247: 8629 +2248: 1943 +2249: -4815 +2250: 8469 +2251: 4708 +2252: 7432 +2253: -1631 +2254: 9374 +2255: 8093 +2256: 8063 +2257: -2385 +2258: 6524 +2259: -2153 +2260: 6209 +2261: -3966 +2262: 7279 +2263: -5706 +2264: 3546 +2265: 7801 +2266: -3756 +2267: 4448 +2268: 2619 +2269: 9421 +2270: 9856 +2271: -7779 +2272: -3457 +2273: 704 +2274: -7439 +2275: -2838 +2276: -3598 +2277: 7185 +2278: 7168 +2279: 3048 +2280: 3216 +2281: 2945 +2282: 8032 +2283: -2058 +2284: 8197 +2285: -2738 +2286: -2040 +2287: 7613 +2288: 1885 +2289: 6060 +2290: 4302 +2291: -1865 +2292: 9411 +2293: -2653 +2294: 1929 +2295: 7501 +2296: -7514 +2297: -7743 +2298: 2155 +2299: 9510 +2300: -1784 +2301: -1320 +2302: -9128 +2303: -8928 +2304: -6193 +2305: -2329 +2306: -7667 +2307: 2167 +2308: -3676 +2309: 7359 +2310: -4141 +2311: -925 +2312: 8589 +2313: 8305 +2314: 3546 +2315: 6572 +2316: -9803 +2317: -7027 +2318: 1103 +2319: 7662 +2320: 7662 +2321: -5161 +2322: 2303 +2323: 9685 +2324: -7003 +2325: 9841 +2326: -1092 +2327: -1020 +2328: -7750 +2329: -6794 +2330: -8085 +2331: -7680 +2332: -4516 +2333: 1265 +2334: 8834 +2335: -7959 +2336: -2711 +2337: 8912 +2338: -7075 +2339: -2636 +2340: -7440 +2341: 5959 +2342: -9541 +2343: 4569 +2344: 7077 +2345: 9196 +2346: 7113 +2347: -9438 +2348: -8141 +2349: -2871 +2350: 662 +2351: -6916 +2352: -7058 +2353: -8156 +2354: 8073 +2355: 2744 +2356: 4024 +2357: 5554 +2358: -8630 +2359: -8525 +2360: -6201 +2361: 5983 +2362: -9561 +2363: 7436 +2364: -9080 +2365: 6751 +2366: 8995 +2367: 4020 +2368: 2231 +2369: 4269 +2370: -2857 +2371: -6998 +2372: -6728 +2373: -1788 +2374: -8252 +2375: 8176 +2376: 2562 +2377: 2848 +2378: 5519 +2379: -3482 +2380: 755 +2381: 9421 +2382: -3289 +2383: 7608 +2384: 2619 +2385: -4852 +2386: -1766 +2387: -760 +2388: 3723 +2389: -6606 +2390: 3839 +2391: 8801 +2392: 7900 +2393: 2319 +2394: 3196 +2395: 5391 +2396: 1281 +2397: 7945 +2398: 7847 +2399: -1876 +2400: -2756 +2401: -6861 +2402: -3292 +2403: 6365 +2404: 4913 +2405: -2438 +2406: 5659 +2407: 4868 +2408: -1723 +2409: -4417 +2410: 155 +2411: -5069 +2412: 2473 +2413: 7664 +2414: 3247 +2415: 8916 +2416: -2005 +2417: -8616 +2418: -5757 +2419: 1854 +2420: -7286 +2421: 1988 +2422: 8125 +2423: -4824 +2424: 2712 +2425: 7127 +2426: -1550 +2427: -9192 +2428: -7086 +2429: -725 +2430: 7529 +2431: -4525 +2432: -7654 +2433: 6363 +2434: 2298 +2435: -1924 +2436: -6838 +2437: -5610 +2438: 539 +2439: -6004 +2440: -1398 +2441: -2266 +2442: 8817 +2443: 4515 +2444: 2562 +2445: -2345 +2446: -3138 +2447: -8724 +2448: -6790 +2449: 6742 +2450: -4042 +2451: 1247 +2452: 9989 +2453: -1202 +2454: 7647 +2455: 2019 +2456: -1960 +2457: -6450 +2458: -9146 +2459: -8164 +2460: -6676 +2461: -6701 +2462: -3204 +2463: 3011 +2464: -6948 +2465: -2325 +2466: -6769 +2467: 1693 +2468: -8289 +2469: 2670 +2470: -7519 +2471: 4920 +2472: 571 +2473: 6748 +2474: 2191 +2475: -4567 +2476: 3117 +2477: 3085 +2478: -2285 +2479: 3659 +2480: -970 +2481: -2965 +2482: 3173 +2483: -8281 +2484: 2315 +2485: 8182 +2486: 8195 +2487: -7530 +2488: -4155 +2489: -2161 +2490: 3049 +2491: -9421 +2492: -2376 +2493: 1912 +2494: -802 +2495: -5634 +2496: 6748 +2497: -7033 +2498: 9658 +2499: 7226 +2500: -6955 +2501: -7007 +2502: 5425 +2503: 1890 +2504: -6958 +2505: -8758 +2506: 5338 +2507: -6630 +2508: 3309 +2509: 2004 +2510: 5812 +2511: -3760 +2512: 9087 +2513: -3025 +2514: 7412 +2515: -6237 +2516: 8165 +2517: 1705 +2518: -4517 +2519: -1835 +2520: 3768 +2521: -9731 +2522: -3958 +2523: 3171 +2524: 1433 +2525: -7055 +2526: -6404 +2527: -2203 +2528: -8164 +2529: -2679 +2530: -7139 +2531: 2351 +2532: 76 +2533: 9023 +2534: -3733 +2535: -3201 +2536: 9408 +2537: -6692 +2538: -8858 +2539: 5575 +2540: 7739 +2541: 5456 +2542: -2143 +2543: 7461 +2544: 8293 +2545: -4272 +2546: 8381 +2547: -4602 +2548: -8393 +2549: -2624 +2550: -2273 +2551: 7610 +2552: 7822 +2553: -1336 +2554: -1632 +2555: -1725 +2556: 5495 +2557: -3423 +2558: 7650 +2559: -6824 +2560: -7377 +2561: 8084 +2562: -2534 +2563: 5106 +2564: -5312 +2565: -3186 +2566: 7251 +2567: -1637 +2568: 7309 +2569: 7016 +2570: 1554 +2571: 1028 +2572: 1308 +2573: 6958 +2574: 7709 +2575: -1861 +2576: -6749 +2577: -225 +2578: -6441 +2579: -7027 +2580: -7560 +2581: 2433 +2582: -5228 +2583: -8837 +2584: 7714 +2585: 8349 +2586: -8987 +2587: 9961 +2588: 1821 +2589: 2913 +2590: -2434 +2591: 8148 +2592: 8289 +2593: 4035 +2594: -9596 +2595: 4844 +2596: 1214 +2597: -7267 +2598: 7098 +2599: -2107 +2600: -379 +2601: -2009 +2602: -1408 +2603: -7509 +2604: 8538 +2605: -8544 +2606: 1574 +2607: 7145 +2608: 8410 +2609: 8151 +2610: 9240 +2611: -9099 +2612: 4828 +2613: -3608 +2614: -7777 +2615: 2598 +2616: 7948 +2617: -6813 +2618: -8549 +2619: 6158 +2620: -3424 +2621: -9100 +2622: 4723 +2623: 2877 +2624: -1660 +2625: 9824 +2626: -7771 +2627: -5072 +2628: -9272 +2629: 5489 +2630: 1112 +2631: -7408 +2632: -6824 +2633: -2203 +2634: 8293 +2635: -2850 +2636: 8986 +2637: -7295 +2638: -2412 +2639: -6424 +2640: 6718 +2641: 1557 +2642: -1792 +2643: -8865 +2644: 1635 +2645: 5554 +2646: 6331 +2647: 8868 +2648: 9887 +2649: 1753 +2650: 8098 +2651: -1875 +2652: 2339 +2653: -1694 +2654: -6184 +2655: 2399 +2656: 8453 +2657: 2037 +2658: 228 +2659: -9288 +2660: -2642 +2661: 9113 +2662: 5630 +2663: 8146 +2664: 1393 +2665: -6126 +2666: 2799 +2667: 2720 +2668: 3137 +2669: 3212 +2670: 5506 +2671: 1043 +2672: -4951 +2673: -7553 +2674: 7844 +2675: 3106 +2676: -9711 +2677: -1483 +2678: -704 +2679: 3216 +2680: 2772 +2681: -6751 +2682: -1733 +2683: -9580 +2684: -8369 +2685: -8554 +2686: 3415 +2687: -3698 +2688: 3309 +2689: 5198 +2690: -1982 +2691: -7152 +2692: 6600 +2693: -2061 +2694: -1950 +2695: -9837 +2696: 634 +2697: 9576 +2698: -6777 +2699: 1482 +2700: -5822 +2701: -2241 +2702: -3574 +2703: -7007 +2704: -9026 +2705: 4269 +2706: -993 +2707: 98 +2708: -2078 +2709: 2808 +2710: 2762 +2711: 8818 +2712: 3916 +2713: 4829 +2714: 7845 +2715: -7985 +2716: -2252 +2717: 3950 +2718: 5837 +2719: 7078 +2720: -3614 +2721: 3447 +2722: -6515 +2723: -9256 +2724: 9198 +2725: 9877 +2726: 5101 +2727: -8398 +2728: 3439 +2729: 5173 +2730: 3321 +2731: -2392 +2732: -6948 +2733: -9276 +2734: 3867 +2735: 1335 +2736: -7234 +2737: 3480 +2738: -3734 +2739: -6698 +2740: 483 +2741: 7814 +2742: -8067 +2743: 4668 +2744: -8269 +2745: -6972 +2746: 5747 +2747: -1766 +2748: 5627 +2749: 6846 +2750: -7409 +2751: 111 +2752: -7337 +2753: -8872 +2754: 3210 +2755: -9729 +2756: 2433 +2757: 9397 +2758: -6143 +2759: 5706 +2760: -8854 +2761: -8126 +2762: -2923 +2763: 3149 +2764: -987 +2765: -4351 +2766: -1940 +2767: -2158 +2768: 3533 +2769: -7075 +2770: -516 +2771: 3301 +2772: -4762 +2773: -4113 +2774: 7926 +2775: -7052 +2776: 8503 +2777: -352 +2778: 8471 +2779: -3286 +2780: -6657 +2781: 7779 +2782: 8447 +2783: 3420 +2784: -1480 +2785: -4306 +2786: -2121 +2787: -4702 +2788: -4888 +2789: 8561 +2790: 2229 +2791: -9855 +2792: 779 +2793: -6614 +2794: 8396 +2795: 576 +2796: 7845 +2797: 6016 +2798: 5984 +2799: 3425 +2800: -6721 +2801: -6940 +2802: -4082 +2803: -1537 +2804: -5091 +2805: 3533 +2806: -6439 +2807: 3389 +2808: 1720 +2809: -3564 +2810: 6289 +2811: -7030 +2812: -6962 +2813: 4260 +2814: -7102 +2815: 5316 +2816: 109 +2817: -3947 +2818: 3425 +2819: -264 +2820: 7840 +2821: 7809 +2822: 747 +2823: 1986 +2824: 1488 +2825: -4469 +2826: 6389 +2827: -8281 +2828: -1982 +2829: 664 +2830: 662 +2831: -1430 +2832: 1821 +2833: -1825 +2834: -7030 +2835: 6813 +2836: -7040 +2837: -9313 +2838: 7840 +2839: 9824 +2840: 7916 +2841: 3513 +2842: -4861 +2843: -239 +2844: -6055 +2845: -6269 +2846: 7675 +2847: 3397 +2848: -6584 +2849: -3169 +2850: -2850 +2851: -6367 +2852: 2037 +2853: -6550 +2854: -9422 +2855: -289 +2856: -8151 +2857: 4140 +2858: 6323 +2859: 8033 +2860: -1214 +2861: 3370 +2862: -6737 +2863: 3659 +2864: 8734 +2865: 4534 +2866: 8433 +2867: 3120 +2868: -7586 +2869: -8699 +2870: -6863 +2871: -2009 +2872: -3061 +2873: 3227 +2874: 3268 +2875: 1230 +2876: -1328 +2877: -5177 +2878: -3850 +2879: 9805 +2880: 1435 +2881: -2477 +2882: 2629 +2883: 78 +2884: -1723 +2885: -6739 +2886: 1606 +2887: -8957 +2888: 5885 +2889: 1454 +2890: -8572 +2891: 357 +2892: 4598 +2893: 9965 +2894: -6947 +2895: 2046 +2896: 3769 +2897: -8592 +2898: -2534 +2899: 7385 +2900: -1529 +2901: 9475 +2902: 6331 +2903: 1428 +2904: 8625 +2905: -7284 +2906: 9165 +2907: -9342 +2908: 1683 +2909: -7058 +2910: -2671 +2911: 7148 +2912: 5287 +2913: -6569 +2914: -2828 +2915: -1206 +2916: 6897 +2917: -6756 +2918: 8250 +2919: 1005 +2920: 3583 +2921: -3003 +2922: -1695 +2923: 8919 +2924: -3164 +2925: -2996 +2926: 4323 +2927: 6012 +2928: -1531 +2929: -4643 +2930: -9176 +2931: -1460 +2932: -1954 +2933: -1773 +2934: -490 +2935: 9920 +2936: 5325 +2937: -5016 +2938: 2520 +2939: 7349 +2940: -8135 +2941: 3404 +2942: 2089 +2943: -2416 +2944: 8349 +2945: 6960 +2946: -6704 +2947: -9367 +2948: 3604 +2949: 6427 +2950: -6360 +2951: 6256 +2952: 8543 +2953: -2161 +2954: -4143 +2955: 4147 +2956: -6987 +2957: 4424 +2958: -9848 +2959: 6142 +2960: -6882 +2961: 8596 +2962: 4744 +2963: 2006 +2964: -6374 +2965: 4038 +2966: 2301 +2967: -9528 +2968: -6610 +2969: 6904 +2970: 3645 +2971: 7178 +2972: 3129 +2973: 4413 +2974: -1632 +2975: 5566 +2976: -6985 +2977: 5103 +2978: 4172 +2979: -6883 +2980: 940 +2981: -3306 +2982: -9623 +2983: 8172 +2984: -3315 +2985: -3437 +2986: 9980 +2987: -2881 +2988: -8544 +2989: -6384 +2990: -1348 +2991: 5571 +2992: 6249 +2993: 7465 +2994: -7521 +2995: -8897 +2996: -1664 +2997: 6704 +2998: 3098 +2999: -9194 +3000: 6623 +3001: 3671 +3002: 6783 +3003: -1940 +3004: 7066 +3005: -1808 +3006: 1930 +3007: -6470 +3008: -2401 +3009: -8621 +3010: -8535 +3011: -6338 +3012: 2139 +3013: -7853 +3014: 8295 +3015: -2385 +3016: 3495 +3017: -1792 +3018: 7117 +3019: 3359 +3020: -5101 +3021: 7675 +3022: 5483 +3023: -1762 +3024: 576 +3025: 6677 +3026: 9475 +3027: -2841 +3028: 8304 +3029: -1238 +3030: -6646 +3031: 9797 +3032: 6352 +3033: 1221 +3034: 8213 +3035: -5699 +3036: 8170 +3037: -1615 +3038: -8793 +3039: -1323 +3040: -8816 +3041: -2532 +3042: 3335 +3043: -8874 +3044: -6526 +3045: 3681 +3046: 3994 +3047: -4988 +3048: -839 +3049: -4176 +3050: 1356 +3051: -8078 +3052: 3660 +3053: -1895 +3054: -3210 +3055: 6068 +3056: 9826 +3057: 7683 +3058: 924 +3059: -2157 +3060: 8159 +3061: -1042 +3062: -8446 +3063: -8473 +3064: 2337 +3065: 6978 +3066: 3134 +3067: -6672 +3068: 2404 +3069: -2271 +3070: 9979 +3071: 3473 +3072: 5403 +3073: 3463 +3074: 7906 +3075: -2573 +3076: 3381 +3077: -6697 +3078: -2691 +3079: 8692 +3080: -1160 +3081: -7167 +3082: 3544 +3083: 5041 +3084: 7259 +3085: 5036 +3086: -5591 +3087: -440 +3088: -6439 +3089: 5247 +3090: -2910 +3091: 1731 +3092: -1463 +3093: 3193 +3094: -4159 +3095: 9173 +3096: -3457 +3097: -5377 +3098: -2801 +3099: -7838 +3100: -7344 +3101: -3990 +3102: -134 +3103: 4038 +3104: 5212 +3105: -3931 +3106: 7358 +3107: 7739 +3108: 3659 +3109: 4587 +3110: 3571 +3111: -2497 +3112: -6330 +3113: 3117 +3114: -2153 +3115: 8553 +3116: -1529 +3117: -8285 +3118: 3216 +3119: -8366 +3120: -6213 +3121: 3469 +3122: 2160 +3123: 4038 +3124: -7907 +3125: -4605 +3126: 3213 +3127: -6563 +3128: -2686 +3129: 1340 +3130: 4583 +3131: -2576 +3132: 3430 +3133: 2307 +3134: 8585 +3135: -8150 +3136: 6604 +3137: -513 +3138: -81 +3139: -7877 +3140: -9638 +3141: 7230 +3142: -6879 +3143: -5103 +3144: 7560 +3145: -5351 +3146: -7226 +3147: 1753 +3148: 3247 +3149: -8837 +3150: -2670 +3151: -1202 +3152: 1234 +3153: 1027 +3154: -3726 +3155: -7403 +3156: 8417 +3157: 9864 +3158: 2004 +3159: -8067 +3160: 8457 +3161: 8717 +3162: 3425 +3163: 7262 +3164: -1214 +3165: -3425 +3166: 5750 +3167: 1011 +3168: 577 +3169: 9691 +3170: -1353 +3171: -15 +3172: -5473 +3173: 5828 +3174: 3385 +3175: 8302 +3176: -6269 +3177: -1801 +3178: -5993 +3179: 2061 +3180: 1853 +3181: 8408 +3182: -2718 +3183: -7843 +3184: 7850 +3185: 4782 +3186: 4410 +3187: -4702 +3188: 7580 +3189: -1996 +3190: -7696 +3191: -912 +3192: -4449 +3193: 2038 +3194: 2990 +3195: 6259 +3196: 8437 +3197: 2767 +3198: -5946 +3199: -588 +3200: 994 +3201: 5135 +3202: 9795 +3203: 7801 +3204: -1835 +3205: -7204 +3206: -33 +3207: -2203 +3208: -1334 +3209: -9768 +3210: -2159 +3211: 4363 +3212: -6793 +3213: -6027 +3214: 3496 +3215: -6060 +3216: 8176 +3217: -6466 +3218: -9856 +3219: 9524 +3220: -6240 +3221: 7572 +3222: 4798 +3223: -1206 +3224: -7557 +3225: -160 +3226: 8725 +3227: 9943 +3228: -1430 +3229: -3176 +3230: -5846 +3231: 4534 +3232: -7755 +3233: 3090 +3234: -1669 +3235: 678 +3236: -1378 +3237: 566 +3238: 7877 +3239: 2907 +3240: -2083 +3241: -5422 +3242: -2817 +3243: -9795 +3244: -7983 +3245: -6599 +3246: -309 +3247: -6203 +3248: -6560 +3249: -6250 +3250: 5403 +3251: 2505 +3252: 5246 +3253: -6678 +3254: 3374 +3255: -7180 +3256: 8870 +3257: 8795 +3258: 8799 +3259: 6185 +3260: 7383 +3261: -5783 +3262: 3301 +3263: -1828 +3264: -2089 +3265: -6824 +3266: 2906 +3267: -7960 +3268: -1495 +3269: -3819 +3270: -9910 +3271: -9066 +3272: -373 +3273: -7026 +3274: -9023 +3275: 5101 +3276: 1554 +3277: -4083 +3278: 5182 +3279: 7407 +3280: -1516 +3281: -7384 +3282: 2913 +3283: -6298 +3284: -6303 +3285: -6095 +3286: -3089 +3287: -7371 +3288: -1671 +3289: 3848 +3290: 7399 +3291: 3907 +3292: 2492 +3293: 6639 +3294: 1989 +3295: -2392 +3296: -5272 +3297: 3671 +3298: -9859 +3299: -1426 +3300: 8727 +3301: -3458 +3302: -4924 +3303: 8799 +3304: 333 +3305: -2392 +3306: 8447 +3307: -2434 +3308: 5343 +3309: -8227 +3310: 3786 +3311: 666 +3312: 6276 +3313: 1879 +3314: -6913 +3315: 5117 +3316: 6199 +3317: -5489 +3318: -7464 +3319: 5461 +3320: -2025 +3321: -1955 +3322: 1275 +3323: 3643 +3324: 4003 +3325: -9381 +3326: 3467 +3327: -3428 +3328: 5613 +3329: 20 +3330: 9023 +3331: -4574 +3332: -269 +3333: 7178 +3334: -9796 +3335: -7437 +3336: 1673 +3337: -3909 +3338: -3109 +3339: -1207 +3340: 8262 +3341: 8852 +3342: -3740 +3343: -8350 +3344: -3383 +3345: -8812 +3346: -8042 +3347: 6206 +3348: 3090 +3349: 2448 +3350: 5233 +3351: -1687 +3352: 7254 +3353: -8755 +3354: -6082 +3355: 9603 +3356: 8868 +3357: 6299 +3358: -6736 +3359: 3569 +3360: -1958 +3361: 8699 +3362: 5944 +3363: -6043 +3364: 1632 +3365: 5065 +3366: 2042 +3367: 2298 +3368: 6267 +3369: 3863 +3370: -9 +3371: 6945 +3372: 891 +3373: -6126 +3374: 2033 +3375: -2271 +3376: 3498 +3377: -7614 +3378: -2782 +3379: 3430 +3380: -2389 +3381: -1774 +3382: -1800 +3383: 3615 +3384: -6695 +3385: -1571 +3386: 2548 +3387: -5238 +3388: -8719 +3389: -5223 +3390: 2488 +3391: -6635 +3392: -6443 +3393: 2457 +3394: 1929 +3395: 9522 +3396: 7076 +3397: 8480 +3398: -6335 +3399: 3851 +3400: 5421 +3401: 4089 +3402: 2703 +3403: 7949 +3404: 7297 +3405: 3115 +3406: 763 +3407: -505 +3408: 2879 +3409: -1348 +3410: 7261 +3411: -1514 +3412: -3088 +3413: 3356 +3414: 1988 +3415: -8676 +3416: 5177 +3417: -7585 +3418: 7259 +3419: -6360 +3420: -5595 +3421: 3495 +3422: 827 +3423: -6711 +3424: 6155 +3425: 1704 +3426: -7149 +3427: -6525 +3428: -2080 +3429: -1365 +3430: 8974 +3431: -8547 +3432: -2747 +3433: 546 +3434: 5225 +3435: -1214 +3436: -3852 +3437: 6896 +3438: 8611 +3439: 8192 +3440: -1352 +3441: 2718 +3442: -9967 +3443: -3123 +3444: 3053 +3445: -6099 +3446: -430 +3447: -4513 +3448: 6677 +3449: 8911 +3450: -1466 +3451: 9049 +3452: 5513 +3453: 8535 +3454: -8350 +3455: 228 +3456: -5984 +3457: 2675 +3458: -6672 +3459: -5060 +3460: -3965 +3461: -6618 +3462: 3129 +3463: -380 +3464: 2590 +3465: -6237 +3466: -6109 +3467: -6241 +3468: -1579 +3469: -5994 +3470: -2651 +3471: 6620 +3472: -1011 +3473: 2877 +3474: -1622 +3475: -3710 +3476: 6652 +3477: -2396 +3478: -5022 +3479: 3324 +3480: 8450 +3481: 8721 +3482: 9032 +3483: 7741 +3484: -1377 +3485: 8479 +3486: -2585 +3487: 2591 +3488: -6088 +3489: -3868 +3490: 1249 +3491: 4308 +3492: -1269 +3493: -956 +3494: -9663 +3495: 6514 +3496: 4020 +3497: 8588 +3498: -6877 +3499: 3381 +3500: -6297 +3501: -6037 +3502: 7897 +3503: -7338 +3504: 1793 +3505: 3502 +3506: 4042 +3507: -2571 +3508: -1156 +3509: -4370 +3510: -3463 +3511: -6361 +3512: -8886 +3513: 8556 +3514: 7423 +3515: -7375 +3516: -2241 +3517: -1042 +3518: 8810 +3519: 8289 +3520: -1963 +3521: 4567 +3522: -7902 +3523: -4951 +3524: -2923 +3525: -6321 +3526: 6036 +3527: 86 +3528: 5627 +3529: 3753 +3530: 7610 +3531: -9477 +3532: -2266 +3533: 8917 +3534: -6109 +3535: -7530 +3536: -9450 +3537: -5360 +3538: -4818 +3539: -5127 +3540: -7408 +3541: -4940 +3542: 5410 +3543: 7346 +3544: -6043 +3545: 1664 +3546: 9031 +3547: -4938 +3548: -6113 +3549: 961 +3550: 7683 +3551: 5025 +3552: -8304 +3553: 3768 +3554: 8955 +3555: 3835 +3556: -6148 +3557: 3712 +3558: -995 +3559: 9928 +3560: -6967 +3561: -6347 +3562: -3594 +3563: 8413 +3564: -1160 +3565: -4993 +3566: 8570 +3567: -6042 +3568: 8593 +3569: -2686 +3570: -225 +3571: -6338 +3572: 2388 +3573: 3540 +3574: 5658 +3575: -2293 +3576: 5094 +3577: 2410 +3578: -4149 +3579: -9274 +3580: 1080 +3581: -4126 +3582: -6367 +3583: -3238 +3584: 2877 +3585: 1362 +3586: -7052 +3587: -4875 +3588: -2667 +3589: 840 +3590: 9108 +3591: -6704 +3592: -6162 +3593: 6557 +3594: -4630 +3595: 8446 +3596: 7011 +3597: 8006 +3598: -4980 +3599: -5557 +3600: 643 +3601: -1199 +3602: -2401 +3603: 6853 +3604: -6922 +3605: 1804 +3606: -3550 +3607: 3632 +3608: 3473 +3609: -6105 +3610: 7473 +3611: 5231 +3612: 3983 +3613: 1548 +3614: -1657 +3615: -9456 +3616: -7240 +3617: -1116 +3618: -1302 +3619: -6669 +3620: -5860 +3621: -9194 +3622: 2006 +3623: -1142 +3624: 9753 +3625: 6927 +3626: -4257 +3627: 5257 +3628: 1601 +3629: -2586 +3630: -1304 +3631: 8912 +3632: 2853 +3633: -5050 +3634: -5885 +3635: 9288 +3636: -4354 +3637: -1405 +3638: -6330 +3639: 7063 +3640: 7028 +3641: 3396 +3642: -6367 +3643: 4166 +3644: -6361 +3645: 5732 +3646: -7654 +3647: 2024 +3648: 4333 +3649: 7212 +3650: 4776 +3651: 2321 +3652: 8710 +3653: -4514 +3654: -8120 +3655: 4180 +3656: -3118 +3657: 8546 +3658: 6514 +3659: 3419 +3660: -2026 +3661: -6103 +3662: -6250 +3663: -4935 +3664: -7061 +3665: -9046 +3666: 4686 +3667: -9878 +3668: -6162 +3669: -1493 +3670: 7262 +3671: -819 +3672: -2883 +3673: 2756 +3674: -7415 +3675: 2449 +3676: -6004 +3677: 725 +3678: 9921 +3679: 7319 +3680: -445 +3681: 9726 +3682: -4548 +3683: -6486 +3684: 8692 +3685: 3153 +3686: -851 +3687: -8830 +3688: -6848 +3689: 4003 +3690: -4435 +3691: -6873 +3692: -8817 +3693: -4352 +3694: -4529 +3695: -8385 +3696: 2048 +3697: 2702 +3698: -2217 +3699: -7955 +3700: -2276 +3701: 30 +3702: 2978 +3703: 5820 +3704: 3792 +3705: -6166 +3706: 9196 +3707: 9224 +3708: 9010 +3709: -8620 +3710: -7501 +3711: -1689 +3712: 6515 +3713: 127 +3714: -1525 +3715: -1035 +3716: 1945 +3717: -1723 +3718: -1017 +3719: -9710 +3720: -7660 +3721: 2493 +3722: 3907 +3723: 7188 +3724: -9278 +3725: -2070 +3726: -1575 +3727: -9010 +3728: -819 +3729: 8397 +3730: -3462 +3731: -799 +3732: -1091 +3733: 4186 +3734: -6530 +3735: -5838 +3736: -3603 +3737: -3842 +3738: 8084 +3739: 4598 +3740: 7216 +3741: -868 +3742: 8746 +3743: 9266 +3744: -9732 +3745: 6353 +3746: -773 +3747: 3151 +3748: 7148 +3749: -3238 +3750: -4709 +3751: -2242 +3752: -6503 +3753: -6464 +3754: 1438 +3755: -6657 +3756: 2972 +3757: -8286 +3758: 7839 +3759: -7055 +3760: -8225 +3761: -3759 +3762: 8917 +3763: 7264 +3764: 4151 +3765: -8162 +3766: 8516 +3767: -6166 +3768: -6485 +3769: -8398 +3770: 7882 +3771: 4151 +3772: -761 +3773: -2330 +3774: -3166 +3775: 6276 +3776: -3762 +3777: 7461 +3778: -716 +3779: -6122 +3780: -9317 +3781: 8699 +3782: -788 +3783: -6238 +3784: -1835 +3785: -1017 +3786: 8783 +3787: -5012 +3788: -9009 +3789: -8257 +3790: 9906 +3791: 8675 +3792: 3467 +3793: 1051 +3794: 3709 +3795: -8676 +3796: -4 +3797: 9213 +3798: -4913 +3799: 2404 +3800: -9110 +3801: 7667 +3802: -7609 +3803: -2706 +3804: -5754 +3805: -3979 +3806: -1984 +3807: 9191 +3808: -716 +3809: -4573 +3810: -5774 +3811: 4721 +3812: 8721 +3813: 7270 +3814: -6854 +3815: -7397 +3816: 8974 +3817: 8241 +3818: 9146 +3819: 1598 +3820: 2047 +3821: 669 +3822: 109 +3823: 6918 +3824: 877 +3825: -1092 +3826: 2376 +3827: -1259 +3828: 30 +3829: 3467 +3830: 4211 +3831: 217 +3832: -7225 +3833: 9799 +3834: 4100 +3835: -5318 +3836: -8739 +3837: 4645 +3838: 6133 +3839: 9944 +3840: -7312 +3841: -2421 +3842: -7666 +3843: 9045 +3844: 2210 +3845: 9215 +3846: 4147 +3847: 878 +3848: 4785 +3849: 5269 +3850: 8070 +3851: -1247 +3852: 9727 +3853: -5866 +3854: 9296 +3855: 91 +3856: 5041 +3857: 5737 +3858: 4333 +3859: 4211 +3860: -5851 +3861: -5785 +3862: -3003 +3863: -3227 +3864: 4006 +3865: -5931 +3866: 6350 +3867: -7328 +3868: -5699 +3869: -3762 +3870: -1825 +3871: -1921 +3872: 3377 +3873: 3485 +3874: -5757 +3875: -5103 +3876: 3891 +3877: -3011 +3878: -6320 +3879: 9228 +3880: -446 +3881: 266 +3882: 867 +3883: -5333 +3884: -6162 +3885: -1097 +3886: -3586 +3887: -6023 +3888: 9214 +3889: 6379 +3890: 5405 +3891: 4782 +3892: -4655 +3893: -8868 +3894: -6837 +3895: 3736 +3896: 7089 +3897: 9307 +3898: -1726 +3899: 3328 +3900: 5378 +3901: 7882 +3902: -5060 +3903: 3536 +3904: -1448 +3905: -1456 +3906: -4051 +3907: 2307 +3908: 3964 +3909: 9072 +3910: 945 +3911: 7060 +3912: 1322 +3913: 8063 +3914: -1571 +3915: -617 +3916: 1473 +3917: 8868 +3918: 7644 +3919: 7642 +3920: -8260 +3921: -5942 +3922: 3268 +3923: 4549 +3924: 2940 +3925: 9394 +3926: 6994 +3927: 9275 +3928: 9939 +3929: -7373 +3930: -9555 +3931: 7845 +3932: 1061 +3933: -873 +3934: 5287 +3935: 3987 +3936: -5923 +3937: -5925 +3938: -1322 +3939: 3291 +3940: -7054 +3941: 9372 +3942: -5783 +3943: 5851 +3944: -1142 +3945: -1820 +3946: -5660 +3947: -390 +3948: -8366 +3949: -1283 +3950: -5720 +3951: -6387 +3952: -6247 +3953: -443 +3954: 9299 +3955: -6985 +3956: 4289 +3957: -6667 +3958: -1394 +3959: 7429 +3960: -7521 +3961: 1683 +3962: 7092 +3963: 6736 +3964: 3310 +3965: -4285 +3966: 474 +3967: -7962 +3968: 5837 +3969: 9332 +3970: 4095 +3971: -6863 +3972: 8064 +3973: 6147 +3974: 4013 +3975: 9326 +3976: 1693 +3977: 2411 +3978: -1010 +3979: 9100 +3980: 9130 +3981: -3028 +3982: 6623 +3983: 4374 +3984: 7969 +3985: 1548 +3986: -6376 +3987: -7118 +3988: 3137 +3989: 9272 +3990: -2445 +3991: 393 +3992: 7997 +3993: 9856 +3994: -5997 +3995: 2032 +3996: -8531 +3997: 1941 +3998: 6234 +3999: 767 +4000: -9727 +4001: 3173 +4002: -1139 +4003: 2716 +4004: -912 +4005: -6394 +4006: -3324 +4007: -2915 +4008: -559 +4009: 6003 +4010: 6071 +4011: -1647 +4012: -6668 +4013: -718 +4014: 6142 +4015: -6914 +4016: 8216 +4017: -2154 +4018: 9301 +4019: 6569 +4020: -1010 +4021: 8969 +4022: 9147 +4023: -9289 +4024: 8532 +4025: 1498 +4026: -5732 +4027: 3129 +4028: 9015 +4029: 7115 +4030: -530 +4031: -5650 +4032: -8425 +4033: -7269 +4034: 3916 +4035: 6228 +4036: 1556 +4037: 3398 +4038: 3499 +4039: -8084 +4040: -755 +4041: 7629 +4042: -9368 +4043: -5787 +4044: -4872 +4045: -5537 +4046: 3485 +4047: -884 +4048: 9288 +4049: 882 +4050: -581 +4051: 7866 +4052: -8611 +4053: -883 +4054: 3282 +4055: -5799 +4056: 5743 +4057: -2642 +4058: 6206 +4059: -9970 +4060: 4374 +4061: -6825 +4062: 7510 +4063: 4499 +4064: 8681 +4065: 5108 +4066: 4250 +4067: 6383 +4068: 9466 +4069: 576 +4070: 1887 +4071: -3258 +4072: 6168 +4073: -5867 +4074: 503 +4075: 4097 +4076: -1955 +4077: 7465 +4078: -5890 +4079: -1442 +4080: 3088 +4081: 2703 +4082: -5112 +4083: 3228 +4084: -3462 +4085: 8873 +4086: 3011 +4087: -2291 +4088: -2477 +4089: 3287 +4090: 9161 +4091: 9215 +4092: -4480 +4093: 3971 +4094: -6727 +4095: -6113 +4096: 9854 +4097: 6465 +4098: -2037 +4099: 5569 +4100: 3420 +4101: -5607 +4102: 1606 +4103: -4345 +4104: 50 +4105: 4918 +4106: -8406 +4107: -9050 +4108: -2645 +4109: -2060 +4110: -2741 +4111: -1765 +4112: 5741 +4113: -6215 +4114: 741 +4115: -6842 +4116: -6728 +4117: 8644 +4118: -516 +4119: 860 +4120: -9970 +4121: 1761 +4122: 7222 +4123: 6665 +4124: -8122 +4125: -5555 +4126: 4020 +4127: -6645 +4128: 717 +4129: -6439 +4130: 9151 +4131: 7436 +4132: 8992 +4133: 1546 +4134: 9130 +4135: -5138 +4136: -5694 +4137: 1027 +4138: -4951 +4139: 842 +4140: -531 +4141: 5138 +4142: 6423 +4143: -5994 +4144: 7255 +4145: -729 +4146: -5613 +4147: 4499 +4148: 6850 +4149: -5553 +4150: 9442 +4151: -1383 +4152: 9202 +4153: -5223 +4154: -6568 +4155: -1301 +4156: 1632 +4157: 8601 +4158: 855 +4159: -8771 +4160: 7436 +4161: 3171 +4162: 7258 +4163: -1342 +4164: 9382 +4165: -533 +4166: 9248 +4167: 6888 +4168: 3652 +4169: 4114 +4170: -8425 +4171: -5614 +4172: -6913 +4173: -3842 +4174: 2952 +4175: -9175 +4176: -4033 +4177: 4028 +4178: 9466 +4179: 9315 +4180: 7650 +4181: -559 +4182: 2186 +4183: 2341 +4184: 8437 +4185: -7419 +4186: 8710 +4187: 9518 +4188: 4322 +4189: 4694 +4190: -803 +4191: 5522 +4192: 9696 +4193: 3615 +4194: -552 +4195: 9367 +4196: -5634 +4197: 4435 +4198: -6109 +4199: 4969 +4200: 1831 +4201: -7086 +4202: -5717 +4203: 4410 +4204: -5301 +4205: -1257 +4206: 4537 +4207: 7182 +4208: 9476 +4209: 6198 +4210: 3360 +4211: 7324 +4212: -4130 +4213: -9630 +4214: -1508 +4215: 3247 +4216: -6645 +4217: -517 +4218: 3037 +4219: 8261 +4220: 4343 +4221: 8578 +4222: -1437 +4223: -2184 +4224: 9164 +4225: -895 +4226: -4162 +4227: 3693 +4228: 3447 +4229: 6452 +4230: 5474 +4231: 7967 +4232: 3579 +4233: -1363 +4234: 9469 +4235: 8434 +4236: 9602 +4237: -5646 +4238: 8955 +4239: 898 +4240: -7026 +4241: 7053 +4242: -6948 +4243: -8252 +4244: -9159 +4245: -2305 +4246: 4224 +4247: -6162 +4248: 5191 +4249: -3467 +4250: -5443 +4251: -8449 +4252: 9665 +4253: -3374 +4254: 4534 +4255: 6742 +4256: 8219 +4257: -1080 +4258: -2137 +4259: -456 +4260: 7035 +4261: 6962 +4262: 114 +4263: -827 +4264: 1097 +4265: 3645 +4266: 6078 +4267: 8950 +4268: -859 +4269: -489 +4270: -310 +4271: 7803 +4272: 6533 +4273: 3206 +4274: 6075 +4275: -1125 +4276: -5573 +4277: 4703 +4278: 9131 +4279: 4355 +4280: -5422 +4281: -9533 +4282: 9062 +4283: 9435 +4284: 4068 +4285: 4502 +4286: -6258 +4287: 4582 +4288: 3956 +4289: 5854 +4290: 1021 +4291: 5690 +4292: -7511 +4293: 302 +4294: 4551 +4295: -4778 +4296: -4888 +4297: 4431 +4298: -2039 +4299: -3612 +4300: -7955 +4301: 5141 +4302: 6566 +4303: -3855 +4304: -2923 +4305: 9600 +4306: 4821 +4307: -7047 +4308: 5025 +4309: -5419 +4310: 768 +4311: -5985 +4312: -4508 +4313: 8817 +4314: -8594 +4315: -6004 +4316: -526 +4317: -6439 +4318: 3236 +4319: 6568 +4320: -687 +4321: 1693 +4322: 3496 +4323: 2442 +4324: 4524 +4325: -2039 +4326: 9933 +4327: -2957 +4328: 3227 +4329: -6998 +4330: -7305 +4331: 7682 +4332: 1704 +4333: -2736 +4334: -845 +4335: -450 +4336: 4254 +4337: 5854 +4338: 110 +4339: 8433 +4340: 1491 +4341: 1058 +4342: 8911 +4343: -8108 +4344: -5377 +4345: -130 +4346: 6014 +4347: 5956 +4348: 4569 +4349: 5198 +4350: -1232 +4351: 4592 +4352: -2477 +4353: -8108 +4354: 8870 +4355: 9703 +4356: -7021 +4357: -2061 +4358: 7892 +4359: 867 +4360: -5630 +4361: -6776 +4362: 3733 +4363: -5381 +4364: 7462 +4365: 7840 +4366: -5319 +4367: -1260 +4368: -3703 +4369: 1778 +4370: -5355 +4371: 1623 +4372: -687 +4373: -4665 +4374: -5360 +4375: 9617 +4376: -4185 +4377: -2028 +4378: -1296 +4379: 3750 +4380: -1099 +4381: -3759 +4382: 1764 +4383: 9524 +4384: -5925 +4385: 9562 +4386: 1438 +4387: 473 +4388: -865 +4389: 3117 +4390: 4372 +4391: 5161 +4392: -5861 +4393: -3863 +4394: 2936 +4395: -7044 +4396: -9738 +4397: 8157 +4398: -3815 +4399: 8427 +4400: 5143 +4401: 7791 +4402: -7301 +4403: -4363 +4404: -9145 +4405: 2613 +4406: -343 +4407: 2315 +4408: -3562 +4409: -8024 +4410: -7339 +4411: 578 +4412: 8868 +4413: -1551 +4414: 7785 +4415: -613 +4416: -5774 +4417: 1673 +4418: 9267 +4419: 9610 +4420: -45 +4421: -5526 +4422: 4645 +4423: 2655 +4424: -4051 +4425: -5342 +4426: 8900 +4427: -291 +4428: -2028 +4429: 5066 +4430: -5341 +4431: 9617 +4432: 9216 +4433: -6824 +4434: 3606 +4435: -5706 +4436: 7704 +4437: 6751 +4438: -2975 +4439: 1622 +4440: 7629 +4441: 4427 +4442: -8806 +4443: 8176 +4444: 4459 +4445: 4544 +4446: -607 +4447: -6446 +4448: -5304 +4449: 1664 +4450: -7599 +4451: -6178 +4452: -6735 +4453: -7067 +4454: -2329 +4455: -9365 +4456: 4434 +4457: 9146 +4458: 3381 +4459: 591 +4460: 9325 +4461: -8398 +4462: -5838 +4463: -7463 +4464: -8544 +4465: 6423 +4466: 4665 +4467: 3038 +4468: -5608 +4469: -5729 +4470: -2346 +4471: -5526 +4472: 7845 +4473: -5546 +4474: 1490 +4475: 4534 +4476: 1462 +4477: -6867 +4478: -3107 +4479: -6027 +4480: 5123 +4481: -5339 +4482: -9472 +4483: -9014 +4484: -2650 +4485: 6333 +4486: -1304 +4487: 5642 +4488: -8874 +4489: 4487 +4490: 9464 +4491: -6918 +4492: 4635 +4493: -5835 +4494: 4567 +4495: -2009 +4496: 5055 +4497: -7469 +4498: 4682 +4499: -8612 +4500: 4042 +4501: 4002 +4502: 9173 +4503: 8801 +4504: -3317 +4505: -9490 +4506: -6192 +4507: 9397 +4508: 2492 +4509: -1508 +4510: -5387 +4511: -7010 +4512: 3577 +4513: 4606 +4514: -7987 +4515: 30 +4516: 2021 +4517: -7960 +4518: -6646 +4519: -1907 +4520: -8380 +4521: -8079 +4522: 1547 +4523: -8388 +4524: -5312 +4525: 2695 +4526: -9140 +4527: -5321 +4528: -312 +4529: 6877 +4530: -4755 +4531: 1760 +4532: 7308 +4533: -7240 +4534: -7014 +4535: 7251 +4536: 9300 +4537: -993 +4538: 7414 +4539: 3150 +4540: 7589 +4541: -4708 +4542: -3475 +4543: 3754 +4544: 7866 +4545: -1268 +4546: -5345 +4547: -9487 +4548: -6445 +4549: 8800 +4550: -526 +4551: 2008 +4552: 6813 +4553: 1395 +4554: 3762 +4555: -2384 +4556: 6668 +4557: -3804 +4558: 8900 +4559: -5345 +4560: -5521 +4561: 6602 +4562: -5809 +4563: -7703 +4564: -410 +4565: 1281 +4566: 9501 +4567: -6255 +4568: -6020 +4569: 4134 +4570: 4650 +4571: 3874 +4572: -8068 +4573: -5312 +4574: -520 +4575: 1165 +4576: 1147 +4577: 4821 +4578: 9620 +4579: 1150 +4580: -1916 +4581: -4734 +4582: -3601 +4583: 4711 +4584: -5319 +4585: 9732 +4586: -1994 +4587: -3465 +4588: -4403 +4589: -2330 +4590: -1381 +4591: 3764 +4592: 6427 +4593: 6742 +4594: -5313 +4595: -377 +4596: 2006 +4597: 8173 +4598: -1916 +4599: -882 +4600: 5692 +4601: -783 +4602: -5456 +4603: -6782 +4604: 5316 +4605: -2337 +4606: 9743 +4607: 3205 +4608: -302 +4609: -868 +4610: -6530 +4611: 4684 +4612: -9827 +4613: -5448 +4614: 9743 +4615: -266 +4616: 3533 +4617: 9481 +4618: 7026 +4619: -1664 +4620: -844 +4621: -5656 +4622: -5312 +4623: 8469 +4624: -268 +4625: -4749 +4626: -8505 +4627: -8464 +4628: 2907 +4629: 1234 +4630: -1539 +4631: -408 +4632: 2702 +4633: -354 +4634: -8165 +4635: -7573 +4636: 8870 +4637: -6488 +4638: 4686 +4639: 5572 +4640: -694 +4641: -7187 +4642: -4892 +4643: -607 +4644: 4001 +4645: -8069 +4646: -5794 +4647: -7983 +4648: 9685 +4649: 1409 +4650: -8867 +4651: 3962 +4652: -8385 +4653: 9783 +4654: -9439 +4655: 3721 +4656: -1683 +4657: 6115 +4658: -2346 +4659: -3632 +4660: 8006 +4661: -2555 +4662: -225 +4663: -1314 +4664: 4668 +4665: 160 +4666: -5657 +4667: 9619 +4668: 7846 +4669: 9113 +4670: -251 +4671: 6994 +4672: -3779 +4673: 2008 +4674: 7628 +4675: -7632 +4676: 1359 +4677: -3608 +4678: 4551 +4679: -3803 +4680: -5853 +4681: 9268 +4682: 7061 +4683: 5020 +4684: -5238 +4685: -1360 +4686: -5144 +4687: -8185 +4688: 795 +4689: 8469 +4690: -520 +4691: -3541 +4692: 3696 +4693: 7886 +4694: 4401 +4695: 2471 +4696: -7510 +4697: 6579 +4698: 1632 +4699: -9014 +4700: -6529 +4701: -200 +4702: 4913 +4703: 6024 +4704: 9279 +4705: -7931 +4706: 4802 +4707: -3640 +4708: -5243 +4709: 9006 +4710: -2242 +4711: 9780 +4712: -3861 +4713: 1103 +4714: -6852 +4715: 9568 +4716: -3516 +4717: -4861 +4718: 4042 +4719: 9805 +4720: -276 +4721: 9804 +4722: -6148 +4723: 4645 +4724: -1296 +4725: -755 +4726: 1716 +4727: -7675 +4728: 7282 +4729: -2358 +4730: 8879 +4731: -451 +4732: -2355 +4733: 9202 +4734: 991 +4735: 9268 +4736: 3026 +4737: -7750 +4738: -6515 +4739: 9794 +4740: -5477 +4741: 4824 +4742: 2728 +4743: 5480 +4744: 4204 +4745: 4967 +4746: -1204 +4747: -1367 +4748: 5149 +4749: -355 +4750: -7453 +4751: -3453 +4752: -5907 +4753: 7847 +4754: 7692 +4755: -6548 +4756: 2367 +4757: 8546 +4758: 4431 +4759: 9833 +4760: 8163 +4761: -6879 +4762: -542 +4763: 6677 +4764: -464 +4765: -3457 +4766: -5231 +4767: -8764 +4768: 3096 +4769: 9529 +4770: 6524 +4771: 4806 +4772: -1586 +4773: -5156 +4774: 4743 +4775: 9843 +4776: 7387 +4777: 7098 +4778: 2731 +4779: 9288 +4780: -607 +4781: -5305 +4782: 4559 +4783: 4840 +4784: 8414 +4785: 1662 +4786: -7370 +4787: -431 +4788: 2050 +4789: 9603 +4790: 9599 +4791: 4618 +4792: -7406 +4793: -7955 +4794: -481 +4795: 4721 +4796: -5809 +4797: -6921 +4798: -5216 +4799: 6275 +4800: 7616 +4801: -273 +4802: -2023 +4803: -7582 +4804: 4804 +4805: 7112 +4806: -4031 +4807: 3115 +4808: -8457 +4809: -443 +4810: 9610 +4811: 9459 +4812: -205 +4813: -159 +4814: -9972 +4815: -2067 +4816: -5926 +4817: 4256 +4818: 1579 +4819: 7210 +4820: 4797 +4821: 7554 +4822: -4244 +4823: -444 +4824: 2698 +4825: -4580 +4826: -5185 +4827: 86 +4828: -1410 +4829: 1150 +4830: -3824 +4831: 4319 +4832: 5961 +4833: 855 +4834: -4872 +4835: -6776 +4836: 7195 +4837: 3583 +4838: -1214 +4839: 9641 +4840: 4768 +4841: 1164 +4842: 8558 +4843: -6985 +4844: -7387 +4845: -121 +4846: 4035 +4847: 9989 +4848: -5147 +4849: 859 +4850: 7629 +4851: -5413 +4852: 3723 +4853: -2801 +4854: -845 +4855: -5845 +4856: 7945 +4857: -925 +4858: -6584 +4859: -5112 +4860: 7948 +4861: -7041 +4862: 8173 +4863: 8825 +4864: 8642 +4865: -8212 +4866: 3863 +4867: 4840 +4868: 5542 +4869: 9194 +4870: 1247 +4871: 78 +4872: 3962 +4873: -906 +4874: 9786 +4875: -94 +4876: 8642 +4877: 5024 +4878: 372 +4879: -3300 +4880: -1939 +4881: -892 +4882: 4957 +4883: -2677 +4884: -5165 +4885: 7346 +4886: 8032 +4887: 4905 +4888: -544 +4889: 4922 +4890: 3381 +4891: 2241 +4892: -201 +4893: -7539 +4894: -6648 +4895: -6852 +4896: 7080 +4897: 1063 +4898: 7706 +4899: 4679 +4900: 9675 +4901: 1179 +4902: -3210 +4903: 5869 +4904: -9630 +4905: 1990 +4906: 4905 +4907: 8944 +4908: 2850 +4909: -1916 +4910: 3445 +4911: -5745 +4912: 977 +4913: 4641 +4914: -5069 +4915: 5506 +4916: 8248 +4917: -865 +4918: 4821 +4919: -5890 +4920: -5963 +4921: -1045 +4922: 5495 +4923: -6126 +4924: 9599 +4925: 9933 +4926: 2582 +4927: 99 +4928: 4816 +4929: -599 +4930: -3717 +4931: 39 +4932: 2697 +4933: -8560 +4934: -3204 +4935: -8391 +4936: 3374 +4937: 6798 +4938: -9243 +4939: 7350 +4940: -1092 +4941: -5647 +4942: -5415 +4943: -1290 +4944: 13 +4945: -8541 +4946: 1602 +4947: -7997 +4948: 2222 +4949: 4669 +4950: 9490 +4951: 4172 +4952: 6808 +4953: -9700 +4954: -7717 +4955: -5417 +4956: -2460 +4957: 4487 +4958: -140 +4959: -6192 +4960: -1455 +4961: -9412 +4962: -6430 +4963: -811 +4964: 4665 +4965: -3676 +4966: -5120 +4967: 9837 +4968: -117 +4969: -4340 +4970: 9980 +4971: 3671 +4972: 4499 +4973: -8289 +4974: -873 +4975: -4595 +4976: 4939 +4977: 4315 +4978: 3110 +4979: -6299 +4980: -5011 +4981: -7992 +4982: -677 +4983: -1984 +4984: 8547 +4985: 4189 +4986: 8911 +4987: -5360 +4988: -995 +4989: 8083 +4990: 9125 +4991: -527 +4992: 2905 +4993: 464 +4994: 1268 +4995: 3467 +4996: -1368 +4997: 9566 +4998: -4861 +4999: -7000 +5000: 0 +Day 20 Part 1: 3473 (0.164s) + +Total time: 0.164s diff --git a/result.txt b/result.txt new file mode 100644 index 0000000..f22cd7d --- /dev/null +++ b/result.txt @@ -0,0 +1,5001 @@ +0: 0 +1: -7000 +2: -9978 +3: 7028 +4: 5025 +5: -3116 +6: 197 +7: 190 +8: 4153 +9: 2129 +10: 5136 +11: 8424 +12: -5433 +13: -9998 +14: 6162 +15: -6987 +16: -4714 +17: -9967 +18: -4665 +19: -2392 +20: -2362 +21: 5276 +22: -4962 +23: 9103 +24: 2795 +25: 5041 +26: -9856 +27: -886 +28: 353 +29: 5353 +30: -901 +31: 5041 +32: 5333 +33: -4937 +34: -5052 +35: -3908 +36: -4872 +37: 9186 +38: -4823 +39: -6346 +40: -8281 +41: 142 +42: 426 +43: -5198 +44: -4891 +45: 5182 +46: -9243 +47: -6894 +48: 1317 +49: -600 +50: -785 +51: -4951 +52: 5236 +53: 9658 +54: 9438 +55: -4815 +56: 5316 +57: 4097 +58: 4100 +59: 6579 +60: 9273 +61: 73 +62: -6022 +63: -4892 +64: 5275 +65: 9987 +66: -8108 +67: 4337 +68: 2151 +69: 5470 +70: 4157 +71: 126 +72: 9049 +73: 1986 +74: 203 +75: 4838 +76: 5051 +77: 302 +78: -9442 +79: 7512 +80: -44 +81: 7925 +82: 9961 +83: 5434 +84: -7595 +85: -9997 +86: -4416 +87: -4541 +88: 9125 +89: -4609 +90: -6356 +91: -2271 +92: -4938 +93: 474 +94: 9156 +95: 5647 +96: -8469 +97: -6606 +98: -4269 +99: -4925 +100: -6817 +101: 9594 +102: 4598 +103: -4189 +104: -4352 +105: 8452 +106: 8165 +107: 5135 +108: -9998 +109: 5637 +110: -5011 +111: 375 +112: 7665 +113: 8532 +114: -8236 +115: 3200 +116: -4882 +117: 2132 +118: -3457 +119: -4804 +120: 6792 +121: 1361 +122: 4873 +123: -9341 +124: -996 +125: -8903 +126: 1760 +127: 2230 +128: 5455 +129: -9957 +130: 99 +131: -9561 +132: 5724 +133: -8870 +134: 4540 +135: -4651 +136: 1350 +137: 4373 +138: -9900 +139: 662 +140: -9351 +141: 4967 +142: -9360 +143: 4534 +144: 5 +145: -9346 +146: 6240 +147: 259 +148: -9481 +149: 9236 +150: 5142 +151: 259 +152: 4343 +153: -331 +154: 3228 +155: 5690 +156: 5744 +157: 9312 +158: -1187 +159: 7231 +160: 4390 +161: 5101 +162: -5802 +163: 188 +164: 9942 +165: -9516 +166: -3527 +167: -4557 +168: -1721 +169: -4599 +170: -9580 +171: -531 +172: 5782 +173: -5521 +174: -242 +175: 275 +176: 2842 +177: -581 +178: -4128 +179: -4924 +180: -4392 +181: 6224 +182: -9346 +183: 6514 +184: -4416 +185: -63 +186: -3139 +187: -9130 +188: -1279 +189: 3241 +190: -9508 +191: 1482 +192: -2573 +193: 3671 +194: -4841 +195: 3245 +196: 260 +197: -4171 +198: 4089 +199: 855 +200: -3603 +201: 280 +202: 707 +203: -9276 +204: 4685 +205: -7354 +206: 5921 +207: -8471 +208: -2137 +209: -4214 +210: 5548 +211: 9603 +212: -8668 +213: 8073 +214: -4769 +215: 186 +216: 9397 +217: -5138 +218: 4166 +219: -3317 +220: 5212 +221: -1348 +222: 5395 +223: 4855 +224: 5190 +225: 4988 +226: -4888 +227: 4695 +228: 725 +229: -7070 +230: 6579 +231: -9592 +232: 552 +233: 510 +234: -4468 +235: 8016 +236: -8398 +237: 257 +238: -9876 +239: -25 +240: -8950 +241: 498 +242: -9350 +243: 696 +244: -4488 +245: 1568 +246: -4028 +247: -1011 +248: -1707 +249: 5487 +250: -5865 +251: -9439 +252: 5287 +253: 5223 +254: 5404 +255: 5468 +256: -7624 +257: 373 +258: -7139 +259: -289 +260: -5066 +261: -4891 +262: -4996 +263: -5180 +264: 58 +265: 678 +266: 417 +267: -4940 +268: 4940 +269: 950 +270: 3677 +271: -7650 +272: 9603 +273: 9877 +274: -9604 +275: 466 +276: -885 +277: 5461 +278: -9221 +279: 5578 +280: 8707 +281: -522 +282: 5689 +283: -9351 +284: 358 +285: -4673 +286: -1502 +287: -11 +288: 4041 +289: 2738 +290: 5903 +291: 7027 +292: 2720 +293: -4275 +294: -2556 +295: -4340 +296: -9332 +297: -9250 +298: -9100 +299: 469 +300: -9302 +301: -5069 +302: 5280 +303: 4382 +304: -39 +305: -4644 +306: 3140 +307: 1119 +308: -9459 +309: -9969 +310: -3106 +311: 9959 +312: 7292 +313: 6889 +314: -3989 +315: 3972 +316: 5259 +317: -6056 +318: -9066 +319: -8875 +320: -4403 +321: -9869 +322: 9236 +323: 4986 +324: -9557 +325: -8864 +326: -1363 +327: 5287 +328: -9638 +329: 5780 +330: -9002 +331: 4042 +332: -9296 +333: 5584 +334: -9100 +335: -2975 +336: 4409 +337: 5054 +338: 5906 +339: 213 +340: 4840 +341: -9827 +342: 5546 +343: -9162 +344: 3670 +345: 9451 +346: 6199 +347: -4001 +348: -4985 +349: -4275 +350: 5827 +351: -140 +352: 4021 +353: 9447 +354: -355 +355: -6727 +356: -829 +357: -5952 +358: 5901 +359: -4790 +360: 2745 +361: 674 +362: -312 +363: -2820 +364: 9702 +365: 2093 +366: 535 +367: 4550 +368: 7822 +369: 5745 +370: -2881 +371: 6877 +372: 701 +373: -9231 +374: -8858 +375: 4599 +376: -5081 +377: 2311 +378: 5780 +379: 5737 +380: 142 +381: -4651 +382: 4966 +383: -9026 +384: 867 +385: 1632 +386: 9024 +387: -3861 +388: 5634 +389: 713 +390: 9421 +391: 4561 +392: -5337 +393: -4228 +394: 6079 +395: -459 +396: -4337 +397: 4744 +398: 5025 +399: 424 +400: 1161 +401: 6140 +402: 566 +403: -9557 +404: 8056 +405: 5325 +406: -9350 +407: -3804 +408: -9099 +409: -1269 +410: -4762 +411: -3835 +412: -3965 +413: -4171 +414: 5585 +415: 1316 +416: 483 +417: -1421 +418: -9557 +419: -9359 +420: -4001 +421: -9451 +422: 4147 +423: 8170 +424: 302 +425: -4598 +426: -8867 +427: 5421 +428: 840 +429: -526 +430: 5994 +431: 1293 +432: 5938 +433: 1355 +434: 6069 +435: -7507 +436: 9906 +437: 5755 +438: 6399 +439: -5447 +440: -817 +441: 5830 +442: -9972 +443: -4989 +444: -8785 +445: -9921 +446: -4801 +447: -8919 +448: -4105 +449: 8398 +450: 298 +451: 1359 +452: -3858 +453: 566 +454: -3902 +455: 4807 +456: 9211 +457: -8721 +458: -8703 +459: -8827 +460: -6798 +461: -5614 +462: -9283 +463: 7206 +464: 9951 +465: 563 +466: -6006 +467: -7680 +468: -760 +469: 5782 +470: -1131 +471: -9062 +472: 6451 +473: -5171 +474: -9100 +475: 1557 +476: 5640 +477: 696 +478: 5917 +479: -8521 +480: 4410 +481: 1490 +482: 8532 +483: -6816 +484: 1378 +485: 375 +486: 643 +487: 5372 +488: -7401 +489: -3803 +490: 8090 +491: -3776 +492: -4275 +493: 3434 +494: 5054 +495: 5137 +496: -6047 +497: 752 +498: 5761 +499: -3870 +500: 5947 +501: -8832 +502: 6853 +503: -568 +504: -4980 +505: -6172 +506: 6535 +507: -5104 +508: 892 +509: 6383 +510: 1097 +511: -2726 +512: 481 +513: 692 +514: -9085 +515: 4089 +516: -5607 +517: 9088 +518: -2732 +519: -8038 +520: -277 +521: -5210 +522: -2741 +523: -3577 +524: 1340 +525: 7945 +526: -4901 +527: 6535 +528: -4391 +529: -4654 +530: 6312 +531: -4582 +532: -6749 +533: 1017 +534: 9510 +535: 1336 +536: -9950 +537: -2123 +538: -2784 +539: -3742 +540: -5555 +541: 6557 +542: 6165 +543: -2860 +544: -9589 +545: -8912 +546: 5856 +547: 6130 +548: -8505 +549: 6170 +550: -4174 +551: -6922 +552: 367 +553: 5713 +554: 6121 +555: -4202 +556: 5441 +557: -7075 +558: 5650 +559: 5560 +560: -8974 +561: -6737 +562: -6027 +563: -7534 +564: 7259 +565: 2836 +566: -7394 +567: -9450 +568: -7160 +569: 5661 +570: 3773 +571: 5041 +572: -3423 +573: -8854 +574: -4166 +575: -9538 +576: -8208 +577: 6381 +578: 4315 +579: 1123 +580: -3848 +581: 9978 +582: 5856 +583: -9162 +584: 5865 +585: 7133 +586: 5659 +587: -650 +588: 1604 +589: 5143 +590: -3854 +591: -8375 +592: 706 +593: -3507 +594: -7301 +595: 4279 +596: -7238 +597: -6606 +598: -6825 +599: -5557 +600: 7396 +601: -9781 +602: -6721 +603: -4888 +604: 8854 +605: -7749 +606: -9288 +607: 966 +608: 288 +609: 5135 +610: 6269 +611: 6426 +612: -5157 +613: 4655 +614: -5435 +615: -9824 +616: 5491 +617: 7165 +618: 2687 +619: 253 +620: -8592 +621: 4287 +622: 9783 +623: -4275 +624: -9911 +625: 7501 +626: 6228 +627: 274 +628: -1133 +629: -3567 +630: -6686 +631: -8492 +632: 5506 +633: -9100 +634: -3603 +635: -9046 +636: 5706 +637: 4729 +638: -2094 +639: -8670 +640: -3081 +641: 3233 +642: 6623 +643: -4762 +644: 6333 +645: 3390 +646: 5421 +647: -8185 +648: 6078 +649: 9640 +650: -7486 +651: -9473 +652: 9754 +653: -3283 +654: 7516 +655: 3274 +656: 1419 +657: 5929 +658: -9802 +659: 9071 +660: 6125 +661: -9281 +662: 1794 +663: 5548 +664: 1818 +665: -4898 +666: -4924 +667: 6718 +668: -8642 +669: 9610 +670: 238 +671: -7166 +672: -8555 +673: 5637 +674: -3852 +675: -2972 +676: -200 +677: 547 +678: 9365 +679: 6696 +680: -3773 +681: 4964 +682: 5051 +683: -3503 +684: -8289 +685: 725 +686: -8496 +687: -9580 +688: 1340 +689: 1673 +690: 2493 +691: -3784 +692: 989 +693: 741 +694: 5659 +695: 2845 +696: -1621 +697: 8117 +698: 5690 +699: 388 +700: 7916 +701: -8212 +702: -3340 +703: -7518 +704: 6170 +705: -6082 +706: 9554 +707: -4807 +708: -9099 +709: -7170 +710: -9423 +711: -5360 +712: 1490 +713: -6175 +714: 6677 +715: 827 +716: 469 +717: 7233 +718: -6042 +719: 2088 +720: 172 +721: 5994 +722: 601 +723: -2371 +724: -8806 +725: 469 +726: 454 +727: 7214 +728: 5343 +729: 1361 +730: 2936 +731: -8281 +732: -8179 +733: 9125 +734: -7439 +735: 8 +736: 4099 +737: -3509 +738: -8751 +739: 413 +740: 6041 +741: -1110 +742: -8372 +743: -3431 +744: -8494 +745: 5050 +746: -3220 +747: 526 +748: -3201 +749: 1557 +750: -3603 +751: -1669 +752: -8369 +753: -9592 +754: 654 +755: -489 +756: -5795 +757: -1875 +758: 924 +759: -716 +760: 1037 +761: 1792 +762: -6703 +763: -4306 +764: -9166 +765: -3669 +766: 4934 +767: 5182 +768: -4137 +769: 703 +770: -8859 +771: -7507 +772: -4028 +773: -4395 +774: -3031 +775: -8285 +776: 5637 +777: 6427 +778: -3231 +779: -4985 +780: 4 +781: 599 +782: 5028 +783: -3804 +784: -4662 +785: 5456 +786: -142 +787: -8224 +788: -3564 +789: 8165 +790: -844 +791: -5157 +792: -4645 +793: 6868 +794: -475 +795: 899 +796: 4838 +797: 2299 +798: 6659 +799: 5025 +800: 6537 +801: 3328 +802: -4051 +803: 4460 +804: 8561 +805: 5737 +806: 5989 +807: -5527 +808: -289 +809: 4852 +810: 4635 +811: -1647 +812: 5009 +813: 4526 +814: 5440 +815: -8464 +816: -412 +817: 8985 +818: 878 +819: 1032 +820: 5589 +821: -5783 +822: -7376 +823: 4187 +824: -8259 +825: -2654 +826: 1908 +827: -1996 +828: -9118 +829: 6059 +830: 1081 +831: 6175 +832: 6399 +833: -4025 +834: 6804 +835: -3793 +836: -6220 +837: 5691 +838: -8105 +839: 9634 +840: -4673 +841: -3289 +842: 6712 +843: -1958 +844: 5136 +845: -3758 +846: 892 +847: 2521 +848: -4202 +849: -6343 +850: -3682 +851: 989 +852: -9469 +853: 6313 +854: -552 +855: 6130 +856: -8686 +857: -5016 +858: 575 +859: 6257 +860: -5011 +861: -785 +862: 5921 +863: -7515 +864: -3061 +865: 5659 +866: -4417 +867: -8816 +868: -3925 +869: 940 +870: -1314 +871: 9638 +872: -8560 +873: 8086 +874: -1509 +875: 1238 +876: -3437 +877: -3060 +878: -8259 +879: 1859 +880: -8739 +881: 5445 +882: -8653 +883: -3091 +884: -1114 +885: -3162 +886: 1156 +887: 8872 +888: 253 +889: -4297 +890: 8554 +891: -7066 +892: -3608 +893: 1859 +894: -9321 +895: -7509 +896: -9198 +897: 7261 +898: 5107 +899: 9844 +900: -4029 +901: 1585 +902: 87 +903: -3659 +904: 1831 +905: -8783 +906: 7570 +907: 5902 +908: -1080 +909: 6960 +910: 1621 +911: -7999 +912: -8699 +913: -3577 +914: 4166 +915: -8463 +916: 1716 +917: 1175 +918: -5129 +919: -3598 +920: -9407 +921: 1106 +922: 6078 +923: 5462 +924: 5917 +925: 2492 +926: 4582 +927: -4370 +928: -406 +929: 1727 +930: 6877 +931: -8473 +932: 5711 +933: 4840 +934: -755 +935: -5872 +936: 9007 +937: -1953 +938: -636 +939: 652 +940: 457 +941: 5427 +942: -8962 +943: 6357 +944: -8252 +945: -6721 +946: -7619 +947: 6678 +948: -4891 +949: -3709 +950: 4607 +951: -3833 +952: -3979 +953: -3374 +954: 8697 +955: 6012 +956: -1508 +957: -9474 +958: -3220 +959: 6074 +960: -1416 +961: -9664 +962: 1025 +963: -5928 +964: 2810 +965: -8552 +966: 9653 +967: 6071 +968: -5414 +969: -3235 +970: -8265 +971: -3054 +972: -2975 +973: -8628 +974: 6725 +975: 5730 +976: 6016 +977: -6173 +978: -6088 +979: 1410 +980: 6744 +981: -2433 +982: 1912 +983: -5178 +984: 9023 +985: -6464 +986: -3258 +987: 6752 +988: 9556 +989: -7940 +990: 1409 +991: 1378 +992: -3497 +993: 9466 +994: -3823 +995: 1207 +996: -4340 +997: 9479 +998: 6623 +999: 2299 +1000: 1401 +1001: -4417 +1002: 438 +1003: 5108 +1004: 875 +1005: -9055 +1006: -2124 +1007: 6330 +1008: -8865 +1009: 1058 +1010: -8164 +1011: 2877 +1012: 1175 +1013: -8570 +1014: 9218 +1015: 5025 +1016: 6734 +1017: -9406 +1018: -4403 +1019: -4128 +1020: 211 +1021: -2555 +1022: 5287 +1023: 405 +1024: -5595 +1025: -3118 +1026: -8897 +1027: 4056 +1028: -8449 +1029: 740 +1030: 4607 +1031: -2951 +1032: -7785 +1033: 5819 +1034: -4952 +1035: 2111 +1036: 391 +1037: 764 +1038: 9579 +1039: 811 +1040: 7015 +1041: 1258 +1042: 6584 +1043: 3703 +1044: 1991 +1045: 741 +1046: -9856 +1047: 1943 +1048: -8997 +1049: -8298 +1050: -3146 +1051: 1409 +1052: -8681 +1053: -2957 +1054: -8676 +1055: -1138 +1056: 1525 +1057: -9601 +1058: 2050 +1059: -1258 +1060: 3577 +1061: 8907 +1062: 1551 +1063: -7885 +1064: -3317 +1065: -9627 +1066: 1238 +1067: 7306 +1068: 1557 +1069: -3255 +1070: 4744 +1071: 1254 +1072: -140 +1073: -6330 +1074: 3388 +1075: 9933 +1076: 6576 +1077: 1628 +1078: -1338 +1079: -3118 +1080: -9176 +1081: -7420 +1082: -8748 +1083: -9933 +1084: 4483 +1085: -5294 +1086: 6999 +1087: 7754 +1088: 7811 +1089: -4770 +1090: 1998 +1091: -3529 +1092: -9011 +1093: -9386 +1094: 1173 +1095: 6074 +1096: -2997 +1097: -9286 +1098: -5896 +1099: 6752 +1100: -5846 +1101: -9949 +1102: 7819 +1103: -7868 +1104: 7121 +1105: -4758 +1106: 5771 +1107: 989 +1108: 1179 +1109: 3659 +1110: 7423 +1111: -8052 +1112: 1543 +1113: 5854 +1114: 884 +1115: 1123 +1116: 6296 +1117: 4390 +1118: -3698 +1119: 6395 +1120: 6781 +1121: 1128 +1122: 5249 +1123: -3073 +1124: -5787 +1125: -4202 +1126: 6866 +1127: 4255 +1128: -6525 +1129: -1542 +1130: 5806 +1131: 7850 +1132: -6704 +1133: 1554 +1134: -8945 +1135: -4740 +1136: 1106 +1137: 1887 +1138: 9816 +1139: 4994 +1140: 8408 +1141: 9414 +1142: -284 +1143: -8295 +1144: -9899 +1145: -8078 +1146: 1173 +1147: -3106 +1148: 4293 +1149: 4581 +1150: -3608 +1151: -9351 +1152: -4602 +1153: -4714 +1154: 3473 +1155: 3158 +1156: 8469 +1157: 8490 +1158: -5145 +1159: -7021 +1160: -8134 +1161: -266 +1162: -1078 +1163: 7532 +1164: -3505 +1165: -4304 +1166: -7366 +1167: 844 +1168: -8729 +1169: 8084 +1170: 577 +1171: -8816 +1172: 8263 +1173: 2877 +1174: -531 +1175: -5165 +1176: 9236 +1177: 454 +1178: 6729 +1179: 7118 +1180: 5259 +1181: -3070 +1182: 7053 +1183: -4391 +1184: 7779 +1185: 6867 +1186: 4964 +1187: 5935 +1188: 5903 +1189: 5936 +1190: 7147 +1191: 89 +1192: 7675 +1193: 2139 +1194: 7341 +1195: -2649 +1196: -1069 +1197: 6771 +1198: 1329 +1199: -8126 +1200: -3603 +1201: 6696 +1202: 1986 +1203: -3369 +1204: 6165 +1205: 5698 +1206: -2988 +1207: -3265 +1208: -5540 +1209: -5107 +1210: -7877 +1211: -925 +1212: -5012 +1213: -4350 +1214: 823 +1215: -5054 +1216: 6904 +1217: -3748 +1218: 5953 +1219: -1182 +1220: -5336 +1221: -5330 +1222: 1207 +1223: 4982 +1224: 6890 +1225: 7353 +1226: 1604 +1227: 3375 +1228: 5183 +1229: -8854 +1230: 3340 +1231: -520 +1232: -9811 +1233: 6432 +1234: 6365 +1235: -7486 +1236: -8176 +1237: 1209 +1238: 2004 +1239: 5051 +1240: -9145 +1241: 7272 +1242: 5642 +1243: -4444 +1244: 7255 +1245: -7164 +1246: -1391 +1247: -3060 +1248: 3155 +1249: -5707 +1250: 7739 +1251: 2129 +1252: 7150 +1253: -8832 +1254: 7189 +1255: 6795 +1256: -8481 +1257: 8723 +1258: -4548 +1259: -8397 +1260: -4285 +1261: 6347 +1262: 9504 +1263: 9989 +1264: -5737 +1265: 3641 +1266: -8316 +1267: 2139 +1268: 1720 +1269: -1878 +1270: -7699 +1271: 4624 +1272: 3335 +1273: 6867 +1274: 3389 +1275: 7023 +1276: -4427 +1277: -8323 +1278: 1885 +1279: -8289 +1280: 6581 +1281: -3075 +1282: -8473 +1283: 7024 +1284: -2741 +1285: 1777 +1286: -3247 +1287: -9622 +1288: 98 +1289: -4352 +1290: 8366 +1291: -3568 +1292: -2996 +1293: 8097 +1294: -3178 +1295: 8481 +1296: -4951 +1297: 811 +1298: 5956 +1299: -7723 +1300: 5775 +1301: -3730 +1302: 91 +1303: -3541 +1304: 1632 +1305: 1278 +1306: 997 +1307: 4709 +1308: -7987 +1309: 7017 +1310: -3641 +1311: -7807 +1312: -9780 +1313: -8212 +1314: 7839 +1315: 1219 +1316: -3959 +1317: -5958 +1318: -9983 +1319: 1438 +1320: 5812 +1321: 9332 +1322: 6661 +1323: 5613 +1324: 6426 +1325: 1825 +1326: -7675 +1327: 1690 +1328: -5780 +1329: -9528 +1330: -8876 +1331: 3537 +1332: 9447 +1333: 1662 +1334: -9592 +1335: 637 +1336: 2258 +1337: 7177 +1338: 1377 +1339: 333 +1340: 5956 +1341: -3418 +1342: -5888 +1343: -3964 +1344: 8766 +1345: -8468 +1346: 2363 +1347: 2805 +1348: -3248 +1349: 7687 +1350: -5237 +1351: 2303 +1352: -7666 +1353: 2341 +1354: 1717 +1355: -787 +1356: 9497 +1357: -6519 +1358: -7507 +1359: -5355 +1360: -8161 +1361: -6957 +1362: 2311 +1363: 4831 +1364: 8953 +1365: 8546 +1366: 8950 +1367: -6313 +1368: -9827 +1369: 6655 +1370: 2312 +1371: 6576 +1372: 2407 +1373: -3477 +1374: -1542 +1375: -6148 +1376: 7631 +1377: 2031 +1378: -1967 +1379: 577 +1380: 1490 +1381: -1099 +1382: -5379 +1383: 335 +1384: 891 +1385: -4912 +1386: 9599 +1387: -8577 +1388: 6436 +1389: 5689 +1390: 1017 +1391: 8482 +1392: 6492 +1393: 1877 +1394: -3631 +1395: -6639 +1396: 6868 +1397: 6665 +1398: -5165 +1399: -8054 +1400: -9856 +1401: 499 +1402: 6121 +1403: 4459 +1404: 6774 +1405: -8802 +1406: -7777 +1407: 6110 +1408: 2196 +1409: -4378 +1410: -4708 +1411: 6110 +1412: 7839 +1413: -5273 +1414: -5189 +1415: -1702 +1416: 1914 +1417: -7112 +1418: -5802 +1419: 5535 +1420: 1332 +1421: 4861 +1422: 3595 +1423: 1654 +1424: -4030 +1425: -1373 +1426: 2358 +1427: 7460 +1428: 1896 +1429: -7937 +1430: 5830 +1431: 1378 +1432: -7819 +1433: -5606 +1434: 2120 +1435: 3816 +1436: 9186 +1437: 4928 +1438: -3190 +1439: 1238 +1440: 8089 +1441: 5505 +1442: -6697 +1443: 5907 +1444: 8427 +1445: 688 +1446: -3522 +1447: 4187 +1448: -7131 +1449: 1588 +1450: 2094 +1451: -2775 +1452: 7475 +1453: 6305 +1454: -4896 +1455: -4836 +1456: -4762 +1457: -3698 +1458: 8897 +1459: 5459 +1460: 774 +1461: -6958 +1462: -186 +1463: 6300 +1464: -5662 +1465: 4292 +1466: 6768 +1467: -4250 +1468: 4 +1469: -3989 +1470: 9062 +1471: -4232 +1472: 466 +1473: 483 +1474: -9421 +1475: 4099 +1476: 7154 +1477: -2420 +1478: 8304 +1479: 7423 +1480: -4248 +1481: 1525 +1482: -5961 +1483: -9526 +1484: 7195 +1485: 4983 +1486: -3265 +1487: -9853 +1488: 6142 +1489: 7121 +1490: 2286 +1491: -3307 +1492: -3116 +1493: 4357 +1494: -3995 +1495: 2433 +1496: -1599 +1497: 7072 +1498: -7918 +1499: 5901 +1500: -8502 +1501: -2637 +1502: 2598 +1503: 3801 +1504: 882 +1505: 7295 +1506: -4174 +1507: 2029 +1508: 2292 +1509: -8921 +1510: -7522 +1511: -160 +1512: -9329 +1513: -2656 +1514: 6014 +1515: 8692 +1516: -4166 +1517: -6589 +1518: -2871 +1519: 6533 +1520: -8481 +1521: 5325 +1522: 6141 +1523: -8425 +1524: -2944 +1525: 8165 +1526: 8615 +1527: -2137 +1528: 469 +1529: 5494 +1530: 4006 +1531: 6768 +1532: -5415 +1533: -4865 +1534: -8496 +1535: 2631 +1536: -3511 +1537: -3418 +1538: 6426 +1539: 9933 +1540: 538 +1541: 7214 +1542: 2102 +1543: 6675 +1544: -552 +1545: -8038 +1546: -6488 +1547: -5060 +1548: -2833 +1549: -7944 +1550: 9574 +1551: -7942 +1552: -2827 +1553: 1998 +1554: 7510 +1555: -8079 +1556: -3171 +1557: -7614 +1558: 1557 +1559: 4046 +1560: -8393 +1561: -9368 +1562: 6600 +1563: 5250 +1564: -5896 +1565: 2896 +1566: 6383 +1567: -7459 +1568: -1798 +1569: -6563 +1570: 4647 +1571: -8361 +1572: -8645 +1573: -7645 +1574: 3 +1575: 6579 +1576: 6764 +1577: 4953 +1578: 170 +1579: -7377 +1580: 1963 +1581: 7195 +1582: -2572 +1583: 7385 +1584: 6219 +1585: -9677 +1586: -7666 +1587: -2509 +1588: 7314 +1589: -3577 +1590: 8710 +1591: -7333 +1592: 7295 +1593: -2943 +1594: -8858 +1595: 2186 +1596: 5494 +1597: 1766 +1598: -3166 +1599: 404 +1600: 6707 +1601: -2923 +1602: 2453 +1603: 1123 +1604: -2518 +1605: -2747 +1606: 4821 +1607: 1808 +1608: 6175 +1609: -7384 +1610: 7419 +1611: 6399 +1612: 1121 +1613: -5184 +1614: 1409 +1615: -8844 +1616: 2082 +1617: -229 +1618: 5638 +1619: -3803 +1620: 1989 +1621: 1097 +1622: -3152 +1623: -8468 +1624: -2651 +1625: -305 +1626: -9951 +1627: -7409 +1628: -6106 +1629: 1870 +1630: 6383 +1631: 7779 +1632: 7314 +1633: -8531 +1634: -9466 +1635: -2513 +1636: 9402 +1637: 7073 +1638: -3868 +1639: -2396 +1640: 7619 +1641: -6926 +1642: 7259 +1643: -1113 +1644: -3120 +1645: -9278 +1646: -5185 +1647: -2667 +1648: -6122 +1649: -7507 +1650: 3445 +1651: 459 +1652: 5374 +1653: 1305 +1654: -6974 +1655: -3169 +1656: 7539 +1657: -9095 +1658: -8469 +1659: 6296 +1660: -2438 +1661: 5173 +1662: -2391 +1663: 3397 +1664: 9384 +1665: -5157 +1666: -8084 +1667: 4256 +1668: 1017 +1669: -4913 +1670: -3398 +1671: 811 +1672: 2721 +1673: 687 +1674: 4679 +1675: -8193 +1676: -5165 +1677: -4834 +1678: -2536 +1679: -7651 +1680: -2592 +1681: -2708 +1682: 1413 +1683: -9443 +1684: 5698 +1685: -2801 +1686: 9166 +1687: 7166 +1688: 4998 +1689: -4263 +1690: 4070 +1691: -5031 +1692: 8746 +1693: 1632 +1694: 7350 +1695: -4483 +1696: 393 +1697: -7815 +1698: 9234 +1699: -7582 +1700: 6771 +1701: -884 +1702: -9256 +1703: -2939 +1704: 2064 +1705: -1719 +1706: -2392 +1707: 2029 +1708: -3507 +1709: -2295 +1710: 5041 +1711: -6267 +1712: -2640 +1713: -2965 +1714: 7432 +1715: -1214 +1716: 855 +1717: 8810 +1718: 2361 +1719: -7719 +1720: -4734 +1721: -2302 +1722: -7468 +1723: -7589 +1724: -2612 +1725: 211 +1726: -8067 +1727: 6890 +1728: -1669 +1729: 8456 +1730: -8684 +1731: 9172 +1732: 3686 +1733: 6803 +1734: -3252 +1735: 5051 +1736: -3412 +1737: -2756 +1738: -7357 +1739: 757 +1740: 7506 +1741: -3088 +1742: -1142 +1743: 1766 +1744: 6583 +1745: 2152 +1746: 8419 +1747: -3622 +1748: -4083 +1749: 8986 +1750: 477 +1751: -3033 +1752: 5002 +1753: -7817 +1754: 2488 +1755: -1962 +1756: 8232 +1757: -7907 +1758: 713 +1759: -8035 +1760: -2838 +1761: 6877 +1762: 5487 +1763: -2495 +1764: 1350 +1765: -9539 +1766: -6813 +1767: 7642 +1768: 479 +1769: 1067 +1770: 7552 +1771: -9067 +1772: -4679 +1773: -2427 +1774: 3629 +1775: -7722 +1776: 1807 +1777: -4165 +1778: 7948 +1779: -8261 +1780: 8907 +1781: 7811 +1782: -5253 +1783: -8642 +1784: 6960 +1785: 3641 +1786: 9247 +1787: 7624 +1788: -3219 +1789: -8297 +1790: -7479 +1791: 757 +1792: 7805 +1793: 6040 +1794: -2477 +1795: 1637 +1796: 2341 +1797: -822 +1798: -7957 +1799: 9930 +1800: 2425 +1801: -6004 +1802: 2493 +1803: 5421 +1804: 4821 +1805: 8309 +1806: -2307 +1807: -2654 +1808: -2174 +1809: 2442 +1810: -7047 +1811: 2299 +1812: -7498 +1813: -8505 +1814: -1741 +1815: -4673 +1816: 7288 +1817: 9390 +1818: -7905 +1819: 458 +1820: -3237 +1821: 6600 +1822: 1782 +1823: -8017 +1824: 508 +1825: -7306 +1826: -3148 +1827: -2915 +1828: 2776 +1829: 7866 +1830: 2151 +1831: -7267 +1832: 8532 +1833: -4093 +1834: 1222 +1835: -2172 +1836: -1025 +1837: 7465 +1838: 6676 +1839: -3131 +1840: -7692 +1841: 6383 +1842: 3771 +1843: 9609 +1844: 2449 +1845: -7226 +1846: -3457 +1847: 2179 +1848: 288 +1849: 1267 +1850: -8778 +1851: -2951 +1852: -1197 +1853: -8444 +1854: -7723 +1855: 2903 +1856: 6363 +1857: 9705 +1858: 8222 +1859: 4502 +1860: 3746 +1861: 7306 +1862: -9951 +1863: -4008 +1864: -4749 +1865: -5498 +1866: 7655 +1867: 2686 +1868: 4669 +1869: 7811 +1870: -7658 +1871: -4774 +1872: -8773 +1873: 173 +1874: -603 +1875: 86 +1876: 9371 +1877: -6175 +1878: 4958 +1879: -2060 +1880: 8138 +1881: 5179 +1882: -8017 +1883: -5355 +1884: -451 +1885: -7318 +1886: 7035 +1887: -7463 +1888: 6584 +1889: 2907 +1890: -7703 +1891: -8026 +1892: 977 +1893: -5176 +1894: -7366 +1895: -8042 +1896: 5805 +1897: 6175 +1898: -8029 +1899: -3463 +1900: -2951 +1901: -2207 +1902: 4840 +1903: 2407 +1904: 7512 +1905: -9487 +1906: 7807 +1907: 4326 +1908: -5661 +1909: 3590 +1910: -4285 +1911: 6690 +1912: 2836 +1913: -6686 +1914: -6678 +1915: -4008 +1916: -2368 +1917: 5506 +1918: 1525 +1919: 6681 +1920: 1636 +1921: 857 +1922: -583 +1923: 8522 +1924: -7166 +1925: -7925 +1926: 3247 +1927: 4374 +1928: -7747 +1929: -225 +1930: 701 +1931: 6492 +1932: -2705 +1933: -5555 +1934: 7949 +1935: -3537 +1936: -2157 +1937: -5780 +1938: -7439 +1939: 2853 +1940: -9423 +1941: 9367 +1942: -5147 +1943: 2949 +1944: -7194 +1945: -2446 +1946: 706 +1947: 9194 +1948: -6716 +1949: -6067 +1950: 9466 +1951: -6385 +1952: 7015 +1953: 8491 +1954: 7879 +1955: 1490 +1956: 1230 +1957: -6413 +1958: -8808 +1959: -8143 +1960: 5575 +1961: -9142 +1962: 713 +1963: 8020 +1964: 6363 +1965: -5183 +1966: 4909 +1967: -2804 +1968: 7216 +1969: 7907 +1970: -9256 +1971: 6918 +1972: 4812 +1973: -3252 +1974: 5081 +1975: -4618 +1976: 6342 +1977: -3209 +1978: 7949 +1979: -8022 +1980: -2055 +1981: 9023 +1982: 292 +1983: 5439 +1984: 4228 +1985: -3507 +1986: -391 +1987: 961 +1988: -9856 +1989: 7693 +1990: -1708 +1991: 2126 +1992: 2630 +1993: -5120 +1994: 637 +1995: -2159 +1996: 318 +1997: 7339 +1998: -8179 +1999: -9729 +2000: -3848 +2001: -7959 +2002: 1267 +2003: 7613 +2004: -3266 +2005: 6678 +2006: -7703 +2007: 8165 +2008: -7600 +2009: -7116 +2010: -6704 +2011: -2333 +2012: -9651 +2013: 6604 +2014: 3994 +2015: 2877 +2016: -2586 +2017: -4618 +2018: 8737 +2019: -8208 +2020: 2388 +2021: 8142 +2022: -4557 +2023: 7292 +2024: 8574 +2025: -791 +2026: 482 +2027: 2718 +2028: -2635 +2029: 7667 +2030: 4199 +2031: -3846 +2032: -7165 +2033: 5041 +2034: 1888 +2035: -7108 +2036: -1604 +2037: 4583 +2038: -7209 +2039: 2449 +2040: 6078 +2041: 3767 +2042: -7550 +2043: 7882 +2044: 5610 +2045: -7194 +2046: 7766 +2047: 2838 +2048: 3460 +2049: 9615 +2050: -2979 +2051: 4038 +2052: -2708 +2053: -2679 +2054: -7793 +2055: -5302 +2056: -7136 +2057: -7164 +2058: -7438 +2059: 9803 +2060: 7151 +2061: 7760 +2062: -7972 +2063: 7347 +2064: -5942 +2065: -7441 +2066: -2385 +2067: 7853 +2068: -9877 +2069: -8536 +2070: -1959 +2071: 666 +2072: -1352 +2073: -865 +2074: 5175 +2075: -2009 +2076: 7450 +2077: -6385 +2078: 7811 +2079: 7487 +2080: 2190 +2081: 3908 +2082: 1220 +2083: -5319 +2084: -5178 +2085: 1091 +2086: 6092 +2087: -4465 +2088: -7248 +2089: -3300 +2090: -8340 +2091: 5515 +2092: -8398 +2093: 2209 +2094: -7292 +2095: -1943 +2096: -6459 +2097: -8017 +2098: -8903 +2099: -92 +2100: 459 +2101: -3173 +2102: -4831 +2103: -2354 +2104: -7752 +2105: -9615 +2106: 9965 +2107: -2751 +2108: 2064 +2109: -3388 +2110: -2337 +2111: 1770 +2112: -7049 +2113: -1450 +2114: -1292 +2115: -9100 +2116: -7033 +2117: 6632 +2118: -2242 +2119: 3390 +2120: -889 +2121: -6998 +2122: 4648 +2123: 4315 +2124: -7470 +2125: 2427 +2126: -4770 +2127: 7063 +2128: -7510 +2129: -6905 +2130: -2021 +2131: 7649 +2132: 8040 +2133: 3787 +2134: 5513 +2135: -8144 +2136: 2398 +2137: 2619 +2138: 1350 +2139: -2487 +2140: -844 +2141: -4996 +2142: 3141 +2143: 150 +2144: -5168 +2145: -7049 +2146: -9095 +2147: 5969 +2148: -7049 +2149: 894 +2150: -7905 +2151: -2728 +2152: 4340 +2153: -6252 +2154: 7358 +2155: 6774 +2156: 1731 +2157: -7052 +2158: 7506 +2159: -7669 +2160: -2536 +2161: -2635 +2162: -7204 +2163: -5869 +2164: 5969 +2165: 1998 +2166: 6829 +2167: -9601 +2168: -4158 +2169: 9275 +2170: 2241 +2171: -8728 +2172: 1267 +2173: 2837 +2174: -1752 +2175: 1238 +2176: -4654 +2177: 2517 +2178: 2528 +2179: 7803 +2180: 2093 +2181: 2632 +2182: 776 +2183: -2232 +2184: 9926 +2185: -2658 +2186: -7167 +2187: 2432 +2188: 9883 +2189: -2055 +2190: -6925 +2191: 5959 +2192: 1435 +2193: -1899 +2194: -9112 +2195: -7944 +2196: -4280 +2197: -2521 +2198: 1766 +2199: -7258 +2200: -3520 +2201: -2058 +2202: 3145 +2203: -9538 +2204: 7747 +2205: -3279 +2206: -5143 +2207: -2261 +2208: -496 +2209: 5405 +2210: 1869 +2211: 8089 +2212: -6650 +2213: 7640 +2214: 6523 +2215: 6492 +2216: -2838 +2217: -2363 +2218: 1491 +2219: -310 +2220: -85 +2221: -2157 +2222: 2399 +2223: 2312 +2224: 9031 +2225: -7478 +2226: 9863 +2227: -2293 +2228: -6 +2229: 9688 +2230: -7014 +2231: 2291 +2232: -568 +2233: 612 +2234: 9438 +2235: 8159 +2236: -5183 +2237: -1982 +2238: -9967 +2239: -2897 +2240: -1994 +2241: -6896 +2242: -2096 +2243: -3358 +2244: 7897 +2245: 8872 +2246: -7664 +2247: 8629 +2248: 6078 +2249: 1943 +2250: 8469 +2251: -4815 +2252: 4708 +2253: 9374 +2254: 7432 +2255: 8093 +2256: 8063 +2257: -1631 +2258: -2385 +2259: 6524 +2260: -2153 +2261: 6209 +2262: 9421 +2263: 7279 +2264: -5706 +2265: 7801 +2266: 3546 +2267: -3966 +2268: 9856 +2269: 4448 +2270: -3756 +2271: 2619 +2272: -3457 +2273: -7779 +2274: 704 +2275: -2838 +2276: -7439 +2277: -3598 +2278: 7185 +2279: 7168 +2280: 3048 +2281: 3216 +2282: 8197 +2283: 8032 +2284: 2945 +2285: -2058 +2286: -2738 +2287: 7613 +2288: 6060 +2289: -2040 +2290: 4302 +2291: 9411 +2292: -1865 +2293: 7501 +2294: -2653 +2295: 1885 +2296: 1929 +2297: -7514 +2298: -7743 +2299: 9510 +2300: 2155 +2301: -1784 +2302: -1320 +2303: -9128 +2304: -2329 +2305: -8928 +2306: -6193 +2307: -7667 +2308: 2167 +2309: -3676 +2310: 7359 +2311: 6572 +2312: 8589 +2313: 8305 +2314: 3546 +2315: -925 +2316: -4141 +2317: 7662 +2318: -9803 +2319: 1103 +2320: 7662 +2321: 9841 +2322: -7003 +2323: 2303 +2324: -5161 +2325: -7027 +2326: -7750 +2327: -1092 +2328: -1020 +2329: 9685 +2330: -6794 +2331: -8085 +2332: -4516 +2333: -7680 +2334: 8834 +2335: 8912 +2336: 1265 +2337: -7959 +2338: -2711 +2339: -2636 +2340: -7075 +2341: -7440 +2342: 5959 +2343: 9196 +2344: -9541 +2345: 7077 +2346: 7113 +2347: 4569 +2348: -9438 +2349: -2871 +2350: -8141 +2351: 662 +2352: -6916 +2353: 8073 +2354: -7058 +2355: 2744 +2356: 5554 +2357: 4024 +2358: -8156 +2359: 5983 +2360: -8630 +2361: -6201 +2362: -8525 +2363: 7436 +2364: -9561 +2365: 4020 +2366: 8995 +2367: -9080 +2368: 6751 +2369: -2857 +2370: 4269 +2371: 2231 +2372: -6998 +2373: -1788 +2374: -6728 +2375: -8252 +2376: 8176 +2377: 5519 +2378: 2562 +2379: 2848 +2380: -3482 +2381: 755 +2382: 9421 +2383: -3289 +2384: 7608 +2385: -4852 +2386: 2619 +2387: 7900 +2388: 3839 +2389: 3723 +2390: -760 +2391: -6606 +2392: 8801 +2393: -1766 +2394: 2319 +2395: 5391 +2396: 1281 +2397: 3196 +2398: 7847 +2399: 7945 +2400: -1876 +2401: -2756 +2402: -6861 +2403: 6365 +2404: -2438 +2405: 4913 +2406: 5659 +2407: -3292 +2408: 4868 +2409: -1723 +2410: -4417 +2411: 2473 +2412: -5069 +2413: 7664 +2414: 8916 +2415: 155 +2416: 3247 +2417: -2005 +2418: -8616 +2419: 8125 +2420: 1988 +2421: -5757 +2422: -7286 +2423: 1854 +2424: -4824 +2425: 2712 +2426: -1550 +2427: 7127 +2428: -9192 +2429: -7086 +2430: -725 +2431: 7529 +2432: -4525 +2433: 6363 +2434: -7654 +2435: 2298 +2436: -1924 +2437: 539 +2438: -5610 +2439: -6838 +2440: -6004 +2441: -1398 +2442: 8817 +2443: -2266 +2444: 4515 +2445: -2345 +2446: 2562 +2447: -3138 +2448: -8724 +2449: -6790 +2450: 6742 +2451: -4042 +2452: 9989 +2453: 1247 +2454: 7647 +2455: 2019 +2456: -1202 +2457: -1960 +2458: -8164 +2459: -6450 +2460: -9146 +2461: -3204 +2462: 3011 +2463: -6676 +2464: -6701 +2465: -6948 +2466: -2325 +2467: -6769 +2468: 1693 +2469: 2670 +2470: -8289 +2471: -7519 +2472: 4920 +2473: 571 +2474: 6748 +2475: 2191 +2476: -4567 +2477: 3117 +2478: 3085 +2479: -970 +2480: -2285 +2481: -2965 +2482: 3659 +2483: 8182 +2484: 3173 +2485: 8195 +2486: -8281 +2487: 2315 +2488: -2161 +2489: -4155 +2490: -7530 +2491: 3049 +2492: -9421 +2493: -2376 +2494: -802 +2495: 1912 +2496: 9658 +2497: -5634 +2498: 6748 +2499: -7033 +2500: 7226 +2501: -7007 +2502: 5425 +2503: -6955 +2504: 1890 +2505: -8758 +2506: 5338 +2507: -6958 +2508: 5812 +2509: -6630 +2510: 7412 +2511: 2004 +2512: 9087 +2513: -3025 +2514: -3760 +2515: 8165 +2516: 3309 +2517: 1705 +2518: -6237 +2519: -4517 +2520: -1835 +2521: -3958 +2522: 3768 +2523: -9731 +2524: 3171 +2525: 1433 +2526: -7055 +2527: -2679 +2528: -2203 +2529: -6404 +2530: -8164 +2531: 2351 +2532: 76 +2533: 9023 +2534: -7139 +2535: -3733 +2536: 9408 +2537: -3201 +2538: 5575 +2539: -6692 +2540: -8858 +2541: 7739 +2542: 5456 +2543: -2143 +2544: 8293 +2545: 7461 +2546: 8381 +2547: -4272 +2548: -4602 +2549: -8393 +2550: 7610 +2551: -2624 +2552: -2273 +2553: -1336 +2554: 7822 +2555: -1632 +2556: -1725 +2557: 5495 +2558: -3423 +2559: 7650 +2560: 8084 +2561: -6824 +2562: -7377 +2563: -2534 +2564: 5106 +2565: -5312 +2566: -3186 +2567: 7251 +2568: 7309 +2569: -1637 +2570: 7016 +2571: 1554 +2572: 1028 +2573: 1308 +2574: 6958 +2575: 7709 +2576: -1861 +2577: -6749 +2578: -225 +2579: -7027 +2580: -6441 +2581: 7714 +2582: 2433 +2583: -7560 +2584: -5228 +2585: -8837 +2586: 9961 +2587: 8148 +2588: 8349 +2589: 1821 +2590: -8987 +2591: 2913 +2592: 4035 +2593: -2434 +2594: 8289 +2595: -9596 +2596: 4844 +2597: 1214 +2598: -7267 +2599: 7098 +2600: -2107 +2601: -2009 +2602: -379 +2603: -1408 +2604: -7509 +2605: 7145 +2606: 8538 +2607: -8544 +2608: 1574 +2609: 8410 +2610: 9240 +2611: 8151 +2612: 2598 +2613: 4828 +2614: -3608 +2615: -9099 +2616: -7777 +2617: 7948 +2618: 6158 +2619: -8549 +2620: -3424 +2621: -6813 +2622: -9100 +2623: 4723 +2624: 9824 +2625: 2877 +2626: -5072 +2627: -1660 +2628: -7771 +2629: 8293 +2630: 5489 +2631: -9272 +2632: 1112 +2633: -7408 +2634: -2203 +2635: 8986 +2636: -2850 +2637: -6824 +2638: -2412 +2639: 6718 +2640: -7295 +2641: -6424 +2642: 1557 +2643: -1792 +2644: -8865 +2645: 1635 +2646: 5554 +2647: 8868 +2648: 1753 +2649: 6331 +2650: 9887 +2651: 8098 +2652: -1875 +2653: 2339 +2654: -1694 +2655: 8453 +2656: 2399 +2657: -6184 +2658: 2037 +2659: 228 +2660: -9288 +2661: 9113 +2662: 5630 +2663: -2642 +2664: 8146 +2665: 2799 +2666: 1393 +2667: 2720 +2668: 3137 +2669: -6126 +2670: 5506 +2671: 3212 +2672: 1043 +2673: -4951 +2674: 7844 +2675: -7553 +2676: 3106 +2677: 3216 +2678: -1483 +2679: -704 +2680: -9711 +2681: 2772 +2682: -1733 +2683: -6751 +2684: -9580 +2685: -8554 +2686: -8369 +2687: 3415 +2688: 3309 +2689: 5198 +2690: -3698 +2691: -7152 +2692: 6600 +2693: -1982 +2694: -2061 +2695: -1950 +2696: -9837 +2697: 9576 +2698: 634 +2699: 1482 +2700: -6777 +2701: -2241 +2702: -5822 +2703: -3574 +2704: 98 +2705: -7007 +2706: 4269 +2707: -9026 +2708: -993 +2709: -2078 +2710: 2808 +2711: 7845 +2712: 3916 +2713: 8818 +2714: 4829 +2715: 2762 +2716: -2252 +2717: 5837 +2718: 3950 +2719: -7985 +2720: 3447 +2721: -3614 +2722: 7078 +2723: 5101 +2724: 9198 +2725: 9877 +2726: -6515 +2727: -9256 +2728: -8398 +2729: 3439 +2730: 5173 +2731: 3321 +2732: -2392 +2733: 3480 +2734: 1335 +2735: 3867 +2736: -9276 +2737: -6948 +2738: -7234 +2739: -3734 +2740: -6698 +2741: 7814 +2742: 483 +2743: -8067 +2744: 5747 +2745: 4668 +2746: -1766 +2747: -6972 +2748: 5627 +2749: -8269 +2750: 6846 +2751: 111 +2752: -7409 +2753: -7337 +2754: -8872 +2755: 2433 +2756: 5706 +2757: -9729 +2758: 9397 +2759: 3210 +2760: -2923 +2761: -8854 +2762: -6143 +2763: -8126 +2764: -987 +2765: -4351 +2766: 3149 +2767: -1940 +2768: -2158 +2769: 3533 +2770: 3301 +2771: -516 +2772: -4762 +2773: -7075 +2774: -4113 +2775: 8471 +2776: -7052 +2777: 7926 +2778: -352 +2779: -3286 +2780: 8503 +2781: 8447 +2782: 7779 +2783: -6657 +2784: 3420 +2785: -1480 +2786: 8561 +2787: -4306 +2788: -2121 +2789: -4702 +2790: -4888 +2791: 2229 +2792: 779 +2793: -9855 +2794: 8396 +2795: -6614 +2796: 576 +2797: 7845 +2798: 5984 +2799: 6016 +2800: 3425 +2801: -6721 +2802: -4082 +2803: -6940 +2804: -1537 +2805: 3533 +2806: -5091 +2807: 1720 +2808: 3389 +2809: 6289 +2810: -3564 +2811: -3947 +2812: 4260 +2813: -6962 +2814: -7030 +2815: -6439 +2816: -7102 +2817: 5316 +2818: 109 +2819: 7809 +2820: 3425 +2821: 7840 +2822: 747 +2823: 1986 +2824: 1488 +2825: -4469 +2826: -264 +2827: 6389 +2828: -8281 +2829: -1982 +2830: 664 +2831: 662 +2832: -1430 +2833: 1821 +2834: -1825 +2835: -7030 +2836: 6813 +2837: -7040 +2838: 7916 +2839: 9824 +2840: 7840 +2841: -9313 +2842: 7675 +2843: 3513 +2844: -239 +2845: -4861 +2846: -6055 +2847: -6269 +2848: 3397 +2849: -3169 +2850: -2850 +2851: -6584 +2852: 2037 +2853: -6367 +2854: -6550 +2855: -9422 +2856: -289 +2857: -8151 +2858: 4140 +2859: 6323 +2860: 8033 +2861: 8734 +2862: 3370 +2863: -1214 +2864: 3659 +2865: 4534 +2866: 8433 +2867: -6737 +2868: 3120 +2869: -7586 +2870: -8699 +2871: -6863 +2872: -2009 +2873: -3061 +2874: 3227 +2875: 3268 +2876: 1435 +2877: -1328 +2878: 1230 +2879: 9805 +2880: -5177 +2881: -3850 +2882: -2477 +2883: 2629 +2884: 78 +2885: -1723 +2886: -6739 +2887: 1606 +2888: 5885 +2889: -8957 +2890: 1454 +2891: 357 +2892: 9965 +2893: -8572 +2894: 4598 +2895: 2046 +2896: -6947 +2897: -8592 +2898: -2534 +2899: 3769 +2900: 7385 +2901: 9475 +2902: 6331 +2903: -1529 +2904: 8625 +2905: 9165 +2906: 1428 +2907: -9342 +2908: 1683 +2909: 7148 +2910: -7284 +2911: 5287 +2912: -2671 +2913: -7058 +2914: -2828 +2915: -1206 +2916: 6897 +2917: -6569 +2918: -6756 +2919: 8250 +2920: 1005 +2921: 3583 +2922: 8919 +2923: -3003 +2924: -1695 +2925: -3164 +2926: 6012 +2927: 4323 +2928: -2996 +2929: -1531 +2930: -4643 +2931: -1460 +2932: -9176 +2933: -1954 +2934: 9920 +2935: -490 +2936: 5325 +2937: -1773 +2938: -8135 +2939: 7349 +2940: -5016 +2941: 2520 +2942: 3404 +2943: 2089 +2944: 8349 +2945: -2416 +2946: 6960 +2947: -6704 +2948: -9367 +2949: 6256 +2950: 3604 +2951: -4143 +2952: -6360 +2953: 6427 +2954: 8543 +2955: 6142 +2956: -6987 +2957: 4147 +2958: 4424 +2959: -2161 +2960: -9848 +2961: -6882 +2962: 4744 +2963: 8596 +2964: 2006 +2965: -6374 +2966: 4038 +2967: 2301 +2968: 7178 +2969: 6904 +2970: -6610 +2971: 3129 +2972: -9528 +2973: 5103 +2974: 3645 +2975: -1632 +2976: 5566 +2977: 4413 +2978: -6985 +2979: 4172 +2980: 940 +2981: -6883 +2982: -3306 +2983: 8172 +2984: -9623 +2985: 9980 +2986: -3315 +2987: -3437 +2988: -2881 +2989: -8544 +2990: -6384 +2991: -1348 +2992: 5571 +2993: 6249 +2994: 7465 +2995: -7521 +2996: -8897 +2997: 6704 +2998: -1664 +2999: 3098 +3000: -9194 +3001: 6623 +3002: 6783 +3003: 3671 +3004: -1940 +3005: 7066 +3006: -1808 +3007: 1930 +3008: -2401 +3009: -8621 +3010: -6470 +3011: -8535 +3012: 2139 +3013: 8295 +3014: -7853 +3015: -2385 +3016: -6338 +3017: 3495 +3018: 7675 +3019: 7117 +3020: 5483 +3021: -5101 +3022: -1762 +3023: 3359 +3024: -1792 +3025: 576 +3026: 6677 +3027: 9475 +3028: -2841 +3029: 8304 +3030: -1238 +3031: 9797 +3032: 8213 +3033: -6646 +3034: 8170 +3035: 6352 +3036: 1221 +3037: -8793 +3038: -1615 +3039: -5699 +3040: -1323 +3041: -2532 +3042: -8816 +3043: -8874 +3044: 3335 +3045: 3681 +3046: -6526 +3047: 3994 +3048: -839 +3049: -4176 +3050: -4988 +3051: 1356 +3052: 3660 +3053: -8078 +3054: -1895 +3055: -3210 +3056: 9826 +3057: 924 +3058: 6068 +3059: 7683 +3060: -2157 +3061: 8159 +3062: -8446 +3063: -8473 +3064: -1042 +3065: 6978 +3066: 2337 +3067: 3134 +3068: 2404 +3069: 9979 +3070: -2271 +3071: 3473 +3072: 5403 +3073: 7906 +3074: 3463 +3075: -2573 +3076: -6672 +3077: 3381 +3078: -6697 +3079: -2691 +3080: -1160 +3081: 8692 +3082: -7167 +3083: 5247 +3084: 3544 +3085: 5041 +3086: 7259 +3087: -5591 +3088: 5036 +3089: -440 +3090: -6439 +3091: -2910 +3092: 1731 +3093: -1463 +3094: 3193 +3095: -3457 +3096: -2801 +3097: 9173 +3098: -4159 +3099: -7838 +3100: -5377 +3101: -7344 +3102: -3990 +3103: -134 +3104: 4038 +3105: 5212 +3106: 7358 +3107: -3931 +3108: 7739 +3109: 3659 +3110: 3571 +3111: 4587 +3112: -2497 +3113: -6330 +3114: 8553 +3115: -2153 +3116: 3117 +3117: -1529 +3118: -8285 +3119: 3216 +3120: -8366 +3121: -6213 +3122: 3469 +3123: 2160 +3124: 4038 +3125: 3213 +3126: -7907 +3127: -4605 +3128: 8585 +3129: -2686 +3130: 1340 +3131: -2576 +3132: 4583 +3133: 3430 +3134: 2307 +3135: -6563 +3136: 7230 +3137: -81 +3138: -513 +3139: 6604 +3140: -8150 +3141: -7877 +3142: -9638 +3143: 7560 +3144: -6879 +3145: -5103 +3146: -5351 +3147: -7226 +3148: 1753 +3149: 3247 +3150: -8837 +3151: -2670 +3152: -1202 +3153: 1027 +3154: 1234 +3155: 8417 +3156: -3726 +3157: -7403 +3158: 9864 +3159: 8457 +3160: 2004 +3161: -8067 +3162: 8717 +3163: 7262 +3164: 3425 +3165: 5750 +3166: -1214 +3167: -3425 +3168: 1011 +3169: 577 +3170: -1353 +3171: 9691 +3172: 5828 +3173: -15 +3174: -5473 +3175: 8302 +3176: 3385 +3177: -6269 +3178: 2061 +3179: -1801 +3180: -5993 +3181: 8408 +3182: 1853 +3183: -2718 +3184: 7850 +3185: 4782 +3186: -7843 +3187: 4410 +3188: -4702 +3189: 7580 +3190: -1996 +3191: -4449 +3192: -912 +3193: 2038 +3194: 2990 +3195: -7696 +3196: 6259 +3197: 8437 +3198: 2767 +3199: 994 +3200: -5946 +3201: -588 +3202: 9795 +3203: 7801 +3204: 5135 +3205: -1835 +3206: -2203 +3207: -33 +3208: -7204 +3209: -1334 +3210: -9768 +3211: -2159 +3212: 4363 +3213: -6793 +3214: -6027 +3215: 3496 +3216: 8176 +3217: -6060 +3218: -6466 +3219: -9856 +3220: 9524 +3221: 7572 +3222: -6240 +3223: 4798 +3224: 8725 +3225: -1206 +3226: 9943 +3227: -160 +3228: -7557 +3229: -1430 +3230: 4534 +3231: -3176 +3232: -5846 +3233: 3090 +3234: -7755 +3235: 678 +3236: -1669 +3237: 566 +3238: -1378 +3239: 7877 +3240: 2907 +3241: -2083 +3242: -2817 +3243: -5422 +3244: -9795 +3245: -7983 +3246: -309 +3247: -6203 +3248: -6599 +3249: 5403 +3250: -6560 +3251: -6250 +3252: 2505 +3253: 5246 +3254: -6678 +3255: 3374 +3256: -7180 +3257: 8870 +3258: 8795 +3259: 8799 +3260: 6185 +3261: 7383 +3262: -1828 +3263: 3301 +3264: -5783 +3265: -2089 +3266: 2906 +3267: -6824 +3268: -1495 +3269: -7960 +3270: -3819 +3271: -9910 +3272: -9066 +3273: -373 +3274: -7026 +3275: -9023 +3276: 5101 +3277: 1554 +3278: -4083 +3279: 5182 +3280: 7407 +3281: -1516 +3282: 2913 +3283: -7384 +3284: -6303 +3285: -6298 +3286: -3089 +3287: -6095 +3288: -7371 +3289: -1671 +3290: 7399 +3291: 3848 +3292: 3907 +3293: 6639 +3294: 2492 +3295: 1989 +3296: -2392 +3297: -5272 +3298: 3671 +3299: -9859 +3300: -1426 +3301: 8727 +3302: 8799 +3303: -3458 +3304: -4924 +3305: 333 +3306: -2392 +3307: 8447 +3308: -2434 +3309: 5343 +3310: 1879 +3311: 3786 +3312: 666 +3313: 6276 +3314: -8227 +3315: -6913 +3316: 5461 +3317: 6199 +3318: 5117 +3319: -5489 +3320: -1955 +3321: -2025 +3322: -7464 +3323: 1275 +3324: 3643 +3325: 4003 +3326: -9381 +3327: 3467 +3328: -3428 +3329: 5613 +3330: 9023 +3331: -4574 +3332: -269 +3333: 7178 +3334: -9796 +3335: 20 +3336: 1673 +3337: -7437 +3338: -3109 +3339: -3909 +3340: 8852 +3341: 8262 +3342: -1207 +3343: -3740 +3344: -3383 +3345: -8350 +3346: 6206 +3347: -8812 +3348: 3090 +3349: -8042 +3350: 2448 +3351: 5233 +3352: 7254 +3353: -1687 +3354: -8755 +3355: 9603 +3356: -6082 +3357: 6299 +3358: 8699 +3359: 3569 +3360: -6736 +3361: 8868 +3362: -1958 +3363: 5944 +3364: 1632 +3365: 5065 +3366: 6267 +3367: 2298 +3368: 891 +3369: 2042 +3370: 6945 +3371: -6126 +3372: -9 +3373: 3863 +3374: 2033 +3375: -2271 +3376: 3498 +3377: 3430 +3378: -2782 +3379: -7614 +3380: -6043 +3381: 3615 +3382: -2389 +3383: -1774 +3384: -1800 +3385: -6695 +3386: -1571 +3387: 2548 +3388: -8719 +3389: -5238 +3390: 2488 +3391: -5223 +3392: -6635 +3393: 2457 +3394: 7076 +3395: 9522 +3396: 1929 +3397: 8480 +3398: -6443 +3399: 5421 +3400: -6335 +3401: 7949 +3402: 4089 +3403: 2703 +3404: 3851 +3405: 7297 +3406: 3115 +3407: 763 +3408: -505 +3409: 2879 +3410: 7261 +3411: -1348 +3412: -1514 +3413: -3088 +3414: 1988 +3415: -8676 +3416: 3356 +3417: 5177 +3418: 7259 +3419: -7585 +3420: 3495 +3421: 827 +3422: -6360 +3423: 6155 +3424: -5595 +3425: -6711 +3426: 1704 +3427: -2080 +3428: -7149 +3429: 8974 +3430: -1365 +3431: -6525 +3432: -2747 +3433: -8547 +3434: 5225 +3435: 546 +3436: 6896 +3437: -3852 +3438: 8192 +3439: 8611 +3440: -1214 +3441: -1352 +3442: 2718 +3443: -9967 +3444: -3123 +3445: 8911 +3446: 3053 +3447: -430 +3448: -4513 +3449: 6677 +3450: -6099 +3451: 9049 +3452: -1466 +3453: 5513 +3454: 8535 +3455: 228 +3456: -8350 +3457: 2675 +3458: -5984 +3459: -3965 +3460: -6618 +3461: -5060 +3462: 3129 +3463: -380 +3464: 2590 +3465: -6672 +3466: -6109 +3467: -6237 +3468: -6241 +3469: -1579 +3470: -5994 +3471: 6620 +3472: 2877 +3473: -1011 +3474: -2651 +3475: -3710 +3476: -1622 +3477: 6652 +3478: 8450 +3479: -2396 +3480: -5022 +3481: 8721 +3482: 3324 +3483: 9032 +3484: 7741 +3485: -1377 +3486: 8479 +3487: -2585 +3488: 2591 +3489: -3868 +3490: -6088 +3491: 1249 +3492: 4308 +3493: -1269 +3494: -956 +3495: 6514 +3496: -9663 +3497: 8588 +3498: 4020 +3499: 3381 +3500: -6877 +3501: 7897 +3502: -6297 +3503: -6037 +3504: -7338 +3505: 4042 +3506: 1793 +3507: 3502 +3508: -2571 +3509: -4370 +3510: -1156 +3511: -3463 +3512: -6361 +3513: 8556 +3514: 7423 +3515: -8886 +3516: -2241 +3517: -7375 +3518: 8810 +3519: -1042 +3520: 8289 +3521: -1963 +3522: 4567 +3523: -7902 +3524: -4951 +3525: -2923 +3526: 5627 +3527: 86 +3528: 6036 +3529: -6321 +3530: 7610 +3531: 3753 +3532: 8917 +3533: -9477 +3534: -2266 +3535: -6109 +3536: -7530 +3537: -4818 +3538: -7408 +3539: -4940 +3540: -5360 +3541: -5127 +3542: -9450 +3543: 5410 +3544: 7346 +3545: 9031 +3546: 1664 +3547: -6043 +3548: -4938 +3549: 8955 +3550: 7683 +3551: -6148 +3552: 5025 +3553: 3768 +3554: -8304 +3555: 961 +3556: -6113 +3557: 3835 +3558: 3712 +3559: 9928 +3560: -995 +3561: -6967 +3562: -6347 +3563: -3594 +3564: 8413 +3565: -4993 +3566: 8570 +3567: -1160 +3568: 8593 +3569: -6042 +3570: -2686 +3571: 2388 +3572: -225 +3573: -6338 +3574: 3540 +3575: 5658 +3576: 5094 +3577: -2293 +3578: 2410 +3579: 1080 +3580: -4149 +3581: -4126 +3582: -3238 +3583: -6367 +3584: -9274 +3585: 2877 +3586: 1362 +3587: -7052 +3588: -4875 +3589: -2667 +3590: 840 +3591: 9108 +3592: -6704 +3593: -6162 +3594: 6557 +3595: -4630 +3596: 8446 +3597: 7011 +3598: 8006 +3599: -5557 +3600: -4980 +3601: 643 +3602: 6853 +3603: -2401 +3604: -1199 +3605: -6922 +3606: 1804 +3607: -3550 +3608: 3632 +3609: 3473 +3610: 7473 +3611: 5231 +3612: -6105 +3613: 3983 +3614: 1548 +3615: -1657 +3616: -9456 +3617: -7240 +3618: -1116 +3619: -1302 +3620: -6669 +3621: -5860 +3622: -9194 +3623: 2006 +3624: 9753 +3625: -1142 +3626: 6927 +3627: -4257 +3628: 5257 +3629: -1304 +3630: 1601 +3631: -2586 +3632: 8912 +3633: 2853 +3634: -5885 +3635: 9288 +3636: -5050 +3637: -4354 +3638: -1405 +3639: -6330 +3640: 7063 +3641: 7028 +3642: 3396 +3643: 4166 +3644: -6367 +3645: 5732 +3646: -6361 +3647: -7654 +3648: 2024 +3649: 7212 +3650: 4333 +3651: 2321 +3652: 4776 +3653: 8710 +3654: -4514 +3655: -3118 +3656: -8120 +3657: 8546 +3658: 6514 +3659: 4180 +3660: 3419 +3661: -2026 +3662: -6250 +3663: -6103 +3664: -4935 +3665: -7061 +3666: -9046 +3667: -9878 +3668: 7262 +3669: -6162 +3670: 4686 +3671: -1493 +3672: -819 +3673: -2883 +3674: 2756 +3675: 2449 +3676: 9921 +3677: -7415 +3678: 7319 +3679: 725 +3680: -4548 +3681: 9726 +3682: -445 +3683: 8692 +3684: -6004 +3685: -6486 +3686: 3153 +3687: -851 +3688: -6848 +3689: -8830 +3690: 4003 +3691: -4435 +3692: -6873 +3693: -8817 +3694: -4352 +3695: -4529 +3696: -8385 +3697: 2048 +3698: -2276 +3699: 2702 +3700: -2217 +3701: -7955 +3702: 30 +3703: 5820 +3704: 2978 +3705: 3792 +3706: -6166 +3707: 9196 +3708: 9224 +3709: 9010 +3710: -8620 +3711: -7501 +3712: -1689 +3713: 6515 +3714: 127 +3715: -1525 +3716: -1035 +3717: 1945 +3718: -1017 +3719: -1723 +3720: 2493 +3721: -9710 +3722: -7660 +3723: 3907 +3724: -2070 +3725: 7188 +3726: -1575 +3727: -9278 +3728: -9010 +3729: 8397 +3730: -819 +3731: -799 +3732: -3462 +3733: -1091 +3734: 4186 +3735: -6530 +3736: -5838 +3737: -3603 +3738: 8084 +3739: 4598 +3740: -868 +3741: -3842 +3742: 7216 +3743: 8746 +3744: 9266 +3745: -9732 +3746: 6353 +3747: -773 +3748: 3151 +3749: 7148 +3750: -3238 +3751: -4709 +3752: -2242 +3753: -6503 +3754: -6464 +3755: 1438 +3756: 7839 +3757: 2972 +3758: -6657 +3759: -8286 +3760: -7055 +3761: -8225 +3762: -3759 +3763: 8917 +3764: 7264 +3765: 8516 +3766: 4151 +3767: -8162 +3768: -6166 +3769: -6485 +3770: 7882 +3771: -8398 +3772: 4151 +3773: -761 +3774: 7461 +3775: 6276 +3776: -3166 +3777: -2330 +3778: -3762 +3779: 8699 +3780: -9317 +3781: -788 +3782: -1835 +3783: -6122 +3784: -716 +3785: -6238 +3786: -1017 +3787: 8675 +3788: -5012 +3789: -9009 +3790: 9906 +3791: 8783 +3792: -8257 +3793: 3467 +3794: 1051 +3795: 3709 +3796: -4 +3797: 9213 +3798: -8676 +3799: -4913 +3800: 7667 +3801: -9110 +3802: 2404 +3803: -7609 +3804: -2706 +3805: -3979 +3806: -5754 +3807: -1984 +3808: 4721 +3809: 9191 +3810: -716 +3811: 8721 +3812: -5774 +3813: -4573 +3814: 7270 +3815: 8974 +3816: -7397 +3817: -6854 +3818: 8241 +3819: 9146 +3820: 2047 +3821: 109 +3822: 6918 +3823: 669 +3824: 877 +3825: 1598 +3826: -1092 +3827: 2376 +3828: -1259 +3829: 9799 +3830: 3467 +3831: 30 +3832: 4211 +3833: 217 +3834: 4100 +3835: -7225 +3836: 6133 +3837: -5318 +3838: 4645 +3839: -7312 +3840: 9944 +3841: -8739 +3842: -2421 +3843: 9045 +3844: -7666 +3845: 9215 +3846: 2210 +3847: 878 +3848: 8070 +3849: 4147 +3850: 4785 +3851: 5269 +3852: 9727 +3853: -1247 +3854: 9296 +3855: 5737 +3856: -5866 +3857: 5041 +3858: 91 +3859: 4333 +3860: 4211 +3861: -5851 +3862: -5785 +3863: -3227 +3864: -3003 +3865: 4006 +3866: 6350 +3867: -5931 +3868: -1825 +3869: -5757 +3870: -3762 +3871: -7328 +3872: -1921 +3873: -5699 +3874: 3377 +3875: 3485 +3876: 3891 +3877: -5103 +3878: -3011 +3879: -6320 +3880: 9228 +3881: -446 +3882: 867 +3883: -5333 +3884: 266 +3885: -3586 +3886: -1097 +3887: -6162 +3888: 9214 +3889: -6023 +3890: 6379 +3891: 4782 +3892: 5405 +3893: -4655 +3894: -8868 +3895: 3736 +3896: -6837 +3897: 7089 +3898: 9307 +3899: -1726 +3900: 3328 +3901: 5378 +3902: 7882 +3903: 3536 +3904: -5060 +3905: -1448 +3906: -1456 +3907: -4051 +3908: 2307 +3909: 3964 +3910: 9072 +3911: 945 +3912: 7060 +3913: 1322 +3914: -617 +3915: 8063 +3916: 1473 +3917: -1571 +3918: 8868 +3919: 7644 +3920: 7642 +3921: -8260 +3922: 4549 +3923: 9394 +3924: -5942 +3925: 2940 +3926: 3268 +3927: 6994 +3928: 9939 +3929: 9275 +3930: 7845 +3931: 1061 +3932: -7373 +3933: -9555 +3934: -873 +3935: 5287 +3936: 3987 +3937: -5925 +3938: -5923 +3939: -1322 +3940: 3291 +3941: -7054 +3942: 9372 +3943: 5851 +3944: -1142 +3945: -5783 +3946: -1820 +3947: -1283 +3948: -390 +3949: -8366 +3950: -5660 +3951: -5720 +3952: 9299 +3953: -443 +3954: -6387 +3955: -6247 +3956: 4289 +3957: -6985 +3958: 7429 +3959: -6667 +3960: -1394 +3961: 7092 +3962: 1683 +3963: 6736 +3964: -7521 +3965: 3310 +3966: 474 +3967: -4285 +3968: -7962 +3969: 5837 +3970: 9332 +3971: 4095 +3972: 8064 +3973: -6863 +3974: 6147 +3975: 4013 +3976: 9326 +3977: 2411 +3978: 9130 +3979: 9100 +3980: 1693 +3981: -1010 +3982: -3028 +3983: 6623 +3984: 7969 +3985: 9272 +3986: 1548 +3987: 4374 +3988: -6376 +3989: -7118 +3990: 3137 +3991: -2445 +3992: 393 +3993: 7997 +3994: 9856 +3995: 2032 +3996: -5997 +3997: -8531 +3998: 1941 +3999: 6234 +4000: 767 +4001: -1139 +4002: 3173 +4003: -9727 +4004: 2716 +4005: -912 +4006: -3324 +4007: -2915 +4008: -6394 +4009: -559 +4010: 6003 +4011: 6071 +4012: -1647 +4013: -718 +4014: 6142 +4015: -6668 +4016: -6914 +4017: 8216 +4018: -2154 +4019: 9301 +4020: 6569 +4021: -1010 +4022: 8969 +4023: 9147 +4024: 8532 +4025: -9289 +4026: 1498 +4027: 9015 +4028: 3129 +4029: 7115 +4030: -5732 +4031: -530 +4032: 3916 +4033: -7269 +4034: 6228 +4035: -5650 +4036: 3398 +4037: -8425 +4038: 1556 +4039: 3499 +4040: -8084 +4041: 7629 +4042: -755 +4043: -9368 +4044: -4872 +4045: -5787 +4046: 9288 +4047: 3485 +4048: 882 +4049: -884 +4050: -581 +4051: 7866 +4052: -8611 +4053: -5537 +4054: -883 +4055: 3282 +4056: -5799 +4057: 5743 +4058: -2642 +4059: 6206 +4060: -9970 +4061: 4374 +4062: 8681 +4063: 7510 +4064: 4499 +4065: 5108 +4066: -6825 +4067: 4250 +4068: 6383 +4069: 9466 +4070: 576 +4071: 1887 +4072: 6168 +4073: -3258 +4074: 4097 +4075: -5867 +4076: 7465 +4077: -1955 +4078: 503 +4079: -1442 +4080: 2703 +4081: 3088 +4082: -5890 +4083: 3228 +4084: -5112 +4085: 8873 +4086: -3462 +4087: 9215 +4088: -2291 +4089: 3011 +4090: 3287 +4091: -2477 +4092: 9161 +4093: 9854 +4094: -4480 +4095: 3971 +4096: -6727 +4097: 6465 +4098: 5569 +4099: -2037 +4100: 3420 +4101: 1606 +4102: 50 +4103: -5607 +4104: -4345 +4105: -8406 +4106: 4918 +4107: -6113 +4108: -9050 +4109: -2645 +4110: -2060 +4111: -2741 +4112: 5741 +4113: -1765 +4114: 8644 +4115: 741 +4116: -6728 +4117: -6215 +4118: -516 +4119: 1761 +4120: 860 +4121: -9970 +4122: 7222 +4123: 6665 +4124: -6842 +4125: -8122 +4126: -5555 +4127: 4020 +4128: -6645 +4129: 717 +4130: -6439 +4131: 9151 +4132: -4951 +4133: 7436 +4134: 8992 +4135: 1546 +4136: 5138 +4137: -5138 +4138: 9130 +4139: 1027 +4140: -5694 +4141: -531 +4142: 842 +4143: 6423 +4144: 7255 +4145: -5994 +4146: -5613 +4147: -729 +4148: 4499 +4149: 6850 +4150: 9442 +4151: -5553 +4152: -1383 +4153: 9202 +4154: -5223 +4155: -6568 +4156: 1632 +4157: -1301 +4158: 8601 +4159: 855 +4160: -8771 +4161: 7436 +4162: 3171 +4163: 7258 +4164: -1342 +4165: 9382 +4166: 9248 +4167: -533 +4168: 6888 +4169: 3652 +4170: 4114 +4171: -8425 +4172: -5614 +4173: -6913 +4174: -3842 +4175: 2952 +4176: -9175 +4177: 4028 +4178: 9466 +4179: 9315 +4180: 7650 +4181: -4033 +4182: -559 +4183: 2341 +4184: 2186 +4185: 8437 +4186: 8710 +4187: 9518 +4188: -7419 +4189: 4322 +4190: 4694 +4191: 5522 +4192: 9696 +4193: -803 +4194: -552 +4195: 9367 +4196: 3615 +4197: 4435 +4198: -5634 +4199: 1831 +4200: 4410 +4201: 4969 +4202: -6109 +4203: -5301 +4204: -7086 +4205: -5717 +4206: -1257 +4207: 4537 +4208: 7182 +4209: 9476 +4210: 6198 +4211: 7324 +4212: 3360 +4213: -4130 +4214: -9630 +4215: -1508 +4216: 3247 +4217: -517 +4218: -6645 +4219: 3037 +4220: 8261 +4221: 4343 +4222: 8578 +4223: -1437 +4224: 9164 +4225: -2184 +4226: -4162 +4227: 3693 +4228: -895 +4229: 3447 +4230: 6452 +4231: 5474 +4232: 7967 +4233: 3579 +4234: -1363 +4235: 9469 +4236: 8434 +4237: 9602 +4238: 8955 +4239: 898 +4240: -5646 +4241: -7026 +4242: 7053 +4243: -6948 +4244: -8252 +4245: -9159 +4246: -2305 +4247: 4224 +4248: 5191 +4249: -3467 +4250: -6162 +4251: -5443 +4252: 9665 +4253: -8449 +4254: 4534 +4255: -3374 +4256: 6742 +4257: 8219 +4258: -1080 +4259: -456 +4260: -2137 +4261: 7035 +4262: 6962 +4263: 8950 +4264: 1097 +4265: 6078 +4266: 3645 +4267: 114 +4268: -827 +4269: -859 +4270: -310 +4271: 7803 +4272: -489 +4273: 6533 +4274: 3206 +4275: 6075 +4276: -1125 +4277: 9131 +4278: 4703 +4279: 4355 +4280: -5573 +4281: -5422 +4282: 9062 +4283: -9533 +4284: 9435 +4285: 4068 +4286: 4502 +4287: -6258 +4288: 4582 +4289: 5854 +4290: 1021 +4291: 3956 +4292: -7511 +4293: 5690 +4294: 302 +4295: 4551 +4296: -4778 +4297: -4888 +4298: 4431 +4299: -2039 +4300: -3612 +4301: 5141 +4302: 6566 +4303: -7955 +4304: 9600 +4305: -3855 +4306: 5025 +4307: 4821 +4308: -2923 +4309: -7047 +4310: -5419 +4311: 8817 +4312: 768 +4313: -4508 +4314: -5985 +4315: -8594 +4316: 6568 +4317: -526 +4318: -6004 +4319: -6439 +4320: -687 +4321: 3496 +4322: 1693 +4323: 2442 +4324: 3236 +4325: -2039 +4326: -2957 +4327: 4524 +4328: 9933 +4329: 3227 +4330: -6998 +4331: 7682 +4332: 1704 +4333: -7305 +4334: -2736 +4335: -845 +4336: -450 +4337: 5854 +4338: 8433 +4339: 110 +4340: 4254 +4341: 8911 +4342: 1058 +4343: 1491 +4344: -8108 +4345: 6014 +4346: -130 +4347: 5956 +4348: -5377 +4349: 4569 +4350: 5198 +4351: -1232 +4352: -2477 +4353: 4592 +4354: 8870 +4355: 9703 +4356: -8108 +4357: -2061 +4358: -7021 +4359: 7892 +4360: 867 +4361: 3733 +4362: -5630 +4363: 7462 +4364: 7840 +4365: -5381 +4366: -6776 +4367: -1260 +4368: -5319 +4369: -3703 +4370: 1778 +4371: 1623 +4372: -5355 +4373: -687 +4374: -4665 +4375: 9617 +4376: -5360 +4377: -1296 +4378: -4185 +4379: -2028 +4380: 3750 +4381: -1099 +4382: -3759 +4383: 1764 +4384: 9524 +4385: 9562 +4386: -5925 +4387: 1438 +4388: -865 +4389: 473 +4390: 3117 +4391: 5161 +4392: 4372 +4393: -3863 +4394: 2936 +4395: -5861 +4396: -7044 +4397: -9738 +4398: 8157 +4399: 8427 +4400: -3815 +4401: 5143 +4402: 7791 +4403: -4363 +4404: -7301 +4405: 2613 +4406: -9145 +4407: -343 +4408: -3562 +4409: 2315 +4410: 8868 +4411: 578 +4412: -8024 +4413: -7339 +4414: -1551 +4415: 9610 +4416: 7785 +4417: 9267 +4418: 1673 +4419: -613 +4420: -45 +4421: -5774 +4422: 4645 +4423: -5526 +4424: -4051 +4425: 2655 +4426: -5342 +4427: 8900 +4428: 5066 +4429: -291 +4430: -2028 +4431: 9216 +4432: 9617 +4433: 3606 +4434: -6824 +4435: -5341 +4436: 7704 +4437: 6751 +4438: 7629 +4439: 4459 +4440: 1622 +4441: -2975 +4442: -5706 +4443: 4427 +4444: -8806 +4445: 4544 +4446: 8176 +4447: -607 +4448: 1664 +4449: -6446 +4450: -5304 +4451: -7599 +4452: -6178 +4453: -6735 +4454: -2329 +4455: -7067 +4456: -9365 +4457: 9146 +4458: 3381 +4459: 9325 +4460: 591 +4461: 4434 +4462: 4665 +4463: -8398 +4464: -5838 +4465: 6423 +4466: -7463 +4467: -8544 +4468: 3038 +4469: -5608 +4470: 4534 +4471: -2346 +4472: 7845 +4473: -5729 +4474: 1490 +4475: -5546 +4476: 1462 +4477: -5526 +4478: -3107 +4479: -6867 +4480: 5123 +4481: -6027 +4482: -9014 +4483: -5339 +4484: -9472 +4485: -2650 +4486: 6333 +4487: 5642 +4488: -1304 +4489: 9464 +4490: -8874 +4491: 4487 +4492: 4635 +4493: -6918 +4494: -5835 +4495: 4567 +4496: 5055 +4497: -2009 +4498: 4682 +4499: -7469 +4500: -8612 +4501: 4042 +4502: 4002 +4503: 9173 +4504: 8801 +4505: -9490 +4506: -3317 +4507: 9397 +4508: -6192 +4509: 2492 +4510: -5387 +4511: -1508 +4512: 4606 +4513: -7010 +4514: 3577 +4515: -7987 +4516: -7960 +4517: 30 +4518: 2021 +4519: -1907 +4520: -6646 +4521: -8380 +4522: -8079 +4523: 1547 +4524: 2695 +4525: -8388 +4526: -5312 +4527: -9140 +4528: -5321 +4529: -312 +4530: 7308 +4531: 1760 +4532: 6877 +4533: -4755 +4534: 9300 +4535: -7240 +4536: 7251 +4537: 3754 +4538: -7014 +4539: 7414 +4540: 3150 +4541: 7589 +4542: -4708 +4543: -3475 +4544: 7866 +4545: -1268 +4546: -9487 +4547: -993 +4548: -5345 +4549: 8800 +4550: -6445 +4551: -526 +4552: 6813 +4553: 3762 +4554: 2008 +4555: 1395 +4556: -2384 +4557: 6668 +4558: -3804 +4559: 8900 +4560: -5345 +4561: 6602 +4562: -5521 +4563: 9501 +4564: -5809 +4565: -7703 +4566: 1281 +4567: -410 +4568: -6255 +4569: -6020 +4570: 4134 +4571: 4650 +4572: 3874 +4573: -1916 +4574: -8068 +4575: 1150 +4576: 1165 +4577: 4821 +4578: 9620 +4579: -520 +4580: 1147 +4581: -3601 +4582: -4734 +4583: -5312 +4584: 9732 +4585: 4711 +4586: -5319 +4587: -3465 +4588: -1994 +4589: -4403 +4590: -2330 +4591: -1381 +4592: 6427 +4593: 6742 +4594: 3764 +4595: -377 +4596: -5313 +4597: 2006 +4598: 8173 +4599: -1916 +4600: 9743 +4601: 5692 +4602: -882 +4603: -783 +4604: -6782 +4605: 5316 +4606: -2337 +4607: 3205 +4608: -5456 +4609: -302 +4610: -868 +4611: 4684 +4612: -6530 +4613: -9827 +4614: -5448 +4615: 9743 +4616: 9481 +4617: -266 +4618: -1664 +4619: 7026 +4620: 3533 +4621: -5656 +4622: -844 +4623: 8469 +4624: -4749 +4625: -268 +4626: -5312 +4627: 1234 +4628: -8505 +4629: -8464 +4630: 2907 +4631: -1539 +4632: -354 +4633: -408 +4634: 2702 +4635: -6488 +4636: -8165 +4637: 8870 +4638: -7573 +4639: 4686 +4640: 5572 +4641: -7187 +4642: -694 +4643: -4892 +4644: -607 +4645: 4001 +4646: -8069 +4647: 9685 +4648: -5794 +4649: -7983 +4650: 1409 +4651: -8867 +4652: 9783 +4653: -8385 +4654: -2346 +4655: -9439 +4656: 6115 +4657: 3721 +4658: 8006 +4659: -1683 +4660: -3632 +4661: 3962 +4662: -225 +4663: -2555 +4664: -1314 +4665: 4668 +4666: 160 +4667: 9619 +4668: -5657 +4669: 7846 +4670: 9113 +4671: -251 +4672: 6994 +4673: -3779 +4674: 7628 +4675: 2008 +4676: -7632 +4677: 1359 +4678: -3608 +4679: 4551 +4680: -3803 +4681: 9268 +4682: -5853 +4683: 7061 +4684: 5020 +4685: 8469 +4686: -520 +4687: 795 +4688: -8185 +4689: -1360 +4690: -3541 +4691: 3696 +4692: 7886 +4693: 4401 +4694: -5144 +4695: -5238 +4696: 2471 +4697: 6579 +4698: -7510 +4699: 1632 +4700: -200 +4701: -9014 +4702: 6024 +4703: 4913 +4704: -6529 +4705: 9279 +4706: 9006 +4707: -7931 +4708: 4802 +4709: -3640 +4710: -5243 +4711: -2242 +4712: 9780 +4713: 9568 +4714: -3861 +4715: 1103 +4716: 9805 +4717: -3516 +4718: -6852 +4719: -4861 +4720: 4042 +4721: -276 +4722: 9804 +4723: 4645 +4724: -6148 +4725: -755 +4726: -1296 +4727: 7282 +4728: 1716 +4729: -7675 +4730: -2358 +4731: 8879 +4732: -451 +4733: 9202 +4734: -2355 +4735: 9268 +4736: 3026 +4737: 991 +4738: 9794 +4739: -6515 +4740: -7750 +4741: 4824 +4742: -5477 +4743: 5480 +4744: 2728 +4745: -1204 +4746: 4967 +4747: 4204 +4748: 5149 +4749: -1367 +4750: 7692 +4751: -7453 +4752: -3453 +4753: -355 +4754: -5907 +4755: 7847 +4756: 8546 +4757: 2367 +4758: -6548 +4759: 4431 +4760: 9833 +4761: 8163 +4762: 6677 +4763: -6879 +4764: -542 +4765: -464 +4766: -3457 +4767: -5231 +4768: 9529 +4769: 6524 +4770: -8764 +4771: 3096 +4772: -1586 +4773: 4806 +4774: -5156 +4775: 4743 +4776: 7387 +4777: 9843 +4778: 7098 +4779: 2731 +4780: 9288 +4781: -607 +4782: 4840 +4783: 4559 +4784: -5305 +4785: 9603 +4786: -431 +4787: 1662 +4788: -7370 +4789: 9599 +4790: 2050 +4791: 8414 +4792: 4618 +4793: -7406 +4794: -7955 +4795: -481 +4796: 4721 +4797: -6921 +4798: -5809 +4799: -5216 +4800: 7616 +4801: 6275 +4802: -273 +4803: -2023 +4804: 4804 +4805: 7112 +4806: -7582 +4807: -4031 +4808: 9459 +4809: 3115 +4810: -443 +4811: -8457 +4812: 9610 +4813: -205 +4814: -159 +4815: 4256 +4816: -9972 +4817: -2067 +4818: -5926 +4819: 1579 +4820: 7554 +4821: 7210 +4822: 4797 +4823: -4244 +4824: -444 +4825: 2698 +4826: -4580 +4827: -1410 +4828: 86 +4829: -5185 +4830: 1150 +4831: -3824 +4832: 5961 +4833: 855 +4834: 4319 +4835: 9641 +4836: -1214 +4837: 3583 +4838: -4872 +4839: 7195 +4840: -6776 +4841: 4768 +4842: 1164 +4843: 8558 +4844: 9989 +4845: -6985 +4846: -121 +4847: -7387 +4848: 4035 +4849: 859 +4850: -5147 +4851: 7629 +4852: -5413 +4853: 3723 +4854: -845 +4855: -2801 +4856: 7945 +4857: -925 +4858: -5845 +4859: -6584 +4860: -5112 +4861: 7948 +4862: 8825 +4863: -7041 +4864: 8173 +4865: 8642 +4866: -8212 +4867: 3863 +4868: 5542 +4869: 4840 +4870: 9194 +4871: 3962 +4872: 78 +4873: 1247 +4874: 9786 +4875: -906 +4876: -94 +4877: 8642 +4878: 372 +4879: 5024 +4880: -3300 +4881: -892 +4882: -1939 +4883: -2677 +4884: 4957 +4885: 8032 +4886: 7346 +4887: -5165 +4888: 4905 +4889: -544 +4890: 4922 +4891: 3381 +4892: 2241 +4893: -201 +4894: -7539 +4895: -6648 +4896: 7080 +4897: -6852 +4898: 1063 +4899: 7706 +4900: 1179 +4901: 9675 +4902: 4679 +4903: -3210 +4904: 5869 +4905: 1990 +4906: -9630 +4907: 4905 +4908: 8944 +4909: 2850 +4910: -1916 +4911: 4641 +4912: 3445 +4913: 977 +4914: -5745 +4915: -5069 +4916: 5506 +4917: 8248 +4918: -865 +4919: 4821 +4920: -5890 +4921: -5963 +4922: 5495 +4923: -1045 +4924: 9599 +4925: -6126 +4926: 9933 +4927: 2582 +4928: 99 +4929: 4816 +4930: -599 +4931: -3717 +4932: 39 +4933: 2697 +4934: 3374 +4935: -8560 +4936: -3204 +4937: -8391 +4938: 6798 +4939: 7350 +4940: -9243 +4941: -1092 +4942: -5647 +4943: -1290 +4944: 2222 +4945: 13 +4946: -8541 +4947: 1602 +4948: 4669 +4949: -7997 +4950: 9490 +4951: -5415 +4952: 6808 +4953: 4172 +4954: -9700 +4955: -7717 +4956: -5417 +4957: -2460 +4958: 4487 +4959: -140 +4960: -9412 +4961: -6192 +4962: -1455 +4963: -811 +4964: -6430 +4965: 4665 +4966: -3676 +4967: 9837 +4968: -5120 +4969: -117 +4970: -4340 +4971: 9980 +4972: 3671 +4973: 4499 +4974: -873 +4975: -8289 +4976: 4939 +4977: 4315 +4978: -4595 +4979: 3110 +4980: -5011 +4981: -6299 +4982: -7992 +4983: -677 +4984: 8547 +4985: -1984 +4986: 4189 +4987: 8911 +4988: -995 +4989: 9125 +4990: -5360 +4991: -527 +4992: 2905 +4993: 1268 +4994: 464 +4995: 3467 +4996: -1368 +4997: 8083 +4998: -4861 +4999: 9566 +Day 20 part 1: -11641 (0.072539299) diff --git a/src/days/day19/mod.rs b/src/days/day19/mod.rs index 32bf5a4..b85c754 100644 --- a/src/days/day19/mod.rs +++ b/src/days/day19/mod.rs @@ -78,15 +78,6 @@ enum Material { } impl Material { - pub fn prev(&self) -> Option { - match self { - Material::Geode => None, - Material::Obsidian => Some(Material::Geode), - Material::Clay => Some(Material::Obsidian), - Material::Ore => Some(Material::Clay), - } - } - pub fn next(&self) -> Option { match self { Material::Geode => Some(Material::Obsidian), diff --git a/src/days/day20/mod.rs b/src/days/day20/mod.rs new file mode 100644 index 0000000..078a153 --- /dev/null +++ b/src/days/day20/mod.rs @@ -0,0 +1,340 @@ +use super::template::{DayTrait, ResultType}; +use crate::common::file::split_lines; +use itertools::Itertools; +use std::{num::ParseIntError, str::FromStr}; +use thiserror::Error; + +const DAY_NUMBER: usize = 20; + +pub struct Day; + +impl DayTrait for Day { + fn get_day_number(&self) -> usize { + DAY_NUMBER + } + + fn part1(&self, lines: &str) -> anyhow::Result { + let mut ring: Ring = lines.parse()?; + ring.mix(1); + let start = ring.index_of(0)?; + Ok(ResultType::Integer( + ring.get_item(start, 1000) + ring.get_item(start, 2000) + ring.get_item(start, 3000), + )) + } + + fn part2(&self, lines: &str) -> anyhow::Result { + let mut ring: Ring = lines.parse()?; + ring.multiply(811589153); + ring.mix(10); + let start = ring.index_of(0)?; + Ok(ResultType::Integer( + ring.get_item(start, 1000) + ring.get_item(start, 2000) + ring.get_item(start, 3000), + )) + } +} + +#[derive(Debug, Error)] +enum RingError { + #[error("Parse Error")] + ParseError(#[from] ParseIntError), + #[error("Item not found {0}")] + ItemNotFound(i64), +} + +struct Ring { + items: Vec, + next: Vec, + prev: Vec, +} + +impl FromStr for Ring { + type Err = RingError; + + fn from_str(s: &str) -> Result { + let items: Vec<_> = split_lines(s).map(|line| line.parse()).try_collect()?; + Ok(Ring::new(items)) + } +} + +impl Ring { + pub fn new(items: Vec) -> Self { + let mut next = Vec::with_capacity(items.len()); + for i in 1..items.len() { + next.push(i); + } + next.push(0); + let mut prev = Vec::with_capacity(items.len()); + prev.push(items.len() - 1); + for i in 0..items.len() - 1 { + prev.push(i); + } + Self { items, next, prev } + } + + pub fn get_item(&self, start: usize, steps: usize) -> i64 { + let steps = steps % self.items.len(); + let mut next = start; + for _ in 0..steps { + next = self.next[next]; + } + self.items[next] + } + + pub fn index_of(&self, value: i64) -> Result { + self.items + .iter() + .position(|v| *v == value) + .ok_or_else(|| RingError::ItemNotFound(value)) + } + + fn next_pos(&self, pos: usize) -> usize { + let len = self.items.len() as i64; + let mut moves = self.items[pos] % (len - 1); + if moves > len / 2 { + moves -= len - 1; + } else if moves < -len / 2 { + moves += len - 1; + } + + match moves.cmp(&0) { + std::cmp::Ordering::Equal => pos, + std::cmp::Ordering::Less => { + let mut prev = self.prev[pos]; + for _ in moves..-1 { + prev = self.prev[prev]; + } + prev + } + std::cmp::Ordering::Greater => { + let mut next = self.next[pos]; + for _ in 0..moves { + next = self.next[next]; + } + next + } + } + } + + pub fn move_item(&mut self, pos: usize) { + let next_pos = self.next_pos(pos); + if next_pos == pos { + return; + } + let old_next = self.next[pos]; + self.next[self.prev[pos]] = self.next[pos]; + self.next[pos] = self.next[self.prev[next_pos]]; + self.next[self.prev[next_pos]] = pos; + + self.prev[old_next] = self.prev[pos]; + self.prev[pos] = self.prev[next_pos]; + self.prev[next_pos] = pos; + } + + #[allow(dead_code)] + pub fn iter(&self) -> RingIter<'_> { + let start = self.index_of(0).unwrap_or(0); + RingIter::new(self, start) + } + + fn mix(&mut self, times: usize) { + for _ in 0..times { + for pos in 0..self.items.len() { + self.move_item(pos); + } + } + } + + fn multiply(&mut self, arg: i64) { + self.items + .iter_mut() + .for_each(|value| *value = *value * arg); + } +} + +struct RingIter<'a> { + ring: &'a Ring, + pos: Option, + start: usize, +} + +impl<'a> RingIter<'a> { + pub fn new(ring: &'a Ring, start: usize) -> Self { + Self { + ring, + pos: Some(start), + start, + } + } +} + +impl Iterator for RingIter<'_> { + type Item = i64; + + fn next(&mut self) -> Option { + let Some(pos) = self.pos else { + return None; + }; + let next_pos = self.ring.next[pos]; + self.pos = if next_pos != self.start { + Some(next_pos) + } else { + None + }; + Some(self.ring.items[pos]) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::common::file::read_string; + use anyhow::Result; + + #[test] + fn test_part1() -> Result<()> { + let day = Day {}; + let lines = read_string(day.get_day_number(), "example01.txt")?; + let expected = ResultType::Integer(3); + let result = day.part1(&lines)?; + assert_eq!(result, expected); + + Ok(()) + } + + #[test] + fn test_part2() -> Result<()> { + let day = Day {}; + let lines = read_string(day.get_day_number(), "example01.txt")?; + let expected = ResultType::Integer(1623178306); + let result = day.part2(&lines)?; + assert_eq!(result, expected); + + Ok(()) + } + + #[test] + fn move1() { + let input = vec![1, 2, 3, 4, 5, 6, 7]; + let mut ring = Ring::new(input); + let expected = vec![1, 3, 4, 5, 6, 7, 2]; + ring.move_item(0); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn move7() { + let input = vec![7, 2, 3, 4, 5, 6, 7]; + let mut ring = Ring::new(input); + let expected = vec![7, 3, 4, 5, 6, 7, 2]; + ring.move_item(0); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn move2() { + let input = vec![1, 2, 3, 4, 5, 6, 7]; + let mut ring = Ring::new(input); + let expected = vec![1, 3, 4, 2, 5, 6, 7]; + ring.move_item(1); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn move_6() { + let input = vec![6, -2, 5, 6, 7, 8, 9]; + let mut ring = Ring::new(input); + let expected = vec![6, -2, 5, 6, 7, 8, 9]; + ring.move_item(0); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn move_minus1() { + let input = vec![4, -1, 5, 6, 7, 8, 9]; + let mut ring = Ring::new(input); + let expected = vec![4, 5, 6, 7, 8, 9, -1]; + ring.move_item(1); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn move_minus2() { + let input = vec![4, -2, 5, 6, 7, 8, 9]; + let mut ring = Ring::new(input); + let expected = vec![4, 5, 6, 7, 8, -2, 9]; + ring.move_item(1); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn move_minus4() { + let input = vec![4, -4, 5, 6, 7, 8, 9]; + let mut ring = Ring::new(input); + let expected = vec![4, 5, 6, -4, 7, 8, 9]; + ring.move_item(1); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn mix() { + let input = vec![1, 2, -3, 3, -2, 0, 4]; + let mut ring = Ring::new(input); + let expected = vec![0, 3, -2, 1, 2, -3, 4]; + ring.mix(1); + assert_eq!(ring.iter().collect_vec(), expected); + } + + #[test] + fn get_item() { + let input = vec![1, 2, 3, 4, 5, 6, 7]; + let ring = Ring::new(input); + assert_eq!(ring.get_item(0, 0), 1); + assert_eq!(ring.get_item(0, 6), 7); + assert_eq!(ring.get_item(0, 7), 1); + } + + #[test] + fn for_part1() -> Result<()> { + let day = Day {}; + let lines = read_string(day.get_day_number(), "example01.txt")?; + let mut ring: Ring = lines.parse()?; + ring.mix(1); + let expected = vec![0, 3, -2, 1, 2, -3, 4]; + assert_eq!(ring.iter().collect_vec(), expected); + + let start = ring.index_of(0)?; + assert_eq!(ring.get_item(start, 0), 0); + assert_eq!(ring.get_item(start, 1000), 4); + assert_eq!(ring.get_item(start, 2000), -3); + assert_eq!(ring.get_item(start, 3000), 2); + + Ok(()) + } + + #[test] + fn for_part2() -> Result<()> { + let day = Day {}; + let lines = read_string(day.get_day_number(), "example01.txt")?; + let mut ring: Ring = lines.parse()?; + ring.multiply(811589153); + ring.mix(10); + let expected = vec![ + 0, + -2434767459, + 1623178306, + 3246356612, + -1623178306, + 2434767459, + 811589153, + ]; + assert_eq!(ring.iter().collect_vec(), expected); + + let start = ring.index_of(0)?; + assert_eq!(ring.get_item(start, 0), 0); + assert_eq!(ring.get_item(start, 1000), 811589153); + assert_eq!(ring.get_item(start, 2000), 2434767459); + assert_eq!(ring.get_item(start, 3000), -1623178306); + + Ok(()) + } +} diff --git a/src/days/mod.rs b/src/days/mod.rs index 80b70ea..3f7ff77 100644 --- a/src/days/mod.rs +++ b/src/days/mod.rs @@ -17,6 +17,7 @@ mod day16; mod day17; mod day18; mod day19; +mod day20; mod template; pub use template::DayTrait; @@ -26,7 +27,7 @@ pub mod day_provider { use super::*; use thiserror::Error; - const MAX_DAY: usize = 19; + const MAX_DAY: usize = 20; pub fn get_day(day_num: usize) -> Result, ProviderError> { match day_num { @@ -49,6 +50,7 @@ pub mod day_provider { 17 => Ok(Box::new(day17::Day)), 18 => Ok(Box::new(day18::Day)), 19 => Ok(Box::new(day19::Day)), + 20 => Ok(Box::new(day20::Day)), _ => Err(ProviderError::InvalidNumber(day_num)), } } diff --git a/src/main.rs b/src/main.rs index 07a8ec7..2e16d26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +#![feature(get_many_mut)] + mod common; mod days; mod macros;