fork download
  1. program sairsodo;
  2. const MAXN=100000;
  3. type elenco = array[1..MaXN] of int64;
  4. var N,i,d, idmediana, idmediana1, mediana, mediana1:int64;
  5. calcolacosto,calcolacosto1, altezzainiziale, altezzainiziale1:int64;
  6. costo, costo1, costomin, ricordacostomin:int64;
  7. H, ricordaltezze: elenco;
  8. uscita:boolean;
  9. Procedure scambia (var a,b: int64);
  10. var x:int64;
  11. begin
  12. x:=a;
  13. a:=b;
  14. b:=x;
  15. end;
  16. Procedure ordinamento (estremoi,estremos: int64; var v : elenco; ordinato:boolean);
  17. var inf, sup, medio:int64;
  18. pivot :int64;
  19. begin
  20. inf:=estremoi;
  21. sup:=estremos;
  22. medio:= (estremoi+estremos) div 2;
  23. pivot:=v[medio];
  24. repeat
  25. if (ordinato) then
  26. begin
  27. while (v[inf]<pivot) do inf:=inf+1;
  28. while (v[sup]>pivot) do sup:=sup-1;
  29. end;
  30. if inf<=sup then
  31. begin
  32. scambia(v[inf],v[sup]);
  33. inf:=inf+1;
  34. sup:=sup-1;
  35. end;
  36. until inf>sup;
  37. if (estremoi<sup) then ordinamento(estremoi,sup,v,ordinato);
  38. if (inf<estremos) then ordinamento(inf,estremos,v,ordinato);
  39. end;
  40.  
  41. begin
  42. (*assign(input, 'input.txt'); reset(input);
  43.   assign(output, 'output.txt'); rewrite(output);*)
  44. readln(N);
  45. for i:=1 to N do begin read(H[i]); ricordaltezze[i]:=H[i]; end;readln;
  46. costo:=0; costo1:=0; d:=0; costomin:=9223372036854775807; ricordacostomin:=9223372036854775807; uscita:=false;
  47. ordinamento (1,N,H, true);
  48. if N mod 2 <>0 then
  49. begin
  50. idmediana:=(N+1) div 2;
  51. altezzainiziale:=H[idmediana]-(idmediana-1);
  52. if altezzainiziale<0 then altezzainiziale:=0;
  53. for i:=1 to N do
  54. begin
  55. calcolacosto:=(ricordaltezze[i] - (altezzainiziale +i-1));
  56. if calcolacosto<0 then calcolacosto:=-calcolacosto;
  57. costo:= costo + calcolacosto ;
  58. end;
  59. writeln(costo);
  60. end
  61. else
  62. begin
  63. idmediana:= N div 2;
  64. idmediana1:=idmediana+1;
  65. mediana:= (H[idmediana]+ H[idmediana + 1]) div 2; (*altezza che corrisponde alla mediana*)
  66. mediana1:=(H[idmediana1]+ H[idmediana1 + 1]) div 2;
  67. while uscita=false do
  68. begin
  69. altezzainiziale:=mediana-idmediana; (*vario di +-1 il valore della mediana finchè trovo il costo minore*)
  70. altezzainiziale1:=mediana1-idmediana1;
  71. while altezzainiziale<0 do altezzainiziale:=altezzainiziale+1;
  72. while altezzainiziale1<0 do altezzainiziale1:=altezzainiziale1+1;
  73. if altezzainiziale<0 then altezzainiziale:=0;
  74. if altezzainiziale1<0 then altezzainiziale1:=0;
  75. for i:=1 to N do
  76. begin
  77. calcolacosto:=abs(ricordaltezze[i]-100*d - altezzainiziale-i+1);
  78. costo:= costo + calcolacosto ;
  79. calcolacosto1:=abs(ricordaltezze[i]+100*d - altezzainiziale1-i+1);
  80. costo1:= costo1 + calcolacosto1 ;
  81. end;
  82.  
  83. if ((costo>costomin) and (costo1>costomin)) or ((costo=costomin) and (costo1>=costomin)) then begin uscita:=true; continue;end;
  84. if costo<=costo1 then costomin:=costo
  85. else costomin:=costo1;
  86.  
  87. costo:=0; costo1:=0; d:=d+1;
  88. end;
  89. writeln(costomin);
  90. end;
  91. end.
  92.  
