683288817 784230412 626685186 608691126 872162140 809963279 680953460 752493373 630149641 572249782 629554719 500072263 756079417 985211539 512501249 660166603 651768516 724310447 502388356 732920482 903860092 722688749 671695200 639099015 934902474 719264872 852000665 718794254 534104695 713941948 830220294 580359927 732582483 707556093 513058991 765611905 789026456 719607702 529840639 673344145 690873178 917962104 598741185 772113456 847809951 808680640 642090207 851738561 917721765 699249673 688644295 763698214 626878851 874812800 980800760 522736061 918182203 702957485 964207360 931221734 792218891 809210885 800411527 724117448 697469817 668184320 630313979 856989759 967312484 771654364 731299844 546132407 929454928 778737113 964207897 976608509 948316362 912655567 847246713 883128049 746904070 717194321 724034786 964742901 671132073 851677091 697632316 786663719 691954980 882378475 537751737 583721879 631508414 829716044 705859050 756503205 993251095 712551766 662445356 904243956 673664631 954094340 590635492 523043729 747952926 954388670 551577966 950795015 657940111 911555170 820983417 992193420 525450173 909618837 731992604 516349557 937578284 979223464 712283134 516232785 537059320 555743857 786493741 739504358 797162340 576845566 857719496 716316515 690247841 779104509 969298290 520931243 640903383 895342766 589078101 851437354 840592834 899410316 942753093 617141603 970072765 552011014 703865526 888854778 721624506 699682851 760563824 610592779 957888212 840963244 689766520 817606681 846235403 947029464 927561909 656574653 712784133 646088468 502508105 819812822 902042885 980327030 862274850 875633998 818276672 569009092 887526259 669045976 641962217 568931524 649630936 668356001 994052437 640647684 913922369 522040132 763893224 709566287 538534991 631880983 828954436 755841474 769043295 800140848 529434036 861530884 531634938 958103937 869329975 881677058 688742329 871080387 738613039 815428128 725413353 812238884 882477648 740330203 898461930 687256256 753434620 963051789 517021186 787726403 621616262 872033702 517711131 653769345 907545527 943637273 876004961 999616759 616295106 964807833 534011086 664599133 834085077 740894462 812712233 681019756 894742827 915143983 651284611 816037066 827232854 985591182 502181636 893201220 514330554 720464788 804439604 716754691 657866261 704250588 977840345 547477130 881622242 942681721 695833848 941252757 735973730 503936956 959084210 884402653 696780827 832520058 512074309 793270469 748069283 937234995 555064283 984880738 691283852 778474897 509418345 606888119 984143130 583406915 851750918 620379241 594109688 647690563 871136971 699806906 827864583 890001292 990214687 927066080 754192907 915491507 991754714 924247320 909543766 974880193 605385321 587200881 997172895 869857479 871533457 605769037 553119485 856007813 848198437 815701941 969961210 674871070 945588993 780029382 741740410 779456529 755308116 845013173 636957960 559057086 877851775 673569689 977992704 781741983 744558388 574702472 883278051 727712345 661198300 561443777 804402751 628067931 601519536 503351381 956492572 589237701 930820360 783677187 853925907 539374536 859005890 592761016 529529714 814695796 727140487 667407828 552070753 832133135 855922955 914185001 752930225 694658228 881277627 648034022 648122903 771315641 940927630 952333973 931113507 688640052 724925025 578107194 914285036 800788956 741185642 769627664 623028972 898079768 711600876 730061087 952053868 960120558 983304282 692325164 744579130 911954777 771371691 929387003 583186794 762015473 663643689 579619590 855494690 540126613 600891930 766956120 534586066 707333126 989502663 847313883 849761696 748987148 783219337 600286265 676213690 609759729 527395344 728390965 764588708 566780137 650560629 788509483 702166817 893692646 875254189 811292527 977863649 970147381 573126734 852172568 966461462 805832614 516499680 688390813 578071137 835729353 728312086 911687095 997476000 694468402 512353180 805943056 569941395 857586190 815020162 708842789 907412635 686804410 833969099 726618156 881121466 748863747 781185149 759842124 978805850 708750855 668248095 803604250 991925103 518570138 687894672 955774332 772703471 870657902 589195871 684227797 516611366 736667977 600658415 833468352 549142230 925654990 856937542 951531090 694334072 595954711 903740009 850297796 640122740 878212790 543195251 521911651 834381704 864449752 645663583 603964100 860102085 991267735 732506861 817038575 891102290 597565777 848549344 800486267 531313130 526945109 810065654 826070235 947391112 892961721 703334283 864745601 820429418 564223501 977410203 712962979 850059829 507147996 777450212 718537358 745217324 646684142 713055704 578716873 937277195 844638848 763846972 645315343 791814563 757386168 731264554 700333989 946575362 727038694 743822629 756144448 721166387 890008153 990387614 572827568 950343752 622255261 710342179 708692910 905644013 754932985 957925381 759364262 939028431 683787205 538731560 956960814 835211379 523711435 508229615 508835358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0