diff options
-rw-r--r-- | day20 | 5000 | ||||
-rw-r--r-- | day20.rkt | 94 |
2 files changed, 5094 insertions, 0 deletions
diff --git a/day20 b/day20 new file mode 100644 index 0000000..20bce18 --- /dev/null +++ b/day20 @@ -0,0 +1,5000 @@ +-1235 +5608 +9155 +-646 +-912 +2655 +3128 +-1747 +1979 +-8914 +-2631 +-1828 +-608 +-9968 +6448 +-5131 +6497 +-7017 +4938 +8131 +-5699 +-9232 +-2657 +4182 +3140 +5884 +-2447 +-5140 +5314 +8315 +8162 +-2837 +-1808 +3363 +2467 +-3136 +-9295 +-9915 +-5417 +9668 +-7372 +9276 +8932 +7597 +8865 +-951 +-1972 +5118 +7314 +-8884 +-5021 +-7597 +1253 +8816 +5711 +5354 +-8694 +958 +-1640 +1574 +-5743 +-1219 +2110 +6643 +2829 +-1995 +5178 +2451 +1363 +-4596 +8181 +1998 +-4255 +1879 +4838 +-7093 +-4087 +9935 +9608 +496 +-1998 +6678 +5793 +-4198 +-8983 +-3982 +-6492 +-6573 +-2120 +-4346 +-5265 +6875 +6574 +-7687 +9193 +-1145 +-7327 +-8181 +-8829 +9455 +2787 +-4895 +7192 +9345 +8115 +1222 +3407 +-1604 +3367 +-4917 +-6081 +182 +962 +-9591 +-7684 +5139 +275 +-8804 +5631 +-202 +-7901 +-6526 +2470 +8859 +7923 +8178 +732 +-1689 +6545 +7933 +-7383 +3665 +6116 +6281 +3432 +1331 +-794 +-3736 +-144 +-7764 +-5421 +-2257 +9872 +9501 +-1726 +-9443 +9333 +-2584 +-8067 +4733 +1673 +-6814 +-8245 +-7836 +6534 +-6357 +1383 +7116 +1721 +-1235 +9401 +7066 +2179 +5368 +9915 +277 +-2920 +3420 +4140 +8853 +4151 +2574 +-5815 +3769 +8186 +3131 +8815 +5654 +42 +8369 +9925 +8967 +-9953 +-5812 +-1554 +-5631 +-9944 +-8007 +-424 +7260 +4954 +-7232 +-4256 +-8128 +8642 +7077 +4682 +-4532 +-3615 +7460 +2127 +6464 +1517 +-1174 +2347 +2726 +-9994 +3217 +-459 +1540 +-6019 +-7332 +5683 +63 +-8425 +-3703 +7812 +795 +-7945 +624 +3781 +-5090 +-9997 +-9420 +-2116 +7381 +8525 +-2107 +-5387 +-2079 +-1407 +3347 +-9578 +-1057 +-6828 +436 +4997 +-9435 +-3536 +2257 +-307 +8449 +-1930 +6372 +3066 +-4949 +-5934 +-9667 +-3330 +6053 +1177 +2450 +-1118 +-7259 +-8295 +-3251 +4042 +1220 +-6086 +5977 +-3006 +9451 +8567 +8046 +8544 +8888 +-2853 +287 +8454 +9810 +6295 +-6577 +4728 +5121 +-5184 +-195 +-2928 +3890 +3122 +-7477 +-9459 +-4646 +-6605 +5897 +-2515 +9485 +310 +3091 +-5206 +367 +-5942 +-2982 +-5370 +-337 +-9693 +2907 +9809 +-3358 +-8067 +3677 +-7988 +2334 +-1460 +2162 +5711 +-4513 +6478 +5000 +-3122 +2414 +-5454 +9567 +6400 +-6814 +-8386 +9843 +-1559 +-5561 +1747 +2077 +9106 +2222 +-4213 +3153 +7147 +-8354 +-284 +9050 +-4603 +-1642 +4735 +-6069 +3231 +5711 +4271 +-6924 +4630 +313 +7086 +-1261 +-8584 +8399 +3989 +-6895 +-6783 +-6052 +646 +9420 +-8268 +2783 +-8318 +8898 +-9840 +7028 +1873 +9548 +2517 +7159 +-2930 +8827 +8403 +-3155 +9067 +-3123 +2180 +8438 +-6156 +-6694 +-8325 +-7284 +-7338 +-49 +-1754 +5872 +-1711 +8694 +1078 +955 +-8179 +-5061 +-8788 +-3163 +3966 +-7600 +-5076 +5140 +-5100 +4949 +895 +2744 +2618 +5331 +5364 +1605 +-5919 +-7366 +-8599 +4609 +8480 +4581 +4752 +-1749 +8719 +6814 +1274 +-1859 +177 +-7057 +2654 +-5815 +7727 +9420 +1884 +-7299 +8742 +4754 +3025 +-6800 +9766 +8837 +6574 +-9403 +-9677 +-3768 +-6085 +-3668 +-3690 +2711 +6897 +610 +-747 +-8220 +-307 +-3171 +-6081 +-9972 +2679 +-342 +-411 +-2665 +4545 +-656 +4430 +-4214 +-1449 +1531 +8665 +6419 +7233 +-304 +-6334 +7536 +8744 +1509 +1035 +9245 +-6080 +-7117 +1020 +6079 +3127 +7904 +1776 +2058 +-6655 +-8182 +-7070 +399 +-4533 +-5605 +918 +6998 +-1675 +6815 +5359 +-2824 +2305 +2938 +7359 +7617 +50 +4991 +4735 +1157 +-2563 +234 +-2901 +6759 +7038 +7627 +3051 +-3262 +-9774 +1220 +-743 +-2633 +5222 +3905 +-7282 +5264 +5186 +-4963 +2679 +9476 +7696 +-4143 +-8873 +-6605 +3094 +6879 +8897 +-177 +3923 +-4597 +-6881 +-3704 +-1589 +7130 +3741 +7947 +-6505 +6053 +4954 +1853 +-6856 +1002 +-5970 +8997 +7061 +8307 +-3489 +2903 +7028 +-2990 +-7418 +-4040 +-8714 +2267 +-6645 +4434 +-4318 +-5696 +-2823 +1304 +2707 +9552 +-2052 +-6206 +-3732 +-7575 +7580 +1858 +6800 +5981 +755 +4714 +-3377 +9624 +-3518 +2878 +-111 +9096 +3838 +7617 +-6443 +3415 +-1930 +-9486 +-6384 +-190 +6793 +-3030 +4266 +-6145 +454 +-3541 +-3646 +-559 +6892 +-2257 +-3549 +-3585 +-4248 +7695 +-2385 +-5732 +-8606 +-466 +-9726 +5118 +-2716 +2844 +1290 +597 +-4552 +9455 +9802 +2264 +2387 +2562 +7001 +3538 +-4717 +2606 +9930 +7079 +-5287 +9445 +8884 +-4214 +-2431 +1368 +1951 +8954 +5138 +3633 +-6647 +-7381 +-2024 +1802 +-6668 +5257 +-1099 +2261 +-1717 +3050 +-9019 +-9425 +5981 +-3290 +1049 +2968 +-6743 +-2586 +1178 +-586 +-6104 +-1147 +-9922 +3487 +4994 +6454 +7690 +-5362 +1683 +-1824 +-5529 +-376 +-1096 +2409 +3111 +606 +-7058 +7100 +-2913 +-2853 +4370 +8094 +24 +-2042 +1663 +-1998 +-7575 +6076 +6610 +-4281 +-9122 +-5376 +-5713 +9935 +2290 +-4714 +-9543 +-2747 +-188 +1634 +-8313 +1420 +7923 +942 +-2710 +7819 +2904 +-4561 +4480 +-3762 +-129 +1503 +-6156 +6318 +8081 +1632 +-169 +6798 +-7638 +-3512 +-7286 +-9050 +1787 +8158 +-1504 +-6085 +1334 +9495 +-6334 +2968 +2246 +-9774 +-2059 +-9225 +4987 +3657 +-6245 +-6724 +-9976 +-4509 +-2827 +5607 +9209 +1299 +3241 +-8969 +8375 +3688 +323 +3435 +-874 +9209 +-8220 +8025 +834 +6230 +520 +-9023 +-3343 +-2593 +-8151 +6761 +-8228 +-9273 +-1497 +-6424 +6944 +-1284 +-8272 +3426 +-4858 +-2754 +-59 +-2105 +-4575 +4391 +-1907 +330 +-1412 +-5886 +9764 +-4536 +2638 +-5081 +9817 +-6883 +3252 +7165 +2692 +-8679 +-4294 +33 +-8445 +2821 +-6544 +5914 +5958 +-8996 +7065 +248 +4714 +-9565 +7938 +-5265 +-4346 +-5815 +-5376 +4965 +-5125 +1420 +-8540 +9269 +7011 +9780 +7532 +-3809 +-477 +-1208 +-4877 +1578 +-7769 +3591 +6786 +-2749 +3984 +174 +-6810 +1008 +3663 +2467 +7724 +-635 +-4050 +4402 +-3418 +-1594 +-2010 +-7004 +-209 +-3078 +6282 +-9281 +208 +-9277 +-7800 +5288 +1444 +6076 +-3029 +-5967 +7686 +4715 +2679 +-869 +9624 +-1586 +-4722 +7695 +8320 +-2120 +7944 +7595 +6211 +-300 +5116 +4158 +7708 +3527 +2735 +6452 +-3069 +-329 +-2584 +-2533 +6462 +-2166 +-3935 +4412 +1290 +-794 +4109 +-7740 +-5537 +-482 +-9438 +8115 +964 +9786 +7135 +2971 +-5384 +9747 +5822 +-9165 +3894 +-8217 +-1132 +4328 +2456 +7449 +-7581 +-7126 +-5530 +5859 +-4079 +5210 +-1333 +9465 +-9256 +-1408 +-8496 +-3134 +8073 +1189 +-336 +-4302 +9023 +1002 +-1499 +8938 +2601 +-2901 +-1821 +-96 +9670 +-5431 +-6001 +-9047 +1383 +4631 +-7740 +-5890 +4069 +8522 +-9912 +3606 +1157 +1882 +-3168 +-7982 +-2549 +9075 +5631 +5176 +-1420 +7776 +9242 +673 +9107 +6928 +-5373 +-9928 +245 +-7338 +8095 +9154 +-5034 +4453 +7494 +5264 +6800 +-5697 +-211 +-5413 +9615 +-9363 +-4669 +-1213 +-6296 +4904 +-4896 +-794 +-3995 +7234 +-7022 +6793 +5246 +4498 +7004 +-6770 +8413 +-6866 +-2022 +472 +-9688 +-5211 +5092 +8360 +-2390 +-7443 +-398 +9479 +7726 +-169 +-664 +-5512 +-3111 +-6469 +3944 +4959 +6875 +-1407 +-9861 +-8750 +9174 +7939 +-7594 +-6962 +4890 +-9273 +5958 +2088 +2793 +2469 +-812 +4891 +9843 +1331 +8289 +-9732 +-1217 +-9417 +7741 +9206 +-8759 +2267 +-6313 +1343 +-9431 +-7418 +1796 +2563 +5046 +7015 +1083 +2974 +2690 +-7836 +-4745 +-119 +4152 +5858 +9062 +67 +-2010 +918 +6967 +3422 +-1262 +-4997 +3145 +-9192 +-5743 +4732 +-7554 +-8491 +-8868 +9651 +-1017 +-9819 +-317 +3847 +73 +-474 +6973 +8706 +-4699 +4419 +5963 +9687 +-6994 +-1693 +-1731 +7956 +5502 +-6476 +-7960 +-4586 +125 +-5624 +-5518 +-1577 +-2329 +5336 +6643 +2902 +-6185 +-9372 +1556 +4714 +2140 +7637 +7702 +-1468 +8837 +6967 +-2927 +7860 +3738 +1902 +-9689 +35 +-7799 +-572 +9126 +3630 +-1453 +1572 +2690 +3851 +-5445 +-5561 +-3412 +-6446 +-7927 +439 +-3904 +4974 +-4623 +6230 +3748 +-9226 +-1568 +8658 +4004 +7495 +-8981 +794 +6981 +4191 +-4079 +-9181 +-6040 +-3214 +718 +2058 +-9971 +4263 +852 +-5254 +-6949 +-3167 +8302 +6699 +8589 +4682 +-3282 +-7431 +-4623 +2535 +5264 +8197 +-4207 +-5265 +-3439 +7384 +6161 +905 +7645 +9555 +9799 +274 +-8040 +-7102 +-4940 +-1371 +-5590 +-4977 +-5973 +-8346 +4184 +3599 +-413 +296 +1402 +-2581 +-3651 +-6040 +5392 +6309 +7104 +-8315 +962 +-9029 +7061 +-7745 +1550 +-9941 +-2714 +2043 +-7332 +-7363 +9687 +9657 +5429 +949 +6465 +6031 +2783 +-8072 +-2664 +-7811 +-4399 +-7170 +5349 +6794 +208 +-1285 +5564 +8916 +-3438 +-9599 +91 +1022 +-6753 +-882 +8525 +-3598 +-9102 +9357 +7859 +4279 +-1580 +-7119 +3814 +8634 +9611 +6875 +254 +8061 +-3451 +-3866 +-9581 +5573 +-3847 +7973 +-8582 +-5589 +-8319 +-4340 +-3352 +3332 +463 +-306 +-4128 +-9610 +4702 +2087 +-6775 +-3067 +1443 +-7307 +-2081 +8097 +2515 +-9850 +-1538 +8107 +-9027 +-3704 +-1284 +-6156 +496 +-7342 +9354 +2901 +1531 +-1698 +-8356 +1503 +978 +9245 +264 +-9753 +154 +8275 +2687 +1899 +-1388 +-2947 +9624 +-1559 +7043 +-2955 +2165 +7383 +-6630 +-9628 +8879 +-4988 +-7641 +1854 +6172 +-980 +860 +-1626 +-6586 +-5112 +-7356 +6958 +3984 +4168 +2986 +-2926 +-4756 +-2059 +-5555 +-2710 +8388 +-6088 +603 +7474 +2380 +-9540 +-5835 +-5612 +-5502 +1602 +8932 +3821 +-2144 +-2036 +5637 +5023 +-8199 +-8048 +-1808 +7477 +8700 +6558 +1540 +-4365 +-9246 +-9409 +1255 +9872 +8705 +8299 +-3321 +9525 +-3469 +8274 +-3511 +7454 +5171 +2766 +-9950 +2932 +4899 +-1092 +6427 +1538 +4622 +7836 +-2880 +6921 +4456 +-1327 +-5234 +262 +-11 +-6122 +2047 +2408 +1719 +-6747 +-3434 +7820 +6145 +-6185 +2671 +2553 +-4760 +-3391 +-3498 +358 +-9367 +9234 +3617 +-1206 +275 +8017 +-3035 +-1155 +-7873 +4881 +1564 +-5729 +1378 +-4096 +8718 +2917 +-5307 +68 +-5233 +-366 +-518 +-6071 +-773 +-9450 +7921 +8922 +6623 +4336 +2450 +-7625 +2639 +3968 +-9880 +-2230 +1121 +5351 +4406 +3409 +-4581 +310 +-2992 +711 +-686 +5364 +-9941 +823 +-4243 +-9452 +-6885 +-7654 +-2515 +-1996 +-9862 +2995 +4043 +9584 +-7974 +2519 +449 +6377 +3883 +-9200 +-2590 +3738 +3515 +8647 +8505 +-4972 +-4213 +-5117 +93 +-8069 +-5150 +-2383 +819 +-3469 +-9332 +-3176 +-3626 +-9747 +-3720 +5637 +3069 +558 +-4041 +5383 +1529 +-192 +4456 +7458 +9797 +4380 +7322 +253 +9790 +-1230 +9930 +3805 +1371 +5502 +-741 +3289 +3365 +-9460 +-7204 +-1330 +7824 +8516 +6903 +2605 +-5482 +-4244 +582 +5627 +-1801 +6223 +8719 +-9875 +-6129 +4419 +-2315 +-9175 +8107 +-907 +3417 +-9471 +-981 +8565 +-4359 +-1345 +5569 +-5793 +273 +-614 +-6239 +-1169 +7362 +8158 +1666 +-672 +898 +1679 +3738 +2787 +-2160 +4147 +-6229 +6978 +-6132 +-138 +1846 +-2545 +-2524 +-3257 +1126 +8837 +-6299 +1470 +5984 +2783 +-2174 +4201 +-6458 +198 +2604 +-1240 +2753 +849 +-8086 +9223 +-4066 +-159 +-1743 +3938 +-1080 +3667 +9749 +-2242 +-1103 +8155 +1083 +-6841 +-1329 +-1127 +-7117 +-7345 +9664 +-8391 +-8799 +-41 +-4323 +6160 +569 +-3244 +-4857 +-5757 +2747 +9615 +-1360 +-4257 +6216 +9893 +4550 +-6076 +9731 +5838 +8294 +9484 +2851 +-7975 +-8632 +2321 +4294 +-2855 +1652 +-5813 +-8735 +-6503 +-4399 +7608 +-3067 +901 +9080 +8720 +1899 +-2448 +866 +-773 +-9609 +7043 +3966 +-4340 +4082 +2246 +-8412 +2621 +5981 +3793 +-5212 +638 +6180 +-307 +403 +2517 +-3362 +-4338 +-4639 +8659 +8153 +5464 +3261 +-9228 +5364 +4397 +-3489 +6656 +-304 +-3271 +6995 +-8629 +-1442 +-9897 +7701 +2087 +2161 +-9875 +-5373 +-1672 +-668 +8642 +-464 +1626 +1662 +-3578 +-9574 +8803 +-8284 +-6139 +8134 +7159 +7303 +5115 +9882 +4082 +7588 +9745 +-7119 +-898 +-1425 +-1344 +1139 +-3817 +4824 +-6270 +9001 +-5997 +-1132 +114 +-2677 +-3123 +-2622 +-8307 +-3438 +820 +8846 +4066 +1938 +9186 +-8249 +2165 +-59 +8672 +-6450 +1884 +1180 +-5696 +-4252 +5947 +6798 +-4509 +6049 +572 +-6475 +7367 +-1283 +-9470 +62 +-8584 +-126 +-1627 +3126 +1205 +-6555 +9767 +1602 +8477 +-4766 +2199 +-6635 +-3717 +9458 +-3153 +-3451 +1255 +-284 +-6483 +3676 +-6052 +-1268 +-7265 +6309 +-2904 +792 +-700 +-3498 +-9968 +-4611 +-3797 +532 +-3137 +1039 +-3438 +-3751 +-9250 +4251 +-473 +2853 +-2909 +-7684 +-3751 +2344 +4487 +-8337 +-6007 +9959 +6454 +-6164 +-7750 +84 +-1818 +777 +-9200 +-1566 +-7522 +1240 +-8699 +-4128 +-4509 +-7204 +4615 +1684 +-6371 +9118 +5393 +3232 +-8481 +-8640 +8044 +-2211 +1873 +2468 +-5650 +2802 +-3111 +-1895 +-2990 +-2941 +-677 +-2323 +-6479 +-5035 +-56 +-8213 +-1585 +-5997 +-9607 +2915 +-5802 +3487 +1069 +3633 +-1261 +-2512 +4366 +-2139 +-2022 +-8217 +4484 +-515 +2851 +-5234 +5837 +8108 +856 +1177 +-9539 +-5037 +-1527 +849 +6180 +6361 +5618 +4685 +7147 +-6207 +7701 +4476 +-5973 +-9194 +2616 +4440 +-8960 +8595 +636 +8762 +3621 +-1726 +-1572 +3663 +-2011 +-9330 +8615 +7234 +-7974 +-2998 +-7863 +9614 +5017 +8948 +-7556 +4433 +5036 +-8367 +7645 +-8476 +8719 +2621 +1863 +5464 +3781 +-9373 +8580 +1205 +-2430 +-8532 +-828 +6730 +-3646 +157 +4152 +-188 +-7925 +-2145 +8251 +2497 +2480 +-5564 +-8182 +-4467 +6742 +-8832 +8352 +-1989 +-2389 +-288 +-8093 +-3611 +380 +-1828 +-7710 +2291 +-8725 +9118 +-8785 +-6048 +-7035 +-3579 +287 +2707 +636 +3241 +8410 +6886 +1748 +-8806 +-6510 +-129 +7895 +3534 +-7119 +-4797 +3145 +9335 +2764 +582 +-246 +955 +9938 +-839 +-5139 +5671 +-6645 +-7019 +3683 +5078 +-356 +7196 +8348 +4700 +-5747 +3648 +9532 +9239 +8522 +-7694 +3405 +8376 +-9115 +6040 +1609 +8970 +7877 +3655 +9439 +1088 +180 +-6966 +2656 +-4578 +7251 +7903 +9404 +-3076 +9401 +-1392 +9458 +3322 +-6206 +2276 +4705 +-3380 +486 +-4288 +9637 +2456 +5645 +1813 +-4933 +7505 +-6450 +1624 +-1335 +-3717 +-1285 +-6243 +7153 +-5595 +-6744 +-6904 +-7633 +-5267 +-6665 +8300 +1544 +9784 +9760 +3140 +-5630 +6727 +-8494 +9874 +6310 +-3575 +288 +-6158 +2751 +9695 +-6784 +-3047 +792 +9364 +3663 +7260 +-2861 +-3087 +1398 +3591 +-2372 +-4353 +-547 +6699 +2081 +-13 +-2166 +1197 +-3828 +-2389 +-4611 +-7117 +-7795 +-3712 +-1210 +2197 +-9055 +5809 +3661 +-4701 +1605 +-9591 +9024 +2456 +1556 +-812 +4627 +-3362 +-3199 +4424 +5867 +-300 +9954 +2267 +9455 +4352 +8816 +4063 +5544 +-7125 +-8501 +6295 +-3378 +-4750 +-8174 +-7477 +-8837 +2983 +-5106 +-4013 +-6156 +-6317 +5431 +-3564 +934 +9972 +4284 +4232 +6419 +-5381 +-9769 +-2166 +-987 +2468 +-9106 +-6948 +141 +-5984 +4946 +-2708 +4932 +-9203 +-2322 +-4271 +-1554 +2621 +4628 +4416 +-5375 +-4344 +6910 +6574 +-1937 +-8622 +-8186 +-7665 +-9216 +5765 +7182 +-4743 +8148 +-8654 +-8264 +-975 +1634 +-2265 +-5849 +4132 +5494 +-5093 +4147 +-1006 +-7566 +2517 +2515 +1083 +1489 +-9188 +8583 +-8413 +-8983 +9784 +-6555 +3621 +-3155 +9677 +-8031 +-5125 +-1066 +-5459 +9957 +4488 +-1684 +6389 +1559 +2664 +6798 +4864 +-9194 +8932 +-9583 +7906 +1692 +-9926 +9186 +-8663 +5532 +-9100 +702 +-6637 +-2906 +-635 +-2265 +-6873 +8910 +4464 +7490 +-4925 +-4793 +-8806 +-5315 +3153 +2702 +7719 +1290 +-7073 +1887 +5346 +61 +-4294 +-8490 +2770 +6599 +7106 +4627 +-254 +288 +-2432 +9575 +-4349 +2745 +2574 +3001 +-7585 +-5233 +-663 +-207 +-4650 +9079 +-8893 +3389 +3236 +-5964 +-8734 +-4583 +-5166 +-8765 +2320 +-5201 +6004 +5706 +-2512 +1932 +-7662 +9132 +-6299 +2787 +-6357 +3768 +6475 +6675 +8022 +7066 +1385 +-7574 +7846 +7133 +9849 +3709 +-7936 +-7802 +-6670 +1444 +-7718 +-9854 +8044 +6377 +1902 +3895 +-6017 +-3154 +3753 +1998 +-2230 +8642 +-2257 +-7318 +5781 +-3719 +7525 +-5022 +1708 +2028 +19 +-4213 +-7133 +-5855 +5345 +8545 +-2268 +-9850 +3661 +6975 +3962 +2156 +-5517 +-8532 +907 +-8708 +2569 +1556 +-2652 +4092 +2299 +-7105 +6475 +1071 +-9164 +-3790 +9948 +-6871 +-9817 +-2427 +3232 +-9044 +-2275 +-9628 +2194 +4135 +-3816 +-8851 +6631 +3261 +2879 +-4035 +-1210 +5768 +392 +1995 +-2990 +-2529 +-5465 +-4986 +4538 +-5042 +-3020 +4488 +-9651 +-5736 +-5009 +-8733 +-1770 +1916 +-7713 +7409 +7899 +2939 +4221 +-9051 +-9544 +-9534 +-3371 +6069 +-4248 +6454 +-3816 +-2196 +-2133 +957 +5569 +1668 +5631 +4934 +-4098 +-1730 +1540 +-5723 +-8187 +9845 +3261 +-1330 +9536 +-3336 +-9885 +5165 +-4594 +3145 +-6890 +2718 +-6240 +-8439 +-1513 +212 +-4581 +582 +-1365 +8517 +8900 +-1402 +48 +-7913 +-3571 +5171 +6491 +9586 +-2160 +-2542 +-3282 +8926 +1606 +8131 +2267 +-8893 +5378 +2880 +-4035 +3228 +-5068 +-7148 +-5993 +3289 +9382 +-3707 +7394 +1309 +-1266 +1258 +-4152 +-7633 +271 +-1330 +1444 +-6469 +-4416 +3236 +-2998 +4465 +-7752 +-7595 +7130 +9447 +8185 +-254 +-7503 +9299 +6229 +6895 +-6377 +7288 +869 +-2295 +-7101 +-807 +-7363 +-6774 +-9990 +3976 +4236 +-9543 +-1460 +-9945 +1666 +9250 +1822 +2088 +-747 +5932 +3051 +-9673 +6452 +-2032 +2467 +-1268 +-9183 +6706 +955 +6244 +8609 +1368 +5593 +-8947 +6454 +-6332 +-7974 +4262 +-9788 +8938 +-8118 +8562 +9747 +-8515 +-4866 +7939 +-8722 +-2512 +-7966 +4131 +-5287 +-3061 +4838 +3527 +-8837 +-7718 +8314 +8324 +141 +8084 +-9480 +2719 +-307 +4871 +546 +2497 +5779 +-1337 +872 +-7634 +4183 +9584 +5957 +-7750 +-5930 +-8617 +2647 +5991 +2558 +-7304 +-5396 +-4105 +1731 +-8567 +8131 +-7264 +3365 +-3262 +1127 +1944 +6975 +3877 +180 +3611 +-133 +8682 +-5299 +-3566 +-9194 +7065 +8438 +-7590 +-7905 +4167 +-47 +-7299 +2991 +1045 +-4419 +-6444 +-7538 +-1857 +823 +-9023 +1894 +-7376 +-2124 +-729 +7043 +599 +-6950 +9554 +-9216 +7251 +-1777 +-3406 +7246 +1655 +430 +6999 +2995 +8280 +-7304 +-5835 +8280 +7037 +9868 +-5574 +-6493 +-8350 +-5496 +-3051 +8971 +-2745 +-6040 +-2293 +6 +-7126 +3254 +-1772 +8186 +-3777 +-4256 +1121 +7383 +2212 +-8182 +-9791 +4705 +7609 +-394 +8222 +7967 +4364 +-9804 +9657 +7432 +9629 +-6921 +-5686 +-392 +-8852 +7676 +4732 +-6461 +-3619 +-6441 +8719 +-2894 +594 +-1548 +2325 +2618 +3225 +2756 +-1193 +-1321 +-6879 +5189 +8042 +-5417 +3665 +-3940 +-1081 +-3192 +-4644 +556 +3387 +-379 +5611 +-7624 +-3911 +-2154 +348 +5404 +8158 +1996 +-1982 +-5677 +-7757 +-6755 +8210 +-887 +-6309 +-5653 +6239 +7378 +8494 +1259 +1122 +1491 +-8574 +7106 +2430 +1002 +-1583 +-3406 +-3867 +9420 +-2933 +-7942 +9615 +3805 +4008 +-5454 +1559 +5618 +-5307 +-139 +-1580 +-6426 +4510 +-8187 +-6007 +8589 +-1916 +1552 +9695 +1815 +-8031 +4661 +8664 +9952 +9653 +-2657 +-4006 +-8858 +-6140 +8968 +-5764 +8181 +403 +-1213 +9682 +8364 +955 +-6185 +-2573 +479 +658 +9098 +-6536 +-5137 +-5058 +-8804 +-3078 +-2244 +5846 +-9472 +1819 +8181 +-9815 +-2526 +-2132 +2537 +-4056 +5439 +2647 +957 +-9468 +9484 +6674 +6928 +-2199 +-8272 +-1021 +7787 +-5237 +9668 +-6974 +6372 +-8799 +9760 +-2928 +-5270 +2399 +9997 +-585 +-2841 +9519 +3507 +-9041 +-4853 +-7554 +-4745 +1394 +1926 +6602 +6272 +3502 +-8289 +-4087 +2726 +8257 +-3067 +-728 +-4102 +-7580 +792 +360 +8274 +479 +9716 +-4345 +-691 +1528 +-3712 +3422 +8161 +-5959 +-8640 +-4305 +-190 +2507 +5337 +-794 +-3656 +8741 +278 +-4209 +-8379 +-3766 +-9292 +6358 +3721 +-3717 +1100 +-3995 +-3214 +-8072 +7923 +4351 +-3007 +7622 +-4191 +6398 +1903 +-3955 +2895 +-6774 +-3705 +5768 +9684 +-2551 +1917 +-3512 +8009 +2790 +-1802 +-6948 +9419 +-4968 +-129 +-8120 +5351 +-6710 +8160 +-1284 +-3847 +-2545 +-282 +-4518 +3068 +8303 +-6604 +-5636 +-1026 +-2926 +-2422 +-6811 +-5307 +-3425 +3322 +105 +-6104 +-2348 +-3673 +-3114 +277 +5606 +-3452 +-2521 +-4924 +-5459 +-5790 +-7721 +3364 +-8540 +-662 +-686 +-2592 +5461 +7659 +-6671 +-5308 +9340 +-5519 +1845 +-6184 +-5546 +-3642 +7956 +-886 +-2139 +8897 +5765 +-5011 +-2231 +6795 +-7622 +8993 +3525 +-2114 +-7232 +5768 +-7129 +6446 +8066 +-2066 +-8686 +1862 +-7180 +6999 +-1110 +-2365 +-7116 +5711 +1784 +569 +7288 +4603 +4565 +-7535 +17 +6282 +7950 +821 +1506 +6199 +-4320 +8502 +-5969 +6870 +-2173 +-4401 +-3708 +-3134 +-7729 +-3637 +-2412 +-2356 +5683 +5115 +8739 +-1068 +5360 +-5612 +1644 +-1945 +-3148 +-9284 +8926 +-3893 +-2060 +541 +6098 +3066 +5464 +6743 +2325 +-8039 +-2011 +5569 +-8408 +-5824 +-2825 +8952 +-3818 +-1103 +7378 +-8884 +-1333 +-3825 +582 +-1832 +508 +6624 +3989 +3989 +9662 +-8309 +-9011 +1149 +-9628 +1652 +-9372 +7373 +5494 +-662 +4538 +-6250 +2661 +6881 +5611 +2408 +-886 +-4419 +-4502 +-4783 +-3768 +8307 +-9590 +2434 +5932 +-8488 +-876 +-1133 +17 +3454 +3551 +-5928 +-6842 +9933 +-6682 +1815 +-5232 +-144 +-4797 +1833 +-5381 +8456 +-3322 +-9176 +-4228 +-4787 +6187 +-9814 +449 +3665 +7511 +2753 +2719 +3642 +9997 +-8901 +-7033 +8324 +-2554 +-4019 +-663 +2414 +-8397 +7439 +-8876 +8801 +-141 +8491 +-7245 +-3136 +-8217 +5596 +-586 +2380 +572 +-2123 +9867 +-8741 +2904 +1222 +-5736 +-8494 +2621 +5294 +9878 +7420 +-1283 +-7594 +9606 +-5466 +-2886 +-8220 +9831 +8310 +1863 +1598 +-2219 +-278 +9067 +-8368 +-284 +-366 +624 +1416 +-955 +9952 +8742 +7505 +-8960 +1873 +2614 +-6671 +-2408 +-8873 +7373 +2897 +8910 +3962 +9103 +-5267 +-6469 +-4256 +-3900 +1122 +9127 +8375 +8608 +1692 +-9940 +-4056 +3877 +-66 +5134 +7063 +3404 +-9278 +1332 +-2921 +-7857 +6093 +2433 +-5761 +-3226 +6619 +-2889 +-4066 +4056 +-6962 +-7057 +-2275 +-877 +5268 +-9788 +-1086 +2738 +4752 +8397 +-4868 +7019 +-1442 +4484 +-2953 +-3642 +-8147 +-14 +-9139 +-826 +8452 +1012 +2145 +9401 +9400 +-2853 +6282 +2165 +-3859 +7802 +2409 +9865 +-3615 +5684 +-6890 +6174 +-5849 +5913 +-8300 +1935 +-7060 +6547 +9044 +350 +-4415 +-4669 +6693 +-6189 +-8998 +6471 +6093 +6973 +4416 +2146 +-1177 +4675 +3208 +-2946 +8129 +-1235 +2132 +7719 +-7791 +8762 +4428 +-433 +-9926 +-9885 +4328 +428 +-772 +-4714 +4387 +4453 +4780 +-2173 +4436 +-5610 +-1520 +7617 +-7264 +-9493 +6228 +-937 +1916 +6078 +3341 +2595 +8197 +-4254 +5148 +-2920 +-1402 +636 +4260 +-134 +-5588 +1398 +6294 +-4425 +3745 +-4013 +1932 +7233 +-1170 +9476 +-8112 +-6185 +660 +-3547 +9893 +5635 +-4623 +4421 +-6547 +4419 +-8381 +155 +3738 +2468 +2599 +4693 +-9786 +-3756 +-669 +-933 +-4984 +8161 +212 +-3393 +-3248 +-399 +8169 +80 +3910 +5371 +-930 +-9981 +2790 +-8362 +-8615 +8664 +-6326 +-2515 +3135 +4360 +5186 +-461 +5106 +-8496 +-5818 +-7095 +2517 +-646 +2515 +9154 +8828 +2156 +2399 +2678 +312 +-4302 +1692 +2777 +3405 +-6569 +1055 +222 +5044 +-1206 +8394 +-9177 +3822 +8803 +-850 +-1998 +9501 +7205 +5980 +-8105 +-8536 +-9060 +5994 +-577 +9551 +-4596 +7938 +1995 +-5705 +590 +-6262 +-9609 +-9968 +4811 +5845 +6515 +4605 +-9471 +1293 +-6747 +-9403 +5544 +-961 +4025 +-7901 +-3917 +-5720 +9292 +-7834 +8672 +1626 +3283 +7906 +3709 +7051 +3226 +2246 +-8787 +9865 +3029 +-2584 +-1996 +-9675 +2215 +-196 +1072 +-8181 +-1937 +2937 +-5326 +1274 +-1591 +-1293 +3229 +-4998 +9226 +-9014 +2152 +-6936 +1532 +-3364 +-2066 +-7228 +7587 +1565 +2018 +4790 +2345 +-3819 +-3607 +4294 +8693 +-1018 +3480 +-5660 +2812 +9055 +-4077 +-1261 +1311 +6207 +1406 +-9804 +-6389 +-7510 +-4743 +6331 +-5140 +-2383 +-5306 +2773 +8071 +1851 +5671 +1884 +-427 +2773 +-9027 +-6595 +1594 +24 +1868 +1415 +77 +-7240 +-9438 +8091 +788 +-6706 +3391 +-5969 +-2545 +7234 +2408 +-4561 +5239 +955 +-9138 +-230 +5639 +-138 +-601 +-7559 +1562 +-3149 +7149 +-8801 +8865 +-51 +7314 +6282 +145 +3837 +7840 +1380 +-3136 +-4061 +6448 +5914 +5182 +2877 +9553 +63 +-3149 +-5769 +-3994 +-6495 +8352 +7981 +-1097 +6146 +6351 +5822 +9871 +-5296 +6091 +-2139 +6371 +5131 +418 +7948 +1529 +6582 +8337 +-3940 +-1586 +-4067 +-2378 +1117 +312 +-4717 +6351 +-7228 +1634 +-8446 +-1577 +-5861 +4935 +8202 +4796 +-6313 +-2884 +-8281 +1984 +5093 +-9702 +6786 +-5757 +-2153 +-7126 +3588 +4581 +8888 +-1907 +6610 +-4813 +5404 +8477 +-5662 +4262 +-6511 +-5225 +4125 +5476 +2197 +-3438 +-6873 +-1802 +-825 +-6458 +-8435 +9669 +4665 +7576 +-3368 +-3543 +-5069 +7694 +1378 +-4455 +-8738 +-7115 +-7661 +7938 +-7687 +6727 +-8003 +5544 +-749 +-671 +590 +5981 +8868 +3836 +-5416 +3332 +-9986 +-7248 +-3938 +-3642 +-2154 +2019 +6944 +4665 +-1504 +9981 +-8664 +-2343 +6584 +1428 +2680 +-9870 +6789 +-5792 +-8096 +-4086 +-7299 +-2973 +8793 +-7746 +-4305 +-9675 +-798 +-6856 +-5677 +4536 +-6158 +2660 +-1247 +9540 +8456 +3794 +-3981 +-9019 +-5861 +-8722 +9855 +-9220 +-4633 +-2378 +-898 +5666 +5360 +6670 +9935 +-1382 +-5727 +-7082 +-5033 +9500 +-1483 +-6201 +-7130 +-3935 +5888 +8197 +8444 +-7109 +9964 +7617 +-9790 +-3336 +-3315 +-2926 +-914 +9001 +62 +-8435 +-9085 +-4354 +5544 +-8112 +8490 +-7528 +4350 +-3752 +-2633 +2470 +-8684 +2054 +-430 +-1644 +-8302 +1657 +-5855 +-4676 +-1145 +-828 +9678 +5257 +-8853 +1150 +-7273 +-7899 +2534 +2126 +4970 +8313 +4040 +-1280 +2515 +8947 +-8306 +7947 +2515 +-4216 +2663 +-5336 +-1151 +3715 +5458 +239 +-5743 +-2120 +3889 +7001 +5605 +7939 +-572 +256 +-5947 +4355 +4471 +-8491 +-8918 +157 +4313 +2447 +9346 +-3123 +7009 +-753 +-8512 +-4783 +1692 +-9792 +-9096 +-5081 +-3048 +-6505 +-5704 +6508 +3727 +2726 +5315 +-7148 +5427 +-7423 +-1937 +-6792 +7469 +5550 +2468 +256 +3867 +-6196 +955 +4695 +4544 +-269 +172 +565 +-7136 +7043 +2865 +-7629 +5915 +-6804 +1911 +-221 +8213 +8473 +-6670 +7246 +5774 +8689 +6 +1916 +-4308 +-6803 +5321 +3790 +2836 +5464 +-6366 +9923 +-8230 +5079 +8155 +6584 +4570 +-9443 +-9674 +-4998 +7051 +-8351 +9503 +-7595 +-5929 +8710 +-6117 +-9438 +7359 +-2889 +9290 +-4113 +3153 +4135 +4430 +3374 +-4568 +6385 +-8151 +-3330 +-237 +3667 +-8782 +4271 +8964 +2943 +1747 +4352 +6848 +-2769 +2326 +2807 +287 +-4478 +-5537 +-4465 +-4363 +-5100 +4980 +-8151 +5264 +-5459 +994 +-6085 +-9459 +9419 +8825 +-1629 +2000 +9466 +-8684 +-6252 +3289 +-8163 +-1764 +-5183 +7622 +4570 +2677 +6142 +3261 +9454 +3494 +-1693 +-9903 +-279 +-9419 +-2515 +-1914 +3178 +-2430 +-7170 +-7702 +5118 +-7368 +-3943 +2997 +-8678 +-8272 +-7274 +2267 +-9083 +8926 +-422 +12 +244 +5806 +-6747 +477 +5688 +1083 +-1062 +7288 +-8086 +416 +7776 +2766 +1481 +5909 +9423 +6531 +7403 +-7559 +-3795 +-8248 +-631 +7609 +8448 +-9755 +-9671 +242 +-1365 +4510 +9512 +-5076 +5097 +-5734 +-3309 +1496 +5085 +2734 +3032 +-4714 +-211 +-3790 +6795 +-2166 +6111 +8175 +665 +-314 +-6795 +6204 +9138 +9062 +4036 +9245 +1991 +603 +-6156 +8682 +-8195 +2215 +2829 +-5589 +4042 +-9983 +9136 +3667 +-1283 +-7778 +2660 +-5883 +-869 +-1158 +1813 +-4350 +-8919 +5868 +4238 +8334 +795 +-4639 +9819 +8322 +-2551 +-7962 +902 +8565 +242 +-4647 +-6889 +-4468 +-7512 +8313 +2307 +1021 +9060 +-4258 +-9597 +6005 +-7499 +4950 +-8181 +-3250 +-7624 +9010 +-2365 +8196 +5171 +-9967 +-779 +-2657 +-778 +-1878 +3671 +6 +-3364 +-3093 +3222 +-8697 +-3746 +-6588 +3051 +8248 +-4399 +5637 +-5172 +-8112 +-2583 +-1644 +-2598 +-2265 +-5532 +-49 +-713 +-5989 +-6807 +8737 +7688 +-5487 +-1914 +7895 +-192 +5313 +6189 +-9168 +-1945 +-7587 +1676 +3480 +-6768 +1451 +-7186 +1707 +-23 +1847 +4998 +-2601 +6557 +4752 +-9047 +-9866 +157 +-6710 +4294 +-1627 +-1241 +7023 +-721 +-3364 +-5311 +-6039 +-2445 +1416 +9745 +2557 +-2166 +5364 +-254 +-2599 +9532 +-5734 +-8759 +-8915 +-6393 +-8540 +8886 +4732 +1309 +9987 +1529 +3637 +-4198 +-7752 +-8927 +-4308 +-7522 +5789 +3114 +-9633 +-9945 +9920 +-6643 +-1870 +2811 +-997 +-552 +-6319 +8860 +-2146 +8061 +-2422 +-6366 +820 +-8644 +2608 +-2307 +-8843 +4538 +-1271 +-3309 +9401 +-382 +4211 +-2621 +-1130 +2313 +-1085 +2635 +9333 +8492 +-3717 +-9210 +-2769 +-2971 +2126 +2654 +5432 +-6357 +-3279 +2194 +4377 +5752 +-144 +-5033 +-1974 +7777 +2650 +1629 +-3886 +8372 +-8591 +-2769 +1205 +-2973 +-3794 +-7569 +3291 +4696 +3417 +-8009 +-6293 +-4296 +4987 +7066 +-8622 +6740 +-6569 +-2880 +-1353 +5036 +-2545 +1925 +-5807 +7012 +1837 +-4949 +-2020 +1039 +-1627 +8013 +-3533 +-1155 +-5697 +-6185 +3910 +6819 +-176 +7183 +920 +5461 +5688 +-3607 +-3452 +5532 +-5524 +6478 +-4669 +8793 +-5619 +9298 +1728 +24 +-1808 +6219 +5311 +-195 +-5206 +-7538 +2862 +-3732 +-9543 +-7 +-5750 +-1951 +-2926 +5932 +-3573 +5675 +-8558 +3982 +-6680 +9677 +-4878 +-5421 +3683 +7246 +4456 +2686 +-349 +-7694 +-8187 +7215 +6527 +-4326 +-9557 +-4329 +4935 +-7590 +9203 +-5034 +2865 +7454 +4256 +-8988 +-4195 +-4589 +-8550 +-15 +1754 +8186 +8887 +7106 +8169 +3044 +1316 +4732 +3225 +6172 +-4710 +2233 +-2791 +9948 +-5108 +9420 +-1280 +-8021 +8762 +-6167 +5625 +7632 +-9434 +1955 +-2112 +7043 +-8905 +-3694 +1338 +2503 +188 +-8849 +-2191 +-6411 +6387 +5580 +7442 +-1720 +1434 +-5573 +-7310 +7777 +-1460 +2675 +-1227 +-6908 +4811 +942 +6513 +-6555 +-7033 +582 +7520 +4904 +-7718 +-8697 +172 +8438 +-6384 +-4013 +5159 +-1063 +-7991 +8084 +993 +7521 +3816 +7586 +-7526 +-9543 +-15 +5768 +-6085 +-8785 +6903 +-9903 +1253 +-6792 +3837 +-1460 +-9234 +8043 +5697 +9552 +-7288 +2279 +7251 +4229 +-3443 +-3512 +4538 +5139 +-53 +-2791 +1555 +5857 +172 +994 +-3893 +-3646 +-5001 +9943 +-6017 +-8199 +5311 +6372 +1833 +4406 +7967 +783 +6321 +2076 +-1929 +-8074 +866 +603 +-4949 +4227 +3740 +806 +-2337 +1679 +3122 +5315 +9405 +8793 +3405 +-5784 +-6366 +3455 +6714 +-535 +-3766 +-4271 +-7151 +-2820 +7280 +9635 +6282 +-8556 +1833 +3127 +-1223 +-5561 +-3898 +-1811 +-6389 +-5358 +7825 +604 +-6735 +2560 +8816 +634 +8213 +3617 +-5643 +-9769 +8097 +4387 +9485 +6546 +-9261 +-8476 +-7580 +-434 +6729 +-3531 +-3948 +7460 +5404 +244 +-410 +-9505 +-2682 +7756 +4072 +2043 +6004 +-9200 +2618 +2283 +-3201 +-1640 +-5287 +3294 +-6816 +3721 +-8011 +-8384 +82 +-8678 +221 +6150 +6875 +2207 +6040 +3738 +1893 +4350 +-3226 +5843 +828 +-7243 +8793 +-8394 +6678 +-5708 +-5473 +955 +8115 +1016 +2803 +208 +6507 +9042 +1899 +-366 +-5530 +4120 +7446 +-7801 +-2068 +1998 +6967 +3279 +-2360 +8776 +5711 +8131 +-8827 +-1995 +-3497 +4082 +8932 +8360 +-2091 +-1673 +-4518 +-7528 +6395 +2430 +-7430 +-3098 +3250 +1815 +-6164 +5660 +2450 +-7011 +-2412 +2596 +-6104 +9476 +-2190 +744 +-6755 +536 +-3279 +-9246 +1714 +5707 +-2786 +-9357 +-6586 +5833 +-5821 +9086 +5956 +-7745 +7984 +7494 +-1723 +-700 +-2930 +62 +9468 +8796 +2165 +4440 +-6479 +419 +-6199 +-24 +2109 +-2022 +-7425 +5109 +-1132 +-3200 +3018 +3499 +-1367 +4022 +-9438 +-6763 +-7947 +8742 +2499 +1368 +3632 +-1489 +4478 +-812 +9290 +9116 +-5270 +-6086 +-7259 +7153 +-2931 +416 +-5705 +6856 +7473 +-8104 +2637 +8155 +256 +-3891 +-2301 +7474 +6627 +9759 +1071 +-5933 +-3406 +398 +-7314 +1802 +-9661 +-2028 +-1262 +1622 +7613 +-1640 +3471 +9133 +6729 +2729 +-3321 +8155 +-4606 +979 +-3072 +1241 +-1284 +-9661 +9920 +-5713 +-2548 +4954 +569 +-889 +-219 +6404 +-6492 +6317 +-2240 +-3911 +7738 +-2278 +1262 +1259 +-6461 +9524 +8764 +9176 +-2301 +-3581 +5268 +-8362 +-9591 +9510 +4598 +-4257 +9921 +7311 +-7037 +-2719 +-6390 +9601 +-694 +-184 +-6231 +1406 +-7542 +-7744 +-8525 +8251 +-5433 +-7050 +5402 +-3076 +9002 +-4213 +-177 +1166 +403 +7260 +-2052 +-7982 +1604 +7995 +689 +2185 +-7307 +1205 +-4296 +3254 +-1894 +-4195 +182 +-8221 +-502 +-3583 +8456 +9865 +-8769 +5632 +2740 +2686 +-1740 +3641 +-8584 +-3657 +-3732 +9063 +-2200 +-9330 +1055 +-8384 +740 +700 +-1824 +-5517 +-2301 +9604 +4994 +4544 +8364 +-4802 +-6856 +-4880 +-8094 +4429 +-5183 +-874 +6767 +-9189 +-3999 +5118 +6486 +2830 +-1724 +572 +-5306 +8397 +5213 +-400 +6319 +4294 +2380 +-9105 +-8194 +3665 +-1334 +4464 +7720 +4146 +-3751 +-7272 +1657 +3114 +-2526 +-6555 +2838 +112 +6526 +-1499 +4840 +-812 +7283 +4120 +8236 +3400 +4544 +6838 +9269 +-3002 +9597 +177 +9276 +-1285 +111 +1598 +-4784 +-7674 +-4005 +-516 +-8346 +2557 +-6904 +3665 +-8710 +685 +1995 +-61 +-4960 +8384 +-4213 +1848 +-8337 +-7059 +5797 +-3682 +9485 +9445 +256 +-8351 +324 +3576 +-5743 +902 +-745 +5255 +-6816 +-5489 +-4822 +-6504 +-1659 +-7834 +1049 +4652 +6963 +-3078 +2934 +-543 +3543 +654 +7505 +-9617 +3426 +-4965 +7644 +2621 +-4951 +-843 +1212 +-4282 +7233 +-8388 +9726 +-1956 +2467 +-7523 +-8446 +436 +-9863 +-7231 +-3058 +-5648 +2283 +-8350 +-53 +1871 +649 +-4583 +2138 +-1499 +-2967 +-5911 +-3268 +-4743 +-2114 +7785 +-4098 +740 +9505 +-5663 +-6334 +-4674 +-1330 +6436 +3241 +-5616 +-3712 +-1790 +1902 +-9102 +-1322 +-8015 +-7307 +2541 +1237 +-2011 +6835 +-5028 +6168 +7300 +7592 +-8605 +3153 +2654 +-971 +8719 +1568 +-6672 +-5668 +-2270 +8352 +5789 +-8497 +2757 +5088 +551 +4722 +5907 +4422 +4818 +80 +-3477 +-5415 +-3787 +-4722 +9845 +5371 +-7444 +-8598 +-4258 +-2791 +3127 +-8350 +3092 +1336 +-2700 +-6775 +-115 +-3399 +9670 +8397 +957 +-7529 +5414 +-6817 +281 +-552 +-7960 +8186 +8129 +-6481 +-4618 +1029 +4627 +-9751 +-7136 +6464 +-8519 +9106 +-4410 +-5035 +-6061 +-6884 +2741 +4914 +4886 +7663 +5565 +-6636 +3038 +2500 +9999 +-306 +-4578 +6125 +-9777 +7906 +3534 +1564 +-4044 +2515 +-3964 +-7709 +-6774 +-9716 +2618 +9952 +-5459 +-2466 +-2464 +7694 +6296 +1916 +-353 +4146 +-8156 +6526 +-646 +-48 +-4068 +4754 +-9791 +1119 +9687 +-2526 +7029 +-778 +2753 +-4895 +2647 +-4910 +1783 +2907 +-8391 +2515 +6558 +-4963 +-1103 +-3720 +-9078 +582 +-5957 +-7633 +-9023 +8397 +-4076 +-6208 +6471 +3466 +-9551 +-3497 +-8920 +7701 +9098 +-2011 +-6183 +1102 +-5994 +57 +-392 +2858 +3494 +-6156 +3698 +4356 +1293 +0 +8006 +6008 +-2906 +-3123 +3350 +9665 +-8572 +8912 +2862 +-7564 +-6199 +-9329 +-6303 +-7722 +6477 +-9697 +-9451 +-1574 +-8272 +-3113 +9109 +-1775 +-7978 +-3563 +3064 +-8582 +-8041 +7174 +3507 +-7115 +3061 +-2896 +7057 +-15 +786 +5586 +8186 +-7369 +-1213 +4296 +-7369 +-6198 +-559 +-4410 +3750 +2309 +-9287 +-2549 +-8603 +-5933 +-2183 +6641 +-8553 +-9002 +2654 +466 +-1868 +7494 +-2515 +454 +9767 +-1397 +9757 +9405 +4747 +6317 +3586 +8665 +-2612 +5521 +-1422 +835 +6903 +-6252 +4963 +8213 +2918 +729 +-3202 +3241 +2968 +-115 +-3712 +2744 +-3082 +2548 +7829 +1420 +-2112 +4704 +-6450 +-3319 +-1730 +-9037 +-355 +4046 +-2035 +-8470 +-4391 +-5487 +-641 +3469 +-6275 +-7137 +-4572 +5610 +5106 +8851 +1029 +-8162 +2109 +-6689 +-8337 +4145 +-7633 +6408 +8374 +8013 +-4235 +-8017 +4944 +-9287 +-1075 +-671 +1499 +3930 +2194 +8690 +-6303 +-4256 +-8919 +8846 +-7264 +-9187 +2679 +7420 +3603 +2885 +4796 +-5855 +5808 +-2535 +-311 +4504 +5905 +4628 +9691 +9053 +-5699 +5690 +3420 +4125 +-2515 +6295 +-118 +850 +-4646 +-5269 +-3750 +-6777 +1044 +-5802 +5364 +4043 +-1780 +6207 +-6656 +9455 +4106 +7319 +7577 +8788 +-9667 +8262 +-8722 +8373 +-8585 diff --git a/day20.rkt b/day20.rkt new file mode 100644 index 0000000..5284034 --- /dev/null +++ b/day20.rkt @@ -0,0 +1,94 @@ +#lang racket + +(require data/queue) + +(define data (for/list ([(n i) (in-indexed (file->list "day20-sterni"))]) + (vector n i))) + +(define (move zip n) + (cond [(= n 0) zip] + [(< n 0) (if (null? (car zip)) + (move (cons (reverse (cdr zip)) '()) n) + (move (cons (cdr (car zip)) + (cons (car (car zip)) (cdr zip))) + (+ n 1)))] + [(> n 0) (if (null? (cdr zip)) + (move (cons '() (reverse (car zip))) n) + (move (cons (cons (car (cdr zip)) (car zip)) + (cdr (cdr zip))) + (- n 1)))])) + +(define (peek zip) + (if (null? (cdr zip)) + (peek (move (move zip 1) -1)) + (car (cdr zip)))) + +(define (zip->list zip) + (append (reverse (car zip)) (cdr zip))) + +(define (find ring elt) + (let ([ring (move (move ring 1) -1)]) + (if (equal? (vector-ref (peek ring) 1) elt) + ring + (find (move ring 1) elt)))) + +(define (find-val ring elt) + (let ([ring (move (move ring 1) -1)]) + (if (equal? (vector-ref (peek ring) 0) elt) + ring + (find-val (move ring 1) elt)))) + +; (move (cons (list 1 2 3) (list 4 5 6)) 2) +; (move (move (cons (list 1 2 3) (list 4 5 6)) 100) -100) + +(define ring (cons '() data)) + +(define (shift ring n) + (let* ([n (remainder n (- (length data) 1))] + [ring (move (move ring 1) -1)] + [e (peek ring)] + [ring (cons (car ring) (cdr (cdr ring)))] ; drop e + [ring (move ring n)] + [ring (cons (car ring) (cons e (cdr ring)))] ; insert e + [ring (move ring (- n 1))] + ) + ring)) + +; (shift (cons (list #(1 1) #(2 2) #(3 3)) (list #(4 4) #(5 5) #(6 6))) 2) + +(for ([(_ i) (in-indexed data)]) + (set! ring (find ring i)) + (set! ring (shift ring (vector-ref (peek ring) 0)))) + +(let* ([_ (set! ring (find-val ring 0))] + [_ (set! ring (move ring 1000))] + [a (vector-ref (peek ring) 0)] + [_ (set! ring (move ring 1000))] + [b (vector-ref (peek ring) 0)] + [_ (set! ring (move ring 1000))] + [c (vector-ref (peek ring) 0)]) + (+ a b c)) +;; 16533 + + +(define data2 (for/list ([(n i) (in-indexed (file->list "day20"))]) + (vector (* n 811589153) i))) + +(define ring2 (cons '() data2)) + +(for ([_ (in-inclusive-range 1 10)]) + (for ([(_ i) (in-indexed data2)]) + (set! ring2 (find ring2 i)) + (set! ring2 (shift ring2 (vector-ref (peek ring2) 0))))) + +(zip->list ring2) + +(let* ([_ (set! ring2 (find-val ring2 0))] + [_ (set! ring2 (move ring2 1000))] + [a (vector-ref (peek ring2) 0)] + [_ (set! ring2 (move ring2 1000))] + [b (vector-ref (peek ring2) 0)] + [_ (set! ring2 (move ring2 1000))] + [c (vector-ref (peek ring2) 0)]) + (+ a b c)) +;; 4789999181006 |