Catalan's Constant [Ramanujan's Formula]

By Greg Fee

Project Gutenberg's Catalan's Constant [Ramanujan's Formula], by Greg Fee

This eBook is for the use of anyone anywhere at no cost and with
almost no restrictions whatsoever.  You may copy it, give it away or
re-use it under the terms of the Project Gutenberg License included
with this eBook or online at www.gutenberg.org


Title: Catalan's Constant [Ramanujan's Formula]

Author: Greg Fee

Posting Date: August 13, 2008 [EBook #682]
Release Date: October, 1996

Language: English


*** START OF THIS PROJECT GUTENBERG EBOOK CATALAN'S CONSTANT ***




Produced by Greg Fee









Catalan's Constant [Ramanujan's Formula]




Catalan constant to 300000 digits computed on September 29, 1996
by using a Sun Ultra-Sparc in 1 day 8 hour 15 min 15 sec 55 hsec.
The algorithm used is the standard series for Catalan, accelerated
by an Euler transform. The algorithm was implemented using the LiDIA
library for computational number theory and it is part of the
multiprecision floating-point arithmetic of the package.

LiDIA is available from

        ftp://crypt1.cs.uni-sb.de/pub/systems/LiDIA/LiDIA-1.2.1.tgz
        http://www-jb.cs.uni-sb.de/LiDIA/linkhtml/lidia/lidia.html

The implementation of the algorithm is:

  inline void
  const_catalan (bigfloat & y)
  {
    bigfloat p;
    bigfloat t;
    int i = 1, j = 3; // j = 2*i+1

    // y = t = p = 1/2
    divide (y, 1, 2);
    t.assign (y);
    p.assign (y);

    // while t is greater than the desired accuracy
    while (!t.is_approx_zero ())
      {
        // do
        //     p = p * (i/j);
        //     t = (t * i + p) / j;
        //     y = y + t;
        //     i++; j+=2;
        multiply (p, p, i);
        divide (p, p, j);
        multiply (t, t, i);
        add (t, t, p);
        divide (t, t, j);
        add (y, y, t);
        i++;
        j += 2;
     }
  }

Here is the output of the program:

Calculating Catalan's constant to 300000 decimals

Time required: 1 day 8 hour 15 min 15 sec 55 hsec

--------------------------------------------------------------------------

Additional REFERENCES:

Catalan constant is: sum((-1)**(n+1)/(2*n-1)**2,n=1..infinity) also known
under the name beta(2), see ?catalan in Maple for more details.

