diff --git a/data/c2a3.txt b/data/c2a3.txt new file mode 100644 index 0000000..23c8552 --- /dev/null +++ b/data/c2a3.txt @@ -0,0 +1,10000 @@ +6331 +2793 +1640 +9290 +225 +625 +6195 +2303 +5685 +1354 +4292 +7600 +6447 +4479 +9046 +7293 +5147 +1260 +1386 +6193 +4135 +3611 +8583 +1446 +3480 +2022 +961 +7123 +7262 +2261 +8380 +2123 +1286 +1274 +1369 +831 +927 +993 +4484 +4865 +8473 +8587 +4200 +1216 +2454 +3371 +6471 +6303 +6837 +3365 +1733 +1875 +6239 +1009 +9058 +2833 +3555 +2329 +5901 +8765 +5317 +3505 +1310 +2050 +9305 +6941 +1267 +1801 +4181 +4854 +5549 +7990 +1058 +7066 +3719 +7080 +5874 +5706 +5397 +2746 +2246 +3172 +3561 +9407 +9207 +3912 +365 +6607 +1381 +5283 +1477 +3932 +2632 +5179 +1645 +5714 +1183 +982 +6846 +4154 +1595 +5426 +6412 +9160 +1746 +3382 +8375 +8279 +1500 +3355 +6867 +3428 +5884 +2852 +3303 +8222 +6459 +1341 +9435 +4676 +2491 +5789 +5583 +1952 +3788 +4883 +3072 +282 +8285 +414 +6042 +7163 +7708 +1420 +2919 +9490 +7811 +1763 +3716 +6223 +2367 +1866 +4164 +2591 +3518 +8348 +8997 +388 +7196 +5752 +4537 +3091 +2960 +1781 +6785 +4315 +286 +7838 +6153 +5852 +9759 +8183 +6972 +1000 +7405 +6653 +2335 +9083 +1687 +9673 +2478 +2425 +5561 +6291 +9180 +7487 +4528 +6974 +5364 +4015 +6456 +6947 +4625 +4705 +3377 +4148 +9007 +6985 +9185 +3345 +169 +6074 +5854 +1056 +4155 +4615 +7211 +4351 +7809 +4289 +3432 +5710 +548 +3412 +2702 +5915 +3312 +5516 +3811 +2197 +1642 +7225 +7390 +6238 +1764 +5654 +1436 +2572 +714 +3087 +247 +8423 +5109 +257 +2009 +2447 +8364 +805 +3260 +1938 +6035 +4229 +7775 +3372 +1220 +8608 +2468 +820 +7729 +5933 +1334 +2267 +3841 +1677 +7747 +9642 +1178 +762 +5214 +281 +1154 +9711 +9915 +2124 +6697 +1548 +7017 +6784 +6027 +6004 +5335 +5018 +4194 +620 +5462 +4352 +9200 +3296 +7408 +8554 +9359 +1578 +2481 +496 +4368 +3948 +9148 +1214 +4348 +3366 +7673 +1721 +5253 +2228 +9927 +3690 +4159 +240 +5218 +939 +6275 +4807 +4774 +936 +2980 +301 +2625 +8674 +6863 +2108 +4466 +6346 +5193 +8775 +5247 +631 +9256 +4561 +3489 +5787 +1797 +251 +3095 +2239 +1955 +780 +9176 +267 +654 +3894 +7963 +6660 +1230 +1464 +5387 +9216 +4239 +5032 +9845 +4108 +1428 +1087 +1252 +6023 +8704 +9871 +8718 +2803 +7343 +8201 +970 +5489 +9663 +7674 +4133 +4178 +8527 +3093 +921 +2780 +4448 +8024 +1166 +3146 +6564 +3526 +4006 +8030 +485 +2926 +9925 +3950 +5694 +4038 +15 +934 +1112 +9959 +4714 +5264 +5130 +2081 +5055 +2139 +9931 +9178 +1343 +9768 +7584 +114 +1015 +5817 +5903 +9574 +1348 +8451 +2320 +2067 +8479 +8191 +4470 +1101 +6924 +7464 +9353 +4231 +4249 +763 +448 +6364 +6547 +1592 +5303 +4678 +2304 +3662 +2098 +945 +6994 +7111 +428 +8386 +983 +226 +7709 +924 +8568 +754 +583 +901 +8284 +8668 +5325 +7907 +1689 +8634 +3956 +2306 +8228 +5862 +4949 +2951 +1452 +6281 +845 +9154 +1614 +1577 +2113 +8640 +1396 +7913 +3418 +7830 +9957 +3034 +1193 +3847 +3258 +4232 +9963 +4504 +4357 +120 +8560 +1829 +8381 +3399 +9405 +1846 +8843 +6742 +4157 +7643 +7061 +551 +6345 +8786 +1743 +8958 +4016 +3830 +386 +3464 +3687 +1065 +4277 +5001 +7046 +5220 +3401 +765 +5376 +5439 +9592 +2338 +1392 +8384 +6580 +1131 +594 +7009 +6128 +5512 +522 +593 +3453 +160 +8852 +7645 +7477 +3326 +1871 +4312 +9901 +5337 +7932 +7096 +1239 +9910 +7661 +7447 +888 +4925 +8638 +1980 +8589 +140 +3311 +7421 +4514 +9482 +5428 +184 +339 +2735 +8509 +3930 +9731 +2252 +500 +4637 +2785 +7626 +6184 +1869 +9687 +2163 +2332 +2069 +8706 +4424 +883 +9534 +6282 +2466 +8530 +5071 +6926 +3014 +711 +4672 +5362 +3556 +5621 +5705 +7508 +3925 +6054 +3816 +1749 +2357 +9047 +942 +6414 +2840 +7566 +1198 +1861 +753 +5378 +1530 +1598 +3803 +2448 +9202 +1172 +2133 +1584 +4183 +7933 +3245 +2327 +8141 +2459 +5417 +7858 +1624 +8882 +7031 +6684 +385 +331 +5996 +5031 +9116 +321 +1944 +952 +4068 +6886 +8564 +7424 +7386 +2553 +9049 +1847 +9924 +7681 +2976 +4170 +9486 +7184 +7698 +1307 +4501 +1213 +495 +9227 +2120 +4462 +4658 +5979 +1203 +8236 +4308 +1784 +9705 +5755 +4703 +3201 +7624 +3678 +91 +4468 +1479 +9546 +6470 +4429 +9114 +4884 +1457 +8562 +9890 +8416 +7336 +2342 +4818 +6583 +2194 +4639 +5930 +788 +8862 +1819 +8278 +4633 +4821 +1992 +3680 +574 +6075 +584 +910 +2972 +1440 +417 +3122 +2959 +8544 +8552 +6943 +5544 +4737 +4473 +1333 +4761 +810 +2901 +1976 +4417 +3068 +986 +5964 +2516 +6122 +4754 +2433 +8436 +877 +3876 +5476 +7878 +1066 +1311 +5061 +6208 +462 +2524 +170 +5027 +7434 +9420 +639 +2251 +3915 +372 +4706 +8610 +7695 +6143 +2313 +7143 +9446 +3109 +6626 +353 +3344 +2191 +4273 +8774 +1574 +9062 +1690 +4100 +742 +5124 +9295 +6216 +4572 +937 +826 +2137 +3751 +1917 +3085 +156 +3029 +4972 +2281 +7804 +4275 +2937 +9090 +8918 +6116 +4358 +8599 +5035 +2837 +6935 +7118 +2538 +2048 +9253 +6527 +2184 +8686 +3801 +1632 +5570 +6108 +1619 +4729 +818 +5826 +3182 +7875 +862 +3971 +9230 +4995 +3419 +6087 +6852 +3461 +314 +2008 +5077 +4437 +3403 +1999 +3651 +4319 +9876 +1543 +7024 +3416 +9835 +3545 +3269 +3089 +1912 +2717 +7442 +2635 +842 +3595 +139 +2812 +5470 +482 +2987 +6789 +4946 +5433 +4945 +4621 +537 +5359 +587 +2178 +7212 +5282 +256 +3772 +8324 +7609 +5143 +5661 +3090 +3077 +7244 +689 +7760 +7088 +9991 +3698 +1770 +3506 +6001 +2606 +3837 +1236 +2918 +8832 +2722 +2660 +1349 +779 +4281 +2018 +4524 +3104 +6348 +9870 +3170 +4675 +6297 +1714 +797 +9625 +8048 +8132 +1167 +8778 +3608 +3468 +2690 +1284 +5285 +6266 +6515 +9133 +1411 +2615 +3840 +515 +6775 +2294 +9707 +2904 +1697 +885 +1894 +6864 +4188 +9795 +9360 +9883 +4256 +907 +2035 +5804 +585 +6548 +9304 +5099 +828 +1573 +5366 +1005 +4644 +9630 +2588 +8536 +3128 +7380 +7991 +5575 +8379 +4663 +9538 +2202 +6678 +1602 +7199 +2140 +2476 +8817 +6870 +5058 +579 +6083 +5794 +9018 +6813 +276 +8194 +5154 +4780 +803 +9314 +3132 +6386 +3938 +1425 +2186 +8411 +2802 +8175 +1025 +6882 +1391 +2879 +8542 +526 +5398 +6189 +300 +5052 +1774 +3656 +1823 +9054 +3718 +9024 +8502 +4872 +3465 +8857 +2023 +9447 +5377 +8337 +3057 +5870 +4594 +6090 +2835 +7484 +8390 +211 +2401 +4951 +9269 +3834 +6127 +3720 +332 +4081 +1187 +2004 +7306 +2853 +660 +5367 +2724 +3676 +3314 +1093 +4033 +5348 +6768 +4196 +4262 +7326 +7252 +1017 +9681 +3852 +2090 +2627 +4733 +3455 +7133 +410 +3276 +5038 +4333 +366 +6053 +3520 +9721 +5255 +6427 +809 +3776 +1960 +3577 +6521 +8173 +4784 +3069 +6976 +6866 +606 +3213 +653 +5206 +7816 +6057 +5891 +8646 +4596 +5866 +2490 +617 +5582 +1474 +5056 +9002 +7274 +3747 +8275 +6176 +185 +8849 +7531 +6673 +9614 +2056 +8508 +6085 +2130 +3392 +3926 +1790 +2863 +7583 +1739 +8412 +1007 +4785 +3928 +2371 +4724 +8912 +7101 +503 +9036 +6549 +9506 +552 +4210 +6109 +1942 +8138 +3646 +4786 +5737 +1968 +7533 +3679 +7277 +4588 +6968 +4938 +7682 +3195 +1379 +2201 +4989 +9069 +8580 +8797 +3992 +918 +1422 +1656 +5667 +5894 +4345 +4571 +152 +7900 +4465 +6658 +3867 +6712 +3921 +4116 +1468 +9219 +275 +3843 +3431 +4481 +4047 +1722 +642 +4329 +7322 +5746 +2827 +6911 +4709 +1305 +7119 +8826 +1762 +7946 +5889 +2343 +6946 +1320 +2769 +456 +7120 +2238 +1190 +5353 +1880 +8352 +7115 +2733 +9059 +5210 +2518 +4867 +9760 +7949 +3194 +3076 +1449 +5909 +1761 +6594 +1504 +2431 +1768 +5469 +9504 +9948 +7520 +8988 +4046 +9412 +5653 +8095 +9087 +2074 +7543 +6016 +8836 +1045 +3638 +651 +8701 +3648 +2571 +1316 +6186 +5935 +8055 +171 +4198 +6528 +8611 +9842 +1315 +3236 +4305 +1338 +6734 +2783 +2669 +6182 +32 +6772 +8309 +9261 +9668 +2747 +438 +5347 +9678 +3760 +9470 +1593 +9181 +4723 +7164 +2846 +615 +5835 +2213 +8766 +7555 +4165 +4197 +3521 +9892 +2636 +8063 +4937 +1863 +5015 +2556 +5456 +4442 +5593 +5629 +2111 +5067 +9462 +9453 +3994 +1789 +126 +5373 +9336 +8373 +7902 +2020 +8378 +7290 +3823 +5110 +3313 +5405 +8446 +4257 +1275 +2348 +3941 +2365 +9340 +1 +2271 +7818 +2359 +7102 +1750 +1842 +7850 +2598 +4445 +1654 +5873 +8051 +4564 +5148 +1766 +2039 +8089 +29 +57 +3145 +2094 +2700 +7475 +4447 +5820 +5758 +7557 +7246 +4073 +5065 +4131 +9961 +9526 +1145 +5690 +40 +8482 +1421 +3325 +2236 +2736 +8450 +431 +6918 +6235 +9347 +706 +9523 +833 +7014 +3442 +6430 +643 +3191 +4050 +8044 +7043 +1308 +7633 +3604 +8248 +8 +4005 +4321 +3842 +1018 +1890 +9273 +2947 +8400 +8948 +1389 +4093 +2626 +1967 +1424 +1123 +7340 +3953 +1812 +2915 +4109 +7903 +2493 +8232 +1681 +3230 +7348 +1855 +7745 +7254 +266 +2603 +4356 +7813 +7492 +9156 +3254 +1197 +2051 +6194 +1663 +3661 +953 +3818 +3278 +7029 +8676 +4414 +4760 +8289 +1100 +2683 +2823 +7301 +2131 +37 +7535 +5245 +3745 +4804 +2392 +383 +7740 +4618 +1291 +2276 +7683 +3967 +5828 +7131 +4360 +3000 +193 +4456 +2002 +3557 +4104 +8480 +4450 +542 +6756 +1898 +7712 +8616 +5118 +1821 +6245 +5194 +6576 +8643 +6394 +2208 +4325 +7350 +9080 +5921 +556 +3244 +7090 +5202 +1188 +6468 +5101 +7916 +1322 +2085 +7364 +7356 +7726 +6801 +3820 +1355 +5757 +6139 +9444 +8855 +7466 +5501 +4843 +2278 +4483 +7980 +9162 +8844 +6237 +5404 +7644 +246 +9236 +3995 +7700 +1670 +9247 +8408 +5882 +2956 +8871 +24 +9591 +8461 +5503 +3681 +3586 +3446 +3933 +7948 +755 +8905 +9056 +8952 +4336 +7200 +7267 +539 +2666 +6709 +9150 +8495 +1926 +8598 +5627 +4023 +9464 +9489 +704 +2804 +2250 +8040 +1940 +4282 +7908 +2173 +7997 +4918 +4749 +9544 +2550 +6514 +2136 +7662 +5074 +2408 +1963 +4557 +9874 +9998 +3727 +2406 +6409 +5176 +1132 +397 +5419 +1892 +801 +7999 +665 +2991 +3294 +1680 +4966 +4652 +9455 +7870 +5063 +9595 +6743 +2629 +2617 +4630 +2475 +1738 +4405 +5250 +9649 +944 +4990 +3582 +5580 +9671 +2014 +900 +1785 +5170 +1248 +2312 +2881 +6376 +3059 +5351 +519 +1956 +5445 +2181 +7179 +7412 +9257 +3357 +1475 +7532 +851 +3222 +6815 +1053 +1765 +3824 +2256 +2288 +8895 +9330 +1771 +4111 +2299 +146 +6283 +1782 +6770 +4771 +8755 +7328 +3872 +6722 +5093 +4669 +3163 +1622 +1328 +2146 +3427 +8609 +8848 +9930 +5279 +3060 +9554 +2391 +4636 +7240 +7849 +1465 +8335 +3249 +6820 +1454 +4486 +48 +2740 +7129 +3832 +3083 +2757 +34 +493 +3335 +5776 +327 +8907 +4598 +2393 +1828 +2686 +8859 +1567 +4544 +4803 +846 +804 +4799 +7501 +3438 +6747 +6120 +9367 +4716 +5680 +9613 +971 +9540 +835 +5744 +1563 +3026 +8265 +2843 +2110 +5775 +3669 +7130 +9469 +1508 +1023 +2842 +7106 +3702 +2305 +6689 +8818 +7036 +5459 +1597 +3473 +4237 +9161 +3672 +4263 +1623 +8868 +8655 +9700 +1111 +7874 +7134 +4403 +4392 +9019 +4353 +8460 +4278 +8547 +7142 +6056 +6260 +6047 +5896 +6349 +5479 +9229 +9373 +459 +2552 +7082 +13 +730 +3214 +2924 +2164 +1633 +4899 +2210 +2557 +9853 +511 +2779 +1908 +3903 +3979 +2712 +7079 +9656 +2457 +3184 +8171 +7030 +5740 +7649 +6778 +5939 +1835 +8078 +1945 +3137 +3783 +6489 +678 +8303 +6428 +1909 +7998 +4480 +4914 +2996 +2826 +1120 +7924 +5142 +773 +997 +2297 +7086 +2689 +6002 +5284 +3864 +2061 +5177 +7827 +7940 +6495 +4113 +3242 +5385 +7112 +4216 +2402 +6392 +7140 +5886 +7359 +5911 +5290 +5731 +8877 +3356 +2772 +3753 +261 +1323 +7346 +9934 +4534 +8042 +4985 +6304 +8007 +2093 +9680 +3116 +3575 +3206 +9341 +5120 +2759 +7755 +5995 +3532 +5230 +2650 +7549 +6362 +3737 +1234 +6454 +9164 +5165 +6375 +4583 +400 +7812 +1919 +2350 +5265 +2978 +9276 +1817 +3516 +7302 +3573 +4643 +4205 +2330 +2021 +3156 +9952 +2489 +716 +5025 +2546 +6949 +1491 +4218 +8969 +8468 +6809 +1935 +4859 +8647 +4527 +1109 +9847 +9697 +705 +9521 +2668 +7507 +6563 +509 +9078 +1996 +5011 +9153 +3264 +4526 +5286 +356 +721 +5656 +9620 +7862 +1118 +4732 +1939 +38 +2508 +745 +9038 +6896 +3322 +3758 +447 +695 +7034 +3695 +6313 +4438 +3567 +6663 +4614 +111 +4268 +4097 +685 +2060 +2774 +7511 +4790 +6230 +9451 +7002 +7189 +5647 +2323 +7331 +5702 +6512 +5291 +4420 +5932 +3251 +554 +8667 +1534 +489 +9850 +7851 +6634 +771 +5051 +7295 +9197 +8789 +9248 +834 +5863 +1385 +8432 +649 +9953 +8208 +2715 +7171 +513 +2102 +8888 +5020 +1361 +5276 +6301 +6333 +1300 +4286 +3485 +5971 +9586 +7782 +7498 +5219 +7235 +3285 +2665 +2649 +5299 +2285 +5003 +8488 +718 +50 +7239 +1395 +6338 +3058 +2709 +6988 +4931 +8469 +7042 +6449 +4247 +5760 +1856 +6095 +5683 +1231 +3964 +2314 +2595 +9960 +9034 +1852 +661 +6302 +648 +8342 +6179 +1289 +7759 +9860 +8989 +186 +2884 +8457 +3592 +106 +2950 +4294 +2007 +5673 +6425 +210 +1832 +2262 +9579 +7704 +5369 +5327 +853 +5391 +3031 +7628 +501 +1808 +8887 +3630 +3002 +9307 +4141 +8618 +8036 +2719 +6619 +560 +2790 +2521 +7868 +8996 +8805 +4722 +3605 +2758 +3675 +3472 +8954 +2086 +1571 +3088 +6369 +6586 +2032 +6377 +5209 +396 +1795 +2561 +5451 +8014 +3800 +182 +5116 +4283 +8967 +892 +6590 +894 +4503 +1041 +5832 +6686 +7104 +3868 +2906 +9224 +8801 +6894 +1061 +3243 +8313 +2893 +5719 +3187 +9186 +3663 +7526 +1030 +4831 +5589 +5769 +3529 +7040 +1003 +4862 +2209 +4541 +2339 +806 +2675 +7567 +6696 +1676 +2063 +3405 +9064 +8748 +9916 +8626 +1394 +5309 +2935 +4236 +8513 +7481 +8101 +9529 +7891 +3097 +9311 +9945 +5117 +4045 +4599 +9428 +7553 +1337 +2100 +6623 +2977 +1792 +2766 +4908 +5960 +6524 +9117 +2694 +7170 +2487 +5100 +4869 +6916 +3362 +2729 +5125 +8824 +840 +1287 +4044 +2583 +647 +3420 +4048 +1732 +9060 +6390 +3368 +6777 +4727 +1914 +3449 +6987 +6744 +1146 +2079 +1089 +5967 +1851 +5497 +8154 +4521 +7517 +6646 +4698 +1076 +3774 +8499 +9937 +9725 +4536 +5208 +2674 +746 +4225 +4279 +8702 +9691 +2921 +4254 +9648 +4086 +5530 +5524 +5308 +4602 +9017 +2504 +162 +2944 +8034 +326 +3552 +8809 +7446 +8357 +4984 +2608 +351 +8120 +362 +723 +7187 +8908 +4455 +4243 +6343 +3502 +2858 +640 +4928 +2579 +6665 +4043 +82 +6360 +8483 +2290 +3784 +2816 +6020 +4492 +4074 +409 +5345 +3434 +9240 +9272 +134 +9061 +9917 +3092 +4892 +4906 +287 +279 +7893 +5139 +4469 +7470 +8363 +6823 +9573 +5474 +3164 +6613 +4380 +677 +6290 +244 +565 +7056 +3734 +9686 +6406 +5905 +2351 +7197 +6134 +6426 +477 +5134 +113 +8087 +4711 +9378 +6098 +4415 +8262 +7093 +5096 +4740 +5766 +2183 +2676 +5496 +4856 +5295 +4244 +9193 +857 +4916 +3514 +3013 +9112 +2383 +5448 +3794 +4036 +2792 +4540 +7403 +2728 +6337 +9552 +7157 +7892 +3939 +6114 +5890 +43 +8913 +2527 +2420 +3407 +9524 +734 +2762 +1432 +2040 +7860 +1325 +2463 +9365 +3968 +6111 +2831 +2618 +9071 +8165 +4885 +3984 +4957 +3740 +998 +3709 +9110 +9581 +1572 +3895 +5718 +5235 +6466 +638 +535 +2536 +4053 +5808 +4591 +7505 +954 +5790 +6793 +3079 +4605 +978 +1404 +8124 +8792 +9418 +2628 +1312 +4533 +3565 +2195 +3262 +9749 +9503 +5942 +6458 +9286 +5619 +104 +7226 +9549 +4032 +3231 +1269 +1906 +5500 +8010 +9423 +6891 +2484 +3155 +2917 +5989 +3283 +2587 +6476 +4378 +5968 +9115 +6358 +2698 +3739 +6420 +8627 +7796 +6561 +7996 +4513 +6845 +8079 +2554 +8762 +5984 +9344 +7947 +8944 +990 +20 +6316 +1033 +2927 +2388 +1128 +4105 +9104 +6981 +9803 +7395 +3478 +6492 +3107 +1388 +1051 +4863 +5300 +5770 +4274 +9220 +2566 +7832 +6408 +5643 +6474 +1701 +7727 +6513 +8489 +7923 +3892 +9357 +6735 +4860 +6100 +4393 +8028 +6855 +3528 +9339 +329 +4573 +1103 +1521 +4913 +4763 +3346 +850 +9263 +4375 +1110 +1273 +4130 +2897 +2589 +5753 +9166 +5504 +2888 +6581 +471 +3641 +9306 +6534 +9282 +3007 +3742 +7550 +6993 +4092 +8604 +827 +4920 +4814 +1962 +8187 +5151 +3275 +9045 +398 +2399 +3180 +3537 +6711 +7178 +4578 +9222 +6797 +80 +9140 +3499 +2134 +7852 +4221 +2077 +4965 +656 +7020 +298 +1224 +3307 +7048 +6856 +3853 +6389 +8198 +4217 +6418 +3209 +5141 +3952 +7853 +1507 +591 +1168 +7054 +636 +9923 +3497 +422 +9502 +2363 +4582 +9168 +7810 +3437 +2537 +8305 +3539 +5104 +2948 +9374 +4647 +3769 +4436 +4935 +4302 +2673 +2225 +1849 +6589 +1044 +3547 +1372 +534 +4258 +8477 +920 +5590 +3295 +3350 +5423 +3010 +3859 +4538 +5538 +5374 +1813 +7232 +9829 +3176 +3913 +3415 +715 +2621 +1826 +194 +5990 +3046 +5249 +1666 +2964 +5983 +4411 +1662 +7732 +5519 +9096 +3360 +8772 +7820 +1265 +7311 +3797 +4750 +1901 +8068 +3379 +3668 +7958 +5684 +2654 +912 +7873 +7003 +1049 +7879 +1135 +9964 +8288 +3875 +8672 +223 +5926 +2378 +7058 +1911 +1082 +7479 +2577 +5833 +7068 +1313 +3073 +450 +2768 +8456 +1612 +5569 +1605 +4134 +4502 +9565 +4691 +5127 +3451 +1038 +5288 +1347 +5399 +3602 +5541 +2058 +1196 +8252 +5294 +5562 +5881 +488 +497 +1524 +8957 +3861 +4127 +7805 +2523 +4689 +8376 +3331 +9811 +9496 +190 +7554 +7988 +5062 +1692 +6261 +5978 +2597 +694 +2868 +7905 +7713 +7365 +2486 +791 +609 +2914 +4840 +6955 +3009 +4668 +3277 +1245 +3183 +8065 +23 +2346 +7151 +2254 +7092 +423 +4829 +4160 +3815 +7467 +6597 +836 +3048 +5246 +78 +7234 +8169 +1047 +3654 +604 +5642 +5256 +769 +7185 +2967 +2671 +2001 +3781 +4489 +4306 +4776 +1707 +739 +1329 +4485 +1352 +2612 +458 +793 +4106 +790 +1285 +3065 +6555 +4987 +9398 +2089 +7631 +4472 +9364 +7435 +5224 +5962 +272 +4145 +3396 +3782 +8072 +5876 +7087 +6869 +7637 +3027 +2575 +6411 +5103 +9518 +6904 +9072 +8261 +168 +3715 +8293 +4140 +7968 +4531 +2624 +6161 +8206 +2687 +9988 +4184 +8714 +4764 +2198 +2642 +444 +1591 +4482 +2983 +4009 +4682 +1001 +7705 +787 +4266 +5485 +4696 +3103 +8717 +9528 +9074 +7488 +4207 +5271 +5993 +3533 +2106 +2953 +506 +6755 +2176 +6324 +5457 +6030 +1685 +74 +7964 +9335 +5320 +2121 +7411 +420 +9831 +6902 +2832 +2532 +1740 +4115 +3535 +1757 +7387 +3352 +8556 +6036 +1818 +9041 +7065 +5869 +3008 +6966 +7500 +4220 +9278 +759 +9037 +6308 +1958 +9739 +9376 +562 +253 +97 +4783 +3159 +1684 +3241 +5761 +8943 +2395 +5175 +598 +2874 +1604 +8213 +7764 +5274 +1635 +784 +5784 +4142 +110 +4454 +3017 +5823 +8452 +2586 +9366 +8738 +1698 +8216 +9142 +3623 +4959 +1556 +6268 +1019 +8734 +8429 +5572 +192 +525 +5900 +3211 +9516 +8645 +6568 +7439 +1581 +8732 +8020 +7495 +188 +3983 +808 +1517 +9208 +7594 +4497 +7915 +1282 +3543 +1461 +2714 +3989 +5453 +6178 +7000 +8053 +5542 +1398 +8779 +7562 +200 +7428 +1462 +4320 +5161 +5977 +568 +4827 +7814 +4238 +1984 +4080 +5237 +6424 +7245 +6279 +7206 +175 +5266 +4887 +5739 +8782 +7877 +2809 +1657 +3726 +9246 +741 +5648 +7288 +1195 +4234 +3807 +5563 +8019 +3061 +3041 +2148 +3949 +7407 +4126 +7766 +3664 +8136 +453 +7561 +623 +3169 +1036 +7651 +9289 +4830 +8012 +1439 +4973 +2438 +1615 +1189 +3627 +1848 +7476 +1177 +3327 +6688 +4813 +2599 +3316 +3388 +1399 +4741 +6312 +7396 +3167 +614 +4433 +3748 +9118 +7950 +6419 +3037 +8371 +8415 +2723 +1696 +6354 +8057 +1887 +6950 +265 +7005 +8218 +147 +567 +5223 +9869 +1924 +499 +2971 +3263 +6876 +429 +6956 +5763 +5232 +832 +672 +3945 +1540 +1878 +3789 +3134 +6664 +9774 +2997 +9624 +6344 +5473 +666 +166 +6289 +9638 +1075 +4710 +9898 +5622 +3652 +4765 +6190 +1570 +208 +8259 +8727 +2298 +1756 +7381 +7138 +116 +5331 +3052 +8534 +7317 +7615 +613 +3402 +9172 +307 +9238 +9872 +4955 +5981 +9471 +946 +1037 +5840 +3510 +5595 +4970 +7894 +9416 +3538 +6890 +2360 +6018 +6811 +5492 +172 +8865 +4994 +1070 +481 +1419 +4674 +3730 +4654 +8567 +5254 +6227 +2413 +5591 +2932 +6052 +6723 +7646 +5435 +8286 +7307 +1973 +4608 +3038 +3328 +6624 +6479 +5301 +7676 +5281 +3703 +478 +529 +9926 +9395 +4707 +9965 +9023 +1378 +6705 +1867 +6628 +7016 +4523 +1043 +9123 +8069 +9980 +6399 +9935 +9302 +8321 +5019 +4806 +2265 +5060 +7771 +3028 +9003 +9894 +7824 +4261 +5839 +1820 +3666 +3878 +5678 +8061 +7847 +7521 +9316 +7490 +1949 +2179 +4370 +3153 +5855 +1748 +5483 +3364 +1583 +5816 +3701 +6816 +7383 +2911 +9773 +2003 +2165 +601 +3190 +54 +3965 +3650 +5292 +8596 +5048 +2224 +622 +973 +6373 +4240 +3064 +2376 +3481 +2316 +3606 +8637 +2235 +8811 +5095 +5197 +8990 +8071 +7162 +1068 +9830 +6616 +5645 +9218 +6440 +3232 +6077 +6879 +1515 +151 +4260 +6679 +7886 +1409 +3856 +7176 +3723 +4193 +717 +4185 +5777 +7920 +701 +6773 +5297 +8102 +570 +4648 +2372 +6713 +6654 +580 +720 +4191 +4699 +5371 +8196 +6254 +5557 +7918 +9556 +5044 +8914 +4025 +3927 +8362 +914 +2495 +8318 +8129 +6578 +4412 +203 +988 +8255 +9431 +5227 +4354 +5646 +2437 +221 +6271 +5892 +546 +8503 +2444 +5537 +9011 +5296 +6645 +5797 +18 +6986 +9039 +8180 +5082 +9993 +4726 +8940 +6403 +6170 +9838 +6751 +4421 +9473 +4372 +3467 +6531 +766 +1083 +6862 +3770 +5323 +9854 +5623 +8157 +5640 +6766 +630 +7625 +8631 +1050 +5822 +1169 +8311 +7406 +7213 +4688 +4330 +933 +2514 +2011 +1547 +5215 +3340 +468 +8131 +2119 +3835 +7763 +9706 +4094 +7686 +191 +3162 +1686 +7512 +8485 +6365 +4446 +7192 +5936 +2073 +4297 +8584 +6330 +3756 +9136 +7298 +7159 +1104 +1754 +1163 +4452 +7107 +86 +5736 +3991 +1650 +5791 +9893 +3443 +2616 +2860 +7641 +2283 +4768 +4384 +9212 +9966 +5801 +6438 +2334 +5803 +2760 +6610 +4998 +6888 +9882 +6187 +3444 +2782 +5010 +7015 +1639 +4864 +2751 +5026 +9802 +2361 +1206 +4929 +5961 +148 +358 +6155 +5620 +6716 +7462 +4338 +4730 +6169 +8382 +9751 +5305 +6259 +4811 +8009 +2824 +8037 +6605 +4926 +8938 +9762 +3024 +6163 +3358 +9494 +363 +5532 +4828 +2640 +7268 +6496 +2738 +812 +2467 +9319 +8297 +1641 +4579 +6999 +1155 +8440 +3749 +1972 +5887 +7259 +4901 +7472 +9611 +4983 +199 +5844 +9761 +5973 +2939 +6450 +682 +6606 +8035 +4252 +6080 +4169 +5248 +4342 +2293 +6832 +2289 +2207 +8697 +6964 +5838 +8413 +6718 +174 +6669 +4175 +2414 +8229 +949 +4748 +1617 +4410 +8339 +5527 +3821 +6506 +4551 +4651 +8795 +3033 +5238 +44 +8602 +3714 +4708 +757 +8257 +3858 +1256 +3640 +6320 +1932 +7960 +8549 +2892 +8326 +7253 +8909 +9379 +9085 +42 +8903 +2479 +2407 +6752 +5747 +5442 +1204 +1752 +6396 +7071 +2849 +2864 +3779 +3381 +9863 +6739 +8591 +2908 +5700 +6171 +9531 +3653 +8986 +3391 +6191 +8750 +5564 +8149 +2505 +6992 +9562 +8691 +814 +3771 +2716 +3793 +262 +6028 +571 +5848 +5928 +5536 +421 +7097 +6938 +4495 +2189 +2923 +4653 +7935 +9421 +9068 +4224 +7887 +9708 +5534 +2152 +3629 +2465 +9057 +180 +2916 +5948 +2515 +4222 +2083 +245 +3987 +157 +4401 +9509 +1296 +8119 +2405 +5937 +5073 +7741 +1011 +4202 +9989 +1502 +2585 +9177 +452 +4327 +7718 +5042 +5631 +8481 +3522 +123 +9477 +5632 +7746 +7679 +624 +6952 +9491 +5762 +2439 +3899 +2107 +9639 +9171 +8521 +5825 +8307 +2292 +1156 +9933 +3918 +1941 +7027 +8092 +9990 +4418 +7798 +8182 +1205 +435 +6162 +4058 +2203 +4125 +8890 +2830 +1652 +7857 +1845 +9828 +4712 +3050 +4922 +2969 +8955 +5675 +2249 +5513 +9 +8230 +7965 +7094 +4049 +1859 +486 +4800 +5085 +6708 +9812 +8472 +2386 +479 +6757 +3813 +5875 +7037 +2680 +4471 +1694 +3152 +4943 +1202 +1920 +9422 +6005 +9440 +2685 +811 +4143 +8329 +7636 +1854 +586 +668 +1590 +6351 +6893 +5987 +7152 +3287 +1081 +8911 +4954 +4369 +7581 +1836 +7621 +5342 +5414 +2275 +4457 +3424 +1566 +5798 +3417 +6429 +4631 +4857 +8731 +7825 +6608 +3826 +518 +9345 +7974 +491 +258 +8830 +9386 +2000 +6110 +9714 +9296 +3217 +8661 +6037 +3308 +2038 +7540 +6188 +4132 +1429 +1410 +8516 +473 +848 +6446 +8694 +6875 +7325 +5625 +8804 +2419 +725 +1153 +8565 +1727 +8158 +9397 +8115 +957 +1415 +736 +3323 +3126 +1225 +4971 +2949 +6105 +7035 +6662 +2609 +516 +7538 +5413 +3778 +9827 +8084 +6692 +17 +4021 +4891 +5624 +5106 +7855 +3957 +6677 +575 +7361 +5017 +5159 +41 +2185 +9599 +9399 +3452 +6970 +6033 +673 +9401 +4123 +8639 +9604 +913 +3517 +4067 +9743 +4619 +7221 +241 +4406 +5133 +3096 +5251 +8336 +8820 +7604 +6372 +6700 +9905 +948 +4008 +312 +27 +616 +2196 +4322 +559 +1927 +1264 +6922 +2607 +7443 +3806 +5559 +439 +8417 +7445 +3658 +9279 +7045 +3655 +6160 +4870 +1589 +8569 +2531 +4365 +2889 +7846 +1957 +644 +800 +4311 +1672 +222 +902 +305 +3685 +8295 +9858 +4969 +8741 +8389 +1616 +242 +2078 +137 +8641 +5482 +7992 +5181 +9291 +8345 +1903 +2116 +5363 +6715 +6559 +1553 +179 +9520 +121 +3239 +4152 +8438 +5526 +1444 +3642 +3870 +8982 +1620 +1611 +5084 +9030 +9260 +1811 +5924 +6093 +6819 +7032 +6806 +8959 +9585 +347 +4606 +1442 +6068 +5634 +1173 +6636 +7011 +991 +7001 +5923 +7242 +2614 +9088 +798 +3755 +6906 +3904 +612 +1600 +6247 +564 +7579 +8435 +2167 +6469 +1974 +5686 +490 +2794 +9492 +4847 +772 +6234 +6243 +9106 +2302 +1360 +5009 +2057 +2968 +3572 +1881 +6286 +6370 +1488 +9987 +1319 +1586 +3359 +4028 +6150 +5970 +2894 +3773 +1606 +6720 +1340 +8340 +8462 +7591 +5425 +2092 +6264 +3361 +7544 +856 +5687 +4515 +2200 +6021 +375 +1579 +9609 +4962 +4474 +4825 +4276 +3491 +9623 +3400 +6472 +4597 +5836 +5515 +7227 +4577 +1031 +6740 +7275 +467 +8270 +8662 +2622 +6060 +432 +992 +965 +7067 +5927 +1243 +7404 +6498 +4792 +8985 +1020 +7632 +930 +4956 +2269 +629 +4042 +318 +8747 +1561 +4810 +5033 +2349 +5491 +3337 +7899 +7961 +5846 +4979 +9600 +6183 +2087 +5339 +8442 +6329 +9899 +7527 +228 +4435 +93 +4171 +5024 +2604 +6764 +707 +6831 +1703 +3393 +5539 +1557 +3659 +8250 +1279 +8833 +4204 +7668 +7394 +8923 +2253 +6102 +7217 +6671 +8332 +5815 +6710 +4632 +7388 +71 +9393 +5610 +9712 +7710 +9015 +2319 +9956 +1550 +101 +4934 +7241 +1180 +4751 +2177 +8910 +5481 +5199 +3284 +5571 +3003 +7047 +2227 +2814 +2734 +4655 +2696 +3686 +1125 +5312 +7541 +9947 +9146 +2872 +5574 +2896 +1627 +8763 +5144 +5802 +5850 +9384 +8514 +3208 +4505 +1862 +487 +1346 +9048 +4826 +3274 +3828 +652 +7943 +1834 +1218 +1776 +8897 +5043 +1907 +6044 +2611 +4787 +8723 +4082 +7978 +2072 +3154 +9568 +2219 +4096 +69 +4905 +6494 +7618 +6529 +7149 +1893 +6774 +878 +4874 +4084 +7806 +3398 +7251 +680 +252 +7399 +5041 +3636 +726 +6443 +7299 +6295 +5424 +8523 +5723 +4603 +7257 +8613 +5233 +532 +455 +1576 +6156 +3616 +7493 +3579 +1879 +216 +4259 +2848 +5040 +6076 +650 +8258 +2590 +2721 +969 +3836 +6464 +9430 +2596 +4611 +3997 +5845 +7883 +6635 +250 +5326 +6575 +6682 +1769 +9270 +5806 +2233 +4037 +5293 +4000 +274 +8619 +5382 +4791 +530 +7684 +6505 +7392 +807 +563 +3559 +2509 +6486 +2708 +8659 +7864 +53 +1222 +1413 +8563 +1969 +7885 +4427 +9021 +1174 +7062 +3235 +4819 +5919 +3001 +4873 +8225 +7320 +7589 +8163 +3682 +2041 +9606 +956 +7568 +748 +4061 +8787 +9333 +2764 +2404 +7105 +2155 +6661 +7203 +4422 +2528 +5113 +7574 +1353 +9903 +1085 +9970 +2732 +4227 +1418 +6683 +4911 +8979 +2661 +9271 +9975 +6574 +958 +4555 +5452 +4451 +7989 +3298 +9942 +6262 +3141 +2192 +9699 +2059 +8215 +5986 +1241 +8403 +1069 +4003 +8650 +8699 +6824 +8361 +5712 +1538 +3297 +8463 +1588 +3996 +7025 +103 +2345 +2013 +8501 +8177 +6058 +297 +4114 +9801 +9361 +1794 +2563 +5240 +8445 +4431 +684 +3503 +6274 +1916 +2877 +2434 +5682 +696 +6915 +3175 +6463 +2138 +7373 +5468 +5307 +7762 +8245 +1448 +2381 +8331 +8537 +4600 +8681 +1747 +6371 +5679 +3833 +269 +1107 +2662 +664 +9457 +8419 +6860 +1268 +2815 +596 +7738 +8439 +2602 +9837 +6557 +2470 +2938 +6501 +1902 +8881 +4328 +7822 +5785 +6546 +3479 +2384 +6185 +7640 +3151 +3598 +8239 +6361 +2232 +6698 +7953 +3986 +7518 +1157 +7815 +8696 +533 +4904 +1215 +6091 +977 +1827 +1139 +8383 +5306 +6070 +2171 +1435 +4079 +2368 +7109 +4567 +2519 +2520 +5166 +9174 +1735 +8300 +158 +1798 +8112 +6278 +6019 +2017 +9715 +3844 +7323 +7489 +7296 +2787 +2216 +9210 +8304 +5880 +7737 +9859 +5168 +9740 +829 +6791 +8712 +5722 +543 +626 +8900 +5275 +4747 +3568 +6350 +6103 +1237 +4253 +2190 +727 +4877 +394 +8494 +249 +8579 +8796 +4923 +7378 +3291 +4753 +2453 +7459 +8853 +1106 +7834 +9242 +3256 +1891 +8793 +4612 +5713 +1417 +6910 +2474 +8164 +4629 +6771 +783 +3970 +3937 +1327 +3266 +3901 +9121 +5934 +4798 +6121 +5824 +3585 +6010 +8751 +6629 +5187 +6397 +2143 +6258 +1691 +1096 +6690 +708 +4942 +4793 +9102 +9508 +8343 +2389 +6172 +3982 +4168 +7748 +2547 +1857 +337 +7247 +6566 +7426 +9108 +7560 +1651 +7515 +9417 +994 +5565 +1152 +2212 +3962 +5533 +5149 +1702 +1673 +5132 +407 +3495 +6380 +7379 +9067 +92 +7141 +4031 +731 +917 +2871 +9833 +6072 +8272 +7401 +1212 +3905 +1126 +7081 +5239 +4516 +3339 +3056 +7230 +2975 +472 +9349 +9419 +2027 +3829 +4932 +2648 +5659 +3785 +5346 +520 +4547 +6585 +8143 +7607 +7429 +306 +1671 +2446 +379 +9733 +5951 +1453 +3454 +3848 +5514 +4725 +5965 +7910 +3963 +7669 +3684 +6356 +2778 +9120 +6553 +3884 +7898 +5427 +872 +5486 +5617 +4839 +7753 +8965 +855 +5602 +9075 +8025 +6285 +3822 +2084 +8721 +1594 +3410 +5172 +8995 +4163 +7474 +470 +7465 +6009 +9653 +2053 +2220 +7734 +1142 +5400 +8256 +3732 +9294 +7145 +6674 +1783 +9234 +3108 +505 +6600 +1302 +6647 +7670 +8607 +8649 +3223 +6800 +8126 +7329 +1141 +8889 +1299 +1970 +3594 +1431 +6593 +2659 +5257 +9334 +5102 +6339 +3062 +5436 +7334 +5002 +3632 +315 +6272 +1603 +2096 +2854 +309 +1445 +4543 +4340 +8184 +9846 +7971 +6595 +1989 +1655 +6703 +2567 +3780 +2015 +4717 +8860 +6887 +4731 +4428 +1498 +7678 +3247 +2037 +3757 +7547 +4144 +8886 +9274 +3762 +6141 +6676 +8934 +7425 +6124 +1923 +1201 +2430 +9137 +6359 +2857 +8155 +5322 +260 +7243 +1929 +1555 +3973 +3504 +4851 +1519 +4265 +9911 +9005 +5207 +9616 +6445 +2891 +5302 +9134 +8353 +304 +5432 +5234 +2503 +8703 +6082 +4796 +9284 +9043 +2088 +5502 +8730 +8665 +7103 +4054 +873 +6487 +9834 +3267 +1027 +8541 +5885 +1755 +5558 +3226 +5441 +7137 +781 +9997 +8466 +1179 +1621 +9922 +6422 +6579 +8821 +9602 +9288 +8684 +5137 +3349 +6244 +6509 +1841 +1933 +7214 +2945 +8422 +4816 +445 +3272 +2584 +4833 +7089 +4522 +1664 +9362 +4382 +1699 +319 +1078 +4549 +7355 +7155 +8974 +4649 +7714 +2695 +7453 +1482 +7461 +3348 +291 +5992 +3234 +4893 +8866 +6342 +7919 +2781 +1569 +2838 +7865 +2496 +6857 +4590 +5754 +8597 +8405 +1059 +7455 +3688 +7559 +5330 +2047 +1387 +5548 +5841 +9119 +6497 +9702 +3411 +6892 +3290 +6214 +6067 +882 +6106 +5201 +5138 +2693 +6167 +7339 +3558 +6982 +5368 +187 +3123 +5447 +6299 +3460 +2704 +6357 +923 +5946 +4070 +6117 +6104 +3548 +1108 +8828 +1455 +3353 +7146 +3825 +1433 +212 +3336 +9866 +9182 +1324 +90 +3040 +8294 +5444 +5037 +7108 +2982 +618 +6741 +6147 +691 +2656 +9488 +9245 +4801 +4072 +9454 +1682 +7922 +6644 +9594 +4167 +6158 +8573 +1405 +8539 +1520 +1292 +9053 +5211 +4641 +9163 +2398 +7984 +2416 +6776 +220 +3047 +3098 +5443 +1406 +5720 +8334 +628 +149 +1726 +5343 +9792 +8829 +9511 +8606 +2355 +7966 +9411 +4341 +7619 +922 +8961 +6327 +2713 +7344 +9033 +3977 +1055 +3321 +7647 +1833 +3710 +1401 +4381 +5953 +1250 +2054 +2526 +2435 +3796 +2455 +2811 +8491 +1864 +7758 +9593 +2688 +4510 +1071 +4953 +9596 +4915 +7294 +7497 +868 +5263 +7787 +7546 +9065 +1779 +9070 +6834 +7725 +4394 +3969 +8720 +1060 +2263 +2866 +6431 +3404 +3199 +7525 +1874 +635 +1737 +9124 +6003 +5421 +899 +2641 +8058 +8283 +8807 +9813 +4529 +4530 +2770 +2574 +8825 +8490 +767 +248 +7716 +6069 +8623 +1470 +1331 +7319 +6137 +1467 +6897 +5156 +2703 +4476 +4226 +6488 +9493 +4975 +1240 +9789 +8443 +2308 +674 +9597 +3955 +4661 +3631 +5112 +9204 +2423 +6827 +442 +6229 +235 +1787 +9654 +3744 +2287 +5375 +6729 +3683 +7132 +8992 +7266 +9547 +9548 +5517 +1079 +2026 +4508 +7318 +498 +6201 +4487 +2322 +7582 +1947 +6256 +7366 +7888 +8465 +6737 +3215 +6503 +3906 +5429 +6780 +683 +4623 +2657 +8644 +2461 +3375 +3448 +8176 +2886 +9677 +3972 +9468 +6836 +1850 +5365 +39 +8950 +2727 +5454 +5393 +8170 +9855 +2112 +3019 +5449 +5145 +63 +3466 +9658 +7431 +7529 +895 +2541 +3066 +7098 +5204 +5511 +2082 +9794 +6107 +8038 +8582 +1585 +5772 +610 +4795 +4186 +9020 +5184 +7316 +4824 +5764 +3265 +1492 +9636 +5319 +5111 +5778 +6248 +1221 +4335 +5039 +3373 +2619 +369 +7688 +392 +5268 +1408 +2952 +1527 +2318 +6872 +2211 +4195 +1529 +3118 +5581 +8291 +5669 +336 +2631 +7720 +1226 +1314 +2300 +8253 +2135 +2630 +9159 +2741 +2902 +9111 +7701 +6374 +2352 +6504 +9265 +9824 +7845 +3255 +6765 +9275 +3408 +2358 +1825 +1194 +1599 +7202 +3865 +9381 +6921 +7039 +7795 +6146 +7006 +6013 +6483 +5612 +847 +8067 +2153 +4562 +6263 +7072 +4373 +6222 +5318 +3475 +7070 +3643 +7630 +2540 +4310 +167 +1990 +6814 +4539 +523 +8743 +5344 +5185 +3082 +6014 +4398 +5655 +5944 +443 +5813 +6898 +1022 +6614 +9498 +5379 +1899 +1533 +3281 +2755 +9127 +9441 +5050 +7055 +7114 +7324 +3515 +6562 +9634 +7099 +4670 +6638 +5974 +9483 +3220 +9082 +9726 +4694 +1192 +9383 +903 +9103 +9533 +4007 +5388 +3127 +4809 +5830 +7304 +3221 +3229 +4014 +5546 +1377 +1403 +4677 +359 +60 +645 +8424 +4734 +5735 +6441 +9888 +5522 +5999 +5666 +3587 +7542 +8455 +8243 +1259 +9195 +6212 +2394 +130 +2445 +4363 +2942 +9079 +7166 +8651 +5216 +7994 +412 +4013 +1736 +1122 +1451 +2865 +7659 +9169 +5298 +1922 +4553 +7222 +4156 +4011 +3670 +8937 +5269 +3248 +3883 +4064 +6241 +5975 +1896 +8016 +2885 +950 +5658 +2568 +6930 +1683 +9385 +7510 +8984 +9722 +1995 +2473 +7156 +6391 +6796 +1191 +7610 +1251 +5688 +3673 +6048 +887 +8314 +96 +5879 +5751 +4944 +2706 +2900 +2512 +2776 +6848 +2166 +7204 +9727 +8994 +3493 +6787 +5786 +5313 +8899 +8951 +6407 +7410 +7783 +320 +9436 +4775 +637 +9984 +6133 +5021 +3147 +6038 +5657 +6115 +7059 +2400 +8614 +4837 +5988 +5196 +136 +1304 +4201 +9779 +1613 +1931 +3081 +2646 +8421 +7750 +1610 +9582 +5315 +9466 +2066 +6024 +3271 +4162 +3238 +135 +7808 +4584 +3634 +1523 +2973 +7122 +3133 +6881 +5487 +451 +528 +9515 +9223 +4745 +7648 +8526 +5709 +26 +3857 +3765 +987 +330 +7358 +8625 +9093 +7768 +9484 +7611 +6319 +3974 +1181 +5495 +2870 +2223 +7957 +3333 +4575 +2775 +1080 +5157 +8467 +4738 +8145 +6255 +8344 +9563 +1799 +1885 +5689 +8622 +1242 +6565 +5660 +1499 +1309 +7650 +5380 +7469 +1734 +1138 +367 +1966 +5287 +1162 +6322 +7284 +6687 +205 +1805 +8559 +1318 +5386 +2855 +2109 +8045 +2958 +3671 +5871 +7223 +9183 +4613 +6540 +2125 +1494 +4494 +4364 +634 +7934 +6059 +7215 +1993 +8770 +8251 +8369 +7478 +5567 +4500 +9770 +9475 +1644 +5229 +8428 +5630 +6798 +7569 +1951 +9000 +2147 +6168 +9369 +2248 +8525 +1839 +7139 +5490 +9209 +4552 +4419 +4166 +5349 +3931 +8594 +7702 +8812 +6817 +9211 +9380 +5121 +1074 +5523 +6502 +280 +7338 +3341 +5280 +9690 +569 +234 +3157 +8768 +5662 +1634 +9426 +7866 +6577 +7744 +9545 +5819 +6799 +5598 +6043 +6920 +3120 +7124 +9559 +1705 +7430 +5341 +7150 +6802 +6096 +3409 +237 +5091 +1706 +6269 +5599 +5467 +3635 +1026 +7571 +8151 +2506 +8577 +911 +8475 +1393 +5415 +926 +3866 +5600 +6353 +3200 +799 +667 +8174 +5997 +5695 +6721 +9962 +1636 +7773 +524 +6702 +8140 +9113 +6211 +3494 +9479 +1653 +9631 +2188 +5853 +9308 +6209 +4408 +9645 +2428 +7486 +4223 +5717 +9808 +6975 +1487 +2726 +8235 +416 +1366 +7586 +8204 +1088 +1646 +3809 +2720 +5195 +8127 +7224 +2581 +5626 +6847 +3764 +9495 +4512 +7680 +1358 +6029 +2711 +5715 +1441 +6767 +7881 +5651 +7286 +8841 +4958 +1708 +8803 +2456 +2573 +6763 +8387 +2095 +7100 +815 +4848 +2692 +8713 +6760 +3560 +9848 +5730 +6455 +3378 +4399 +9277 +7793 +1028 +8015 +6977 +8021 +7270 +5321 +4777 +1382 +863 +6026 +4295 +4898 +3549 +9448 +6861 +3917 +8263 +7360 +6405 +9252 +6207 +6792 +4379 +3074 +3218 +3112 +3227 +8729 +3576 +403 +4137 +1816 +3871 +3363 +7354 +2426 +7285 +749 +3094 +9785 +7287 +1458 +4852 +4323 +7656 +4464 +5639 +6704 +7797 +1407 +6307 +4679 +8773 +7576 +5954 +2375 +9974 +6762 +1531 +1175 +6627 +3743 +4568 +8928 +6878 +6733 +6596 +384 +7033 +7995 +9598 +5509 +7914 +5860 +5316 +9351 +8365 +7291 +4646 +7028 +9465 +6615 +3975 +213 +9754 +2390 +6323 +5550 +7556 +8529 +7819 +9832 +6066 +1780 +3885 +6300 +6055 +6841 +5765 +6413 +7414 +2214 +8060 +8993 +4029 +663 +8370 +7198 +4849 +9055 +273 +3626 +77 +64 +3252 +4585 +1977 +7128 +8098 +7052 +122 +45 +2259 +7635 +5585 +1427 +9409 +6865 +3877 +9497 +5950 +1450 +2099 +9878 +5716 +5608 +7313 +8524 +7041 +4449 +2784 +3320 +1227 +65 +3071 +2678 +8317 +2387 +6025 +3051 +7201 +8538 +3879 +2477 +4387 +9736 +1844 +7842 +1255 +9287 +4304 +4434 +8707 +9710 +1301 +6932 +3435 +9800 +6519 +4704 +3351 +7601 +1262 +9814 +2046 +7300 +1895 +9459 +75 +3696 +6979 +1143 +3759 +238 +9902 +4736 +6849 +1711 +6417 +7349 +2193 +7272 +1176 +5857 +8096 +9505 +8810 +6948 +2699 +2480 +8203 +8001 +4119 +5506 +9167 +4477 +8652 +6750 +8653 +8003 +8113 +3990 +7696 +58 +8973 +7598 +8168 +2309 +2310 +4285 +6265 +6588 +6368 +4324 +7523 +7077 +6630 +4443 +2767 +8484 +3219 +2845 +5768 +2162 +1434 +7110 +9719 +1991 +3055 +5006 +6490 +6246 +2677 +576 +3142 +898 +7909 +371 +8434 +2012 +4759 +1330 +865 +4769 +3507 +7158 +2500 +5458 +8330 +165 +6957 +1637 +5734 +8425 +8008 +9199 +1374 +5985 +5670 +3023 +962 +4088 +2679 +1882 +2379 +724 +1988 +2535 +544 +702 +8879 +5693 +8557 +3395 +61 +4350 +8815 +5895 +8050 +4822 +2075 +7168 +6730 +3106 +3384 +5878 +2562 +108 +3054 +1253 +6321 +6347 +7433 +5136 +5213 +4991 +6736 +4548 +3693 +6795 +4334 +4078 +2876 +6639 +2882 +7049 +2045 +3289 +5771 +4702 +9781 +3578 +3105 +9557 +1124 +1601 +5407 +1985 +3593 +4645 +3273 +4172 +536 +3530 +5877 +9857 +7927 +777 +5556 +7605 +4569 +9797 +8600 +7454 +8708 +9825 +2663 +9626 +2036 +6934 +4889 +2610 +8401 +6965 +7463 +4095 +4120 +7113 +8749 +4976 +6732 +5588 +8350 +2296 +7654 +8617 +6853 +3754 +4493 +8298 +259 +7728 +7193 +7754 +173 +5370 +8356 +1288 +5505 +6292 +7352 +6253 +8823 +7917 +3140 +3490 +7536 +1486 +7280 +5340 +9001 +5356 +8891 +5471 +3185 +8217 +4861 +6675 +6221 +8635 +6554 +8454 +9100 +7413 +1720 +621 +8603 +908 +2818 +4697 +8693 +7884 +6670 +6609 +9343 +8323 +3053 +1423 +3936 +8883 +7785 +7979 +6410 +4459 +2222 +6781 +117 +2681 +2822 +9467 +7218 +1858 +4525 +1525 +4110 +4996 +6416 +3786 +4999 +2264 +7021 +2558 +6650 +9718 +6439 +5047 +3699 +9109 +2260 +5140 +419 +4517 +6381 +802 +9131 +4910 +5553 +4039 +8211 +8088 +6643 +2753 +3838 +4657 +1272 +1363 +8898 +7491 +183 +549 +3496 +2875 +7402 +9790 +2286 +219 +4425 +4056 +6871 +115 +8122 +7987 +7136 +5083 +9449 +8504 +4402 +7602 +7981 +8269 +821 +3566 +5029 +4416 +6311 +1014 +4288 +2517 +7483 +8146 +2451 +461 +1217 +8396 +7342 +12 +3597 +4546 +76 +9285 +2187 +2533 +1463 +9370 +8464 +9437 +6543 +592 +6180 +2576 +2380 +1804 +4388 +7449 +1979 +2031 +6927 +5607 +6477 +9266 +3665 +9217 +758 +2284 +4267 +8737 +8621 +9748 +2869 +6542 +6933 +4506 +2873 +2763 +9101 +3111 +3035 +960 +7786 +5520 +871 +607 +1522 +9657 +3121 +31 +8214 +2756 +3207 +1207 +6995 +3474 +357 +3259 +4909 +7085 +8139 +6138 +9994 +2513 +7854 +8192 +6448 +3305 +9967 +4461 +2539 +5173 +1618 +7273 +6936 +9675 +4586 +8070 +6315 +5472 +5910 +3966 +9196 +9231 +8223 +9267 +1211 +9303 +3911 +2820 +7205 +5759 +7450 +8947 +6631 +4659 +2044 +886 +4886 +2737 +3205 +9232 +6591 +8856 +8685 +1129 +4535 +227 +1552 +9392 +1536 +81 +9819 +906 +4332 +5094 +9627 +9886 +2354 +209 +7778 +1658 +1040 +4960 +5158 +6499 +7653 +8679 +1384 +3768 +4620 +7784 +1098 +7391 +1235 +2127 +3985 +6822 +1229 +6400 +3237 +8315 +4841 +2410 +6617 +8656 +891 +4349 +3691 +4087 +8351 +7438 +270 +4208 +6252 +5525 +6942 +8392 +9679 +9044 +4478 +328 +7177 +2828 +6355 +5943 +7315 +5597 +751 +5203 +7530 +4139 +399 +5160 +8099 +4439 +7869 +7972 +9752 +8407 +2483 +1478 +6123 +7327 +2411 +7593 +9767 +404 +5897 +8002 +6761 +2543 +5868 +5941 +5092 +6181 +8240 +7580 +854 +5394 +4762 +8806 +9895 +1094 +6786 +782 +9331 +2460 +3581 +2946 +2257 +8493 +7195 +1953 +7147 +947 +9971 +5119 +99 +343 +5126 +768 +3115 +1900 +662 +8414 +8705 +7612 +3332 +9514 +4868 +9539 +6532 +7967 +5192 +3891 +7608 +8410 +1034 +6219 +9909 +8244 +2754 +9429 +3240 +3488 +9745 +9408 +7575 +8790 +1872 +9051 +6516 +5969 +3869 +7209 +8780 +3425 +4233 +6838 +7707 +778 +85 +3317 +3574 +3173 +391 +8735 +1730 +1700 +2593 +6641 +7986 +3713 +290 +6560 +608 +4781 +2240 +9014 +1390 +9152 +3998 +4400 +5107 +9337 +3099 +669 +5260 +9358 +8320 +3509 +5609 +387 +4947 +2279 +3310 +9478 +4907 +3130 +4409 +6404 +5178 +2141 +3463 +46 +6140 +1659 +9968 +6015 +4432 +5314 +6746 +3795 +5259 +4752 +9843 +1483 +2397 +5994 +402 +6073 +5059 +1744 +5464 +8476 +8233 +2462 +3225 +1987 +5811 +4395 +3136 +2658 +7345 +6545 +9298 +3946 +2172 +972 +3513 +8431 +655 +3596 +5577 +9951 +3889 +5692 +2154 +996 +1587 +5123 +9943 +8046 +4430 +2799 +5046 +1516 +7692 +4444 +8633 +4896 +4272 +3854 +6937 +8570 +3334 +5146 +8756 +4423 +6951 +8347 +1466 +7911 +1029 +6923 +3750 +8561 +6655 +976 +1541 +7010 +1638 +719 +4690 +6242 +1873 +816 +333 +573 +9920 +1090 +7208 +5812 +1099 +440 +3767 +6632 +8628 +2821 +5810 +9414 +7019 +1335 +7022 +1200 +6567 +8758 +7677 +2878 +4250 +2880 +3846 +8546 +9300 +7409 +5422 +7516 +9158 +8205 +8680 +7675 +2555 +7502 +9530 +9862 +8292 +3887 +9028 +6305 +7018 +8576 +6442 +2353 +8837 +3880 +3900 +150 +7451 +5864 +8962 +6007 +348 +8941 +8945 +4950 +2068 +8013 +3367 +3216 +7181 +2998 +7457 +3849 +6384 +2132 +6657 +4757 +5153 +7685 +2492 +4063 +4635 +7733 +84 +3563 +822 +6174 +8660 +7216 +4026 +8130 +1775 +2217 +5605 +1105 +4742 +2122 +1667 +4728 +9755 +3268 +6205 +295 +5893 +3270 +8199 +4404 +8920 +7839 +87 +2499 +6940 +5872 +2215 +3149 +6620 +7699 +5972 +6960 +5278 +8605 +4836 +4407 +7739 +293 +3030 +7256 +141 +1121 +5586 +6783 +1469 +9717 +2565 +3458 +3863 +8586 +4758 +9674 +16 +4808 +376 +6334 +5418 +7655 +6810 +675 +646 +2965 +6129 +9746 +4498 +5023 +7165 +5477 +1503 +177 +9908 +159 +9809 +2684 +6437 +9590 +8277 +6618 +4346 +5508 +3519 +3426 +4952 +7078 +752 +3212 +1840 +4018 +8595 +8359 +5767 +8487 +6267 +7369 +9188 +1185 +3304 +7926 +9659 +6695 +1511 +230 +7374 +7091 +5677 +7534 +2859 +7665 +2739 +2161 +2962 +6317 +7236 +8983 +7258 +7279 +5164 +4280 +9628 +4622 +5641 +9191 +3309 +4359 +232 +132 +8219 +9029 +7353 +2016 +3553 +1837 +6998 +9612 +7663 +6656 +870 +9063 +5034 +2070 +4055 +8764 +6829 +8831 +3330 +9206 +2 +941 +8167 +1631 +8254 +1513 +1165 +6435 +278 +2529 +1668 +6064 +4673 +5847 +8776 +2638 +1117 +4692 +671 +5225 +4665 +9077 +943 +9262 +7441 +5152 +466 +7135 +2986 +5865 +352 +8333 +5528 +8953 +5966 +2245 +3722 +1493 +9400 +4071 +5411 +884 +588 +4626 +964 +3959 +5016 +9821 +7376 +9375 +8590 +1490 +302 +1905 +7437 +5741 +531 +2936 +8368 +8510 +8654 +128 +9805 +3016 +2436 +3179 +7790 +9879 +381 +9669 +1501 +4069 +263 +3483 +1712 +3551 +928 +9884 +8148 +70 +1459 +6900 +9637 +5637 +1402 +4426 +5169 +5507 +1884 +5430 +35 +4180 +4182 +231 +8771 +6895 +8486 +6228 +254 +1306 +2055 +732 +8349 +3924 +460 +308 +2301 +3043 +2157 +1412 +8511 +8047 +6973 +8453 +5956 +8666 +2347 +8114 +5644 +9757 +4290 +1159 +3369 +2841 +1365 +9693 +1261 +6131 +566 +7264 +9730 +1182 +201 +7590 +4576 +4607 +2005 +8858 +4091 +3386 +9818 +687 +7308 +2364 +1695 +6484 +3647 +9327 +5334 +4059 +774 +6088 +6984 +2230 +9776 +7154 +5162 +8517 +6099 +9692 +2268 +9394 +2867 +6889 +8197 +538 +3125 +9157 +9914 +9081 +963 +9807 +7901 +7310 +2175 +5135 +7687 +4640 +8056 +5578 +7153 +1751 +3944 +659 +1364 +480 +7791 +2940 +4176 +9651 +9873 +5603 +7504 +8023 +2369 +4377 +5212 +6280 +349 +7970 +7330 +940 +4355 +8933 +6833 +9610 +6206 +4744 +9237 +7606 +5560 +474 +11 +7976 +9896 +3633 +6453 +7125 +5913 +9192 +2825 +6125 +1546 +6017 +2907 +2427 +2062 +1092 +8678 +9084 +6826 +3804 +5446 +346 +4685 +5795 +3430 +3005 +7836 +277 +9073 +3799 +1091 +3011 +1077 +4386 +9900 +600 +1943 +6240 +1373 +3078 +7930 +6821 +697 +2403 +633 +7524 +3044 +5748 +9179 +3667 +6287 +4173 +1704 +4550 +6231 +8341 +4964 +446 +8664 +599 +692 +4235 +6967 +3923 +8062 +5665 +6473 +5450 +3980 +9089 +641 +6535 +8210 +2647 +9126 +8884 +2340 +3609 +8687 +9815 +9799 +9999 +36 +6481 +4270 +4271 +324 +6839 +2941 +9941 +8066 +2743 +72 +8963 +6599 +5635 +9978 +729 +2750 +3707 +4789 +4491 +5856 +4440 +8578 +7008 +5535 +7473 +133 +1773 +5732 +744 +7551 +9570 +955 +2331 +9472 +8531 +6041 +5958 +5917 +2749 +8970 +8532 +9806 +9640 +8106 +5357 +9881 +9382 +6232 +4296 +8921 +890 +2458 +206 +5738 +909 +8571 +7444 +4511 +2204 +9793 +5013 +6225 +189 +7843 +951 +8572 +7210 +9897 +595 +1249 +1266 +354 +3907 +2150 +4580 +2806 +9877 +2992 +4844 +8980 +9750 +7802 +3279 +4287 +6717 +9667 +2887 +4101 +8144 +3286 +8759 +3165 +6536 +6726 +2117 +3293 +7769 +9243 +8878 +9122 +1414 +3735 +176 +5554 +492 +8108 +9391 +2373 +8802 +1830 +5163 +5843 +9249 +1758 +6980 +8372 +8507 +4662 +1537 +6012 +7780 +1936 +4680 +6199 +4251 +9701 +2126 +6461 +3198 +6118 +6136 +1113 +3021 +9867 +1807 +2813 +5088 +3131 +4313 +8632 +7757 +4316 +2180 +8274 +7983 +7882 +9632 +9458 +7265 +8237 +8710 +195 +9519 +3006 +1582 +8875 +89 +8520 +9560 +3166 +1886 +6485 +5834 +5361 +6520 +9764 +3935 +413 +3100 +7962 +3981 +9147 +9323 +3607 +6218 +9804 +3181 +8753 +9438 +9676 +7522 +3186 +7743 +1160 +9226 +7558 +2664 +9777 +6680 +7672 +8894 +5922 +9281 +6945 +3845 +7095 +2560 +7004 +4900 +3540 +8500 +9786 +3471 +7233 +7577 +8675 +1607 +2786 +2800 +3637 +3439 +7370 +7613 +1371 +9615 +5552 +6909 +3746 +688 +5005 +3893 +3531 +9822 +8585 +7148 +3450 +3613 +7368 +7956 +1997 +761 +8018 +5171 +9682 +8548 +8942 +935 +3524 +8426 +1948 +5311 +7973 +8657 +1913 +1063 +5749 +7837 +9542 +8671 +9643 +1876 +6830 +5333 +350 +1281 +119 +8022 +9008 +4089 +2730 +6062 +2169 +4518 +6379 +7539 +4077 +285 +9823 +3511 +401 +6050 +131 +1506 +4128 +4671 +9906 +1134 +2961 +1233 +4982 +4881 +8195 +3909 +271 +5381 +2979 +7084 +1526 +8135 +3692 +2534 +2957 +4895 +3319 +3697 +9589 +2569 +6604 +6250 +4558 +8733 +7799 +2006 +1359 +109 +4617 +8842 +5057 +8033 +9510 +7075 +94 +9621 +8716 +9601 +8153 +9769 +8863 +3590 +5128 +681 +9027 +8133 +2954 +1793 +6200 +6633 +1209 +8075 +6157 +8418 +796 +9155 +3045 +5108 +4499 +6925 +5991 +860 +7069 +2847 +4192 +8670 +3022 +2244 +4065 +3896 +8366 +8404 +7821 +2326 +6919 +9250 +9567 +1351 +7721 +5389 +9016 +9264 +9735 +2494 +1562 +303 +6480 +9652 +1456 +6294 +8767 +7596 +2718 +1133 +1228 +7398 +8437 +7585 +5728 +6738 +8535 +3075 +9696 +8522 +3812 +6961 +7305 +5837 +8744 +5350 +8629 +555 +3421 +2744 +4858 +1115 +5403 +8528 +361 +6807 +7937 +9836 +335 +1350 +233 +4903 +3603 +9723 +8267 +1888 +4390 +2643 +619 +8545 +316 +9694 +7375 +2922 +7706 +7774 +6006 +8553 +4136 +7419 +4138 +3203 +2159 +268 +1986 +5431 +6 +5918 +8932 +9558 +4001 +7237 +4656 +6065 +6040 +6754 +7219 +1496 +7229 +4199 +1004 +6725 +7347 +5756 +2151 +6753 +4066 +1937 +3728 +6929 +6022 +1067 +6276 +1983 +2850 +9758 +1910 +6159 +1054 +8478 +8540 +905 +9463 +2810 +693 +284 +7835 +7890 +8360 +1016 +3084 +7514 +2421 +4520 +8118 +9646 +7573 +7220 +8739 +2601 +411 +5455 +699 +5849 +5036 +4961 +8109 +9976 +4595 +9099 +2912 +5745 +3168 +1497 +4300 +7012 +6119 +9201 +1544 +1883 +3790 +9698 +7519 +6602 +6385 +2370 +5916 +1084 +1164 +7432 +8630 +1959 +6433 +5053 +676 +6903 +294 +2788 +7440 +8917 +2128 +3902 +3158 +8026 +4189 +4687 +6840 +5338 +2898 +5332 +6318 +8273 +1800 +5547 +7038 +6958 +6051 +764 +2637 +8090 +1831 +3729 +8117 +3645 +9301 +3500 +722 +8282 +6525 +8091 +6530 +5616 +433 +8296 +19 +6812 +4921 +8385 +4930 +6759 +1344 +6367 +5959 +8242 +2337 +9583 +3036 +3445 +3261 +2639 +6667 +2065 +5750 +9969 +1954 +9584 +4475 +8152 +7026 +2205 +9141 +6694 +6699 +6210 +8080 +2071 +56 +3625 +852 +7423 +1303 +9577 +4211 +1796 +3318 +1277 +2385 +7756 +6905 +7944 +8838 +9293 +3550 +9864 +9434 +6510 +9092 +4565 +1376 +5614 +1127 +3423 +5955 +7333 +2443 +8161 +1693 +2966 +1710 +1791 +178 +9537 +1048 +4593 +508 +138 +6079 +3763 +310 +7238 +5726 +424 +547 +9363 +8420 +6236 +9608 +3246 +8247 +2507 +4834 +6387 +3674 +7314 +1759 +9950 +8728 +8515 +3086 +3657 +756 +9683 +1147 +2168 +8497 +6858 +9820 +5242 +8241 +3129 +3615 +8925 +1532 +2651 +2160 +8123 +8683 +6538 +1290 +7803 +8566 +8845 +4269 +5733 +8031 +1416 +9784 +9992 +344 +1580 +3329 +9566 +6996 +3324 +5081 +7889 +9517 +8147 +9031 +7751 +8777 +7377 +2928 +6277 +6842 +6912 +8083 +4062 +1512 +155 +4779 +8700 +7281 +4838 +8791 +4118 +3600 +5652 +5672 +4542 +938 +6971 +6587 +3649 +5674 +198 +1551 +9350 +464 +7587 +1437 +4739 +9165 +3459 +844 +1443 +1723 +7167 +2042 +8100 +2817 +9816 +2105 +6465 +8186 +896 +6818 +9741 +6691 +7936 +8137 +5883 +3588 +5727 +5070 +7954 +4974 +9342 +5243 +3253 +3694 +6517 +5410 +9013 +3406 +2701 +1073 +3462 +6175 +8209 +1665 +8328 +5697 +8134 +6685 +4090 +703 +7993 +776 +3761 +9944 +8642 +5938 +967 +7871 +550 +9605 +8474 +5383 +6917 +8682 +2255 +8977 +3704 +602 +7 +8922 +5805 +5998 +1276 +1630 +825 +9433 +8302 +931 +8822 +2862 +7570 +627 +6452 +6844 +7711 +5615 +2101 +8430 +881 +3882 +5596 +7969 +7175 +2600 +9704 +5699 +2231 +5408 +154 +7371 +4842 +8043 +436 +7207 +6249 +7975 +7595 +3197 +5080 +8082 +670 +4458 +8785 +4719 +5859 +3174 +1247 +6135 +5272 +4017 +785 +5072 +430 +8290 +2382 +7730 +9025 +9214 +9403 +9684 +4566 +7767 +657 +6340 +7417 +9912 +932 +2930 +5402 +3810 +218 +9891 +8669 +1596 +2324 +3571 +9826 +5579 +373 +9396 +9817 +8601 +9840 +311 +2909 +9139 +9485 +9664 +3541 +6491 +9728 +9572 +9780 +8492 +3890 +8558 +7263 +7480 +3617 +5611 +4772 +9372 +6086 +8736 +9709 +127 +8725 +457 +7880 +299 +5861 +8029 +5618 +4027 +9338 +6625 +5668 +3192 +8142 +2424 +5831 +6061 +2097 +9241 +6978 +3113 +5277 +8677 +4124 +6436 +8301 +390 +7622 +8104 +7578 +1660 +5783 +9129 +3958 +1998 +9487 +8919 +7194 +9022 +2482 +1564 +9086 +4693 +8039 +8709 +9233 +837 +4746 +8799 +4075 +6493 +7292 +8901 +7271 +9190 +426 +9026 +517 +7050 +55 +1767 +6963 +5774 +6518 +7620 +5906 +2449 +8813 +7013 +8927 +3354 +1717 +1367 +7188 +561 +7063 +4560 +2839 +2076 +8551 +6748 +5899 +7735 +289 +6522 +5390 +2485 +8498 +7761 +5671 +8121 +750 +1565 +342 +6991 +8105 +264 +1716 +153 +2771 +3469 +6584 +8663 +9841 +7807 +4977 +1480 +5090 +2291 +3110 +9571 +8220 +4177 +3135 +9415 +6649 +8402 +7623 +2544 +7876 +6314 +8097 +2789 +9389 +2777 +6908 +7823 +8226 +3831 +7051 +4367 +3204 +6851 +3063 +3827 +603 +6850 +6233 +408 +3731 +9919 +5676 +5131 +7693 +3383 +1362 +7867 +3919 +1897 +2469 +5030 +8781 +5814 +7180 +8971 +985 +9461 +9066 +3621 +9856 +3476 +2580 +8271 +2432 +6582 +3020 +9325 +197 +8593 +83 +4024 +7658 +4587 +1298 +7848 +5115 +9280 +2963 +243 +6877 +1728 +2791 +9299 +9603 +7276 +9213 +7904 +7060 +7250 +4174 +8276 +4085 +3717 +441 +4303 +3940 +7248 +6611 +5028 +9513 +904 +8827 +2321 +3342 +4374 +8798 +1161 +3015 +4767 +2277 +4871 +8695 +2564 +4882 +3414 +4022 +5902 +3898 +8949 +9322 +2422 +8128 +5064 +5518 +2440 +2829 +7552 +9138 +8181 +7690 +4686 +7817 +4574 +966 +9205 +6326 +9352 +3 +8745 +5792 +5406 +979 +9371 +2266 +6880 +5221 +469 +5167 +5555 +8715 +6388 +7357 +2464 +5929 +217 +7289 +1199 +3343 +7537 +7942 +9320 +968 +8193 +7161 +7691 +712 +9665 +8448 +849 +6011 +7073 +8179 +6551 +6701 +5252 +3814 +6990 +2731 +4030 +2856 +9052 +3315 +4700 +6693 +1136 +8231 +8111 +9170 +9313 +1778 +2344 +8006 +4766 +9732 +2522 +2974 +4361 +9377 +2798 +22 +1745 +2559 +7617 +8939 +3908 +879 +475 +1345 +7642 +7831 +4413 +1326 +9522 +1629 +8000 +8864 +4035 +8915 +4103 +3160 +7629 +9097 +9798 +5228 +1971 +2970 +7985 +4098 +1608 +1772 +8872 +6681 +8946 +3470 +1838 +8159 +1675 +8299 +6383 +5742 +5304 +6462 +1965 +1114 +4121 +6145 +5416 +3738 +6149 +415 +3487 +9255 +3777 +4890 +8757 +4936 +4948 +7742 +4589 +1072 +7341 +325 +62 +1731 +3193 +794 +1383 +7427 +8592 +1057 +8615 +4788 +4299 +6457 +4866 +8459 +8746 +8116 +8221 +2652 +6008 +1934 +3689 +4912 +2272 +2091 +8533 +9328 +9644 +6526 +2691 +105 +1039 +5049 +9258 +8358 +313 +1052 +2955 +3501 +95 +6537 +3380 +7471 +9390 +9633 +1097 +8322 +1426 +6672 +9580 +323 +1238 +2903 +3032 +5947 +6637 +3752 +1116 +1788 +8575 +6154 +6539 +6378 +9918 +4968 +465 +9928 +8783 +454 +7448 +880 +143 +8924 +6341 +8991 +1647 +8162 +3569 +5531 +512 +2472 +8931 +6668 +79 +4832 +3070 +7660 +959 +589 +9578 +8851 +7777 +7144 +858 +7506 +4879 +4219 +9536 +1545 +919 +8338 +3233 +6000 +4815 +2229 +3798 +8816 +3210 +6523 +8624 +6328 +8690 +1006 +7173 +4927 +2934 +8835 +4339 +7363 +8987 +8444 +9221 +7385 +3660 +1010 +7841 +3012 +5725 +3139 +1822 +4317 +8212 +6310 +4666 +2545 +4463 +8870 +7952 +125 +5461 +4190 +8847 +4634 +6382 +364 +5650 +981 +3429 +6758 +3886 +9432 +6152 +7044 +4683 +1860 +6298 +577 +8011 +8081 +7362 +6622 +1370 +5707 +869 +8266 +6045 +4344 +1086 +4664 +4642 +360 +5440 +8200 +8874 +3441 +2234 +5807 +4628 +1981 +6944 +2670 +1186 +9666 +7278 +2280 +7174 +6273 +3433 +9744 +8873 +1263 +1777 +9175 +3018 +4010 +6112 +5069 +9588 +8310 +3947 +2025 +382 +8458 +1150 +3700 +9849 +9128 +3422 +2861 +545 +7826 +5545 +3049 +521 +2682 +2396 +9938 +1258 +9887 +7372 +6401 +9564 +8658 +5076 +6092 +5236 +5097 +5945 +2549 +8052 +377 +1375 +9283 +6089 +4756 +1046 +5241 +5809 +494 +5488 +5261 +7941 +1558 +4052 +8861 +2707 +3299 +4034 +2796 +2761 +2993 +2605 +7190 +3374 +4215 +4681 +6969 +6728 +10 +9617 +824 +1542 +1438 +7776 +1095 +6432 +9310 +792 +9986 +9713 +374 +8306 +7160 +6803 +817 +389 +4041 +9955 +2129 +5721 +8496 +8885 +3988 +33 +6220 +2317 +7800 +395 +980 +5150 +3387 +8207 +8178 +1102 +2199 +8041 +6612 +5606 +9949 +4823 +6508 +1246 +102 +5352 +3436 +9091 +6939 +6808 +8346 +9958 +4012 +88 +6868 +789 +4383 +2274 +4203 +9481 +5743 +3721 +5007 +6901 +9865 +7840 +4897 +2114 +5089 +2156 +1724 +8094 +2933 +1982 +3929 +3791 +7897 +7321 +7452 +8519 +1725 +6434 +1715 +4778 +2182 +6873 +4556 +5262 +1649 +819 +4020 +8867 +4820 +3954 +1509 +9452 +3708 +504 +9151 +5821 +5437 +6306 +5460 +4228 +3619 +7666 +9235 +5914 +6039 +3999 +8840 +9851 +3591 +1271 +4230 +9125 +1339 +5594 +1257 +502 +7367 +3855 +8892 +8287 +1853 +5592 +3910 +6288 +5982 +5409 +7057 +7436 +4563 +6899 +8688 +4933 +7792 +9541 +3951 +8754 +2356 +9439 +839 +9555 +2149 +9346 +2010 +2592 +2241 +2080 +4880 +8319 +1961 +1380 +14 +393 +9561 +8726 +8972 +8406 +4601 +5478 +5258 +5354 +8074 +8850 +5475 +9035 +7023 +2325 +4488 +3114 +6621 +5014 +1742 +9450 +8926 +4245 +1535 +3477 +98 +2034 +5867 +9184 +8394 +1718 +1559 +9771 +4559 +7468 +3447 +7652 +215 +5604 +1032 +7309 +5079 +334 +3914 +4701 +7172 +7351 +5465 +1964 +6393 +8156 +989 +4129 +6731 +3787 +8391 +1921 +5788 +3534 +8719 +747 +9427 +8505 +590 +2452 +9006 +5529 +142 +6500 +3618 +4337 +9729 +5054 +6126 +2258 +1002 +4988 +229 +9551 +9480 +7076 +4284 +786 +7939 +6251 +9309 +4206 +5068 +9456 +118 +9259 +8150 +2570 +5636 +3542 +9889 +5898 +8800 +7856 +9354 +161 +2377 +9132 +3257 +2910 +2795 +8588 +9875 +2441 +7249 +8916 +658 +9982 +1554 +1013 +6983 +5498 +8788 +7592 +1806 +9251 +4554 +9685 +124 +3250 +7337 +425 +1484 +4917 +6097 +9404 +3562 +8964 +8929 +7116 +770 +9791 +9655 +1786 +7664 +25 +2644 +2525 +5907 +1575 +876 +9032 +9312 +2341 +7303 +3639 +4715 +5190 +3942 +1560 +5664 +5724 +4755 +8893 +4509 +3161 +6224 +5912 +8906 +679 +9650 +1505 +7183 +7638 +2653 +9098 +3839 +2418 +7485 +4060 +7255 +9094 +6727 +4939 +1669 +2226 +8325 +6953 +6558 +8930 +1489 +527 +368 +1648 +8093 +2620 +7572 +1473 +3178 +378 +283 +2243 +9187 +8399 +7228 +3960 +2807 +1430 +5180 +8550 +4624 +6883 +296 +9720 +8975 +2019 +7694 +9145 +9010 +7906 +1244 +7460 +9995 +4684 +4331 +9332 +3943 +8896 +916 +2043 +6165 +2725 +9228 +1485 +7828 +8976 +4919 +1476 +9004 +9356 +129 +8449 +710 +8409 +6094 +4347 +9203 +1024 +345 +3228 +2064 +6598 +925 +5188 +5949 +4246 +7938 +6148 +322 +3138 +6151 +8999 +2145 +7697 +7959 +9783 +5793 +6652 +5638 +6854 +9787 +6132 +9410 +9724 +8968 +6197 +2028 +9839 +4876 +8648 +2931 +6144 +4214 +5360 +1294 +6550 +9607 +6572 +9009 +6467 +9268 +8110 +6423 +3188 +8966 +9445 +2030 +8224 +4941 +5499 +2752 +6046 +2667 +7872 +8876 +239 +6173 +9618 +4150 +4255 +3802 +2582 +7563 +6478 +7928 +7588 +8202 +7456 +4371 +9635 +8904 +9194 +9861 +7186 +5773 +9553 +66 +2206 +6217 +9742 +5494 +6325 +4248 +1336 +4004 +2994 +510 +9348 +9662 +4894 +2883 +9326 +9619 +7335 +1925 +224 +9105 +4467 +4963 +2542 +7715 +9936 +1625 +4490 +1626 +4264 +7634 +5888 +8978 +9703 +5078 +2765 +4794 +5174 +9144 +3620 +8869 +9765 +2710 +6541 +9532 +4835 +28 +4318 +1151 +6779 +9844 +6825 +514 +7844 +21 +2118 +2748 +7671 +7416 +9476 +8808 +5244 +9778 +2158 +5691 +1609 +8636 +3119 +4592 +7717 +4453 +7496 +5008 +9996 +4902 +3171 +3916 +9324 +2429 +1928 +5434 +9406 +1293 +7788 +3525 +540 +1356 +7007 +68 +9810 +1889 +5800 +2851 +3512 +5980 +5420 +897 +8518 +6335 +5920 +5681 +4532 +1035 +3546 +30 +9852 +9040 +6745 +597 +59 +5222 +9788 +8125 +6444 +7912 +1915 +2033 +1064 +3920 +4149 +4057 +9772 +2999 +4362 +6196 +2174 +7117 +6885 +2282 +7794 +7482 +6113 +8620 +3564 +4638 +1270 +5908 +2501 +5711 +1295 +8355 +8506 +3741 +9198 +5663 +3677 +7269 +5384 +9747 +6352 +3527 +2899 +2409 +3711 +4720 +1171 +4376 +8185 +1514 +9413 +5540 +7420 +5155 +2697 +8004 +8956 +8049 +2450 +7261 +3101 +8543 +1760 +7564 +9329 +7723 +9254 +775 +9979 +3486 +1802 +2221 +7765 +611 +6788 +67 +8692 +8555 +2920 +7657 +3224 +874 +5633 +9050 +1678 +3042 +8017 +8374 +2943 +709 +6570 +861 +9189 +3394 +1210 +5273 +4718 +1283 +9042 +7639 +6642 +8834 +9641 +5191 +4610 +6804 +5613 +6296 +9012 +9796 +9913 +4460 +743 +7982 +4496 +3881 +1661 +7297 +9977 +875 +9660 +380 +9402 +3144 +4153 +2170 +4782 +1975 +5829 +8854 +1012 +6913 +1130 +8238 +3860 +3961 +6874 +1149 +5022 +5392 +4846 +437 +7494 +8260 +632 +4301 +7565 +2834 +370 +4242 +3004 +6592 +9587 +6177 +8981 +5521 +2801 +9425 +5122 +2415 +6959 +3523 +830 +1904 +8698 +6257 +9225 +1158 +1930 +728 +2498 +4967 +2985 +4650 +2905 +4298 +9576 +8316 +8794 +557 +3819 +9292 +2247 +9500 +5066 +8839 +4307 +9622 +7627 +5270 +5696 +3390 +2989 +4604 +5484 +5328 +8172 +8447 +5493 +3177 +4076 +7332 +9443 +823 +1803 +9143 +2805 +2742 +4695 +5587 +3792 +9525 +8960 +4721 +9688 +3736 +9575 +288 +9981 +999 +6166 +7053 +7169 +8427 +8998 +6962 +4158 +1843 +4667 +7064 +5012 +7951 +5796 +995 +1528 +9753 +9387 +6332 +3102 +4978 +8160 +9499 +8395 +418 +405 +4366 +6507 +7422 +8784 +4151 +8819 +9388 +582 +8760 +1332 +4713 +760 +6213 +2412 +8281 +7752 +2295 +8327 +341 +5114 +8814 +841 +1062 +5329 +51 +7513 +915 +4507 +5904 +6081 +4389 +6415 +2024 +7283 +6931 +5573 +4570 +107 +5358 +7929 +236 +541 +7312 +6651 +3300 +4179 +7616 +9501 +2029 +207 +1549 +9985 +2315 +3306 +2218 +434 +9239 +4986 +5396 +3862 +2273 +9946 +3624 +4773 +795 +4735 +9149 +484 +2819 +8076 +6032 +8935 +1357 +7382 +1628 +5952 +4117 +7389 +5045 +3873 +5466 +7528 +6828 +1219 +7126 +6270 +3124 +2374 +7231 +9672 +2578 +8107 +2115 +7599 +6533 +1713 +5729 +3922 +2442 +8581 +1978 +686 +6363 +4396 +4817 +181 +5395 +8234 +2488 +6460 +9921 +5976 +8846 +2645 +5129 +4040 +4187 +8470 +3456 +7418 +6063 +1021 +553 +8388 +1729 +3544 +7833 +4291 +7724 +2623 +9973 +7503 +7393 +7863 +2328 +7896 +5086 +4581 +4209 +8471 +7736 +740 +8268 +7722 +2797 +6928 +4397 +6049 +3280 +4770 +8308 +2242 +1342 +2594 +100 +3482 +8393 +1679 +3508 +7182 +1815 +6451 +7384 +6309 +2502 +10000 +7689 +4051 +8354 +2104 +4107 +9940 +9716 +5004 +7083 +8085 +145 +9569 +1317 +6552 +7548 +2530 +6707 +5701 +6648 +3492 +2925 +7789 +6336 +2548 +6203 +5703 +9907 +2471 +4161 +3288 +8936 +9972 +1148 +8064 +8264 +984 +4326 +4083 +7415 +3413 +5698 +9775 +7597 +838 +6914 +578 +690 +1278 +5551 +8077 +483 +3347 +6835 +5289 +605 +5 +866 +2672 +4147 +6794 +4993 +4519 +7397 +8711 +7770 +7400 +5780 +6603 +3385 +9315 +2417 +476 +6130 +9766 +7779 +1137 +9954 +5372 +3117 +6293 +5963 +9670 +9460 +5782 +4805 +9647 +3612 +6544 +4391 +4878 +8188 +9661 +3301 +6790 +5189 +1400 +889 +5401 +1447 +2510 +1809 +7614 +8227 +859 +5226 +3583 +2745 +5183 +6571 +1719 +6989 +7121 +317 +4102 +7859 +2052 +4627 +8189 +843 +3706 +5566 +1674 +6402 +1368 +8280 +3976 +5781 +9738 +893 +6601 +1184 +8752 +338 +9130 +4845 +6475 +5842 +2981 +9543 +73 +3067 +7945 +4981 +2336 +2103 +1208 +1119 +4293 +6101 +3993 +3850 +5827 +8377 +2808 +9756 +3150 +5931 +4 +8761 +2049 +4812 +5649 +196 +864 +202 +3614 +2270 +8441 +6556 +163 +813 +7260 +1232 +5704 +1539 +5310 +8367 +700 +3628 +6192 +6659 +1397 +1824 +5568 +164 +1877 +6395 +1510 +8073 +1223 +6511 +9782 +3851 +4850 +8312 +6640 +7781 +1471 +1460 +733 +204 +449 +9737 +5628 +6724 +4992 +4441 +8880 +406 +6202 +3039 +4213 +9355 +5324 +7925 +8689 +9880 +7282 +6782 +581 +463 +1753 +144 +6569 +3189 +6215 +9929 +3775 +2895 +7603 +5584 +8740 +8724 +1870 +8032 +2929 +427 +8005 +8673 +698 +3143 +8574 +2890 +2844 +5412 +47 +1994 +3080 +6714 +2333 +5231 +7749 +5818 +6142 +2362 +6078 +974 +9321 +5000 +5480 +4343 +52 +3292 +4309 +3457 +8902 +5336 +7931 +3766 +6421 +3808 +4609 +8249 +5217 +6031 +6666 +9734 +6204 +7801 +6706 +3644 +3196 +4924 +3874 +1688 +2705 +3934 +7731 +3202 +4797 +4940 +7074 +5200 +3376 +6573 +1280 +9215 +2988 +572 +3622 +1709 +2773 +9244 +9512 +2237 +49 +214 +7772 +112 +5851 +7861 +4997 +4980 +9135 +3978 +737 +2984 +9689 +507 +3601 +3440 +3498 +6164 +975 +5198 +5098 +3733 +1814 +5957 +9868 +4112 +1950 +3610 +4616 +3897 +9904 +4099 +9629 +5075 +5267 +3705 +4122 +5087 +9424 +7829 +9507 +6843 +5799 +4875 +6284 +6071 +340 +2551 +2613 +8397 +8398 +7127 +3580 +9695 +1144 +8027 +3148 +8722 +9318 +3888 +3817 +5186 +292 +5205 +6226 +1568 +7667 +5925 +6769 +4019 +5858 +6884 +6907 +1495 +9885 +355 +6398 +3338 +2142 +9474 +5779 +4241 +6805 +4743 +8103 +2995 +9939 +7895 +1741 +1481 +4212 +6034 +5463 +8512 +9442 +9550 +4660 +735 +1254 +1472 +1868 +7499 +5601 +8246 +3397 +3370 +5543 +3484 +4802 +6954 +1643 +5438 +9173 +6366 +2497 +2307 +4853 +5182 +4888 +867 +3589 +2311 +7955 +2990 +9983 +9107 +9317 +8059 +5105 +7509 +6482 +7545 +738 +3282 +9297 +9076 +1810 +8742 +1008 +9095 +1042 +713 +3724 +3599 +1297 +6084 +2913 +4146 +4002 +7703 +5576 +3554 +2634 +3025 +929 +1946 +9368 +3570 +7921 +3389 +2655 +3725 +6859 +4385 +2511 +6719 +3712 +9527 +8433 +7191 +3302 +3584 +1865 +3805 +6749 +9535 +1518 +9763 +6997 +5355 +2633 +7977 +8612 +8054 +4314 +7458 +255 +9932 +7719 +2836 +8190 +1170 +2144 +1321 +6198 +4545 +8086 +1140 +5510 +8769 +5708 +8166 +1918 +2366 +558 +3536 +4855 +5940 diff --git a/src/heap.rs b/src/heap.rs new file mode 100644 index 0000000..8c26387 --- /dev/null +++ b/src/heap.rs @@ -0,0 +1,54 @@ +#[derive(Debug)] +struct MinHeap { + nodes: Vec, + size: usize, +} + +fn parent_index(i: usize) -> usize { + (i + 1) / 2 - 1 +} + +fn child_index(i: usize) -> (usize, usize) { + ((i + 1) * 2 - 1, (i + 1) * 2 + 1 - 1) +} + +impl MinHeap { + fn new() -> Self { + Self { + nodes: Vec::with_capacity(128), + size: 0, + } + } + + fn insert(&mut self, e: T) -> () { + // append at the end + self.nodes.push(e); + self.size += 1; + let last_index = self.size - 1; + let mut swap_index = self.size - 1; + + while swap_index != 0 && self.nodes[last_index] < self.nodes[parent_index(swap_index)] { + swap_index = parent_index(swap_index); + } + self.nodes.swap(last_index, swap_index); + } + + fn extract_min(&mut self) -> T { + if self.size == 0 { + panic!("Cannot extract key from empty heap"); + } + self.nodes.swap(0, self.size - 1); + let child_indices = child_index(0); + println!("{:?}", child_indices); + self.nodes.pop().unwrap() + } +} + +pub fn heap(v: &Vec) -> () { + let mut mh: MinHeap = MinHeap::new(); + for i in 0..5 { + mh.insert(v[i]); + println!("{:?}", mh); + } + mh.extract_min(); +} diff --git a/src/main.rs b/src/main.rs index b930ed1..b63ba49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod dijkstra; +mod heap; mod merge_sort; mod min_cut; mod quick_sort; @@ -8,6 +9,7 @@ mod util; use std::cmp::min; use crate::dijkstra::dijkstra; +use crate::heap::heap; use crate::merge_sort::merge_sort_inversions; use crate::min_cut::min_cut; use crate::quick_sort::quick_sort; @@ -66,10 +68,17 @@ fn c2a2() { // [2599, 2610, 2947, 2052, 2367, 2399, 2029, 2442, 2505, 3068] } +#[allow(dead_code)] +fn c2a3() { + let vec = util::read_to_vector("data/c2a3.txt").unwrap(); + heap(&vec); +} + fn main() { // c1a2(); // c1a3(); // c1a4(); // c2a1(); - c2a2(); + // c2a2(); + c2a3(); } diff --git a/src/util.rs b/src/util.rs index 1073b74..1b45321 100644 --- a/src/util.rs +++ b/src/util.rs @@ -23,7 +23,7 @@ pub struct DirectedWeightedGraph { pub distance: Vec, } -pub fn read_to_vector(path: &str) -> Result, io::Error> { +pub fn read_to_vector(path: &str) -> Result, io::Error> { let file = File::open(path)?; let br = BufReader::new(file); let mut v = Vec::new();