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