The previous record was 200000 digits, also from Thomas Papanikolaou
and before that: 100000 digits
was due to Greg Fee and Simon Plouffe on August 14, 1996,
by using a SGI r10000 Power Challenge with 194 Mhz in 5.63 hours
and the standard implementation of Catalan on MapleV, Release 4.
(which uses Greg's idea).

Euler Tranform: References, Abramowitz and Stegun, formula 3.6.27
page 16 in Handbook of Mathematical Functions and Tables, Dover 1964.

Ramanujan Notebooks, part I formula 34.1 of page 293.

The series used is by putting x--> -1/2 .  In other
words the formula used is: the ordinary formula for Catalan

sum((-1)**(n+1)/(2*n+1)**2,n=0..infinity)

and then you apply the Euler Transform to it.

Computation of Catalan's constant using Ramanujan's Formula, by
Greg Fee, ACM 1990, Proceedings of the ISAAC conference, 1990, p. 157.



Catalan constant to 300000 digits

------------------------------------------------------------------------

.91596559417721901505460351493238411077414937428167213426649811962176301977625
476947935651292611510624857442261919619957903589880332585905943159473748115840
699533202877331946051903872747816408786590902470648415216300022872764094238825
995774150881639747025248201156070764488380787337048990086477511322599713434074
854075532307685653357680958352602193823239508007206803557610482357339423191498
298361899770690364041808621794110191753274314997823397610551224779530324875371
878665828082360570225594194818097535097113157126158042427236364398500173828759
779765306837009298087388749561089365977194096872684444166804621624339864838916
280448281506273022742073884311722182721904722558705319086857354234985394983099
191159673884645086151524996242370437451777372351775440708538464401321748392999
947572446199754961975870640074748707014909376788730458699798606448749746438720
623851371239273630499850353922392878797906336440323547845358519277777872709060
830319943013323167124761587097924554791190921262018548039639342434956537596739
494354730014385180705051250748861328564129344959502298722983162894816461622573
989476231819542006607188142759497559958983637303767533853381354503127681724011
814072153468831683568168639327293677586673925839540618033387830687064901433486
017298106992179956530958187157911553956036689036990493966753843775810493189955
385516262196253316804016273752130120940604538795076053827123197467900882369178
615573389124417223833938148120775994298491724397668575632718068808279982979378
849432724934657607490543874819526813074437046294635892810276531705076547974494
839948959477092788591195848724127866084088554597823812492260505610094584486698
958576871611171786662336847409949385541321093755281815525881591502228244454441
718609946588151766496078223678970519269711312571375454370124329673057246845015
819313016087766215650957554679666786617082347682558133518681937745650014565261
704096074688953930234791980600084245562175108423471736387879369577878440933792
219894575340961647424554622478788002922914803690711527079554550541478268849818
524600581446651786814231541148785540996651673853972761469701690439151149008933
307918457465762099677548123138201543601098852721629770108761574781735641636985
703553406726493519631695547672115077723159004483382605161163834308651397972251
617413853812932480119463625188008403981945539055182104246062921852175602465486
019297672397405110395264569242978642124240375189267872960271773378738379978326
676208611952067912151263821192523294040692059943864274693215338856671173308271
424083326592032607531659280423102309973584003959403426322276880701186819617678
090563158159784537637578356373590277164883131028876937950535073208018075810223
823080317625043294247222683912297129553513551043147618866554743676921841201887
716179922856205635220547032006918086880661211742040609924123487605154068202262
559504812485894118735834682290423083615554769477770831940874812491674892900659
369616416623436837075439638389451440119556487381342921229820013021079961922424
924493051999235858158082603524979985059186697220123164897104830701793528112228
966355128317437352393011402792389808744569648309013207877658785362301354280001
629055877295006795876178247374871378060042208445346045064702443258085164777173
903196028655538328281415915248735263307150513147882844999238663243198106336515
243311321463900933362159160744482923457177454817169580181688900175285645046489
139090420356029836045652425265797270138586757653899302958449258692189788644388
819358114526770563160609737684654083694230203816826392458579107404870879877852
426140868715178575801006023681703491797733622196629537718913853116739965565885
912164628015582629873541376336076073020045591202946657347571852745311633847776
486838248504116301605227086944442703644251242363971814999234960838959168258036
164749881042639483890042940550431502193126864230059992926361540649262664186583
594904249371523622068403940370108680740098440001512465343535067233845469463576
021186762114341424761178341043127306116782248833969915539091310973231066781117
485537679027231845076545775699887411395686146631581361573674061881125914620397
423401125882131569075175754979658229689846231329257273175338302313533232870056
595688534175204573932758183513982347678009261426521074710456668763134325667275
929891952548849037809046546488268575204454695053813498309021460489718319387780
863409014168285484524248093104343217724788778248739486061800233415225914146138
782700545170971410457656614928953108672486080484204376637936230213645817798022
720882738071736711299822289069125763027779162651035762577038104288680376054636
303337940367377696744757171918712803954370966413877226626889837311111602004518
593973174764621542838460162144526553720292552051504941828003032550267579038252
786139633572720650890367820176258573636602459644914533528141037251683822090097
101943680278336708963314672497329503919259298514966414498521873384370124517467
421871213110205726174340134056876555104187866544518902765005382178609412105353
899784905982180023067890821606141367018393687028304544346780536499566495053180
837980207950365835227622006506786177171095672005629703023553593373869771832835
337557262344415664916005762666604199085276789703504193295554568745338842121304
879862000928706178007678592735175386523677348535053066125396025536280809350562
562821347432394399222442739711562755985244339104126180433506987134104280978456
869518977668882650503756167591535473173668135683353168588440266726203196600785
194905261819016135540883210564405409027216204498851041761292787884227851835200
704439460961571665543448392802592501156306227650740050312351417656526449943042
570531502230552233576634208943102385867060630430297719853224212043298619528633
162199479803021651170071853216768095061934167286284674753307211005511854225758
629292681406381602461376952043278677852351940897487799588262651018857167526448
964259516245608164680586662605844328281537669209501700131691093864391470033345
906701868799246483109181855848104631118954767258303668922657116990565431759988
680286731145873457549777440562265841337924742718870078268554656782290336462515
389898481303382848801578806646984480217166949381713998561787717378778712739969
834267499971632268327257972572115422822471585175485105077970961560718370771383
998265316365376758124751878398350457588311790755545686617395928729558719386219
223573876438607017401059359744278581411271395680504961269960048434583896436697
014771140329178065084925873008209906179587580402996618292021820696155745628810
980223576195163967867626609736795492343789154100185728989816837858427303612448
456532426353483148925506480782198270518366562137380923695907752151698346526103
237738415089830658136487130918231383360055922540017526278742124582625282370841
549068233176525686246245609564332012497970680412465220417099693819728527361263
918229564824346904280303582683293573927934144962552827643618433542620664134683
156370222632876839087900597166332580664331095881812753248627892980094868158902
452714692410818394313034916873369765811519402277339800954019992521514349607341
474539039230411990899640390760329165111929551028666741487888146370780055212485
563601811272094261309853801454061531585422664625843416142595014823689366366735
542832720063760749018108182214340861973911548328544384315811917349722801704172
459572971660809528522210471512385830056016372167813179800095725635672059859413
601259647770490028817068063068944393809042066274116418284908815132355567686236
301149153615835301929518669408266688060717443297219890870195003345427130936321
480897947531976335087806006735145801884222411475843568459595642012392746288926
431857096931750781433192768351309119874941923765705532160176241226139675957034
480490314072757977766284315056551277393854632895972421929264699107855832088971
233051922897717260248197053719683239188010267755856584529891014031105506836583
574883237481454355676661805833306498942393994388379965296325401019799634146428
782283377256296616846911720121828661474404077735591989241075123126002042456108
959229931398206017121311234380896737575014319013773810588142008068583268348860
835919739558648453632085482935260075146055373154056807915110104867854204502431
784812177640696641654466861923921035823089944277756117355726622412507724360772
601174557283433060318105899040780191874490094925401279748286924188618885357723
618971933738259474905697075534520115315402733311828377976124717015057625706465
529679989718223087381422674357748520494951554930115312237349799758257618202831
754452121431136790914270888108434238961583657657348848869901897285510569345637
556197136235680510433375824604783740671629050969122053094969342273645888616180
749732254029065265157374208441696502868219289687780182022916709817519263029166
075560544631057607509820784122037469094403481232669125215712433087010353789034
900090664329264372577975024182433028437809210844805131449637450450720821172885
237993949048626138199252205239306727369305935217637216618890419427844146908993
764901848571379429452377041302501047569886854093043365370302936769520956382771
770453471932906996474983798241227697609433107940858403105491213134469627575233
133732110803099242578856580410400798316619455697015999176218878664471943175469
916497415202518064488778879851669666905018069611778953196777655119951365783552
962285756790257213860335416088979846955972160571371734597829251501311460097902
373072412036354335883448781036365025215337515426356641550685916208348770008127
064546983842306741350697392385488411364274333848991803820765123559375590563012
417219171980889432932113650166895367035795783718714129279518231967750770527301
435566890987728156213938442321621621619714293261707601370746636004397668423210
772544037792407419121770198942861545330158425131835182081137819138154235421559
608389967085629516895262671993966405734193091489098184941482188411810178142374
557350988488825815942045631984223214360317409340713561767809014347986994190579
589435555830750700972883787924906533440124683055020087050873645653095557917071
622999437962377763190566337687723700887467453957110781672472188004312957875214
467796449960511800034246725245859539203204670880889789317541179493224981308995
641838295378715037761463626258511238016069358074126973884404030409739084583137
914246290915648409556851262693103058511292005846401659476028476552408610605191
022645863054054032634791028174912277615366809620188627833142120644805591428083
298734118414360771660608731081949848484492815147685896339154809451338055599975
013469167678833652319853053583863333532935249293050310083172054433905050376413
930794611946777014640762590492778084651343952309552492153717435229293942988546
906689089111158690716054868384732500504471076651958754718458234785732434368548
833783871995617076483652381581775882106687691199738438887994684127831197614230
187333481444190086170200582604207251386376554624596299270296087829284515227536
076813961039567082881468033399263849883851517369906170600666320063069982547852
342755408169692580300982931288816845379325227504659787688963309573341060164659
585398436920742751496110274307126469676151836937086582026277051209542930439143
547965918260728897001187517345029606509198500136933628468394612030247503897543
589083078612913460889836406485044857015659677762794641541803525734051363485532
129950844092689612310940754182744027351269370218532477846540339600306219998878
318039319704292122495067614229002210715292351093485086757190433390511894693203
488114952940303089160914952098133026717570241776747702048465647977984387889350
893780320701044377856974402417553704657109846759091830221597568486217210138708
825254328906985144629218157238053861792363563698358706440809632911658563595614
359386346282238196122201356546966739288220771888508306195019156452016298554213
864386433761993145383651868918258176647027062375367382370897020672107900679360
185682046291587722285956060402209937565687974455240910912732822595108597224444
778399281565562088534838269442581400691380247361462202060899736983794449529070
119917881219370470809089734189712410315397023063331178349119734076268473989110
612392614402045318979278204807618498097421856104194597221642281896519731426902
105335385078269228032681905896448698926177536581470865895031857067258439249126
646921556595921463358417125127078556409733127792330834411800917211931482603316
472440285309531133416801362768340380656843956224901064370494908671162370101323
936333540331303482946612442291832250784904113459290936037071391403701640573451
435989843391250388711698186658623254071786832421840463850524922402294215252122
219746627890892242630352467165376788333616161489703724438114898481157046067438
588570956522791783226579688826613323267290015053503821071620540860875544294715
041219333078364405375830493287051435015130482451945497585034935205259578117234
780294001846247692094598694846960880926178711735163206818028819896261746322160
291576336869342567715495799463074610405499304632691317449812255036823267710191
234996107792483648674459526675230581370250480362465582246628910898031100355785
864480880974065849602998145682158416712262174948833437240976047910724363838702
614759709497782154721992961544399335529828152307598090888043036003879566321290
037402080486911085378912885547831326375799173473825279867518797825294506726570
553248628326265671959763322223727101073434792672964156546247735482954780949636
804529498374256495295751180048643190939852632732319051479912514631474488773002
204989667095501472083994719960636635875356737862996568695026670954696168431842
247284545920244602392896107022827103035172738727688234842665225206644088771292
841615804886744133343251154037199885483639749144086796114104752654810592239140
281719729298030588717934532522003225017422123424499627259789994079535389206504
191411359720721803071810804828658481244097035637611762987368821708516809351849
207641693156131384051153249286540942623014541601333466224647952172780652175063
512270382989521794534652994453209532643110873190584673587833562428457902818905
325423670980697735617904021722332265296608533456708737489454764732592286378040
464543812334110833044112313886605097457586451390038632625853675631677303165726
066164971471045067086318102875035208373241249420925145863198760299645845391231
563618501170074844874842829825222624397182151173215342804107184187974937499985
389146312927062586396363808604706577343407074173237281399459278759773292381069
105426202092090017623743082240629560919253171645226238046142833198930030378864
216946422876391023458494195850399013687152825184022701277950490077032067972245
576726494718932952075176404206425327778659538762171514621960214546086626810163
732584419529776054271644916927322804715192822149159563750219496725891245630251
662137729008831063889719577318471276609670576831516940848707527663026427136687
964704635676134598479176542522578221100923099544722575192307068631241750671481
895947389345079039763438500491986214881356697466172437262103708610949660153920
575627883088430812631657873324279779021954921514023668810641852019737002261344
485354433767019881198593723742825257717612088862905972995714528259794444345278
631918691855992347139345792525814782111551008070114520288591962778668286799253
672323017857780570051276153966878614481988996436475683377592289986040495779206
342202484831261285713483876164490122176195841856656511155230709621720979670720
461570744116891683989474248051336261022394412037740459546819934919544947711982
173852904788572628732840127540859220601520427534808856690645381336067422487925
263856375601154215213408721833481761715874307589068235823510134327030137170155
496887866539602187975257704492678601117789876720200097787383699742197019518713
705027503199230369743860774349865960858925384896499959607029009055428471410589
551467154779273315212485648911571787227374590414712195315294446632232035605558
737756625213846765330501807117669929053137742070952382617334181862731566041322
258032397827978329610482529169611577432037579163796404635709757917196640060946
909140077500849607829187532921089007544229799088223799242189625906431396534002
886687284888385516959706454562877126972675373896158863230407543339416313845440
066845416518082188833668970336142290974282435560555786773274815374657174078164
039163184394768495919702442094996275646063217029545706132900852860132498369952
292361831145643469409708451089623547805748399929858678225400628876632880486754
223541844390405303995076434928497123348376359779279588287274702380527623618350
690981823114305192278639501075089361713244560009688379588693464215682490648449
128932106915392161188059016802124055837807361892792848509090087139995492422330
086779797029557548254582650748704538807681700027235815227777187744610078008005
681922549531632232364957656829884723952152282383196940749144923498368863633899
700135858848890321792792843510119244981606396622859428093716216179397073596629
990042675669829500947635254185491168761918744907552602130070096115629703210306
879997810294365679101393266363354311282840552810079586584119761904239883736720
726175484082860097207573606012948844803614028655777522958925805418772793007043
124612956663699521186635958949075208277649299939934608517739459803010449436146
201743761453083076488017286650424462858361949422217496367337622242243039777886
035169280577628070400702868841349031007143252120126499090811527397048552564096
859704238829317489522921958806636864183121885065409789898960713932002140968117
844343650682552354545065582311056067566983675278925161362206482131534555739670
668802224958214283585091057114840045089214440326647438492613796148614536758167
945969362737631199565326351704510043392228494826734911792082137745490554124530
176884798501689778977291710660787098328146947831255829960153956423007879788184
894784024162808468788066884733048214486524877732314756996803153236229106526097
050805326987653820445373610053261235810666365477154897647273051668198131384366
944245848103944662129762769786601855298401659189970079032133205093509387991696
140762083145819638669222005784388969377148100504887807669944908949649200731617
820644920289386802777417536594959968985756722695396958441323760095046871993349
718054847569403682982495680355776974552510816871207299349477905840558610094384
426055494596443757203937970166469088896672171082428054204561695792660263046961
334241195099158741342167641916823618151721800916386647813101933390325266788467
247343409076050429332326678398250009202030723798075632689068928995766258120083
267416391488349942663027880629820074902491743541108840159537935577452808322782
431320181569682668326045229932540798274082280236106493448252601672114215207412
198466894550411580581095385927328847716454901989405373777732214742459958976451
867583786929110720544376968440047274519609830320319454155418822265657311995190
181963200654131096219592562474012208706325238283748814560092340146290980231000
153641270193250746927006953642201883072782925096198147285469500291118232704169
472852305398522879898358611903680853294108726555095000098382545160028798679517
882244213037763436248564903045544606482217990443398021967090050535331685807810
455964180403631646716682533587738514099100799841463636623832623798438981634534
721854293792436913886717623157534221268686589410661390605319281629353438820667
788840968644044115465375548916209753984638321421332400529112532394644604722928
313156815174202369877498095240805015411008360994993123537799943236862611142070
758226320852115215283086959391959286957520048656447899901041677195403288427606
747303662292777152724739500283802658378868989088766918529174998275752938322794
578876201210132756393638103726981793697231393707526312345648135283580643768061
100979875102128475021949092737452460415580986971650998918284105544674939395496
160016830695695274784901890735370358622923063354871841988100724816393260344114
116868694257576055754530889843229196304829312399026141189698439294191977930409
416541984481817058953818522851936673013086829405889187982168273948239106832931
090692023415389622399780718066235821788770335677194453040498249676213897374516
379875945631257152314864776866476953319652531266494910994911563945825468502300
596803942301164483294374292214780881796604549842817983982160074059890038846661
847978382612198790465523587286271674189191713790876153035557090624636395105979
728991992681627648827249215846327323015484322799842592616855364308960252547029
730310840455016304711286277599496176569547149368064994774883007372853659983634
412565708882862576181822219299507481783869310862228748677558916376478323088172
027724073168611455235157658514729001298731429502276219971188618638083953531312
744289024611847495875320544380718539137517188569599188150936351922318408404422
472331920169880959608418291907986881298181602289494962341232317306985822866380
270206173160551040595167685958643600032281814482058717708658207732249544432422
388838622071287946513026873334693822886472807485614747700882632930719330572247
017399994948552926714063630750540591863174186039032728990957828948282423111956
066955573796233950124452271928435165269971607476957092112093613917838015152980
352241540441040648909188179866510568691639649139667727266634141667647912076749
531286257899139198686408615564369937580488114202272734363732456956052806729440
170919812021322410430356336128077568023126546516868465192242887798687220537455
503800027427991305412431729225438875839858526467976329775063885572870445495584
471769522159054226503094437198590713458900081205086464760107785538257083674187
530176249264127435887899362663693148082506367418013694765085142266537649535223
182009716735331250768782791220363578713300900992391233529484208519400788434178
596990506984827315922021055529861965024189482323637297270373335723942610446272
347738758848746953782099799630782524288733273760371626306042942545004460327667
872474760759843427424212660082682743724607374049925753740248635103153598300001
058819807784516073619721513525470960752041640752107567985308434221704041588569
398515046559591495796252948533311227610489155065046575586425787788963731499559
726647967826666897010983303827023148663182812597065153299700903953658191973845
943154755116984195156844298072261347164254988473147613699389753101650491472109
873156881031060178632045599216628005081932392871812705608637401677502610702293
728527257316924151463133972719882233994255776808714551517882460474832366726986
591016391974951455800287998631584471910345823732287899712654691877716912889905
406655995379885112652859645177499650124281523481785011887221687608529999688738
964730810790136848754318217922985875807979409116854880230753413010856277874617
065057705268467486892473036452215595077804811097663862050713010200448828627614
994075987909497309356303766908538741329481097989706920315603886955349761445121
399792361222994958743253189592526859218787816032272850397628136338704318109238
783838852877262324202331797073888495793957519569277179895535853853672281644878
937707771006009843298558363506781107615402037618538114203568834885764346129304
567211422606055340221823014074876701058739066494655347264779091647627969747336
732611113921089353661686748221653720025298865086896566291535996167397456855012
309093252068463437475160950622227295846296254883573230981747719508172615566261
132698250554511674424246488873286730467197902668687538308613533670412627949120
768891726702098374270098851937068786260965415599792496104103858299579403601361
830937998086010368373590650172912332458821490019463981552951599540414650333499
350553189156713889047888770606289760771685177311354646563283341793553834134410
082612786056166886356649168377323610760569276531776185302889633191759549336054
363536989398512924377726514967078812775292279931309084700404218700891471754339
001065516079299932167464009488204288672622556430727214246494810776047829506874
758493278936374220265605264716897647843703430805192683347618056635065468722215
950979120953475916733903514266915280744170238985042662844188115427493476446200
453966134618113152384599661938278745602198813825141234003861715000457474379911
933646058342197227778605323828615016951200447742498731377584750318319198002993
457497541915784056477248278947771211020752439206419997831617333373256200887159
928232087771273315585204992637609072473745173006643985968060213584358283071895
307080827638625540044220479097308967909678353645387778467289838441377020689588
982981674163429653938868760556011939364222719005736877931065400119527451742088
176116152995141257263048172829663856856635636739793561274742905903324550338432
608668111924283293118886853526586553057316211052322689598383731369229143740087
954605690950585818180025837323865021122274850521097655993136592990508106103605
434637758675996050945457428806055181268636606039385389722302562845160295113795
207828325197919268482149547905582682953028921987187723474891120518175666000402
184013766506129265394198320724469256075226689874967034632533500658413722855923
295820810862328466799407933609955568926805933718617364067621783127051294006453
669706247177544104458444525626350917494633792341208899705424617544307916293577
354078364046154824449906316939756276202904212749820653413756748647563164951336
229573957501150960956917134569693845248654484214918203963933376883278866013127
333224439427773504343323400281649823707724271409155385757312763689757692641751
458196399455653851564517514140376213274190180755104367929769203986023519959365
928744042110473021780846083031298484853175211836088274342217859967429095793926
010273795994153193159917612386548296463116278652274822494997768245571795554256
150928946576597696551757236737421457140620078890541408784544260082899513849588
144932011479703875743389846080079894083853695515631622706682538655004425212369
338839759483217737768600867027083248256761193110043885198379835419820659761639
714792002522164547584032656508906833957660644981261747449235462807397629748294
389921608238687778738526862881756493617067018404275186916283956847922331159595
695194465487439529244447804405865830788125095610110226309373006924196094483167
558220393574935743767376498685652516581924264056599068166032105777585856351350
799569318750227835269650951857572322839225021320760031054359676385013274009638
785289261892990612364608381629951484516545911985582412883998769156590813664008
814023343162101317498732398061872442022810753327818378620956235986099513892259
203275876750827257159037262354681439939689163132435524039188879648593076075848
885614701967169381540149511697372752517444516562689033182063760211942984033322
852526174527240680898751064963132075315370483240708356278166799033274686796492
287566694955842135473063665135197854545004082407349124761088595180916432465959
887759263335743977913115663148400547187099363646262106821430064928937324201181
286100002105374912616155031961412345063645941802595926742493442920909222736565
556230238234706230511104796734189761914326914887707938733203453229526519827417
925466086594667030140763659454046597584966223993113399718262625025946091007232
123806818134756723000348046776374726954413809296859468465632491039819491217940
871892994653991539926134269327359677632020123410110344780507679797247667411918
181815497319630038768293649893566179071245520103284467384981999997116994650340
126607373515642089693641448574935539672428849172483996958743220679749660727002
618944142647660188419901100434643740506767690243716952269588141443581312064509
622534565917991569636497811463032374322795211547871587941255518550587323393314
918949198366729812002297159855040764517901467926272144574587295391436663616910
969670328956167617448220672748738672427279517781233370516089885929694929244449
742283039927647682875973575810562804289331332505247093325982791228024862970706
294381649958799923735842177422239380822719127958012068250698072804526226926655
139110539340090929905579070560432152921842501512931874123656996375006443324772
428841243049893510324708789327283658126504566258695060304266599250754223024812
442169650945712987881272951763279240540288963591828640022776571030115042781356
293240015700207538981395325444515866179204612013530946393928270585979205963305
172803654924094677427755899864718071881293337269553960901050115487089817765820
512022821411563667487136012382608587645301063564709314804688581597689719702223
047255672003461673999505538471774317867416599648687864400548552791445741554098
576440407075510828815239221568573697715490086357080631225050919662898605474693
931848248119749875644105651063636998726471855244095539623728116411957802443269
046687846944565367467582779392467358987985283074719956494545269441530803585649
035002152979425264395959639891949216059973525821326308090971333798882135182256
020906264445303030814896893872473013339459072078096772479411649039902819311515
628497029100941364118912852913067569109714569152107789092414331771415294064543
293643159480299313467290184301390344454709741355211194299878527163014534223852
136818966445413435346274440792084517806009894004856839665852822773832241141158
523454632425591755697655241657648394067083861779409771033661017620957244851366
697436198174929304095124596333635116787588648444995857690317460733312380405026
216415220720209185762386130248200634695858829692415182257216645604795773727197
034836233570832908452137304300338945968773683386780976963706185458629263472491
705058416712283876553306989180426849323853606600684023663288096269181912903668
938658268778004032830190301904436440667615584348775863075102165728390784604393
216589041686197943838347609769129542128179389356385009726461604747616844791203
589236931388753287614359213805616876245245776980372410014315857979747063047413
361914024296285966594977667529431661489203332992713144440506861717009818236867
237090236950897186144914998991028617357833505967980565770723134452410156379005
188860349238831842070897161052218343221813545840807843150720950611655378336668
907154591791174896992962321986545919841148453627792638293879576762359442669069
425576495689934577726834380909163467969274084562251125324661947422469816337589
912302351299456949985585467164438940122457838046620014849895768928296068583810
862449915131786533461842546595855779978085624468600015715829893667902142157680
183594175607548826967101808612488413028785250305864418344066801835187932130638
591771247065557249339220056524474359296652694334156923220115649639063037052828
266971047312599183470481859226887702297996288158001295929117777352167442823841
993092071910461724774376275592370454224800671179729888277239226969446555153750
915351364995802574117805532174338064464234284208846441723814827554468345330085
181155847624461679212943011519608188039593038250367329432139476830929470925529
254103100866804655963684250937366621574709987559596204844204028107259959775032
867458755248104558477860402697144173502728136309719615694242178388489177541424
648012377311139104497478180917517717350270676770505726235157877435229368713495
307278162342588957581152862930302379543355844237983987636848635960281083279977
182017297207454837456735444046629803246575054878732368441082194049890944136933
312055392249387059869784320475965194858300187071121409278554210130709586609760
475258635421392340839477839442107671343519490687553690712839340959348674785837
089914394578775276221959814018145497650903526553358965623908546754298140807447
124396500550860759208206486581563381509445662705526809630029133453215368375040
853622463805850920218105680835015050350462084504981871540051014808666273244694
251604857188334494480457041254664799294731154738765105464291457438886340564382
458768672687174121207599307997664718921599869873086015389070019375420254421939
999279905759794891878147267043152961316959097525821051978551267522996983645425
294634620349650727067361575285326962677792830876378021149526647529174451366309
859783322270189277811327182728378074782689984203106372783131551727759639018152
898656756587906208924815638105665502862233026458546014393042464208297022586620
146263317077085346405259169086385056622755889182881249569958010723313244588241
037384967512227529534963593232353820937438209167999023793841543728755926020882
094770334745183311114473193120656603864036065939897904856763305922278828394405
208171281242948288336552446581774821123238185892665684075792071133697934505212
648076065263900856661120476258156553695611471174583906735218359700587066847742
669689400146433985886004078222228654633497772104925619824553470843726893952599
864605354604550624648667820024243649427480128906069218790693007840130972660574
762086252746370289433191418505442698949724720074619086520872081059597903632958
106183770969226211468762922596218892835162473753352545136868244570895740250550
853526026733395844123115717678917079605615447634406744446172196838637308545403
167549097899648694599992678520357325234849191133459748031997160896178555979012
625671465947559218897452220419473449230199587793194555555429903566713088943777
713686619188585980970478582359024081855649194813872367907130331794180776540116
118755688816607427763191187722600438033994973981713619514502939440012152756749
951223082384671878781234465956379634307196186520132465549083963213266877996291
794292368065670906181908866410819472280274312584726750950098207209545227790851
572904296003480790077941969860602893598122753469496825194492660091276454976521
103416939210544828739603413106240017138012247921770578214381629499507736024881
520933301434875178216752038428374228296103618401059452375982040345158275883106
888213051852565521801616616498572007052198568375250909031168508435098247703502
438010677593424535477917494140071308413747684577092849409963748701026231172240
371963772882647117531040770139034724231157754785286901497065784137084434430265
996610458420816524352799622950409099842268672367272256975295602304949565461758
131959302642899954446000349436152505581029319389803424201423309625789231655927
013419247123893026590493421713596629797036418630400603585649983448355652605110
089166692878737116011114876667601453364357692418467697518184966113493204631732
808565726707896936922354972015179131881296026666681832068410156717462252051231
359871320101084998996211988192119257079648348991220590585863304311143042963099
324494427518708624002930860588780310005159396896046247355228120959394774076266
372325260353019180196271213246607358128243765521851853950583166003227603914564
373351958467346011255404382487665114366137013647815498255894738349104958817704
248761818934648050518264383091671828872082042622770233356023223427035591413419
324264347557709313454940085110314520880176756645858606487750716722231357473394
270332707496354010089227692436876379929659219247170451013425286745479135846877
510706582254073796784756636984589480779158298398254690618571421247479067459884
086714149237664742787465111731572636470987446898054132407177564890158105495875
963685695963852979876422033342606803203491937840009825466908847672766871387158
164525161596548003578534665214698592372842113728432275635918140070604782074117
368530966604119951318837879744680091536112900598637347222649270483315454859827
447392500164971975592912578451517736229684545166525219788984386670229777377293
187895618805913016874630779109813953541825218228420675532394427159194863078497
703003811904886601618669635434762930346396905899265031860858983758086257586922
468984529015776779119838942550582907171802601671469858684355891815822728497894
293660674334849811253318614816871112703009123731746265614280034637596476398084
311417661551349309310816930169264797959301877084177391310893849127948511582298
584736378132221893792436311583887386025292968276213293246363914432191469001577
203635781603837841898786243936283109395199017224693361705140393035591588222555
111544075223346134825222776183638165011815501942247356712204027337340396081472
646739480157406406106281844362517227537683500971748308458045373718724709794018
782396762939679736626169376628188805507329001478462713848888150202990854989779
911289740673482971146211315127948101982223083783415747984659961492167252144239
762072888282225995183554274271472646942132316449160092270462365279175993088937
328493953680299419210534596095541915413004827916520341203821507326529664515131
676922128761456931167507148789753886657718174248145003455248035598053409465137
356368846067112151240547477117060047567389642878187729481258498193704352582950
717758914305191176277789287451694288397919367387944654862317158862566004606035
656667437696707745876186999790822816887128780840808003528070899004842726103178
514211798076450962632420721196867995817252872657091313818570424829520110957843
853952258615487062963903342788925472065503843889459002696076340980765179958799
864140593292634854311769430662895424534735801633777460453614466443803311895306
851035257980956969966977888247491572703557261886357079565465522499591723942686
859534240035292262285728601560600007992623003711578773818407825873202481237840
454869863035801635582414699983481899946914263235501140476049538946274903517910
407899305050242713781988763240849045336325276065261024947015370470572319767541
179385797576345171333978068535869426414140163785307512296531322466009901708185
461634054221468681139886431356370278983003922697733531205056849175466125618970
001117943956720733588590644346961978011277511334339120354164480743959541661289
654422309439645076631678958695468198393930037218264127641970196548095905645585
985303403690357216056231919993660917123070886818847926777405322242804806709587
021352009150343552200963546433899739280909764356108057918616941573698554610991
087047805102069557797218725789704696872640920583328977484674495085328713159385
498763564424466450084913302673200254023676177020996865253539873445547057104180
109496295555238821697452871215913030424275162741980166087118297088586021569225
067982508203840239752018838751077630662135109476272325069842161466776479021502
093436116232087903562338031179695505903392034267059619378085488389711108603483
526168940702776389300139890997545028569701065369546179559316046845424140447818
857563623811363117942335729353056803396099264993518226271622820465534066310041
975503631586236709856988271151513042564545052867170319856433631313076854415941
227963364076248994175109191881857664887603755572408442355664374662256878667470
468971747352796908142734004839461795994769652934515161791764695426483739142094
922518918126184114996972562520548373880670953221358302617724503714903419335223
389139280239669335589261290043091354004911725766533004845387760628375698008156
357781728225924657266939581869052641508745483541023230040095663160930250391829
905892450499875903233932066298529379954194570848819915267121122440320574212362
965131712697100516225702366969820061322322310212501684197976242470085637396954
937842208372554940519028972896701196948837406381535801068706992582507416363305
565323781005041555944318351280011533651823810207539229486581530193233937917503
247073353659241786160597312374287970726438892107551835056055185307356488101586
773431533353059502650607476368877980878659432524610229371720561220697303829301
274641268027265654519684405650482414201956060675521996050445049169268806251370
393281040212246499957642965758207267062168501874656993745311172013630242836454
052610452894296045891323489716108174460691773756124795995685121420469354989413
701730634590059579483936744503573111029918952745789306494249422690026373548589
988935592571072686146500363585492932796293802104496336049960008004054600493389
235526867176429211006607050661867523901141868503555402765142567677227089214888
895537104484012434060560476844454172144471092939453365412239191488625316467094
306521537817467054690660488704266784595216243798324014835987375724155805634481
896020393322048990380411205497246329299975535703323651972000566246162905447960
704837754040086227657751902436144052077743591948366771172584005110406025023635
255518277799986470269991586566048374472304296110564018628307883121866269686529
469126749767151061898082647254252890060244783238542727750482005523983769632783
745380410409498174344813065746641429988889222440507065339682551361738808076754
529352511559402201950654661613978620557435178677570086906013851788257451103662
792658445614711171967614756686006014708137568789247359501153737124377998734018
591088979554200177521635893278798842747129799827114326743227206212042998196319
258884678372143767870044968609045634164389330905241258447791215909409636975852
203115912081164554952936959557174993624435186081342898711658726065657355130258
761078480485346824076308537316486525226342977466575040251685973806422233610108
327376312839123911296211624876745750043681561410114840219767598673414835481121
159866460649305894703341032377185913072954756169477957051302649029939530767779
654302885617248444675901060835964664432896732809088247620832572873783665581189
091298647409158223975038017690010790576368558353012809782078073326501528248875
538780181875109807694963650005953409946676524463486326713878700944897277794019
853847679647596245780604581683416291942089216790945612183164441974668668389332
689513944746775369688300803697711608288301427500526115818935424999165044542914
328334442862270403985939524243806016746764574010158622168460886279433419920945
239046900599413909533405027495954510076934282921440746827338338240764297446425
786768886423804095030421619784176734931959500644424604647722834275845014642072
225788177979083497328299849236899806824308550967142538197871678058726768029003
383119949105884698680257972873775466412884957921961344262063392963957552624853
898376030044713299434005831873957541845950107794527712167297003974351818687998
263303879775007369456609203560175910992123600837279272110452315986621355920338
042712194531138766190595195218889761013010921033805735286910666797755601784733
226293241319433303653886944816609476159684106506047484138455026551250639994934
974968266166441066551802139031058950942596932934888181984665813528399014893630
327104886103027153448352583690071146754785633122509245092346847461306563238553
435988563869996601567186058612474588988257925983049463313311362425041150367526
605943976465359264532327633223319860751018547634193129972821972812936917765373
540523212220572346832475001299207035100665762384727402360384697885995722525908
452266062691863282211458075828199250172308507115002122057643943620707427834155
896022955746495351914508567512874929794056708656539849871744412488817334535608
559370237478935102349426821653449679328500582218159689050573591689721439132211
505274663264207286280411226782559084572351779478669479383479157704906403912293
550330704112102924516835910335986520232091882997202408484458254568473159485768
244652855633966093047981447838235749952390643296960640427594595079815050322109
469784243288068591108941898937896157550820516744316407054439807581169313640269
129171642991630385965316300822806706949491156026615212738584517369434059484144
775903620822556479341552719416868004921836995551781485477483975205304202788655
061495348481057278030041416983749059686164017934133669334073734527178444912947
843844310462935739939040902980148998649493484704163930702722474652200796312165
756044622687359632494487164209199768090613711885941521436660552698591646263533
244455996626272840802559242054257589343986404452836081389978002591330301930935
822517563467904835451068538604861286693116602588843283003985569850855644133262
542316362913236285471166779905984501926940735617488269912585186782940707967751
150931013151606826822434837858579588080699722769925602037462882249678118817608
764564913781718121890224717594255690193502795232086999862955596579902791443423
675876662298314474457760598273183265393271754842407551406155089120484275930345
732618374685191590684516417544141463803609413979685388345041685892464127168632
344682258918568629454602204920565917797131358285154200441964635331344205736343
107130843155119302950777358076785333838806043196777195504876131349890900191839
285347806420781619856089677472601439174996470335774115534142316125620869833514
415443255666118206765463782722520773025214000381086330594392760644961501035515
195682940796852615119190973114314917635464466963432290898209231476931916894038
051233876504421677622559098506844870085773819681939574597939166891187752003975
484894753853984731539026977101786567209028067996274932072141402973814580750409
956165906615444836653859373403172313481336554123086773063182166745969842431477
634140714093274019482690564864909354783091966881846894497861616837624118800499
595576365339220832942263909490543421202423024269128152029970981965109215448889
818066900033607371471091484162408323949021267341285654658027260921634828085880
748855012536477024921745418397124187124108421569669597589748265135350443798203
083965759997554814365041805360513120861800406348121131180290885645073485818852
991283396147525216402164179558486194788414415783743067748760119420846998469217
666130660970854460378980962705892479414613607001351406000098067552937395225099
086837806617648871141489685093851014973462906463980638735536838024822961970953
107678125915303701582241021323554465039653412311688557103292746579314045489850
780760512896217951120032656796562348385200700994523791869572917160992023842683
603310877353834324297886707684630403325940847966101796013645441455749556065367
619782569899289462263894274594610021451010623547744567867548842470976943316566
036594785131062843208112125111647545970759513170677192499928085724418678673056
455911049190697560267009707943927062464783913772586246445549797402750511581692
295416671886194831700328217545033892173871635914930862586695047048097266047816
143287250174729268836963059122765954692725163394231704179065872375528280600114
914144140325473525153569834996837500424912583198617305817914463408643646517014
384505600146198789577900341058993958911473311427734011816276991607356658068837
502801835671154187418527402547729677386094377127429155823968421254103189433944
699588705962289843198226883721319870786721562042419048560799358298042900208606
457935791525970125373231053163710610926563166168503587571334680640307679940444
060789784545099150587498693813358098925574155766622168159445990260477765693393
931216548249783317133410958497891874254877830512545721745065724343551881594387
753854615182429238590268973411229929684411961965320468358857634687757780554977
983897659194982931496779168443842634362136985362802597385703491909556038231399
171757910567010882026918478509552358527575926894117897413809526891406292117233
997044116162427192030976316146645584489560353375212279875372829341702420706905
059232617908642659322837905012854473317758315343848132091117419463412138432286
513401793430140727156818872732284255364226988614696519353160648231191689157480
230735467460101311459723706346551419057523081807153666054778103118230543782434
755626986526098929094483275413545332730921866673059920770211873754030210312471
250231435904167477397929347169697503355720613802110189216451282476075054123773
831714851634463699647740038350278884404155447604325320758536225050527508806761
345940926740697502047932552889701113035082680958516000417523028203574885929493
253893036111848604561009477357170470800040901672145007440527035872960845507272
144648558151349878080608213521297937327044332259010629049066537039666180672782
406562030489978637783122304282099018084037969543771874184021716194587044640102
262733599818158593365452326877598181927503979385709516221261073350423776989468
372171875788041055260048494601649203545440874627538520732293270370348086757836
354731318063340788128602694851019869015427702324096815909854656618366149329189
232805312897454049507998283066461027269467832369111443082564184517213405909467
946847373074046195707787671207246870191107888630055547642081880771811961841198
339685742526988316544528516443706474360152793492435649325764903595724384550659
996092411284327238971798826825420250457224063981923009556383103882365498074891
808266246695708504307674001778446545911933427991389597296710703161405895417906
583737939519497303263305349199089276731952401302438767455163591284266158875763
373008347740269358406294860128411305206532833977935893610781186355145975692621
671550684936292327964473984063457314475231823708556136851652853747956348776151
214230958523750381025030952742157322061462083953085032140689572374844879111418
175913457973488676586418509863128339777194791902745154120250992525875815799668
273496844816356224868028778736605417341699916376566538581095634919642246410021
617453036166646767784493191687688037604342455682325406325888890510255125872387
020094507459965682207682022372401240208209428136831620711042665728552343755203
994535506870498582151881444798946681763590435724767487387031313867273666423769
572620346130517620869612270834356271293322754244814441539762720328603234137383
411832281787718959075612047446860928844366507065326401405937431561702125012152
897829458463913919521671255415911203662617446988989738953558976129096935643101
760553413097616200778317663793839172991822217771699855527631876415362159050295
660065405609429126673910583258757789975918507663262661937192596555297915514056
319132096459039262421449491795986762741875170656564452685195881296548342882035
648409991274621458114987659408744652471538986596487203211007939581684178653887
617750304241325568183764362430899022510058918663252868040989769526515207654193
805642961777503783842477034169745357141688754466614766850847279648458465706227
774334151119299751212043310405492298062443061970780124885833964010844208954972
678536603328348370824846333642251242034255438554747923490542487369732412155062
977695049576940322598840527323833838700773547494206625292385568754759528367361
896950503254975105475685582904264280288223133583017113458619750197844202320417
857560471058859095762346770565043077877585358715489938500855188951167005590631
464963846456224224185199851310612230676179904894428488317825175065443465384251
332713002302404383062472621983061047601858907494381215097083764992948968483123
978975240059120343706965306631739923470616819681720263900462328085534076013964
292364420123047678226703833623258852546762685363678261507534053159337313071457
898910856926960637345974288402225005290155209988840428093453917218475809170375
130608136420984855729076695828421855736099971976403540497075703445820150158257
028881134452044496425524101031249676626355293181434949379326010482772434184706
399428953446222200412993451422074481419033378931555068522756309684544363912187
670081612847742123338998836148123820790426352672021614274850622618875836948419
117247948330004158287340051234018949209028767417865440211256360975020769150161
031730685245191308694915945691392796245928108995407625899546354852238544875799
414709306507726768451250588734995781768905528225674785956202175853620241580733
897536259435693193627514202350752121696191367212237935483432189757522193749511
566098362743671674688760399745687626778025082784567540835581457350675069310164
155301861754793662772940834922234871893773711933435647383144721809411353838943
428834690549484721567494897166357418853498986877125372894967217015374967204028
920038091977769053259435538039541030192310486758936937681983639059267156816018
726405672201424250916680655520569294405829809380194330572029684666000783764140
181555451438925045231496109100442498254576145514105068210088918833396704587811
847052148663943918028156428711765630865258717067101332225766604292634769246899
873003825020947509408732193929797277222165184482521437363062661500906273381471
560628172412951169410227490796850084604423363335120981329924781063830188851178
987520111870089499394340148384509314528032587331166957402516900180722639539584
778356843138684511354462605623290430800164514616372329597678259608739620388021
911696732268061066659942820250031122396075044597321369468855274375199846159302
264318400938016037620588591530231147507543217941495241386152185844100046721746
115786282155320754268546341641223324502248355197457494830997598207476203598458
553861178776117091611842846234733965619562624561265957583201139977697669929410
552398382522334054848782257697172610571825777899998427914386750694009828253560
700450889999265086650563240602915052527087831535674185366150249160148918863598
641716495484203286320898579528762221024459958538098289846571759564070795435884
464842786147216271816063827634546770146827533067757844957716681596836933120493
555645785156347445647222403411023455203189943146677812758700717760229128727812
153884127522795145673229093514770123493141779551529255184199489045458062174316
770001872914625555492636719407242868382751868497504021067531822862653277886758
587589757047309159134696241766295187506504909034934147878753083391320447372838
935587328545023092096517984444772427884316880733145759978893644180777361910085
676286644684416438176921333632559039347700334317377649647362575842415788444300
889485233208587871526500050691126334424439657315439126316591822350061381939077
791838825713002518266673724016276852190592182269900410288377422805113108056052
078907550382208141733415258597812578309938624405176604685506009627970458408524
914433496782639748863395427606256644086652031456110728562669475549760734155109
018382873267654318810455999039256211945285722953045128257626090844853207330695
487986853042894503115900609655192019442937099129267652651977565699367821565176
327731073958217689669658630030733138193569356262742174056971132096329824880338
482075266443578876440829041259871534663933312714557492180719422508250711103454
113839273446889930330260209356542595437891137025608121320817176226975909921549
286373510996971026838929130590866671079852674170699633224731776579391451674911
507086898977151541247764372088469142117156032678679940233613284385816900925956
540836728033788083226282383672243265239126834606480895610842067312646227930911
047885276570156697783068404501043891550072638396555048957337863001594535232806
742782621794145876980810954905584692695563687777938491604119576120571209769528
050747473987152244806218741352587051914357190035697197795186134880988579157805
497669972829949362856550182141256796691879327842898697684622775611319553259270
105727628576932101618240207318340848714593413824574814675844986115398865478026
573052647433215788443367515314116147090038675905606603317449184506126408365301
127697010801326956627169221791523627373515092628882496998772443154350299339932
305487039409021519989283745971657390840365529747454139483316354125955313903699
327655417686394191739090020078490755799608064040240393400227427229576938496287
941375072020260615285464160762321102731299468042845234326145442354980826236677
599043671010624440478921749266099575746732816121912517035877384263698892251137
590990640323042559621426395288847886272073948955784597303877278159279083019503
170457488052751227697077672823869828775825937610838545322184758148651835644783
649503364030188741468964075377843751228706255233819394714961873053299615055397
265476626040539980121295112636823006489279880905663785698552861168245756804575
540748564845952644012608180583127216136244365248134139163794144634730543828298
805025016320843043179771580000031916599487025801898709570317981015727124299900
903127147591663397039087130900010186740175386236999607292783050152028659217851
119940002202924826116539988995436569081341972909425856243756203895973059855077
686803625588713295629021809123615711745739465030992733939089154027056430027259
124742663501578662046901175399606269906910873036000992726558957515298129698414
631510780151126516158262638012046330758897950105597007380136612714822066681481
200948629085685340309039868950439524351553860343508410242603852342770736776818
255307504324948016173005780592122840402228140884311230979332474576121961936090
079208295450970236446427689669746975228593895922853876651108081759069742697952
003307911971690098257679932704885820161802206692332435594684336505386467358120
739976476215800855159587398020355754628711131642521099117403060325315182148886
291172758840023978951163415136112106165483391817639818075222987791827830523326
610124752434358539772955456149275999510009618441807305035616860225699526465970
327029136587005140271628593504058197496898406640182337888682327645408505077457
834745144933505025988027575445816623315328396381426319399594137328294358629930
054103650728011683767852227914918513853791943180631475301615532353678630907546
983539309426311532033712122821426536039340307806608698699124725595897422943062
923303476104606328842584959924540855333705753675672097955939164644428883631061
799952688028052073786551356890661309140667604502898274696593013959112229625236
267424899217682051159162592272609923363190673285646462988591597232879160105542
412876241093947269235916336623925095577318762005354573051229383960130476281764
192144605177896157420509687932433184709279461807436762756145910129371843454601
814504106207222599907287247448767459326118548149394922954203855890675451694410
246817189897142031287294121173133410592687699363167276774018600581131413817362
911298442120627982641069904888488513655991138443003150096600074997788642628078
379083290204596625706369507631399951107430448637806643282184302823362287641288
629359357830149411550279951906482457138006871585116268508146194149008954906372
355542243172808403400419130343162150133835831815377990630777933707834195839007
152363375974961473949116309436436425591373870808332995852610554224020193458895
839987876535602712847917018737489026266196023324061786563755928949980607649658
199000158590371172110026743376166840495420107735819117092822840294832834445379
905491579791867026918553423690746321851539896754909723582169507992605314492112
024649849600536930125687740645491776281297325278262094584479450871322393052928
491601587956584106679658706436811624733987637330356167526424726686319774762229
270706975477728367046885195187929425571030500102230198347832637286045624647118
073665160234667154368688040606601548490187399388331028172331758628719177572131
748900095655408202637279800257722693625197257649541986165882149409049141337464
714220749961792860059051138559868261790059381357330969281268002243029291200168
077828021778078959944888068609163923116361324751374279937188245395419076451351
425586294626515993972166209518940874093715920822569843128928971400185321069449
788197470943831569399645290830133744436786872466919763772149859259543307506266
525046525265621017822730197531004287306277729485858315051411078786108783742457
152918146691279138245357714414146619797241124508714102177138541679373327577219
616067048599045357831044004448713385258930428638833753312791397227068545977868
543874899754492135774101921727278195792329055922959196471251833874405116947106
585491905108986777511061672750571598494054119711669170933998913143164975293139
542919533994425509293577260797415213802299922101112189979205175577073074795395
048959127230344601147313421949906045194075139764494779213443821780788592893112
236023312057099323697677580334060319509918965377144452276225400433041387535406
835700711539969590302500829970429753124789392137970126575555695939051180379839
001625750683305637046070897595855472723197288278811173723966983384721159475042
795820608390963282620830936706323770793370528975534716173771738635978064002426
244448210294773392896629895175478975465079145845247618691862834443031063608662
251279775401800173647373796630594990068687576939904517784320974887535104405528
246436958061135014934014293973512105734179152861547966613023560518322225609101
030230730684693856970048894045116155492772029437986224167680586932209178902486
787482341944629510650508174593481415019087964439175109270543742252351897822491
512371871614131467282093307386121193373159737368122885218280428272860105926851
223412463388220916475660514471715326737384868499405301221698466093190332397253
717441312611129865670364282631114601047844155987307307953669638066420878535397
037434612346766646088543155000089919001676730138630820946218535933783656625758
454732714739488551614961114004346899681877831136200809871446003353897586259675
743750829353845811464521146707022192131540110258086477968054279265554575100934
619342862869970379278804437457352319318314435513739000945465920900161796450283
727586388033877246991162327235419077831277852287410343030415642346839298292476
159659394423331946341850529195490180739482965548325158279393018861990265346806
692787118775137014145218432598934057872019879834590560986872280396108309589565
722269656947489376758771171599138294545720829789204495143816278401431863343394
611057054747292927150151492087106859769175224170545854814523336623869381293382
259218371364395860041670903544018437775465982100580563377685690828945830874830
408538765145857823067942253184485708194093264581080930980894346051976567271578
722238209168937781099561205665975466816043057174471654341745460420343127960675
810044273782465330104671489501345700668606133906855556373852837468752993346569
667215296572474031313193587342098104457048783769597325252977289247225785295548
969395105518144058284213406303182280946485968760457957698112020130277358933508
662820904817139960639721818977158673346352691055443251577510276433739032841718
069254449470555668250823909038514596170949648850674114736866729027184173748799
577843535914789293545600593816694410050061110838018538996323115688582883485403
509773256372393461930179854870409338694217624537312224362182232666245197431181
186377545652424737298511737549019734487831722837516354392564504467743595574016
184718027109151794283888352418344181579300156619990470311544268662454659229635
187935572435990866987861193664231120162768123894163173470121498095892678616746
883105656571349952172225756392031558699038334559351668630188467690170473360157
005527101052451040021636097815441185231747735016843503204176234532948694688553
831476136085328592148397820562799518875893214075688196409145976848914707291472
427607701680101074012137929728413387039112551943138919291718452864204470156566
403869898904085046682456890861325353470025836036198692391010048565892660963030
279441376878119444343065092838111646020281651865612454085347447671067440914627
444934134714281134703711627274784755003636434377444991218075069908191246549314
379652745592277602542835821241579688255514213626819799942935221809444695342606
237588779495443916820618698480656860012873016285466847540065319836450462431815
096167790837968352472760735819175112682311511484160624547598946054249547790902
248994183404381867628458725550754193224930958704070106801873372064611336555407
263641206263642513641124526314882534976696307484918111978701712220703375337577
352433076099834375161354779722877740087542362794008374575359466728472177333500
384847937660328504613606067578523245184911020032118354756875270905041151205543
836029411355461099906959822855329963768516271469907488405723239918139184628041
144186975264458448664607129471716348828158935208565557476357706575128141328500
143777573843363035911017683071017166889229162984332632053570254955595830564559
170237343169391043316320768962649227890176492709087836357198362250850117738335
047038969769101352873492335826286622766603382803035953478679287237132490062105
017625537643755494793515841495676990279795874576881932902699804387773420512936
398418579608022425542127202324455065525064400163632019761405361459522969298969
942994120939077418377340866786862757521429952430615007003799897808489059893216
952937558052802727842487086746881854720511238448416197971090215465605091401697
823964703913729020178188957171282879803504980563155103382039704336544921639626
293997852596601195243219349596665939652709395437785061741920011781884201504625
103826968929746111257412997683949164108063288038359306035467949482103989507189
628483071472316704422802364075608363762105150513400092048829151054997272865806
940085406231030838146996715968277893505023852192593460963726605555281238652303
889939828218464947977465937201652559144933473358283242449235545592782828762691
118487746859424473583720509735833032636244984774067872936971127533385070564713
510604739320626014000262393925513766554020251711526768076241303952889997878866
485573159906796974346060643483104845507350504608642164840807904729351974187108
126957046822530513430940638084919154901176577820309618198311324813358670882429
400748907810871052478782855566243845710957129434599836638504213480752972808725
580908928890762658038100975724542448669193377841693943996926080461052840722876
949396201745220945637270224655391039429128753837998827618874369057900350177591
558045557295144791102686294020582706586487623744829211581956382110179620240687
116020716940877997072605250309091598823825796096497387932254768300687304514941
261359919714936141573642968612300548353940158369284443426907921203280600331201
400306014505904032199194128551342946242143494178176445679945766108900458089981
554313091329247763251586548360443113067906454351871295343040000265238560342580
660726025466286513827835392611334842020826926583137851695093386488808880078588
516093666643387824009548407968424645682407698025094184155809790205277345199906
646263130911774294796146711408011001338710943670737431971506554393549315360433
537383826109198623202270056619303667250709974633881375304255417821091280594034
902431650513508954851046480167444268554542457351558132379001074563887872244738
853512564683512695677168664625567790628119635309351504831082842358034474111238
065955513189187857834150234580398192525004956034945935016761766006063413065840
680908105800291651088920483909103857862366472864422704247352859031300712840287
053629011702085793849533442932800426202692438740310269882221315972645844754432
766356673477014475441661858465740430811778387533912672462018336617485276058871
941752953624522953204123100847471911813440356730538788075692642357889590913062
272564534193274948474774446417377172941241562517062422940239558124643907288856
209966947475142018734388074493962294335212335186067575120318258459049394156193
433657090489860071292174640791416339551984050332626439071838903467734132364262
664814477970159119473451942260262130584774697286600917814745731997352169112164
254715408083350462051167286155039475888200753548153894062410962853344655600948
971865035365846751835425851959692089980703012101528597475260537654449139211044
608574805780550140043190863259537288443941553761789905341552405808368886131108
557844183102844503903884324639300972867351923505527264558639311143726388356538
877208191198433096965647653795336995979935273992709705174951575074389993225387
797792048244487988256999809775561903094427957404978978002013747344335133268849
688585746806461698267350831516599649224829199642905698520511175212612469847757
201947296551714668055721381369206342156109315607365729716850979690662419565220
227007370599650924951540070869046798782638201420144315329399174243567066922650
433041153660631089603790615520322524461176965968607364283371947702227251858981
899408450698870770053127547053283761729722084008712105727278790701320128925481
110213183799722593522031515042935953591850622776914873115357190137299355662622
933921408745943833847292163100120244149059604188373197324712536991283445593343
396043485775259608584966726846731995723528785191338071820533613528962154122756
518946570768677288284294952399042356805762581900754377787943797727795935968432
889468674583518954738668888535148225369514362103822157187411827228417531452690
953091433098946743769877384272337914642509076436731934068683382971387498471947
671161995068014365918386362266031328312315990857888535564914703036598020493630
948087117551370616995732753539882275232741950751420578578957127306441427482442
894425284024635036645327146088683603715997126026962865154633754289213677392104
213409319357709559344394822245827959989840257868308867138349491278021615067014
264657467777933373147699772495646972787944197346581113332967276326159060661253
476045394061790402840234807070701799428734377250465092798820598505004631484645
278504443004282464088784648177365061862366382330101359419819430045359345663156
842881276353521050281851849179648152280419538612725124899177776716201419844547
581078379926101661218564429225269135954059971781709102180765256078279689411900
995698081374547715499120370233814594936462473903414511737782935182150672850979
076304788919761299875400648295296465935724734868843262970827877980251745457625
835817088433365003066531413036624144311779845365608813987874406131560367047148
262486973866330330126485321059943912746320171951744626999413933765570891966715
296645830807375980066410222949637115053217361535225325254420179234630954753667
077907696085605058270187485686689560518686371698456779129801893430045749591734
618927956792056847685067637497090890378283673778207004572629349843881107654775
751371183668130228454586041200949759178165650363101103256745611288367145298605
383003764654858426605724865886588797606449097467384304730274185324160352310142
030437850370971381045591857790052698717940072570401158050255731373527806636945
093442318871853973095866464690823191720259727491603903757117936912622238830576
332543292182027648592886274935145164080842791563498384785404317391148103655622
972589411212236471750492640163549078296160790036616773268906161828517584394565
998601689685432275214507403602061729238729399958769452383625956751437977427893
109898805307158611524186539239154113092346161731618384621826225964597278217280
768891474220810014777464719291970300273387427843532959605221285169157944184438
961178798241226033399751905496529255835447079817117933420355419604832866662273
654473525837473849542600952350395994449818225224265070567494268395486394611932
672384622934384767677944718344736628433080236851417172767763077234749822344241
882644212252357092531742021473944324000314728945289020775126654365042543669242
137900891121242309661763101387165934657315087669413270570879270859020761088673
478506095843251705213450335002897390023576807828426387855251407590915287858726
759791288252505097682413571985466755160139382250340632245439833488363725490072
735553499415765078229201942335306884276673130752916240532575957239175823955888
440829730346344653352055106507059712685228296954494522473882797037676367825493
867223982161231014398224851908034053110117482575782807753644675517433970630780
070463892530621481181570629681191589099513666988531871636251229581551456247693
690288327273081830449773248463722329915662662896290603101018994508235905342809
524756999826260220025658669043267051781898651096754099354461417395126003763953
825984598518137078273580174162209269668236265715746997504698990366701848381617
615941183000772872741691676612772268188615456468834347521214016219294705850639
498357997387619255133660874382625143185545435997345227885139717084924489031953
682105895256640782058948711596237917967430598858783510251244019338104478792784
496348062125047762522203800682651506258057067776372855745146703534279650897466
674897443247498966994658258161351178794155714776961577507289078952715195279842
013164706054694045093271329049419926818735244064453978718060154477718473545108
811942145295674483274725874009458982556331598141487800755993994019558608553785
834962540840887488986888162517082087057739792052573906620991020603681322556703
256796731801265907153784565101517259681598346130994036812352970678032126057136
907135012294006490761827529979197523180210070044046469987711388618341763972276
687668340957448093330603123739800407718394912922640886409681253364902735921556
513255519069514321748927250676676870239582864984014839715478963971486022497726
875739311657231782864407465254325637304884017082664939255988510173982119610763
494734874988562620819739280227162956397004125888294520425140069021075788091736
725560307873042301158286944925222130731865287494959911042639142499298119078075
683543466842829405566832252918844202395719882342860892127329729694435339963601
429819508337210640747666950895314428791237966877339914803538620076772547980277
457024119603390653315330426644840731108181956598274319229132355409251854256742
954321209298039059761670855312829132258922453239189501560371135638770396775526
843958739485928655682497126147070148311636407625505062002173710800208305367506
534634543243037505881824818898939392714026228518477776495304227948289845525407
289696233106494993421345920993196614868814556332627242110698830513641230668821
304825179859139585391384393461990356615119767531195588606684851522931830051924
371697881253965990633077970162927949483561345823808996505033987270111853295210
508189895751530650139226689121825130497161868795240348506361661433580430421202
998551019709978810405602847964279192945220757791677749930733622487157901654350
989294538691729334072796575210155749754924075032077396637107619382134433509844
189638995019973128812815221464198366698311823659509195293903507558664216085179
821486338710931745258514697041937805459313249254724650305210191143502631038634
805192883661223054434652444684615362495212901422385564300603244333746479239990
939774924375748257058423914092362913255497230466924272589625119414495800953336
925264552092678646963732113027078744415771851864601555115650701648731350991644
540576960188451947464766722495210384472780383711268548222838472252435338781876
729805805916191361838955943578229736057772352148984068603918619617242169879600
210978685302261045598803449314075237177173724738757764791268347005345917887964
098034945691167181757074031546758005626316553642982930021285124840879508741968
645582299757890851026012597686607332794293164845142701933515725401712195789793
947800891304924094442049404039709482138905155318980387000937544069007794020298
403677662187092740769898441275827184594680395348360109743590504736731418104064
925930105141463162352660885383633135229198368753987664754696589895300384162026
569752312854659502467747837668077898052928199134218920461345119214766846190916
480576307799365229378584743384892060229329366683144671200649344722129894214470
473002556751171499671544962011089760132894602597980333132458850922256106237157
175045143015851080544092629448402950945066637119566659698569988298707170240857
807091579404687791383095762335358011076211625529969461487179306616118093225376
446386922002198487502202461130078077257037695646285806078491301508831753353225
948848781139886989257178425558743454444751804880659082370188451857171039237954
688965023656565424060254481670539255990701920163931862188965768163861279836182
486043543256898795981791124906270370147844261757654086799568975980502960453798
950112452558818165045033501046579693002767512372546219475714804175836167354685
290126307841627576818903703599030717001182680249027207066787984017771653008719
661687676448359566211929328693277483515165660203648480005241700982775840232606
777407902161095274911309495113634049114501581034645610064827645953608569006414
586489108925702434339315558272309938907001845532849850241318227138739833938238
709319047574438601824608139826449870760807558582433754183845557388009380606122
905541807684668910122685560498487203884823400761470758140324558911541512909975
684142374123092780918659141358671222406013049303852574316210660806013320769583
593841689316969196290672088569774484653197576469831365643848008626972320408263
785893803682161989263409279809885437902634125881959978737337865772855335391927
285987715558689405096931593429682147892821583924997907067733600483604541375709
091188627371837258141680473006698594364391753481136815870431873532342597979216
013018231923987930536447510140890895575967486001835123921310217298870382254127
406575454336367616871472153827199961728187139205583472252975913288933179572637
702139965637384056944326554489692444283878282539879892670523514372473526207345
042664132996842686983028262149207420932068680594409677073727986132706171424457
115277492869424896766511432853913547197616317751420227187708832510415248185586
621135044202120390542431090616613137650943994536953019749943621540160924639576
161174137517762186953999087005968113802025046928238177425546609782064516931224
212129083307664103115623618434841873002038866906220909716519778608847799739130
984254364903231068220268653417501199652048958975230931542451506383371615377063
194677206585375563732844994863521843797374954797905329247426836738000281756919
639905763285121123301675275295668552796012609875641820510326203404455945960095
287790672324901601952012207614828807384244531187762742200663988108526230688196
573535506264265811798413901444610814495807443207314864851693984197781175795279
770375485301004895865340745578329663319571549812143254504404969871943994695999
052253929415936443799852474226344511338902765717059466914576230885232131183958
303509107911652253006569950685148226220607352171210447643171057834369305232498
313500836551058787839001405557408640564713261642391470182386224662829019391724
297780208199002122854709487668686623675611833561863395189317471283264459347504
338489446628990005682498711199949272797615502895629447265841872935228323125408
004464819013480595696381358632537469650576701646249408741927905474885427398228
326554875038062191384113734389612523055680102119276079640392881338919048590640
038023341683684156898245129757150965365106502979915636847150969351302835204491
914453083063780068981646543448942035706312974883844878625880160228817243031339
968533191342874756954210563721477683946381723770265020274248225416333079701455
009303993352762856316834414746913834500850813935845371448185632231462355706144
805475162387678156151422335775278433347309676145217926997018172914267293396601
254961025761854612453159176214066289134481036949703832545752886406843414036761
905797460036630404587403694338231692664393985908994300262622084781545224496580
779974859633168234424035099786843652652382646052967419618023791760920676258913
292412695916285445468554302857260699690662260191930200739441138013852112389357
257516882951271694266536420346702599081460772212023040255611428620753158136922
769799259163889365445640857953755732332050972221789700992945565141416513065720
131426919361580794819410189988764815068512895875344890818843262531585814518519
273554334501857834006309888713945940232594482233154383873296329025698968291699
596915270788600282041978726480262715212766934616802851688061435109152303767155
014047589895639312931651946471492881568741319215148700113341972043029752826181
012848448991572027206677315919591583844206479427095990242488025317592845758290
017190866819677940556228130573166729289682446351524067005602488432921186328209
799640572455843295471721645076656327963680578013721890386680019638931368605754
413148929293839584834056860396635366347641982222582274405660401028106796333169
078072970153987757023149383914586360347034544135739492880067000854765152823868
240914143560136783428164661342130888851079829109223578552266978000222269440052
395718258449873089404415910616581663742933369471806865536790644820407365679424
320391424489890284525390684733591218944170483568754082173943414973855056012566
818059174120679659833231522827300956580244980153971520357063471876454465232406
773260261095785320858718962318707627821879680357866531959667122335289080278651
656237634056773440784888077692700413675910055035612672986384643627854693012813
882111972497495424139343085130101443023850961523285248822030826414477970868165
428144396120426663333897491680574524051367980330374550592884510404037824252010
627602688263885354015663394008817732440193277860316493819243687290323583743980
755168296327078141283187670265709298521836881523268636029359890103441250428154
436560520194835470588309655756833731026245749570995667717728972676342618548367
593768824974253450820254749500245224425212459815054941261506166821690525120943
035355300904341019584494455028996238107326034508377374604747161637009877878168
910243818705709180103055328169366544138483814893703687356369785033336644977299
470284358532733489432134846103284151630633191670661148063909658482958084159068
523623896115729699417609023140882513317403949483365416246008478314505577339620
938515938436666255349762999754400525488342688855866377228233312065078938142451
290803586609777882873009280054148554896728724647727171769129684996805261678179
462555300998904517073400893102111916631121783995627814218003554771656392050885
164152655676784976822325464407016855999306650203115773200355281565129988191200
714058350406719050497914943015647178514866567990319577819239747739276749443202
345312051192112728186482244293600960741733366481458384165894398745749008370885
100492401082779067878670165773548612054163260898249507653732991932070870882970
251391656337008562528638749871538208080813903830436691368283014852198463141357
980357320024969232147182660877340598300996067774139001810232446666896001006310
093079156429239004963935056122506886842617124221218773497397286231337006346833
587166643474511569233019402346730747483524057794495140390273769134758207790879
731247534536933886049400262117333996618523404719351724875711032247265249899450
095161245778521728374550019011324506824775267247925607558620918808428212314590
987386583463159613489695284398894659452779103336196588220904934481637293302938
817513895255232480138238507021301536074410176887236126717357342868977623576165
901534823193807516500545628348412368585932478946160426033727220001551850229844
323022307872960181808046924626132177138255728773589615276296854124329039808021
368578916273011209712059600363418203229500113013033772443128555829455240608406
705659660024501072760620143433882532530652493719973171974429511007274704642033
708602779155620010970586683137332782760370600235889754406064730265069471353791
988372334929434831265343477549655125436661715363273320748868121602569823796679
227033030935256019530006994866947372101392640902903153411719000150161791628503
963949547431553097127566597623507943665827912946659087388736264595215950048525
191588542402800339751339800991239678133136984103142894034892321893272642494014
607465054248897377362841934231802177359519799007282546887203479651524103115661
846296024585981512380366683506038071537328205836957963199111301684583527326497
773179069705194603036195041155418287550901177380870238808341381095879408748590
088388852591075239080940650095523380424345664177419042061868149826496269861943
244615487229449132033048912129156981660568041098002384872998012117867641296959
151688176092480281011317372526260047658982797911222742203026138800062358642542
480355155061577619932536646918101876289067923800217779666349185198068809787578
051138869464604824534751990688359098587087809428524886940595755644145180442877
445757387580035671993954228567315514551013650705555527918241221147656506282634
803271307303281754991648031818893562812818541729268642985933594227793621213458
307813480775233019084943429696182915119831524947322951871019473946731715846140
091988518598025011980250670169589934823504054360551873242976916649260372089279
098989570979643567213144323110651217512328556421008235823432691461737920554473
495138877184103538962289500541717192343973384000015012047500649530520691756996
705596501898911255445652923373862788026245065060635322199304324943596232321813
492607561563214572890024187071596383541577104080890709896847955130779476989599
756870901872487773670869244025896964115104609063871717733825110113224320576092
506338774852009213046516976930771377308583764785926933757696495327321838551344
858608706045115963862445508750575316607858287881706903771657119998710469853589
466931533275151784358737333057571462315087057816907683167182278780144575263684
903843925685383923211502729010716760228894246853007286907100967284633632046575
793752523889080208723725478049045338543595841500155571743823815639948447027271
239465795812293838281297551709530030375728989793272159839645629730531991077825
279305277552684281789000338645955550450984690356238235475384685849919252640050
078687482484744326202050308778540026361405373301677868445918470378329540808816
735310945649108278634552848889002311631973582933948119206932091602493695994291
296348942182840464315172051997223020398828356244275515756065754423012401752322
697187443954788095753781176036661260510619370772794029416228772836806117290342
500872281725597180468240983815354634102785572954668281637314669637518501296401
711135269068688848048339327068849374853474844173847060959436657320776419937177
432502654000474732264355531814909594810237736672833850526242161911401633349280
197454466077593195770746760004075056940878460852420241340501402549886587760843
892657598776615053731398643047900368367038771701816174512956397043226745235969
064560616433558390797531269717686617719461299799418906221438883804945355055172
635448312562392755559665613123565329689426376603649242494812978124008714875750
625852906809939003704683946304684632498438409977688804874165994879279852300590
551994645310554885631837025791190820333275583292672788127509865096996103946764
519572407197246287300768443504730155771853874991350584372599469704424297412172
188185900131803512676073589431599050342910180665256986077009938872417560444197
409947056735753370267450095725610634712342725849419842481401673487096351614476
790254769404905149332557797955967313767440368144604528402171624574138181568072
548819828779862081259245464564396230340513076160201207560241592393799360651351
738895112114144612523023952366445417224259825948989929498334859662931308935496
755338199763287885483542206322943286202606078595664486914165052798351066608834
518232728398337131240853612722057826784631295179435412793300234514884276211253
482199902485560050365605750444922273070691627810781768572447580935746183327578
603397343637718794818292835815237696750323967333865678180490826616113287903394
765796294315394058535086694678674237223916200517789927478672956254310968690132
737925139436121454930368334707641118801844552997125093621636891902652543509096
929597363409707805091907032789406374734442104411528524998482618789416181333307
881427538931740405178513146740065606416496986698207799003528651729037213380519
450852945317699983309738357197444524384882291005700012105408983794524721523078
325506946853880570976534874157159145591746378784022319971112906442608237475532
478946531226235529798766849993688178828914790098573299994808740356957760731135
377379328264945452259820671820903162572494231760453535704731737528885899480820
061130164584140945947731222563988363172169662924892695026866217527321905042288
583579676834335117282494503845230335827550179892748704068845769547420187503786
565394962495360897770768470033186637213153894946503302155569416979887136429586
984535939583654092371652907950277171219807775411110562176948646251347289770554
862780395981607032696667819822028317437775363430611065444146765395690850275922
644420694716299135111353269641156436179223430374843837362226890095717303408683
100502066520136847489123409870948059971847049246707092168871076980407480574377
555925212946969934962859568161378285404263943922589237974094314451222426346889
315896606096382950089676063037904192811728194070660659524219514089850818037495
322657002667659933655649788554480529392096902344888835114592013451045477636733
294592337475950888088968249766734449316211852287196326279128708815142338008646
893347226865450781372110531305152727510538236647344207746709381642915524593599
156772903142245494763969550183595148472010009572053674319169081309110012830011
683797937738324736406735786519110739535630011669447588937081520439538935644895
912400833166944263298544548220658583841842050906072249142412283254563223595996
865839694091360955625326899228186733664491168670076909547900454170654380009739
245093604750576446153877271569613143596213233479435817833289809986714583338700
869523015195533199498857167568414503151837389484467828739321753587474538916654
556986300707143486467989089434438318278514836521379811634319006956311179772534
985688970805278677565837024824741408250943136414335995986344153065254992123620
947829808259290726009908987997434948045201121028898444069058599792354821589385
077093877795898633671501610832225513477290838822029396541329882400138762737150
776987849082295322087686539848149537458189414586982120947729892617978539305264
201419289087328379922387685933949287922665554713674145742122029839879233112875
997117623119984654519778517661784277516132271636076489284608523770592665835395
483637150856054256037455276027075621070694421206195585189057981850998692188363
200389062408621675505244829480840794302430956375415076626798398101169505327723
741822139646132955764995229742146598662254427205941728482438309462216785614146
178041975756266848065904918318421782192057332318457882343704980032757366580582
187197516627165558194435266203934227307691133095059314595267246688862057642672
062800031244132466523465621052370095161412978921086499141331196820665057476882
775943207605069794986989553377056234944951315966957517180485132238866116078654
755671943029781018228104486277498401336777492875644755261491549324035419771915
507247824525407310138073364122064367763903450812142712236711894317296936272332
489327031013262992510232058541655014477682413912127822460811925587583575346783
612295751607719037331013964965415113453288143152343317920694955496345914866860
857687171169268754458417406859280309062218671537185823675950789203589693501467
331785018568662745650061836103220529307849269951555900828512209403442466197242
875590785397088535940154628067263520987468004633418393373396985405848272030742
223547787976838988581398334639887139902976882979244409024278104653921850329473
527436337848151675035818232373296300806311053013078147888442582813695009632597
320455132363150524024236183895403133311387967741607247894688704149687637641703
056636154577765901109672610165960350785426902421049988968237364570775637932636
675374047725749578210405891682442399996114500224236977689908335192624607676635
734284256773561653988391497968648052705231897881582464691650414623402018852470
538266380884492606684697411817457680553589835911725793988409244094609371400838
776791613797924525305757780825812180475224207176031732023365746317943674042379
328021061415470770787552429505898465302644070860100832585038001800524233876988
710613173579824080421729927055050397785450969459126838741679249909239764770785
249926162400382538848009146757621316463483587977240156644728003089104742321605
793578148893434154754983542689921682206491591258605695962738717299863858356772
112006707472364098636914293644408410549360491191868804869591266630698299709618
618858359938415614606425799731828525112955882623641659702739143991419904628564
725082654199739546291524919236842987134381884255878851498377381604505190996803
019819700484530494747878410786658332988546264647098513152217154149196208453846
749516574705399778698080172535054425916964024265298088647470422528663596917578
195802814845929879484067870339107590329403426094761065567709882735322997223669
764374683637375102724236183974094579446655755950889539728920533438814484291475
639130016839767063598904416675055355512405752891304984826377496491031995858727
290893875375561288167620869137326468342162833146429513843619448759802431552216
881010923707227168292099265376607842421353768156279208089245568815994683250073
163724163176642880213667872728919949613459105584138820302152740488020734962295
536015024191293370805109214508888443919253651267322692694127670525169820717552
838593326146540864441822043457755736257327206131500516972090066271475019038783
618177487904076182114898849691347895604624943261855851982471892512369682939846
590523806923972425175705433415404193350585147325252142270334397769965808650046
745025540416441303824141361887594617895065600030986507946111621217588773994744
190427973470647343033684866322476282618789721049911773184973258747107863204307
642018909583147749495953989917280379690893296511317589931837554541949160202051
076913932258274064740238356448102978213419195122452796319082771922262186682944
779305153003034016735612452977091023767608348458456321810458152254958717602779
576010618045920501342378416734889572817356605845872749660457844523358721207164
584423090497801779292422903243254315506455264703537881069195762146668979497991
071290625891291210448747078546767078312705687222135520877924817141038506194617
375456620270590983798553709146402739176043133941812582218367093637033023214343
639778965079999319224129248663203389222365540819532644839797575949151857034775
044546185777876103963293955557750384646807705796850862887375282040109715731785
190761404166685464281760960135414434595601334711210326938725543257283532175823
065943442568106231028977477248573464658054726304321446470210656661263475053647
604489814670377711214734271037698560088679999157529136427692976957661119263284
248519749851452215507533932658534365762197889016193662784383032871638457129936
478997396081558523211904738179084190869667985240258361536997734246920916930256
078100403896671546316362858452125812870378600570034913619947525018040204234723
476500468834513486561705933585109808217587395840926067400737460788847776653643
742026318783123906701611339094514258491546244331702484723783410427679022405032
234045702090758231892952817620592088263509208737732741899079118604576914388051
621554280263669755898985052881124662231154776319912218174035752105949831386442
931236755290677233355981279709716105622912829906947211985414467491095256110619
361626779529061695300044769161076339015779161232721841678560987017812889443078
364790943915045382674746788890038777246306425128619171751382054056345066285555
475695017541797952343110773267462785418170921216287817330281981194170923707591
940596236730434794830837860815396542642437013470731210257357802035208854989534
277362165835571513705604254279311800464877381056520327785426993345561033537887
910898361628061362678629262787352983604028628051676895847370571118953303748279
315628814282777899324735839471277268694127667796650046344903357160553331136190
847961749192476212724239587350956984209866910784596133897640042192459885795246
069166869284767283119860190245511600186616942735899638421638118741124910982381
200520402902690503005998538457820356756740481328771155933455031108565520970066
567668313341951280186212042836172145559076969742626080317418584858623437697225
912330414353265309901764864707069698459837878440394960078935571300401621712551
336323878354356547950317939209480494946353432550081779238462254841269334416350
171746442990204097631079371236896180765791790995149221095209884224067420838827
494194882031201047601728345673154883530937314441195311321991262174337119175077
457196838733469553045909226036150185278468447406648746077570810713059177171078
884323680578959466579106754473762043149020434119554995437629111491851853946183
566096512638920608788908909816003765410537748195032133444884406689985932958155
830460395310250009620798884579808687965918819860184283833772989010770943845699
867519326730018307470402328822372400199703621412921278410490655771601627556786
928985336235517343376949597384062710072864933668244363314622547420647027242805
002716464062170782392444448562454042163006289730216933371130185515180607917753
167788478727918932102343309794698878357939071545176410033800957982403627556793
851380803975786985072442104231504089706640429601492069912655601073008005399490
518105162506488879432714265487342407131974507986039827188936540682968267736938
926125689257255971113406861657813501178866989593182683818657569464794818954870
665535853955206108850738031397019573962943426987597074993579651522952916481547
464948035412868817145324349552647535687598532389926320011935791837136738972784
642370685314456975634719379754612931401169619077202473757679423597963248557258
898186532126945217190172358501873234096961772855976919883709569647239319088801
819672691442108556759581537888587037942145701829420036181073713563598251989476
868559632857647970063050828682700841227566071265421075793840688298723468352504
225512156533291170400168300339668990991480419972443523685957214038462361493544
533602807681224567776582482082340839877283438047624053015579773062847993763200
365244822898253206171816356704034043851536853425384806820482785073767248029710
506029952606478349847955695994451785537277483580407967341208762316398056771623
756197893425429370840931401464259776496458876991743626543561248140201901127674
767160153937028416630050914407433647694274983568396582242462172043341442033532
674150916120200266599244472473977228814165600385779620051016504185718238560696
216858990602985948528807341749079129843252435715643083293124556411564943006365
748026149582340780971663469996336761861828629328909345927669499743369655657112
687717233294152943199775291048528731156837441092521763932571334001035592507637
392218520618551667462979441896542651998343611543173582254556021882573270559988
279700141679311885457042174330373153980160217391428870201987067870219668135872
498822599656576451980128763996816372103276901522853739229066564870818928629888
595205748213676831951959889705265726773672843140899135876693908150638646352123
763948276956117780705900285031042154266742496147727245251699476447415411368836
965641289352117457868223380911817247049889298362036356877449506166165329966507
563871098166464828756763431970601376233666018403299955537495117434232915997659
497832807397859893345583328753502052798414730140344179842852266854908625968245
017749766380423543575682822518878676261688731090130439461171842243304682350444
091676222989515669991303657112247491689458654917052516429488378742277919204015
890699732487002711493763534654184071627509903984326154457554336674071197188541
334568508263772696524866068939199014501939222966675430387033314289314482880074
964622400832969643694469404575452248257321021615372741602886400459277618244506
301227048999981106815667977602755751902131331143938185497715553197477058501250
950717071302130146228062614316383774210616229675528915775988704690141761907947
782517468264585438672586671980857941627767656453940301820060668903292847177255
281211453595124133308612496893634282847898585492153640242630171358723674542717
403896655468013501730890318142960342850754099412773656709092917628130500486111
523081036167059145179515246363128052390854986394921502326223812056302994635261
082026886179383272966699782982587657773134623318201978879691479382308982260797
402346121301497427714932125200091320830841984749398058909636075962435208755634
462248971391525136475083154009032859183680851182396097555849842207021608499703
568348575735151595442085727952022283209225336512993355829937558984320579362266
295722378006260044033277938176662560159651355636529333458872251389829321247988
567134957390678679652991464356334076906200433381330512614684091280059554298603
796017501363298447379901747415385132861670372622281576399946222066558807151557
293721985163979837439937460069806771232028765306965502716704143551527033009436
145001269490442632434752033920660834511345099789363967174581140643991814075767
758419441008530543803760273680997839117161682331312338217738196094264930163931
799619171561714191446945790515161354498848590095530920114920886723347391818125
806405868196155705215651644292230373003288797692131225618341129177401377507400
053257345535985867601601796283780434115759372549894737119117448686823668754218
588730316767960563183987888606164575881625188808162284226005651751926477623984
072871597584957432330437065332399347432001290700215914338242985864532416532656
042476648734525356558639658561477848139426139412352362903068614966141774680005
854262816774611523467214097301142008802139312275529757166768345278233512062942
281058862196834452856651876132498538363077568673363523912487668463251421482016
319196162935343329006717362930399896488711279701886295459502791748314324898455
131652766845933766233422110540157011094814148075296984974520420837222521178224
772649957486051756012940691994228933777841159436711270225135495831100793898239
471334198494134711184566348284220537639824290145045948538877431254083349388161
159415942774129842214619989849320193490634683814618066062525909180246956123840
128920388245794409716514576034936555108878880152730415033257391797821883488119
864029136507892613995565017877543120104441271619158714943788050533061794130367
434414420435097308374170671837686518037272142293018553285064999555323492172223
221355947156018436756632916758044867432531354277969784891126868975097010704863
833847645378663702323542093726317147125648691095731842709713883463611501094806
353146320305998396224603513370417217230600106210664479800918564168980157969819
555270256096684431719633254204048704276171322500765058468483244104573538169961
591574788947019410412783871755847007065333929714762524702986600198760477760884
641371052627410104724855091923494021807711153256840873074553643207626175231651
382052710006934803079202584079984314188515802412507224323267976634268038163129
388855070268985153548765665378056805889104614982481548382342942737241665423439
262749012773989821549652260729634134115211258015697702052682249787944155685951
645195440185894237821651312821613206538657334680092392144752766016626898068087
555547510546727534224038627624970263653643447704977604027210562457259541059273
099373428627875919002163362874832786553597532019452005717063839308987172497171
166168902391402244688942955098467134188887122501131035170612762362969009298655
161242453544737412724766254799149094995503679309934077543523580698964869742894
617397971707536398647511049597728584625879083328289247099816112827711041866998
621443412767995783950143047620520575298800766296715405761726262673862253443027
406003166064586295135990781691535661900205309534995410778777558067131440629437
144470156331005863872300647909174603863412355471279260979394351149342629260748
121765301482255330974161868740423700088073638670259077260155698738329312756924
511047463717631604675859248583895064261162278194752654307375213816656889627099
418051981991366278238262838500160457361030853799044315288566723495453178750829
389129600676223523911281891996066423859201588039170139565325212207330624606982
241524456490976582616594631159879796945064564598443795032424904715628047831465
229836577619996692855863193025482201196153356506269465782578724671391880415697
262200296400649486949014107366467849703950347073766687145385386424313777086053
912770413852606853060253692515576219767225492014222694168812790566007016454473
464257238046183954900796180646696487202088031116827237007958824231665613158916
894766690562226341085405247666496410503012257532731719089775336036289855441439
339931148204806386691600511250947963648305346779451560969567834697100232182151
594295778057385032478763144440003385283708028842202115904722882080105525416512
554500720335731323912720752646810750844764373847390386441110388758025091710264
037377562446315254144703825313612098019748585377583878271144931096211543611649
294943989888968778061098552644580124954304715229715226254737728297733191923966
593688068083626393808527418661479884204111268506970179598193713595183032346845
916012498867500321264120444043087209089676607174511447570922861672752413249772
498556407524044943557922786355489746828435918636733385467300827679736729958999
848404364603939198423092631251704606036906428675435063996511433005514471242068
464413687718570050864371329418962773259814718234994223736203258065116762866861
431728821856439745471613912918729345596444640988074359986131229173779946013733
007511737195842374037165478613509994646818436000528670243294777697346482293004
768338745714103869177479814876841213281544471596311894448032148331953684099525
603810484397969302116709870688838372369718243976113084945995446251234794230455
918653914439888754848386539755853323184744998841573101375867930558805697370423
022074925097985873916191720439174080960034450082500842783314919473005564480136
870634285431922860309866237791419847279734223674680042945521301590144862564923
015193293332785392307191182413042586898763744303783885453210251717737371245345
160005446951635860136722636237277455327760142759125795665696194323689075649468
605307132494687025818583862724476808841231089613012504539219041040282341016537
686923862281792720492230557584917748119058900718838385197355514905141901096871
597979917863719765305745262810016084484733536968256714579149909431046369469125
593338584671970519617695475768431465714876626700038442753988035469958594156477
573960686363669130960758251502268341890122070131912292732542800366442000786621
154981543342215045618441168983265967298970237823142360903758253247712585715657
219891574964607893203492969615933140143085905300533997757826625363717312764947
709313828305128121009637088505814421025618321062813361435047072979127561761250
216458498865209235963930068358155523449316844005850191568828014198093965539397
088997192411001850788101909067673700487835790088685216285899876735082819802881
519214780888574930504860069020490249412214453188733734914986198052977015246274
352007595499034650278268603012604064104448925220966239951062240592755886786003
973063514298516554395983782888953790428690508899375079370783077223970758075704
126367747083721681916506217568956747930814929409655405043357540558267621379167
638312060423412075372477743305746228148194632056077756947826297786774229700847
072964928009525930337157302999370821922646029578196576212639745385044675021518
659096609709584060045927023093152401114485305678848785593576667598251235099774
895259982988405412879500841531784351295916126589084932694083197951650264084170
252495321958916359623825759753845093257731499664989266181385046618199085835676
316396087035807089652338148397648966059361682203646120843012257860718746729873
178659937954140031914979123303159453757811606362784901124899282365177714980379
094502526178602807965557904129310697065096447299215453257256418029324463743394
645443218322920139170896390281172538897071005217490520076200218536117478360770
287048221358003897206148026004965046825254961643461208644139742487907170309018
795262868156203020869615117483078142416509199147614616581339451980485614712597
831089769557523234498989584465013863479386591792116716767595829363940608914579
246095984413240514648584916837135770382797047501742874393503681532562388522408
688679022323253414632768211952530577370342339185989147169501444600372639585457
181962230264273735107080456503096991528224848575465385722565087151160678288796
276156729466039243451121773146144429160344908961086002399027467426982754758568
148600047026506319966409835047578164283823668829440667312502264446616813809644
421982744027094900978549373228118355539735747353783394463359823885003895148246
014134577784727754023476259605599015596490171648541535677046475017399886948022
166539997934209249081956026168921586931411300286548054193087179005506186660800
273876065848488665319377492677680402739779415889678050531466530035830785143144
188897997570551588334634226516229868969103721754899770340258430725734167366320
062988294364404742141612190636805191272835923188187801337667480775808884536393
177094930612860529017497448140631993039902159803818838136109390617743999614035
099497706052561871218466922159508166965295496721958434467485815728624596935400
743234528355726531290329812318509832255014091734804007717305212397312303819035
260277018054519982431238987887053283212730191016104103139154547470649501258899
621806139454620094426303422031988490509531446238608280454454867946717228691407
774632726580008603896856512936596450743828852733978677802036017440249133066778
449721029349673428698616963644023763184529399203036674668087927751256436908182
406680350797066874071130098716755961854448957646794159367675998599525260875654
641280580595990143865285822639916964606799751230282475421877654403017991649565
558519790674336277422143439333732294258536548388204392160675818175587845963232
105406802253544038147289907803402449477798529836969266488897933486973104744483
651264724582143485218895068338852201600954647006021463651450353754190307036400
489400417222326733208091890838382910221832585196596259450043740326246097537501
373580726141832727217863803486570053551750418441517551848977033185496560477354
126005784330263024375209658172274827853277226033509045067594055309131475475623
279964591439542286101674902122222204351913838227257083068818787260693034860025
854066033688122151410300046232891260572519913339909972626830187304066988255629
248321473592013519172866103231634642514167165855456972539298984174084293643486
607437100810215043320795852177798014372934620934241982269929703998050771058530
465759630232163398341829621750854820100384978714890239730019781880066958283156
820039684715638366563593456946384501710522813031864753401938359939620357384565
163709337733518270550713026170610700977978248402496034526944028660333839594492
535611698445398417598828800089188946506007184986163454058183590541631250457459
037555161618315291292923675997212493961449728862094587024395020772890096026178
411681547168911216892075017742348621417636518242273226048554997721878211274816
428404614562345497299635409324461136275424144201140666414646140455289351990794
172748861595001968665888933476841954055870921115810688006804522455140425731552
767150476977455264155223788638910163374177004858354072505685075074496942940617
773696311953801694970468787820842568223001715176387047139461708892351064545763
569183362384026440350156534553641881649233252062670423774272994074379080464557
869531667107205258266637840729090330943096918811702132818275897449491065489509
786652301434978137539060946945491537802139652934846381546316404908060461853605
088308773742313252051024723094845227359998566624813920925595618569949579186067
392557498970100439433310381548532177502046169736740825161347036636054806868787
458654620565042996082801780425768140842170380966575574972428424222587711358974
056013030607180882655845291691230597813775915094102528136849189703183655406042
129451019855070241291368591314175914568839295288273125057050496931384784342790
613175986237046346083879745281065648399869157964638231042363026442336533151213
749895600855134211573827578075531813296184255644924532430838894715764188671962
222904107677268272640874861525753148667016823275643355441843252169829066375357
181399046342982274398466948676616988642361112910638335174655131721934462148152
845556364325794056867796569988620784287371347047039342552580903909803292548819
613659394181626087439767335124008217161403838695929981531003254926728999650777
621441038413805273792164866146967922209192262407082611014965340333544075990741
586887587750953471503453940858890015062113220536921924431673947809054657351778
072745627178282618697514788903271853054663238335592912906242720000677597413917
560358795659231455839449349956837830949582068088161506109398817638086712464820
357881293775783674979927199293674676804855849344360038685314863167552907105912
815396548901455570408128495818314736331949498820950281381688256613170838091850
112515999904688745831548199406815385271054517397221218601109595731499195740970
827641107875298763512612816737964585115497365797258710390655648491652123693586
873181685180681113527108164471311014816609837590794461676999850368471939426580
359973037237777093054568928558527678665774872908942822587977811386374414645121
082163785263181773649241434537885662481813986561993244642490500127208409932386
103837484976469674550030301674021880556996585609953737873259110623493093232921
697774993734743637997091928453082850036209872245015469289755948597454248150868
115814357488270988217765501637283475312549333481987149624059515293931865617159
329171935117539794788845459294090425650761841410336130202306428085481340101980
586355061145315106716611529605926774681395986611178147014666252546619187865253
139361415688101893912909152270358676744603595179602608339423434922700396982484
054328380741028792112079394919784222567074547830174609097003851958726329779711
185264972971863450057260950477315463306257716461021237469788121229704369633690
198485067564177744998185839507273390966886970563726731322171094229940010006230
465359913050364274092125454737087186115802911754417530951294740521609438990678
808438232670843887243478046656451521655996556872956008233801018473610874240997
621962914102152772073299111445713504985424544437759694119833653849800615652971
541743932684413134009444596446173790014143423124103375380388734961332713032822
549858830377464050126087225320302409235644848873561138765111499354122263467759
229301454166974786799059483352961730688391607986683619538189043411969853870096
814943221986984342783040969585004328814161628904582899102670883208884077251587
721008121196924021857498106741040650669399165496509122564227451978121712523069
186198015932264730353820654979512923783695879713410622806703563264095617710303
505163034588842200480419197350975767105184234979225738812868439333247608583033
455065854989110567160946715692083349182855938934552967947677707465090538080806
319172265593973676441459106342459152284734923831818962732351298900928271542945
723363821024973321397961601490067725417724953120474379687288102477112967413948
129939195666650381133986413273460797531866278191567087260342492710650212010365
254616177087514375956225905162633669674747151294693942935428600734502326858368
851262432123731177282285498177573145194332169893219187442279213837742086404242
143195851107090239367571130373784747579938643648431564952300112792516361946981
981764562919833749080976558135260631226622681960542262532664959735190787831177
199122309945382331692605416913382097068453358746170534374543161224792669354995
145401700985690566160422179367789879595404920484872148521401414481179090993402
180260012485304287880233350536516783401956080869996435159215952821175903851427
263757299087782210403556352583588861246545439518279463464680287102463107252117
640612546570389515746704202044460543029762739217135418216283258986861744855618
272769288248396895714047328144875432320562052796090492807566268554995582118373
362399419673429483937986731333330508401230065997076488523706474330595234066106
746162719828771794363489299617569356091274417948558680356804555945781634206653
203032891572385824535847601881457630329396363527085632666520458723230320764071
432305467477839229771231131418089765382739288242077541911612142365818316975577
936535694122124964236776191946876255492141140141427195840570256976532801079139
021785540564123994874830245385797225002098273235632656671287998166352416628315
508158178238070234605135186911876279276726867927327560105778374157155206150341
677353770780409688768704787467081632276534653394448470880474858704052560710340
348270429315217712757325042620528767117959416322275153636003151636596889083693
912951204849529280787533869992807099267486062622229731134213187717139424956764
949787005408107443791603923675852378245421522476597279408429483873400333393444
908069902187646326884952263256954417720544629775940641251817995720062162798876
035535078071306940697213950518663464886260434862541326449572342567977261694411
520753432916048376871485624892656880388464109981652944779457528917435459079281
737054330347660168266782872906617312619847427588478637636142114766667343573667
748502546820305920471876123446507479091448936085793378187792699102209909468132
420439551877023842810679848594830446547794975983095738837122099242108582099391
259311618169305552534510439400727844248528541177641577044568704717956774391304
614977757724438263195194997554528642969847687610006284717612991653279674620737
100059045792201617054581820721379285245591730675962493786180961667666034275074
596137289702979700307132669612027091422029037468000751582780538209301434429484
397331286845034470877217060008140983864022275338206768951288662544567133279419
008546925339254589443633397157791908908054306509901805967890931142118388775108
721426852665228354933976865146896793178904949583013375233414280981194646252728
498615989438788530104832490709523724353689291379862936936814828949724756039435
694968108197060995705848006231088462514444063187363760394166324840098124985207
020457506856659924645949332514417122588259951299888283394460192064932914344920
264319948805144534176588013910701116528824797468260549943263520680414836566302
033367698160332457240802293920886346864705851253678118323037999242047307004998
375786889285738744236077764699924058608359285285260791217098735447240284740298
891798847531697259058489734830551655771210270990382129856354114717169207457539
896103933271647308958838056114164194264829747627615130159919626441278499476749
019373217508815948313155873239053854352970467317567979849399619163429333860235
198312428940354771584566606061353257600100670357332999384447660582409060473059
506507964055363193489697919229391699095966179647374880159373006569658302392142
265819985169418930713667638634703337232300069690839409706887792042556719308376
556834097478198387542835163697959216076425789322346487491712363577652381718405
525412787953772407825707544386878548574241017618671663597032946379003145774195
449626098108034612560996193622909497789267140307554138312349541810268623538683
053700963235149744843976743760423925976033443319997152937962417985485676062196
888425666166707155660611921380084341244022366934599675926010601467852433785153
839479486120562153460950947966581731471364787881569424578610890101585821010569
041688325311437469748507051979129964699928916943108191765386518781659552196006
637106522073570016317809669925804087515169154964843882369891540681427810273141
044684714103737793183627047063968940038476690021825068444931098052216728224154
875022249475221947658007470730844998332948712737624333821881307700044412181241
533641194176840494707074231975155470973039699059674203972516587670937290244680
523696129007735073701126014924927833284231301439425839618172103678498856667239
433115426755710221496872791690026480879989167146971314287753511412051505822735
580068016343692833727335603053527506532843530573512467291247848280598959239996
709826146126017105567895181942400154153994610187014588546942768709636783307474
884562752349838633277898647629629847676152485713029793683639183878375191300835
489186716236511015806163064505330537754494112526461226333959961308217351953352
292443804493191234822460610180743685425734757765187562426901114565160068100042
579537605703096185102364396787873764754402165731859821945648346494960139327204
809206714253984233200729471159669974083711337083407941250605302988204996548745
148860229736439876814270069119570116396956137643814235219537724371977841307580
084052864417064232861788938439020060451629078737427812138882304756475732481233
800374061298550150095107627922511117817068067028905836378785699833820407526410
792297686077469554714867775846693025288512747375219192666894167060467725250381
782447665736751220514641804746492119558706360167776367954149650681511906990096
263255429676752876606521942175443688822932038106910057626114388781188784792361
977208200594051144729858708477636552435884570138926302217596587479241613331684
856108570652509114984858377993110906011593468045224202511248664206758291697699
535695763866204092569628631050420033033164676786824645244057360118242598721483
139417618310144378634447797633324965805834432736162724800527666615060649941099
823859313582145138453972443518756597168974029981001274519074744225445746637673
866848768244018738872097562748506370689740990176242063253602185204002638046051
612242657492572673979994422556567660216687230567603035980917341264893059161177
712790513517163729987471580393010638379386239711795096906791381601066072624657
434863261483171956033967773183681178313548273890859157076880678395252473176630
277222412391574766236932953715545086130716465419905137494453938047732858396215
082540697804152791388734789334521219068870746856399778335969426829613477947974
966019946268369310736995252189116262986241969264005809213899639623121409979380
887413011156557854095673783920408731965690044203696137166444584663273893829838
550296937636226159328021707731445685028316383374533726975576622832272622058463
680125938743330004652022807744511100662073337657005905154122288269933369412760
680543543588707055157402832987602912029656439166487156156752976622898952934004
079950551053909892425734194380438460376897641633245828371518632601626010050252
519977173186374977968033278811870750700292114870829854509021655600928184847936
956603007886451534789520175178101047594765037355763785158240955731618776117416
361072602586797645385807060145495225571341561980928489707206542236916667420273
778991794810702663059553969123556600315352255489356524791810603114975269074886
096880141763471674656289150513454934683579989363973470357478412759805253360603
670190084567423612780410325910816039314792288439697880399769833269550600745168
425705824280734355972109689339940639606322307129497747734729150988076010655779
634842227690869903301974341893919564763141194726581331996374277533614825145189
954602197288813278688410089569158815401493489648621299387503636059918030632988
153872021435098484514714925697247257932001066294782023405589195115050659228876
685868060633822558687338872616159487364137246063234328131917353778616899527976
771981448651783881084868688932486625356019249693039348226564520691097238501753
365662973633360631107213763076824249423244493744911671687113824368643097986206
233659072123438531242345551397880286233155225177163758392272473158962037419937
946349285087833260388107622922368186377128655296422372282395580587095088788770
972575705390189763993252946084534050244867299021613582753275217874396760556250
395482261908991763006944474691226059045512183227507272172471945689164531524635
817500288597953868484620905598246029583034939605404721126277608034967888616167
985499162274690394530618670572206016301256268893941619641259960103124613001185
807290337789948853159261046298043488620457527171436195843026318361208202572435
927432277649438280887083890379215680450494963647750759667666487726456201709410
349025569005686624386383995844023216764601619951702801108755035963088390159637
764721271801521189886565083358146012156281761797451412771306580724161231829519
462144037289904475380730571548149414357075888377337716143960782306089561921447
555365449211365361079912866280159179062688786151662220389674797266173497715270
048189873877279553921030017749288860772599412842614865588650620074256753720597
367216379443962351769381270251811847614546848211537289892807132899147500154886
896253989204819134908728457840793100919211738588450326535622744671540333934054
091193863592328884775339373640168298937665598145563602280811864875467776718149
060681860967317088889286313654045411448711055130053289881682005125656323226826
115097873076683585328014014460192147983063910256244853810817163290710277396863
568466286983077729131190583696605288820526283360440286801014278947970841914390
946113503246086619188386810559719693691329124649795929494703205379960021104460
592893665115036303876631476911653953290164841780140682003278138498893290998320
866600328747170733559885401491051439904085740434592230147071315666004176826896
860686667963841970098935149715922760923389506402297997583010025586336188859158
003697332822685559435998064777773826735242050001461317979705678710352794589027
383578231989697932419096243416559959269549207087306100003217626749455350184331
748151766629478080740691747339548716586978061169602259606857615127323719575426
585796662095330410024513495044378068487618838297170756023955796452964376414047
065535436833064249075200826943112929223293317555832948018113754542814571043875
480879081195882549619584811795141554136767703017489057238153174733883212047125
962098086353506906277689647335977163977004812585240043678769503308004339232562
531421483300657768630899786815614871885314226551478825364120518677291417590697
965314532643535940927472368609428782290941142622489219224159097330246458403461
837583612231322098917215609267016458432937779979466513944252012597279542024118
148739261293670361539300397340232940581172751670661460128294768745844399901227
185206999888518288716134952599335457917898998165539664133680562497876532586133
089494670275654787627730984349667488822097167051971151262078834729968283234981
669756672732204954697326365978155137855258690302273762139348576103388111646339
201086763047113182156063569287770991289980304455883631849795268345898080229287
177327838501688325093195158712877052465844986467497191170199117297214892071796
378742328968183330253974408425261187781532746653700618869988705426643373940773
164881218624431174088624868790845771052183459281621194868742779446864404122518
544199983719592608690311100995359025860026709025737693590847214431838667327868
378011696750105298600501615470987555662895737516950841816862630308702867853025
476155102953755534281543490381561554557012290333743719127634772170729533062514
839600318023012785638584021300166026784416009592157465982269872287205805587423
507784411317155283016993544712366894742351284549483722501495988443633264240060
655713380872072901448197635077721137187887384917275443286983443635508620825983
998709263136992796730912996911326213422208471434950034015150428895211568937669
220566855395579537169525911295690643291366027166873348764996610100719953803085
221224573519991927935354938238463404366071976279033367063841400770950262724326
374215298205514674531589388790086845296530030716375998737898310947339737760701
566594300586570361623660291322810457331115240706589791067920240131072134740017
551100853021802657173412188944835670450486242505469388992976484539265158996021
332744959320830153710886826871345185824330865325169537937792203463769884030977
720801952029527355451241049648674749792544944786680666590384125046936611861037
259793470379074909313893276646829560669336256308268100641562990940901666029375
777474439960136735305008843678386412107262109097338161412560835641578869246821
556703678428276565412363467215178239336493894059453330127347194089881524027724
513846405950699794391276227801835314678445305868505182736734145004792237949597
274657215087533395141850972123766667943425806829637637140875880176730884905038
046201733339112078514167365684090135367010798504590182189463571664651272020914
913145996049596101992065899041739342506928907753224764820080431945074185076493
807833783558770457911284271524633095298698702222866409410905702178437139508737
456340556518556487905845606044003037586715038059750787537100214966604084070169
340575849129626231382547381998730262719308694124961977130046406802433431376053
319410524774204321260102803079206143185391903307352498293576082729842773441584
020208986707801404887795177912807065224015325783105651527145027747026593254829
214867835502571859734834226221689739607289939016016514995174571252488768103481
494757564563415014182220118792103667969882786954611603805357243834255502456526
701088379459833067171141261304004523446352346907553337471617035642713177278802
914991605789442659083154378497936839366501435392738645007013518613074094293209
259128186624892024277159677719553975065248254957624880452217301002813915461176
990706878904411484136046838144406662164945124273146803936608162215612917569358
379324759666298382010331415404147092887856157848996612301499075269149046829726
530645665478513630481145497101789319063056428223157210347128757103803872660257
023306162440318854053827576545377591520893560269934830508993795581998815136260
975623621317173430381661401994488170720108756334949507620985110066437359035115
721765742082027683613292542664841723235654212073894587821471940086973337322950
461882837985564037821636213415936954710179324934807487607610381138750066714373
977335990905092935460000958115676045436836060545224781856683591046415937264551
273356112038422925277543328726163547249197538314763639341175083181740839312471
314826029101037993578652559456587890962468440776179646879593410503908304453753
923427127723961712709534934479743089440864235269931578345270258353382690448858
798684812812065807412462157992252998562232130229548791006286898700416498487670
952872906628627981767850808774008636814899381168873506768234674818722416862885
314220017307307480516078681647910058194254005772539281772367180733719077273308
514462421359826241642810924523166088595860614221561682833960553826581643951316
184706546941759841712585385204872526009553695241907608675485493063767204677117
500521902246518766545982789857586263639714206460055448170763917831741405765741
652536600432254889471372287206258953530670245495286217184477894060842087058278
123003774981661101527883198293319605616466996584549306953972271269902299481066
349866667711541441417642110056742259055973859489399956416877027403686844843878
331160475603586333044810395367908436009255398182405958893732955789850646085796
615356602079265088799225882476951161563328151312060155958757652236229610314043
737655039032110056785575521022544264384326095780364164951236042764806188236160
890825160752083949890179981889996999361787560495806984007920321165173700520872
711392252986057538244781550431892600179113661700756891386662229086716434365066
138685539141848869670045603649745465121573191228685559238395660555034647129502
272973429272324828820561843249322610566452155667380755254012807217144473403239
753675637808509678312610307280681270600126456421425495339867496544294992573736
675057720340242200111889969391862722662472985723811522508076083907468859247062
618438713051979278966220573619236235884414040374903378967419651424850609019736
593447674433408886157827291196637314387602556825872640040360108127626486554739
771754647752945923251286783755693999281277093797872143256722393098775753320877
814706366224167994532459489604439278547717546494740527401757690307523818712770
802401258016213611190693700924477698311982720672040301495635719361673563646044
470733725465954798413877688251653402283558231113076048674143215504485248425995
733923936500852772757675171790641672968398130365942376812678819585258771388709
006706147148564361883053396196148931037899224824413660079163884204492064977616
153309853138057636688074273427947239602728505304485873507046172491376072401615
512298236587407537029361423362135584469525508098506414998243676892703264122397
777780797364982762651764442756998664191149250033467033383902975022281574290289
996084610599820200461855658250325572322081492640624150420681556810385606292974
667612314900454434631163816019911788555033327887961966956313765326499460741004
515599393220921877619685374338982579392523232381906272644415698794056346700197
147309006066975747110891841370040772065018838648648952378725516827825097137202
843454635845720745288715893500586521416064657271802755829475994377284413622402
278255823297224719731201808049285217820696007950178566097497563938879900233798
539886083265103979019521224174857355499840211941288220268393130665866693078492
677834837518281655693589893157735607017101765694142118973139921424274158208798
586671013991982210373016321195660611248325745529668638603284667257122544340115
662044484068544925938732184958317660309552318948496447745205582316975956975021
084605232853767422808843629081395938137059908999602252711688580520508066861061
705767663061772892595512331877182166187437579907803609662912477756180722701905
756176572618023780854102874362909856233915153585852097624343007128852963818965
639827836888066119086253556646502579672717215977941584606920731328957697707517
150163970841340277646051273597061385137570395371793307148031721327772102281559
903489984161157363603608374555932386954895383975547376650885566839720304336244
609887286598535584273929754184935820519527090894046593942228790679612068765922
330799831962032094315941357692606711929439001783931100270270040077330829912450
149098133056561047052644633702930631690915333074299528167295774991185823533685
797720343876437258084093109871827866756787472166312874765106236107153501937161
223524771553785523699634331829372557363105922751187700298422502563559713764608
962368662989976500574163947235212213619381032014021364586718914467252805879704
389668431341470687622389235831340353998407125405337062901538833352952961187255
133383966558189121269744800025614585642290512408114242447549724010284903791383
287173419488968857624795285310528359740109136972237837086854188083909494835049
343247719269777456765460563302257136585360189963431084375152136644883522440941
913582693028799161254835482880497180830265294265218900239368047506777804131994
427952941995122088725010286291022239620975719721701584143907796959140640799272
677407486878660868363449787190268979288132017387699034115237019907961958602867
866030983990878036359281774981771468774072554554927946481536187496960682284631
667799505988206594382818002763337692890214619867056077899763352757223250078047
394056487785142212550555102922708554728193106518346083720800086440306467280071
988722019758812309893005257262526100643404715078540248054867352879278107374139
571292337388081356532684426670940374303254020368346100539388439291132712921246
285952836081954846833872547593672643648959789430255618287447631617015938420825
888425260167619480962362451664308307106951912234095018190194807832165714345627
767096966738229179225407304485223507286134287617999320103157373249657078787521
866369988475926237688107460983583010027850265885808496784986481497065172670580
496038018704178331641984765891849002221682912181051305060893117308628480614348
387448377488887732092249498341763685982037160495321612056275448592711603500740
976434934697772603881583376336765862230762931090764097477551192765270733578957
366996596027476805757936363756568548300592337612216027700270903690596541187040
690153166527707965265052526876565064016647141539746331770128633793945421043370
822664735242277637590926206610050403013365492337424312386707973326871234702808
539151223240378478398145963811020307018633948587087464110609810102749002466579
286329392296944839387897206780219619416052134334996581911389372601922278885758
225391301722492000485630125353047171193121744779961767064526686182156494316979
159948053531104152742911366603204636671438152014696982124048373373258291184676
466798304251190763631178531780947110292141667021524088644942237960736223109753
718485928903490494928675011080063817726842004226552069312083354005699157227632
492939402019303535176958406688605738253359345207092516471214487660584108929495
752093179284962805858168576730229088043689728246504825367268139944333587439763
647453269976239001063588317251695246739434851079770312911372105124334460161865
671721422719088978864749087543640532416789825830009882824466336085546004188664
081531166590198165524257784158354416961724169323664187103581709338971187084336
498393851210325134707383098204662847156754590985028679575643674721017851679824
306643591575174059898229276931753354559748984737339398139925897306696098597489
488853665144385963858318651751306920315502773145088537869292050735387178635980
868057113022181254772500866252368770780470111248556594478494781258909231661490
340371790726990266933337788812783504899792389506416656164054879440245333651154
411004937485882892377934527485680722646601033483055241017915975717332852481902
596595794645346596144257977875555919404280576800707656538817206374218569319802
503561806524483484388077133512848655204874193274729654526341426102540899427315
951170841839803922955031713875852194800929825276388573332382856257019934171367
455780664108310682825265794242866887803364029343291171640921404985319131182896
322780843604345327288968658408272005842242493738668276713091655377494074592377
511234217839194915013715354021270067728077808132373908548094211373925003634094
232724604024661426699978270951097552299293902958253322606390335401933365900400
069980698143278579222376125522507787102074011220174831684385210288496303902766
048022869258935287149331123758696249481636925307663497372321992847203892030977
632623867942410982150858414833914107028226990487545340632276073712784489734056
401157397385727863271314368895125021272890178073152521785340683030147611784092
379488117406246186344148397899253299510955660167236949482375094876933217204858
969701485145262209059419631450027103437543780503073245185585067387879110954266
099790423151130593091871850824723107082053166873157084146082023585150018636203
291422188329458432252744665396269022540833394200920731821222492678009107654832
853729859534495923237423861940193815231087244207297410782075799185362864902584
222061770734528805317366417607738165624797803771826896213450459165100825614202
658664882676169316045362426945142242426608676140691948373858196522616393067930
452195019024013122301456249141305342170482836276927496492904128598393898746110
099258105154808013910784925257991806968752921437468460186933360643453706204260
728292752203903945727121117556575030583937117420572986471255809314325093313251
124361262716519112738748531665612683606819709481916999729327846331643285042672
160901062338642820193828205647384097609179282828633497587010684920143528889180
478946542182968327369312503526226516055027865494849703600578989357217398176999
252590966171596099346227920654599341629817468007945936043517969522340559728594
442335197190512426616471527478077799603976186078742589189350829898034841251987
632995113379968466276941270811283240312633526925461853858939771931788982418195
413176177792933012073049015667497313361908091299114099755324387040950908355728
005735613591267363565713986494810889028275278433450379416576809951238584991253
613869502338102881617031947662179405074394938352962834912957612198871104855521
931662738172599632946782538175341987884277788742020817600896531417845274848261
449239222942794975690387187554449354118409454112203588207558547741732689694164
911056500919821801338908064989748689850968592659634667383445072402451527153784
317608201541098423019998163832236390429497130534103636530157887279096519038686
614748425097319503687932472726337566766838507615867828931030058899422788065029
691310353593494174840007831623320830654786675079987704153875982756361002060933
425008168693493709118994534434927209897964144784926476996976250332462057211231
137708422282809498632812832763797686575831341615137109913751757530596429826754
439547599593930139614912763824555058880880401658107577487181182699040485171933
814153148518796096700558396924129788611789623797755633851130580333893612643251
948245838647125874345174939949138915492599421609693023201644524372425531146013
842366497486305490535582879015977945519534975511256742393531943969245712956423
629881614980177019648519025497050178654825452523024781082435606436245264917943
683262828403828969544751991107154531188460305583397508506266100579784434646882
542242946295507167480132963261228301053325540905093081966740417921503184007730
303909033395544096091770891194623754314583006934990192087763744222377346800736
787923855884589873456661703378565822479434249399426148701651033717779301868460
174891761036264989694426361458050991276515100251071263439524153698324823461072
830969480586905108801261200137863434917999995455754800087171285354498754623447
331600158028899317763581967969975192694631295191107127862038091854380328445529
394811666908137245135134857497713300547446308013630115563124953930044260525943
830246121103022453600801018148969630461285366370969146452907295745691771172299
610150250616592306229785803361251766878999103397571662413099449845469455890072
765611183296981613845571574066165776674401832713275682173464218222500394042435
390646566877602739303815584856755124431327821743341103236266664826216700768898
106248850571656248007415189137930735159250946305487552639752101133850810312274
421142439537119204793496236392549727840919408023171947009340694123388848703800
584426408018294375789667123481442638968320388148046385997260838557861278040352
579608736480668324049872823288207755568406313377942161922224473251523398910684
895847541456007414417507254164734584168150219696628169584695090833914558106338
237272978126031462299515741791562319718338256224681087604277270136841734428877
409353987125178792347626024635420721272852848721089678477522433480937846746289
641264462047035915790598887342852092112643197788349087648692082270039202515655
995562624160387659950832094566243229512224574888616241963564117019692173576953
123178814433856669339046803511261567063860629887221400983947025623897617649821
476488277216818358496832026974968607337586845398327188716335485054870088623011
730595264582506256775830321981359573036917109489408358819763480081020501292029
725999686965561043540464232338353434354128363183642900973263308740249909159801
400727429346522899127789648310148225640311569914914831913948808841539470891516
384191917864286752752244082836325943554416190807788147784146599876249263327735
530648114563769293788171655928382242900518742316816512218831609519100407639418
347929841056562803119363713678702312798320345171265016655456896459142992498956
288442423268857788721904665021456859250813004141051104055592647127940661545256
623209237368962032643552276445563312485807181630540079716226042056261110762862
382999873131796697085431536981437448401580872355642683026531168260590897620512
237207104385888448258985422648879810038646791401875663940545410835678235568620
443606049983689249386363499931960780519899209576038644937404603331438978531564
868250927635178277010584498929460011627871258374795788213397323444505027105884
126176935345179216219071745608529228919708734541088088303438769579771360358762
261483176096758782874642607332200695942683039888200950193963319332818309142943
551771677538113655018681111812933245426930220906480770493858731455726956083133
408210088752513094919960597089015948077056509216328200140959982891872515339667
054920344461919596649573012100529183181986181882633349094032696589444355772837
770753498378264313550806407988113173032255737361788823595045187084478936033443
983092184264708461644473320390881555244820260203169542631820728575989022715017
104109248036356445163527076332319732998863749546726653599543651223316434679172
469185504284716454578096976442871803842635467416509052685014707898053222251386
637007524388065657147031724529194484308750861856642941970824264428107011049075
609790949969688394070571586695852583342574573831676473055283614624447930445670
293742279982328514339347782022783592690785964617490638095604534823639261052301
148627210184586155729260303440009382646374066966545454364220573170636317848405
108257674044074656169650823952691125627096001310043996886958513899309189116641
829317121107386040655271035337399767342811405524432484973683168588640318918047
315182213172337736351566583159918548897597987834437197033000673966961450805213
482334231380470027375626634637172120920273213553404443303064844079431917003383
066163595938111717589475868959950924619248721065118306264056734172041922770253
530939865541434556748988572063218405582293376135050013581516690958160722641837
095534192726150506930903709410818318140331738104279966724428844118899546499816
517675816636812840293951743404510986838662585110677492992678190502223297744305
328153601651681691424290414735029413450959117152089767683575904972243139493787
504018429900146764464708641077834770880503071579276171118181876608942818409077
177804873047238611775214960626270909733023743924180447156737217573827059959875
646155086161799132421864870985075842198576294864405779474749596410770498230479
870172972406592548435146800381271812406429361908086399633044665311081374803742
377536989086807086856794774429516214079523947778891101395206347811033037237295
815481223002155802813716432026877710700630435057437108787108708958666818757072
704803637498142343227146108988140675022624076470245223335126191333253810114907
386015741542012965245374983584001826222353658787777301003139119018559043180251
336281798752388971348758102553773830185693283402895389753820906256699498925568
964849482685721388134388305479367385195636378566271199584147152442869528576431
899515774649954099508969269942106313631972698967875656514172097563051975667102
184166367297560663162158821865029172797920118347519774567561638492888027900464
128171902850094207806607663380648795514924012805840090484231526819950029071452
667762953098382840202091931407587195716846208000069503494849849435363014569786
753261372145135553503472187458112720404525174554574302184662724348518720567608
805093779817404920255386167854016846492437048497252481438060875114528249114278
511093617485373584947592375592728680373830853916819483875776458717421457768250
389226619820444326857679360168014776597210863813073963339826275665031033591583
108373580651183623384526852663240224702623892107263110225797562446750888601825
883747420766809148458348183214036481161988928837343429496873831842567359839201
648142452728880559226400720871820531426214458955072646505325046112257588160088
739778891490204990287495503965500006199985601837720407688563914322313781285956
076599989228783603874100634732959977629068472333446391015822041291008875796006
336696157039301206789338556707121979739850542647972272936250278043042694753839
206989389901875722987220036138173487064424454095980245571856695270712533991626
504152974556374659170070626786934108064091637472263695643395023670831727054436
023417082580952667620152184228574533797850083969729901385876647420076279832699
021584780546635771427690080752275272881403017898646903099728583788619803612091
358438236075147450674893751552461594760415772361772496427395652007799900610470
145767989923188826056157425438934184193047205131318168890384481796044816426949
166428578719531427894705924363291094746926066449169593656161311633189808095816
021001800290385737192530783788415589048013465696558966031653776684366607629379
149974438214733838136200373417772400800360805417699363245960275513602530408176
419289147430119265718951572902425108980092136445245545287177296676671046717056
843728144974955701739151524635597937806950353011674114321870248478143556111403
696160001860873270311136849061520707212385415421059189620705401362695626840575
739623589801337114070123081833123676293050711248537068137857028480761201317626
039014259962874850996250782404644436247416789704040851551785298749760193930634
406251809479340414159554661784794457936248762183184310471713290806741617845823
459522911016459394576095871403906889825369950401910656364253357100362332624294
868206169255974069359070371065175385161397052795961740468610492029502860944844
887303602275834842092257064870824156783102754088632213506480101703457597539843
492947159562294598218298498592840803913273228948392359655445540283597884642387
588879256323409934722244374009992765407088044912843124189481839492254265937434
578934371678612996355094042249599217172293825157408593079616177382292030001160
102772727933109612078093134951593365190150621495508747238611437804251345699610
624537751644913633206880632499759259474500377987792994895680854402270515394428
396295003919570950645400998325186214653043601183540257415397100766270659331283
142257265076499149356026544508406858209633366088416404363807094038550802054488
963337780674155477562167954130314570630757899848101166306408073395056091456481
424877413917750260843749511691185002218387540548618685039604703654643552504131
923778424701325804583558041662878809939113578112677578918745042050163052413201
695321125135210642467415560083550296847898564478673903624024360913369312882255
426792205110708359552389800486115227547727623044999121288858023225311688629054
792061260733996528557883453885527259071533693458454957722324224845568528119905
853756200920301648672833836241434989386985860594891795451118196084617891634037
452886443232650628325800334011049881864999691366015789490107490572033766013789
433077220804390460581351653245326687461228964372738333982924515798008463365720
011812469633140655573748004879371240075407625204947549534891144566886888687788
897485976500251469784785422078481025507532161327118725256213783795534745421592
929422071097920961148766462785086427691771270227682798469614109581981882515733
163020021187193547449105652654855475232151125651014507536211743982992309698759
368021855135489916418333311660198775054896453582063290311045334170591490037797
669127797404338675710063657648665995684343012892751483323252999396847498592128
429125010483724455075456589811007005847447723104464782704581430568770568043835
410631076420629942677730878962342607457151405979462562117779383941065714825867
460866467602540593201704915240778078730820597429468633595110277421836890324440
520453473621744945654259467111623583147759121807815591293912114036176213885975
334932185629039944333870747142001743188630700595331783836365873104453389531460
682646380706202847473161685868296697447231157873637863284020393858998074918652
423691941850878903036933945782475549523753793855548095574662322992751463747350
461462937891961570645239939548756569157949341768951239425622285137846928266438
953118761464014566655251183587608387465645499700048279875906777098865110313125
148512278688389704317388315686241141777305321340955173091909447691841903155048
858049491851453654289481480078151004648149656797019783219529907510762102384319
765509456482619316733640891752172104493290350860305997796865649151108411864991
574689509099398082629163283660413592136287852725662390610266565821218803202637
742575844504170656506752618066367276135801140426940280478377142661518947355591
646874581204513053111346356673593126601700311913469762690473430738856771232943
254167891457204108781448999323344905520383358425101494599402974374452685348187
706079521182145346702311072998215298515318999400815459300389408544728151472150
013256219948866619360790973901261378989817203273306074150840801360648518856106
333336988805198919361602035995535664332754084151185319321304722131380275011318
578636710703223387144759453896541947243246474021481371918668179296584993828261
616550843817769923072119978177711751607044672890642401406948010260888967377973
559065951631269946746537329884941897529436904234013789530118532907157575211520
445337878470097193374120056311376980536099525959836309244253689844026605047100
531274371876611430363248209108684197028289057211156953649741296426917774881744
725277306630009361039166766882482532559002556285643596997692966872778296737856
995614177990526681177006167696741301131744737766951163929740008289362192911693
788808743381815734138604133050689285668650884668919385615532565399217267727803
761489955149003353638763632354656171798915263379131494847728423716850093130606
638229390178785747808253855065553401739335020991012220343829628128063357323003
311907408638774306774323544382347817723127845882485920094604805680082448050865
122157164878259292860143310547624047852395722934869542475254281970777491089738
993191776307399285847867175219944092764258493974066240031427884404744862596060
626649812607881253755584624360941476526199776995177483692745048734417031887059
584258904672812574805794907170943827607592380156953057762363073379635839283018
091796270094471981271387264720039480766733844113971622799873917948936891093458
585515928047141213541403812680787370103546237131682297305058230100352248982888
617469948810175231735722548008485291257163922471930727194272891262424107367101
914687398162063368194241475240376287102945866387569682265610316427589843965096
968184593407573706859221860046780204582355326674408829670327128596971814981402
710337255747130024923527721695813685515928187919357123607717737875816574468984
420317455078026069152803201010286508187565934513737508021444975539325118222268
238685577644612820552541069114967246048981797006378267236272197774989808523313
311482241466641568242480971832027371598107692559550944715600035661751420153388
416706385687058094682709479705714273341992405871314069733293052021866254695612
966415714452906638789356907092651846210297343495250819542899261934353203402254
462157175383757860984654323423110179349172936836719916399163249018455796305778
191146014140911208200241358557208508723726658026184454239132611273577314313666
625466827419156224097176206254862575699431699612989648791788323858532846852957
057655939312255443939257520378280788791230381172750024391988717665793411430690
003853232177593073872553297758906497551068452026130769469860861120542752242357
843299192405821724119114002471221594478751483806910645599217657664459071089069
710959148740193487917534144124839394224056810137788450116705533241482106926858
289131960794967457777098904550460447633247906310478767337487042664208188092439
653838378389312471859845938601925740065529306880162983603306698658079130759991
244103358337839962354691937265480625859711308081768593505595317751618708267140
604204099648505884691298414984482089115488597792896821401945372279070124241328
954654210754475377871936267317945584417865312027482400664726322198392314351909
266304097502941201384885936867665743679298485286340807177591451384022998041505
379582428743631097938102457780732789374665619374113346761524829583016417941003
051456493386902017037712189816928821592190826974013146271372602019838932779406
161784030585320835588337119770445639336430028270364869288079598978815642969926
976943281961351716835271442200744587914862164125339033316656299936539295301524
722519895646727260112608302761569479840474923754768405192624842108952559935070
290639597202309500222666777135060816192574499595859463233920353786798558777338
612557433819821789480443585324500425564670680456355609434697753908447272547335
166785281497858671715379127127882491311161056380161137131712376320176626345929
808129551052300134874257268292814439865570658614591333300531082264573764975779
935664394074283112375096433089535696032716167393689390160947309812166173951072
966740468360334585417714625967350098719006500432534191791200311563501703493052
246195276794951306981931675318100571709446166477570678596023596974122031834194
085044029582543259375221953046369612892946231644909439602478670911107622377411
456692527920548887473088923060724411702642965361401493252394034327245406618233
826221620812088238466622347892778633061320033958813489383173439569772392380264
299352011040534949227354548284947800335532236919300013894176342457757045061544
997087529052942828938914277052526492086581944227912879749976178163077033423042
048993467324512994597588462398815898842046229296497776011381028578692748696045
370010777196956417763390857531429277005104633777087404720706017042102557613410
987232092382443294687007393355606579381889484999468296150163911122564104992676
842921393392502322489449814663219568068362331730850973432027898496293153891616
144556131558941761983200660140144740094585178861004147405214349237659207199779
217952624895279751929662295373050040362532376329396585695724087537279100310267
334735350257704765681124551125760117658302551638510879426496637529084630797935
998670532380831706478014080784095107058095616020555549659187637267411454690441
427676947547026364491844226944971432198232681335125705176643353256852335602491
038423807235766415568136599770921318221869168394311148199212450631238257893825
594144897153288637450277318939651479717815582204897622049232912243284797211411
816005593848443646040382578746584497737104761586917869217672860092523380622861
039045379844821283197808813482081992302394800347444469781395400730525251266017
614764481436916153441347214350082184799411466997571272880307846814286059609698
137747702714324850502458114575891154935146323960791330634868206270346644349875
900998793163675667959682736375027539567710888702874447082217918227166269660434
936538250753010191742148578431700488607228646999938864246237985750752543689229
176313354973236076694247265818417772008268347449256037299535504354870218922571
267262665663458265520311685513614192703432124929773611458545599283289234042159
502942628194563005171188091587715683744463765723567281925585308318406249754882
647611427720231906118334132583404471419858844939249290392641889162922699492440
422957007152841121816426442564489777692238801248043321129662775439600661319187
566348076805541940005088973423003826029883745540574366427011706558608348872923
612347349439715758878180024536872765789599064693722771377440937842632988529362
468615545440309249547581126837886710150179572422147022495662077273534196399122
078584328240879842045517108322018477233687511147092770178050799038755056641862
824434138385289456348746432863638873912295369106935112949512918147968201063306
840794715363508713242063248387621887877879802978207900066048952695305209884117
978639920354080535318772332264504082060722792979763578450255817317456232719059
291539161135138054673869780516406795613592533994268553766581844965386513173627
057171412085435016593942653439538209367678881655736933246181138105190019380870
671273542592659731167583144663173935540585491941026053993636218868710794803000
952672503423020053630035177545198037047584587301126382491452703229592566442707
035314606380042668359106621634244404673104444297881113397365538214239308101294
425319163296094152600691257710121002374958477210033917401851248337876083078618
796236641389661885814227921191934251224147638929120642565004116187930278188067
886343689449195941707388545972905653480988977766692323495403301867711803964507
012845168452506070171911553598443933233217435584679379383490711793994503551815
912862792687173162401574061848096926634532531729275055410802972017346186724116
320075192473875129820660206907107596815696433074377377678016874959102390657986
469348652581657984286908215646949628409197774580940569703258298888595790450402
323424005798228333822814171667958164073098780438792260602580568607857024380963
217133517693721107808216505839044015282050906072009564215600435317331314426655
879135696941449596201378306714629085859667004265233015260624893892632976262721
923433119720320151274945235367007471883559142402932743471786843400907359297060
729725577094726796337375310045160146655916794885505071283307934740939303254050
224256560122590501267923031888535479660156608393429130227565954947332850881620
210899286913668935605873458954116639925311363934115765172479569041167187750855
647446628605733360108168492220207814650767083810076300483370269125791128352056
634512556212994191071165163358193598601008679460262725355004213180772648488453
632712772524688924610050424616190580464021579801345310367328193348554865153562
520485133435235325197591019241067440199511946434537187487876723870113574080942
828780638083612536596171540442195775377362015798974081482744844706472682694982
344111785005137173193950516014460630746767091698594744541172333931701704979074
953239474175288994734574540460262420898782171204321670062692622162374385419567
374060568694539806088280259617212268651759024618235634052833184906827921057354
658286643752159178048663442578537651709598585893504753302327196743251170087440
530161638228936265046618593362099703103090579965962913590868101019938075278965
933744215369853504332324322234473106362955066239453912261084023660808074972121
184173122170888342280900009464072648254312801960211403646662756327539169659213
958361529413765253206593110113436473867765627146964886705789246087146733724569
184247059396111092735205471478146882988881414240219571479830354195813555543385
721122845954926152456957960705640363711802154579069558578514479694374441770465
085216001711387148834850179762659859711487916961099780132258835073369767433587
772458162541880927954670719248799746633172128290982714555245885242504110450703
971444526171525642852049332260844175972622304896136709267903003957927220207567
514033206462440390544629775935857770291766089105886330947286654508969500830501
574144070076208701689164461559479475431405086164492587340442733812488663422668
748954730702915752553733044902302412801406517308882033874257934560167764023141
901120260179887563468506189353663232875480509137128206656609919504100280550132
922107959398388809273293321391232423633901698943712388801229648791072441004175
711122284935039663727763840957564819188875770901749697889875301669163173544279
930004155398102270226412950411675555962839334001354588538421942099283783228755
266960193681896830820968938549414041104980098174635445432652855680636226301747
203609252840417437799930698306341880991794590439956546580613466806507026332909
954150923981887129522045202687275633131456088897379260081085365797243384378324
734972622311781948114279341251160968829265100388720980091003981327695456071162
929077183305053923059967039251750613476245771198011082375554184807528837652454
441784074333242104600684506310952946770077054021679062196846916813161173604759
620812059475541932814327377377133963517831717259869259111893297530967307933285
896279656511478460507176718497698181328647145247905084163025030441994893538139
619654964002318633869118814156266704266903090998230041165683996954053649734582
939951778483368122188875689251309466571117562727798391574862400662440893471836
738449060777655542433025888455604764503542260013531507119333492295036136996097
283199125517694072228201116059807253290890770142859781721393651461344596099717
070063451438458333376066346994003768223596361569171041831638735972876894759664
124627441037126054859831427287907206750285831739984965337760290205379559067070
881822286887663700143055673756678451952514058749743774666142127518770036943102
357309714847251396983029880084147653955501378042995097425390564956088621699658
233163856637329381099987118072774644192540501095242886606524955881665477842461
372936059481543358741414742093422444213730514357094397700411854331196512747910
182275745642444685141730394767409440911231752179175967322370437233285159296829
883483497756854981795828611865465790244574468072421938670287440554863105834813
382902745382350670920015583766545762235111774240646582228676531229801351482781
612369508887011069945012795793133834446126037276119679063920971366713274682665
895926032190201537650471824154010174428052993699578840073862884706195862991510
541795107516291133091394590629526874026104818968481174814423584029144270991772
876540954048267951787110091622076241638900651734741687952219646610502758103915
136530048555089218040019883174093286022503299009597828213008031930550990322597
317332002194980505323615439012097314579864518744138286913631050875159920553233
361458488848770260331864838282703267112303089724719916200376829520579963829037
262970539150837405787291896598158246545293192257703268366051026279495624428774
563009459533710586685447630790885741882737878077170541098264798989644443720427
965180570883863204507529595912391361890106857453302836519790969382122278556429
987216008435574433183287241361725039156052354869510867273505711628981864103252
115950074731017683958960045954366521957376635757082259182528392393314101522406
744371737434515844762291443649599142973029565022267601931702674448871840744676
671690154725983453606275354363769901585990916939372837116190468608849173008278
897479311646914163771804306045021985978599305508261256210225876236663609571404
319807540731270597421621829659440208904345226681969520444843677692624910071528
444955205890140007070106500193842725833542908836083954577910231918216465443420
300662503005429014544848138846364358304137354120216630671535672890831520655444
901935419034699239556353430139879807108327956056429039006055546840811411723793
510774848393108559233849260579490335261073540367877752791618642706694502138689
817722755473838734458746331042788229231159967350119331457128434101172937584553
811837181526991863761310191948205850802078503375447422377938507019979618313028
438007186569495134090819382909333594127041707368559785587655597240603063447240
486032214420880470503087848424808009045632477579849216636932881869250718308970
819792311687886519702545021256089980876730469083045086494557098085194319887235
075046322149602876465253491523519790017946992467497453668392846098246883262669
373661208063216011257764828140422646717138750545404089875558899215736627243319
900367414716406444243335657435766463580498798083510347518086886966278872746052
906451347796089385304404590945179303974867141375409850926041967457563900634467
911611917339925070821668008837052970376194763725594033040252477740822320773935
357700237315938025945913006895809706565777839931041661634651568299314749372382
773756576647145794909859102623557613930187840598785453951635966150528066634717
741766458320754788730809202996573315632376635777257763177722890930012183071978
429874246333161597403137692845839107051186601717463648569005524516517741652079
213216357069684099493601019197242168768176051675591961153212732472278423884138
114864778741672707245258832720212204036121131119968934419253186251694686375093
842538619487903261766986270143486336758184190457553220178209728179481602261347
438099722825438060183060988708347556794511940929401804984830508605011525207837
236369533362767710159772269395336942112073999776184300271690570895103400190595
880847165540419753839411033829988582279923344587796243387730170613766698455189
067902317136327719231170575824642440854228903438975873831618723642321259190015
007068849367753710901910781910224067969582361962507616436149808581048384669692
418445388579092417005530281967138429446845670597814603482566193440154441299048
889465726198472149912725809051085404212124273616507539324738271412010006132100
054856664762233490606176944680545951655128740373639440314259208034967178197775
104251506586294972724119240341979294088625790058386355313253846133387034639530
541463746932751678863722659305233292207350982946200325312386224083352646001771
862857829187388141014779721794748838547464209295293426474603906973113273690931
416618154629329402045070873647982627294367718502057116225437225973380974606137
294992590135108262071721533843213697403067385932417337439228762076404184147203
236404382189136159443718973627669883163243128582893525272314497251018057222714
573260033939089604830123612828271399430947140386560367598837878071913039751751
503519711125701879667015442794063328107414329498071059241099027408016427701338
893300581951190548036657326654164534754576619935288060479247531300078912793956
113769143695896883168925340138829490440078357557034932898496200460682855613609
430341590307598952528432361072718305574041750825608122828786880942079259548464
626176303120604917632159916261994819131272119024263767992495713364383652498147
496679333522762903964073288502616989476897981818942845614680339411726777785336
598357515774055544581928368458325395401755540038439934269053303867228517087547
147087826785556244974307229119210095099142471261132728673057521688950418097374
914684082102103072271465341070588792399465104198007393764020378741317217819778
879867678007194227980676575438299384386999829618929349940317150421386788723242
187258273591605953447973533039272839076621165927380852396398249320355353797533
479325917540599393252564606010452622146511525842661081265017699022905153720635
004176923699051359744057004534834051627836175555370131073756085997770392343830
352730903040253302050162659598119808429180731596844956284707706989153378415008
476511427332522651996117662323680720655363469143146578846237938481881354219711
569819912985747853793534897915585446933762204309239085531735086230592539628622
006857489936728474342982821190401366123970100436396908714052484541428942948958
174794012427598435317251569705875628749323915970439103448038815882792301529032
733504880396801628896296537534687636750251540320082248464712958254511496198273
103083845210414662627010062174371886799052103740883880245201902342865158656403
027184709011954782597537584305452594353039974332925590855019416521620755305038
039976837605817533585360157954089130074389102332860667421698056898792762473102
621062676417154031183587084130148263546922429845019957857280222643575750272227
163675666480485484117234719789901597763978371793368697948765670825482916650270
529195671762311259512792385569945214950761509918756249558614888687502821457590
245555925872903089531193198321607280604973446810954985779303569323366926443070
151909320634281187325032723111115225703748304467773094713915918621669307844999
394155940780278112539818751973199130301463340698870517168611337133851960456967
495528747386635509184674660689348882980956570078370892086965913873086786582435
580711079588834264189763795017230617548518511749478625488672801012333810947358
061411370666702791318584959580507316092579859337925660867057602897671810528263
591511019194533034813271089397874432946728128501534039181740838338064729721943
131849036310247589249158474403432262044391672206316999688970473398379959507624
777615241783934752673908032577765148101308913121299657223315315630148926494289
530995040976035138764525074244876241791807158104423766828526364596404090588861
708818351246899823235445004297306921702050347321994887331983208483601425552455
846100654529418868924425932984969332934545852424112703287386133170694081424284
209092137945681190134910602631447615449541033212742653083324735622111509659800
514813605314694500887544437872593856925242343041123406094288795620099629780301
032780970628631138259782302829711501904645132814079922486295316505253330579982
477761826984243149875129371965297924730788081361274873952357111934312298494209
567335604199510279606277379449506002763894293060934412452942902254778315077552
942793719225953443364969532068981341455329389893235031791536104726953174331089
460802869179106298924786792847627568820443119012221234766735866110986835277809
779733464837434750380889820177491178486343967186443909838825765252352450093498
539415344803875432797226079364805105879711710819790124675245848639494939625871
100203566845791206830337657105386745594989028011618030953088723057282714710597
195925195521719977823469947282939662529711004538870199059515050463238145058521
974332298759493770611432670756645699133864674149825932690800788373912605728413
638289124058038187958423567945027013980464229176947303945806180400120932975509
958842033873527132204494987240518933678840826471296960780530391150305454119305
703971219569632849887500704684845834641948413460050481052962424767037236794626
635415067250578676655891825961352246507664140797912935514643636369253331068863
115397312836733709260852016969757682483160006178683727752257537774358262527369
657542165484305418556784259233783819359591575222732641647257840166503284054007
557630461651887727987476125617452258399058665941627505453179723517227533136944
948569392954304584203139817345661328163256443102357449539262768397334297997181
072699313836839397843123715108856579735754765721736044864147595187368256367211
885602738308946324233297011353567172495519575246964296536214164238720220815773
159737216533198270454984616102625334647729837691570581126684911638109756296850
318032640621162623902600560108479515830687994527220225638248555997748190979113
235225717904243148068495410000226120463371850697496135718318211833961062243392
124369265572668797182319837868517982470837437393155261249956761136296435109977
314700443816443485837299876766060506699226697548699714330827744977894547052026
822124657728979894115093000475290586042238918346502743891495142422347539039391
135411605511308115989023145930313386082209498679483029605810463091529192354430
260744004997516494694064456121277275586154301144530781558065638464214629112252
076126027806933769575332426984755679711681453913180237458373771707122286416686
239518410914348779814525309152013713771009664583108871646967792081259905542552
074035038020509886101332922992927017440440889537964876431876467712353231773883
195777847637409153123909036334437912684383544307000273751382039648722495814486
078681051249990721042513423677243950808385275821245744512634030987229635667843
929224685358812038533780382735201379337849692440239204904284545471693090783547
546124427143593817603659107386979207901272010540190010117624864024702722341845
388476348248400840680892839625024192767676021770879626079698134194212963730883
131599176404082773122362005125861127462207573496816789010595481601801040610842
690339489484983317889937129200871734714747951993843738474565751631405894354854
612469920832423625583331749309302303191677352794172980329830406828049647364369
901691487683085500666173493065943990260995557030730835847085156708579526635126
852188157945330673066592515292727748088130084125330066927703603871329371435847
317975736570226079544050026001685670036834314628724502400290456002868948926374
170157372403646319432892274969969549688773556083866306924465028031855380301395
884305091097143500202336721925146007862596771765914098203695095460438900390641
517655256641285432456855305526805729655010396677628570779949417999007618880339
358400810922991979605148167582995791713158158935525273856147491242729510854367
774203159807237398134733235990924304929294688500441036985790354359820224606396
094331153610866310789194749183535211551801888217573016431899774262858789390665
687254139929026263982871870865828878436281470723754744503628292115955429640958
641599668080696084810110350156245329085023597590785921101440415372485907481569
571524452914335050067219373758681808127276216276154740937120883592409052494674
787345417166424814023939561942307519653483088453112077440750329308505817295988
858014412809617555581413124620991429380766870347813408586571298861554200228321
231477600492385705244489704538901049948166466869189938846360331059525064921813
902835683021374540973463094434009807917675503150935359901849362564321642090860
370760492577344675953414417137022657276040461520300378494569962039194428735140
824354081681251222996417016273291637353934985464471799166574691583952615997462
250371345350140264824770008144805130914324053554863549285561124403385322529179
264683170048659163462690020792755894446705352935704714100355692934071944925485
630145359898316083278165799288903321549011621353904409336024609704486518257245
820897481307109046600535226599868050759204292613083694565668256960140486066753
437251962498837318036862876711002039674587146744468536201344779457841481228368
106590810651319395975115010657502040538435896638486062001097525593588974203961
009112246493911734834256437051857095705074705078488773997069178682294886478443
184698598811874874728937564949389167045110147579373204017146929617189978360010
510215481186976746887409222152648959786740464280902843372542942963817516624872
426728857400699905939532647967582663614642975306935195743628040902485001136494
777567406714039942860412491003692954076712733702586391445704339800432348130402
502201596833427192513863281218328469706104265983561467710592171395137459086851
332956414336767815599685090405138688288751184411164695344662254160870367682971
134647742779100372771919176887035148306555635827193292621725986258852520646426
094280857189760578912702093100243109029828466319041167555357784728638519266141
382694889169605909313455889424521960546746097382538448155295157119940172850444
616677566987677970487081989612504947478602260337112261426378983979277712459570
032784556346414601514876862283165368614993797690590059910444511989121750086670
647265020535943008181724714680647313572080000182621013569463105327763964884886
119165662422653888634119157454858658450184077543398757066767204698746087436042
215531803410416391156298272846587386588156190317828249303625545510476591494747
799764034744800923749448334365688044092998593969665463146608331829075804755437
232766119323265899021327821920010945761404308135170249732934783645405295563756
094490061803073917088905199806221271117508446136326181023940892091101782377329
466787064124299231604958118354330998705067118958922351996786180024819438903961
609655463885818996449166271326281613131810775918858981431039576898064868539191
617124214886275640797816768656635241926404348603510634725621231202497556427637
226106806105673375138965069380853181486894192018293746692609936911431082279703
563748896096299968728207063119241972752304706429242191166862908768221345113951
966397522078036734450581291870642537161145509612470456912337066406272991199782
033645246688280065877647469662578889774846922240667216666410750160435587258836
846231619636757569892716530195012504659798779559784337499335359913552637941981
383651217104925887177384298643725882873797916927141618182505686063688819190490
512075982987117856466328415934537951787505747009571721694461458071344381258495
152339603179374180287395576333100943300750198413271060291044362018662518000796
236507849758386517297174166876535747608678620807558315778194830448572517940271
225536918653949545425216738464055930931956032181517420620886356727335566304504
597858420534940865259922778944257578063760683653415680653946668682079072470247
223503789905084183630154347740377243345419499888748671759946390721266555621641
591641633614450378313432696356895418497411455588509225225046196956989837109493
309117071390225979090236777057983594796402621238064126945211737206754091621467
806142735156752207513219865627899870868957608802920110572458330112959241477463
414054343674580700872804228334508825356609389349481846026312881862780778607580
760466203563555380315634481065928996891765640669539580574388895316937732257148
700524803843097250226106614754987514729018722425811083234013416033867425907548
416984764555051843469049649880230579319985646189144115699625667075363706083928
919745652896673192918286909303931143627382747692825869868557109070549789549552
507049327629037222224906665774153111010246152191663807492734189760930704683048
944448126269806164075158999889617416163640162378412679799106521363869058001991
351805746807439316648412039850299695215965813792256970029809544575562407662070
842201004513638916878175300302954497806150246858727505628428886979669666773790
617708859159572501971354455631933213735516070631699930365489209640770470878175
605556887118872145122665273501252421729107298348285583169681481947028359214816
570603841735569915958387847811915188272995711047200664714599195373384370524383
275431965067831235345979895217113994167887166191508625163063987938239805433727
409141797934095490841038639988110445104632913807271579760018785175240526960765
954592863932290336140202051909998126441494198462250099014586589048336565699514
390793281094334320697251629590890738443733540124560412361809274470516386092445
798514210109293763134940231491165816491383923342316268822353623163962501946056
391194468519472259596580646936820110424811120715529263801414308095742699228947
709758715171778321038684155098733595625616945803784890045678111513712730020863
331812416227101261224813507450732684266419336974254871003252934655328508297012
100234337621036027861309284818847938864778317645720449688095924302254449344225
700551140972930165164539290687062874526552730025383122231441333513429156261557
613440856777582121485226805844910452690314247997259418108808956363080713094628
171762169402597447958647960310257263242853720896987067641287529640631309871352
808081257291148260868864820562485622026340210889721878063629524116708405513614
892678131362583459656619043298273261626563656837349545064420698761638599646816
696810595406476640290920387457366525261845795646169973986725869214936882785097
728710538868087990735403356301658350557597561259648775493354011105406395782932
767568891205136537081978985214714349262948129388609046235623201099732355979676
326587113513400762212110614020616095793263296529933703656887528947877832034725
199525627354376405049395114314892055176281052216846336103217681653746622218998
337637473691824783803764643603419861639438324450283411061590989560624024819242
348225989317099005711516442443772678108472206944307374859385644042715266448835
181857110971376372417666028588185416447795647629655000677771484569383247527725
283686893257855845480547470772435148681932974797351222589772928295687507384158
061875476695495329890590896443373018248336260096838711736747407653601671463989
780784369698640932951847562933135125703906077584266896922749507255549208195663
415765560978078068269802099753390753513763566875320612439092983350674427872859
241911468994818743598410168263207613494152098757275973384109886920306265649429
690409573356434558843191253411754579157190711141415393225106082511433666098885
715720407127963009237228727457177679995928181595138994584665916947606467331601
026216455580950389877349771289100566481401481274395265750458668251110780870154
942125689779006670263743433272969698533416741246796854511452577856351318077096
436885819106430448962637023294352864053869742770314516400660108531023958587819
700775433793516418170939820353332148907505371658368147748072314097752719689333
455409532916274768429419431055489748620933895928198107860171263879371506104462
091597131157232798686511741618669742345460452046319758670124207951773830306801
204759895184095468023120123600444789359946509432219984156188314726442720652274
548922648627564284324849240564537007041270377737992443607622180315915200122874
009612023435182217921482679626514048578811994915902260895222997062531648194865
302762320418753179952925419045189131503878400644869800586603115086716193429770
582405125816601906101611367491151756939871802521491332351740470162186438375676
068452379630085632942410647770895747981345873664090923051157058043674699555657
725179514090341017439051448525127575489352929165252343601222274547194787589837
495546331698371440746450763850031977450204933666590320191331128188232069271299
491143598460587493907294533319411171335149046627770568215132372986376639994252
485709404095408796105598311016281518625184875670262465164042947142125950458302
949417368063029283212921759578195593897908302160594875907182540863177440475927
590302518939196095001445123212487756510243767889397193535971390703829290240471
480528093763761655809173914866194758919876067517184522628198484355737104106467
710646792231573281893649827403252306352116629278833649772785482034433068380171
045445186347014569752164816256369976774898110961200817106603126902037437565481
924481825156478514537344655613541541607727679611038037934684461326430483856285
269911515011301673357578173805160874040338383701557114658729234387246163507123
640328316683035219041889873428226614718166920077989177303582717459014907036280
091378808300923470086934149698468893660795132126212173475366330547186721765508
903633112717942028760460137422975160706406547265653975414388222907010015862828
385318368274171929003123087176921062644998761016525384864287157558400575764533
247638254556043119320054333520286262813353485442625543703071242701822421444100
204395475434706995240316665427678690894633225898162822946105402609265516485728
538477302436799189910811797278017229198752428880443789019317127765421466112293
554213880845535256479372225520287606449886272895287065344792579224826517806828
054728727998649615691511393654406801451898560990294777311559263956470616676633
683985332122276929636340713484087669995531861998870998510438602593888444997929
536207644602174856524125479560916645403455759581054784597765686609794142312002
437909126925034945965098770474216809188944324944760531623895135215295253268993
232352247720584897303867447013046871504888077498875200026904238107494230414435
247549661297046774561971081459270443932965714953472699632622920151400517771440
828429733803395067109120168837314200415020464499696211732212174591936554069108
117044294599828857283413814138346489696590710101221819340621298016470208121034
473919600840843254812834487715793200351642443287468354856440302229935689973558
745297122751174425600843736233159582540695452121622408315473632422858879979366
225310168106082196363317886333910968154801536086783131408872974840846725889717
075424152017898924868579212343071478320223215870207236929162226759646503082463
601277547361282576959582645220767021852097859362860259112843940141818955888316
546383826578894509287248780062471959389157671577737612566322203940020942753984
779699271725398699135445247682583662320196236543555624807199768462180666587690
853605219311038814591851953629305069912844235355793449288351280324469867271933
145921589388275636487901737156512335065644961514681139079222693489532278518048
186817131902299546124768407425781493021372635624011760575650313998901535152030
042153165004305269609772934597350069394402679574721723256163643608922441556653
587396392250075842866676277718769979446477818094988851274576592912350518130172
029638551375190254044358725667313564939504039542864412882474436439777644954843
575257112151794140344002722046141811836768642072031579297742917086900019365930
242169310473602271912449715638514176649350801019527548938821071715046272628128
850701729564196045308591491167250104636407886737343987052397775290091921886796
256565693698166584351920979861215410509142079337406812624458155011495993366461
724956046342308171107626886003533015884070428796455599622537102651009893838567
986157287234325698683488612571113688585780472226484998251613947051979677175699
508945184362668740141656554363677204623661858104542455194946940835414553754703
542607907542466055173207346667117958389578811763638922897882597722280067337999
805970504972916220130723583070308468935342052056007914534784591519759823716243
332506145805058949392968288500348988658543977171672296108455489314903857914293
509444378114715863900492544421456413999164150308379085126672646199192401413919
609843198813053457995700344046016496151271277269692207552177621980221493455188
351676208875082352203136024255393300592878460602862155223839754300924482330428
495449525032327899765499573444668133900795984514265351691198617560492302808844
639606405765529171111233913979523783993181090171900972145920529035002383512062
748241967616227714189889045844537714911837337704697528038414861042636940580572
284807387173455725174630273725584400584265016712674261253578166508986700218361
939225717065836316372294972306231073677628433797268657030958528281396560908995
007324764710290166777565948181936498512140610235403168308454953017787187138690
547591479404348209102895321816106613950754378601438881165608665649823257351010
610983240281222097571630880634053526779967670603683259636680677648880284204151
576453554125783192205671735875286646161180164269297546860694258583152463665301
482028094800141967679112655819184468215833393675172203818372766722159193525356
511205513931384115086135197173747803533446171255286715280434523459660009354051
525753999333059880039042968460235678061924075646603053450450671079304043694878
227005897282883655988785945932153929715901336388843424878910633630472663375086
780942824769621602924534754362982626266924388368760015839456532221005555853934
622157992617059476166668956021891697439766343590327893311022411948825628858132
304006373039182263777616636020415021789403034904318810028195065742772081323440
344159319679508429414229323163959676345490391224916767561676070822151973336054
682535463510082983965816833842069405350493435912568074792411430131751628295989
231805681796308160495454588968076459382785885163151164508597684271842285377096
183414630409003914663652935771267480567003575252053819596424754647424475515295
446672523036580111343330397630139946287737666706389631236676813640747510779908
017608458998273634111080329573180865279841911771391068281002050915607339768922
494171238291560465254573790032711520572684495038480089129928576857475333386718
912336363666055156039965756516746851806378940665346884846503064204600104396698
828620186502930933390196716524005082377511980667611467017973494970348723786536
855974924003784040239903624346923988175907934975007835894767747811765238979759
795350266536503331839354353189708724544534350948380975847644527554737845972978
048206312716720306453356440765835988970960759100153629383940643558991129799536
269934657437264198810485897406809888832700936947523821092024171190246441837409
550744139500244590987538870288993463793392539577398966378314277165071534302267
077514924540906137447501272543592377949745950896065175666613475105090090987590
084157885151116424110376357386350757926116241394715438361911366663180829945309
303278721276627441499069593075237340744425528262769453805758694730110750998229
829056952985752758595744294198840496269382382075085425361818300964614892086288
596547967423776440657813803635427806629438664111505021033166796402609429662318
021963729115101784816110111594667918268789013009188240160383244597069844139182
882372224176953063238710158940279601575151491892799608481252184739612542509141
658061155086306646578833121839016624090157198681908572187695152175983023673063
488730716951412600059079177713715903945905985847665647603733239253289126705187
939795464063472403873952091372409747960346601692942074696744018051265096920635
320584538967732679421178237799529668753520175701888753072772930065918647634461
348880251105264202818646846073336160125493497790808553272289426440823142391191
124886949527817631371347181319314144568113220745810719107968486437772098094754
828124989793135816205446098689706396902670709122342098292390398075600133337774
890247866686027229081989990015248654824274661403343703544599447809887986442627
293734929103323530969890793597494594548615079093012614030855500158126361818214
544653978495909415961704013554581001307264823577491277085942719036243281072797
225284985679816198775284920017479424522450879966697412434340506111485314077042
329776938149128443420190334140897306085149142146962502640779986874929453870310
202599630425332794938675406631587986888378689160499422783870321751167928046469
772724920193063106257591089666666804095190039426402713784666903065745766657026
553510660922891222516974551934908514681770389365547049039082136500854906162416
952094057023148208281988717486727602914387585126321445529083476804445042471710
890607606240857517935441345485062878855097038105811051033585143384548252097720
118800265783553519815076428460170332701966468031547251467606381322140974511977
416018504745488235814551510449647646553569861330789168219255797564971383164003
552536004058363613105835227276020115348381677888575420434341262687740860980494
991042845362386641265683800967957151391156380407434620209542597048870214623350
870599993328822201810367431998037688904692297009509974773392612722117765134266
909430621117819802865455108592107756254181055038177601389851658596131591214808
882591858270401640478958566915010932869356894135029051855682826045544039295042
523809936937165171643397251601400681195342644424494653268541923405312518784416
364166484195221723612628122646230263987603934606146075093012380201982138175574
872939665752626112817434265911746501447013207048311659074803495073357579996999
144997783598205515804368945358330325011997156120077583002492409784953551449458
628211080655273002024652857007411358497071909759985627615120634213134058968341
531824563352088434964714753676523855274149950755767507933848142607266010806288
929357916770842810544771117922783635619192779978744225584328332391109134541370
042661444372765323972949257670127467049493413002554072869997228934326468816608
249209977696549125949243303208629596623162335165195538438335428705919407609785
807699093367869115908418522819207097672431629425909702653441028187598425712582
575926013181389521989690072934996447951861862595876666888500059583908178148801
286985196273284997439138682722124070954749420454893349797982863212182238467066
618632017357999711238917985678975141165820328550400743238987149388899583702270
947844828849026979612370223042441093199864192060827684916734516365774265248182
887960367381182481736797565879558407032250179062246838276092119949647908911367
485220753105858284836611927637065676755221418509354845316919245724750285892041
835422920721717857272275132962654636401113661725873401744687451435472165912300
141176890423318685800202546469298524483553831217211285082437461369989536551464
464355581926213560183619046534237415528244743905071247744520297114379127501657
776168074629935222737631107596699840495238463673199460930351563218687236868049
690833039866419348575526941022028269773430929952757708814820487249084783659949
140311864242706946705596041910335188551375458354614724625274437003592950092997
359533205245735937834131326972519826321025938440561296908035557278670601388905
452026583113226366724005350514811916685110024075424057283498205540654259586633
618187062101782891197705034118341196313789742026116185858499689553704123506840
525633815465915418850854216217384650109922915304832489249880221182918213653595
796354422004202994563775295907202711573182796751918291365783516275395354916209
381691653665885165262317777125882220709110914114844784448404146617612146397961
616295358887444016367776414720574438409932733345818776931837195484222367325152
049239966732369156812366087201319567095138850350704407102658468270714017109002
578440015120369270615776414295306318799857505940361108363000251084858079023538
471587634185984928772499070139244168583440287448244764070426512085038396587236
913538249973700041709016295523762970638135188167854614844594242718893020495395
593632427009561493701900048064546043904290234664912754582305875618412189524241
065690577385156539202561534723043765180624102908904323442602266621005141397025
235418428609714525890958950062074698295653610150571125257193054509324249202390
386607518534980001655477398451484276217135533233054407188631946395482308732225
918544224484957040419585820989286761667207056765235180235607491503647783500788
166627197462749384406267566205238263422472494936616456664119603099385036739564
797774883080634661225317301106196828208945799475646988923722222463961923314568
868493454849688986587783925679948817264915158145848684190924786061056348544685
743001959531603756182805430919897001198917075622486090027779282898975695342543
596500114862703876489670445974116668717211804594806575049522228110110630766237
945182143192925695311465535007940562317379781569528372261210002785808730215433
917474499797107870960043656696125902736710998913772590622040354144453400096788
659491717719355635521344987372085490333033918669352947039478481347026237842378
727009799276815626716362407463060930451976383909502631066787300710718034916827
247351308494236713251585393485070729414149623135343560153966876300546250439144
497732381301858709067427229591769766952234159581488644040380424228323596499719
855559486420032808826764413887031048398909095483580580389113409574535462015578
656424803735283806984427279399745320694482065449015683737090550659176485960265
205858906954768673098365802026899869272522176979214667404895130403026872571262
523973133185157677742342581026972914215198437747038640130451663897447436566139
105228765334529179157551475978427658912788282388409566596481402747870001569977
748028688339879792840996497627235308542566732117506451849815671759154438317949
382050951943705870746618552760163348501733392498171352609818836934972400692661
030129404432484708830003470812808286717218797571504296304933231045903471168322
057580213964643679684358349931503714337439328768706525937501953244208371985225
447483826104490461705094326703092336682105647094167321003314603562676968559849
829179634921767961031566125124936766231676852579472279398102438719704629192930
434883751251043834072881644050600421453004219502303780394070858504998619792322
291808322173813721154461516361185051695495435258644051762149403614149366243035
909785654394705712148071122159954130521105463087976569257866153545597128491742
617789696294102903857523611936169743965960614322569793017247070647378912093088
906683940100886556235202160240673558927325116253608057485802087779514776643649
559156135937736602474501126418800487858079655544704739743774351819487537185170
866234583242088413150434898547115396207702747147470252437635954530361201289055
282317905243458633083320530016426987740330410992002998426547918802019607867447
030425067025886899172176420479620858700190185908899074509064141644630725550714
980167737148550340168558572529581590111391542331914932824295015928739155534769
279212097541685460845447162911684488378218665190332663278561884741693978974465
046670248208473067819853537865103611395034519120137098466179135685489693205613
778223263209561513920659262328722360015870615974545677092264196512491856032280
111294554737070458212695577292287976773929698312485953519095900488001277569612
721050072178242780924216800855322453664962136548359305476619677823255593805185
234708685528065814979095634062744436311313063802500956174760480339895339208178
060123589621615072110162245353027675379148714035753369374352996078851234015710
456566718451520661948915885550763375488911634253292817457989910708189213118993
328071563501015882527429275251237364831337090556186241223044187236862117088847
274624504017501091574242922601827846977556305987389661799620343801776423283500
828117095660237447528504594055588572096123849510405775361566459349136014315019
004759361808708602892840831664167910896969623089546232501666622632613232793281
433325708486870086371721848552736831456538249295915393038013584958239367336227
870517710434955076541987610911613581854868863859240652759195323540782506189354
658434017761408791827079497295810055848426254922933468811499548340671950751258
397116613462752545975277870388985556692550593187672253683818411174699842352877
576572925702574138830977385292421065675649531824320772932667322358185152988376
260081856108000022304549209171313170755986631243216869937450119693593466483365
753431044826201483120026780050971330302738123331914994215779012294848757515567
076058384988807467456245707816277337353265534284628416673039988857466189839334
256772779428687538824761349531154787814642485772790225943060684207620250772465
200306858104760872866659135095407328152941461811675021106276700338214803313557
608115937264982187144366190874668532700229289147318998661462240198276103521128
379371934060081534192483252424822907599348477730896796463946119011478697265118
459419078287232734792573760395614478777611268621453263432004461695035352949238
925621399959376811748105977349720372343614906834979332685043019488721218305210
847224949499503716745636065381296487201216518412088898078932847562728260594076
151718989571031885550380820869043225165578857808158236876461484803493916383963
480637375620841558508932162938155555557255134530894034969913577112176982828450
230843040315080915086569886902532815590605108286050114474964106999931589066874
744931708154296394348708255501059275874047606501950170159653513168297522900419
938999677726819954591476746224340285120465403655420239744230800279312089430409
958006735792232843585934768565579113509266356073739530770139259611568155788526
235123116178749137165334913126318916537084626131134484978174103415123721140300
784097007763881476178074940328114973548851611721399330314344953427337310659008
376330232360017091908745148651022009095766978901682846403929664855509012692951
817882829295452063535119378121227723934574560543742058251650232648647926096344
854192487805533409252270239064092175530226655358517613044948189337459212697874
604460705648100543776505710714070413724137725059937763498918598386166229276876
093134768027065661242820842240036132825945271873788791585852423330839457394426
775582252986757612566049738642634060053453818303643381696374710133351392598308
373089127400047659052692169871068224891422637071276700181316901146487105855019
258630640098097148491846285747551883938063585309838822476137008051740747320614
006236580809331978783604195267297866898932580026148215512053325588941963552450
633582998680701535678565464272788154703019680655093487485149840113237455092210
568862737981129165143050543643138890977111568328732797426275812883260100255306
184979259157900688081758852402734700141523151769012569048118674738074874371641
617783018631797314809422342776659891960380037880353805230628907841714131577084
716319760167198376391618585697122378485053625609374009431091175333858431602801
837306346481027346112701031282639676371229788148917412231155194146605825241081
296548804234343728681435651084923252912692014079464086101887621069931558425045
070053366231663835961375002664570498414467720174506913544307274207502679257035
173510192217799492195305964459379461474645986263580444833083066524373823629806
645232371461674853214247267927710129037761296862050077690854696798138273367620
928903434995554623077821570713848103279976719690019198185343130694515287712603
129231002652018912618012055740489893395122920040480975604892643673910660420892
706776691321854573666907278368675770932970299691056732308353035201951208992357
419639465087982643500620108125379660299406690992266576373907504945095494048153
206722562544890310230801380756371498862017143972819044889920455849666145606320
612622936407395385510011313429863180620546269119997314687184057435599891261238
611029783044543822872817599984535942162722834068985994315657531519581991051373
942529622739084439897552710500857465283423649086249110396495092120859846839000
214701590327974880749470510155190267203546120866485388833116102108647343544589
356545030421936676814035882976208723450864820819882910201002185602046545106976
512825982432366503411091808952080812214266373188745901973443366319292909034398
248270562834394767283324387359940140145228307261635151332678926709287048281287
820297473670535634016923500027933344852711942756627173761416969753649127301789
974939259883412234163692464406151741365615920151309947933024070918327510885004
885365410540543502036054040442361013384897730907694893567443441220770262828470
523977369336739958733114220773398248420036906752859596144988866099205905349096
493416091065277446224736318308749888218619956187498702091943795564096393360087
254935440554150121020962470972378312393327934624440734659075809707962497545532
896129497400575776617593507981982389938650392100292277876913746475058590321410
679733945149914035789006642249343966367434796142731238028506405128859639325613
161937488427358243040085678468644547050893120477605655737760354425421878204427
705116803644162819710035934791795756198947143986307717771659314854851165909867
196431995447482119607589512496496038267580278442719483138918571217893533634973
696736036867532806686952573561030443583159035625300377683166032130144478428293
549790417936558352233037178968808674699209125440189042531727616820340770291347
814002762794638075985396981201646834610454613948312398073024467805999290612170
026405417862688424350233839988956957962710964584475271449908827676784929191898
388128429918033391606772163844494091752332666554169260010286689741972282882010
011770763922811881279570299171471041287363451210730611111907074646995482444101
751354216471696558290373530165245985963191181145187865230562296135945725771264
088065618785990495110906906600080196225662753069388441409008681413937734054062
908460768714391550500042457105724410820359900902306867996930771678331282866352
595409529407968132909073769254660513379007221135396031219597803000624165119272
635044747130759805977722985381688770363416563015170736221168142695616149886248
820235287647377735065469827900259885421384008365416224084329075685975704155667
419412485406717844648721957233981591038605821049489635519702978139382254591486
382352161534258847670449524663287624399971692592119428100894474569536931821124
536667395897756436981719381386293657976255194039694306026188593319218002484665
104529982059265575082241145706890620056688190991950194524866735469665783356770
226397657859130217787134344912545862838611103319565684589752382064995715400613
549059500761687909910190915316620776250354365823519828860809648894242322982204
229191189725010102886506452279243931794130531887147271421519451278154424048762
119676659272743222254256335660290972983431631185558840829898476814166019180298
648979289079477355785902293594568100414801389901703245630928809424367602720544
968010130156544811556497691973581523050967040551525520519934952328115051934901
821314501254298346787994284186300868727343840811511508351166634457008610601612
738434456809994592335142492472012487302344972694841231868329328834415321919084
925931306740994197949551323944437335344264581625328483747214987639962184942653
868521209637084950300366269331683092901038103604728700867237405464632068351236
508373150500336333133042906026480400066472409296952539114803245678734535171199
057284321041891605520271182032876270519592793901452334411410347494789194883350
662289015409590298870436449150306292138866433117753350009814056438585643759239
525248698629233071131067033012433245326265772942452694849340540760908971101758
147778025973979032697344687202060191877354897951871545668031948817917815077765
939099217741288594874874887296863666662525234507694940097041672561301217607593
499343209370903284505413823273467070738682253055688036782851006871899022484175
318123134577469467945380085636381149100717098689004961026923529076836758252763
802509784033414736961730753982472645828965092706131932878409093162399041712208
217116262116428729853018134069724346878465356203246196487686740366120010974442
529055835105642979339476942707960197263451984586381583490779085448248461885832
538533263427847441654545555725114937353968781592877301397383290072777331567710
017127492117044044053022741372473417279882483134865556520579032397140982226067
279690226032799547116381322641537280997643590844975527864295604940171259360879
107158036593672368955963555487100349252872065383333544603207064339474443390968
993292947412321057153184601807821844778520353755667468139490034726872783908472
294530914044251029553070615248242037255882698647710407497889267176345655727922
264285880106021579639101645872844725336957305863247412694236108997903636646570
606677918883214600819620636466236452103652315281020835168023268747878660698901
710357666217602334842456142754837399017471417859875285730486893264732006230664
293645941718410096695616732458709112285982249058443790170048660279374926281764
079690679381708057794776366901503232413402424969372936319528316556614065437554
880243108205991493971477855580218034627650579154489391678408771707797155312181
481795346424670067865940671090013668636203998162303183762125626061430057056430
001884446344264484725983971551166045280684806846125239234093729571351155582165
677906647072841322915215304603370917465577767640087841589391131798813684647575
641668751841222619295438165488799901924625443242086610448911995514994329017988
322149781350001389740825988926006148841279843772783203517861827574501806733742
477011448585405293192553829132879904570634804501714211490463966465262883168048
212684358687654396422211763467696421254909727751438948602913831235790504789597
020115377282502475934882017623824672725507217723891224561724103723872611892577
243944595832380981258203015314025019257860977512696986085002543947917552343981
294727230773344420070915708707404937157316248203989818449106285590414787724770
073645716589827851922007746051266714970668274067141091018131518091460872338823
038456685856572141160894226943055524118484811073488277584842488015683808810161
183885700561888847890161694819800920374220120547642897583757285927221568609752
489820858835906563731800953377236129077597140994929489643035493023404887098845
325226417079751503515358548879298388141176632345219729425890866285879731384839
993468542546618850083198372387658901997113804331243158229835820687831100426405
041548014722627554957429947413337181936390083271615638368815355158530082027603
271012813250813904539706155671314216173821744259437875747919533915345531338310
622619894281793060450604530207005159463722956225664871074131941770750779306682
165848556858842816474089844394784619407833871020633845515252532244787437143399
501710173954868784721283636215118083673031321255735897560674195988614887154525
801055617593383633243707774354363730449933862459037777689815930812236760159175
915532171208634783080214004914807910924212190359451444271275794965163460558655
445041049776231333077142851927881607517364455224630943748041681151530867615895
875304580730470265505095360824721696079069295131387055240599096335254363162044
883713938981112964637640835852957183605645094611871718514697273109892721787257
040764925438475490196330876885301796581971758364777319763026136932772729167532
969736407938541242484659388525177123002848132270179480170912979074077169017976
588221843332499868157741947539077777511860561558453943875497460160387682089217
490695943741062387168366959463670390935290812552413831168268098934671979761307
998854675312879821326755005401953676181683395115116277705336586300593560328114
128291542994427317443857261230418746021094554273656725667548762580351885767615
664302858229198589677614120913908418161597477038663358242611054200844577513085
164039489255573853469926269245625317876680655808144026754977816337034345957741
177070923203207693880230451121285111111726083723672901926321528875287544230596
202290595617684783008358723822109598194617586227025427806377552406734505603119
748383097964479199838550672525371054697451439126892042768285453450158281386117
579714366011251127910655217903031319636338426273780088039385973919158927224959
874479174759476313287083435180311436867311965804961313536566861632737296571193
928500616596503057818796483621902371605131682632359905495751187245813239615917
631773525075832811260992479056537574895898968670001506687960233041791077963448
004569096799524287192514895438873889786864128942422765213900842662467436442551
791112338895428359835071480163658748892532374161785111336944653863614871470175
003165367159330144925865954474214714729023080276891052934103126804539047053656
682894676674059199169399774872731535364106838966352768944407353806478974704209
286880636721888867109175807281488566015290013929112225573018606479922811640476
976301951171204872858703432454070844481008905360035520966929065025590616974452
621182356353104745103968482733207032920351598216826613541098045233076942362333
480704073060939854196369878230753694620033432184856127765791620520780617580563
423587864862583544380917691664639079879056090563484863964136465304018036942623
492181025229177651407778862184189892073354948524380545874747316374532854484419
542295889814408684298745406268064009702974982063855879752026415659427947269738
430080333864534425640466469372941914366478277620337116660037781604358528986502
055588338880513983745737795021931458512476412901192583796852547902920963630238
320930081646958398284718371006961586441976976071737270124935702784873367711548
393625072815175567303194569127663803032482984193866920423222886289323327819032
077916553839019025517175771512322869970674231250771131383816249186361371039488
331020671137882439827242351440278191696511557705427560338922705349675338209889
707927149829112802425715519798870534194092275197657703284281779440301068253249
361552323370526501756282776869168568287018584641054801208075547947539993445887
652262068349034533482169838945701256424566245918849647284272073516523675598520
029211386324071028374173601390970124428425642111386098691302579078112403445431
017662115343639082744731205666528983763723863493632995364274968995862729984987
086114261222798403068765809122079241076980948201356045246422630724132091509048
578558360411891871641345417631931509281024198614807156800922818720063942813984
547575311252827365906268559457205750472627885240761559113858385405260385577813
206675072329335611696648466440799885326786316156201457000528551498079527991742
752159816031810595062162252552868661750616412494017054998572182812906476370419
040729407937729218538534124489353417764720009228227918919343043454099502386127
033269753305388656658885143065641829957827907297999858843445332874019941078112
146870925045583036474539890400434599839224697074891208756085072346020177075973
521808144091853687749613130396877478388848637909588091656949196053157653348013
132143409350660146806767182855136383507273747554457154642698334701203829575149
877539221201557644469436534493193303149694299780901214623413997693024281039232
863609463633551886680420149994078972247270943147629811297749465236741700372878
532471140936845998194014991454653998958172116842030117912502798256306866580543
706717685727914681766225802171087459760527916721008858062469961216683628856011
000999723399597735328651520223705624046979892499253928039277592439219423984333
984382196807402064649233988247895204784780156126489910658852127602935845786270
258935750767330151249268611815417226226624180530572269958278533841364423826406
243666379715230492305455158125325048810057131440154332448480519364252524518742
154411140790921828088525924283573386207428898409613171261958626951228593850339
942188543369594079888723502097792328323555463043352650133437436529092730574571
133216156083447487630688524566911735887839118247559869723949413865082227653545
240592233398595556947039496694474517529820060745033661773193269799862405296279
273076933807165832755496066532815894001774955647755960054726692978710431320753
274009652679625074784879464157008462613281279901655830772241725890714187931500
854165877138145991042484029682904576597870800817374178153910133583842227723227
911293650303769779604089350875909151303540791548505693212234974719125150327373
048026527283296322131821721793961860488077858357906699558638289626482548772670
873347314292636455524872486108268339414118839878850123228640195175641951285629
625516433969618434752441878212194579008500520604638148782652271616844085579251
475314809531370251645325588421640421652006105670491585782383677441804135948965
221652900986119296824588346386314845327094421304189140538656869132133062589680
938719276711418626181559122564518302631861700336319226555460345646878539384751
364945708620188457988047345839876677482146289623278031859522251446920933327607
773880402979704733204676931479159208496610380246754349326879975131292366429435
531786637404553211906639916003436580854720247192355526337094645553654380880306
777430334803045269920016430933331414933149002622099912683795418267407321954916
915017053356187951542997486973853636052123579412782193987390903083603924673030
250276731508887735333863518544546390842663507180798718223681392252112890728837
774172722408599720413479912094178939458368395081384953587579384193782475749003
223118903147075150383430061139884352584373927456264088978711185138845227493453
970277358756662525816197620864721163610645457826566315576959587179341701950584
397768377331699399155964833356122581641749781658733599424729992679482824323391
982643483136248696157767592390421068786998745286964038356038405611273224463531
749904049110076650603942471726089703495160631253410738623335620008289067835847
291554244774004242455471186661044813483028899967463403516094168915674505141577
001040630689623315972260748089121801002921557684877559869799621595226508433683
307943421213185004861687081817498846143079187554471619061348934177843648091708
124236291220329063249305650073550401067164045605206796570891146440973059587256
428300322297559140689867665655041542181072369661959818198684638418636777303722
799720681971285589703342413491046067399486631321395513276622159198036163855613
988811276085374109132989671524195818991823369591384400330592386896844522446097
219486584893688476700611999545145071630293345504089096049478460070973576668157
504960147093687511958671582035174854430384764961706658163488467201613311494046
922639479508828713755865480458373098069952610216828903052027608141904775649959
838531939178493630468288026821465753574338609852702877097084628965108690490500
592280558107611745975365111443614955979149381719697659792224055339966061120375
880724867476220933747330289355961987428121024195191708839726341398175382287971
388643444979317331731880108811834459152446451793134757338751571384452066523660
587759276406426682559807288393294519199568828414072928878125825581097232848758
034843366253601226724553920195724896493561354566481734210894055359476778577793
327551080824790483853238453831626025042542693426354136391687559085781260615625
201543807035907162315715114231860005700894323912322570786726218137434939990139
546967307149767049546288281257087527343260971988773934645214281170780203002158
766474653687196603824673125553288524624030273176069078558925699797242805819587
026404709918828467871137342953404297709887313933048326320592664537558623730356
962557007198074059282528871694041772080681610086620234918755868109846392797673
635623378483747038956677403020112083983132786227471991732474796652637315305384
681931566581029592284555975625880762023099000666901053851313653414834051412524
886207853548252471756832325494582326068421359453394031841606711696023085424661
821266979305264448556511466716868336110140416059329644943114897957358134731407
256494490541941681255446866010705995430975222127253931328573910303216652851192
732858240254192314377537322146089961270743198572518322953988529119042341302544
534518192767584279399169529967749839501323574336819315975771857097786188347723
568261786664916747515835389881192628587624460873481666881400536531118229215181
078480672558365667791398561520407342034884144338860361367407275320703482482498
098113436019083696936308367389005664598865272138193870917543180053803452329244
726362660915995097838204279782834683293342092855832809645352308634713129436743
623975751073100537869883477782517260524275440020943985697046956099302716634626
556711997171292995178704476310315986452496560737648955901915231052408420998943
127191611222826325108253605435237041123571326930312454146122638085978424968704
242239038249886151376224625096353336685209581426792221797270890949603232207537
910179771697016019940346536881433796526296974798817393711616991217288558663415
329646315741737242495102944846483250508026991412468043486152829335890065628254
622042469655928061063921224565124323350186384480361415951823282366292879331249
486148493418731640231583658694355126820983838490498797796460587295664425639150
757413299358769696008063035464978711459702330916590677636258483690141706872305
891190032369350969066232215295566636440692487303314440444032189680064397280369
168985863145051576533285608939248610467961462952079656503956692228399384453180
098112767593366741796211482727234585077863187643798339736458226646267655260440
051339852906169395268666198889749469486207544440725960615455236926024624389263
340857558085294915444598955753980578002021657015869899604670937233655975175837
789971507769967813589033489745518586590880411691221776975656152291084896413920
569815242470835814514608041793141579006397644940076254053184931021199717698032
571685935572160423766712833170028613205586984113953170224426611246300978335435
319928957702588929283153247991889816300232354701804963011060884428049719137258
329966676724078276036201574830423465353487428213882513412758617326409095849704
409147601831550903416965776170533275640171459958971876278258493681199896932265
034556070193072861390566637735203731737819299758103229234295574264438623303390
255961970220601103766200908796218824954326519961336532224589933376333518880381
014086824234288120929071078132193031811976436268560596624195722637018508523853
877268185179230301324224342260155906746788377440265308524984905933054812149255
257466456829576555770531532878987455010444673238960496165608291030930197385176
884738940350008177947931984097931608602148477193181942073586622382528535682300
744502194445578410237273023128003977064959368617600374149960407675698132365334
844670274355614684691616718848026315890772473186079911796926032849027854721708
653914457963049384955736788804566490983851595709340612472170838272913848752118
709945444646994682680452588612825662609354932703018597307657115221465472123187
062338522393635777111768162579803903877732346852308931757552332445946052015423
512028849314926667303260783033855804838469769397326632191447164445067622996939
062689607703827976654393689985933221091359291325444641214507570128841991805803
816204988765767899754063450369677973728522018159062922289292682052733491550056
629714226249238474892577205081114333787278802645184031993315424266960869766014
394808778462844463068620665498720061446526529821794631423249623304593035909707
337662410311533603471595429450109940266144622172740402426624629673489526655373
149666296958505416984114495702856796846245730588291558794901661883660182943603
044513595525078858203498419148108863883712433730903854901579480780344734823705
849931987500686710050100116589753944289821596812630741079872215241913913475896
625992289643850416851866896430856516974820033867415909938756288495929606762036
910617624795869805585596390408754004776083531620883640330176407488911681359870
111549603022437993071786679695533039541719954949453548239639137882713832257702
605739021097090026994302545579484532343851655117570484938153861290259824261898
254026336035765897174698954680298470844653736378346633625380322851350752126267
613432032170261062835498611852648212687847701815197813757394890008839259963512
370815190430554363888162630229971524316655594743014172597155147983383744044722
927236185642441750449605714376662243501239078653257965098946636281028311607717
584620291721776373113885544751938456997116962813832336447314630428889316390376
234041341471946489758978303063545846517776887152018067118292748830996192655551
189772623370274955240142613117647364098724996744926711152418999493681464950698
446420891586745470126456576159461901047582489710431227058503622981293791754215
171164280734264824080298857830489246747240688360230200060633384539247492918190
668807945337347854268382370337783372993856163848174951753918592413056829272975
258394949747931580149202166078453100867769181004546852550021059313677967120111
713797932683566230251492419466892613613699051136044238924643440324233811123588
122016350321029160068704472377613651951468171093353889023724849901721339869422
747570865460518491342686791435967239775759856119461456379415597834223156632379
611189281733766913755860068592638591913591916796411776823271153412893079992184
195695550867016212739230620424427925509461666446966089347200667002185533028856
060404499681021700146434657953752669743985824356196510957374213733177497200869
914236944468009237670764256330065083382729166252262460037513725008749866483542
491278389586450200595394676269898711529681978554911772319652889161845928894037
243846791928986556907440964506735965416066148669437951664967675815672473454982
838890065220442101740741227568912617901681312871680955414234889858207584225430
498660348063073978261121644404832845460264554487172368667329468648731106957702
481267427353114987966073924364878445307821150499476280517772844486700216978730
835407530487769399167569077975425798004551795867605174382821794233467652071701
504579275128473480357902607039667807447201293273819583884833812365486529306885
689733316776097024911040726330119997088512578532865555183279057194912690950871
851449642024465308579327745034235914454077435727159088025121261218317270354821
600353795998341814824268535114169414622115513700881750967974053755338085228379
091206363506283723052224893602869258470626954258840663013600690032584801099445
937009058520028952967785388253762948765185059733890326995295203115169986246149
045538733710985988408785615956985725159496799138996959893009815755595323257131
598988916829558127569321779828385573615691906048593713903591167863485847285888
016175406391464165280113335380413415515032632524625165006419404671675514499229
798056516603414986838252532324311751941408354482484568684686061609797292996338
012596198419243347450924054480425157444120087848341762718757113325914144940529
063512564528676286249683191762180454505708551376307342584303154509865116347955
502665466886328518168329000816897166323846775559746345440596046596478865947174
467449163657895354522068510297470694253726690887543932762197336422524296046708
856749974978253351054836063056632015434833144952723881391114369991552270331635
867536764996605424899517678336163366830027133804196363486992420579159307682158
333467074581744191805664970470735516949212979977602393789072455555632910606472
369474902033324573205766882001887266947899560032774125025150760135018925007844
087919619564090974471163523825778573849349629481631047574974725883782787496642
038455413815193399773893935929317269849233796819888242607897119983032398852682
801622234084689564345519566752441015110570601985213446087456212621916050760010
655242409747370374558254751315154003675164703315580641432749894463998691328092
427363870464911439720233083681427812701190995629587086788514840022705102245072
072217161502668951709569613686080316867817250052964322825458162978557589464289
468321718170514541512610386830821511977324715311434924701214380980929744466392
176379111836877298169950936983358914672513174282381705721461575166614935102052
618873838545515140338900226169741876822151906082583609452769747565339745828967
756002657676634231621154280302140908544137101133746013904831156618193107708496
787643628758546802322885467506038896514276001416801037885908785278198716194919
202688008426659015241571546312399161622160094584289752127239773214911741928633
167966060997701630235262001834814199968510581170023981856299416163425607919701
845595303909340173704841998515502527227618512124257535952232937307473897550682
900793357788288388045818400274737715697733238706908568398801852497806798484871
305034223498604137689700161720201897568278321008158096599205506605431300295800
528656743337582017213014503002187088885725205092799391344477837382807229240376
504118336491160111780326694224610668134603483529473032008713486546544086385219
742076448190037356153542129692432747683709732211353210782942634080137232313248
113940281291519090495765906052954788336064671339329076419126826726887910114902
705880946486786498898422653443689636651150870479038942657776858914951622655762
856005288244681067385826170581009971291559484191997919130464827213119861627316
467660933672957575487323669964692830417192693849514573681236593152233862671368
745045072689242582061491527779704225292102515993510677467759677586932152354821
258344267255937793418671012383506732147048617777327538649844419252686178989932
938637231608238064964670831343163621489118921560816980038297594362554340992384
430475876200232917405683978358170932591515086111731990997340954945434729993395
765468828884619595419787702104534113435631505062551167691100088264753854843136
281942052855942720089086462315304239053677041452098967844241658782868056125310
968822825059588802226879072269063587892928321488390918965447588870183862788214
560837885091829414565719219081041641809999648125470287544021441194104181748957
314708038734965077359528094732695641986805423204436421199221826735780745227549
125774106543315338273000695614541143996486312931935379843445210038446977339736
826733518899141806969660607706593641478452398433001834729666673085549258281933
739126964827604050268287894792455860005584722500634047120352627465830792834009
809602197517821111648431394246431794092496244980950858088592320121136868449434
467170575709585597341187519935030234212980719975096426763869417563029302975220
632607160424005978542598952697174526752955096434349371865787959142065496137243
741308367020474881359246891608141062559517596801126076951324120095685095636871
869376775548736522351510633359485151969782174088728348302261306649009753964368
507490166001867355338419725406931173191072911815145842141854709200168818122920
374493869999751741682079743113426862101198899465240597000077115719572112548824
626773628024471487260515083302251932301835666684421082427737996110801817107808
928618086744010073103475517848288372505837503798693602567577155149002382820535
114505324129811882038503356621956551902248270323622204812945268725797041676191
473869857274423684135596063317931240511358093985400505908429433089176695073168
755936173794706877486860272755687704800123240263273892879118283928201791851897
465724488273298612128962278307746071175668920455623279013212164637356799186571
431948172813505916885418944432593478345854320194688639685773375825536402675518
426547077218305020330421848764388987135023448993427835607016964970081684266695
868232076623542945831268255216061804239899699780819437128853865830770789945863
043603268035135490716621757113073906510854446092872994928750028574192363518137
683626134354549851271842557983599095908888320226354665034490570839986012676930
030891935685443938581598571440865495112798100688427738695593869010485901255275
016926611260965258023278967425830305951230952518616743402376807266296097286932
987748400051033152453693651265903772519843320318576154193982129870972905774839
935124656864858850127671107779821460650844400215630680687875080385302860952955
318393805393569593763325343216478596562298069792828401412913395029588384945087
348234015823387058663993836124669416233502986721734357868786011122269117144859
495503829472096572496134255674915611608866948225771888331952043520533938024351
697642733213193884456915992187678813211549107786823480323451449503177125570169
920930679274607068069170757432195882751335427952100858113473019812621005084818
270693343289168206379138084205165544075712355670747415475051140696567643595439
890655330793191119320149333515539541785418308129231046446632108507014492132952
467684266362272369190820250551596291640732601718677223039533295668542907571325
476320463948887540846552644345879545726531574252215766604915195465741126581892
040143091820151529982492548168714058200075253984228055727270737973833747963274
938860267671385613983158741955144784219795232805146995140897471532577581151224
311608342644000493561945856863529629184925097308579139148360318324031248869798
923569996812144668643610865147901744593931309818094977292371718539700043133278
920016698564316911931664265302514964801201205412501551411641376527781896676206
471482182006607215681675142747587478288478866387203727386841339677314562121986
272509932223451050660763838599569289554832888799449265041024192649647827031078
317550605568786306488557582149273631956865066076542613607805317325364121514244
536168170480700889910742696669676461217274377055962187506297015788799325904457
862432520815394592434993404409571914273497301829841242743451769117247553471062
411409464185196720160877897055911912917083232380006863955842259695449263108833
511549649629901920792081437376267835445330702950144614346067342080229590486752
658648419162680932231727096559239344732380528046615314357716200390498124134680
451902809869422202298927557868563034279148063467200610335803389984844214178758
150890318358295175882975879119013788761741523615931212333567440612831752814419
539618765119699230726113771136542097012075502956121946712335360233816927721278
239418759688141361062020080600438217142984511119957134108436519430408897346698
301560868942638342004881680606922208666600583116798171846847065276842694603499
143989700848281756753916910348504114890969733050716463491817367427428003082913
999566732806773959074099097810539842963397940660182647183138183362006310280004
892023012297328281501487633116486635888486698346428090037789726036329498976495
023441983014621481969396596679216953851625909244594996078993352695022166244032
832884259867597137306457071474286457957699388221245761005367922070587167555121
133848285081174344545461113990021444856683713348689106699035222316678859254286
494052696399778778846895108732426128047286629599240609032208224148820366114186
711539358710857150534378690653309566172934686417408473113689402451715206405655
422481391397858305485922603269710751705535949565198897308399852742387005460859
438293176316242682571639744163327707332532655287526229128796495981334855605197
291832102915183849340538006237815061405312592997089624299539370572730920013605
542199766416730639959272086742449410275468827354962661648316575367632912035208
504397476523724522010647828866837902413157627116252545633061706727531404939243
266784014863137143092814969647524652590615629941198725745956665467850363162188
217837435821502395971864225767024461366816132901228452594059878054088780457808
098863558087441357077683210262217634983069045731510315683459500584496391846597
806247321192803339030578326910729387442940924214453743202324934692198966686065
891375222123687071652941178706757407669340280418110214011588984288813542316747
443889046598602869813047533324472738277637888415818829655961029660886831020485
061509118295327648612978043324888573606904199863106875046708978865032140832911
541986814095572347134551214729145706743665214687745271339220659041240066247419
713013097498568962468514439675223035979463145241486097441202511196934431013906
020185410451638602242021684990506696330871871635185672996422493704332780187705
443502351959083106076647558118998403482825277970441169418690381317528979056540
210378516532867187914306082883090023411816042852462609678965872916425039331573
690222901276641383177900154207896167304024113985431697128228779301894615802739
387073208837016141357793697804308729698993522709044576660333922423084158746778
379757254385940390708997835431078148680340802831693319465775778374727302286921
638037297116542309384531584030109368497033171830053041845904743702421544751133
519068538335203198507040959065784727131864476087132011397708070476427857120084
441365061759816446519053613351694188812205296553342862858029564557101759561798
149451604739765007127636370876959650561333401844228422017159714695022926329381
694415570363886419884914089608311836480142846287995213304588380432981313729984
669570806778371638974545784697980192258886901961242507090103607150437098107799
072199648526679501337940063860197574756272443879130377666828544491382194256904
872723518509408059862551640017768305405389675596732532078568178068452275164090
452631082336528190411465759141401995920218604028547842701823505680674852820777
145811860864786245203566393360055452218887855557113959213761446520827646526791
715761442119083035456650111221342859007617310744247462913224624002129761663010
703548038996380570805179066933755701092077453482716487969590218711107105036203
010548326722929671765895439802028251714527038525085642431870674019175683413748
656266344558670942274366114116502381828584510488557103963043460956398206230657
104604669926626178894659427916725585127059769761870105499567465153040881246458
645087320452921061559647332604546476560146114262713887840999003379745436844594
658481741544124793814928509427626020877981595287833918163710988030242319865456
818738796122894931241278235175518457769143682875136372518879821674642500782008
805642896378731096260804360274717543117968575078073987502578983655937716886069
533382914039713869205212015578460104210782777492640674804877226399936900883399
623037635714219716120306879111207910585033786539032586444913656313420545372584
304919718077542787573973470466965732340433098748563864549208715987914659857746
751476073127225763206991006428899075172894010185475067947668091643678520030597
253472366918556510743577338308943619478230345632794388593903282781817463187184
097148629966448820114934913621293441576925462371463872738849923284240888505192
323190003722825107015967330494222854341380692151850173539585603849704920242488
097193296484802372128788156748270976364539658886499226475269453988480127431154
982347510452597900951261267893913980389597977982634524725747438242284328600045
676470372802786284164440291776512056683395278691710755862409310117567202534751
609365279663237722533733814969081799698802107561501869759830832342958998069780
242695894858801338233347761752631746481101211798491929087944203905194255090001
372960207894189044406059911445958736146963520549563901442660011875593626754765
351839887194851393402360734542846768532485608155693870822184383539378170138074
636601775099635096691207888527368370634032644462973517500669035020835675924128
825308014112924981556875295577908955735105244210075920900894866396052138640708
602458215977152243765589347463361820221459418814355000743508375124480394651131
321389889273453481426282497037402320297243400551487641648484441305931348887996
403358636368167378023906069711067359607970645932468073554262685265237167208718
192975438960820855225787666992654285718221509669551149192727315214208507336895
414227150888028924266178728256557626397405068507002989146130405142576693415959
281845994666010909138648958477465573816635519316656277829731245102360011799157
483508509996853523862159434986143621905691200626927383273673912560526822219858
082836807749630473301301710754185218893809683241409232649332577660626667669971
385291828245202842344478390091745714570539471825672259894143151635520922495025
112753116870909941116717965891294532397662222496713490798300420571332577347187
242994744385153296763223655324870378980294171971159997406582268875569807409262
595173460420517981461850575212551437982477034849485161930088700539668534415753
000549423901342632781589513958591102352947825097608346749938604626526223003340
929650047026497335550766160462503556154926343769815355180708481216408128593982
574545657044877445593370519387224719195044695156262368932570750277115679426870
213095672031576928797561664243466757740149477577909135144062000721426835049776
154071568323190945222310878941193095219952478966986683445854481991643134265610
975474164888592522753685252529336044982019460753723262476394347757909183081007
503929530496190462251013394941389524479697830314711039321907479149101824210989
258524768920618700975709657927734024594779157029891083614603498757902719735394
627243973807649974259510868906152125556387154618946756994610658672313344544775
914193752210727252522979641982213512597293582663325521151933710113729607562104
669229180492161352066074684517306797341076941567921118888056719837007902629676
551189671080042750974836436976908877581181693943540584422863826729353483004047
025423441816813177046883235440853390300745250149351424641377088512027733713511
785230276031495575708980929784857207154239949732642865716908705586073891198899
559015155300147211921382782936777070672740009027293522223076554383595507527031
764428991692298681816682472270209631092348318314845193359238270623768842476571
328595009833729330957525116551461104056484344328966961623402929520366718318690
789263150218427782775500041166302880053628471997884693836334909788927037337823
583072084777800837224760711854892117736618949359210050580382049872730342084118
025346710022358815598349447579960768051421757952802300558241914627233424405392
392332538092911114988471185966860801692746357143315831142023753701348561630396
512738738015386426074694739830933665963387409981685463840827544156568890058890
786269045989070853955012698288825690468320974461188639337389938794321417931396
872088635106878356813265144988639708883777795430379424923186635805337318910794
319303707390154430137094971478893529512672877561320059865139326138179157142268
906694145810382969307516564257119409691130924668337211789738491778119434082694
739702190112866259657400201305280425272700360449446723099581177018931966431476
657387225284596765778047664583451089589191439097728790148935773312036341335444
292211638397687716791789106661290536976471933734470349368873020306841988684416
526291870556199026263408309276618413897703038060515876393476092202953211183318
465620198941210186553465408204994293761698905770281567084151667313860240319489
208313488947471662173134872935042916002284595013838528334064909635408196628490
280839504688115199363572266415136355678170934824179067605281327204401726502915
893578100375475631560317058309338973885009318181677662816655089536418538804716
537396016554115983154605991304586422295156833037262919578622527721824471918721
372353550474424227010097844738364287810860137953197125850555885450490012149784
400547478447208667439170478728950143277134576831575834966582413859391720449758
183674154869793739538891165851352980501069500786458041299867285634423130346522
958206800468434491007219855580863739897782706421068677490935223313613525919582
591600052765935596478392936426271726234369949947842254966664753223540752935732
380530882413455560898976873751519122571626423840918590201835040560127065859867
529316402600779578211400602368423994478123953711930362145526698713256198315301
667092014285034574865988210040672116906817389588934885327045441362603247647379
429774936646279022903821168153368651852091006625239067222153080374359270525061
762620740410450151989793650804342365033143851851975098001525900227764241892225
739452599838820722767046770863549766385334012598541861063625942854433947014212
117538830283889040925465837590148467575494794685852378700054649976303873510573
396656165884576264563874043982462937723648850903982244351702511504012761321828
234924028844458904492181987836900547453171370526330930637609205517886679837399
841223634384102787832345330933353967603279564050338154351211103356927723234911
482261378456401151232610098401175588903607517612171419517373775177423766920404
474506538710660885820669896207593927482903968008575078013735311918934721596145
024206068212508374597545778003788060323546564676578495508635952671339634868891
877045573357937920229956676885162809751481378878530055500654772766925938549405
577598955577595462464889102553934162699346434151936557779673869730762980282720
362740697202935277395092616302992536460935681698056465539038797746572953725420
627101852474639390783203471321314944104290934109492448416239222978928286427808
131138896623382268668738583580667993932250436169156722240861331417810600521066
770145046942537290291935622859796124592258763066655889477892946192583759167518
954135717159130842557965419170771660224588226223530907857248643489780357911447
892229696575215556666861035276666408062161195001693038605026636325202742888596
331738563514272711097159136400833455027623443893153200092495733410710063266247
024507402674089608292456017042402351172841749243160888054791979852645093075449
287146271028106820337683526824617913953187768502850269951366262775978126774572
008155647132212833145687206363515430409671163950530833753719460523210486601910
010759017222856170273835076890092382007521264146952256326756551120220975854696
057810945662058629110694725369379065983427136451994579710074581366267893717301
977357840543756850330198618939533692284325585276308072807997266633142471674150
267426465600523018038398707840508589577674619685856161116093701786534667163042
400089738749508526103719285247346111994728851997031671980047064979493548778081
216237619609878422665319201188671060633190380221979999497406346549714461986444
059251020173253443911758467244801387327795466796421110720753298654652072244989
885146176838271407572847032534582527902588566507598558508867794545342567071505
980849422576013524943546824476863060375801860262625739242784779098347551209538
458797257862282158751285470787852926761506354703655906100716984015848297533066
168679511604093853095571023075385316785366810299109259480364164081955766629334
032944030288131097356364502115005533062806768372283391702081326269340581538096
891959927631840657664330632059276686676060811963165395035095548837218162432332
321372742445320983119798981065600903839337344794515228520966819283691238338663
424656120659595460768147412927139858437569419724217729683490573966893854126660
816977844243058681094014512228721553071309151619725714965565791158300943945212
790950594314165049451161854796837490684222113165726845008359613931839229051226
858372809184327324432985576808288595519710597166088039039079221095849036231300
483818952874429449368127904339424217056079438679597726516102520937103200761569
521745353347749186698402914535881929464969318566397210814133692907780697421029
225047400120092937201225201137658013926779294858693698655967387449032789158806
986244952521011439338230527605359315804000925288323918247694741370203804511548
391035311683949308762596501837296956880043629843514741281002120628188047588064
704154361545085545775215996046500878475966272607461381770281256749422367003585
474979968615872715801322892047645375752315003802439587996100998954784216279809
347258705386090006216026221588404933790139746768059129045540857258306575578932
604477605885891146568243088923254177837819395857941544553907657522910163387519
749654021251754101843217490639751154414693316164695029208234548177717456720699
861442018229075829600977690829869215858296642553854552412326519785071377814026
291524456665818520705280557289060236389139392947668047344464008415899525484711
504744565598732698417792908630525740251169602983886450226169285175604975346873
371175873778028150482804353003529604645135644085332297472900406876160098983892
523721915573884283991972506810108198553003465628155277782725915766470297252510
822412871297848528960694845488116833725597657360631749021115646854223735541271
765461136716051537216892599530750539800230852755908953059986928171684093476893
593052768137431373647355350913367650713792521967503872237807916616500462500081
281200772056029526019183069422641468784301238796999088288127978870153638737546
323572167046581550806516087309531821768005167906562213740783428463400665355720
697943563192639952970889050304054966683904134426363058793439721767391890344124
788173474859517525378529874392170300801227558537831975623793023026433582464417
119277809915226342649895106254608368703541190555613594722127852177974306789895
216438811744683326767600313293543365649718741033813159433748772445141784490138
397228065886765033871048802984842179721404189132278833384606078614865178659441
832573850747627401890518195931139637976523264394088190825697691299063051591057
464618439935484133074262489849731526740198384974094110579957235961543182567496
195533216717225297118485814864658969529149618504630548845006073377449516836771
009678513607502783438237244493946008373082154626518255892027247670840644890345
349677138009333903427874242734594312487740442306503284323895819719003312584291
661229653092153148432948936033888678234221016630629640742653159344897765182529
899211332296700570428436179725668023792975554185133177105126217754452592754732
809604076431002126940228068841734124224130869630473860827845256179034182031819
765646748806224748770328252286312484788355215081859485262592006758709426470188
280363822546559730277798883453934367100317819777519316357294757196799038247755
804204602971010842521922746937906136084710563725181485051744254079588082249301
164430820334071711273462276454730728862143439291166643125988833603918741952996
000031921585642703779597974116379879358116497700062572102563077780369129761887
926959086497570772266485143692874667499466323698300480311549307283814363044070
318732409038580163719027407924037645868754601655482677778562932679672404334869
594590841715672477027222154639966692594553447300219355594621521667209499400642
578689865512802823715895374342069853824106381458987022010962749023772861366061
436348466085119063235004761205200554442792810886993945110154920782797728068835
482667144423524489237993058260051973671019905885243689250823949534735870805245
261110742688699298561934171346229224402655170118076983333915531718811335141050
962315177511530386537063229138806174473425348848941077379337641756988377679465
317159315798317780029966549343821287384586923493241317391890894159009011766177
154391002173976343467340582199406220868159331107681265934506175760286666386283
515393055786782003275958814744164340554755226069130446915092491188441141829044
229297538706024618895782589380238022176805224460964052845084279708850473660249
658657508650466097090834559395391046818493169774529087352345721087088157606961
005923666856239642517988749327424447673967244539744948448902361530098849503689
206773660570287788281952915848380654713488431761987461886561641041247660973148
570109023385687852135886031024273174385597511738479436740129464291792611214338
070428319430142394346727738339958154064629963925384221913367265513865059970000
881399188226475526447627377366407363836738110952215520984149197345048960116263
810014934254167313651396394099179328260267008203652668905476949413057235309221
170548794106807448918468460312309418446634742106366827291053067639610668709210
244168412860101095269616998886676579813114415261770432679159004733670083622059
998874509751139575201607777537236507899963281151466913210306068886000973282867
577292167130410524523593169739822711934377127602750840778586415074860456256001
564654980638759905644993938492285616225843160696949414872066537761795126113320
889801702140115364573258904268243197696035565251848545403050232724496097426071
198596028432137466941951329696346828261907664132856665678071048013630195238824
153947443741994595067122844861824420390038554716334499489208917810118496307140
080294513495805887355634754998367366254593333163653618490867810577029998925865
765822818101915873321692855790570691693912397120511338927698559593287666095851
719048074395449119573664823421711807184920537640332783682958637963108251077426
147861118254442317727545755076916718607266802305170942776973680532194169519655
940857484749964584090272285965865865272718098102806875384358947741200340540632
354374039815301175089444722056469468521647311000106439410897213794137940376742
738611139223409011551399472496298353069890296881486558596153122334929381654010
524659597984874594434641022149347594810828610135134229656503581752039085959386
195701813034563746028848276371314829586342078792306629838652804017818836322163
770445011438409161228137797329413055079895223353655334020134963965641784913166
202801098395726196708988064826745731814312717874651208488190289976168857758076
683628270301048236193564467138301483781525625152601786983008308747459817927779
443248730339239429309272557833221527004429847961682975355956334683383379004677
993332177785103733204620712003594053139160748683871929096345615959171852628558
032148364091913593663751847662296574692002300513889132229941687884589308918667
874252569611998132720492696303713260995242794980646112055373580884972775747336
833594523823078050119204668299996187421586829396383324686687372829639645694717
810654079446535368850597204908135170237398220227830495590481492435169145261136
339247479736934200091579139342104931577447812164301243356498077923021112186036
956730216282828179413072245957550733726465922863152193858804322608525569858272
660881686475981043726976795833950790994759925755602690731424843751565070752072
224978339082073829107537122518910532280411284961071235603268362822382515793250
857668993321607511304887640523211062114134804207788974159837819608232646957553
348460650889653234381196207755284717133507465977207919729433139204865019330455
581630230489825008371143791890475700981874330747728194209985167894268268803493
463518072374486712792808502471528273032411921238340212886815658428772708011531
736914282533991655968890928346783882839756759049947586703881962017467637705891
552886181223201547730821951558908809113447388100730487342580988488327583003458
245934807748668902138258007444677628348206243220212193635054478445503652597379
088485683311568024684654002600462586906775383819610091924310730760177017559911
337758267386591186213454151548369441009131819730976427324753709515626793699109
506675870273563862608432650626839094784319873739301058781766648160944612226282
710376760315263328861732920857031990184333888857727821589738155081397543911039
926248163299693707574206730081683747069271078866337481220409465264582087841053
240170109545822412208984697788297876797543531363506055240712641295165626938272
407049261321071091072428662467172760797441114956263269328811268293475653607448
541318322512901301516578875148160282406860352179774868354198656034574253875438
002443023512595059173378766530672423212235480390966688628286839769544672446552
993675884590380712077477840195320277996786283614068098446317127209323697543847
795663017050500469144360307833861847518504106395805458583555267146622400311314
314763394668768915983139845849658064710365804161736188354348673434593098607526
193909062839049201997869144078091436121158970140533127699887690318004746116476
693212108598869409174252401414618383277499570073009176312908229589134135907905
456843819296866901304726640015157654972935971087408195669852066351062047730145
097142112495150711664064959582582982167902398535396197575879634854636729850920
549290559168328295022897633692114999773298033532123583823534297409976893970752
138688067250410974808741334162715324061695994032692043812716008858295855659901
668041336049880633357737071715175847896635413146053985753528548122192319906827
021102254272066239684266117190593607348799071603348627752661621818010540996581
271202855467790437078384786025789047868243410548531745282668894858086192337189
836926908123668205390087349307324953436499357446344949235682160733170961435671
255015760386150140575010722549708939561552402163571826544233030486332600287968
207318031036164699886346085838221530665432592110059323703020359034376805364928
933724792912792392891154212193028411577389219933143875341947529000954075680796
483794077095412050776405484245633852854381860770693008597546352103370034091160
858887407540591780953278343102165834462407190693539836209598042696380966667373
955047252516899350132984626207461208688506376003587818239139697340217062178908
533944711823217522694248454329068152901280998530049889734070279760946443348182
731793457497471865644343644247121434554750097979052257840880356213217448973498
708834804044064360265573072499146014852447734351455694494577874635947811509937
300306095555810140680094102976989108804297461684044873466366730474864368066635
032199788581701688303380383885358888740462129754832435737518792372269130642845
223339897517735942642822770835125186025118135131252397353599469974784473992734
922510503187578192562109715169443452365391317613907796449487084867628545749800
294685562770817716123702266822724682055059097169330431714138965309287254510381
083142643703954478385459967349930353114062797829597741241959243655272884726967
680385875405373727174145012482879209013638083093240617287999831197599022676363
463752008390762932312815997916964685184763335187950054175929218412692034427554
044076788438207779178867028955215439087767208090052280597424324628752295194027
357262560865957857983292288490959626744540753110824429500163856611722897292631
424295698186800620096502029297294165738980639338041530060440507236600329496135
452823476034087773300222559730059777166189029023775229552645379914695495123423
268146198625739337493502913383681682097755253259409934959151305645818125004325
940634727266154227529082316435170332386751732365877777356705702832919825673120
857696577500394637619005680337579088934849554387859895264316991637919549289754
957179150825345149762719491691607186359475184679105207512637923522827546865711
514732477613572433834131804368788551829011397032212965870109447768116598774975
113751267961576432160169406668694884251269873773876118341659553075475511213798
201530825168636966556369036944627315551070328260484177106947611637796612920130
230297230002223778940249435197054785918932228542013235102441239639072678065008
656687450093974705955485547239700701029846872364992733722820509219668630890100
123513889597127579488327702236423483236859675190943032503177529737533721284031
458613846225639360649445897617611238037621622789565331924817386952877871662378
349477751388689177431341579119768970042363608009369560157560153264536196049879
987133965843253008574975571176813421302319838016555118598919462716562535147125
029856272473774474142987139818909924057490101482823715289599306104547307086395
832069687481166997779049616189157966251480316266139932914336784035573959414396
443682041128535996665671134352695641094636766372913550598572279944711647217185
101520164077160665014519780958411977226502503710693657370783502643720638148063
503489818024055460663294351768874278913572367912003071566575588707772029061348
503798156215627033183508650107454433066634439653646872431265811352711106527296
466914448210411050133572790202930445714571550859626767369972545082696113954178
992617025026203683066521876791373847053049791624808857141139123868814581392191
332529758504311718533466037990274042385858383564036852038093604744220518685438
528892606936687757955167847175660019949362910549712785094200791148849143392855
405279283840217075558681352288463891462845590985637404437917860212454619850044
523800476841320207274505540712675969620276906042325842067964733514817652397457
362092985066861362223004969940307709768907754291858442478901827373801890692634
044623849474219556270995692980318112602099409479064942733161981373486717153513
968595724477792481896758260961237946436160421239481500541831556056361251970764
846127476972753713379234056483673894170701018080461723633095509013593764262410
557252410067746888840702759488451464632014222000971955298059681787433106977127
882654750306322271685834340666418242886656675158024263756267056148281026765378
522800759667592104686656870183301285412624301856481835758605676446701962325134
558686821874188242567564713625630551771357215995988259148738685728689431042820
996350925732957035906125791268425985106685576288692851917407477781950773706301
682617214410854411331470451201631318445050463114157635666171977283071320530585
406638509317310633088731300545537305653232866918240755714912760490405705563892
511085013447908514344513442734860519273324822581760835434101452531826898700960
409136274558730382467827429682524302969630369808723146086889593148856322310308
744295201503266203980004011007889258004700597931064581694580836655615186314983
109901786818977488973175884175471053710997760164340029765617108893247111516591
261479308332441641420767250767832168667175983530464584913391049280858320257931
735959644537896447812669914368460674176636080089485419771920627305930732138502
477162083550991448769278612737155561297855528180715125537205715674744979122154
165278639204804928929102850161917785111358543593612215343726456954592500803797
618344739227851795403935806433239081135267621973217547218569954225265985444791
161734293689284618957065412048382664658865250334825492176028542286629727766625
231045124932327872774422900220907267211357015463586665302207358967449391270251
088892030108809652806906875600060681065709717152582713567349606496256741503267
802212910577998327034101437474869676032203226461001582252571835509447049157224
838423409408606094005860533442739744615225658493281936797552063853312622554082
867187187368689698881437718404264954479920749787059078111011767450498161093152
860115729635693440945807718000249385994724004232983092475368429011301242996847
229661657322281613585857477496695616456978641526463220702436851819197346192869
149278707273068849669294809274059131300685431975249357300476322773896069714773
070067480653002576939670325733439440604514790695964358495118308605126403921100
213505079408719176832309958801775983436770916235286405055991246804024312490807
408508029763934207609104103762134728951495118188430537947545343603513846771644
188369755207284997564466422030540940621561905255393364773133073942487454777143
631939178310942571142468012096418722696079126369488807558422325584456760542053
301380927483869555320671327922384158603156650960377264526803799440390376820274
490860617648022808177921521890308478391517124320717895444613296525122299686685
173903030207490555870639199900997672822901813437057821643035269840564981742200
603932700466023604028594672304644752400725531810044266469576939316911174324152
065401818903693564605984704164789538294430047287267961751213268342250983278772
516301631725492126124790256604351566024014063990696663310344689991460167548026
764213480128027893783039150573323912186043216171581459650055856144260609132442
721680300044708833812442048616528740777231056281026515142720208121370613189618
149641644394016954553021359066390316732971762872801857430102125727422539006066
538412655562735422716898785908813604236599168346780131003485735414524298563274
454505394830701865961894837702104670724053160491947105541313874213827355691115
457949452696135070463727706248833890461240312663939060363605618966433356662972
262717236937442994823402181085096322561590915928701508886415022503361843988163
938480459642598266030119053921701483567193357324372392888710635563971361485371
477973762877717342100667323668728095880704458863383267707940962328938499673078
480590988518994926316598969618381304326044753047923156942796621736047420055926
720327886366451157126213617331020432543757160313976134924070779943063142201900
155183193796939070560465922223599450228955223184029929235817034486731869539371
901987733598825520965394925434396633736940490939868251962253871487678401118133
564300872040236245732389136117184043696758889022398029199069635638668666112793
725872232198535041214870735150516915447111239489308839784721981567226516643833
652841261142898566391596612862383927277989606574443293526556720426102380453424
330481971325307142152909136487245773948242036420330611304123260515724162481762
625688052263107656654408442349296672231685264093047288844516751832369945816915
197690313016206564716456171125040635834966466294229367096726124869066058725306
389152095730947018269298102356608086522327413284246808953084146897405989458294
232797568268922421575098166826272143088712949602860303929835046982476080243297
363600874922519644376137382687294885657806320783311651085554124853878882029004
245143530127424884827016838818464877085190732299275715235664914512022148869235
704587238724322926740327490092149599894395810590848046328244141882831049079833
877640836566571608668044879137384271944007214853139108691649351223577941561237
249046842034843964762701564302565463422755448019955075997207182814525166532056
562000772100930410844278606417400091700273494248158661227924617496437315306827
931294990974517800851202942867264904637108380911350835043318810278342268366095
440246936404022945204453565719713674484477151347451916325583441017654519201330
426914637369356709652464577305487301101835695505976917850340139637467311163974
815834235330640204349504695927501800348626485437609739367262780926136309248661
060182358770376933391975007846022141195367912048135873727896984559136240275936
903336483905904959448738620956812130391124410904302256230035587264918131783186
744676057168022575679519269587551425658135158775938383693063191564630496644632
664817586294932611919367203260763721099985000621425849309969883370260783248301
705496062856341743156365420458405271542046109628509501952607289663479658264455
138710655938691059470807500496270771957633832171359311294214302206625654516071
585547840420175089937669057704764422047096929015960858692665974940873668514143
845151394141386205933821251521756060272971856216988347777177631798179550044099
831313586693222587032638146606154334480569060043959646496475168795699870642237
110638710205319929381521250702408969936524583029511805257406234042316988391045
182176483096186528363810656597156356317458100261467216680793451791983919849294
900926975942517056243971682928806651980466214241357070627584928612810785786049
526299478377348647511660340915416831166577087447876178062074880082914117736402
991035162239091744833107096126728644755176213714521348624686333077685818097778
607401100130097437089191281505727327864317468398152713346034948590011087803425
047063334482372613516959925557899466929272323237085910443043043579818850982056
807550674844581021072092320068052250031892614054962655356084091548018266203151
704883760165332126967457606261028767837191804999574092526065086099827358913134
592590586682295742885628880015792172759982968899293335184314680907985388900770
919873344791882958329982179102717045608561162384939355475839847932160391769711
792130367292748187198857938725042222437238419032901575775991274593071349373233
659367545339567752660098240996445100645035360858947017945964851735893224443460
674900183719442870704619103345406750317835705772573085624195123245126963381497
083159894781503300812881862410161875719462665992536141605966232878743262309241
619433033606054340949345812412875463287625027344269223893847906872312923951128
391442068460759785042477452411493801927432319799170565311002176233373333861424
618619724181506302987973912219606133555219650281188881684055948289276997790965
403444597240865421566733850444993477672861478332407967899176475421171184275411
171537607882888286548269919901771303496501609153836525496471955584265820197033
934675680485741887208118721981537334942945734569436994482437441909894512423535
501055216933965594437667636298330054825236078009705851563333693738913269148349
168101918120007049361544761244315277858474407892477543702575000914783365324758
624635459998174950660576144346740116023655326860691376804583392406478770390303
072306758512317765365093130426940198771783039107046734876224468924966558871610
688846405582965828579465054487437169785057778651564604058819051637005910378479
176750271436303938178406886969029254071307148533551112583061548108814206995685
075462987569648375553992285401536772067077298948623873357047894729663822163976
994205315421887959203758463715033716567525398985921904426394645421921866478453
292259370760306446564229683484643879203491237814068684919026060530113245735721
724774907523793719706472600664745948616811076717350133166424658825847821016237
392992754180454257037249840546319074274864311250953591007106638098425608500761
534107093656608685199304437430121593512745841112904459328736485395162924726958
372770720843586189053631754553140016419822265316024960861274256879040275724719
555536360085381127342270494534920316269174194284624577584501837732393598950198
371445306818041511565565442694744755249464751363128367268063882629690064163276
883736231342060233677872773901430470578882938843815376562322323911321240240777
976181581451263155747063487847288783922605244873242590306343087549543802048067
432625083816468847278237592745951454794475153829344800098387878716990029608262
549034245874169192341232380433302293710258681200429112126524467099682580158026
025532059106503903638326679599982793263639032113436834399908761894329396169819
944754772601518320780690701160967893181164253186202154794388018207535582476576
977245184274480011206110388397106785766193781937412802082578197617061804741193
364672294188698643152449279239200355619184018485499734314685870970969097146046
006862176332947345352500348559591254598728558093006805886323030530607894128714
532435106542072050100431301308392496569222312252883779541496070283831681820452
655724368574328679824482982559905324809298440745215982624458662057428443631262
114448084018136310644133132758292901287155416644495817367158122912254702709909
600940556680592885519672424081449708718643431278624263432308490931452395363658
204448541043866836433320146112625330076183426683785445926021984452499178166312
434206102498022236382483063747345482466441499700332777091035210043651298062209
898145902384832104260422790516354636982645884392017423646193285941992447554695
375402148972654687154065398377410258587365977751507587824521750060062205698495
559113978635866281830195536771335931613197824416653395981738070077059456606113
346325684937524107177518345579110979971616876462147704007180850097126701432063
460576642351831828300707353895014835259630936936878657974048155019915691044092
310774639137433261324969599112178185264138056238101086906544902744129596969201
675006165697692126395949144229819366589548256997897742602986564121061990426594
171497537642530789960061982468730047791640216745069218023757951305508665310188
832941895347697522518864553862406137720777944064467011935570148777164539589118
435151951657039926465201337850722990891123571978016840074322446866857096804996
839161616843705813704523151709049621529519579040857517826232819103796764605849
325873443228233510283072863110393946833961737991962302324642690693762211851471
703266012886442860815237510124894151373588710654173090799302540108129138297683
923557463400941058999857069346185894228809773138411111010657397082839994150285
089915450568720700953998728604026060344168843733869903814132996080944534111613
483065295550159063317809351862047050935238749308889650507770482179839587984693
669738975127379260345983107861570368843640252205732454677876637761557701634783
908126831074918049680060617600759340599715050999004320101234152504701416142031
581491755568532959699769692317800105214256124206307240997673094691633965118903
391897277700905062042695420111475462424973426452683901906460990641545694537066
568230769282567356749860224334301291311927859891291031957512605295033695386117
956156548103939114891347290122721087047352965425167744215842859993313486191456
057787831521681683563105405416655043531209629093004271558730217132621148381574
123089692057796823180559245104186739736993854453042827290968318620481740770577
091669698509638091469698588997190366112136304118815166995644984898549669135757
340931664696134781422306364885923656805261960303866963929904565741627245237327
905787426041860796197179036635616197802252418762793340829691572944734172226102
207623992517511861473923533988358415653002867161579531133707834052197869678488
970953672678426197062702426186511472220919604791336327601406693549593550595245
587442980338256348726811576515540387377656945334505589970397822261608998179469
428066661115850362423428331726083656449636347714735573068104324935030316945014
832922163636745155080606245284655839597761142094952005621896872776648029219106
013384741030094217762780640558026238879490221769738553416725564528185617777459
853302965049684638468126603901229031439860576031649641662846964486157829624981
768825611036470754391677181452274510809214211644402615585225359646176914879315
801679520172915379083925242146458143641629233277415289393239423774133685734281
674604753539594782890618039694375123331572129119959773577295789496204667857335
366471407935497691932297874896936856550313401349041494626448726746535593420535
832839730762545525063111705360381110519347358693521061425296085989873606153626
750785986697353133984298294098758783174720847014864445159382420194193351935604
073441776186538898770114360505563006262578428803411456842217589536138067942701
308326689042849404121978718022813091201629196342819950467819854151085034508183
893870487248847613091290087699283282643592828512910920111272760812809854382078
660958750467699333862438097213442101426523999151115304569978760554274547865999
132167111860968268574646938768854994906886365574309069951283036069753034640847
091338735417098726936698381245547973572892694854460505870006883995987655205872
099265360745402098236198649262093886682442417657988868217236632064174944399954
984435781516322970282324429783519008557142749783664871447374392611332117062656
616420477510416095785534455056699973433612284589785059363611338625729996319008
387012725302876527136908582105089853291375367618877019823626444901649163815637
720961308356243827532490390132527502524918636625045798608249666690859270290834
458178973543299690156806920071797378503541322220280647077439257222878287510928
379047824261067817365832476964348419482405212177581589235865601003961977881414
327935477511814141267787751094558083471156703030370714187013683060436403617754
958794078147344367837496791136013533306074742166402004530465240331991302439658
915728269302036196444789695122598022534966634558871271129356886783697255847633
823611317375590912008888732612432036430497833689660391984518328790409770337317
417728650997266445762882288800961232561712472536427700561483005794552069074092
879993533974678562443182521377491051266527734877900851920367988265841215058267
153770337977747684309921958298985742445008530546701842021534003864498187077810
512412041774851953720718585043337836721690932980439997616829848857077380406211
561810592139189066590596917626699118453739624353474455867813467874665042996918
784027987626681352382770205794740472470928057707274289259269172001444346341774
941375313337104467726217509623282985741318454039784684489381873356113005698676
335156468819219002123348919505024177618431974708346454829585134704035850063316
225992212889227051344133632983479037484997234832237453542273763591896887378784
223563988630818946145838397023670223443870526751649003204109607458505690728458
940656091439518941398932900595861682214831654676228571429761832634399372417821
348767293664456124000229835982879510732711113570840290490589467345040699072153
402359251314154372910532705563345314207213001350811979470076092953738746033932
600697486406558373815216518105667625560501493012256699947499244499020242274776
992062603021854406753394055268504684401056901374473815439172884357653339161782
284488045019237313429056541252947073763858203789378856287708147921392741501722
319628831840910176606152703952432638026270578010274202289108178798243892520293
542247080943509989467343402632128794439486058444275101575158863085066369594896
247809699050003729357062138628967145922166223352269220744319321463861269115613
864722831668724207199413553258093932333123292195490453075875053272904525859147
062083030993942779467251862025941707424284473991698494790340397066893081682069
110638648584071633437232856649383092738559443494370253721467104564305282935402
085753128049585547790840568620201016513542992466993554808305066939456918117323
539971517945608583618707286806987914349133620108502190919273181939266244147441
135900700658263031257122580394446616710621391037279926176685691309028644994964
061061734315271759857361855005567308369177076092777506603117481942362296814843
042216249152190125423063699523617381405728137829464906967255712843254991424482
677857524624507484419944713435029860992064177983786084451001943018851319583260
879428013552230184628611552245400052057503032786397835442917446574097008829437
207356784061215606837447089424322394630868899991989479080323443025491433810013
200019992846700989750715633219164069534444123332658819753714916869190436729735
246309499268974456777088859963352655599705091544851091142512428712799910223695
415028750132440577733916843491977725057367657634227297266176565255281450354262
165170581921348696328441641405886776904121772990934382386906085204078805598582
282822274729337495778667231268558867774507472839170176450933687015244406107090
836295750220715435665726679045804371534435966137987345604664069559897388443578
744644937624780629513356442494216655179099934248492941127999886428774241001200
554772419373985418721383001825371588840211698153858324579256976921928342218973
771399068305433108461649316108842483094500280977692903400212854182568082482828
855619889675256741937497916288537651831827278976328512322282918906796130997290
703223091184374791695939595372037778478505161413157319489938556054297217945834
578482511544862706819722107232408073391025102307335632314908845497927763814226
061794568630504119438455253043978343526032724893018656539585685689253052461279
867150996663836153872870276661993931605330017107826625535622682169588955852530
381533883168299196037151630804179979008372156764433344598381061988211602135192
136427537194721503129573012093699638414727850196646216260939798116460955896772
091470990499046240468823413238968102044291094667683864122823916710294811531557
439976852534593778496947185236779289677142742737372370156575639465779914598837
842402083351427560602472990372298853293495952552022656610667467179284928115691
758205330657090381284948551999546938146091243806837627636179952206511342941357
628574425455965271270969474857185024013386528929364128400647005570838057604721
283838436442728879552402423350978459057584918473536395059619330763951202695715
251514695219792912915741274292283454796768750581154031749065706451634076921426
924268679150047909683649002709236180879747282296366512791199486886177502256547
655019887620316864262741776414068348443568618506459217135156935589455385859737
565394430921194781424771274840022314658602277383400756065951666102054351940749
456374900140318148718414094971668519719999157342830958608611783122718258945136
215221113819942951975143162027231332904189569909852160054940114477465780428202
811960202509177382479551318595577469727173356936553416368731543378956252053900
319350657877613158863057200512287726380173487037860295624596443138029224427990
772454954533553777075996540795563696869631170367215578621488939492848120921888
398552045513790813064346874549505209185424185951377148880618087425603717858300
199409238260578756880293921137378885836137803119362083285558657497124754213588
017820286678219037277387855500777162706351162171268399522953514663509706864075
871561011388627614258912903383636405004318328637931368882206177675352103457769
372255736465889863961493288792765281089251250485738454393848239572761560314253
841369191878438632783049552701814101145552243591148914836511886191289395489527
246321805441473969394038053830414961328089861906392290487835242184039705242959
499636323296512229458910707883434175627243697313053496467857784142112544530394
058626712049440077525913586747905985237948744174441128362332870550432040084459
422028806753862977221372657512247854708310271795313067971532240419936663694348
642833099529494944390397255396813902201107920293725947139814630704842723012348
814804190126092231706726280512140543314549101534499881941706356743628827773295
543055358224339844316858412281682729027699274642756380417341723670549049053404
147290762768246118544181464869117547951452147990854366694015099877199158657915
350425497444518186220363054484582542362727480720235806497284621437278976288360
518662421910428718071356242826602097279670666007454920876962324109643736431420
289392106108814914911493362100520408359192368281014898645284857669212503001804
342803732024095184497987024133551520057796093101061496572923379011482296139625
417369404355129646374137101527967712479711636465870521278808614895002181901383
916578751868719235817682771271801560337823823520619847007792590568861560694569
375967852329775162481230694002104226809119484478764698913901394921343172667054
149829305973950285795724128163555388602884673354853244633710606912482774393474
635324349634290937785005392984601756808678822446199792801838857016904987193453
419254060575981149087663046844434872039736306244159577716845365364061520211299
915834657256018837771650714528692357031197147377778220501716212519510460487648
080332845993548381960624456621842555160464389412312550724082572345832553263442
664162272554812929909214952451314259201481234396140370182649779241443527726615
052166739897416384828134056607152375115200081334117747611267206167619588805970
515337197550500487271153904308010350261388111535167446117422963565583376364321
049907254880658258438924775870277529924621072599162973998350116715597401945933
475504005037869835022149937231717444249401016788996940488440020808140772634258
086575432118784526940215665124272885265975801856297293448372326296485899986165
283718259386142911582861181005811501871576766886030787769869029383185540677325
941308229299089284242469424771241089342258065734679321835734062249581318106627
204706701394395623975178169680875817572245761479145607525020914996553934824881
806362461491805907773570038065623113884359911085699986439678828711887705541507
982885820281400160194401255253892570256334944148473185551813129217713120002604
109144819376126753579022202173675728079905408502986173117554613891366788807054
557172651040826975974064596109473234983332970759057823402556393471033881107016
786782001769254394222230853693403583443749422965224178237653950023198770228363
092403002141668031853376277431169831845668380887470789988419385242122152936033
927393917774002249243501706378488232230276682310037289672061619064591465073504
220277471310190628734489150381252396714002324593139164306226200689479345988491
526322166880524510015521425823604989687217931221089733903326234134383253723946
681709392164416211561945750657957687284487977879963060376464544167875265354972
614958529104143375968483189865366438123154492753506951988368485686587314731759
175197545642720592568325498663897991214944833770775770249498602644287708161194
826322283919056576464914830249570283739539316293491515397822231985157153454865
596451520752306437967470368782510774433285949144349829730704136609572179822761
255517161850428666954727763176032572434750938020195220689362782098545282441769
089173832775271194972926778692438538141430523407440504255633564032655434661834
522626730154262376373711109243423655806488308308462346791342347941882145296859
426037433997370813358888052894280252934575297837596241760841778114491498113896
481542256514303228090564152343129509206888559025782020275895968882496327687712
154525909617730670361208953894263097005400248275131060630393357813728469696647
465522938544803538415525439159314780401155209630940954658612351127462025085212
517833018228929666656002803772029195674175173644997453439424891945372464723614
869666683110784193777027294605959152143095403444103307512638297967322293129917
301791448239425341703671568163121616573584549022838356153297424592188770098668
245027377539859548291438556071626028114267259599544456604548838931919673030717
648628752960643707145013936716996997301095533809902176975773861570956681308537
304493830377606042874293791084372877695991715572913141229783479479998242464473
069459923032317010305045103727260812782289568512765070071484697061510178237396
520443915372751763776978301084913567499550094809232298133678128359993071536941
153365038319794307978966745204781816814034948563918091814695108828001243490123
393506007052722326347557246728332869371566825081548055558132862890138643621535
990388409025229482588016177695303490559657213593998892353312545750299733036575
542981874309728658522311426829650414752037385930292841568998633102859051168773
556594384573128089614716810434186473604665967023400470577323047968237262610651
125484260786777760570501646633701041679196567804362105354959420623388767824993
612303165655955866059538733918896356654438421219713996924250158586658385967656
408465745448153886066791260980607149332647368393025006288268062363609740589997
981472728208963107271927512594521315707173542664888863045644343941846377142870
386959272399709517186606679258034987490664112389450920289169300551448023145715
000605094618166342507979326782282163953396584359727902353753036225369109450886
073361553697621462450143325803997071691937947199093586786533504341408949496586
538382006811361768328826059406200027360490009001731257746107817854018097062030
100326875306483781080258074941275791042948529025200030457725262211212438256983
858055308799511219642380336427649468691553874389269196496592637078953327219000
563561780980762912017933686402042960260928362412540513244624181490961866803455
851747110223056550286348232295072627642887091059084053387907578557152171321616
123200190482079028265141258576698629063693526243284558187392502789190905970742
603659490736411528367902218707465492717899023236875005725617200858529616206302
823621207645792112913983630425703992372766335248102245477749109323264398571399
834529482255962043737856329582124971323767731786558760606807100161444796476178
172439792634353534425556206095253839033494611960667320760680732813804883198108
227652920697044000087365493108242728569231827717439702098831721440748418514623
274611671436996314701708765443573338648829127913685289434966130816482642297540
557967143773722210707788614586908532627804131268469116586403555595999176023771
322205535514430158523557328346706426503776332759415452260760371439854888431515
336621578278185091231311666906392357374455801688294015138843030320500389880081
649025872537566694763724568286207856275942904842382839123988056291138900844248
553371440453756615012208536920455728405193858430717660055573391467630087227566
515641702343478913792014920461556741284927606194580135122846100028455564622161
063211587040744341098120395426411919246142928180066385726708794645364432778339
146348340112438358049615784395016755276187031930710905582134739752094679454224
860348250681056720624903037166909512641960361098271226035922385168634973885705
610356382512004200417467591634089684621431894370759450794295072285025823070483
319028496795562888907869209518983189310885682281081910971632878149052191375137
975811569432423312400493149138510940284842670706265058952703837259008116861613
951049239212039262151304890145200476075596567609058747768289392446348535018988
233510148917856186626591316802740051099892155158350368034443634515948409646918
040928216144267901576237920385324505754770168476782985487067580247218127715174
521840755361181487542074634405575181067928169846460844600479244896114036894407
721166931066716075983540725965398991296719601549586334673276190368677136034284
970035935836984042664416023115467218284476105491018866654123048876661931668442
594350851562327800402842083778170624943148369466709924045797928776714720870459
187167422839479109333953152293648774961470760197497533543024379891570744726254
921027131181010022092281683707521517097563667206331476664389613445671363225453
273668768228554126093801636101223361310437605776149313206202220746643308689102
096106433525981984719831937276314267724732190932589680657242578303590505938500
190164250106729341989382394093046176677138061626472326740481546525976148940165
911489208165522982977720701327898693971944872420682227189637551712844911422335
028362573134284187111748209927469752545867397219308674034888329507001482340835
086594951196745942045747557642385225966254136891301873322130086119868452517289
863729264974206899673176512493034907163959951079549215659508896945810752446582
770960056601017511499528474626649238333133834620708582473428781360407639474401
327688142542567677256113730568812682381972023515793009892931032934203228686067
954932009902124304318699277740795297092323543683423967605173186702165169734452
209439068959271963868798936588554091389325584352994743703180848242521810582621
296163838982402970543938215237510484078242688483004539126808476878176406464318
360075811856712154947792182437946298236450739102224347450944451961469705641129
664403427680086957916372029611300384442817660710046784529743815068264946538078
166792158958779394532435811111429597979401053608888893017676334692004961214827
448632990479067689959588780638611633919174881960902310296217604239976868192213
304450912556149977374063167954082425542713164386997526423521131024111267802023
434438355508563485670080437193221258591363025498612342700181833380788022667824
767501091102627397831999354870171491152017157654995069258788846370056288208694
459090938484297684899664495556548258577636125534726219247136262164630844250887
275478336777032876189013829443859045803216366014724557943362153906958759462426
679231501254631462375846671447260578927175269123681246213521009622542105756323
566868903400618051658620856562331915932944694151662777490306748306454226576801
153880818338889486259321988218105946815283785949441769929899136204469156066881
984828615273996913735134651089863061957388355263264046513134784756788852449529
808764446117806159589215481834304953759522578129110176199759161573765390688574
473001341615545119058051559902451560087940763311105451788283452308648296359806
569412688191184495552640481844475279590888529717766934906460760116875178713448
112609398492442489683586441611081105266413100459512511343945531374246311916655
367860661601517726963206262180279415316027263311652450658624003091884934708971
018121572528216568987794741859121834715548400058076548500271785621910829341523
471223935073563768077344025521666357028507797470762741859952222026356648605832
973286700503994728924723279542047638041002584041048239240416229953768066803436
190951722277518028756730448273553126856593494234480399021958704463361611135722
760279431496844843541447656576783894904930283087201048454581038667847063885815
253906030637068386102798550263819528057412818863157715848080285851303207253209
480894940125796532220066101539899014345593994194872442953710116447258576507203
214673519469889678200327641529984487183065025729415727600791051248124244249424
419588813762349612311750278429534613483707272902351282696181640658643699567533
683558558282816065455965370975169972263235297030359132073041829033375319153408
818222768440698536147997000681848627808402228915095092190528869315397363850325
711638147949352565499552787125110377973801181779099927194434395049648741149230
619662523144673375933254313666569872894194938489804295770779785858380632196911
151067940194153548562874980043476579579130025572469942583544254656851020302980
682068640304267409090082023097664120287044804634231783715506629483599823041143
080921588925402533083522915310635967315277195782821886567956548506793286995260
966959670441734133637665937765329960945653792853583645047154376793999555169596
880753317059465933281809342457307480307172212020876856510314205424311523597927
283992350204394232587506515402078166002900928475398492323574742726871024641073
422885771201232919559685437961063778298179767491153669174920719284325615343879
400516308775950518969740566767808807838871842744538418545786228417282300610736
005483539383134681601555987531423745224704211758588891410371067916584773955372
708935616882226712149874791300227531779653851213927952706997405340993145980737
741081519810507828867643210004751444285907436090206919259952590013514439242965
938119693596224835225242986159488057874860953964446064379037124699518143865754
633918385089600962783642868071098447776426027537035870224555683720415471083083
310203106479469005167099708050820199108702786848474304508449597527257472541188
924019441406121475491150479211149989008545899514116912952561369903182557291406
518608503053546934379426502952270111974707507437932990102828671970274530804659
689546785595781196285297859428968346261406279172524206565575749037694803625717
598255414323735097098578763719242558917466550892192235227168095640367036944715
768710448931595353310014979029585682741224336980498693444206909995808494403078
919001514485879984677667225073957439376202038559454801850409870979055428139946
520162722170606457866671098558921844514362842191326961005401079299321793529130
498075431412590988590980215972425761534533273979004526016580475829884560505460
639859133054673451688723278286964042063348217497734675570939560329676231448194
508395609787339059359392887566224589595947059453006718797977462180573857730532
077915708570380030889875546682115249651900834216797283916511342375425209466769
090668759261503385824531356385785550091566255788887631087971774209737293458689
668970514581614262911890121857719940752693761685651811217113077436458066626842
369668055563723221265644397414030062115815558483708381716135224732504107825444
767767404231951680439422904364758861440920732812728183643129321155208098991208
001123628767569075336676209128414706942895822173421595056582713205772887295530
452325245141240439067720416904318346413202340900373834116665572963699931316662
060229050982977411881126714991827409066793152305095963452573267622003361256674
634870005408541604034374669892972516859650294325497727247063477947202115274814
087408933693020270702701649968951534504500586997665298691863082056939807465263
143860067532656818299073013065447467830687570826645695947249261116030228121375
462730798517483564667916358787039409502652695964744367827420526860125861122402
248891351708696205360468494068944499179759641304666761593281389102458497843521
456895752464755309010962875753152117402608536820621746412300583863023564884135
957848012822041099233859672894429712088967758793302288056958069796157901137220
691165436053353555790561322855997626028897013900064898801543329955200364736275
792147635408236950395297834404883324452463053822974422742933724166756136040535
183701626318693999435615791819773848897438766411592468090133013899892854560724
036464818411008999378046631846846567375542161210162815947672297740715906433289
026035349030905587021866861891872928783758310213935560577321953913881029272261
296511887585628446117096461281550803343552636460010406621600695413004828450552
063307273992755950953576521022112963140303625189067733389292369153624146563408
772841552211889223803844685107886094981803659055881222021186210954899034068852
868475597178323067541601963636840454508018143740840391998675344139108918599545
076877780477127841945842175656860272330032315797827247711744816663951980158571
718188310907327938277240444254657835061637794525932299218828834729295119390041
731953365786834029059748014996777938481657117108839204636779534186311908624795
241564743081045750999935926658407468049514300193195435074881169197235060285239
833864279664601972431248173169925612845320357674709533710016908854704120492341
721261897455714843521542310551468111050901239639870886189761430803136617170240
206510181272080183765140357015556690378784841628370017491705580754537984592535
289874003298531546875742260054074691119360598973651094286297210745541062461806
086491489001686883682005501990024304093648603385445124878370510438733570315272
460509011928132986668898751194059103778772672388243750921629211218052242871598
173345774405264492590325401452493773080573825594504925125760215983788840421690
041958262392859097636557477150139304675980984490556799012722509708178922694693
376860902482308812773384073743693782036312426810725999419678578971259804879627
590946984626629779026139725091712247191533983944802214538736697812738761091275
508813253797380400410979656363835635460407853012237467451559044944826862776622
620633015941101346116485304277540799469651676117849395202056029154874823595463
304381212637035104897938756736154375496153476332441474844243678054545204495176
471244635382698728663576775675833212997959381281407238486755445597047948032780
125485391248188362853348719312882356674913574571639892628211486832370649001686
204337625917524125623463982079531601028266209855768716113970471503484952513185
628835545263256929615608823965773022187997631143241258135433349268260017885193
106553924309082643423262984038243556954765498835105804266729616107687754997436
338184107392891587214683637708338925055254088495793256875248020250193535278423
153906911963916137730076312033556839715470433246140975660101477326099050652909
933342098940728207912269898031915460609874756582173448314521679657001168549746
457353915565593680728812038664762915995413057524999177635622554005552002792902
318858545048359620457769283771913890667818728940469355891661719841565649777350
237140054478484849114804718033280657023638259934847222537759339176801344919397
826578095301192427900538534863855987451277396473698586139019921833904953609333
948973133801573885770261867524085864310843924660709464226949266643788830274408
465333380068104693628814714953524215003567863674061539480167854789813287203623
848558301267723814170118289904374172334088383310190460047825611702425829853353
265612008694302303447380748132951237998513463760035032604136663218467472304886
619168392252152215869300839331216919713871139530489888534215064528054472640817
121696175793186613182237289437630654575706637373633783695680716563390463546821
089897791884967376533752853877904339673456964826042418988551864015141583989620
713556007247367066296769540136892690205134561486799630739219668616176533370935
911255378806469149470123186082959362903659207998410962900859630127021087592708
782969826434894664148130564401771041402051723709953084673023457849936539421272
124531494807472023179987922259973004937630232199012041576762688644045432428676
761292145873314547180077610115347001139806152780476258700087604985574343715163
323208224082119557516593828789990526554810509800941007959729863909728926029534
344944408069621810421066597590523418171459654826612304182728012275091428504895
339857141056999679787763140852381540445348243855425222728302657484848672287775
870108291567084112417295259051857579548369137772366215955298142312611528086654
288472213946713702466161614188304951162932853576113289759044937139682740533673
035708344173184213446930588392249548512294790069708488527376381187187483133511
721496238669683983978688139219519783026222168086245798855182512682706689702520
572493052775084321603813596065509552610869718291859570275355443709450920717346
202969438337583890395037441991502116085491007016475237892624190172583659899471
304156817230102736773286011167064127942726392007353785388264630202775848247216
241775638616862767864014217081501159676989347636402736404372139399304914759425
459076734690085926800501747950226119687893510915166131861648596995757966862416
071965715386843345424732312429468104838106593900362861500720131141281243969464
220912005307980166748830629062028250450507716330033116718343771128857488297742
407708552954615644805121691935148500312901569907850336348601736924767348407983
169295125874801561189788883688292814328984742238848592664090207388059919629857
379500262748618097230894647911300810161064899873707408701858170820269020228130
399567740058130126538939971643797136823819088846446132795068251866786854036869
152697471010625020046422778534276665369894160429547384829220423672665400499184
516681115228039176838742649648809588422210741859878335973664151304132044491465
248297069649469735740890598324232055928806335932957903559760848248283382916985
071477080887282067011597798582044284701619683855702479490140012590881932216289
052970828682179737291411976135246129335442968865700832168726477195185614092971
813439671573078899170924826338879480862627048345278043321933890794279568351804
307539403862556087529331223720614140413600739513490305847792834559647225367603
737880504591777470778330018854871745473000921483764673902970490247515069314962
834420644993031073622429445414383949265530767386918984094384739297153436400514
890952277801817028929660101093675718193271272930418524061826989948493605797531
894318214335209496128453375940517325002397449592421547369545391848297362217738
897236304991526518380018815664202080633352060575544814579949340705371469417991
456478343166928699223283646713609523673114686523080034225637912278713449553380
771479242503823191309620822673699805386822568622389016861990684012323425560722
089949703257822520277837761602676547306682893110574146988747397116135029488824
424427278112304228528135581793653474873063398865835335081274442780296865152784
776396108399181018138482579124322888200986705796588103671503999855262536423567
663139284175693543060498235142905822411490053962486341219200071087179683327439
078484726464018137239742786700590610433582548358897040734862139706802362240478
109581325211094704771835219052147388894110312787492937226833915179597934786239
411860775718421679087273320702490842659452550708332835223662664297226381149355
900625219520522423534429138418884391138357452117764722473693743223636540605153
782251033812490770442823950915927216258130807805823225155084291539740520502562
165585001228226645679943796267256769163239081492897185672343047855306929351168
123833936646324878946336879339472477507730738598202935438645732554191604494129
182567505995480354830725130808261238756565457676314553003473595818738428720233
252802114808542437324524119395148003564282717423896646855565669468032166517707
581624395432469898230855060380707254999513122064644931192948172950123555966277
104614362199124858075625177059562226619044444429687417932334747797291983192541
045831660715245706409994546419601873690658957358493700959888121328087507037500
862965435793299927225580218807645894849208531016789604653335689078349612029026
073011265144600519574442752551708265281734826255098784223882388638472196609414
181351356235374360850727774383084603610409985634209999338946720770462339009782
888387346761796352593200545278062470908275015205628950326193207976663181365230
757469836474333456369697603997115767765062874858246592318874145032651608871832
528625611035943907626206971838703498359921351357149457600002146002818505314377
466948879675883221918296286553481466707765235099007072302575919091789851503648
167470124795093411768132179425067907436354891084301679810843372817049822844036
834911153626294869958321431382345526854550016970234613643094574978601098918233
301317682688159011751853804534488228563026258401126157151220976180237298732321
491873671302508221922844696610521778422219790242742301097290128375951954695444
285296569242751531491577187514533349812142361613120770267908536409567133766380
847816355297055838350845440209923950237559461927225268213099704989649571383113
787597515405239013756305039284355423164752751641475514774040176934975084229294
766405527483569973102617115667785545440402173690377509709741842355532443017467
891126410454174973122243266771235586888885530774315182332578792099247787249936
902557176916914946781444692270763115475504980922442318428043510134607475680973
575064538196942524983177032109117237142410785389527337904677174602058954070913
550369950887761035179012584970119489296333835444511859942107891038909797427948
805694717226431673893726038393048049356596057390966304113792807082939642648532
779123373376226075463245973789793382035619104764383204602475221040041678868389
177580942145004303501541195376129797088556451596949876059316517226202947765353
340384778533418304750307575730388862125505566808212946353115873812734743699716
435959100751162561941962170145479298850394882895386878795367025674149008445136
350063499850045761434022622991229684204232929356898457633939363615374528176510
942861123726151325813675267488091015616047349522416702041575585834267160436272
840782755843949688920778370511843420302676240628011949098389724184072632693379
708812601135449175939532878787011750146197998946376537374649333600798673745216
207131371849952990758595502934053279563692419016339094098768586531407500641872
384645295108404136261305215688124046444915495648302887336566228775737059229734
084923168599350109385756581409012809104741023257576398147373942916805055728396
487521944244752257308846444044872515232523976258091344195897852112728497768525
800604401935138344544977962741130492483644674800716272538299375688895003604239
966303140179565733621722806388305520564236979882386485605094724886088801766760
873957023363036071145011474077965385432528488122710891624791354319349060596894
228402407769698538815467620523487601331183317025665127717352698276075343866139
843638376331720832448340298748381697075103786904542003871105392324018291244706
440805358249474638305409035153811480051001800005294075239791409430461388908598
571133724392582785436103948441911763690258733868817814921952941036055409706827
766293547097541209605508122814904366284375424109182592471784954382834047087767
010599541168717653388256324229374281722454134147510586382064095367970196308816
503160443584840999718209091650415162524450267042160624615614627511573267555824
119635829000480913539078593501587012964429700105411079967890760819518871790396
346839758342665218059866254573668134021960716159013284407747112522359491110573
907126611399482982434650633330712142032042684644414181745421009634230424816939
925204886862733328881453504813706285104271644743162001960278956297251634962156
791935329524825751581035035055045821447369118082679743356596149124465389946824
387222658063843004806945071635089113503898450778492976186919142289711170051978
337491338802490899406804185202169513469274519935989253971408394837858314763259
991597034225433176230716409095300704829813195566258343434123634974039026083332
112105671587245952200092505196818897349515373886778209933932858920358018496297
131527690852238103528459367434525818272448577493746906238673261349480622054395
394136408418342309614371626751023486821766985312355720239911300247762347569851
023433569986690857776159333067371693906517272981289685189219940046268287106544
479940001426058120049900690606584714027576916120130035345937952395441034653879
055183255795688815003304164477423285096920589272611493615402845163447282524857
826644222504283460865158147343814274853499237526388842860346573026839182340438
166947333499681166423514681655811865664924973523903736650380067669534824943838
052835600567790862283154167514881260142861051113616158970410650281428350134430
412287977230017724013587975976523372038553358721289724444207063812417343511812
076216070930041462373553242200361406961497541231115499793696994197245012382978
400482867731423242363065518223823494279052161123133047772331250259586414361127
722417390061584382047165120696701151366161574778236312600653396243964216494849
200618590832094933772580974406413569604766640026060395162511591802547665772237
659405540279636098458072536021908192653085943698242282006495064267915159931328
481628800272861707626315355944484813074702122079916741106804859579033440748896
556590277883759623859578764401030955798766841951191738518971655041282559338414
579904507446314250139077492665841717718907196628825688512722720875348048301272
995934051827739891542610861213445633102068238225875307350559500485036075764780
613016508461972907584593839869473703773629443779982638305652308265617722441248
223874954718809278472792059842910184141630364344493442050684067569864613549061
000491020535193319842025288161773067409436746449170001569598890525600074041096
943143296352561082979718332048481162021353053070264357780351586722828493438805
189425948405939423227506554586250843914682923483867943170867176797432827060746
855977812474201582831032909861968675702363462375748170139186124381007074660637
913338268430608817667533467530817015558650440644434273707010733375287845581226
021766239705511630104695875518938284057015658387365818716597443284899839414141
844215946848310047911474847290064906150994243357536386119298881064485535585941
409459370416841916069384696551255770302522478354996755568979915741206000104593
139652973663880608668011093368669865455861624013655785803130634130042065565486
459754215669152078391977751730801810591151294806187345330672743636683347516924
948933688575061318054086654332383795836406164740366530375267924833190886249662
139136189237589214987185258712053469579155568476610413475235892856375745333240
331345896104231612528293849343125287108258942569787176325294658400907014010098
692647089551830735397925804043078594275273999260194005360730614477171300215719
875340283344379148699332639427702938072384176801290255509386652965195288348302
719656613316347029342469054802386840904555146864544353442969211002935469287335
580594253162330504135345441243730679356290951594486527411441001762026150749539
779523450850067140195326700687372683342304951807483713651358549671866675099013
829351728309200638642485984342014228695482705430932134583565849346307176696114
645527408685396309531779809839339467562597483727150015110318725104115044737409
656404094693565178949164702736819227759379694799077728370813738643592423723643
432568999414277671149482737656695972837510170120731021202853085289585580262839
009038589909633411329463088278787461042577068922850898191537791785946970991510
951691571196251071871059641004166660572567197085658059074859369510151513239134
701046753988956130952781573873277268397439036130671226266274315817155149983369
255232611835020702025334380328028447809317987826912290482102307728881699091027
238217624823814141166942609035417856997584043316823744116630923803965016670561
130179842030708619496906015870141452658258605005599198260333820012987567795243
3428285033676









End of the Project Gutenberg EBook of Catalan's Constant [Ramanujan's
Formula], by Greg Fee

