From 009fa446c284e12999b8d9f1ce6e336c2634526e Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Mon, 19 Dec 2022 21:34:48 -0800 Subject: [PATCH] day 20 python solution --- day20/input | 5000 ++++++++++++++++++++++++++++++++++++++++++++++++++ day20/sol.py | 46 + 2 files changed, 5046 insertions(+) create mode 100644 day20/input create mode 100644 day20/sol.py diff --git a/day20/input b/day20/input new file mode 100644 index 0000000..a6d6c8c --- /dev/null +++ b/day20/input @@ -0,0 +1,5000 @@ +1960 +1297 +-3736 +-9289 +1166 +-792 +-6461 +-726 +-6729 +-155 +-509 +-7882 +9205 +-7943 +-9357 +1986 +-595 +1115 +-4734 +-2310 +4258 +3777 +5193 +2125 +-5228 +-6973 +-465 +-8814 +1939 +-6499 +-116 +503 +-7739 +-249 +1952 +-6609 +2344 +-8571 +3176 +-9976 +-4806 +-7459 +-3981 +8079 +8066 +-52 +6446 +-1822 +4067 +4593 +-605 +-8918 +4930 +1049 +9559 +1587 +4075 +9026 +3811 +6178 +688 +-9475 +-9711 +-8708 +-8526 +-26 +3024 +4703 +-2338 +7752 +6335 +-4977 +8388 +-6774 +-7445 +-9112 +7688 +-1274 +8355 +-2784 +7717 +330 +-3353 +-6005 +1772 +2195 +-4124 +-5470 +-9528 +-7903 +-9058 +1134 +-4574 +4351 +977 +-9112 +4403 +-7228 +2351 +608 +-9278 +-4065 +-2365 +1602 +8829 +6696 +-5527 +-7742 +1760 +7723 +-9256 +9295 +-4931 +-1255 +-91 +-8287 +-8533 +-661 +-3687 +2586 +-3122 +9044 +9887 +-8531 +-331 +-7589 +1874 +8794 +5252 +-4381 +1262 +4403 +-4478 +-9529 +-2251 +1649 +2344 +-7358 +9307 +4268 +-9753 +5199 +5508 +3824 +6991 +1055 +-3663 +4757 +4038 +2151 +4869 +-7956 +-7475 +-4436 +9511 +-3343 +3880 +-5665 +-4240 +7502 +-7195 +-343 +-3124 +-7931 +-4529 +-6500 +-8271 +-9344 +-3606 +8421 +4507 +-7821 +2234 +-2699 +3502 +-6985 +6599 +-9063 +-1096 +-7942 +1069 +-7828 +9793 +8206 +924 +-3174 +9227 +7163 +-1440 +7929 +5 +9082 +5775 +-7250 +-3323 +2583 +-1737 +-696 +4492 +5201 +8953 +6262 +9857 +-3374 +5296 +-839 +6681 +2536 +-7943 +8982 +1262 +7053 +-1951 +-6579 +4831 +-9550 +-2338 +1103 +-6611 +6541 +-7155 +8326 +2775 +-4155 +-8250 +6642 +8279 +-9940 +820 +3261 +-3040 +6540 +-6659 +-9182 +2017 +9289 +2768 +3255 +3836 +1760 +-4463 +5118 +-5572 +-3711 +1265 +4594 +5446 +8175 +-6721 +148 +-1096 +-4138 +-3937 +-8891 +-3253 +5159 +-9053 +-3663 +8388 +-2938 +9044 +1634 +-7876 +7366 +5252 +-900 +-9529 +-3131 +-2595 +-8636 +-7358 +2173 +4922 +-5553 +-3805 +-2448 +-2765 +2499 +6803 +-836 +9680 +5585 +9346 +1407 +-1040 +-9948 +4238 +-925 +1194 +7800 +-8531 +5844 +6000 +-1863 +1398 +-5815 +4473 +8013 +7548 +6056 +2564 +1606 +682 +9550 +-2220 +1149 +3785 +290 +-1954 +2039 +-9431 +6758 +8214 +534 +-1534 +-9962 +8262 +5750 +-2335 +-3025 +-3971 +6335 +-998 +-713 +9031 +-9596 +-56 +4265 +-4116 +9709 +8614 +-1078 +1077 +6779 +-1312 +-2921 +5363 +9274 +9031 +6922 +-6540 +-3753 +2773 +-2630 +8265 +2906 +-7708 +-1429 +-9650 +8777 +5184 +1134 +5300 +6880 +5939 +-1557 +-7265 +8111 +-9803 +9512 +337 +9570 +7577 +4181 +8388 +7086 +6103 +6757 +1297 +612 +9306 +3116 +-1524 +-9490 +-267 +-7001 +-9788 +-2757 +-3491 +-1445 +4664 +-9714 +-8438 +4697 +-6357 +-7963 +3619 +-7455 +-4172 +-5591 +2043 +-2070 +-1266 +4674 +-7390 +7457 +-8797 +-3386 +-7763 +-3000 +-792 +-5551 +-4933 +3638 +1265 +5637 +9395 +-4143 +1043 +-3694 +5107 +8606 +-588 +2146 +2507 +-9848 +-1424 +7171 +2606 +7211 +6937 +-4169 +-583 +9263 +-5810 +774 +-8428 +6021 +-8438 +4333 +2000 +9240 +5290 +8794 +3303 +-4268 +-5877 +6502 +3203 +3504 +-8825 +-2642 +2874 +9447 +7014 +8595 +-3059 +8219 +-941 +9490 +5239 +-8369 +-1438 +6718 +9536 +2394 +-6674 +7686 +206 +3682 +7193 +-3916 +-521 +-8263 +8094 +2414 +6000 +4474 +-8953 +5177 +-787 +-1274 +5765 +-50 +7567 +-7295 +-514 +-9919 +6652 +6162 +8355 +5593 +-4768 +-3670 +5525 +-2080 +-9811 +-873 +-7210 +-8821 +-2176 +-8211 +-2844 +-9530 +-2201 +-2736 +9481 +-1045 +5967 +-6329 +-3789 +4684 +-4667 +-1733 +8835 +-4121 +8101 +8571 +-2733 +4787 +-1017 +5434 +-1462 +8877 +8672 +-171 +5796 +-9610 +-7697 +2714 +5131 +5646 +-7144 +-5656 +-8367 +-4270 +7871 +-7533 +-5208 +2734 +-6830 +5332 +-9225 +1455 +-7735 +6921 +-828 +3836 +8621 +843 +5768 +8181 +-1261 +-4915 +6669 +1262 +-188 +-1976 +5597 +-7567 +-7724 +4037 +2952 +-9761 +5199 +-7582 +-7090 +4411 +3742 +-6199 +9955 +4893 +-127 +-8399 +1079 +-8504 +-7210 +-4165 +7454 +1786 +-3185 +2171 +-2241 +6840 +-6748 +7861 +9864 +-2648 +9023 +-6632 +-865 +-8528 +-8454 +5534 +926 +-1023 +9801 +-7831 +-8628 +-7882 +-3343 +-1450 +4002 +-1451 +5184 +8614 +-3289 +-3523 +1990 +-8224 +-5642 +4465 +5687 +7471 +5200 +7027 +-8090 +4389 +9838 +-9652 +6310 +1949 +7843 +6273 +2625 +-9596 +-9144 +-8528 +9468 +-898 +2255 +5026 +5398 +-9706 +3762 +6368 +9501 +-6777 +4807 +-9210 +-3417 +5181 +3336 +8830 +6562 +5626 +-5850 +4269 +5672 +8036 +-8776 +-2685 +3597 +-7951 +1604 +-8525 +8539 +5999 +1774 +-421 +8397 +-1447 +-4574 +5951 +-4607 +5159 +6847 +-6437 +-8533 +2644 +2954 +542 +-6335 +3083 +3642 +-9468 +-1834 +-4571 +-5323 +8586 +-309 +-1892 +4507 +-5761 +-8838 +-3949 +-8996 +-3172 +-8324 +6495 +2904 +468 +5851 +-3423 +8874 +-5527 +5121 +-5036 +254 +-9919 +-5817 +3449 +-6957 +270 +233 +-9880 +4420 +-4012 +-4533 +3509 +-3757 +2344 +9856 +-713 +-6341 +-6610 +4869 +8586 +5844 +3624 +-9195 +-3365 +2739 +-9596 +9198 +2271 +1822 +-4256 +2603 +-9117 +5951 +8050 +8827 +-3448 +9516 +-7612 +792 +-5584 +5402 +1822 +8149 +3322 +3849 +-1219 +-3790 +5550 +-7484 +1074 +9049 +-9409 +-4002 +1673 +-9464 +259 +6881 +-1799 +1291 +-2483 +7213 +-9519 +8906 +1400 +615 +4624 +-9819 +-6219 +-9991 +-5478 +7841 +2559 +-1534 +9044 +-8324 +-6056 +9569 +-7246 +2269 +-3916 +9198 +4172 +7423 +-9851 +9295 +-7116 +-8697 +8991 +2254 +2274 +-2505 +-5571 +4590 +-5770 +3072 +-4124 +-8274 +-1340 +9972 +9950 +8663 +-2372 +-2972 +-667 +2576 +6856 +201 +-6158 +-2031 +6607 +-2207 +-6210 +-2596 +-5626 +5575 +-2530 +-3419 +-9925 +9360 +-799 +5217 +5233 +764 +-4910 +9336 +-5816 +2586 +-4972 +-963 +-1079 +-9651 +-6137 +-7487 +-7494 +-9514 +-8491 +-4851 +2696 +-6047 +670 +7113 +9441 +7839 +-3988 +-4453 +-7098 +-364 +-3151 +-1510 +-4381 +-5693 +2347 +-6910 +7968 +-6814 +-6658 +1416 +-1717 +2996 +6253 +-5675 +-2175 +3589 +-1426 +-2948 +5259 +-4603 +-9265 +-9087 +-6594 +5104 +-1114 +-6930 +2597 +-9900 +-5495 +-4441 +-7022 +-819 +-8831 +4454 +1483 +2171 +-5268 +-7258 +-6814 +7213 +-2870 +8553 +8633 +-1052 +-5110 +-4586 +7218 +-1455 +9707 +-106 +8210 +7241 +6989 +1629 +-1127 +4431 +-8039 +1434 +4767 +-1044 +9444 +9198 +2568 +-4240 +909 +-9122 +2144 +-7803 +-7378 +7977 +9481 +-7526 +-8938 +8942 +4258 +-4013 +7514 +9137 +2371 +-6748 +-6842 +-3991 +5890 +-4925 +-5374 +-5343 +5707 +-4953 +-7698 +-7767 +-2941 +8254 +1874 +-6715 +-5463 +-8161 +-9497 +-3141 +-6383 +-2647 +-4684 +8799 +5956 +-1744 +-7330 +4094 +-1052 +-3432 +-1951 +7314 +-4541 +4764 +4541 +9951 +-7291 +900 +2324 +7975 +3750 +8018 +-1435 +-6517 +-1495 +-1410 +8732 +1723 +-3420 +7053 +9929 +-4287 +-2178 +1886 +-5410 +-6311 +-2127 +-6642 +4140 +-3323 +2890 +8531 +3172 +-2959 +7353 +-9902 +2290 +-67 +6489 +-726 +-7963 +-6681 +-3876 +3249 +7801 +-6642 +-8165 +1822 +2556 +605 +-8504 +6178 +1680 +6146 +5472 +2986 +2384 +9532 +1186 +3913 +-6853 +-2252 +108 +-23 +5864 +1262 +7538 +-2073 +-2810 +-6504 +-6643 +2758 +3930 +8605 +-7903 +9838 +-5301 +-6043 +9449 +950 +3991 +6244 +-7190 +9504 +3855 +1331 +-3052 +-2013 +7861 +984 +774 +-9089 +9713 +1874 +-1079 +4800 +-8380 +9177 +7688 +2887 +6474 +2216 +-9087 +-7246 +-9517 +-8723 +5442 +2626 +-9200 +6969 +-2180 +806 +9670 +-4152 +-9612 +-3082 +6962 +-2597 +8777 +-2164 +4570 +1181 +8211 +1252 +-3373 +5245 +-4650 +-9606 +698 +-1952 +843 +1786 +2173 +-944 +9822 +4311 +-8707 +7793 +9368 +1869 +-3862 +1635 +8390 +8156 +-3314 +-6210 +-4199 +-9919 +3166 +1879 +5058 +1742 +-1980 +6254 +9145 +-4190 +-1786 +1447 +238 +-3979 +118 +5967 +1451 +91 +8231 +-3388 +838 +5282 +3620 +9852 +-3663 +3440 +6531 +-5174 +6289 +-4637 +-8533 +-9801 +5362 +-5222 +365 +-1027 +-2129 +-8158 +-1546 +52 +9644 +6339 +8245 +8111 +969 +-4548 +-37 +8520 +-1450 +6253 +-2923 +-4667 +-3656 +-1350 +-2749 +-8965 +9707 +-6281 +-7414 +-1957 +4981 +-6042 +9363 +-3397 +9253 +-7540 +-9932 +3804 +-5340 +-4036 +3362 +4484 +-1380 +5199 +-2899 +9882 +9425 +-513 +1634 +9445 +-6433 +7 +7277 +3587 +180 +-7124 +1337 +2442 +4829 +-742 +-8021 +-5571 +6791 +-8397 +6786 +6603 +-7498 +2049 +2931 +-9596 +-2127 +-18 +3824 +-8326 +-1145 +-7121 +-873 +-5662 +9770 +-218 +8265 +-7379 +-4767 +-8547 +-3670 +3991 +-5470 +-160 +7535 +-4417 +9239 +-8155 +3504 +-1283 +-6910 +4918 +-1920 +-5596 +-9611 +9247 +416 +7014 +-4739 +-2442 +3194 +798 +-3333 +-5685 +-9718 +3155 +-4301 +-7217 +4332 +1407 +-176 +3519 +-1625 +-1406 +-4218 +-9917 +-6718 +5486 +9961 +7686 +-7001 +-3925 +2565 +5750 +-3295 +-9040 +-6825 +-9919 +6102 +-159 +5526 +7814 +-4768 +3992 +-4177 +4217 +-3757 +8266 +6839 +9060 +-4132 +-1931 +7671 +7020 +1312 +9707 +-8485 +1990 +8230 +9857 +5789 +-8315 +-8946 +327 +-1993 +9328 +9729 +3789 +62 +-1685 +-7428 +1455 +716 +-3526 +-5783 +-1342 +9504 +-692 +6537 +330 +611 +8491 +6839 +845 +7454 +2173 +7462 +-512 +9357 +9525 +-1786 +416 +8692 +-6799 +3593 +-6136 +3735 +-7820 +7156 +-3166 +-6180 +-1677 +7442 +7835 +-67 +9857 +6905 +1986 +-1044 +-5495 +3652 +-5053 +-1064 +-3013 +5893 +-2304 +-8092 +9035 +-891 +-8512 +2597 +8337 +-6760 +9065 +9874 +3531 +-1692 +-9212 +-1380 +-222 +-2508 +6955 +8514 +4121 +-2913 +-6033 +6922 +7651 +-6822 +2670 +-9320 +5528 +7053 +1438 +683 +-6729 +4307 +-4544 +1262 +-4836 +-523 +1491 +5373 +-8719 +-9638 +-8242 +-5792 +-4284 +-7735 +7241 +4493 +6027 +-3237 +5767 +-6107 +2753 +8177 +-2958 +-2730 +-3276 +-5341 +9329 +-5554 +8423 +-9683 +-8533 +-8271 +3672 +9768 +8003 +4259 +-5489 +-1338 +-8121 +2773 +9220 +-3229 +-5166 +577 +3772 +-2214 +-1012 +-2558 +1194 +-8952 +3772 +4420 +8808 +8238 +1057 +-8708 +6863 +-8217 +6913 +9441 +9190 +3059 +-7040 +-5208 +5398 +-8019 +-8752 +2347 +4827 +8035 +5960 +-59 +-6143 +3895 +7211 +1420 +-7526 +-8070 +-4132 +9644 +-5022 +-2940 +-1892 +-5727 +9529 +3590 +3141 +5619 +-9748 +9303 +5516 +-6444 +-7593 +5677 +-6693 +2183 +4076 +924 +322 +3206 +-8391 +-3333 +6502 +29 +9612 +6178 +8978 +-6540 +5000 +5163 +7195 +-1012 +2964 +-2164 +-3884 +9063 +8990 +-1241 +-5448 +483 +-1850 +3683 +6454 +4780 +-3147 +-795 +802 +-8017 +-6031 +8812 +3190 +-8670 +9744 +9363 +-5236 +-7815 +4691 +6423 +8002 +2027 +1103 +-7314 +-9478 +-67 +-8224 +-343 +-3045 +-3782 +3753 +-7699 +2195 +-9777 +-106 +4711 +-9658 +-8288 +-2333 +5678 +-323 +-40 +1001 +8438 +9547 +8354 +-457 +-3083 +5537 +-753 +-1908 +-860 +4800 +5216 +-946 +7518 +-4193 +5129 +-5786 +2134 +3656 +-956 +-1406 +-5531 +416 +-6045 +8663 +-9507 +-8827 +-2063 +5362 +-2736 +-6504 +-5380 +-6162 +5531 +-2143 +7386 +-5773 +-8700 +-4591 +6860 +9328 +-1269 +-7951 +8091 +-1863 +7276 +-5151 +9711 +-5579 +4041 +9605 +-2766 +9965 +1961 +6842 +1309 +463 +3686 +-5110 +8046 +-9340 +-1092 +-4297 +-599 +583 +-8172 +-748 +5707 +2828 +8155 +3842 +6494 +-8354 +-215 +1664 +-1479 +6124 +-8315 +7316 +-8369 +3921 +2635 +5808 +-2123 +763 +-7595 +-7740 +-8133 +-9565 +1527 +2301 +-1463 +2242 +-2252 +-6718 +1304 +-8158 +9126 +-4578 +6932 +4148 +3233 +2114 +3820 +-2479 +-330 +-1470 +-6801 +-7786 +-2900 +-4007 +-1543 +-4548 +9839 +7085 +-6639 +-6167 +5787 +6387 +1951 +-2517 +-938 +-7762 +3237 +-8077 +-2182 +-8818 +5116 +-5404 +-1136 +-1158 +5181 +-2529 +-7660 +1770 +3487 +7484 +-1310 +3834 +-7867 +-8311 +5415 +4380 +319 +-7385 +-8539 +-1961 +-7484 +2080 +6537 +-7617 +1615 +-6674 +9137 +-1695 +1135 +3975 +-5387 +9379 +-8101 +1147 +8203 +1481 +-4958 +-6357 +1166 +4162 +-8279 +-3482 +7234 +3263 +4189 +1143 +-1843 +-1053 +5291 +6043 +-122 +-4179 +-7796 +-6930 +3322 +9764 +-6718 +504 +9269 +-1044 +-1510 +8451 +-8068 +-9502 +3481 +9699 +-4406 +354 +-4614 +-7516 +4389 +6454 +-4541 +-8274 +4744 +2743 +2482 +-6387 +3993 +8758 +-2997 +6906 +-8924 +-8248 +-2204 +4717 +6391 +-589 +-207 +8566 +-5219 +-8369 +-8483 +6877 +-7682 +-4768 +-5868 +643 +8799 +-5098 +-1304 +-7035 +363 +9467 +7386 +5423 +-6200 +5073 +-6244 +9269 +2760 +-462 +-4767 +380 +8929 +-603 +-3523 +9227 +-8647 +-3364 +-2306 +-1679 +-3059 +-8761 +-1908 +-8299 +6244 +8934 +-945 +-6023 +6326 +-7224 +372 +9249 +7840 +6475 +-3569 +-7168 +-2897 +3336 +-8399 +7582 +6028 +6979 +-9222 +810 +942 +-538 +4867 +4433 +7119 +4787 +5497 +7065 +5877 +-7786 +3001 +8487 +663 +7426 +9909 +4202 +2768 +-6468 +7796 +9698 +-5182 +4097 +4247 +-5301 +-5137 +-9067 +4681 +-2479 +-7697 +-8920 +887 +-4603 +-8512 +6932 +8055 +5472 +5415 +-7198 +-4375 +-4718 +9672 +-5589 +-9746 +91 +7535 +-2481 +-9537 +-9392 +-8274 +6242 +3876 +6526 +-2717 +-4812 +4026 +-6660 +-4738 +8873 +-2704 +9555 +2971 +-9740 +4271 +-1108 +614 +8851 +-470 +-1249 +8593 +5550 +4610 +9441 +-3960 +-4181 +5097 +758 +-3064 +8420 +4519 +-5543 +-2505 +4384 +-7428 +5857 +-8103 +-9337 +4335 +6596 +-5564 +-8405 +6860 +8490 +8151 +-1772 +6411 +-5161 +-9755 +5578 +6576 +4449 +-5094 +6223 +6338 +-8323 +-2086 +7314 +-9055 +3988 +-7158 +-9913 +-9714 +7559 +-2823 +-4320 +-7678 +-9040 +-2270 +-9726 +-9948 +9166 +8682 +9596 +-5297 +-3687 +2195 +9769 +-279 +1186 +6358 +-8526 +3894 +-5181 +8407 +-6215 +-1582 +1069 +-9409 +8946 +-1574 +-9117 +4258 +2070 +4310 +9112 +9037 +125 +9427 +3689 +3083 +-793 +4353 +-2904 +-1365 +-6270 +-9478 +-5058 +-987 +-1733 +686 +-1836 +-8297 +8956 +1249 +7431 +-4060 +-6958 +9137 +-3400 +-5939 +4113 +2786 +-8001 +3215 +4590 +9468 +9437 +-945 +-2959 +3449 +-9112 +-2819 +-3731 +-2470 +1445 +-1867 +6827 +7750 +-6367 +-6943 +8282 +-998 +8332 +3936 +-7182 +9324 +-8512 +-8637 +8337 +8031 +-1674 +-8380 +-8031 +-7037 +2592 +3336 +270 +-7284 +1666 +-8192 +4049 +6874 +-6998 +7108 +-2089 +-9560 +-3889 +-4773 +3300 +-9363 +806 +-7020 +1848 +-278 +6757 +5389 +-9686 +1423 +6124 +569 +928 +7862 +-564 +8181 +-6074 +-999 +4642 +792 +3322 +-9899 +9102 +-7679 +-5815 +-9714 +9160 +-9519 +-322 +8754 +3682 +-3869 +-6475 +7276 +-3341 +-9376 +-3831 +-4443 +9523 +8579 +-9613 +7235 +-8011 +6762 +9596 +9188 +-9612 +9664 +2439 +8619 +-217 +1517 +-661 +1527 +-5195 +1874 +-9134 +4280 +-1258 +-3380 +-1788 +897 +3377 +-6825 +2597 +5321 +-2172 +-378 +4560 +4581 +2660 +-2499 +5833 +6260 +-4910 +-5492 +8121 +9584 +5869 +-4910 +710 +5643 +8276 +-6753 +-3687 +-5548 +-973 +-783 +-9222 +-8063 +-3373 +-1455 +3116 +-1170 +3808 +4381 +9226 +4456 +9633 +8084 +1327 +-232 +4924 +-105 +7091 +9731 +-5675 +5947 +-8838 +6102 +-865 +5267 +-5681 +742 +-8776 +-6514 +-5907 +2296 +8667 +9336 +3041 +-6034 +-8674 +-5069 +6982 +2301 +-4576 +-6540 +4036 +3507 +-604 +-9897 +451 +-5576 +3531 +-5334 +9545 +-4206 +3316 +758 +-7597 +-2959 +-4143 +1428 +-7022 +-3872 +-8650 +5069 +-8504 +2824 +-5591 +2098 +-7124 +7411 +2394 +-6950 +9716 +-3448 +4936 +-5809 +127 +-704 +8738 +1992 +1863 +-6260 +6069 +-2511 +20 +-8844 +3509 +2353 +7058 +7862 +9009 +-309 +-3275 +9852 +3240 +5877 +-7388 +-4134 +5823 +4491 +9608 +-5944 +5219 +6728 +-9535 +-2505 +-5599 +-2650 +2626 +-2 +-2928 +1548 +-1685 +-8789 +-3916 +1952 +-8380 +-7314 +9065 +2394 +8712 +2359 +-140 +-1657 +-462 +2041 +1451 +-462 +-5679 +4374 +-1479 +-2316 +2195 +5931 +-1705 +-8374 +7119 +3884 +-1582 +-1249 +-1114 +4331 +-2778 +1413 +3092 +2860 +7014 +-7275 +9262 +1093 +-4220 +-4851 +9063 +-2406 +-4443 +9605 +1931 +8091 +-1941 +-2721 +-1323 +4326 +8809 +-330 +3059 +1666 +-2371 +-7533 +9449 +9082 +-4764 +6093 +1864 +5989 +2236 +3541 +2635 +1886 +-2208 +7112 +6485 +1698 +-2273 +7058 +4642 +-4958 +5321 +3000 +-2446 +-3516 +3233 +2580 +-9880 +-2690 +-1206 +-3934 +2080 +5595 +-2320 +-4753 +-8217 +6780 +-3452 +-8865 +-868 +5425 +-3235 +-4718 +-7210 +42 +8713 +-8579 +-2518 +-1930 +7475 +-7756 +5602 +-5792 +-1558 +-4578 +-2126 +6905 +-4164 +-9256 +2183 +2658 +-1565 +-3849 +5267 +9179 +-6916 +-8944 +2539 +6137 +9310 +-4284 +6445 +-8075 +-8049 +2093 +8667 +9838 +-9755 +2626 +8097 +-5268 +-3466 +-1885 +8151 +-5046 +-2699 +-4931 +-4794 +-4273 +-2736 +-5905 +7133 +8420 +-1607 +-4712 +-8839 +882 +-6250 +-6863 +7609 +3909 +-7503 +7677 +-2405 +-9467 +4678 +5395 +9523 +-261 +-6133 +8248 +4462 +4414 +1760 +-4710 +-9474 +3507 +-6489 +4701 +15 +-8407 +-6600 +1693 +-182 +-3991 +7147 +3822 +-2308 +-713 +5637 +8018 +1399 +2904 +8412 +-6681 +-7594 +-9596 +-232 +5108 +41 +-2659 +-4588 +3957 +1138 +7687 +-2790 +-9020 +8248 +2494 +656 +-8465 +5695 +5147 +1400 +1599 +-9976 +-3298 +440 +5037 +331 +-3655 +-2479 +3336 +4391 +-401 +-8185 +-5518 +9431 +-6825 +-4709 +2644 +5020 +-2755 +5467 +511 +3403 +-5785 +6913 +-4760 +-5761 +-3664 +-4709 +-3753 +-8161 +2603 +-7582 +-9432 +6231 +688 +-8458 +9248 +3149 +-3017 +5142 +3521 +1950 +-3092 +-333 +7885 +-2951 +3797 +218 +-3593 +-314 +158 +8982 +-8397 +5014 +9037 +3341 +4342 +-436 +7509 +-7712 +8197 +7108 +-2699 +4189 +-8932 +2906 +-634 +4278 +2758 +7888 +-7668 +9122 +7277 +-8817 +-8824 +-4198 +-3577 +-107 +-6814 +3330 +322 +-677 +-1024 +-8522 +-1931 +-2385 +-9055 +2098 +2954 +-5377 +6603 +-2013 +9269 +8187 +-1602 +6596 +-3758 +-5582 +-9571 +3172 +1125 +-7564 +-4520 +-5414 +7800 +-9653 +-9164 +-8814 +-7797 +1971 +165 +1757 +-6802 +6091 +2 +3011 +9248 +-6137 +-210 +517 +-9059 +-2772 +-9398 +2394 +6336 +-6301 +-3752 +-5761 +331 +-374 +-9482 +-8793 +9521 +500 +3344 +9692 +1191 +-2176 +6587 +-839 +7281 +7291 +-8514 +7269 +-1241 +-8938 +-6327 +4403 +-4680 +3849 +4967 +4292 +-6600 +1747 +3436 +-8242 +4121 +315 +1064 +3322 +-9953 +5677 +3375 +-9222 +-2415 +8151 +1265 +-690 +4003 +-56 +70 +-4049 +-4489 +-9720 +9458 +-3448 +-7993 +-7820 +-6123 +-347 +-4294 +8715 +-679 +3316 +9693 +3028 +-8447 +-6671 +-1450 +6225 +-633 +-6065 +-9048 +-4047 +3394 +-3180 +5303 +-7101 +-7997 +-1934 +-8610 +-3734 +9741 +-8631 +-2422 +-6231 +134 +-690 +3296 +-132 +-9467 +-7864 +-5409 +-5599 +-7539 +448 +9698 +-2251 +-8749 +-8158 +-9833 +3243 +-16 +-8145 +-1790 +-4466 +-4270 +-4962 +4665 +2003 +-9955 +5404 +7529 +-2959 +6937 +-2933 +609 +718 +1742 +-9260 +-9666 +-651 +619 +3735 +-5380 +8462 +8957 +-9819 +7602 +844 +-7820 +3726 +8654 +-4679 +4280 +7578 +3507 +7630 +-9930 +-414 +-7993 +2357 +6251 +-1788 +7645 +7600 +845 +-5437 +-2537 +5384 +3263 +588 +-6215 +3897 +6860 +-2757 +6151 +9742 +-937 +2231 +1951 +1649 +3991 +1734 +-2204 +8977 +-5551 +6328 +5856 +-4092 +5735 +-3741 +5214 +-6480 +-1824 +-9548 +-7048 +-5094 +-1057 +2540 +5436 +-9186 +8437 +2218 +8272 +6441 +6529 +482 +7403 +6530 +6794 +1879 +-5840 +6242 +5205 +1796 +-337 +1517 +4940 +-8161 +6393 +505 +9090 +-8085 +-4015 +2798 +-8960 +238 +799 +4467 +-6753 +-6330 +2987 +2195 +-5754 +2696 +-1241 +9468 +-7864 +-9710 +-8057 +-3932 +5457 +-8296 +5199 +7512 +8646 +-9560 +-5957 +2894 +3324 +3951 +-3837 +9885 +-7249 +-205 +5121 +-4334 +4541 +-2530 +5157 +315 +-2983 +6544 +-7363 +-2564 +-7299 +-2797 +-8039 +6534 +-5543 +2444 +-8154 +-7911 +4875 +5560 +-3427 +4192 +-9899 +6615 +1777 +6179 +6727 +500 +5630 +9713 +2401 +2695 +-2242 +2563 +5291 +-901 +-1685 +-6037 +-2311 +4880 +-1976 +-4162 +-3466 +3855 +-817 +-8105 +-632 +3362 +-9875 +-1534 +4986 +-9200 +8203 +1852 +-8752 +-3430 +-9342 +2883 +1601 +-3606 +-3510 +3206 +6260 +9031 +-4162 +5882 +-6324 +3992 +-3717 +614 +9852 +-3030 +-1645 +-1307 +6565 +9508 +4739 +-6982 +-1451 +7017 +-8083 +5695 +2618 +-262 +6597 +-2590 +-6020 +4253 +871 +-6962 +-9811 +-6628 +-2295 +5550 +-5751 +2009 +-7487 +68 +-8233 +3645 +7839 +-7705 +2565 +6555 +-7314 +-5341 +-3099 +-2538 +-3082 +6506 +-1674 +6894 +9857 +-1867 +-7116 +8947 +-1255 +-746 +9461 +8149 +-5730 +1652 +-7322 +-9278 +6390 +-2281 +7480 +2770 +1789 +-8961 +3936 +3782 +4439 +2882 +-3354 +-7639 +-3937 +1599 +-1246 +7211 +-4172 +-5010 +-8817 +2056 +-4307 +-7739 +8160 +3785 +5807 +-9562 +6296 +-8795 +-2429 +-5936 +6178 +6266 +7480 +5342 +-4158 +5707 +2783 +-2906 +-1003 +-290 +8262 +-8090 +-2208 +-2136 +6566 +7719 +3024 +8156 +5290 +3177 +5218 +-4509 +2909 +-2000 +7918 +4557 +-1656 +7190 +3675 +-6887 +-4240 +-944 +-3832 +-6096 +-1096 +-9732 +8170 +-2335 +-6349 +7004 +-6658 +6958 +-9016 +-3725 +-925 +-4429 +-1963 +-9450 +6454 +-6982 +-3437 +-9539 +-2988 +-1864 +-6499 +-4416 +-1276 +8692 +-8676 +1673 +-1954 +-3611 +-404 +4870 +1246 +9721 +-1546 +4767 +-6475 +3470 +6826 +5331 +-5816 +5576 +7014 +7764 +-8263 +-1545 +6214 +-7598 +-3894 +9363 +-5778 +-1921 +-7505 +-5189 +-5848 +5513 +163 +1329 +-5268 +-3121 +-6639 +-6825 +6047 +-120 +-9470 +8961 +-8299 +365 +-3189 +-8622 +3488 +-5980 +-7821 +-6707 +770 +4710 +6664 +-6199 +1479 +9214 +-3716 +6589 +-2356 +2957 +6119 +-9410 +7344 +7849 +8059 +560 +5613 +-8504 +7800 +2770 +4025 +-7488 +-6982 +-7280 +-7405 +718 +-3998 +5074 +6774 +-1575 +6054 +4291 +-1174 +5290 +-5757 +9676 +-7993 +4209 +-6201 +1887 +-567 +-2842 +5212 +-5377 +5477 +-8640 +-1033 +2439 +1972 +-4446 +-1892 +-1769 +-9468 +-7888 +-1817 +-1685 +1143 +-6729 +1137 +-3131 +-8079 +-5182 +4717 +551 +-2647 +3240 +7843 +-3719 +626 +6238 +-4356 +1603 +2867 +8153 +3340 +-42 +-8483 +-1930 +4087 +3822 +3549 +926 +-7484 +3410 +5726 +3081 +4192 +9441 +6654 +-5841 +9269 +4809 +-1074 +6836 +5020 +-3871 +6386 +3887 +-591 +-2167 +5477 +-8416 +-7318 +9145 +5447 +-4248 +1366 +-5110 +-538 +-4300 +-3126 +3068 +8694 +7967 +-5081 +-7639 +2106 +9190 +765 +87 +-9205 +-8418 +-3979 +5984 +-9371 +2399 +1912 +6894 +-9985 +1952 +-7333 +6526 +-7459 +-7543 +-7144 +3024 +-7237 +-750 +5351 +-215 +-5788 +8905 +-7864 +9511 +8411 +1332 +-3918 +1612 +-9994 +4772 +6983 +-3257 +3418 +-8057 +942 +-8197 +-7609 +6262 +-4699 +9447 +1742 +-1292 +1354 +-7452 +3200 +-132 +-1019 +2047 +1862 +-1825 +-6318 +1245 +4801 +6522 +-8075 +-8800 +-3599 +8003 +963 +8783 +-5052 +-5866 +7873 +-7827 +8387 +8119 +-4130 +3650 +977 +-8452 +3600 +-4048 +7062 +-6901 +-6308 +-6023 +-8442 +-8708 +7752 +8485 +7870 +-6920 +2380 +7220 +2694 +98 +-3041 +-3448 +3998 +-1135 +6917 +-461 +-2860 +5361 +-589 +-4012 +3965 +-588 +7664 +-2204 +-9468 +-293 +4541 +7411 +3774 +2493 +-9837 +-632 +9442 +118 +-6840 +-4607 +-8169 +-8462 +6847 +-6131 +-781 +6462 +-3052 +1776 +9717 +5750 +-1801 +1713 +4742 +-1043 +-1961 +-8309 +-8154 +4352 +1094 +9451 +-1165 +9709 +4265 +7058 +-4358 +3585 +-2330 +515 +-5236 +-7484 +-8324 +5398 +-1597 +1805 +-4878 +-5439 +3884 +-1572 +1447 +-4719 +2349 +3129 +-4416 +9465 +8596 +-9079 +886 +9576 +-5351 +-1607 +-5579 +-8217 +5578 +-1953 +6339 +-1309 +2699 +-4478 +6125 +-4603 +-1558 +-4578 +6803 +-7354 +-4201 +-2751 +-4222 +9963 +-2997 +8741 +-4598 +-1950 +-3428 +5334 +765 +-5291 +234 +3533 +-9880 +-1019 +6479 +8276 +7614 +2107 +-9360 +-1246 +-7210 +-8507 +5423 +9813 +2439 +1141 +-9768 +8299 +1734 +-8091 +3052 +-6734 +-7001 +-7168 +714 +7609 +-5439 +-1629 +-9725 +-9726 +9397 +-2948 +9701 +9193 +7974 +-37 +7481 +5300 +8385 +8013 +5341 +7994 +3083 +6009 +-2229 +8259 +9962 +-9514 +5147 +-5513 +-4290 +-930 +-6522 +-5235 +-3022 +-2723 +-2765 +-4692 +4917 +-9596 +-6213 +-4411 +-4100 +2 +9442 +108 +8877 +-9496 +8155 +9575 +5890 +1903 +1828 +845 +-8357 +9455 +-2723 +-166 +5961 +-3937 +-2325 +-9063 +-5843 +5833 +-2819 +-5816 +6386 +1527 +3822 +-390 +1291 +-2699 +2544 +5603 +5754 +8139 +-3979 +2492 +1088 +0 +-6593 +-122 +6336 +9266 +1318 +7510 +5394 +9852 +-4014 +-9771 +6132 +1362 +-8476 +-7418 +-6903 +1385 +4813 +-749 +5513 +-8201 +-8697 +8979 +-9525 +-3842 +7857 +-2517 +2952 +3317 +6494 +2995 +7410 +6877 +-9474 +-1440 +-5215 +252 +2347 +5690 +-9529 +68 +91 +-8875 +8689 +842 +-3052 +-6675 +7344 +307 +8835 +9174 +-5375 +-3288 +-5226 +3322 +-3558 +7276 +-1054 +7840 +108 +6116 +1731 +-589 +1751 +9701 +8322 +-5513 +1895 +6077 +-9089 +-9469 +-2451 +-3791 +-2844 +1354 +8471 +3953 +-5052 +9333 +-2129 +5436 +1055 +9134 +4403 +-1147 +5994 +-9805 +-7864 +1303 +5159 +-4325 +-5722 +4181 +3097 +-6734 +-1316 +-279 +3449 +-4162 +-5240 +-9608 +4252 +1234 +8412 +1827 +4278 +8385 +-4935 +7083 +8715 +-8287 +365 +-2242 +8284 +-1753 +5301 +-1227 +-7480 +6081 +5844 +6069 +1420 +-8243 +4503 +9060 +4149 +3240 +-9208 +1822 +5717 +-3932 +-1680 +3300 +7805 +9555 +-5081 +3237 +-4851 +944 +-7096 +3690 +-9410 +-1856 +-1825 +262 +-9953 +1595 +-4666 +9300 +-9291 +-466 +-4030 +-2784 +1481 +1723 +-7147 +4484 +-6830 +3689 +1546 +-6126 +6827 +20 +8656 +-3664 +-2820 +-7452 +5865 +8835 +7454 +5397 +-3405 +-2335 +-6043 +3919 +-6118 +6989 +-2320 +-3534 +-3465 +-9552 +4410 +3333 +-428 +-9855 +3376 +3237 +4193 +-6820 +-3492 +-174 +-4157 +-5570 +2996 +-1371 +-7893 +-3831 +-8893 +-5933 +5960 +2523 +-9826 +-4436 +2226 +-6285 +2116 +-3601 +5436 +6955 +-8610 +-7322 +-8824 +6316 +1030 +-8369 +-1730 +3383 +-7847 +8342 +2419 +-9798 +8747 +3276 +2576 +-9969 +9607 +-2159 +1624 +-6214 +1757 +-8142 +-9490 +5391 +-7383 +-4605 +-3000 +5632 +-1589 +9964 +9536 +-531 +3632 +9663 +8455 +-8471 +-7182 +4261 +437 +-6707 +-5248 +-1688 +-50 +-3257 +-4986 +2114 +2630 +-8806 +434 +7209 +4446 +8532 +-8224 +-407 +-1954 +-8311 +4209 +7216 +2957 +9905 +68 +-2132 +-7508 +2962 +-865 +8537 +8046 +-9441 +8177 +-8046 +5557 +-6716 +-8809 +3731 +-4218 +-9548 +-4047 +6490 +-3779 +-6801 +-9728 +-3684 +-6987 +-5046 +-5162 +-9685 +-3766 +6439 +3879 +-694 +6474 +-5547 +-873 +-443 +5783 +2506 +-9117 +4674 +6858 +7219 +341 +-4925 +-7522 +-5877 +-4039 +-4012 +8373 +-3543 +-7121 +4350 +-9196 +4815 +3397 +5384 +-5543 +5199 +-489 +1760 +2541 +-6366 +-2763 +4608 +4271 +7345 +-5907 +-2894 +8254 +9680 +9803 +1668 +-8285 +8177 +6425 +-6817 +8876 +-8776 +3339 +4269 +-9797 +-5492 +-909 +-8039 +1822 +-2798 +-9744 +3253 +-9504 +-2721 +-9526 +-4539 +7058 +-3302 +5155 +-1933 +5458 +-3074 +-6167 +-4372 +8482 +-2956 +41 +-8241 +-193 +-2331 +9413 +4670 +-720 +504 +-7375 +407 +6941 +-2180 +1318 +7865 +-7931 +-3448 +-9371 +-5100 +-828 +-1345 +-4294 +-104 +-2739 +7307 +4484 +9190 +2828 +7677 +7981 +-1997 +-3976 +-1692 +4041 +-3602 +9127 +-9164 +-1951 +2070 +4038 +-401 +-8559 +-3354 +-6801 +7211 +-4308 +6387 +7754 +3552 +3081 +-6579 +5880 +-8395 +-9696 +-8688 +7840 +-5967 +1571 +-1714 +6496 +-9701 +7163 +5232 +-5281 +207 +1454 +-9165 +-5248 +9803 +-4003 +-9165 +5141 +3804 +7095 +7662 +-6822 +-7487 +3772 +-2469 +5061 +5499 +-469 +-9256 +-3005 +-9409 +-7562 +7688 +4065 +2274 +-603 +8996 +-8734 +-5543 +2504 +8252 +-7206 +5844 +-4325 +-6830 +3324 +108 +4529 +-2542 +-7313 +-2781 +897 +5267 +3397 +-6903 +2557 +569 +4513 +2964 +-6475 +-44 +690 +-9889 +-1893 +-2630 +2344 +8991 +-3253 +-6174 +-4539 +-4152 +6655 +411 +4492 +5902 +5630 +8818 +5201 +8816 +7744 +6607 +-9526 +-5460 +3951 +4954 +448 +-9164 +9457 +6474 +-5311 +7270 +1359 +-5209 +-7416 +-1027 +1070 +-6551 +-9912 +-3992 +-7165 +8402 +-750 +1906 +-7427 +-1867 +9726 +-3444 +-3521 +5446 +-7732 +-1255 +3024 +-6565 +-9122 +-1555 +-9650 +-2028 +6758 +-2365 +-8232 +-232 +270 +826 +-7794 +-7876 +7027 +3084 +-3617 +2510 +3177 +-2540 +391 +2780 +9721 +-1817 +3062 +-1921 +2218 +1521 +895 +-1790 +-925 +4049 +9743 +-4612 +2063 +-30 +-1150 +-2216 +-1838 +1470 +3107 +-173 +2906 +-1886 +-9936 +7127 +-490 +5503 +-1115 +-68 +-3937 +-6660 +-3001 +3672 +-7821 +2679 +-7786 +-1996 +-1930 +7393 +144 +-1399 +-9487 +2714 +-8350 +514 +9504 +-8678 +3993 +1210 +-3118 +-9917 +-4548 +-4637 +8961 +-4388 +4869 +4362 +8966 +-7388 +-4548 +-6846 +-3741 +6334 +8200 +4332 +3021 +2810 +-4325 +8328 +5573 +-9874 +-6598 +-3040 +5406 +-2417 +2009 +1336 +-4970 +-9371 +5916 +-1266 +2460 +205 +-222 +7085 +-3971 +354 +-7662 +-52 +-3865 +-3523 +6451 +391 +-4135 +6402 +3762 +-2814 +-3885 +8355 +-8670 +9693 +2764 +-8049 +2961 +1903 +-8231 +7750 +3376 +3378 +-1611 +1610 +-7132 +340 +-2646 +256 +500 +8910 +-7976 +-9434 +9529 +2399 +9989 +1772 +-5543 +1276 +-6777 +-4953 +4453 +-5786 +-1589 +4670 +-2304 +5093 +-6460 +-5553 +-7793 +-4680 +-7637 +-8865 +-3373 +-3810 +838 +-5553 +9009 +365 +1217 +-8723 +-5662 +-1451 +-3251 +7086 +7752 +7727 +1879 +503 +6392 +-8331 +6294 +375 +-9655 +-1451 +-9013 +4868 +-9571 +-2951 +4386 +8105 +-4533 +4041 +-968 +8985 +-266 +9241 +-9289 +3362 +-8945 +-487 +-343 +-679 +2509 +4391 +9017 +-8875 +3723 +-4587 +-6885 +-5308 +-7061 +9224 +1822 +5025 +1055 +3439 +2694 +6308 +-6033 +-262 +-6321 +-4936 +4026 +-3002 +9363 +3034 +-3020 +-5036 +-8678 +8443 +1476 +5510 +5394 +3759 +-8123 +1869 +3055 +-1755 +4012 +-9925 +448 +-462 +3992 +-8741 +8758 +-7197 +2895 +5400 +7464 +817 +4970 +-8780 +-3096 +-9118 +3988 +-5260 +2112 +8553 +6139 +5956 +3006 +8355 +-8584 +9731 +755 +-1776 +-9811 +7391 +-9475 +-9302 +8861 +-713 +-3477 +3773 +-5094 +-5787 +9983 +-4986 +-7963 +-7237 +4981 +-9033 +-3046 +-3566 +-8396 +-1213 +-9433 +-9837 +-1312 +9724 +-4949 +8806 +7377 +9881 +-8834 +9063 +2157 +9427 +5049 +-7861 +9442 +-5410 +-5487 +322 +-4659 +9788 +-859 +-6260 +-3547 +4287 +-7182 +-926 +-5850 +3992 +-204 +2862 +-6390 +-1479 +8271 +-9546 +-8616 +7538 +-9094 +9270 +-690 +5844 +1409 +4985 +2707 +3608 +8385 +-7526 +9972 +-6045 +36 +-2129 +1880 +2990 +896 +-9334 +9336 +3900 +3804 +-4055 +9744 +148 +-795 +2824 +-2679 +7294 +8612 +-3939 +-8514 +-2888 +-6008 +959 +9813 +-3496 +5597 +9747 +4903 +5199 +-1005 +5155 +9960 +-364 +-3333 +3884 +3855 +-1480 +-8752 +396 +391 +7668 +4986 +-2285 +6368 +-6012 +-2252 +-7732 +-9763 +45 +-5993 +-3121 +-5162 +-4574 +-4150 +-2798 +8990 +7977 +1634 +-2146 +3942 +8388 +-4794 +7395 +207 +5715 +3649 +5789 +-7523 +1126 +4433 +-4991 +-2312 +8857 +362 +7686 +-3003 +-6939 +1932 +2990 +7757 +-634 +7199 +-8515 +-1380 +-2948 +-4103 +9563 +2442 +2656 +7598 +3597 +5137 +-5809 +5313 +-6591 +2725 +-329 +5603 +797 +-173 +-5674 +-2669 +-7993 +7314 +6913 +-2736 +-911 +3783 +-7910 +8950 +-4078 +-8075 +-2365 +4351 +-5675 +-8551 +8856 +-648 +-7124 +5789 +7454 +-2214 +8561 +2340 +5787 +-4607 +5661 +9729 +-6002 +4467 +-7116 +-4896 +-6440 +4390 +-1974 +8019 +-4102 +8018 +-6341 +4800 +7454 +7734 +7035 +-4392 +-159 +1959 +3165 +3243 +-1039 +410 +4610 +5453 +-4768 +5349 +2943 +-7637 +162 +4253 +-4178 +2282 +5292 +6654 +-1247 +1264 +-799 +6092 +-9066 +2957 +2107 +-4268 +8276 +3671 +-910 +-3013 +8373 +-5688 +-174 +-7635 +2724 +9782 +8462 +-3364 +-8901 +-4645 +-3791 +-9817 +7277 +1939 +-3238 +6723 +-1870 +5005 +9114 +-3894 +-5564 +-8317 +-9661 +-799 +-8248 +-2798 +-5077 +2303 +7113 +-6463 +688 +9173 +-3074 +-2948 +-5889 +2399 +-8865 +-1397 +-9826 +5757 +-6198 +9573 +5301 +4269 +4271 +6899 +4490 +742 +-4035 +-9649 +-7027 +5073 +-9468 +797 +-8483 +5345 +-2515 +-7265 +-8364 +-489 +-103 +-1105 +-1410 +5677 +-2292 +5625 +1194 +1109 +4526 +8132 +9442 +1252 +1862 +-2653 +-4850 +-7821 +4656 +-9692 +-1870 +6972 +3635 +5542 +8747 +3275 +9920 +9664 +7291 +1874 +9523 +5596 +3702 +-219 +-2765 +2739 +-4840 +4511 +654 +-8813 +5780 +6254 +-2784 +2806 +2990 +-6348 +-9728 +806 +-3082 +-9466 +-585 +-2481 +-4574 +-2143 +324 +-5596 +-4586 +-678 +-2823 +8526 +-1385 +8475 +8160 +-7142 +6545 +9065 +6234 +-159 +579 +-6324 +-9919 +-6056 +-8149 +383 +757 +7074 +-2797 +-1941 +-3656 +-1426 +8794 +-3373 +9212 +-4607 +-6329 +7197 +-9715 +8079 +-3163 +-8892 +757 +5578 +3804 +-8865 +1689 +9211 +-6540 +-1925 +-5907 +-6195 +-2569 +9493 +7579 +-230 +-176 +-6722 +-549 +-3734 +-6989 +-7144 +5849 +-516 +4456 +3672 +-5761 +7363 +9536 +-8721 +-7488 +-462 +-2182 +-2208 +322 +1252 +3362 +-3918 +5823 +3901 +-8504 +1834 +3897 +-668 +6350 +-2667 +4712 +5377 +-9107 +-262 +5155 +-1557 +7562 +8518 +-6379 +-3065 +-2473 +2458 +990 +5577 +4967 +-1255 +-3409 +8063 +6786 +3005 +-3447 +-4262 +5811 +-2650 +6336 +1373 +6200 +4772 +-210 +-3199 +5803 +6791 +3232 +1848 +-4844 +-9281 +624 +2000 +-9906 +-3859 +-3556 +1815 +-742 +3785 +131 +-7180 +-2897 +-1234 +2393 +9960 +-8436 +8572 +1761 +3930 +-4734 +-1410 +-4012 +4966 +-2268 +-5388 +9560 +4155 +4857 +-1579 +3316 +3884 +-7910 +-4627 +-7493 +8528 +1760 +7454 +-3673 +-1060 +-7942 +1252 +9793 +8433 +-4953 +1561 +8176 +7085 +-846 +-7020 +-1689 +-9877 +-6734 +-174 +-1870 +5443 +9137 +-3795 +-8896 +-9599 +-7097 +6686 +-3195 +-1979 +5496 +8438 +-2425 +-4639 +5177 +-7587 +-7865 +-4210 +7543 +8694 +-8783 +-8324 +6009 +6058 +5996 +-2491 +4149 +-9452 +-9303 +5556 +273 +-5943 +-5841 +-4679 +-365 +4389 +-846 +-2290 +-1737 +5216 +-5363 +-5780 +3588 +4144 +-1146 +7147 +-5508 +-5986 +-8109 +31 +-4124 +9811 +-3837 +-7084 +-668 +-5966 +-6729 +4813 +3377 +-8043 +2564 +-9552 +-8704 +-8085 +-3108 +1656 +3034 +5006 +-8914 +5542 +-9072 +5187 +131 +-2080 +330 +-6004 +9389 +1851 +4076 +6696 +9214 +-8005 +843 +-3932 +2291 +9470 +7059 +5129 +-4241 +-6412 +1251 +-4121 +2456 +-3947 +7182 +-9409 +-2074 +-3235 +-8085 +3350 +7967 +8533 +-7391 +-4044 +7607 +5152 +3532 +5750 +-2391 +-6671 +-2983 +-2763 +9970 +3685 +8852 +-9595 +7443 +9115 +6368 +34 +1662 +2539 +5474 +-7210 +-7911 +8412 +3742 +-5667 +-5747 +-40 +-1089 +-8379 +-4487 +9145 +9823 +420 +4973 +2906 +1229 +-9953 +515 +6474 +-8491 +1033 +-6110 +3992 +9358 +142 +8181 +-3601 +4541 +8595 +387 +-2815 +7630 +-1448 +3454 +5750 +9523 +8412 +1262 +-964 +2460 +602 +-4970 +-2502 +9227 +-1534 +-3163 +-1479 +-30 +-7028 +-2167 +-8158 +-4768 +-6374 +9743 +1886 +471 +8265 +-9302 +2380 +-7082 +-2204 +-6969 +8245 +6534 +2359 +9037 +8928 +9200 +-2470 +5527 +-3716 +2735 +-3386 +-7302 +9310 +3429 +-9384 +4801 +9177 +3038 +-9042 +-5591 +-7593 +-8380 +-1675 +168 +3439 +-8107 +2658 +-632 +-8074 +3623 +1656 +-2338 +-6793 +-696 +-2860 +3260 +-7357 +-9880 +-5381 +-184 +639 +-3846 +7601 +-52 +-193 +5083 +2371 +1059 +-2026 +4178 +-9482 +-8460 +4410 +-6643 +-8660 +2234 +9063 +-6093 +6335 +-5354 +4534 +6262 +-3611 diff --git a/day20/sol.py b/day20/sol.py new file mode 100644 index 0000000..8c73ccb --- /dev/null +++ b/day20/sol.py @@ -0,0 +1,46 @@ +data = [] +for line in open("input"): + data.append(int(line.strip())) + +#data = [1, 2, -3, 3, -2, 0, 4, ] + + +def mix(data, rounds=1): + #assert len(set(data)) == len(data) + copy = list(data) + idx = list(range(len(data))) + + for _ in range(rounds): + + for k in range(len(data)): + i = idx.index(k) + x = copy[i] + if x != 0: + j = (i+x) % (len(copy)-1) + if x < 0 and j == 0: + j = len(copy)-1 + copy.insert(j, copy.pop(i)) + idx.insert(j, idx.pop(i)) + else: + j = i + #print(x, i, j, copy) + + return copy + +def answer(data): + i = data.index(0) + n = 0 + for j in 1000, 2000, 3000: + x = data[(i+j)%len(copy)] + #print(x) + n += x + return n + +#print(copy) + +copy = mix(data) +print(answer(copy)) + + +p2 = [x*811589153 for x in data] +print(answer(mix(p2, 10)))