Success #stdin #stdout 0.29s 5276KB
stdin
100000
462648444 192278013 690465417 287415372 977794499 17905823 536484727 486858463 769438383 767743088 253571469 192238825 823267919 619776111 769098788 664536962 843477389 456836904 83579901 71520573 211134767 656123714 382934181 788131814 214272638 265992445 583288348 86289352 902351251 976481540 613895268 217516048 21275905 156877037 504931420 999070404 174782861 41416148 338445219 944221244 661675588 592016688 136460069 337459859 64309152 758075209 1996821 907786541 67428466 85576722 979307114 278563233 741700437 214757647 66695047 955973075 480750092 502499747 42262427 235617696 331497639 508674047 453133744 352773545 665551085 810581516 204360301 840333946 704514016 542805521 637071542 218705957 987338561 626047964 556165816 51647713 236639525 558162638 811950606 304067991 496255712 643774073 435147576 90472501 858531720 354358976 46445577 191798165 856858723 941224356 427415861 188356363 302414756 733065957 541129908 820482193 543647473 745490209 513332491 100677842 140812082 150404033 319383799 128150644 776451997 875549615 32314709 13091523 286228605 844265316 169675866 782484318 340555741 604823443 872956819 199087461 959182419 771918748 390885626 668557494 565659457 670817839 856913857 868074213 403883796 250560117 541072758 800047622 848566679 54405249 900725464 989378761 57325634 220109263 970045757 833777632 95658878 854876819 699385507 234403836 551658487 721577725 16888154 892214228 178917520 889844973 91301689 138099939 514280074 334703668 659173786 79939531 5521507 368603995 800530096 261921656 619164113 341602854 61969278 320247144 248524455 815211094 162142257 305850089 35320357 132188015 139627721 983495587 839581186 691529580 70415775 391239673 265623658 87303929 135970253 444541178 829665255 79788294 435157470 343945329 414491962 94331256 276401212 272529822 462935251 76931308 386967830 934615716 271050514 301453460 254862860 519574969 116664554 417005118 825425058 4501263 401709485 817569132 840513202 93807023 361615064 910928978 485046696 627238722 998232907 621016949 71779901 680414514 700805243 506937371 24359843 967813558 453784979 153277407 92859732 916720230 230208715 479827562 703852299 501259229 781281022 958715159 20834198 897945576 228236629 698775609 754963191 482462466 516344741 595476393 576269489 877959805 358921723 61316185 357714880 209670983 534849486 429494781 890085497 88171082 788948504 766961693 55984640 242733483 920239100 1360724 11970065 2964168 481188286 715822364 504223397 262469308 527053876 377573948 12931236 607806857 76349557 767894427 90269324 445210650 215887172 666538813 175686807 574808896 580371351 533401687 784479879 967737189 815412820 527081728 55908271 604361324 294043421 964409263 699611159 66798874 965769987 711581225 69763042 299474625 279919941 573986439 561943933 659490169 804076739 427391521 267297027 732942648 47802300 210082703 30669650 263689473 876621516 206356458 691014721 309509219 592274497 328010952 129762761 407687318 855092680 38187384 864564994 1652454 2596648 564176154 68451328 820882987 128273731 138214370 120357613 260710024 712200809 534817898 920200194 368793901 962209420 40013573 101736549 10011720 250096276 132406200 126217545 126717792 191279010 817232266 288743364 783553507 145243218 418506125 43757177 852852251 456693509 908322172 854504705 311806509 325014678 922956033 985205849 453288409 61170403 958079814 713998433 625887564 345414064 486714979 994681465 160139836 526728552 96418015 22667909 776824828 81340567 148885454 756058973 272619577 818634073 44802337 56173084 816393643 315824814 99930262 669245894 625034675 860768786 376266951 936841185 185783464 299222984 774563386 491588225 212909739 732643200 58103010 838797304 78057264 544817990 833478769 90713453 71546542 782413136 113381362 848371371 716270055 262266816 456946696 988889632 80900889 354265385 897579069 749810885 670090199 850025683 271573131 147641226 563310821 647840083 84482411 749094285 947063067 711562149 93198862 12489159 296721701 151301872 851286463 227295318 696119862 537281584 318008771 767666405 172211073 431390133 468554128 888481128 693656949 925500824 729887113 627074191 132282561 479982534 229401428 802372760 182524569 500974559 950013986 745835390 148814642 887012750 347446027 948394062 451091251 440644889 960883221 747812953 591946761 812169684 975108271 288066624 201967620 293117042 908249381 374178693 724507175 229319861 262659822 270680476 7337037 992546935 750271019 139619598 325045821 979672447 941992358 507570390 480647007 744522696 253405780 481978001 484051798 600851807 430372063 935143050 41496696 243771636 535472355 485959809 55941320 510580626 774026433 110425293 656214020 534792166 484603986 233237547 764112027 747263808 503918023 771449064 592327095 106705395 911068662 917372916 86377842 705577372 277459658 419541201 302616421 530865438 901519203 786668219 984233597 184407618 574327621 878246645 428179255 109799976 364206455 336636927 472896954 990749240 447062220 129110974 525541407 931666207 214864873 142169786 531446367 718782897 913618851 123773463 825488292 824687513 893662731 764382486 382781238 23638742 183923688 685397659 554504180 85442891 324582230 391254130 122366861 898909852 269500775 550546116 861226180 486223582 887183044 186639487 476972823 334245264 168266813 855030582 118427823 383131687 997200368 649874191 954430936 910819219 626164006 632435580 588023085 372343089 396818066 970804323 395981831 433258106 508718334 950486012 371217349 833300564 194256494 493584211 584726768 463757269 44130327 298469301 949980852 931313371 485108788 279470027 118074988 505891953 134500609 236502811 889023640 984217329 886377002 695970928 747552901 365057360 328406508 188092338 737400450 577740927 11413013 133382281 10999033 520131347 936384645 382216383 353431911 130641139 875800594 938158680 446914761 772447273 89144333 249411965 556276997 574253121 528881992 674351985 80145074 515898953 763371148 821685067 352632634 502264503 370172347 100185535 867321863 698578856 288277873 604722313 128836135 299690886 590620947 139835168 819822233 527005592 374567903 25770497 510163084 102884849 816445529 957077845 875332123 905589862 206489810 431609120 332359335 587888154 958477457 265020761 103787107 721848605 86705828 308936093 76629460 309394528 409121629 943951324 7973384 549915854 401189989 136809519 849606741 991810936 129161039 521945326 371332881 503728943 400232175 881495965 606613792 216677704 838573810 334462267 122267566 897579972 766071387 307143253 485468126 577065196 572164015 441771585 151430154 511386195 750707678 228059614 820780723 12345659 172010938 681270459 562261514 573200928 670596330 264384607 417528216 799757370 638846285 788861097 156002665 39078461 670357062 615132809 108272517 361447224 949595077 83056436 111543548 568182816 390199689 597011674 145248013 962363704 891299611 296678167 473749900 494523642 524737781 147046975 506869301 549265072 828317435 921647167 122466000 498913765 38548126 392510568 151187487 677394412 181371666 159706504 716472873 704245080 774839314 824745390 65692305 724434391 907801826 29752205 145133559 150517868 626763880 290381572 112881572 370579843 439576091 439147824 865103485 964313873 586194800 224489139 366095297 414512235 146136306 341077649 765942352 184684433 733588217 917129840 862078845 914959883 76836344 431068070 471721316 704192010 108329812 389929973 281142753 868647991 419682178 426276313 19165859 46446058 716657885 132047431 269542254 8750329 423711608 134645739 973064202 9906408 359134878 191675851 276934995 357787537 532753500 42877347 542471970 266341717 812523539 257067167 33817953 741876236 540651589 505539269 446068246 648981401 895469242 727211000 370145744 167667772 6003665 389311603 66630183 722661550 373875387 336172437 731411879 797586995 470818176 556992433 660009755 682469407 748668284 936944750 40256944 133938136 979822097 435245266 400279854 644861989 692312433 286614159 386738225 85480374 792153428 685322823 734461775 540139022 265050175 104607520 707806794 271053840 346435475 774436977 993715391 572827214 110609414 577643622 222930561 433943943 987152408 882940316 116413350 588337044 819885066 9186646 722275181 652223516 444431912 122555035 149601857 989260697 261685546 536340082 74741071 53838974 74179257 661719198 446494348 339229433 618843070 6817494 610283273 965278546 633770824 456515016 390622112 596896590 34158639 613552674 30840533 873827399 496492990 999770235 462164443 168894409 861473233 36955976 673634277 158421497 12027363 823236134 147682194 273712909 212092568 74939617 180068235 286271825 736658816 626562583 625501258 355501886 485896430 235784532 173296784 119667254 692299548 563918897 716563844 578974539 29987923 599920730 305318290 526480913 452207317 767482734 547891674 166196903 804438710 221525951 324618400 816466074 44762085 472300595 90178983 109371005 547240212 122763571 395642831 136415380 749326154 21144089 491917267 87738936 109444973 517730403 207406190 801744522 81649300 776486387 233235413 111637223 228923469 538553704 490634489 681130786 158552790 38526163 847327689 815507852 112568467 24462442 484490278 9846904 496763037 427185614 119217910 896519601 549949185 514860741 32934982 151791691 388521182 377368601 239530628 497966156 895099004 446936818 152227030 829264657 75939557 385462443 793418232 304863026 776532499 136569073 985993813 935085289 27611589 685837854 603109494 140180056 710300296 87599772 2543312 59579685 514785386 121761222 956099287 64734571 489138315 841550621 69042615 877659498 218919222 308573243 375625654 114018226 755510061 527852684 795799235 831449619 765831479 589217468 136312645 542363979 725786541 974822810 329965620 753398130 513177017 933075114 746094538 75993665 873191239 748637851 135573351 240492977 870399073 944188990 157743901 212053741 638255963 226786516 89713239 857175185 535359759 317855245 823709763 143386172 845707929 472025351 974835791 464055760 61242819 963664789 6419739 639545712 791003951 188901712 245460195 156697320 974493178 991554733 85207338 847684417 592708936 73297041 88177395 315624362 17486031 98437648 527678103 508258346 325224164 617391342 217949883 860583923 935246587 41659646 3970095 633470868 366201349 831322239 97526628 279960520 647503380 956462720 919506233 291023683 997880784 17482780 447721004 972373962 861553865 532928342 672574732 454262802 606225383 613268479 769887164 476227766 711706127 150081619 984486112 36930291 767472961 54952347 750030566 555235900 96611993 754000661 41223120 315329695 437839252 991266100 595290215 85342632 800245172 367312800 376366316 798125956 384795580 676603672 623016271 98865798 62048366 148107355 553128600 668273749 613892186 175532116 997017867 178114665 325613735 834020331 67561308 945603048 888972678 817591874 353355300 838101023 424108887 394578420 153430718 861948140 238360872 748720934 947290772 38606045 116033734 176173440 689248353 353345667 852777112 164780976 452211465 914825478 312888331 857856417 435615579 926780517 33388533 285149798 104895182 211518620 119170129 24972842 9638020 8142807 842564716 362993320 698760183 266673604 757571740 852190901 128621744 995932612 453428187 928428868 887055009 421978274 957118661 576303363 627840293 662412125 741084339 80051758 429753956 906489023 790424527 865369535 685785892 676329412 3035686 643197427 887848032 122205815 668170269 897486052 982864975 510734986 112995724 681625158 629924942 870567464 386332411 611063038 719016428 692276951 392008258 458587790 114255225 349126919 34891153 594611870 11539045 628491844 527179980 293809353 387497219 317604507 11695240 73283112 993933919 14730926 716480539 734298303 136936742 237167160 484300707 119801717 747902146 597296431 653943227 230343440 320380247 892791990 841406478 891913027 585068941 233414737 350500817 551840518 435058008 237908322 146452388 299113405 718916519 526148720 592922758 106413738 843753227 604617999 32213202 690203498 619348925 748693741 277018153 756285667 985860902 613835212 728603736 586279400 63647995 235063315 816622841 384028242 127855306 510545671 128457622 565440599 743960408 478958439 969797470 31534769 569383114 968766210 330648174 288299633 494914931 923570933 247229723 191184510 528188932 279442926 733904361 54209 28136667 10922514 756339877 866513921 477274079 337459965 305309674 540922074 425039633 974448867 924950317 405411291 484994538 53407939 970851890 81471299 384882730 793165712 113006068 954265844 761931923 443654242 95081829 109363206 219741527 342311553 153064068 747930459 621754479 886968429 747984669 502407498 750407296 356840898 221437772 227681375 546817215 379263798 768603449 971856848 353712665 546070118 377268139 691223555 451994409 200636382 772694854 689393492 993802094 738217274 496175688 608250369 34387869 591257518 570129927 254129396 786085423 723193996 2059856 260356254 610162425 602560877 762763752 213086073 811918127 836717876 440767448 358735342 215981674 61887250 183108543 422210691 460473720 560376682 113434247 912468130 613529416 738645453 454377974 459847863 476862728 950553662 68098232 511250597 394327532 490744512 765379993 180412955 213938508 619956201 440769209 676617285 75033430 56049314 889703359 886951557 892767190 182987159 98203252 961265217 244874409 281311795 383475908 705348130 694204829 349426507 470332612 307734246 88071961 924710586 767582109 417451041 727780600 688196693 928701638 122108133 31457557 546597983 155037440 245396065 19070537 595806650 922013351 94103967 504372316 664233062 833571877 249655858 847220221 784291481 210921075 92094631 65603276 446913336 649959113 612324457 796339843 972808077 920058703 884411804 750035015 540157164 154379197 477815615 80870210 83080835 452440100 112327767 482195171 607477541 210240185 353782060 55800543 132253536 300402379 560172859 649002950 133974256 809828717 496223171 770782089 20749793 440834154 688901717 320179481 943309619 301226175 116519324 916117696 73801230 853447481 518669063 466474747 7826678 996484679 547344957 943423866 301441131 512189076 278135389 908918672 722429261 631917449 964719215 707199149 932319828 524892074 356202099 918810437 187237144 704941623 689592526 60503289 145775777 231010596 380682770 941601749 532236771 497202094 710235797 458554353 203165927 228904861 925029100 210992606 77905892 324890409 6932824 379347023 837079486 285068213 140782048 559508747 916985662 105501263 119224249 849305490 482909690 475426348 620632279 670146834 32884323 162741158 730650123 31176453 393751754 111332893 972778202 925988525 461051339 683013999 237059230 664217267 764435212 162088331 875209873 842341104 486978740 882142697 74204480 176574578 19727262 214986528 736083326 936712924 173004143 855307575 638534766 655913833 183250275 259167046 326060667 216134599 421908204 56710790 247311052 815659958 20560035 72605606 594164835 481611375 755619605 831224065 145828642 372571170 845828748 873554867 67428626 185323841 608213916 141633106 361898419 627941178 209135986 97981745 417170454 382140130 805805672 55705220 38053963 841572300 167388618 216630983 57706899 589296822 125858125 157534303 257473132 146418161 230139909 704154319 480545888 838275866 387894737 478890882 210847036 233723485 204962101 278275663 419047326 813176017 272425121 780945746 293633547 481561108 731443843 710804001 863701238 389765868 619025573 901755201 83854520 786414192 118386184 141561419 228227366 96760662 151612074 485700499 243178823 234268335 42371170 723724711 72544201 430265907 55131945 135907590 663989393 260094046 414183253 935553071 73270063 686608374 569015169 219419962 20685834 152975365 782740315 884387072 542741233 401765888 638658626 626595753 40696432 609561162 620673524 268923799 706321824 624801950 754624298 949500647 859070285 796995468 525741710 931614486 79777728 580873655 67522076 743767121 840967701 334221681 531836544 766754116 873346408 100851714 838690430 894032242 253827079 621430745 778419315 649084664 875712986 269594293 128196769 916409418 879155455 748870293 185333217 585477280 226188595 792473867 387494279 85258880 441985688 765752342 869389718 521763416 199142349 789428147 118046889 40110051 123649828 649883433 659380519 849512588 750735147 350587302 743544831 857078578 972018047 374480498 506163242 700247385 644074791 634360011 616656804 375746598 235746656 654506373 961223878 461935251 446980241 201234510 399710483 888965929 966986852 269100202 263245697 18645553 58528349 381292586 58755604 34694529 31176019 570652476 736723470 634427519 921239778 332784653 491506097 745774177 707265151 850185692 298537915 203856294 337062055 915194719 579602892 572808712 422217444 393343123 887260315 869197685 447093985 286970799 610679966 266597189 408587353 873925663 285242742 319632054 107734601 196514699 206842935 138910621 767167175 943566405 773338140 540923305 276351058 117360589 139213834 836132561 967546281 437751749 39988855 157124689 205462820 472108100 729933401 627680265 717967575 469710068 349394302 165061560 756680867 812590621 431658749 17784572 539032636 716901491 337416626 646767238 913416190 544259562 785677859 533099717 487825967 411532351 926539374 616693378 381409292 65753209 452825939 201471926 356021310 345331147 358596615 414000483 669955599 88530016 41680748 387923174 410756436 243591402 405501086 19953656 56182023 837159835 37738228 447731012 406577678 375154855 94498250 172510221 919414417 732692461 558126290 259756736 144224812 484665665 876450114 378150456 402935226 181792406 579622382 611472888 527123553 938218997 25473371 49595504 879265365 919670471 437518678 290021802 15778226 843019764 309975458 71960249 532695951 347713686 372207613 791789981 722868541 466705863 964300202 494799310 51914676 374942845 754556047 48655840 859608510 631006161 426806297 115060088 812798567 6428679 726532976 192438472 944647677 604522700 242033976 676429394 524193171 532069006 966451196 539971397 227605122 128943006 464447999 760301073 329173045 836655612 404607407 52041586 155877828 221423961 399357249 207792504 596366806 153913296 256448345 308491668 637435809 683254642 423551756 302750729 542199673 2601085 495189201 339363702 607123785 589739530 15793097 983833308 121808536 834760645 376321058 349413659 963703652 840769057 962231084 145393049 529941021 366838491 49950987 538335201 588262453 449308236 746127706 37145611 603221532 855092403 345637280 93173694 390863397 769189036 395924423 933063070 624306473 891113624 272426773 83946610 333369506 140736222 67779919 455178043 975496867 444100977 657108054 791716871 137386386 619339138 937109920 519843759 838693982 987060908 58178961 279472787 436369144 656823019 316618398 892107029 511915422 662255678 985280723 902778819 283961067 381205146 688358241 908267540 124835122 960785014 992214151 458204629 101521236 59994070 765899024 929534456 356611399 423007078 721251327 346514137 894862568 510877600 866357896 733556550 497938508 924536857 13029337 786824004 433876228 182164088 678931033 945791650 844419766 516728108 701086821 128380833 897933254 241961415 36648374 875284729 55262781 881378877 186005710 9300370 793889299 951904734 938834826 3017050 227428164 512602505 349531187 122290732 23480105 215889083 708363635 373934965 992942293 573909324 160758970 426818521 756073412 692206355 225126524 600493179 208934464 778729697 581390364 959384070 20691112 470555090 834668799 75953894 351933967 20674509 85254264 145823266 825095595 24089090 1356668 52523759 389207947 350887855 27330844 412688053 566776939 735694479 786623018 412235584 309603803 799898340 839054105 65677216 492104696 916696981 518686747 553555512 695426679 100077111 512939582 568634143 423148554 200124734 644588037 775082521 73315595 582358653 773422140 898411191 458964095 774778808 803451302 848172043 125666664 830782146 113376448 544959955 566476625 899999466 957195539 728596781 552414159 648765996 646790349 44518855 417979330 17993448 450590719 113406009 118070559 963530301 534556504 393735465 16171387 31660894 21334339 89486983 614019547 794756479 840414526 72983643 422051639 496382180 921155686 400234655 327164327 34532134 797710962 746157304 787047952 607422853 474754085 191978463 108705202 121544434 89013670 526684532 139537882 539604389 492606893 110124794 355651043 27163397 356376611 371822430 58824291 377710950 313825765 672843839 24983781 6756643 598343834 447035421 503138824 372015872 699786428 682819503 259064358 497497391 428976807 46112310 104920244 756247245 90607126 66141798 730308031 179620796 592826330 722362266 719225186 85433223 685003412 74876229 112596621 41380023 299215011 23937264 419090974 613040777 549297455 444074755 472313772 147641289 743626528 975452596 519657161 443412957 510788451 778721519 793426700 939765259 677350182 750863296 548528856 767957308 817005095 278836887 947578104 409831425 1199153 519319642 347781001 538718917 594195871 312893974 580098941 893410883 336831238 851706267 358968012 886128694 148297374 831281784 886286335 891923903 659250733 258459849 187853212 22555536 37181368 981279912 962320795 567047902 732143208 363366003 187521562 401664655 642202891 987616019 811496081 495918396 506935661 11793434 34637314 953647885 324687408 467252607 699575120 661518646 171475226 58543132 400163692 319772600 742341268 138966380 211696503 254108353 397426229 399549715 276663890 287123949 233345979 91501037 854171852 965489188 454867041 894209766 219670195 949586284 881825785 31166276 298021032 241277799 42959710 185174698 47442036 220163470 652427305 747017156 881682117 823902531 658076640 134362161 143675132 252934260 273328541 207887987 507042614 670754770 459954055 636222856 957878720 693300034 727723893 664566924 511305574 35107286 411293042 730975770 984693570 145635180 614658398 135230955 386912979 510134461 320405653 434355015 730297931 972832959 33888523 464496400 649251842 691965163 598858562 645443326 944899423 724703455 705847666 304458389 247974578 165801721 940681245 58369650 859101755 520921491 722936574 222923682 556028777 134229616 953899452 393238700 132381148 568557850 528469655 519294127 78692311 848875308 806165494 661506595 674224619 840054017 126002995 175992814 532019180 577377909 673952492 329434956 302081365 379800158 633893345 550055943 398118231 574574591 608425593 109736339 95496082 183878519 332660021 504041211 170624487 286559473 749796263 303005636 707633675 130782270 674816115 638842339 979657579 480981610 300348934 506398550 173551979 278868281 534907716 705571160 856246191 208860209 35006116 10843908 441176719 521415813 560899851 839294951 95990404 21841796 949031290 44002838 58236667 281691311 400560402 228861154 420767136 2873017 384383142 128400811 133655288 59199258 767243150 113312867 392697220 920108436 472227769 566249199 198976718 7135486 124336711 55222909 68512047 11859179 66066817 509688766 533274993 479483020 201500069 481781749 353841168 150531359 378300940 412077835 284739022 778861342 640938989 705506158 781734359 25322132 833906970 915389647 937037742 453666472 881218866 329734962 226291261 205962988 895984161 425267979 65614826 20320873 333007240 134126873 32180052 251590409 496331991 417971397 583589781 697832061 899753147 937430949 700879772 278054087 349508784 985618795 909431781 842964125 691124953 543682492 720802609 377548275 311588492 657840351 683731100 45323710 840091665 910022361 251286698 588592179 187806692 169417876 461429404 520813932 156061101 346125808 624920693 652393093 764097206 208510474 202741506 663850353 145941423 903621278 794420792 347966559 741756425 703852573 43447036 285397731 100051417 764249646 662946006 411639909 274606349 199193458 456963620 114698015 109215819 708250318 703290194 297022511 877668195 17235950 670352795 33729296 363361758 295273488 538638741 127458964 356300314 593896599 643825669 354758089 350034230 438246461 702724648 91790655 994615386 746171685 377188386 94666804 362937683 892650745 506306713 637544032 91844203 963270333 752242047 53576375 524037004 308048593 350598886 254221551 325284543 20951682 140467199 688646302 168741522 531622293 668621618 525041837 125518892 312447288 879799926 475553122 603210101 435040927 419860130 597825488 33728964 797048516 545008644 396666647 542215613 51315357 34210679 634059817 867102043 638969079 687636192 243655399 799534024 890751430 350393302 124818568 764219464 490860501 665981222 932960987 22482794 187119192 310519176 518039 499566480 42835454 328587513 102776582 330392733 748447643 553118422 364121697 398012512 98127066 613304696 940228125 1958775 500031728 426804294 721577170 139000807 114440486 817748921 791051183 857708269 168142223 768386103 621927733 511519077 286883677 407405072 386518223 474002870 570440600 387036262 973569350 613276055 715623776 928862284 943668788 316587771 334497058 160306838 714600283 285140476 773611534 654828409 139615604 126159614 81632703 713709126 117676773 48589542 531458048 908727957 758814163 552116623 677114060 233258248 63635700 963997738 640663321 450153924 290516960 63620273 689706538 116602662 676896328 257846666 45464947 473081469 574434438 232478357 485904659 289034721 370135186 112032545 796379482 509750790 238192160 730528538 75976268 355868933 631634432 607434316 264596890 390448595 12067292 794227303 623706843 75702992 610741393 116886516 378373268 901258353 180506790 68079807 17861015 709919470 325926473 915842314 35517291 900360911 837024 521421950 41911985 370972210 633454496 838291467 880723000 871646656 421336357 956699268 227515589 52970789 416649937 344628832 295935736 428717229 138856135 919642580 356936573 749597528 889045448 735309842 503372233 69552238 803389649 521233248 631988061 981832474 289591915 667505352 734709738 290428939 188927303 776621723 661401149 822381799 467429542 394640501 546544807 888765900 203856121 774060396 794253041 620506058 118689228 90188778 901739639 110061715 862347710 258676213 712175595 751393158 993986055 215547828 673461749 649892056 589297429 157966162 484240882 878889344 825471514 218950620 169318283 14398817 848088695 830719432 689296968 168034590 77876285 88358127 56800490 281732406 862418524 703569883 902238465 833624104 793758661 656494456 796202172 508622723 915170669 508377767 112532234 761673076 576441948 785993983 264081484 165739377 943960145 748322367 44628721 621948011 819789339 66463356 488863181 667878035 749699140 30676501 835912625 827575425 119034629 745229467 109307831 981453153 301315702 864062648 667593609 95074364 520557105 316312133 456213439 288244126 824689901 568745673 902433555 253648201 207256008 19031391 419387578 3732505 767353758 316532651 625680517 439659450 235512359 114543698 107537485 985211499 145220199 795966462 812786924 264254828 393712281 774611107 98224333 695027983 638673756 618334295 642618699 11747213 934646428 98832139 152507691 611852681 520094164 54941246 865500882 727350173 73972638 137404812 731082678 693842748 453937463 356763195 133502198 689449822 323823245 93556035 527177673 469043445 742038849 192480949 585814625 135751130 967092057 684038959 683295466 458282165 154889606 178430517 470029378 89536034 129779008 622537069 701388716 649873173 529994668 419405950 229739698 603967306 556810763 960822376 150326406 10748226 170101924 283828605 552714401 493925169 229900992 79892074 962968614 971939842 124889376 401299592 960207324 91981433 85338551 496019142 550263598 92744509 674449660 872809328 182280543 656745020 347862749 736185611 159134545 877857417 155591562 388874243 334341075 712402325 349696620 484667482 575666903 519798544 768496087 980897656 13723713 998397079 913306083 829208680 822853273 38195459 83024624 783060598 130176892 20879527 131596092 532956842 113624036 806045752 258282522 295904579 315307125 606145271 32090191 474441670 484002689 40198105 863315914 818343764 605116782 65528886 155527598 33300037 585327430 924023685 14197694 451567495 774937117 927503777 133292527 450306742 818215588 216317151 85883692 800908832 237196678 217479785 186382026 350820714 23525537 444664548 499241646 191349014 50809819 383848189 665790685 387328860 424046294 529106599 58188977 29163076 594635485 213716575 62463113 32479267 137740261 929177159 336563114 765193730 709197288 469855642 68016824 527412876 538689145 153900517 180838060 775885824 371380302 367220086 979222890 247422191 811884634 478464536 438771206 862694454 862312725 104561891 102539666 138875371 486184842 160728643 20554799 80820327 374445219 935534265 965815946 364701832 864711424 302379060 129895562 426425065 624751054 50428738 953837941 163440200 204329255 134676002 791842376 575709557 354412440 771065266 823131749 166297075 102046155 261902955 881507881 816875232 218981198 984047547 955750604 705166040 144776191 828821755 638502719 519221410 764356020 604318665 883923242 481583797 759214077 866335156 908008862 383965132 916763894 714363155 399921684 121093150 701555509 191764060 549319059 55967950 815345678 372450808 74781377 917391833 486870115 956289258 586783418 705851313 792853157 395050374 411017353 937629348 223872129 49520072 309367110 840744502 506355089 45806704 174844651 118085519 764658212 82853513 502050651 533938459 649733020 901972335 507547961 203804882 946252747 56867020 112289184 761598425 281834181 39586913 531506611 768704296 995876171 118290029 474555610 641245680 365856755 738089315 431391381 589728884 640125740 740758491 282989738 146480829 639081548 457834389 117082700 403739760 393204254 619133351 937678219 42937275 373622038 297742532 99258509 172391137 354609553 64064045 933989563 636443734 103650958 318012526 257664382 99527129 288818907 732219992 593289161 654675662 322825660 24680542 96920898 962951400 617955386 379910637 961948581 257036934 837745026 79031282 513293046 83465633 550680985 303487618 126402908 924303024 601230150 78177769 96694161 955839703 142241814 883200076 444799789 245892772 53728954 702464172 197936253 195064213 287200516 791225414 849739875 610026176 668422309 799177126 425493928 286377695 31604115 387442510 395930981 869349141 318990144 909224027 952814774 869671129 212711645 931734034 646490505 813941796 862428155 595701019 622297851 4669969 331417447 919613993 103079093 385146402 474594517 153531698 580210615 761795033 944757113 282466843 224337562 465695774 81643969 649831490 752073469 113248084 889790352 520802 835113577 208780496 909744829 640444704 78451626 122456475 424695090 577458483 788914623 139639598 173159502 263728826 144309567 504576950 35859171 99905013 742239704 510453688 253436711 174966671 124765074 50710176 457433514 349102636 516405950 391593835 851450478 120995771 357358271 741240831 121516573 44988201 802537679 31261403 537949257 733505657 6234230 962644347 310964141 647665205 102283945 336639995 763910383 99109865 841216945 799769555 51531230 435973001 310223243 157484293 610939673 434988317 208194470 68373187 636607305 577116772 312483375 488057784 698112544 522357998 81814967 672145469 567346199 884352646 555923224 105295456 470374656 414673806 920456156 781338797 62339011 875256453 117978792 678765747 826882670 811712090 478535302 730930252 100201443 641274897 888414546 711141116 76263215 96609016 632030656 565386872 526242140 944514031 53444656 76871036 319388381 987775975 749016506 886734581 724644974 304939730 844546389 195019630 719613537 617518897 828874779 634468900 345291703 799369923 165750999 24690725 463598365 644286301 755620978 563799809 138077551 496551876 274940925 66857118 445677244 906971581 632243990 971919384 704001964 538204999 48790421 23390346 525980974 797806927 762641279 103142300 955263009 459704020 298161930 527392898 929739270 127036709 14378151 127547325 778922985 180129150 152238050 242521350 824415452 760375380 806321159 962493003 256927256 933778437 29350121 702604500 693266370 514110463 527040237 249784687 52315462 575830658 125691385 430812789 226153937 888332664 533955089 33933298 200553036 832117020 561326197 130292306 811670081 575704348 110355983 443109418 755833498 262594034 685630769 432765302 22969414 344468280 247774657 132413023 130763069 129641130 687533875 824029440 643751594 214574112 73814127 696067056 642921122 199505512 126879845 869075059 940354528 513351287 903008358 140907564 197984659 316850907 123716223 9654740 892555255 86588558 305280511 648388753 349182592 990911280 81154056 224668359 187895912 181445065 209597734 318658982 311086196 897131609 142688422 954837790 111705722 69018901 503421198 607143196 121040765 482817396 328734608 61395293 996168683 84259318 54819209 194153342 401110225 31051784 56324434 293665480 117640343 361604945 794570585 319339287 205032577 728240993 544007646 245444842 909686059 753605380 564103824 220772255 503253342 559308598 28126397 467475416 480843851 531547595 74618612 601884616 14364991 403353220 663279909 10533674 487612538 570615470 57203368 888722763 601667255 113527803 34904595 571823950 327649100 829475181 891163237 385198030 410232526 287687236 630642872 319918585 41292616 47263048 393207192 397062310 606571646 421333589 864537726 87415497 952881185 939156339 541816465 967246176 195025911 57612726 830296203 535154802 628228196 740015923 276393917 82411803 706060078 311298513 654235753 33709179 993290046 545398991 271423561 403522572 833086227 902066433 575957510 726895195 949329481 969164702 123957506 408417479 390498292 841011584 348349328 195895829 632684275 890165793 15658357 827710187 947778519 845954560 215381341 576006715 438486836 491775258 658418519 144546914 803073771 165170624 30772445 648880169 710569615 302196006 52402742 396172194 56778791 480876604 975583742 6108272 450041306 952057600 414525751 693055950 793069184 762875079 888951779 278269812 505557224 904610137 105979999 453335743 603081049 173877692 881858811 41567885 665652950 392793682 38631152 321243074 557964306 69403597 970123243 121050274 224115956 875042337 517222468 280894747 355918941 345322562 287003020 658476600 297380162 554045123 351532550 942965699 169436555 93000682 221235511 674993779 997610819 179731862 128329523 600691868 353609554 862704686 494776106 19262504 255498368 533407258 193021930 813462674 602810855 163145174 934512948 826926811 38187511 304251769 107821559 246622805 649574331 247340931 905099405 799470846 801386054 109148307 742436545 970822609 202148989 816188408 498332741 52276160 995920270 479178616 652968029 202046176 341883302 260487 73825032 449898022 533667745 266846963 115877048 136478600 282508489 50389997 815921764 173212352 207158118 776259675 419835157 709248801 876116958 177450914 508719647 530019364 139115574 103672544 353358326 341264563 919860952 851691067 393540724 768297574 330869683 899025105 822860102 525269337 899285592 896685135 975167359 432953337 16048450 91044407 421948289 298556939 993950756 90386405 471769291 53625226 719162432 744120801 762874028 595279390 921571715 124110027 125298755 60687289 227782572 331173433 254468205 159876 182864500 500525281 620973803 366250535 399550386 443833905 891519872 151352330 193035392 866687231 584305667 61600194 810247990 858770308 360157133 804198747 949156714 684442777 857823973 520835498 428563578 473214353 116114889 202651645 597324381 93929996 115855287 825106953 277619781 222839844 677783181 460484281 723365125 298756984 826734816 122915511 595107242 570771040 126784193 788142634 289974623 711089860 849742829 100222613 422376520 62416314 756937712 224049586 746859091 467278038 744885085 27939021 940492391 713516326 83107019 537816772 659962674 198962306 215440077 937582455 421802150 893223259 250583088 145167275 44496595 77317904 120599138 639603837 500605296 99899683 280262824 790579919 810989543 982522005 890802532 85882415 44938319 500256597 309932002 644313763 967534635 54817087 524769136 908027026 768333413 607876155 298360151 280812439 806838461 366316580 218394894 81156963 112056191 468977982 78840590 156552787 398812238 51956080 648672976 899417534 151855763 928935800 542513805 815361658 763974157 285832689 901244074 661428829 786089286 211176076 158258944 753623921 118509515 683028080 514167300 886842928 290904236 665043803 20171719 950259049 31360383 238566613 31416013 143416575 560060947 962772955 152485714 958873185 14729036 801158690 710807071 19101151 582610843 105837228 834462810 346585000 391669917 588223236 8013829 177759204 799399312 18789125 783899477 917908827 701817206 150583129 657268107 992721442 815626932 677439826 795496843 846987316 768522791 679429208 842920243 328583738 642202164 995405957 139973275 509447552 796564647 703296698 381065055 231691842 809133926 68044217 578276843 200803843 656267453 438807024 231079399 308183117 457596150 14978877 78608296 11929708 165562006 735876403 4651150 981188939 265832581 652664345 680692607 34355372 332093554 376129202 215455462 826812070 371535159 207945089 188775974 20616158 911241787 569841029 252308001 720375713 637885247 683101196 773695909 294152700 121908220 4775308 602335818 432020722 19754185 680944114 443950430 37832544 269336870 301117932 871537835 387685803 953782278 404746794 274557528 138392184 780875996 490012990 965204254 4927507 697958080 6496580 25543665 461716219 576337609 130368018 34608285 214222856 813469214 808304194 360891909 787893787 813079502 963227727 72430861 685350040 496688193 516381292 575698936 618541415 670015576 447236771 6227219 476314206 851983565 280784747 614706390 485375913 623314089 432426996 490303420 173788521 438923576 515847085 635504741 15261186 646215104 670113026 82000394 312200670 478417220 442892303 100094457 144013074 258636382 172525319 681879466 607840928 541422963 257578402 226382343 211438539 557331525 85125914 687752746 261831442 365910661 154975488 747207355 989224751 439918837 237510775 15529624 878842413 605874213 651034365 746619951 104605669 321147391 681136698 416806339 652080963 124029001 516900797 796094038 235181736 541942468 330489856 843022664 83365431 588068259 921921359 147320322 145399784 7047274 835073068 259747579 225474287 842564909 6954934 67215390 282483746 96982062 82745015 13842511 702856275 733779380 612978815 807461944 54926772 294115513 224268283 559524087 270660866 593685432 208134477 358358954 135627900 538624334 53897970 71509683 126692593 975819330 218830006 124608729 982866604 53903074 236872660 60857243 748984335 243827595 128072634 31468081 340809657 210817649 897826945 43665932 944597029 510805760 703644228 852040153 657437625 927912511 411564241 928098491 374114296 619698718 138973798 509742196 10839404 192871768 581251880 137531997 168691098 800081886 114657079 4074054 706501312 204046091 64931298 308002000 447873686 193003932 191986433 641199695 403821581 89813378 537381979 200934962 453135490 241026207 52975116 110573115 21455071 317055709 891187959 395569367 936754427 30161757 757827915 947593832 223033525 191596147 937642181 244240976 991678033 904815612 248315030 550695698 108861704 165762680 858697698 409251742 358766612 50684131 50451438 615104545 993013862 440349769 816039508 446149352 681375977 869014624 409238820 555347400 38586685 300426779 950916767 975341112 183104888 561261034 775451296 406138413 752857182 565609830 650379389 597051567 322941794 751210772 263617 284319850 916973452 858961315 546087945 128256417 762161799 449055735 743360962 607692013 889405504 559400470 53841365 423297833 280931446 315596537 978645233 319518131 616023316 782078352 147375596 799128204 343339387 775343244 57782970 96196569 193469426 560678711 545764488 516411221 311889483 546028106 653247423 81379288 257505773 199335368 209635705 19667572 648391103 952996667 479875937 390312960 364913490 386233655 813610793 645844936 701830192 792256027 817879420 170369861 426850731 965255016 969498065 770190118 593114612 879797387 718903039 786584039 440476099 117183880 155511612 604881934 663211986 808759035 686261222 920717759 8094404 895896927 792901684 509001859 848893595 272777621 899314819 66323437 659011276 565441965 712168373 213357821 210214344 382564145 383727682 637065075 200335513 205742099 259771546 793450126 85539487 978674585 580034165 378531938 95858465 735545777 983413872 611586803 396821164 669675095 532304563 257431920 418088374 177722599 766433780 119498321 450500220 518264951 185821758 962027849 83706916 897990132 175385670 146437612 133070629 559113352 783502688 333406143 764855451 43274234 126856269 702911290 874465171 559406786 81443228 822839989 147468915 64857101 434426792 544290079 587048548 819247707 801722000 5136922 996970306 420672132 124635244 299986879 938937083 162973354 262014728 875160352 60963486 289916750 21597964 46550468 849030102 657617004 379956611 466401905 700891238 506812880 21829548 427872762 66219666 103272776 250712751 66204933 20646229 537655895 610495012 460211129 356903603 412217012 317864404 206390261 832889144 295016000 506377140 624342580 457989354 768391868 352019284 371469193 58308618 226133600 418019661 759855072 883750605 797976272 78773330 437158195 157305504 100602878 865030957 76041522 56392006 968260060 142246455 77038236 505915956 752741467 537249365 715335911 17474832 855113769 921726172 850363976 2646121 428103313 327222908 460635476 49011533 531758544 832104669 959836504 757892145 250124330 572207928 494159102 48100602 650981258 783833649 57922458 604100488 501380959 133963980 660492495 469641019 276210435 737530731 828073327 28951902 127296448 543409238 46426734 834926570 317651763 749307063 837572691 745755076 76529971 298208167 647282961 460804868 130312836 607119465 71213365 232953518 31843746 565372467 133570472 682825004 201722468 191492930 139441845 703103427 325456910 799934340 25260799 601667345 389981423 853334126 483135600 517277871 249259717 529562334 204720793 566911480 131385749 42293485 165182908 60432073 193018004 812465869 521236941 175847193 272101687 592450306 408800711 303945433 10339125 394887536 986770437 212061593 586380466 126212282 915165021 764353729 778662974 940425820 218537426 168644397 793759946 701673026 538438621 43019663 83751713 743159414 462447495 215137462 785452899 627630403 275569535 978470904 440096273 796806476 6834449 712197960 389256782 415635160 16143393 399595907 810522696 855430182 611657501 249419515 834158817 379338874 13773244 465338143 319764694 84827022 633982541 966040992 786500049 24937514 861577008 870251762 768096928 324024503 85389224 406066180 951654907 360958760 237053436 244267532 10281588 243887885 808981844 399538371 659523045 677641589 651650630 322562094 385588123 115824483 424497961 72263292 495163357 290787557 537601436 814928051 375614579 24100329 633485396 162114628 49037843 495062404 32366390 817134771 671603259 970271967 223200951 475774518 183747079 460254387 720042050 194028667 704142272 381540246 593567038 216181670 59181835 97734021 391260116 444769959 213558504 815758077 517033251 708721862 106545634 54634687 376166265 482160213 78735016 9651661 496791194 127772859 357230417 381673936 797423983 28833677 351945903 20624934 504608195 535692982 333395674 77166598 729721650 890054298 458706844 175805040 106235968 370405032 273539061 350012436 815174991 487097566 165770513 184724594 48335780 124832499 91875634 424502045 606992713 23127002 434153707 103783907 3416214 791384124 337974195 800840197 672734153 689920099 673981483 29858701 78129433 859893509 107025299 660367435 749947808 418248495 836172476 708700128 788653527 962227889 58712565 456344870 301841807 76999430 641069465 350177587 201831930 585461451 774679633 661340995 608588453 61349692 617641254 464521019 852733816 955615449 117877568 377984322 498051900 791859052 407843023 576181334 504268913 514868322 89065121 106733073 933116817 925237597 815433202 574286697 739981839 726662119 30631567 41823646 656177901 524217384 392001234 858009831 109678835 19197219 371867178 570783641 80546911 989508432 35304660 933280727 945123882 153182229 163781401 295692134 797557633 571624424 871873468 301826546 86492746 960938590 408559620 872125916 738692539 76509174 298928965 331190730 655687645 329560532 373014377 311865546 853777917 617531963 22391730 815973104 636729182 394258908 386756745 717276093 236283693 274577758 503073172 33923927 427759987 666854574 329616061 77833972 238478998 54005882 379660518 177488097 14944472 640736490 902130365 606153363 717245664 201059330 937344094 225449661 383136214 162874823 537315208 89430483 780406786 412223290 905403588 269652320 806482198 144676685 986928413 42765891 419254443 490001585 76689818 847014430 9372511 258822232 924848402 247851510 312828114 157025273 277855959 180288938 797761763 179986324 786442301 367523780 233562006 576302747 592973441 616698220 591693922 982805001 706128704 224617060 395028291 611532292 494269380 54026842 756208977 481197793 949309085 27979773 823715731 878515256 874994203 833088242 137337488 652358958 80939752 450165602 661900583 211312063 630454540 312178698 391298387 269413193 679702478 624860393 698232293 125192272 94074966 289926215 107997273 800203670 514543276 355541917 264252314 8812656 262085111 20461291 342526802 211394196 48441064 18758885 89909452 775951620 851847127 79763292 280826930 785303232 382445246 942727513 996615295 12899786 107422563 240430035 134829332 787125042 865290428 833061625 764833666 959365394 975504192 725347291 612085416 342563820 80889208 876337730 203892829 195490671 749315374 546419631 406884868 650272790 565178516 349310672 278740762 269541995 281590317 559567692 54845227 664035563 354811557 51460523 529451702 462234121 144406910 664281034 101875515 9697338 349859011 866709181 821579085 177879555 444572824 286180853 520443376 377978385 162518584 724336205 573469056 911833958 123272188 980353924 414623100 688450704 182180949 693363863 957992699 463771266 105447907 865354279 127806829 460259465 769331154 509774883 775009938 913738064 26572269 876885453 775951754 376431280 596110986 450047191 554310836 40683810 736228045 74754212 271178547 898746629 651606769 844647604 663096939 774878957 677517880 77720039 315846013 859698829 623600254 126355064 175986447 729048162 991709343 156309629 41823979 761040497 666084512 816833917 527294913 692656782 546235722 303246668 921604414 142346708 753293859 328431602 35546870 342038256 255702166 159241770 93301237 907308935 3889374 756398176 682187892 681407254 686634568 998033905 393622436 162751174 124388970 422125235 891799336 968614665 578434864 933623315 582171515 97035729 750457232 109466428 642208863 149209306 265229448 563813277 144072366 18523308 892244880 32135589 213077916 463398 191377359 306379154 907772334 195266733 62777330 442476578 729190339 601928250 293026836 122812775 764679425 269932158 397454363 508995113 238546823 975889227 442618429 820718338 925441308 45592013 782701119 567650171 194801320 47930567 983979801 338873686 918970227 728741033 371009275 132048144 729204431 562386634 438427298 636976765 610169719 353720980 79453344 339360059 808165583 224996532 314689186 425361360 494928690 712143549 934356473 733475513 540549129 229491254 406710204 318506789 275083268 41927675 886156961 322400940 89858242 722653114 661274626 8828470 451394147 884800254 993392966 33114930 299703240 284336616 670091696 909872960 638057596 602061392 101749371 298739531 827057924 416438557 724100891 174502966 981098459 658457365 907978479 374163940 887948619 167205035 692670729 15548239 209132710 431344042 337949179 151507305 153997156 851740158 12852127 457907655 736540412 6245093 491022586 36243652 290581709 13630634 798632964 781155657 615692026 900382335 79895189 295266302 169337245 803996080 469769268 150435704 314969797 230264099 524599644 55434769 249985487 69786725 70983008 459118197 501130768 261448540 610625502 655127924 113188698 623477629 113035580 702245462 482239074 456574518 591005466 772820783 470205152 242154783 406492793 85897178 142537118 486387982 233679832 311874363 142900414 555965452 314826419 310386564 786229551 839426063 365821333 36215038 909212789 289320693 347849588 262859909 403285585 810991442 917987833 368990635 286985424 883539765 71236097 769224498 192630635 514757916 394561634 662835787 756912699 801054427 601249317 751966169 139958761 834929149 63840533 282859175 243410953 231183304 593245739 29640505 70609368 811583424 918371895 832338509 100904118 118737835 95198418 356706055 929729278 865702603 725696691 69231054 601758721 649449140 838455552 794389356 16723408 233017186 309741496 773636107 34071613 910990813 378118629 26546726 598436315 294475514 309405902 841847268 525658818 755167993 724004125 448784538 566751418 494892373 133639399 520171888 613630208 81354169 876877943 395875838 947056773 455090986 465106892 401331846 104540127 156078797 48237554 121263535 389095983 357979050 747415995 275683949 121486216 125534624 302230675 719922531 420010138 464152929 561769799 945668956 219320923 138290277 246969847 638588693 633182650 380609246 11276933 99329210 461963416 888154876 495205049 261536541 195762215 812828293 662868387 300302342 968907090 563622293 274082229 210519426 921601344 21498224 486203375 43087560 147032848 640950402 615526443 419559338 105103332 29812594 217744647 176940607 168102871 464714494 815529300 801285521 845323740 826806233 900614732 159803508 567477461 248336133 421340049 763239676 61164426 84208436 63542018 30071517 500347082 190140600 93107295 274464778 211638824 579310670 170068690 211188025 72777424 785595133 483263715 177880756 815407727 701008362 354821363 983510599 18239208 22867015 784796120 716079301 849673248 537927204 875882809 417150710 786263337 297222859 32906738 847427764 233947647 96448757 730015633 734294729 139105709 823122928 8759507 350744533 254949950 31344549 414448910 327727374 816939682 897712626 358124483 632347410 451237340 712945846 468374361 469476549 735812862 105686833 38072202 438002462 643614038 913955011 855153172 429877375 63694222 888059911 129821491 297641870 837025020 712353476 884452951 976130729 387992756 745728811 179391614 642942706 777073360 593840525 823186433 594013043 344069503 181310916 78876805 795306843 746773114 547251166 117299744 335102328 652937999 155371946 773104791 149068389 69326958 480774315 578945765 133021180 221350578 561283608 283179402 58375598 273637085 167632354 887022679 661629841 913361165 918930646 157088900 542950877 365287523 980275333 136963920 709357026 14102601 68357077 504663869 760875715 468124595 621963614 95978044 121062595 777335560 721599187 122647336 699178870 202373502 701593101 832200051 423724081 115393062 115379453 334616031 389030147 135528159 74155063 903176340 901405676 993085709 60265240 444356554 210889584 893056925 433836826 920246610 759675878 354710256 277426831 373067946 822834851 899390445 321562342 796413798 529242358 43161529 919061135 80937580 98051383 473170588 913137631 521775464 588563650 881033437 708907848 977593797 869077948 783062911 733286490 770483625 628664972 646068082 67356531 839554556 391641360 353709709 612317518 151317238 708419965 889744349 524385184 531254817 641651147 845947526 180184967 23409857 741625407 99246102 104347437 839676791 572416691 17485069 213968607 13496693 751034858 922876455 991090491 472629158 558455718 576893333 95629135 39637042 222961415 162985666 879191598 614602775 516695376 344025468 618436366 77631693 233769818 142821550 608886510 875420965 841285429 789071478 898830822 435427188 740833932 3178259 275103979 165766975 873179680 489072587 179263669 476730890 264465394 22870512 949360049 822921113 599763845 44989184 862558155 822725260 60491203 594266106 289844388 429702931 938291574 908280754 507334624 24577744 903618656 116221135 899998709 597420437 757808965 651345883 32847626 351159249 507040495 160467957 516926225 232736527 502056896 696189894 561983770 766522291 719060406 363860171 589443404 318824251 261365707 304517911 994065863 321856910 898784017 136426603 751559841 837075592 44707357 111410818 861653336 800842366 80148305 614168398 250779155 837957270 118030633 136143133 41632871 477587480 149127443 558559096 710324008 651184339 254748990 124824130 417706630 973809396 488684301 859666386 145149999 750050008 164184298 139215863 71906919 62968315 128158818 675983112 752560259 25382528 787393930 466729948 826224894 867542235 933414698 929520401 558015857 51445331 65663535 599648729 381549164 67307330 10724177 91873172 718491669 265473168 69213654 136198300 91798916 557897955 848381038 89465268 307947963 12565336 81197483 232371234 928050004 209356301 760870699 533126615 234738829 400780981 852372915 60963723 120839569 785787613 843000477 678855426 689749297 761180364 131020507 71298461 828487694 141744685 15687985 546979363 259734205 84901639 535694015 351533121 495315946 236591406 440998389 803263909 101673094 522195872 888151496 29723098 731552174 649022195 415366066 966291003 49803176 120255333 879771079 23159097 906042947 575287908 702014524 448308596 336468272 685551383 372123409 17472318 827296068 240327746 564451681 87030273 177745737 952662049 291079747 673061683 189253455 584594488 328841944 290926549 106790361 69509792 173166000 690858887 718531987 441048418 509666242 620851516 561303751 241953673 644010613 319863050 817241581 198541489 768171646 6226205 884092873 992811407 23698523 563905293 85655505 440666557 503451919 263401242 393328606 647048018 788979277 435098413 231642506 117821222 726024962 190949219 39847366 751707314 734324458 758379354 192755732 96507053 231747222 754059484 338460726 728274187 73922534 8218660 926815677 694610533 14444865 663424902 539938292 890659741 79846547 625593798 331326298 435814818 888995040 577171256 82862836 530490670 12269669 167021695 500828244 590810983 357970914 540675610 342518298 92295373 151571316 387790382 41318778 383318538 141849866 379779504 111592726 68288753 240514516 890924755 615415638 107475734 406866009 7870282 998135475 339228908 633464080 181978125 775043727 374975473 759149381 857906563 905466143 771419050 24928258 406294387 214746385 235415525 946969997 557264683 180227250 98541314 945055066 221546028 334376204 939421284 453841884 298485282 860226389 694356401 41926389 328158379 801832135 301308750 336028662 799967610 640537659 969492742 981945735 415581386 196984567 593611468 126004301 102450710 217546870 3448912 361261449 432293255 91380789 160747799 989557939 271608039 111805465 787129357 345670419 446181669 579066993 799512303 597183304 291809735 493868704 639109693 472484466 148217191 940418444 808513128 948184801 433472455 630522223 782646888 849053841 827506790 228774708 827574494 782473853 446321578 831023406 143735302 878614834 922404195 304483101 720689125 46528586 416288566 360334834 392199005 714986588 939401827 44227661 312169892 83727914 538096365 803795937 556212381 686313557 596730733 217241861 487014710 30203188 700280436 122177951 731773381 380303579 350952659 559347876 162777432 797274238 242887634 159029086 528405424 17808182 463512188 249094549 64336768 732317106 609429383 309052126 447303694 401347562 353279787 611989938 337591829 743892504 415785876 893804210 282722413 12516609 963562423 769737124 895236150 663842860 744431427 627009531 44146439 95384086 38873759 59440223 745174676 134277746 218469309 126096452 152085928 534497849 375191001 68939048 266814956 837136736 230507526 566635002 91000651 583787313 178624941 428592480 180196170 446927169 174913042 462918583 311960130 138475465 85172059 207196280 654834677 829603486 686722164 551497468 777503925 725595923 610937691 375194953 859873669 681923353 501291406 864475949 216421202 876482407 933414998 335752510 566135496 16438876 902387513 657136147 600226190 81012454 85728627 780422360 380455975 260641669 95857295 692416105 251633486 181029355 899612386 906468164 10632841 438850902 457965632 788136766 16963177 921419676 15848072 876836847 603343029 517139478 593829148 672280583 246138237 379760498 8033094 812273733 396199375 910420607 469409880 996425565 843949413 407654859 629364277 76921740 668296528 725221572 769337845 919930015 906250927 521466583 678914531 769400121 960317485 136880163 410053239 977280663 910816191 425901311 706633862 366675572 943040789 300463010 38956156 189179027 680223509 46989250 1452760 76422884 809926209 323378993 925364801 506391974 731033852 407245430 583313714 251846733 984983354 205167911 24293100 743750634 726634495 703207631 513150755 686951980 692604146 923203994 516748995 455936690 201621658 223382857 822612262 144662447 376362220 861568418 186357826 56585729 761074020 40326939 985524965 423516581 363705932 763406118 782424907 947256136 23167900 218254973 51619221 8151254 423422885 75912321 604418240 150057380 631636304 117568995 689525712 176756803 893289342 206274708 632693493 94911000 282173917 455305755 92089799 658536137 169390526 278447626 567638218 782980898 318774565 405679535 59013832 534996849 21602005 841438739 482252985 44769905 59693713 533872207 905437512 483116598 462300880 509855752 485690330 93937185 479941100 175216042 270693988 225746794 234007102 903387481 173174146 516181020 211209588 117780297 174717157 233116466 396227923 742355376 16097365 567518840 551263 75111197 102515689 22153269 916549936 437285027 66923174 828760001 971157234 972360686 164392951 285974466 334732791 650083281 379911651 667190243 825299324 503121991 892937037 59306426 259025824 918627535 428003798 470235413 36407832 602720956 703351879 285152108 197592684 571965596 852670948 198143947 647076793 955186638 220297216 416143082 244988017 139736743 97419435 68661603 112097429 261812387 354636069 299346572 911895668 734547721 966536815 589711344 90186064 711990204 501534123 349211889 483134091 929537921 819447302 519541924 384775229 375315533 804694032 582367913 947281130 509881332 633028213 446874275 317584322 853325429 715533709 562572339 993062172 812953145 631233942 957675954 74765532 985870012 109538878 986661200 572934085 928592046 428888897 663120149 493098602 930423020 12332038 976232694 859960941 684295692 348290970 97252523 59611226 5501354 679620436 859408708 515382686 165165001 158799335 832967009 18490431 874333045 395539348 864068955 539802542 26773291 674261261 614568074 865159655 636316492 453745626 438093740 564908538 882634523 101213889 58007140 665573895 966062280 886756186 378051189 650357972 235047156 475303712 562485550 240548510 7440500 274410610 755931197 172605502 285726298 441414558 43612285 12575695 836953906 907681240 552378237 716243549 434458854 19462663 433919556 70775346 473208289 872013296 488200236 208359165 825743538 398723728 873933060 644322170 137996267 104500601 147196494 373043423 579804313 709682045 466108286 587244814 836609007 74555835 759850316 122335305 515970393 803462601 134911000 205440651 563660193 687289237 921684201 998119047 706751900 208120109 921410745 32476542 80133406 262127333 93352059 758393296 513367414 967285119 255231818 651363681 71785721 402428312 24407104 504106386 112110357 343031742 91351200 801235717 417587577 851201516 923571022 933557970 507180469 910998375 138998622 70840663 450803964 913199175 921476062 10072217 121319284 695403160 42548759 53969042 957530493 135900818 664878690 323414259 955702289 920110508 974777940 880004362 322538821 851701397 384110749 287165530 194733139 327978301 88401247 612320717 31696170 864488622 398395039 538876639 628003349 537393661 609717302 78807313 303109188 383709717 88879530 424428473 79112877 131428289 330913867 889159722 119845459 995792558 212573982 75547749 915903066 39868274 808068463 90958239 891569671 44695564 230640122 86302811 372673866 171557721 551139880 404370036 36046343 949534919 943246675 516566044 339444933 405480330 595373358 642554121 789190047 536769240 919498946 868302924 520713882 250412814 609978998 640559341 98721724 822552980 568623442 14624790 862421255 229208258 958099382 606507278 273903822 188739504 545326441 646577688 360297225 96466321 50947724 248859921 898517593 994194400 765425965 90478878 252191082 213315675 585549351 41381129 750084916 505048298 762200405 123315150 607977464 372179403 763874491 706699188 47248736 185014286 573840330 762186343 414222544 531939712 368693621 688126366 573195568 914020063 187220407 933492794 863002736 238168131 34869067 614036681 84878883 652811384 557031911 337069965 866127060 142581263 230967446 468728328 500145913 993167851 592043478 108123377 217863607 208434321 814822565 265112343 245964959 241179247 27298686 660187503 773118960 248508659 200830222 198830880 15045074 388050629 132323674 730564163 478735112 19709093 197117196 563613996 672520478 754149108 753200313 391163890 896730371 984167760 712408570 249392636 977335611 156968400 357516013 47715570 365402721 24854930 312827913 611367681 266034177 192642951 124071536 891669489 293667963 177418110 90500370 308713037 565468739 75340396 39277200 44203852 95049490 88910749 460334200 620086320 843059857 66050865 863766562 592306580 50218625 576175132 841699216 880070589 733143532 51731581 927786159 951062605 76586511 93130425 414946638 195137040 285773376 539018175 86806530 579441339 716436285 29823252 740670729 134421377 105163648 632464281 31141581 52729490 721375030 343992133 525332162 564434887 410042998 389098724 9257819 460261624 817790208 850957035 192848565 403450092 902688616 120634724 354512698 979275127 213765149 769459336 26928520 352054878 160993863 113735050 931496217 729946501 143558302 524683298 864367878 101238302 157147580 748025811 153967793 878522610 92017944 679299955 295473850 502060942 920915032 304731669 814838918 738705240 8205057 7687483 142155333 910893673 128322208 349184383 742685153 194603709 971160071 769613673 546658587 132153935 883348723 330671157 714616788 879423377 855354455 431501018 980661679 865018387 179526829 134629472 596057350 124061125 666445780 891531200 626122067 439877164 48779221 293477338 31098756 56984278 301164821 25770441 967877952 282003381 374954824 563079457 329123443 198631248 332693130 875782030 183301535 68558205 58969539 897918323 947981582 766840347 329419341 781159613 631858734 361462522 768305438 80432436 485523647 287267570 971963636 111645714 727144734 873259210 257639404 758243490 930243488 558804226 784013932 750637792 693323959 11485108 166233601 22447402 210116356 498926731 750745785 393417891 420001288 809715324 291336214 220499222 429072023 473271907 1658836 60930758 834734429 769964274 141363194 320258076 57231844 965843183 284420143 636892930 691618745 542059547 395136420 474378585 953380125 31666704 77532730 646704085 43151813 243766331 521667839 253268169 742693063 272413624 646686061 15210703 934645301 938022275 235709926 363717324 263810535 237368762 277164434 98544964 859849388 271043981 271319393 769597584 89403516 555739536 406490514 781022261 950315435 654143286 107917198 903695561 685809991 185449928 402915998 728961804 429216260 924583837 982229973 24425675 49513814 628916034 39636378 984159115 419454662 275346304 200392791 683265197 512715066 330073578 634326513 225080806 601117559 905645906 994678390 543037427 313901794 253685256 176576040 264217230 907828543 284493238 20429143 593638534 469943167 275861493 175116690 899159427 52961682 157346663 923585102 102475496 638779050 963221480 939150963 58233712 238567785 139543755 594015261 603799203 322133685 80858126 828880010 923251244 986504033 823558400 318805023 300405827 77243657 495381063 417139409 837588552 779874301 437568552 283743438 249817468 713430045 458860128 1493247 766391728 616206791 925078349 721383576 107502193 888299830 660534540 18252257 979383967 652594647 612267518 583183170 974728332 693125645 264579532 750495928 532146030 88137933 69300951 832551857 17897942 417198366 102207619 708002846 197072667 539776171 991746284 299406488 105722569 450606412 300899735 724630649 919329555 225978085 446014225 26831749 966794267 959065117 45084006 946178234 464176116 509867877 381877756 291420800 55509874 646457289 41916728 587655904 587111574 963734031 272724113 457525868 233448749 374931732 18045066 430521417 914707904 9791350 729927905 872946825 312914114 30827640 597577474 232243669 109322077 896108051 111591770 76116344 855173169 156675777 874810930 171865637 666543654 109205039 463286438 722053528 608178680 357719518 162225784 47806606 173969902 434949897 505332474 407418651 809881630 523377540 837940068 577105886 385685242 420384325 450052711 698599356 303728318 900146537 930843025 265566747 796254588 42434796 194199444 503944109 51626925 69010374 675809747 570686931 30731765 139096185 145256811 638910445 349332055 307482595 686717051 523301957 742432492 44565877 930720609 552314122 420459769 621177029 129420008 806145011 41561355 431989071 504744367 197806025 184651960 288103745 463372772 980906549 183054893 657572216 337367010 87198170 579098943 865693109 657885101 462347060 857305646 803141912 101257506 206637702 110624507 640490909 729939659 853056999 537573139 513176620 257887474 958032908 134353650 239823834 764177920 28431357 524329258 121438639 78753734 708981218 262058736 542126506 542404119 445113629 52215075 879771130 532311799 483830370 597980591 42713252 946177430 455286238 845855164 899951288 514440292 956479671 392958550 96896303 662053023 930531689 610072924 772456849 888564597 744426574 12280683 505258869 625374283 389126293 479213861 704128017 98107512 741272597 98770875 640511631 38902579 150985950 372799113 571214378 634816320 970779705 613927631 433510103 278582295 312299147 333461391 793022587 121295171 726419941 889918890 783348194 509467982 352508166 408321395 250548932 96934740 273118430 755807801 574825375 662244724 87538014 278953392 760352236 828810612 377724268 253380219 867713191 381226570 478695685 291443921 16042891 301991742 905371552 302069346 580574037 70187052 635530737 226112976 191482223 214467031 968548218 974830417 723935013 321056385 235668164 974483945 270507477 508786594 582808099 845332853 171031318 670346113 976802597 783899906 351673077 207043217 37280126 219386268 588269788 368492163 510830190 456829031 670483905 268718094 758898377 103574294 338905146 246945466 329687270 530387369 461412497 150751840 357734138 37863863 471808225 593402302 864864160 594832055 102188897 300188611 292681260 
stdout
3102463716735