*** END OF THIS PROJECT GUTENBERG EBOOK CATALAN'S CONSTANT ***

***** This file should be named 682.txt or 682.zip *****
This and all associated files of various formats will be found in:
        https://www.gutenberg.org/6/8/682/

Produced by Greg Fee

Updated editions will replace the previous one--the old editions
will be renamed.

Creating the works from public domain print editions means that no
one owns a United States copyright in these works, so the Foundation
(and you!) can copy and distribute it in the United States without
permission and without paying copyright royalties.  Special rules,
set forth in the General Terms of Use part of this license, apply to
copying and distributing Project Gutenberg-tm electronic works to
protect the PROJECT GUTENBERG-tm concept and trademark.  Project
Gutenberg is a registered trademark, and may not be used if you
charge for the eBooks, unless you receive specific permission.  If you
do not charge anything for copies of this eBook, complying with the
rules is very easy.  You may use this eBook for nearly any purpose
such as creation of derivative works, reports, performances and
research.  They may be modified and printed and given away--you may do
practically ANYTHING with public domain eBooks.  Redistribution is
subject to the trademark license, especially commercial
redistribution.



*** START: FULL LICENSE ***

THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg-tm mission of promoting the free
distribution of electronic works, by using or distributing this work
(or any other work associated in any way with the phrase "Project
Gutenberg"), you agree to comply with all the terms of the Full Project
Gutenberg-tm License (available with this file or online at
https://gutenberg.org/license).


Section 1.  General Terms of Use and Redistributing Project Gutenberg-tm
electronic works

1.A.  By reading or using any part of this Project Gutenberg-tm
electronic work, you indicate that you have read, understand, agree to
and accept all the terms of this license and intellectual property
(trademark/copyright) agreement.  If you do not agree to abide by all
the terms of this agreement, you must cease using and return or destroy
all copies of Project Gutenberg-tm electronic works in your possession.
If you paid a fee for obtaining a copy of or access to a Project
Gutenberg-tm electronic work and you do not agree to be bound by the
terms of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B.  "Project Gutenberg" is a registered trademark.  It may only be
used on or associated in any way with an electronic work by people who
agree to be bound by the terms of this agreement.  There are a few
things that you can do with most Project Gutenberg-tm electronic works
even without complying with the full terms of this agreement.  See
paragraph 1.C below.  There are a lot of things you can do with Project
Gutenberg-tm electronic works if you follow the terms of this agreement
and help preserve free future access to Project Gutenberg-tm electronic
works.  See paragraph 1.E below.

1.C.  The Project Gutenberg Literary Archive Foundation ("the Foundation"
or PGLAF), owns a compilation copyright in the collection of Project
Gutenberg-tm electronic works.  Nearly all the individual works in the
collection are in the public domain in the United States.  If an
individual work is in the public domain in the United States and you are
located in the United States, we do not claim a right to prevent you from
copying, distributing, performing, displaying or creating derivative
works based on the work as long as all references to Project Gutenberg
are removed.  Of course, we hope that you will support the Project
Gutenberg-tm mission of promoting free access to electronic works by
freely sharing Project Gutenberg-tm works in compliance with the terms of
this agreement for keeping the Project Gutenberg-tm name associated with
the work.  You can easily comply with the terms of this agreement by
keeping this work in the same format with its attached full Project
Gutenberg-tm License when you share it without charge with others.

1.D.  The copyright laws of the place where you are located also govern
what you can do with this work.  Copyright laws in most countries are in
a constant state of change.  If you are outside the United States, check
the laws of your country in addition to the terms of this agreement
before downloading, copying, displaying, performing, distributing or
creating derivative works based on this work or any other Project
Gutenberg-tm work.  The Foundation makes no representations concerning
the copyright status of any work in any country outside the United
States.

1.E.  Unless you have removed all references to Project Gutenberg:

1.E.1.  The following sentence, with active links to, or other immediate
access to, the full Project Gutenberg-tm License must appear prominently
whenever any copy of a Project Gutenberg-tm work (any work on which the
phrase "Project Gutenberg" appears, or with which the phrase "Project
Gutenberg" is associated) is accessed, displayed, performed, viewed,
copied or distributed:

This eBook is for the use of anyone anywhere at no cost and with
almost no restrictions whatsoever.  You may copy it, give it away or
re-use it under the terms of the Project Gutenberg License included
with this eBook or online at www.gutenberg.org

1.E.2.  If an individual Project Gutenberg-tm electronic work is derived
from the public domain (does not contain a notice indicating that it is
posted with permission of the copyright holder), the work can be copied
and distributed to anyone in the United States without paying any fees
or charges.  If you are redistributing or providing access to a work
with the phrase "Project Gutenberg" associated with or appearing on the
work, you must comply either with the requirements of paragraphs 1.E.1
through 1.E.7 or obtain permission for the use of the work and the
Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
1.E.9.

1.E.3.  If an individual Project Gutenberg-tm electronic work is posted
with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
terms imposed by the copyright holder.  Additional terms will be linked
to the Project Gutenberg-tm License for all works posted with the
permission of the copyright holder found at the beginning of this work.

1.E.4.  Do not unlink or detach or remove the full Project Gutenberg-tm
License terms from this work, or any files containing a part of this
work or any other work associated with Project Gutenberg-tm.

1.E.5.  Do not copy, display, perform, distribute or redistribute this
electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1 with
active links or immediate access to the full terms of the Project
Gutenberg-tm License.

1.E.6.  You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form, including any
word processing or hypertext form.  However, if you provide access to or
distribute copies of a Project Gutenberg-tm work in a format other than
"Plain Vanilla ASCII" or other format used in the official version
posted on the official Project Gutenberg-tm web site (www.gutenberg.org),
you must, at no additional cost, fee or expense to the user, provide a
copy, a means of exporting a copy, or a means of obtaining a copy upon
request, of the work in its original "Plain Vanilla ASCII" or other
form.  Any alternate format must include the full Project Gutenberg-tm
License as specified in paragraph 1.E.1.

1.E.7.  Do not charge a fee for access to, viewing, displaying,
performing, copying or distributing any Project Gutenberg-tm works
unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8.  You may charge a reasonable fee for copies of or providing
access to or distributing Project Gutenberg-tm electronic works provided
that

- You pay a royalty fee of 20% of the gross profits you derive from
     the use of Project Gutenberg-tm works calculated using the method
     you already use to calculate your applicable taxes.  The fee is
     owed to the owner of the Project Gutenberg-tm trademark, but he
     has agreed to donate royalties under this paragraph to the
     Project Gutenberg Literary Archive Foundation.  Royalty payments
     must be paid within 60 days following each date on which you
     prepare (or are legally required to prepare) your periodic tax
     returns.  Royalty payments should be clearly marked as such and
     sent to the Project Gutenberg Literary Archive Foundation at the
     address specified in Section 4, "Information about donations to
     the Project Gutenberg Literary Archive Foundation."

- You provide a full refund of any money paid by a user who notifies
     you in writing (or by e-mail) within 30 days of receipt that s/he
     does not agree to the terms of the full Project Gutenberg-tm
     License.  You must require such a user to return or
     destroy all copies of the works possessed in a physical medium
     and discontinue all use of and all access to other copies of
     Project Gutenberg-tm works.

- You provide, in accordance with paragraph 1.F.3, a full refund of any
     money paid for a work or a replacement copy, if a defect in the
     electronic work is discovered and reported to you within 90 days
     of receipt of the work.

- You comply with all other terms of this agreement for free
     distribution of Project Gutenberg-tm works.

1.E.9.  If you wish to charge a fee or distribute a Project Gutenberg-tm
electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
both the Project Gutenberg Literary Archive Foundation and Michael
Hart, the owner of the Project Gutenberg-tm trademark.  Contact the
Foundation as set forth in Section 3 below.

1.F.

1.F.1.  Project Gutenberg volunteers and employees expend considerable
effort to identify, do copyright research on, transcribe and proofread
public domain works in creating the Project Gutenberg-tm
collection.  Despite these efforts, Project Gutenberg-tm electronic
works, and the medium on which they may be stored, may contain
"Defects," such as, but not limited to, incomplete, inaccurate or
corrupt data, transcription errors, a copyright or other intellectual
property infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be read by
your equipment.

1.F.2.  LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
of Replacement or Refund" described in paragraph 1.F.3, the Project
Gutenberg Literary Archive Foundation, the owner of the Project
Gutenberg-tm trademark, and any other party distributing a Project
Gutenberg-tm electronic work under this agreement, disclaim all
liability to you for damages, costs and expenses, including legal
fees.  YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
PROVIDED IN PARAGRAPH F3.  YOU AGREE THAT THE FOUNDATION, THE
TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
DAMAGE.

1.F.3.  LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
defect in this electronic work within 90 days of receiving it, you can
receive a refund of the money (if any) you paid for it by sending a
written explanation to the person you received the work from.  If you
received the work on a physical medium, you must return the medium with
your written explanation.  The person or entity that provided you with
the defective work may elect to provide a replacement copy in lieu of a
refund.  If you received the work electronically, the person or entity
providing it to you may choose to give you a second opportunity to
receive the work electronically in lieu of a refund.  If the second copy
is also defective, you may demand a refund in writing without further
opportunities to fix the problem.

1.F.4.  Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER
WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.

1.F.5.  Some states do not allow disclaimers of certain implied
warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted by
the applicable state law.  The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.

1.F.6.  INDEMNITY - You agree to indemnify and hold the Foundation, the
trademark owner, any agent or employee of the Foundation, anyone
providing copies of Project Gutenberg-tm electronic works in accordance
with this agreement, and any volunteers associated with the production,
promotion and distribution of Project Gutenberg-tm electronic works,
harmless from all liability, costs and expenses, including legal fees,
that arise directly or indirectly from any of the following which you do
or cause to occur: (a) distribution of this or any Project Gutenberg-tm
work, (b) alteration, modification, or additions or deletions to any
Project Gutenberg-tm work, and (c) any Defect you cause.


Section  2.  Information about the Mission of Project Gutenberg-tm

Project Gutenberg-tm is synonymous with the free distribution of
electronic works in formats readable by the widest variety of computers
including obsolete, old, middle-aged and new computers.  It exists
because of the efforts of hundreds of volunteers and donations from
people in all walks of life.

Volunteers and financial support to provide volunteers with the
assistance they need, is critical to reaching Project Gutenberg-tm's
goals and ensuring that the Project Gutenberg-tm collection will
remain freely available for generations to come.  In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a secure
and permanent future for Project Gutenberg-tm and future generations.
To learn more about the Project Gutenberg Literary Archive Foundation
and how your efforts and donations can help, see Sections 3 and 4
and the Foundation web page at https://www.pglaf.org.


Section 3.  Information about the Project Gutenberg Literary Archive
Foundation

The Project Gutenberg Literary Archive Foundation is a non profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service.  The Foundation's EIN or federal tax identification
number is 64-6221541.  Its 501(c)(3) letter is posted at
https://pglaf.org/fundraising.  Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state's laws.

The Foundation's principal office is located at 4557 Melan Dr. S.
Fairbanks, AK, 99712., but its volunteers and employees are scattered
throughout numerous locations.  Its business office is located at
809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
[email protected].  Email contact links and up to date contact
information can be found at the Foundation's web site and official
page at https://pglaf.org

For additional contact information:
     Dr. Gregory B. Newby
     Chief Executive and Director
     [email protected]


Section 4.  Information about Donations to the Project Gutenberg
Literary Archive Foundation

Project Gutenberg-tm depends upon and cannot survive without wide
spread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can be
freely distributed in machine readable form accessible by the widest
array of equipment including outdated equipment.  Many small donations
($1 to $5,000) are particularly important to maintaining tax exempt
status with the IRS.

The Foundation is committed to complying with the laws regulating
charities and charitable donations in all 50 states of the United
States.  Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and keep up
with these requirements.  We do not solicit donations in locations
where we have not received written confirmation of compliance.  To
SEND DONATIONS or determine the status of compliance for any
particular state visit https://pglaf.org

While we cannot and do not solicit contributions from states where we
have not met the solicitation requirements, we know of no prohibition
against accepting unsolicited donations from donors in such states who
approach us with offers to donate.

International donations are gratefully accepted, but we cannot make
any statements concerning tax treatment of donations received from
outside the United States.  U.S. laws alone swamp our small staff.

Please check the Project Gutenberg Web pages for current donation
methods and addresses.  Donations are accepted in a number of other
ways including including checks, online payments and credit card
donations.  To donate, please visit: https://pglaf.org/donate


Section 5.  General Information About Project Gutenberg-tm electronic
works.

Professor Michael S. Hart was the originator of the Project Gutenberg-tm
concept of a library of electronic works that could be freely shared
with anyone.  For thirty years, he produced and distributed Project
Gutenberg-tm eBooks with only a loose network of volunteer support.


Project Gutenberg-tm eBooks are often created from several printed
editions, all of which are confirmed as Public Domain in the U.S.
unless a copyright notice is included.  Thus, we do not necessarily
keep eBooks in compliance with any particular paper edition.


Most people start at our Web site which has the main PG search facility:

     https://www.gutenberg.org

This Web site includes information about Project Gutenberg-tm,
including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how to
subscribe to our email newsletter to hear about new eBooks.