PI
Created | Updated Apr 24, 2002
PI=
3.1415....
926535897932384626433832795028841971693993751058209749445923078
164062862089986280348253421170679821480865132823066470938446095
505822317253594081284811174502841027019385211055596446229489549
303819644288109756659334461284756482337867831652712019091456485
669234603486104543266482133936072602491412737245870066063155881
748815209209628292540917153643678925903600113305305488204665213
841469519415116094330572703657595919530921861173819326117931051
185480744623799627495673518857527248912279381830119491298336733
624406566430860213949463952247371907021798609437027705392171762
931767523846748184676694051320005681271452635608277857713427577
896091736371787214684409012249534301465495853710507922796892589
235420199561121290219608640344181598136297747713099605187072113
499999983729780499510597317328160963185950244594553469083026425
223082533446850352619311881710100031378387528865875332083814206
171776691473035982534904287554687311595628638823537875937519577
818577805321712268066130019278766111959092164201989380952572010
654858632788659361533818279682303019520353018529689957736225994
138912497217752834791315155748572424541506959508295331168617278
558890750983817546374649393192550604009277016711390098488240128
583616035637076601047101819429555961989467678374494482553797747
268471040475346462080466842590694912933136770289891521047521620
569660240580381501935112533824300355876402474964732639141992726
042699227967823547816360093417216412199245863150302861829745557
067498385054945885869269956909272107975093029553211653449872027
559602364806654991198818347977535663698074265425278625518184175
746728909777727938000816470600161452491921732172147723501414419
735685481613611573525521334757418494684385233239073941433345477
624168625189835694855620992192221842725502542568876717904946016
534668049886272327917860857843838279679766814541009538837863609
506800642251252051173929848960841284886269456042419652850222106
611863067442786220391949450471237137869609563643719172874677646
575739624138908658326459958133904780275900994657640789512694683
983525957098258226205224894077267194782684826014769909026401363
944374553050682034962524517493996514314298091906592509372216964
615157098583874105978859597729754989301617539284681382686838689
427741559918559252459539594310499725246808459872736446958486538
367362226260991246080512438843904512441365497627807977156914359
977001296160894416948685558484063534220722258284886481584560285
060168427394522674676788952521385225499546667278239864565961163
548862305774564980355936345681743241125150760694794510965960940
252288797108931456691368672287489405601015033086179286809208747
609178249385890097149096759852613655497818931297848216829989487
226588048575640142704775551323796414515237462343645428584447952
658678210511413547357395231134271661021359695362314429524849371
871101457654035902799344037420073105785390621983874478084784896
833214457138687519435064302184531910484810053706146806749192781
911979399520614196634287544406437451237181921799983910159195618
146751426912397489409071864942319615679452080951465502252316038
819301420937621378559566389377870830390697920773467221825625996
615014215030680384477345492026054146659252014974428507325186660
021324340881907104863317346496514539057962685610055081066587969
981635747363840525714591028970641401109712062804390397595156771
577004203378699360072305587631763594218731251471205329281918261
861258673215791984148488291644706095752706957220917567116722910
981690915280173506712748583222871835209353965725121083579151369
882091444210067510334671103141267111369908658516398315019701651
511685171437657618351556508849099898599823873455283316355076479
185358932261854896321329330898570642046752590709154814165498594
616371802709819943099244889575712828905923233260972997120844335
732654893823911932597463667305836041428138830320382490375898524
374417029132765618093773444030707469211201913020330380197621101
100449293215160842444859637669838952286847831235526582131449576
857262433441893039686426243410773226978028073189154411010446823
252716201052652272111660396665573092547110557853763466820653109
896526918620564769312570586356620185581007293606598764861179104
533488503461136576867532494416680396265797877185560845529654126
654085306143444318586769751456614068007002378776591344017127494
704205622305389945613140711270004078547332699390814546646458807
972708266830634328587856983052358089330657574067954571637752542
021149557615814002501262285941302164715509792592309907965473761
255176567513575178296664547791745011299614890304639947132962107
340437518957359614589019389713111790429782856475032031986915140
287080859904801094121472213179476477726224142548545403321571853
061422881375850430633217518297986622371721591607716692547487389
866549494501146540628433663937900397692656721463853067360965712
091807638327166416274888800786925602902284721040317211860820419
000422966171196377921337575114959501566049631862947265473642523
081770367515906735023507283540567040386743513622224771589150495
309844489333096340878076932599397805419341447377441842631298608
099888687413260472156951623965864573021631598193195167353812974
167729478672422924654366800980676928238280689964004824354037014
163149658979409243237896907069779422362508221688957383798623001
593776471651228935786015881617557829735233446042815126272037343
146531977774160319906655418763979293344195215413418994854447345
673831624993419131814809277771038638773431772075456545322077709
212019051660962804909263601975988281613323166636528619326686336
062735676303544776280350450777235547105859548702790814356240145
171806246436267945612753181340783303362542327839449753824372058
353114771199260638133467768796959703098339130771098704085913374
641442822772634659470474587847787201927715280731767907707157213
444730605700733492436931138350493163128404251219256517980694113
528013147013047816437885185290928545201165839341965621349143415
956258658655705526904965209858033850722426482939728584783163057
777560688876446248246857926039535277348030480290058760758251047
470916439613626760449256274204208320856611906254543372131535958
450687724602901618766795240616342522577195429162991930645537799
140373404328752628889639958794757291746426357455254079091451357
111369410911939325191076020825202618798531887705842972591677813
149699009019211697173727847684726860849003377024242916513005005
168323364350389517029893922334517220138128069650117844087451960
121228599371623130171144484640903890644954440061986907548516026
327505298349187407866808818338510228334508504860825039302133219
715518430635455007668282949304137765527939751754613953984683393
638304746119966538581538420568533862186725233402830871123282789
212507712629463229563989898935821167456270102183564622013496715
188190973038119800497340723961036854066431939509790190699639552
453005450580685501956730229219139339185680344903982059551002263
535361920419947455385938102343955449597783779023742161727111723
643435439478221818528624085140066604433258885698670543154706965
747458550332323342107301545940516553790686627333799585115625784
322988273723198987571415957811196358330059408730681216028764962
867446047746491599505497374256269010490377819868359381465741268
049256487985561453723478673303904688383436346553794986419270563
872931748723320837601123029911367938627089438799362016295154133
714248928307220126901475466847653576164773794675200490757155527
819653621323926406160136358155907422020203187277605277219005561
484255518792530343513984425322341576233610642506390497500865627
109535919465897514131034822769306247435363256916078154781811528
436679570611086153315044521274739245449454236828860613408414863
776700961207151249140430272538607648236341433462351897576645216
413767969031495019108575984423919862916421939949072362346468441
173940326591840443780513338945257423995082965912285085558215725
031071257012668302402929525220118726767562204154205161841634847
565169998116141010029960783869092916030288400269104140792886215
078424516709087000699282120660418371806535567252532567532861291
042487761825829765157959847035622262934860034158722980534989650
226291748788202734209222245339856264766914905562842503912757710
284027998066365825488926488025456610172967026640765590429099456
815065265305371829412703369313785178609040708667114965583434347
693385781711386455873678123014587687126603489139095620099393610
310291616152881384379099042317473363948045759314931405297634757
481193567091101377517210080315590248530906692037671922033229094
334676851422144773793937517034436619910403375111735471918550464
490263655128162288244625759163330391072253837421821408835086573
917715096828874782656995995744906617583441375223970968340800535
598491754173818839994469748676265516582765848358845314277568790
029095170283529716344562129640435231176006651012412006597558512
761785838292041974844236080071930457618932349229279650198751872
127267507981255470958904556357921221033346697499235630254947802
490114195212382815309114079073860251522742995818072471625916685
451333123948049470791191532673430282441860414263639548000448002
670496248201792896476697583183271314251702969234889627668440323
260927524960357996469256504936818360900323809293459588970695365
349406034021665443755890045632882250545255640564482465151875471
196218443965825337543885690941130315095261793780029741207665147
939425902989695946995565761218656196733786236256125216320862869
222103274889218654364802296780705765615144632046927906821207388
377814233562823608963208068222468012248261177185896381409183903
673672220888321513755600372798394004152970028783076670944474560
134556417254370906979396122571429894671543578468788614445812314
593571984922528471605049221242470141214780573455105008019086996
033027634787081081754501193071412233908663938339529425786905076
431006383519834389341596131854347546495569781038293097164651438
407007073604112373599843452251610507027056235266012764848308407
611830130527932054274628654036036745328651057065874882256981579
367897669742205750596834408697350201410206723585020072452256326
513410559240190274216248439140359989535394590944070469120914093
870012645600162374288021092764579310657922955249887275846101264
836999892256959688159205600101655256375678566722796619885782794
848855834397518744545512965634434803966420557982936804352202770
984294232533022576341807039476994159791594530069752148293366555
661567873640053666564165473217043903521329543529169414599041608
753201868379370234888689479151071637852902345292440773659495630
510074210871426134974595615138498713757047101787957310422969066
670214498637464595280824369445789772330048764765241339075920434
019634039114732023380715095222010682563427471646024335440051521
266932493419673977041595683753555166730273900749729736354964533
288869844061196496162773449518273695588220757355176651589855190
986665393549481068873206859907540792342402300925900701731960362
254756478940647548346647760411463233905651343306844953979070903
023460461470961696886885014083470405460742958699138296682468185
710318879065287036650832431974404771855678934823089431068287027
228097362480939962706074726455399253994428081137369433887294063
079261595995462624629707062594845569034711972996409089418059534
393251236235508134949004364278527138315912568989295196427287573
946914272534366941532361004537304881985517065941217352462589548
730167600298865925786628561249665523533829428785425340483083307
016537228563559152534784459818313411290019992059813522051173365
856407826484942764411376393866924803118364453698589175442647399
882284621844900877769776312795722672655562596282542765318300134
070922334365779160128093179401718598599933849235495640057099558
561134980252499066984233017350358044081168552653117099570899427
328709258487894436460050410892266917835258707859512983441729535
195378855345737426085902908176515578039059464087350612322611200
937310804854852635722825768203416050484662775045003126200800799
804925485346941469775164932709504934639382432227188515974054702
148289711177792376122578873477188196825462981268685817050740272
550263329044976277894423621674119186269439650671515779586756482
399391760426017633870454990176143641204692182370764887834196896
861181558158736062938603810171215855272668300823834046564758804
051380801633638874216371406435495561868964112282140753302655100
424104896783528588290243670904887118190909494533144218287661810
310073547705498159680772009474696134360928614849417850171807793
068108546900094458995279424398139213505586422196483491512639012
803832001097738680662877923971801461343244572640097374257007359
210031541508936793008169980536520276007277496745840028362405346
037263416554259027601834840306811381855105979705664007509426087
885735796037324514146786703688098806097164258497595138069309449
401515422221943291302173912538355915031003330325111749156969174
502714943315155885403922164097229101129035521815762823283182342
548326111912800928252561902052630163911477247331485739107775874
425387611746578671169414776421441111263583553871361011023267987
756410246824032264834641766369806637857681349204530224081972785
647198396308781543221166912246415911776732253264335686146186545
222681268872684459684424161078540167681420808850280054143613146
230821025941737562389942075713627516745731891894562835257044133
543758575342698699472547031656613991999682628247270641336222178
923903176085428943733935618891651250424404008952719837873864805
847268954624388234375178852014395600571048119498842390606136957
342315590796703461491434478863604103182350736502778590897578272
731305048893989009923913503373250855982655867089242612429473670
193907727130706869170926462548423240748550366080136046689511840
093668609546325002145852930950000907151058236267293264537382104
938724996699339424685516483261134146110680267446637334375340764
294026682973865220935701626384648528514903629320199199688285171
839536691345222444708045923966028171565515656661113598231122506
289058549145097157553900243931535190902107119457300243880176615
035270862602537881797519478061013715004489917210022201335013106
016391541589578037117792775225978742891917915522417189585361680
594741234193398420218745649256443462392531953135103311476394911
995072858430658361935369329699289837914941939406085724863968836
903265564364216644257607914710869984315733749648835292769328220
762947282381537409961545598798259891093717126218283025848112389
011968221429457667580718653806506487026133892822994972574530332
838963818439447707794022843598834100358385423897354243956475556
840952248445541392394100016207693636846776413017819659379971557
468541946334893748439129742391433659360410035234377706588867781
139498616478747140793263858738624732889645643598774667638479466
504074111825658378878454858148962961273998413442726086061872455
452360643153710112746809778704464094758280348769758948328241239
292960582948619196670918958089833201210318430340128495116203534
280144127617285830243559830032042024512072872535581195840149180
969253395075778400067465526031446167050827682772223534191102634
163157147406123850425845988419907611287258059113935689601431668
283176323567325417073420817332230462987992804908514094790368878
687894930546955703072619009502076433493359106024545086453628935
456862958531315337183868265617862273637169757741830239860065914
816164049449650117321313895747062088474802365371031150898427992
754426853277974311395143574172219759799359685252285745263796289
612691572357986620573408375766873884266405990993505000813375432
454635967504844235284874701443545419576258473564216198134073468
541117668831186544893776979566517279662326714810338643913751865
946730024434500544995399742372328712494834706044063471606325830
649829795510109541836235030309453097335834462839476304775645015
008507578949548931393944899216125525597701436858943585877526379
625597081677643800125436502371412783467926101995585224717220177
723700417808419423948725406801556035998390548985723546745642390
585850216719031395262944554391316631345308939062046784387785054
239390524731362012947691874975191011472315289326772533918146607
300089027768963114810902209724520759167297007850580717186381054
967973100167870850694207092232908070383263453452038027860990556
900134137182368370991949516489600755049341267876436746384902063
964019766685592335654639138363185745698147196210841080961884605
456039038455343729141446513474940784884423772175154334260306698
831768331001133108690421939031080143784334151370924353013677631
084913516156422698475074303297167469640666531527035325467112667
522460551199581831963763707617991919203579582007595605302346267
757943936307463056901080114942714100939136913810725813781357894
005599500183542511841721360557275221035268037357265279224173736
057511278872181908449006178013889710770822931002797665935838758
909395688148560263224393726562472776037890814458837855019702843
779362407825052704875816470324581290878395232453237896029841669
225489649715606981192186584926770403956481278102179913217416305
810554598801300484562997651121241536374515005635070127815926714
241342103301566165356024733807843028655257222753049998837015348
793008062601809623815161366903341111386538510919367393835229345
888322550887064507539473952043968079067086806445096986548801682
874343786126453815834280753061845485903798217994599681154419742
536344399602902510015888272164745006820704193761584547123183460
072629339550548239557137256840232268213012476794522644820910235
647752723082081063518899152692889108455571126603965034397896278
250016110153235160519655904211844949907789992007329476905868577
878720982901352956613978884860509786085957017731298155314951681
467176959760994210036183559138777817698458758104466283998806006
162298486169353373865787735983361613384133853684211978938900185
295691967804554482858483701170967212535338758621582310133103877
668272115726949518179589754693992642197915523385766231676275475
703546994148929041301863861194391962838870543677743224276809132
365449485366768000001065262485473055861598999140170769838548318
875014293890899506854530765116803337322265175662207526951791442
252808165171667766727930354851542040238174608923283917032754257
508676551178593950027933895920576682789677644531840404185540104
351348389531201326378369283580827193783126549617459970567450718
332065034556644034490453627560011250184335607361222765949278393
706478426456763388188075656121689605041611390390639601620221536
849410926053876887148379895599991120991646464411918568277004574
243434021672276445589330127781586869525069499364610175685060167
145354315814801054588605645501332037586454858403240298717093480
910556211671546848477803944756979804263180991756422809873998766
973237695737015808068229045992123661689025962730430679316531149
401764737693873514093361833216142802149763399189835484875625298
752423873077559555955465196394401821840998412489826236737714672
260616336432964063357281070788758164043814850188411431885988276
944901193212968271588841338694346828590066640806314077757725705
630729400492940302420498416565479736705485580445865720227637840
466823379852827105784319753541795011347273625774080213476826045
022851579795797647467022840999561601569108903845824502679265942
055503958792298185264800706837650418365620945554346135134152570
065974881916341359556719649654032187271602648593049039787489589
066127250794828276938953521753621850796297785146188432719223223
810158744450528665238022532843891375273845892384422535472653098
171578447834215822327020690287232330053862163479885094695472004
795231120150432932266282727632177908840087861480221475376578105
819702226309717495072127248479478169572961423658595782090830733
233560348465318730293026659645013718375428897557971449924654038
681799213893469244741985097334626793321072686870768062639919361
965044099542167627840914669856925715074315740793805323925239477
557441591845821562518192155233709607483329234921034514626437449
805596103307994145347784574699992128599999399612281615219314888
769388022281083001986016549416542616968586788372609587745676182
507275992950893180521872924610867639958916145855058397274209809
097817293239301067663868240401113040247007350857828724627134946
368531815469690466968693925472519413992914652423857762550047485
295476814795467007050347999588867695016124972282040303995463278
830695976249361510102436555352230690612949388599015734661023712
235478911292547696176005047974928060721268039226911027772261025
441492215765045081206771735712027180242968106203776578837166909
109418074487814049075517820385653909910477594141321543284406250
301802757169650820964273484146957263978842560084531214065935809
041271135920041975985136254796160632288736181367373244506079244
117639975974619383584574915988097667447093006546342423460634237
474666080431701260052055928493695941434081468529815053947178900
451835755154125223590590687264878635752541911288877371766374860
276606349603536794702692322971868327717393236192007774522126247
518698334951510198642698878471719396649769070825217423365662725
928440620430214113719922785269984698847702323823840055655517889
087661360130477098438611687052310553149162517283732728676007248
172987637569816335415074608838663640693470437206688651275688266
149730788657015685016918647488541679154596507234287730699853713
904300266530783987763850323818215535597323530686043010675760838
908627049841888595138091030423595782495143988590113185835840667
472370297149785084145853085781339156270760356390763947311455495
832266945702494139831634332378975955680856836297253867913275055
542524491943589128405045226953812179131914513500993846311774017
971512283785460116035955402864405902496466930707769055481028850
208085800878115773817191741776017330738554758006056014337743299
012728677253043182519757916792969965041460706645712588834697979
642931622965520168797300035646304579308840327480771811555330909
887025505207680463034608658165394876951960044084820659673794731
680864156456505300498816164905788311543454850526600698230931577
765003780704661264706021457505793270962047825615247145918965223
608396645624105195510522357239739512881816405978591427914816542
632892004281609136937773722299983327082082969955737727375667615
527113922588055201898876201141680054687365580633471603734291703
907986396522961312801782679717289822936070288069087768660593252
746378405397691848082041021944719713869256084162451123980620113
184541244782050110798760717155683154078865439041210873032402010
685341947230476666721749869868547076781205124736792479193150856
444775379853799732234456122785843296846647513336573692387201464
723679427870042503255589926884349592876124007558756946413705625
140011797133166207153715436006876477318675587148783989081074295
309410605969443158477539700943988394914432353668539209946879645
066533985738887866147629443414010498889931600512076781035886116
602029611936396821349607501116498327856353161451684576956871090
029997698412632665023477167286573785790857466460772283415403114
415294188047825438761770790430001566986776795760909966936075594
965152736349811896413043311662774712338817406037317439705406703
109676765748695358789670031925866259410510533584384656023391796
749267844763708474978333655579007384191473198862713525954625181
043422537299628632674968240580602964211463864368642247248872834
341704415734824818333016405669596688667695634914163284264149745
333499994800026699875888159350735781519588990053951208535103572
613736403436753471410483601754648830040784641674521673719048310
967671134434948192626811107399482506073949507350316901973185211
955263563258433909982249862406703107683184466072912487475403161
796994113973877658998685541703188477886759290260700432126661791
922352093822787888098863359911608192353555704646349113208591897
961327913197564909760001399623444553501434642686046449586247690
943470482932941404111465409239883444351591332010773944111840741
076849810663472410482393582740194493566516108846312567852977697
346843030614624180358529331597345830384554103370109167677637427
621021370135485445092630719011473184857492331816720721372793556
795284439254815609137281284063330393735624200160456645574145881
660521666087387480472433912129558777639069690370788285277538940
524607584962315743691711317613478388271941686066257210368513215
664780014767523103935786068961112599602818393095487090590738613
519145918195102973278755710497290114871718971800469616977700179
139196137914171627070189584692143436967629274591099400600849835
684252019155937037010110497473394938778859894174330317853487076
032219829705797511914405109942358830345463534923498268836240433
272674155403016195056806541809394099820206099941402168909007082
133072308966211977553066591881411915778362729274615618571037217
247100952142369648308641025928874579993223749551912219519034244
523075351338068568073544649951272031744871954039761073080602699
062580760202927314552520780799141842906388443734996814582733720
726639176702011830046481900024130835088465841521489912761065137
415394356572113903285749187690944137020905170314877734616528798
482353382972601361109845148418238081205409961252745808810994869
722161285248974255555160763716750548961730168096138038119143611
439921063800508321409876045993093248510251682944672606661381517
457125597549535802399831469822036133808284993567055755247129027
453977621404931820146580080215665360677655087838043041343105918
046068008345911366408348874080057412725867047922583191274157390
809143831384564241509408491339180968402511639919368532255573389
669537490266209232613188558915808324555719484538756287861288590
041060060737465014026278240273469625282171749415823317492396835
301361786536737606421667781377399510065895288774276626368418306
801908046098498094697636673356622829151323527888061577682781595
886691802389403330764419124034120223163685778603572769415417788
264352381319050280870185750470463129333537572853866058889045831
114507739429352019943219711716422350056440429798920815943071670
198574692738486538334361457946341759225738985880016980147574205
429958012429581054565108310462972829375841611625325625165724980
784920998979906200359365099347215829651741357984910471116607915
874369865412223483418877229294463351786538567319625598520260729
476740726167671455736498121056777168934849176607717052771876011
999081441130586455779105256843048114402619384023224709392498029
335507318458903553971330884461741079591625117148648744686112476
054286734367090466784686702740918810142497111496578177242793470
702166882956108777944050484375284433751088282647719785400065097
040330218625561473321177711744133502816088403517814525419643203
095760186946490886815452856213469883554445602495566684366029221
951248309106053772019802183101032704178386654471812603971906884
623708575180800353270471856594994761242481109992886791589690495
639476246084240659309486215076903149870206735338483495508363660
178487710608098042692471324100094640143736032656451845667924566
695510015022983307984960799498824970617236744936122622296179081
431141466094123415935930958540791390872083227335495720807571651
718765994498569379562387555161757543809178052802946420044721539
628074636021132942559160025707356281263873310600589106524570802
447493754318414940148211999627645310680066311838237616396631809
314446712986155275982014514102756006892975024630401735148919457
636078935285550531733141645705049964438909363084387448478396168
405184527328840323452024705685164657164771393237755172947951261
323982296023945485797545865174587877133181387529598094121742273
003522965080891777050682592488223221549380483714547816472139768
209633205083056479204820859204754998573203888763916019952409189
389455767687497308569559580106595265030362661597506622250840674
288982659075106375635699682115109496697445805472886936310203678
232501823237084597901115484720876182124778132663304120762165873
129708112307581598212486398072124078688781145016558251361789030
708608701989758898074566439551574153631931919810705753366337380
382721527988493503974800158905194208797113080512339332219034662
499171691509485414018710603546037946433790058909577211808044657
439628061867178610171567409676620802957665770512912099079443046
328929473061595104309022214393718495606340561893425130572682914
657832933405246350289291754708725648426003496296116541382300773
133272983050016025672401418515204189070115428857992081219844931
569990591820118197335001261877280368124819958770702075324063612
593134385955425477819611429351635612234966615226147353996740515
849986035529533292457523888101362023476246690558164389678630976
273655047243486430712184943734853006063876445662721866617012381
277156213797461498613287441177145524447089971445228856629424402
301847912054784985745216346964489738920624019435183100882834802
492490854030778638751659113028739587870981007727182718745290139
728366148421428717055317965430765045343246005363614726181809699
769334862640774351999286863238350887566835950972655748154319401
955768504372480010204137498318722596773871549583997184449072791
419658459300839426370208756353982169620553248032122674989114026
785285996734052420310917978999057188219493913207534317079800237
365909853755202389116434671855829068537118979526262344924833924
963424497146568465912489185566295893299090352392333336474352037
077010108438800329075983421701855422838616172104176030116459187
805393674474720599850235828918336929223373239994804371084196594
731626548257480994825099918330069765693671596893644933488647442
135008407006608835972350395323401795825570360169369909886711321
097988970705172807558551912699306730992507040702455685077867906
947661262980822516331363995211709845280926303759224267425755998
928927837047444521893632034894155210445972618838003006776179313
813991620580627016510244588692476492468919246121253102757313908
404700071435613623169923716948481325542009145304103713545329662
063921054798243921251725401323149027405858920632175894943454890
684639931375709103463327141531622328055229729795380188016285907
357295541627886764982741861642187898857410716490691918511628152
854867941736389066538857642291583425006736124538491606741373401
735727799563410433268835695078149313780073623541800706191802673
285511919426760912210359874692411728374931261633950012395992405
084543756985079570462226646190001035004901830341535458428337643
781119885563187777925372011667185395418359844383052037628194407
615941068207169703022851522505731260930468984234331527321313612
165828080752126315477306044237747535059522871744026663891488171
730864361113890694202790881431194487994171540421034121908470940
802540239329429454938786402305129271190975135360009219711054120
966831115163287054230284700731206580326264171161659576132723515
666625366727189985341998952368848309993027574199164638414270779
887088742292770538912271724863220288984251252872178260305009945
108247835729056919885554678860794628053712270424665431921452817
607414824038278358297193010178883456741678113989547504483393146
896307633966572267270433932167454218245570625247972199786685427
989779923395790575818906225254735822052364248507834071101449804
787266919901864388229323053823185597328697809222535295910173414
073348847610055640182423921926950620831838145469839236646136398
910121021770959767049083050818547041946643713122996923588953849
301363565761861060622287055994233716310212784574464639897381885
667462608794820186474876727272220626764653380998019668836809941
5907577685263986514625333631245053640261056960551318381317426118442018908885319635698696279503673842431301133175330532980201668881748134298868158557781034323175306478498321062971842518438553442762012823457071698853051832617964117857960888815032960229070561447622091509473903594664691623539680920139457817589108893199211226007392814916948161527384273626429809823406320024402449589445612916704950823581248739179964864113348032475777521970893277226234948601504665268143987705161531702669692970492831628550421289814670619533197026950721437823047687528028735412616639170824592517001071418085480063692325946201900227808740985977192180515853214739265325155903541020928466592529991435379182531454529059841581763705892790690989691116438118780943537152133226144362531449012745477269573939348154691631162492887357471882407150399500944673195431619385548520766573882513963916357672315100555603726339486720820780865373494244011579966750736071115935133195919712094896471755302453136477094209463569698222667377520994516845064362382421185353488798939567318780660610788544000550827657030558744854180577889171920788142335113866292966717964346876007704799953788338787034871802184243734211227394025571769081960309201824018842705704609262256417837526526335832424066125331152942345796556950250681001831090041124537901533296615697052237921032570693705109083078947999900499939532215362274847660361367769797856738658467093667958858378879562594646489137665219958828693380183601193236857855855819555604215625088365020332202451376215820461810670519533065306060650105488716724537794283133887163139559690583208341689847606560711834713621812324622725884199028614208728495687963932546428534307530110528571382964370999035694888528519040295604734613113826387889755178856042499874831638280404684861893818959054203988987265069762020199554841265000539442820393012748163815853039643992547020167275932857436666164411096256633730540921951967514832873480895747777527834422109107311135182804603634719818565557295714474768255285786334934285842311874944000322969069775831590385803935352135886007960034209754739229673331064939560181223781285458431760556173386112673478074585067606304822940965304111830667108189303110887172816751957967534718853722930961614320400638132246584111115775835858113501856904781536893813771847281475199835050478129771859908470762197460588742325699582889253504193795826061621184236876851141831606831586799460165205774052942305360178031335726326705479033840125730591233960188013782542192709476733719198728738524805742124892118347087662966720727232565056512933312605950577772754247124164831283298207236175057467387012820957554430596839555568686118839713552208445285264008125202766555767749596962661260456524568408613923826576858338469849977872670655519185446869846947849573462260629421962455708537127277652309895545019303773216664918257815467729200521266714346320963789185232321501897612603437368406719419303774688099929687758244104787812326625318184596045385354383911449677531286426092521153767325886672260404252349108702695809964759580579466397341906401003636190404203311357933654242630356145700901124480089002080147805660371015412232889146572239314507607167064355682743774396578906797268743847307634645167756210309860409271709095128086309029738504452718289274968921210667008164858339553773591913695015316201890888748421079870689911480466927065094076204650277252865072890532854856143316081269300569378541786109696920253886503457718317668688592368148847527649846882194973972970773718718840041432312763650481453112285099002074240925585925292610302106736815434701525234878635164397623586041919412969769040526483234700991115424260127343802208933109668636789869497799400126016422760926082349304118064382913834735467972539926233879158299848645927173405922562074910530853153718291168163721939518870095778818158685046450769934394098743351443162633031724774748689791820923948083314397084067308407958935810896656477585990556376952523265361442478023082681183103773588708924061303133647737101162821461466167940409051861526036009252194721889091810733587196414214447865489952858234394705007983038853886083103571930600277119455802191194289992272235345870756624692617766317885514435021828702668561066500353105021631820601760921798468493686316129372795187307897263735371715025637873357977180818487845886650433582437700414771041493492743845758710715973155943942641257027096512510811554824793940359768118811728247215825010949609662539339538092219559191818855267806214992317276316321833989693807561685591175299845013206712939240414459386239880938124045219148483164621014738918251010909677386906640415897361047643650006807710565671848628149637111883219244566394581449148616550049567698269030891118568798692947051352481609174324301538368470729289898284602223730145265567989862776796809146979837826876431159883210904371561129976652153963546442086919756737000573876497843768628768179249746943842746525631632300555130417422734164645512781278457777245752038654375428282567141288583454443513256205446424101103795546419058116862305964476958705407214198521210673433241075676757581845699069304604752277016700568454396923404171108988899341635058515788735343081552081177207188037910404698306957868547393765643363197978680367187307969392423632144845035477631567025539006542311792015346497792906624150832885839529054263768766896880503331722780018588506973623240389470047189761934734430843744375992503417880797223585913424581314404984770173236169471976571535319775499716278566311904691260918259124989036765417697990362375528652637573376352696934435440047306719886890196814742876779086697968852250163694985673021752313252926537589641517147955953878427849986645630287883196209983049451987439636907068276265748581043911223261879405994155406327013198989570376110532360629867480377915376751158304320849872092028092975264981256916342500052290887264692528466610466539217148208013050229805263783642695973370705392278915351056888393811324975707133102950443034671598944878684711643832805069250776627450012200352620370946602341464899839025258883014867816219677519458316771876275720050543979441245990077115205154619930509838698254284640725554092740313257163264079293418334214709041254253352324802193227707535554679587163835875018159338717423606155117101312352563348582036514614187004920570437201826173319471570086757853933607862273955818579758725874410254207710547536129404746010009409544495966288148691590389907186598056361713769222729076419775517772010427649694961105622059250242021770426962215495872645398922769766031052498085575947163107587013320886146326641259114863388122028444069416948826152957762532501987035987067438046982194205638125583343642194923227593722128905642094308235254408411086454536940496927149400331978286131818618881111840825786592875742638445005994422956858646048103301538891149948693543603022181094346676400002236255057363129462629609619876056425996394613869233083719626595473923462413459779574852464783798079569319865081597767535055391899115133525229873611277918274854200868953965835942196333150286956119201229888988700607999279541118826902307891310760361763477948943203210277335941690865007193280401716384064498787175375678118532132840821657110754952829497493621460821558320568723218557406516109627487437509809223021160998263303391546949464449100451528092508974507489676032409076898365294065792019831526541065813682379198409064571246894847020935776119313998024681340520039478194986620262400890215016616381353838151503773502296607462795291038406868556907015751662419298724448271942933100485482445458071889763300323252582158128032746796200281476243182862217105435289834820827345168018613171959332471107466222850871066611770346535283957762599774467218571581612641114327179434788599089280848669491413909771673690027775850268664654056595039486784111079011610400857274456293842549416759460548711723594642910585090995021495879311219613590831588262068233215615308683373083817327932819698387508708348388046388478441884003184712697454370937329836240287519792080232187874488287284372737801782700805878241074935751488997891173974612932035108143270325140903048746226294234432757126008664250833318768865075642927160552528954492153765175149219636718104943531785838345386525565664065725136357506435323650893679043170259787817719031486796384082881020946149007971513771709906195496964007086766710233004867263147551053723175711432231741141168062286420638890621019235522354671166213749969326932173704310598722503945657492461697826097025335947502091383667377289443869640002811034402608471289900074680776484408871134135250336787731679770937277868216611786534423173226463784769787514433209534000165069213054647689098505020301504488083426184520873053097318949291642532293361243151430657826407028389840984160295030924189712097160164926561341343342229882790992178604267981245728534580133826099587717811310216734025656274400729683406619848067661580502169183372368039902793160642043681207990031626444914619021945822969099212278855394878353830564686488165556229431567312827439082645061162894280350166133669782405177015521962652272545585073864058529983037918035043287670380925216790757120406123759632768567484507915114731344000183257034492090971243580944790046249431345502890068064870429353403743603262582053579011839564908935434510134296961754524957396062149028872893279252069653538639644322538832752249960598697475988232991626354597332444516375533437749292899058117578635555562693742691094711700216541171821975051983178713710605106379555858890556885288798908475091576463907469361988150781468526213325247383765119299015610918977792200870579339646382749068069876916819749236562422608715417610043060890437797667851966189140414492527048088197149880154205778700652159400928977760133075684796699295543365613984773806039436889588764605498387147896848280538470173087111776115966350503997934386933911978988710915654170913308260764740630571141109883938809548143782847452883836807941888434266622207043872288741394780101772139228191199236540551639589347426395382482960903690028835932774585506080131798840716244656399794827578365019551422155133928197822698427863839167971509126241054872570092407004548848569295044811073808799654748156891393538094347455697212891982717702076661360248958146811913361412125878389557735719498631721084439890142394849665925173138817160266326193106536653504147307080441493916936326237376777709585031325599009576273195730864804246770121232702053374266705314244820816813030639737873664248367253983748769098060218278578621651273856351329014890350988327061725893257536399397905572917516009761545904477169226580631511102803843601737474215247608515209901615858231257159073342173657626714239047827958728150509563309280266845893764964977023297364131906098274063353108979246424213458374090116939196425045912881340349881063540088759682005440836438651661788055760895689672753153808194207733259791727843762566118431989102500749182908647514979400316070384554946538594602745244746681231468794344161099333890899263841184742525704457251745932573898956518571657596148126602031079762825416559050604247911401695790033835657486925280074302562341949828646791447632277400552946090394017753633565547193100017543004750471914489984104001586794617924161001645471655133707407395026044276953855383439755054887109978520540117516974758134492607943368954378322117245068734423198987884412854206474280973562580706698310697993526069339213568588139121480735472846322778490808700246777630360555123238665629517885371967303463470122293958160679250915321748903084088651606111901149844341235012464692802880599613428351188471544977127847336176628506216977871774382436256571177945006447771837022199910669502165675764404499794076503799995484500271066598781360380231412683690578319046079276529727769404361302305178708054651154246939526512710105292707030667302444712597393995051462840476743136373997825918454117641332790646063658415292701903027601733947486696034869497654175242930604072700505903950314852292139257559484507886797792525393176515641619716844352436979444735596426063339105512682606159572621703669850647328126672452198906054988028078288142979633669674412480598219214633956574572210229867759974673812606936706913408155941201611596019023775352555630060624798326124988128819293734347686268921923977783391073310658825681377717232831532908252509273304785072497713944833389255208117560845296659055394096556854170600117985729381399825831929367910039184409928657560599359891000296986446097471471847010153128376263114677420914557404181590880006494323785583930853082830547607679952435739163122188605754967383224319565065546085288120190236364471270374863442172725787950342848631294491631847534753143504139209610879605773098720135248407505763719925365047090858251393686346386336804289176710760211115982887553994012007601394703366179371539630613986365549221374159790511908358829009765664730073387931467891318146510931676157582135142486044229244530411316065270097433008849903467540551864067734260358340960860553374736276093565885310976099423834738222208729246449768456057956251676557408841032173134562773585605235823638953203853402484227337163912397321599544082842166663602329654569470357718487344203422770665383738750616921276801576618109542009770836360436111059240911788954033802142652394892968643980892611463541457153519434285072135345301831587562827573389826889852355779929572764522939156747756667605108788764845349363606827805056462281359888587925994094644604170520447004631513797543173718775603981596264750141090665886616218003826698996196558058720863972117699521946678985701179833244060181157565807428418291061519391763005919431443460515404771057005433900018245311773371895585760360718286050635647997900413976180895536366960316219311325022385179167205518065926351803625121457592623836934822266589557699466049193811248660909979812857182349400661555219611220720309227764620099931524427358948871057662389469388944649509396033045434084210246240104872332875008174917987554387938738143989423801176270083719605309438394006375611645856094312951759771393539607432279248922126704580818331376416581826956210587289244774003594700926866265965142205063007859200248829186083974373235384908396432614700053242354064704208949921025040472678105908364400746638002087012666420945718170294675227854007450855237772089058168391844659282941701828823301497155423523591177481862859296760504820386434310877956289292540563894662194826871104282816389397571175778691543016505860296521745958198887868040811032843273986719862130620555985526603640504628215230615459447448990883908199973874745296981077620148713400012253552224669540931521311533791579802697955571050850747387475075806876537644578252443263804614304288923593485296105826938210349800040524840708440356116781717051281337880570564345061611933042444079826037795119854869455915205196009304127100727784930155503889536033826192934379708187432094991415959339636811062755729527800425486306005452383915106899891357882001941178653568214911852820785213012551851849371150342215954224451190020739353962740020811046553020793286725474054365271759589350071633607632161472581540764205302004534018357233829266191530835409512022632916505442612361919705161383935732669376015691442994494374485680977569630312958871916112929468188493633864739274760122696415884890096571708616059814720446742866420876533479985822209061980217321161423041947775499073873856794118982466091309169177227420723336763503267834058630193019324299639720444517928812285447821195353089891012534297552472763573022628138209180743974867145359077863353016082155991131414420509144729353502223081719366350934686585865631485557586244781862010871188976065296989926932817870557643514338206014107732926106343152533718224338526352021773544071528189813769875515757454693972715048846979361950047772097056179391382898984532742622728864710888327017372325881824465843624958059256033810521560620615571329915608489206434030339526226345145428367869828807425142256745180618414956468611163540497189768215422772247947403357152743681940989205011365340012384671429655186734415374161504256325671343024765512521921803578016924032669954174608759240920700466934039651017813485783569444076047023254075555776472845075182689041829396611331016013111907739863246277821902365066037404160672496249013743321724645409741299557052914243820807609836482346597388669134991978401310801558134397919485283043673901248208244481412809544377389832005986490915950532285791457688496257866588599917986752055455809900455646117875524937012455321717019428288461740273664997847550829422802023290122163010230977215156944642790980219082668986883426307160920791408519769523555348865774342527753119724743087304361951139611908003025587838764420608504473063129927788894272918972716989057592524467966018970748296094919064876469370275077386643239191904225429023531892337729316673608699622803255718530891928440380507103006477684786324319100022392978525537237556621364474009676053943983823576460699246526008909062410590421545392790441152958034533450025624410100635953003959886446616959562635187806068851372346270799732723313469397145628554261546765063246567662027924520858134771760852169134094652030767339184114750414016892412131982688156866456148538028753933116023229255561894104299533564009578649534093511526645402441877594931693056044868642086275720117231952640502309977456764783848897346431721598062678767183800524769688408498918508614900343240347674268624595239589035858213500645099817824463608731775437885967767291952611121385919472545140030118050343787527766440276261894101757687268042817662386068047788524288743025914524707395054652513533945959878961977891104189029294381856720507096460626354173294464957661265195349570186001541262396228641389779673332907056737696215649818450684226369036784955597002607986799626101903933126376855696876702929537116252800554310078640872893922571451248113577862766490242516199027747109033593330930494838059785662884478744146984149906712376478958226329490467981208998485716357108783119184863025450162092980582920833481363840542172005612198935366937133673339246441612522319694347120641737549121635700857369439730597970971972666664226743111776217640306868131035189911227133972403688700099686292254646500638528862039380050477827691283560337254825579391298525150682996910775425764748832534141213280062671709400909822352965795799780301828242849022147074811112401860761341515038756983091865278065889668236252393784527263453042041880250844236319038331838455052236799235775292910692504326144695010986108889991465855188187358252816430252093928525807796973762084563748211443398816271003170315133440230952635192958868069082135585368016100021374085115448491268584126869589917414913382057849280069825519574020181810564129725083607035685105533178784082900004155251186577945396331753853209214972052660783126028196116485809868458752512999740409279768317663991465538610893758795221497173172813151793290443112181587102351874075722210012376872194474720934931232410706508061856237252673254073332487575448296757345001932190219911996079798937338367324257610393898534927877747398050808001554476406105352220232540944356771879456543040673589649101761077594836454082348613025471847648518957583667439979150851285802060782055446299172320202822291488695939972997429747115537185892423849385585859540743810488262464878805330427146301194158989632879267832732245610385219701113046658710050008328517731177648973523092666123458887310288351562644602367199664455472760831011878838915114934093934475007302585581475619088139875235781233134227986650352272536717123075686104500454897036007956982762639234410714658489578024140815840522953693749971066559489445924628661996355635065262340533943914211127181069105229002465742360413009369188925586578466846121567955425660541600507127664176605687427420032957716064344860620123982169827172319782681662824993871499544913730205184366907672357740005393266262276032365975171892590180110429038427418550789488743883270306328327996300720069801224436511639408692222074532024462412115580435454206421512158505689615735641431306888344318528085397592773443365538418834030351782294625370201578215737326552318576355409895403323638231921989217117744946940367829618592080340386757583411151882417743914507736638407188048935825686854201164503135763335550944031923672034865101056104987272647213198654343545040913185951314518127643731043897250700498198705217627249406521461995923214231443977654670835171474936798618655279171582408065106379950018429593879915835017158075988378496225739851212981032637937621832245659423668537679911314010804313973233544909082491049914332584329882103398469814171575601082970658306521134707680368069532297199059990445120908727577622535104090239288877942463048328031913271049547859918019696783532146444118926063152661816744319355081708187547705080265402529410921826485821385752668815558411319856002213515888721036569608751506318753300294211868222189377554602722729129050429225978771066787384000061677215463844129237119352182849982435092089180168557279815642185819119749098573057033266764646072875743056537260276898237325974508447964954564803077159815395582777913937360171742299602735310276871944944491793978514463159731443535185049141394155732938204854212350817391254974981930871439661513294204591938010623142177419918406018034794988769105155790555480695387854006645337598186284641990522045280330626369562649091082762711590385699505124652999606285544383833032763859980079292284665950355121124528408751622906026201185777531374794936205549640107300134885315073548735390560290893352640071327473262196031177343394367338575912450814933573691166454128178817145402305475066713651825828489809951213919399563324133655677709800308191027204099714868741813466700609405102146269028044915964654533010775469541308871416531254481306119240782118869005602778182423502269618934435254763357353648561936325441775661398170393063287216690572225974520919291726219984440964615826945638023950283712168644656178523556516412771282691868861557271620147493405227694659571219831494338162211400693630743044417328478610177774383797703723179525543410722344551255558999864618387676490397246116795901810003509892864120419516355110876320426761297982652942588295114127584126273279079880755975185157684126474220947972184330935297266521001566251455299474512763155091763673025946213293019040283795424632325855030109670692272022707486341900543830265068121414213505715417505750863990767394633514620908288893493837643939925690060406731142209331219593620298297235116325938677224147791162957278075239505625158160313335938231150051862689053065836812998810866326327198061127154885879809348791291370749823057592909186293919501472119758606727009254771802575033773079939713453953264619526999659638565491759045833358579910201271320458390320085387888163363768518208372788513117522776960978796214237216254521459128183179821604411131167140691482717098101545778193920231156387195080502467972579249760577262591332855972637121120190572077140914864507409492671803581515757151405039761096384675556929897038354731410022380258346876735012977541327953206097115450648421218593649099791776687477448188287063231551586503289816422828823274686610659273219790716238464215348985247621678905026099804526648392954235728734397768049577409144953839157556548545905897649519851380100795801078375994577529919670054760225255203445398871253878017196071816407812484784725791240782454436168234523957068951427226975043187363326301110305342333582160933319121880660826834142891041517324721605335584999322454873077882290525232423486153152097693846104258284971496347534183756200301491570327968530186863157248840152663983568956363465743532178349319982554211730846774529708583950761645822963032442432823773745051702856069806788952176819815671078163340526675953942492628075696832610749532339053622309080708145591983735537774874202903901814293731152933464446815121294509759653430628421531944572711861490001765055817709530246887526325011970520947615941676872778447200019278913725184162285778379228443908430118112149636642465903363419454065718354477191244662125939265662030688852005559912123536371822692253178145879259375044144893398160865790087616502463519704582889548179375668104647461410514249887025213993687050937230544773411264135489280684105910771667782123833281026218558775131272117934444820144042574508306394473836379390628300897330624138061458941422769474793166571762318247216835067807648757342049155762821758397297513447899069658953254894033561561316740327647246921250575911625152965456854463349811431767025729566184477548746937846423373723898192066204851189437886822480727935202250179654534375727416391079197295295081294292220534771730418447791567399173841831171036252439571615271466900581470000263301045264354786590329073320546833887207873544476264792529769017091200787418373673508771337697768349634425241994995138831507487753743384945825976556099655595431804092017849718468549737069621208852437701385375768141663272241263442398215294164537800049250726276515078908507126599703670872669276430837722968598516912230503746274431085293430527307886528397733524601746352770320593817912539691562106363762588293757137384075440646896478310070458061344673127159119460843593582598778283526653115106504162329532904777217408355934972375855213804830509000964667608830154061282430874064559443185341375522016630581211103345312074508682433943215904359443031243122747138584203039010607094031523555617276799416002039397509989762933532585557562480899669182986422267750236019325797472674257821111973470940235745722227121252685238429587427350156366009318804549333898974157149054418255973808087156528143010267046028431681923039253529779576586241439270154974087927313105163611913757700892956482332364829826302460797587576774537716010249080462430185652416175665560016085912153455626760219268998285537787258314514408265458348440947846317877737479465358016996077940556870119232860804113090462935087182712593466871276669487389982459852778649956916546402945893506496433580982476596516514209098675520380830920323048734270346828875160407154665383461961122301375945157925269674364253192739003603860823645076269882749761872357547676288995075211480485252795084503395857083813047693788132112367428131948795022806632017002246033198967197064916374117585485187848401205484467258885140156272501982171906696081262778548596481836962141072171421498636191877475450965030895709947093433785698167446582826791194061195603784539785583924076127634410576675102430755981455278616781594965706255975507430652108530159790807334373607943286675789053348366955548680391343372015649883422089339997164147974693869690548008919306713805717150585730714881564992071408675825960287605645978242377024246980532805663278704192676846711626687946348695046450742021937394525926266861355294062478136120620263649819999949840514386828525895634226432870766329930489172340072547176418868535137233266787792173834754148002280339299735793615241275582956927683723123479898944627433045456679006203242051639628258844308543830720149567210646053323853720314324211260742448584509458049408182092763914000854042202355626021856434899414543995041098059181794888262805206644108631900168856815516922948620301073889718100770929059048074909242714101893354281842999598816966099383696164438152887721408526808875748829325873580990567075581701794916190611400190855374488272620093668560447559655747648567400817738170330738030547697360978654385938218722058390234444350886749986650604064587434600533182743629617786251808189314436325120510709469081358644051922951293245007883339878842933934243512634336520438581291283434529730865290978330067126179813031679438553572629699874035957045845223085639009891317947594875212639707837594486113945196028675121056163897600888009274611586080020780334159145179707303683519697776607637378533301202412011204698860920933908536577322239241244905153278095095586645947763448226998607481329730263097502881210351772312446509534965369309001863776409409434983731325132186208021480992268550294845466181471555744470966953017769043427203189277060471778452793916047228153437980353967986142437095668322149146543801459382927739339603275404800955223181666738035718393275707714204672383862461780397629237713120958078936384144792980258806552212926209362393063731349664018661951081158347117331202580586672763999276357907806381881306915636627412543125958993611964762610140556350339952314032311381965623632719896183725484533370206256346422395276694356837676136871196292181875457608161705303159072882870071231366630872275491866139577373054606599743781098764980241401124214277366808275139095931340415582626678951084677611866595766016599817808941498575497628438785610026379654317831363402513581416115190209649913354873313111502270068193013592959597164019719605362503355847998096348871803911161281359596856547886832585643789617315976200241962155289629790481982219946226948713746244472909345647002853769495885959160678928249105441251599630078136836749020937491573289627002865682934443134234735123929825916673950342599586897069726733258273590312128874666045146148785034614282776599160809039865257571726308183349444182019353338507129234577437557934406217871133006310600332405399169368260374617663856575887758020122936635327026710068126182517291460820254189288593524449107013820621155382779356529691457650204864328286555793470720963480737269214118689546732276775133569019015372366903686538916129168888787640752549349424973342718117889275993159671935475898809792452526236365903632007085444078454479734829180208204492667063442043755532505052752283377888704080403353192340768563010934777212563908864041310107381785333831603813528082811904083256440184205374679299262203769871801806112262449090924264198582086175117711378905160914038157500336642415609521632819712233502316742260056794128140621721964184270578432895980288233505982820819666624903585778994033315227481777695284368163008853176969478369058067106482808359804669884109813515865490693331952239436328792399053481098783027450017206543369906611778455436468772363184446476806914282800455107468664539280539940910875493916609573161971503316696830992946634914279878084225722069714887558063748030886299511847318712477729191007022758889348693945628951580296537215040960310776128983126358996489341024703603664505868728758905140684123812424738638542790828273382797332688550493587430316027474906312957234974261122151741715313361862241091386950068883589896234927631731647834007746088665559873338211382992877691149549218419208777160606847287467368188616750722101726110383067178785669481294878504894306308616994879870316051588410828235127415353851336589533294862949449506186851477910580469603906937266267038651290520113781085861618888694795760741358553458515176805197333443349523012039577073962377131603024288720053732099825300897761897312981788194467173116064723147624845755192873278282512718244680782421521646956781929409823892628494376024885227900362021938669648221562809360537317804086372726842669642192994681921490870170753336109479138180406328738759384826953558307739576144799727000347288018278528138950321798634521611106660883931405322694490545552786789441757920244002145078019209980446138254780585804844241640477503153605490659143007815837243012313751156228401583864427089071828481675752712384678245953433444962201009607105137060846180118754312072549133499424761711563332140893460915656155060031738421870157022610310191660388706466143889773631878094071152752817468957640158104701696524755774089164456867771715850058326994340167720215676772406812836656526412298243946513319735919970940327593850266955747023181320324371642058614103360652453693916005064495306016126782264894243739716671766123104897503188573216555498834212180284691252908610148552781527762562375045637576949773433684601560772703550962904939248708840628106794362241870474700836884267102255830240359984164595112248527263363264511401739524808619463584078375355688562231711552094722306543709260679735100056554938122457548372854571179739361575616764169289580525729752233855861138832217110736226581621884244317885748879810902665379342666421699091405653643224930133486798815488662866505234699723557473842483059042367714327879231642240387776433019260019228477831383763253612102533693581262408686669973827597736568222790721583247888864236934639616436330873013981421143030600873066616480367898409133592629340230432497492688783164360268101130957071614191283068657732353263965367739031766136131596555358499939860056515592193675997771793301974468814837110320650369319289452140265091546518430993655349333718342529843367991593941746622390038952767381333061774762957494386871697845376721949350659087571191772087547710718993796089477451265475750187119487073873678589020061737332107569330221632062843206567119209695058576117396163232621770894542621460985841023781321581772760222273813349541048100307327510779994899197796388353073444345753297591426376840544226478421606312276964696715647399904371590332390656072664411643860540483884716191210900870101913072607104411414324197679682854788552477947648180295973604943970047959604029274629920357209976195014034831538094771460105633344699882082212058728151072918297121191787642488035467231691654185225672923442918712816323259696541354858957713320833991128877591722611527337901034136208561457799239877832508355073019981845902595835598926055329967377049172245493532968330000223018151722657578752405883224908582128008974790932610076257877042865600699617621217684547899644070506624171021332748679623743022915535820078014116534806564748823061500339206898379476625503654982280532966286211793062843017049240230198571997894883689718304380518217441914766042975243725168343541121703863137941142209529588579806015293875275379903093887168357209576071522190027937929278630363726876582268124199338480816602160372215471014300737753779269906958712128928801905203160128586182549441335382078488346531163265040764242839087012101519423196165226842200371123046430067344206474771802135307012409886035339915266792387110170622186588357378121093517977560442563469499978725112544085452227481091487430725986960204027594117894258128188215995235965897918114407765335432175759525553615812800116384672031934650729680799079396371496177431211940202129757312516525376801735910155733815377200195244454362007184847566341540744232862106099761324348754884743453966598133871746609302053507027195298394327142537115576660002578442303107342955153394506048622276496668762407932435319299263925373107689213535257232108088981933916866827894828117047262450194840970097576092098372409007471797334078814182519584259809624174761013825264395513525931188504563626418830033853965243599741693132289471987830842760040136807470390409723847394583489618653979059411859931035616843686921948538205578039577388136067954990008512325944252972448666676683464140218991594456530942344065066785194841776677947047204195882204329538032631053749488312218039127967844610013972675389219511911783658766252808369005324900459741094706877291232821430463533728351995364827432583311914445901780960778288358373011185754365995898272453192531058811502630754257149394302445393187017992360816661130542625399583389794297160207033876781503301028012009599725222228080142357109476035192554443492998676781789104555906301595380976187592035893734197896235893112598390259831026719330418921510968915622506965911982832345550305908173073519550372166587028805399213857603703537710517802128012956684198414036287272562321442875430221090947272107347413497551419073704331827662617727599688882602722524713368335345281669277959132886138176634985772893690096574956228710302436259077241221909430087175569262575806570991201665962243608024287002454736203639484125595488172727247365346778364720191830399871762703751572464992228946793232269361917764161461879561395669956778306829031658969943076733350823499079062410020250613405734430069574547468217569044165154063658468046369262127421107539904218871612761778701425886482577522388918459952337629237791558574454947736129552595222657863646211837759847370034797140820699414558071908021359073226923310083175951065901912129479540860364075735875020589020870457967000705526250581142066390745921527330940682364944159089100922029668052332526619891131184201629163107689408472356436680818216865721968826835840278550078280404345371018365109695178233574303050485265373807353107418591770561039739506264035544227515610110726177937063472380499066692216197119425912044508464174638358993823994651739550900085947999013602667426149429006646711506717542217703877450767356374215478290591101261915755587023895700140511782264698994491790830179547587676016809410013583761357859135692445564776446417866711539195135769610486492249008344671548638305447791433009768048687834818467273375843689272431044740680768527862558516509208826381323362314873333671476452045087662761495038994950480956046098960432912335834885999029452640028499428087862403981181488476730121675416110662999555366819312328742570206373835202008686369131173346973174121915363324674532563087134730279217495622701468732586789173455837996435135880095935087755635624881049385299900767513551352779241242927748856588856651324730251471021057535251651181485090275047684551825209633189906852761443513821366215236889057878669943228881602837748203550601602989400911971385017987168363374413927597364401700701476370665570350433812111357641501845182141361982349515960106475271257593518530433287553778305750956742544268471221961870917856078393614451138333564910325640573389866717812397223751931643061701385953947436784339267098671245221118969084023632741149660124348309892994173803058841716661307304006758838043211155537944060549772170594282151488616567277124090338772774562909711013488518437411869565544974573684521806698291104505800429988795389902780438359628240942186055628778842880212755388480372864001944161425749990427200959520465417059810498996750451193647117277222043610261407975080968697517660023718774834801612031023468056711264476612374762785219024120256994353471622666089367521983311181351114650385489502512065577263614547360442685949807439693233129712737715734709971395229118265348515558713733662912024271430250376326950135091161295299378586468130722648600827088133353819370368259886789332123832705329762585738279009782646054559855513183668884462826513379849166783940976135376625179825824966345877195012438404035914084920973375464247448817618407002356958017741017769692507781489338667255789856458985105689196092439884156928069698335224022563457049731224526935419383700484318335719651662672157552419340193309901831930919658292096965624766768365964701959575473934551433741370876151732367720422738567427917069820454995309591887243493952409444167899884631984550485239366297207977745281439941825678945779571255242682608994086331737153889626288962940211210888442737656862452761213037101730078513571540453304150795944777614359743780374243664697324713841049212431413890357909241603640631403814983148190525172093710396402680899483257229795456404270175772290417323479607361878788991331830584306939482596131871381642346721873084513387721908697510494284376932502498165667381626061594176825250999374167288395174406693254965340310145222531618900923537648637848288134420987004809622717122640748957193900291857330746010436072919094576799461492929042798168772942648772995285843464777538690695014898413392454039414468026362540211861431703125111757764282991464453340892097696169909837265236176874560589470496817013697490952307208268288789073019001825342580534342170592871393173799314241085264739094828459641809361413847583113613057610846236683723769591349261582451622155213487924414504175684806412063652017038633012953277769902311864802006755690568229501635493199230591424639621702532974757311409422018019936803502649563695586642590676268568737211033915679383989576556519317788300024161353956243777784080174881937309502069990089089932808839743036773659552489130015663329407790713961546453408879151030065132193448667324827590794680787981942501958262232039513125201410996053126069655540424867054998678692302174698900954785072567297879476988883109348746442640071818316033165551153427615562240547447337804924621495213325852769884733626918264917433898782478927846891882805466998230368993978341374758702580571634941356843392939606819206177333179173820856243643363535986349449689078106401967407443658366707158692452118299789380407713750129085864657890577142683358276897855471768718442772612050926648610205153564284063236848180728794071712796682006072755955590404023317874944734645476062818954151213916291844429765106694796935401686601005519607768733539651161493093757096855455938151378956903925101495326562814701199832699220006639287537471313523642158926512620407288771657835840521964605410543544364216656224456504299901025658692727914275293117208279393775132610605288123537345106837293989358087124386938593438917571337630072031976081660446468393772580690923729752348670291691042636926209019960520412102407764819031601408586355842760953708655816427399534934654631450404019952853725200495780525465625115410925243799132626271360909940290226206283675213230506518393405745011209934146491843332364656937172591448932415900624202061288573292613359680872650004562828455757459659212053034131011182750130696150983551563200431078460190656549380654252522916199181995960275232770224985573882489988270746593635576858256051806896428537685077201222034792099393617926820659014216561592530673794456894907085326356819683186177226824991147261573203580764629811624401331673789278868922903259334986179702199498192573961767307583441709855922217017182571277753449150820527843090461946083521740200583867284970941102326695392144546106621500641067474020700918991195137646690448126725369153716229079138540393756007783515337416774794210038400230895185099454877903934612222086506016050035177626483161115332558770507354127924990985937347378708119425305512143697974991495186053592040383023571635272763087469321962219006426088618367610334600225547747781364101269190656968649501268837629690723396127628722304114181361006026404403003599698891994582739762411461374480405969706257676472376606554161857469052722923822827518679915698339074767114610302277660602006124687647772881909679161335401988140275799217416767879923160396356949285151363364721954061117176738737255572852294005436178517650230754469386930787349911035218253292972604455321079788771144989887091151123725060423875373484125708606406905205845212275453384800820530245045651766951857691320004281675805492481178051983264603244579282973012910531838563682120621553128866856495651261389226136706409395333457052698695969235035309422454386527867767302754040270224638448355323991475136344104405009233036127149608135549053153902100229959575658370538126196568314428605795669662215472169562087001372776853696084070483332513279311223250714863020695124539500373572334680709465648308920980153487870563349109236605755405086411152144148143463043727327104502776866195310785832333485784029716092521532609255893265560067212435946425506599677177038844539618163287961446081778927217183690888012677820743010642252463480745430047649288555340906218515365435547412547615276977266776977277705831580141218568801170502836527554321480348800444297999806215790456416195721278450892848980642649742709057912906921780729876947797511244730599140605062994689428093103421641662993561482813099887074529271604843363081840412646963792584309418544221635908457614607855856247381493142707826621518554160387020687698046174740080832434366538235455510944949843109349475994467267366535251766270677219418319197719637801570216993367508376005716345464367177672338758864340564487156696432104128259564534984138841289042068204700761559691684303899934836679354254921032811336318472259230555438305820694167562999201337317548912203723034907268106853445403599356182357631283776764063101312533521214199461186935083317658785204711236433122676512996417132521751355326186768194233879036546890800182713528358488844411176123410117991870923650718485785622102110400977699445312179502247957806950653296594038398736990724079767904082679400761872954783596349279390457697366164340535979221928587057495748169669406233427261973351813662606373598257555249650980726012366828360592834185584802695841377255897088378994291054980033111388460340193916612218669605849157148573356828614950001909759112521880039641976216355937574371801148055944229873041819680808564726571354761283162920044988031540210553059707666636274932830891688093235929008178741198573831719261672883491840242972129043496552694272640255964146352591434840067586769035038232057293413298159353304444649682944136732344215838076169483121933311981906109614295220153617029857510559432646146850545268497576480780800922133581137819774927176854507553832876887447459159373116247060109124460982942484128752022446259447763874949199784044682925736096853454984326653686284448936570411181779380644161653122360021491876876946739840751717630751684985635920148689294310594020245796962292456664488196757629434953532638217161339575779076637076456957025973880043841580589433613710655185998760075492418721171488929522173772114608115434498266547987258005667472405112200738345927157572771521858994694811794064446639943237004429114074721818022482583773601734668530074498556471542003612359339731291445859152288740871950870863221883728826282288463184371726190330577714765156414382230679184738603914768310814135827575585364359772165002827780371342286968878734979509603110889919614338666406845069742078770028050936720338723262963785603865321643234881555755701846908907464787912243637555666867806761054495501726079114293083128576125448194444947324481909379536900820638463167822506480953181040657025432760438570350592281891987806586541218429921727372095510324225107971807783304260908679427342895573555925272380551144043800123904168771644518022649168164192740110645162243110170005669112173318942340054795968466980429801736257040673328212996215368488140410219446342464622074557564396045298531307140908460849965376780379320189914086581466217531933766597011433060862500982956691763884605676297293146491149370462446935198403953444913514119366793330193661766365255514917498230798707228086085962611266050428929696653565251668888557211227680277274370891738963977225756489053340103885593112567999151658902501648696142720700591605616615970245198905183296927893555030393468121976158218398048396056252309146263844738629603984892438618729850777592879272206855480721049781765328621018747676689724884113956034948037672703631692100735083407386526168450748249644859742813493648037242611670426687083192504099761531907685577032742178501000644198412420739640013960360158381056592841368457411910273642027416372348821452410134771652960312840865841978795111651152982781462037913985500639996032659124852530849369031313010079997719136223086601109992914287124938854161203802041134018888721969347790449752745428807280350930582875442075513481666092787935356652125562013998824962847872621443236285367650259145046837763528258765213915648097214192967554938437558260025316853635673137926247587804944594418342917275698837622626184636545274349766241113845130548144983631178978448973207671950878415861887969295581973325069995140260151167552975057543781024223895792578656212843273120220071673057406928686936393018676595825132649914595026091706934751940897535746401683081179884645247361895605647942635807056256328118926966302647953595109712765913623318086692153578860781275991053717140220450618607537486630635059148391646765672320571451688617079098469593223672494673758309960704258922048155079913275208858378111768521426933478692189524062265792104362034885292626798401395321645879115157905046057971083898337186403802441751134722647254701079479399695355466961972676325522991465493349966323418595145036098034409221220671256769872342794070885707047429317332918852389672197135392449242617864118863779096281448691786946817759171715066911148002075943201206196963779510322708902956608556222545260261046073613136886900928172106819861855378098201847115416363032626569928342415502360097804641710852553761272890533504550613568414377585442967797701466029438768722511536380119175815402812081825560648541078793359892106442724489861896162941341800129513068363860929410008313667337215300835269623573717533073865333820484219030818644918409372394403340524490955455801640646076158101030176748847501766190869294609876920169120218168829104087070956095147041692114702741339005225334083481287035303102391969997859741390859360543359969707560446013424245368249609877258131102473279856207212657249900346829388687230489556225320446360263985422525841646432427161141981780248259556354490721922658386366266375083594431487763515614571074552801615967704844271419443518327569840755267792641126176525061596523545718795667317091331935876162825592078308018520689015150471334038610031005591481785211038475454293338918844412051794396997019411269511952656491959418997541839323464742429070271887522353439367363366320030723274703740712398256202466265197409019976245205619855762576000870817308328834438183107005451449354588542267857855191537229237955549433341017442016960009069641561273229777022121795186837635908225512881647002199234886404395915301846400471432118636062252701154112228380277853891109849020134274101412155976996543887719748537643115822983853312307175113296190455900793806427669581901484262799122179294798734890186847167650382732855205908298452980625925035212845192592798659350613296194679625237397256558415785374456755899803240549218696288849033256085145534439166022625777551291620077279685262938793753045418108072928589198971538179734349618723292761474785019261145041327487324297058340847111233374627461727462658241532427105932250625530231473875925172478732288149145591560503633457542423377916037495250249302235148196138116256391141561032684495807250827343176594405409826976526934457986347970974312449827193311386387315963636121862349726140955607992062831699942007205481152535339394607685001990988655386143349578165008996164907967814290114838764568217491407562376761845377514403147541120676016072646055685925779932207033733339891636950434669069482843662998003741452762771654762382554617088318981086880684785370553648046935095881802536052974079353867651119507937328208314626896007107517552061443378411454995013643244632819334638905093654571450690086448344018042836339051357815727397333453728426337217406577577107983051755572103679597690188995849413019599957301790124019390868135658553966194137179448763207986880037160730322054742357226689680188212342439188598416897227765219403249322731479366923400484897605903795809469604175427961378255378122394764614783292697654516229028170110043784603875654415173943396004891531881757665050095169740241564477129365661425394936888423051740012992055685428985389794266995677702708914651373689220610441548166215680421983847673087178759027920917590069527345668202651337311151800018143412096260165862982107666352336177400783778342370915264406305407180784335806107296110555002041513169637304684921335683726540030750982908936461204789111475303704989395283345782408281738644132271000296831194020332345642082647327623383029463937899837583655455991934086623509096796113400486702712317652666371077872511186035403755448741869351973365662177235922939677646325156202348757011379571209623772343137021203100496515211197601317641940820343734851285260291333491512508311980285017785571072537314913921570910513096505988599993156086365547740355189816673353588004821466509974143376118277772335191074121757284159258087259131507460602563490377726337391446137703802131834744730111303267029691733504770163210661622783002726928336558401179141944780874825336071440329625228577500980859960904093631263562132816207145340610422411208301000858726425211226248014264751942618432585338675387405474349107271004975428115946601713612259044015899160022982780179603519408004651353475269877760952783998436808690898919783969353217998013913544255271791022539701081063214304851137829149851138196914304349750018998068164441212327332830719282436240673319655469267785119315277511344646890550424811336143498460484905125834568326644152848971397237604032821266025351669391408204994732048602162775979177123475109750240307893575993771509502175169355582707253391189233407022383207758580213717477837877839101523413209848942345961369234049799827930414446316270721479611745697571968123929191374098292580556195520743424329598289898052923336641541925636738068949420147124134052507220406179435525255522500874879008656831454283516775054229480327478304405643858159195266675828292970522612762871104013480178722480178968405240792436058274246744307672164527031345135416764966890127478680101029513386269864974821211862904033769156857624069929637249309720162870720018983542369036414927023696193854737248032985504511208919287982987446786412915941753167560253343531062674525450711418148323988060729714023472552071349079839898235526872395090936566787899238371257897624875599044322889538837731734894112275707141095979004791930104674075041143538178246463079598955563899188477378134134707024674736211204898622699188851745625173251934135203811586335012391305444191007362844756751416105041097350585276204448919097890198431548528053398577784431393388399431044446566924455088594631408175122033139068159659251054685801313383815217641821043342978882611963044311138879625874609022613090084997543039577124323061690626291940392143974027089477766370248815549932245882597902063125743691094639325280624164247686849545532493801763937161563684785982371590238542126584061536722860713170267474013114526106376538339031592194346981760535838031061288785205154693363924108846763200956708971836749057816308515813816196688222204757043759061433804072585386208356517699842677452319582418268369827016023741493836349662935157685406139734274647089968561817016055110488097155485911861718966802597354170542398513556001872033507906094642127114399319604652742405088222535977348151913543857125325854049394601086579379805862014336607882521971780902581737087091646045272797715350991034073642502038638671822052287969445838765294795104866071739022932745542678566977686593992341683412227466301506215532050265534146099524935605085492175654913483095890653617569381763747364418337897422970070354520666317092960759198962773242309025239744386101426309868773391388251868431650102796491149773758288891345034114886594867021549210108432808078342808941729800898329753694064496990312539986391958160146899522088066228540841486427478628197554662927881462160717138188018084057208471586890683691939338186427845453795671927239797236465166759201105799566396259853551276355876814021340982901629687342985079247184605687482833138125916196247615690287590107273310329914062386460833337863825792630239159000355760903247728133888733917809696660146961503175422675112599331552967421333630022296490648093458200818106180210022766458040027821333675857301901137175467276305904435313131903609248909724642792845554991349000518029570708291905255678188991389962513866231938005361134622429461024895407240485712325662888893172211643294781619055486805494344103409068071608802822795968695013364381426825217047287086301013730115523686141690837567574763723976318575703810944339056456446852418302814810799837691851212720193504404180460472162693944578837709010597469321972055811407877598977207200968938224930323683051586265728111463799698313751793762321511125234973430524062210524423435373290565516340666950616589287821870775679417608071297378133518711793165003315552382248773065344417945341539520242444970341012087407218810938826816751204229940494817944947273289477011157413944122845552182842492224065875268917227278060711675404697300803703961878779669488255561467438439257011582954666135867867189766129731126720007297155361302750355616781776544228744211472988161480270524380681765357327557860250584708401320883793281600876908130049249147368251703538221961903901499952349538710599735114347829233949918793660869230137559636853237380670359114424326856151210940425958263930167801712866923928323105765885171402021119695706479981403150563304514156441462316376380990440281625691757648914256971416359843931743327023781233693804301289262637538266779503416933432360750024817574180875038847509493945489620974048544263563716499594992098088429479036366629752600324385635294584472894454716620929749549661687741412088213047702281611645604400723635158114972973921896673738264720472264222124201656015028497130633279581430251601369482556701478093579088965713492615816134690180696508955631012121849180584792272069187169631633004485802010286065785859126997463766174146393415956953955420331462802651895116793807457331575984608617370268786760294367778050024467339133243166988035407323238828184750105164133118953703648842269027047805274249060349208295475505400345716018407257453693814553117535421072655783561549987444748042732345788006187314934156604635297977945507535930479568720931672453654720838168585560604380197703076424608348987610134570939487700294617579206195254925575710903852517148852526567104534981341980339064152987634369542025608027761442191431892139390883454313176968510184010384447234894886952098194353190650655535461733581404554483788475252625394966586999205841765278012534103389646981864243003414679138061902805960785488801078970551694621522877309010446746249797999262712095168477956848258334140226647721084336243759374161053673404195473896419789542533503630186140095153476696147625565187382329246854735693580289601153679178730355315937836308224861517777054157757656175935851201669294311113886358215966761883032610416465171484697938542262168716140012237821377977413126897726671299202592201740877007695628347393220108815935628628192856357189338495885060385315817976067947984087836097596014973342057270460352179060564760328556927627349518220323614411258418242624771201203577638889597431823282787131460805353357449429762179678903456816988955351850447832561638070947695169908624710001974880920500952194363237871976487033922381154036347548862684595615975519376541011501406700122692747439388858994385973024541480106123590803627458528849356325158538438324249325266608758890831870070910023737710657698505643392885433765834259675065371500533351448990829388773735205145933304962653141514138612443793588507094468804548697535817021290849078734780681436632332281941582734567135644317153796781805819585246484008403290998194378171817730231700398973305049538735611626102399943325978012689343260558471027876490107092344388463401173555686590358524491937018104162620850429925869743581709813389404593447193749387762423240985283276226660494238512970945324558625210360082928664972417491914198896612955807677097959479530601311915901177394310420904907942444886851308684449370590902600612064942574471035354765785924270813041061854621988183009063458818703875585627491158737542106466795134648758677154383801852134828191581246259933516019893559516796893285220582479942103451271587716334522299541883968044883552975336128683722593539007920166694133909116875880398882886921600237325736158820716351627133281051818760210485218067552664867390890090719513805862673512431221569163790227732870541084203784152568328871804698795251307326634027851905941733892035854039567703561132935448258562828761061069822972142096199350933131217118789107876687204454887608941017479864713788246215395593333327556200943958043453791978228059039595992743691379377866494096404877784174833643268402628293240626008190808180439091455635193685606304508914228964521998779884934747772913279726602765840166789013649050874114212686196986204412696528298108704547986155954533802120115564697997678573892018624359932677768945406050821883822790983362716712449002676117849826437703300208184459000971723520433199470824209877151444975101705564302954282181967000920251561584417420593365814813490269311151709387226002645863056132560579256092733226557934628080568344392137368840565043430739657406101777937014142461549307074136080544210029560009566358897789926763051771878194370676149821756418659011616086540863539151303920131680576903417259645369235080641744656235152392905040947995318407486215121056183385456617665260639371365880252166622357613220194170137266496607325201077194793126528276330241380516490717456596485374835466919452358031530196916048099460681490403781982973236093008713576079862142542209641900436790547904993007837242158195453541837112936865843055384271762803527912882112930835157565659994474178843838156514843422985870424559243469329523282180350833372628379183021659183618155421715744846577842013432998259456688455826617197901218084948033244878725818377480552226815101137174536841787028027445244290547451823467491956418855124442133778352142386597992598820328708510933838682990657199461490629025742768603885051103263854454041918495886653854504057132362968106914681484786965916686184275679846004186876229805556296304595322792305161672159196867584952363529893578850774608153732145464298479231051167635774949462295256949766035947396243099534331040499420967788382700271447849406903707324910644415169605325656058677875741747211082743577431519406075798356362914332639781221894628744779811980722564671466405485013100965678631488009030374933887536418316513498254669467331611812336485439764932502617954935720430540218297487125110740401161140589991109306249231281311634054926257135672181862893278613883371802853505650359195274140086951092616754147679266803210923746708721360627833292238641361959412133927803611827632410600474097111104814000362334271451448333464167546635469973149475664342365949349684588455152415075637660508663282742479413606287604129064491382851945640264315322585862404314183866959063324506300039221319264762596269151090445769530144405461803785750303668621246227863975274666787012100339298487337501447560032210062235802934377495503203701273846816306102657030087227546296679688089058712767636106622572235222973920644309352432722810085997309513252863060110549791564479184500461804676240892892568091293059296064235702106152464620502324896659398732493396737695202399176089847457184353193664652912584806448019652016283879518949933675924148562613699594530728725453246329152911012876377060557060953137752775186792329213495524513308986796916512907384130216757323863757582008036357572800275449032795307990079944254110872569318801466793559583467643286887696661009739574996783659339784634695994895061049038364740950469522606385804675807306991229047408987916687211714752764471160440195271816950828973353714853092893704638442089329977112585684084660833993404568902678751600877546126798801546585652206121095349079670736553970257619943137663996060606110640695933082817187642604357342536175694378484849525010826648839515970049059838081210522111109194332395113605144645983421079905808209371646452312770402316007213854372346126726099787038565709199850759563461324846018840985019428768790226873455650051912154654406382925385127631766392205093834520430077301702994036261543400132276391091298832786392041230044555168405488980908077917463609243933491264116424009388074635660726233669584276458369826873481588196105857183576746200965052606592926354829149904576830721089324585707370166071739819448502884260396366074603118478622583105658087087030556759586134170074540296568763477417643105175103673286924555858208237203860178173940517513043799486882232004437804310317092103426167499800007301609481458637448877852227307633049538394434538277060876076354209844500830624763025357278103278346176697054428715531534001649707665719598504174819908720149087568603778359199471934335277294728553792578768483230110185936580071729118696761765505377503029303383070644891281141202550615089641100762382457448865518258105814034532012475472326908754750707857765973254284445935304499207001453874894822655644222369636554419422544133821222547749753549462482768053333698328415613869236344335855386847111143049824839899180316545863828935379913053522283343013795337295401625762322808113849949187614414132293376710656349252881452823950620902235787668465011666009738275366040544694165342223905210831458584703552935221992827276057482126606529138553034554974455147034493948686342945965843102419078592368022456076393678416627051855517870290407355730462063969245330779578224594971042018804300018388142900817303945050734278701312446686009277858181104091151172937487362788787490746528556543474888683106411005102302087510776891878152562273525155037953244485778727761700196485370355516765520911933934376286628461984402629525218367852236747510880978150709897841308624588152266096355140187449583692691779904712072649490573726428600521140358123107600669951853612486274675637589622529911649606687650826173417848478933729505673900787861792535144062104536625064046372881569823231750059626108092195521115085930295565496753886261297233991462835847604862762702730973920200143224870758233735491524608560821032888297418390647886992327369136004883743661522351705843770554521081551336126214291181561530175888257359489250710887926212864139244330938379733386780613179523731526677382085802470143352700924380326695174211950767088432634644274912755890774686358216216604274131517021245858605623363149316464691394656249747174195835421860774871105733845843368993964591374060338215935224359475162623918868530782282176398323730618020424656047752794310479618972429953302979249748168405289379104494700459086499187272734541350810198388186467360939257193051196864560185578245021823106588943798652243205067737996619695547244058592241795300682045179537004347245176289356677050849021310773662575169733552746230294303120359626095342357439724965921101065781782610874531887480318743082357369919515634095716270099244492974910548985151965866474014822510633536794973714251022934188258511737199449911509758374613010550506419772153192935487537119163026203032858865852848019350922587577559742527658401172134232364808402714335636754204637518255252494432965704386138786590196573880286840189408767281671413703366173265012057865391578070308871426151907500149257611292767519309672845397116021360630309054224396632067432358279788933232440577919927848463333977773765590187057480682867834796562414610289950848739969297075043275302997287229732793444298864641272534816060377970729829917302929630869580199631241330493935049332541235507105446118259114111645453471032988104784406778013807713146540009938630648126661433085820681139583831916954555825942689576984142889374346708410794631893253910696395578070602124597489829356461356078898347241997947856436204209461341238761319886535235831299686226894860840845665560687695450127448663140505473535174687300980632278046891224682146080672762770840240226615548502400895289165711761743902033758487784291128962324705919187469104200584832614067733375102719565399469716251724831223063391932870798380074848572651612343493327335666447335855643023528088392434827876088616494328939916639921048830784777704804572849145630335326507002958890626591549850940797276756712979501009822947622896189159144152003228387877348513097908101912926722710377889805396415636236416915498576840839846886168437540706512103906250612810766379904790887967477806973847317047525344215639038720123880632368803701794930895490077633152306354837425681665336160664198003018828712376748189833024683637148830925928337590227894258806008728603885916884973069394802051122176635913825152427867009440694235512020156837777885182467002565170850924962374772681369428435006293881442998790530105621737545918267997321773502936892806521002539626880749809264345801165571588670044350397650532347828732736884086354000274067678382196352222653929093980736739136408289872201777674716811819585613372158311905468293608323697611345028175783020293484598292500089568263027126329586629214765314223335179309338795135709534637718368409244442209631933129562030557551734006797374061416210792363342380564685009203716715264255637185388957141641977238742261059666739699717316816941543509528319355641770566862221521799115135563970714331289365755384464832620120642433801695586269856102246064606933079384785881436740700059976970364901927332882613532936311240365069865216063898725026723808740339674439783025829689425689674186433613497947524552629142652284241924308338810358005378702399954217211368655027534136221169314069466951318692810257479598560514500502171591331775160995786555198188619321128211070944228724044248115340605589595835581523201218460582056359269930347885113206862662758877144603599665610843072569650056306448918759946659677284717153957361210818084154727314266174893313417463266235422207260014601270120693463952056444554329166298666078308906811879009081529506362678207561438881578135113469536630387841209234694286873083932043233387277549680521030282154432472338884521534372725012858974769146080831440412586818154004918777228786980185345453700652665564917091542952275670922221747411206272065662298980603289167206874365494824610869736722554740481288924247185432360575341167285075755205713115669795458488739874222813588798584078313506054829055148278529489112190538319562422871948475940785939804790109419407067176443903273071213588738504999363883820550168340277749607027684488028191222063688863681104356952930065219552826152699127163727738841899328713056346468822739828876319864570983630891778648708667618548568004767255267541474285102814580740315299219781455775684368111018531749816701642664788409026268282444825802753209454991510451851771654631180490456798571325752811791365627815811128881656228587603087597496384943527567661216895926148503078536204527450775295063101248034180458405943292607985443562009370809182152392037179067812199228049606973823874331262673030679594396095495718957721791559730058869364684557667609245090608820221223571925453671519183487258742391941089044411595993276004450655620646116465566548759424736925233695599303035509581762617623184956190649483967300203776387436934399982943020914707361894793269276244518656023955905370512897816345542332011497599489627842432748378803270141867695262118097500640514975588965029300486760520801049153788541390942453169171998762894127722112946456829486028149318156024967788794981377721622935943781100444806079767242927624951078415344642915084276452000204276947069804177583220909702029165734725158290463091035903784297757265172087724474095226716630600546971638794317119687348468873818665675127929857501636341131462753049901913564682380432997069577015078933772865803571279091376742080565549362464