50001
25001
12501
6251
9376
10938
4722751098415159818079615876581344468041512976340259525086968464229372250074653893823843887216332682706492500017744981538672693575055913744270962263886455271793456610698167491424614014799688878437260680170782407224901863117320286065096987319465633537169849073176515878794778999104622924889326935459171597781076398628340522934526676280666874481822655700418321075521505744107865218972867009943832847339985302593511119114982047664632636692447290187419049586902890989576175856570141338917021292326558116297601466156546202413100438717126326891743426582255264689453325714299749627179859309554560170321882425545992882491884458178723344138562072229228385851786308439058721848467723689795725345432484358559513217044039259088814445565583101448512310482793842077525207146282523518467714235438494814743458830085537967035940437700497252439256593371937619051080507707514567232070870368433716171292848208544600636095450732433355622652446618783306390453541182812009903152018057521352735075439105527074992522486117963800439148180444478492017133136293432312817904177528817166282864564488948272727071554123551463164047465345606265411278237951796865278335195386351768800099129309462264842381240634406862386834651778072357465646816752855998606837004548768072685208178818337788411997144793229972370021479113055812289342792776446133029362508465298430231606972613790770947824022166805755291045582220535189669681329824406655846254874779834067649748931999859972732401833187790944198032375713133129892219657264084962976683809126891340938973431974098714531103613738598285770408324595298900333533672765302706061384160857338457286189241503111044274410116423825372003751701248417927386273889778785326993030970238504683863496502493722841948845406891950772761819085501155894389278274825747612052166241512935417660779419115424224632899135445059408947761434787165051513646174106225325232515170567068399994645269987345975168680676074877824117924067561238153825841625015736677078346218421232735364277549874864232628731433085676618389591363060830847144716866857601356275895561912859517334775532193481351510382797101590671607407640329825902662985007573425938797292447578966162682992557583986815144673341878340649780499753828673872383405733348051278716677744313712285982493161959444704598803603677463057839871291523389076678219185216140393793262032456949609668109557362116387268045392974226971511005683641197221288204685513338775989577819098077465768552952324771738876456318101600051174592851167652195282122765312414312148109518664933309928747650178221592749673256109194764887883664516460971810989103345252236867765765043705988839387572403827438667666111437803233362633058773621279839063184139077076227166206983921242789215757333231086916142841190854132545114200157930195443120419907067855167482232041447799868166334204645858138545532670709306426949617486103536112810370173876213585821784889771172614296495710915672665953107942243718239266410343661374297760354728933323697933441129263154945967513885783396539888716969267937259884024113822405699038936569619454290537334111545962280131971580893235332415686921584482305250975689971645091269845092628446337437673608799046676627253910093316787851756980102894535229177016421986684352628175156023957934431236472972116564579249767364924145041562688985607818975012977622634237438966407450384630966209391110121118077907545943825074277151176915713895168592449060849338692288384856514971228521689482647260165175475135608900010204681140907596191137390222799062611779007559277558320706119637718783884292069438308564674290696639057900959478636966880599804170296364124564669002079699032152460508364812988729630836063038973968275467993255677365889674271814587961725586270595954194752230158584918331625123046989486194214650772381734266171023091220377859142557623377877209768148362696565686339970305809853649943123810125248633237923737780943932712363259913529140117981092469091456179713284305461935089371418520858818346754609653988500639156411928692768119869773774881113905621643306969824179237141675301126567969713220961557839702310939671549748219199309660852608862818201638529425299238307261498593521025828052134825611352097318975854735549514651148436907878015712148147936554389460685659538145674874544712359552888818241203084481096840529159280210956027897472675196533782298977028914810108247245473689180493498421626113346889024201562024613828219475820155758464587325686857220367861556416877356249666786273546700978799561316535580434756440678464975637957805713836941803265436224029591106090155803805336960823467123834829639049322217895138325438592806970715885179608777031965754948801365805374515888272499660854650629997951291759609415124153120239975886461651343498865520644445570873342403023899660836789311122237066547581084121907954187900420702626384336672631558288484173139931653041773574177111967023760975828727314141739825155038545443800762275863206052853709949655370681281915145753869987505649101103238809745391977688672365164953285074257878047834726246337697157117625480079095572573950335407623581136286713989205118977033914159872850235782555518630881736094712673504116255365077058467137708916100434039316983325140573683740154126273765483173830046005550556638177018438139124071839114940736523166605712441271472427650427248239669878944897609100645036535255730518058332326119139520450623089166056142238210598067101113364272032727516294804384621018718663825249948148753688342494813984874815313029178140719597894030722443893582805446281749405125971413953731996665556804295412457242260262464877573657930266652542685913126372989734874387307094661920270231509954627428240238817991023865264649398315560650707954123203864503514487582219010754735070161984995963554936102748334354155289536528463375127387650563800447981943404509498060491820552882187678011357626963601671775635234382365193129750218217804189395774962901583925888312448731412733063860802885821677032227825001165457491104186932593978445659638671954437336249640820853340879555516401188027431917685970666812357836794610108568657855761362137447183244569977990330175497780347807200646049049092758902800676091272081443475270584537493933665462311039144782249084763150536598884826691834259785400147119106915051224846600182712146415261042873402106210537153942982746164927422493501178344814362334133765120025033644530334309053695409867992806554453944936958038477946368460440060834252209048600598199815177770547435087387331934327197250365886540769467964937087378514593783366215450449426718789695954865068590862914945842248602970356412484567236346238702831227170161189702647456529375961218734547639874110189209978796102838402917485530407328536392989338813362566204837678175693999184674924891508593610473427185673463693240919266343754696129741376531025494307932718445309075333598221103222087963628761336454964193263867256277252106126211157153922240828207506930275487759138456070718242183093270274167313560814880027710228460200703321354659629588002314438092783384515255502208455178449726553825265298276128833451920796766421713850259271223883919312640754821187792344910307531194045247465858565958221250541623529921066941061159448437853424143793693012665865099847965975797779648032405524784682274928769767326560339527789862292169093578999222586773834815126872476362789377320151900542312336444754764165966089461048307530646834174672040076425228854080154563758836930866151156906580005950421509378543867778654119473818669891480438558512067632835237739322692452815942085378014237281254348356114575543251350002109795706063287110453619596475623755924620794603796757687478306887166642911227834116621595938163831044598071652273170125583450491252196849995828722680791102013110531879134966297479228898562109382111371720943575948618843527549217379526576694763874855053139438359847137345551154050957251704188372058912260237782494339563909426267269421349894955438517888449115471459222526330115046872331280643032393044699185614351010697969455281087460446637021533588367668987958522691608110908765298887494627391764875676373280874632123956356132066411642343226255764032785241290186802176623568828617437412555282317352829429863245030506972320572419999414561367829213885304868545983189162438595704198828856568038897876474331979703555066235291343497580951170527602319897437769577973649715173738873546159385465789361664158375516028999708805950982251052173317903183686812455986968405624113529775459794448498125031517854389678751553370579814431728649019632494065333182850049137895776923351189861295948239184983786778074215731274112752075536802750789321143050448991311016594608909320273549524841497097234789556665313626683664176497385783694190776857417501955328057208363965878545148667371569599045537098433153385056750610897727131326607602577325558687679765543162670814181638194108786188537369577254427394127685850624128462879382192807162297447837692512417969348922608316915833399988174954428972933779167762220400145735510641419433438845542788347382195300495047082709859298868779956260646947183790383086417027737120147937966767580889939198428738035167217256916509244875846161828523448718263191900684145666665018681152360863652143713214936713272742343229799033999124732819375194539469243729517740625242263194313132989982532506987540281230204071861348089328556068383664449865416384697716058265731072122764888747572444771320581036181996094938712841915538238712811535534535143658234757349158993517126907680642371986289876550142950345606014638621164389452293428703199490659426522009476944509772735330291344445377452981028426313657342790336838711313599293138574540266272556372117167799136950088248461121808298552856681195181437591182238668170386109666855691378212096340235161412326902888494998044765216136884218893705101881241183498546573647129344511442554015785455444075544872831682378561147818323612547697072000713146193719158704264708119706941171833155392423711038931643509316493552166688336777108373467273914399689978382712336955371964901450148801120632465394263644125877669940057180960334355488860563930179913226861841673042924553557080288616567473976013511113602683213368897929536249088047322135585806391911733011103552711447669346326163363741898789886103856986571212363776986633404856759569970226881659725209833843183396372342388817985815478680002862566592714998648877850602781357227774712177592528521904072932794926264099918005971515975563543756343202690895959938082354052588356764568735208565688271119887719412661073154872658099483237795955822273751336073633874244141958750463731115170859047357134998790914853603699656750840699983785031719225435942827438393982911860152289581150110221481662024937960770968867359323452632287062951796160432695623423020378478535413581695667840419969973130261507545659462191351338899212286716473866815334296305194614483513935268874964590270112038154640707489743143159678972244019656585252343029469551325990293898601367881615526733517195239508272061469615759219926730769088938264240860771719868452165519462672991071215408413003368262631294715630364024312297393613118856882919038312472983544344295652961069562231412807182079626280181920648924319669213537004842285799140921490183835758518105953918847565910074734584807817439343944730210434561879036399278899698845177326224477664560343128503782118998553716114908936927193497329109732869712426693971619914939662361605837864587341328849647745660182882471975347599016192457432313621810092936578770834112491338989558651183108904384401384851917775373459414258615094111045731292909137531890780662702983543313986706883568728947396992484852112915570798603142654412423615618060799665847031434271443739159979484878982238381074819946543221878546602485595483787807432966012430308356813791851036650679967787104268811059091326137824748974768108231168373415553954852765377823559176085033034426111195619119680644991620871754356405174025865030936965165492069067497774092741243207389521250199522972536893560710309314030348711291762798434474816634515361355753381846443777505826768354913460769907670039376397245392284450344914049047071854975033180339747230140640246778772759556188867243218893485332637296156243378485201349424470832369059627782118239097829014362430315761815002369326756523846677552878864496541852654371946162410284774441658725294384311055847411743784013476191753448544595711481467979718841381782055432002707494290237187122819333843797234829125168239670418119209921062576466859504051676735410801486611248591733322371410668399312133417277738315523735634764846204892774674683434038059583421295350279531498114807366868810324889687821578831794563405492036854125188008609722069379181209087615637305156793318104029093445377867987369926634634948309737134704595679366117832550982236934991673947345669841041157834952136605675791169148741424815265371882773487726216444349191809699997899443965395461939949566508065894984547832772122668798561086155815925396998248096320159267425624426952961594770159773796837752660567678383532414628539909268106145889123978663911666872561534119725470979035914892980940058615335285949166896923478974149248185009591807098165355546823632160002769292912781668804798529197595405228238261562900993724790852111017127717448187345977800667599140915887072254670219537349087416734304863128544988236805905927031555859554311533401907895650979459345296566963368364247964063861844125408264618980240736696566816986229100179963453088539996179280122688980861646807516663656814932894260826354943376349185009337748014165908962557873997805815567892384539556736732387222976242221323067373758464270321137747578833548497320839483699185134967169671913946699675736886546549142297149338117282656221518224484459023498129778720695327763437738529623118223611462661514190167869223894335527597709173357125626825692730085183892454155066188967612913749273063721770839017664103544270735371347699717364689356352550676757235247267193283515953872803517873948341469246584516441385832184205123016422634325762726568050446589592838298765046326957120951376365575935793029713104388329020213918430443813412496471221374792078569884021064088964403210231409377454897378965472756333873580671461635091972141315016473122918523743341695352741975205968802724620571397774739629968671166504725883420308666196899102788036737566055178820260236539015783683257449685110756549053880433572197450843512936808595528939591678556124957499907709757399772188423978797930629484850584648419984874349054810014858511174967165024698082235529954181356322526667940713216255733577922785340454492107965440485365460875901387588027537270680974434004224167254224575984737782023608228164353124844354977289518907223174533224179683346440629636317009561465316940047359896276353497538219918668123879297895606161295989944198018593973976821843602833263902317207775947630519862977366378234604613676430556172822666737420377223054741593066107391259852451616853477995784330929252132649177956283530778631984517641154816545437498154118321905458826735914529395181193385877555158647423397760737376476623521712126079816945267301545225742427663919886593756379113487357547643426746872244412263194483623952182167867643818991252553214871653836913884093610362315828730672876211455014845441873338795477929462741556978629539852646797908691019124594857456483151733744001657930752147444918156898206972248375835619903814301253839833187599173981656504275482913364083133784147641938214706652665889203104864475744779515263259927717246726056199794585466982115313462469378646624066397498282371693191975951835898594390178301371609374725831829272199461138146683794128922735888477146742062263220985311773324343588287110477983515167812417594251602359205645827104435389851061466193917635011718107828702356140295363273218920248113184624981123012510865614597164473181252327698837522813614742144124438379199146242629796494527579025675699363390877793880286938138274088370373897253197663582732878830576677839771995278443404234486589976060556831202654835296197952751415889676635507654604886499526194657554420571028891849868252258399713817484280958085738812354880035512241474892152180830986593737707765755666220346230293469947299426831995920942695907171292629798088605741334990154111139916288568641885942521573033725905895566417351473468944828956869354428163509252558756534930462546936518368301085284969963480374814647614300099493407861629024799788186973421833976359837836274683342823223829371658737418176454097769743606034017871108355185949091568367202065746437646872835982447183537015779461610509545911673859842331367028414349968085072394378842850484740120376413638640113183070955318948794012151407582386196439541175637074981048501271426346952465449099664524367814609673861227857690467185834530614113027679255149382686971180186585123304544511772507307692624307538672064346531705878893218858376919786956216169409338936458399290969219849126326994410684559809057200804142841793155523956758981867258196467313609890559979733644363933136510284808350237822115953849382254008879533972324514779878261957389025878403477022691725259291597429500824890499252441755410247976651336659583522125087218228660249523404648351898774903923281050523737171282294345503272333986297705929905149535027537417772280536265141780160662867575506434216415932052609252816295289899228979770279966778084867566583918245383978964477144399581644701359461811351709143643360859882970572026965506009573484450044127942990198032657412154303633727848789305422386712622921409112390659712644596851696745761129845762324549643529559078568783029285098034919626593557187030422190634534177956023517757166174553460213422171464496152852948052740085118728082517691902466864127714406576120142823892218881264007872688826888987674241315201683750684422505709935989097113875871841040331561862847117253704893184965737422319139371714399321657074963963389677130459835023236988905484495305358134826513340237158942777850113131915924217914717646383579041774940612891211981817334848894177948385366321154418605229056974473598447859587908093652684965052164981279925641308151068525643500002606282288760308491299655406387107353100833108938979351532921167482074469728815984827889208138878574393264156230458113703442789647344942493807874986968835786379353430176288115090988751971776351042295696278192054324028324393573487893209961621238338167500372275720836932484925495513359364665839526401127165520294097348109892547524768969916730488442846067683480448379262263110863004525461879799227548053946488441261566694219157331907523769135499838667478867513584397854271850512335704165644672829630922909798301140588974280003350613744934279581956713537161813732135801223420985275298656545511312316069368669075494711414343655488309348901118161685867552894148597188393909728839308929604551150850902158694602477042531317145407336280871956607989037954228522364601663905075318542095259013418437684519747367897468685902876294257053603455138523963104505872542380801890513194959423399695135248719396411615738936489915689444239812447513892633588873675022415077782338558129665159452229379426349915699194015858774246803188974889753555574847846185770187170866549540173828193830870412478564936794660593734609777533685816684797886510653048481515895241705901498063950961556157652593959145637696773936892437745213690585597213254213659174343323450522327198667471265405794670578292058498454259829695537072972352785315050194997455349581186984359345872444846297573862919330016800818162877882245200411870569719099621668572127637928625191921428482423884614523125063257297094425774290562373711005753729561714437507077938842773922979588398583717477723952654415345134910552656520847733298015834204837180172488268675111047014358040860096427978735695524884967398492481417579956026168474147200319191181969403224251186188893814742026716246112568262576556299059592245955195385867476558826949550432590222758829416275691693053106899449042569789273638269484699581980336322778800352528717467588481985169351296863784869697091138960897523330823933180249518435542777067130590689344017789660969491635151195234310756352163148319808043351115705878457087805167365864458699972911212155222125622652146786159951398162742580609998597754019955479940964224708256584501559069072022645142338458633524643141898280102961060982869509205112415975546920083303577773710793027680165767559155382261534394156516722340952791933723561195958979542237852342266102391934169445722079007082802347268445816827575011142640824950815093447150754837031541755279121232849878911032932764394485564641924965356759816481730143183369975536660664623370121698616686083564426715637172346914002521517121894520287993897739951384763838891966868803456929745293311814648228845280767986518442225723926289063420966861813098689081173281816941056650137201092846733578169235162867095480396502927811702548959144469956554318975912640562971816263510738039147712005713961779612068302528328160867373335062359676058848489913445023738875634249573015214268832014582715258188145916762904126233691327080515075118377029280645559521171722805862074414932253941222938815357575306900979228691179428026327032484347486167585775912222848391236484058397452212219202300089100388973451289221468953193744444099861736353705666718677164562001179373123552936985801811991446806652103515440799558592736372265040561112227362985157302367098618269663380877793350543347834281886159603855397874063472438437575234107311811287653317784186132498939573178873674003834820820479837918356534411060687953778258505956667161983063110661307543003311197447401086675731172645273511754715951522408059021190273785744304500390942805866700797741727814535790627448332195776128347347550268216792884428305526813289420473957734109833018579476177303039061123569584684200186779715829487355057549695309881117955872129962553942025282272336357289355874055614494315387692210608936670918595466144367487130635360820312991470214500754548327367643678030848091366468949864345963976670687524843319563433231041110517036679773137446987329166523701501056235271947826557737393338512713549643869190741641493762332304324628938352464597524590160192359845699556412463608544233236835193648428684600228842805010099282409398867682286966193772381764557862817858374944237780646114772400243789429096319768477217332481036760221494996002396084055344952661113602683220730416595988163689733357307861696399291767470561178811235579990577702457367969107979661213837749094619395371183984514189114661362534674887260471505904416318240634586263336384202841255712691275110435514523863110590934671763231337480385886147315046119620207629637869738626131853153946562575561713245185030693564444797627403950492784439046582989266194031456615662416658407719603732144668691796194469732466996881253578136771468159632142341947160108366874271528615163742612980636188127024097263959839115216738468482039257446767756630546495873940730715781284955014334589435254268672487458289672308437841978926806431315558245228254799312702037318053784250431430583540895602262435149732792634426808696779658256488518511936619124559063530071402864448658171929660903048343165173730242027386650661151745990251831657290394958725124509395702569995439994689394864682612731004299045071414710163191740516776793078007184603629981317985260955874176795061980885058634646472394451640171645426055122565293582154265298494420282037934531214263780911291238333928403923544610280114405065928888472204846014893914999456656869166544268446043938598011479476592218355623472041246586242947760659347937983879002644773724531525158254901911916864861450669430414862296382824805335342139905026960131635796241007296300217714591325626023915304225989884285708216222217968634625163599817526375508421339973105407093810324255958446857525019435550218338943892850285373905347611140496947053142232734123926240242212661397629827636162434364892091492762556959371328613444212944538694845058259870872603282384374830471741838871751606382251914296191477158532018224965197629521744814673981694195565092973672829252390551850360319906225321719574897937985240338409546495594974085291417454662900913283202605949886625685685932979541030439630135457112931524240467362907429918654318200833103388928449832474433653492813328554941855675463271764438267848763735791283390112117829237805558417013616245329416058613705719456809346557595658255879263697558570217157924886272460229080848836362899751671649886379509676895506439509211476879046186292079934190263614550602971805141539480108229937271672996601695384108163852869999080861127651815947470073642617426658642870471467401368459983503922014743302814634291228530138134878497222372267731297978923426793780602261767111804506386670558267340350974789922843666346302199663885815699187832011436853617041603418231627818906541157214482957922393417989887014466998268581218033288133817720460414945109116500263853142851643375041685918744165774768423249193884407289309405266219561791742262919188410745882360154838866064578940528214298613819662476666195445565805596999326037314553468659709150519059289959518257717319871709741055269364173718724660230196527687166934127584587565882445726045397140286943962638558956025127199671156627089985319836216565638916353326655898128888966649813133768770083742754467127937594823772868492943285339399789015782355826172814810393406064191626607928524875154167278259446339988329685303995969522045648671010501808616034830132898333967074830921682406836441629544548936907783738610821044926783817788259234618491622227580212455264069427573455038611208269553819521426985965914138659186389130582103372920460717755068049435804970090651925605960412418395549634193703343369564940122672512871691826134976872753209533216410752420388736067624996701816455000881577061442905913272978417652722697467888487879893129780313849931014695684841612926314577983889297606108173525592408822932232474569208787490183917346333270823887363646364286023294085493064679026264210812102661599463934762720348615466604879559264848647340135700674575185332528188473612908366633305174807354622814351278777861084777397232232739316501731671363857762011029070597434258596692246960873502468431626013374999349954910749748485667805695031760374546246016563579118766618086022045772503335711662566389659861634611782475668335990825336936478926301887940145759932506439809600058415178269412481029187425063874618255296595826227893143062541501366868329536396634926394954825779635321533691012886393396197603348352994280712239945568443211865053421290347388200522356179332104400678496748494091059850500925763993071202408509249171119748606791970455990348064250734826021481850349436354172524129451757585026238569312032982876584769890391115212067853894963978674641012178501072475516429547213197829325165013401695101188065468696379277094268099827375340343407820913567938479450143275126358414631290815251834958295666171524431991691027698076353455248581348431347152741290758858973809790564339512852613636616768951949337653881698409656608711564807420127809351231008757480400321322293709159425199382229164611986915732934194704152575430017318835821020666084365073443210933666884248237014918055696852775931555198385152294489160673457433534144213994679324606868864322915662382671445979834093538118562492536525986457491788377748061689419706484062013645694975980432596771916272496611755692651565227555767223517966351285285484702503732393893596719066794196652892953733956474180651706114897124100505296743375978833842603375556681488494830558383367546576192142360826304012876750731922967327906255078239587461559999991207221045047644883208267501799342278208365613463013465723938890295660944562324637746837118831847179118442572307730522469181761776918112282736218695603152252886531023724221892799990511245908873974515348384644598942063994043501203017541401397545387089085493778407871476293235502785432750991948343704167419683161498408047402294136663780060555709771693500424123170189352743801459790368770374528789423664158602665076053492476920651289160179370259802786485267840344691214800307355321122820085328617424949197560624973460632308126032896551085314073598773541393758494454655939621475036751210878939320440239667253288307371404228981405435244972731116724091017612225259321891601167720820457021176406997711503800508261293907884342313638986985048400841304695198594044622867217930270234549605031735185636880668306821659644687531327902306797873363057700508350166585762342785351308467198555920295223361050738909951679922890005294799802805775464770033644599449657882108193670600344457534827137287115158932916577651001456929415396019142973151879160428474707979572527411973289853625373517364586947867769937752385129894901294774467525143110267019404023565125655900038675216565226869689962078199751398610899612241725768216579481297193521623780019169688371532430733261187722779849263811084695531177176519826727394501089617723165542084729096398231544850519760739171737754126406060839497123208033257372532507752063165843127723394233157857635829917944070463575128447452524644938913916858511851897431509861828578121705196745056786314372165335531252626610051699224864023833694494257907558417628677444774563777378376977196462750944886998423758309808469486386915250110975528315757883997486569005893784633169679236160598914875841704349162567759794749513154335874288234049760663941478540769141524412282871439650756649858584518076315217491207139200112553905951028805479960675903346512248282027397631837575087430334693663060089203071130383945903624129316779361450868180142092408061185858676997685913911105942327977551627248152791652507884241951951973154393408865004643935093548711298098093587124302754588629139183136588753855462779884799410562370935598562111794587622509474689481993415192052854866727538857414088357531286354688348216374136145965461536350175348689534737931889765635835918786480100000342675868148015233360928740681486446137714786780626716073491939130742490558700323919103558067095527527955683959593325961253815189504873071399931873354705669706350754965545184357315225986279086114773729981492146558762260297389059120264885102300217137215566313211646481673528345143292429730152626723420847734160999827096396753627662561144388257654250059114523175783991978857150212405887467166788727641585977465871564783454400543820209391728699932843129759913892046452033714840225686238999028578740151504374658948452061233151713319811889662595499966014505187777551826357603598289899473194486234288777542767641613664940925581625095593095058281324707841943492557364578046650496231098691261671457117586203999584276162167469791610771405568092715427943469509128321600282689579345640200019096777931621169716937363684283041530196629881839228660367877009634630436316959543422312582300134728599860106662817850915426157785668771284213130283201173247988508704742551312404498402437799145614716436563697242606051509225591626209126591452503269015152963668315345528012979639441034620954262365941492074126893341928859392915851563707711505431328412483723688326145745061824163957667947071538267555539558775011858120395874333096144940259014816636100908314333793752558542486401749863446945073711701211911628852790963350765086638381832818433689492411273865966572857732280178360775205498758093998142506794173371204455987931486369424891056534964295080945196249561886392129066619448187603361758277698716304650146468783944058366116772989035360401413006617954759769626702459199834266948002690722207472787742574981230084179362506350980897606846088501406227945069144566613975276589689393596128494435706168875452532309843778227484471433494682487254614919580836340227659297478974372509998229233271987336313877337326920455504879259708436769615827609225626095531075648466742952243294862748397174531148917427478389151731883287339572119630261021714326069649836481238817167110256174056304553617662625817552279291812884305286077010450263278236278525501404595148471672742384379555908335672444976874351033961609602852773603181972755280708168644822370689693690239171987741113741298060570521795319661861034355511874643871985842110411117130080585446307241148109491468348286935057973221510978479061803372253100125484348530169242319986878277194055575095898148628780996374513767656587128424276942542212418599288243898539782076251295788328767511716826374940064914905797368967881836987592697981626242622521738089594803432038723692849957217640928740817015563965316742534908539771339611189343451109859404832585629600695607256090449115536347509106974394273248989927132658079483795549418029852283987863746901157862319204217410506324812287050239399798299812814415725453697333312391672262865035190512399383894852567800061149507415281635794261649037756419892230865782578989874567292649355643430987500908633161050981025880448853631219181447259838349549525096271282084665843209089473949072145595221757533936856988420467701822707942185765427803166544528722453983425819530712869815463632573921712353732596419194985465726459718042254295630055696260012547929268583646005777869834171469850442749739867969737810893174276842685151529114321174529229687649966388053325213377240422451446884989543854553415281501512564823459801868907858909649901144352410804071865085343634278798671774829625956935388534012946677995699021298415565064653634771491422967167440227099387888779732588830595747042942715548815076507328146279242380319805197812315268630653233322590742809828140984469896893724825844622450195243433407648885626055721242623494401625761321909361063325492089566232890125549877276393334829575181684244336916656040275387832953231987393730066601719459504854445154312812333650657654665965262143216734364129009436838467777190142612028633810648119472762927658857693161537801249972839232180471263993538199385521305119188513509297306454831604938309185153123081536186388137936666188928479224318747068870532510445085803353128470087152324547163819555707768415041639225043782346748118839353715923592656988331795584580981884024415216056812323197419240188898384892563121238306690959319886892943478569872583944984848410767129193983475696018921378722981705986806864031323161163725305546346424980355619694336664162783859273645575775884148663195289982423300773960912736317773569852837907148250225513882324397854550451979642247936933869333191626475459611777811280626578456540929243269611747163626607355821936896353076629482024233013451286575058182127763075102787163376239287442326411273967410363269124860553394887979392101599566862935733432424136438570078452190574967350090460207188833467767569220168846587383581170796707888826299347185199465705437374793779539305354559989355287885124203524217320868365487718089427673387233894287288484042250249049681188078173303237071129184334256329535042493838276583066255989963939640557252294182781724159301927302628068585452824989494385661596632643246712349611144252987693443614496017419176170790037880683421171481406414249677265403142211426051414587989986181906527384948656931938464769792019737487916978967121982220915837906138494174414467421326768838055817884774589280539945905642119996274963529408912160662523044407138753328911589531190524352324332329766835796276607142629865230907726467624730877946823549236945790765353495125010524581345196342854552418957043728565594120458078247173937554243942632244219616705797969114953194339438873677131284098222713374188282795332702789078169749706290664958422544059188462600741379015264086662172442426824843919891212880657340594141455748401858495714028073238789189953484270263042542969012276249088698562626408064378946468485596705343727883775320612229156585566344518118415133769030426821168034314604592929914920791883343414509699752790617684550163553349146951440307569619632850189289565442642661303412822519734442871701263371533784973757819011177432526842287612917093234791920164177508126885517417377078185729219111638270458713365599643201731922070290419973338516536717403933817601118181607125184676123839350427190825198288237053689974253171692785641703104105679553096136468390052407693968730553598816617466120888982660457245465285117312976926641619737273879849939526595941524169579156246373421992191475054960246898816709330405918338645792489495489196293816175093333644586493692564743791822963191441959616927073506284632255260707136429394264552390855794820487536635600020100442707450645577678226956419535831542818416383778118959451309734583822563325371764714690906324108750249690624066460678540533558157928309686156644587395300334769876894215186374392874899079049295176527540883232057972596906168462942101819782190993246347315163091838829913267821660480232706942684157453928556699058280970785445881549966262283345280107351686581265728869894464440367732862532955334135883300521582890584236035565109677674081077703551251154307649930337918428289214226658466474148649195421162919578045046239541342972793271208277661075246342831049666216306578321690266639861345256130829047752097519065539373699822406743537314616738614368820374083189032788153981720800180307151561827480963212318573764881954134877838870196168565011527435740671385434896153279831571129760542267357825931489675615185357112789962422469756705418025847958578922325250485947696763896024444425323329315068934997492268244907915006907176130729901797573388092973559351844383125492897232529629822593809467669158595013834575616841744381563184859397651677543336554160804856529782539965226729383317689465739691492179052042927530227002411273285079885730677874127364926898011866827915483833514596896875495750796536632534321127821787653734715288512404702939034891721954340588929896637134252701026620552185837258481664520341179721439436541113790032433869536937057971799833013183618948250918107799591586649502350789658570566991994176670030109189332383926275188416236313224481141361034652067148624607826854495859666501631468658392972653126998444354059692938970701682988746613191532456930736107281892249138409492434631894445910368102867451917426117985872340775598239378837496539151271966727743734345878703156944640078366923088845374430642586628166824171479530003593212204211699562088116759089762294403689042184496266273221979483110632954312994331319707446144199616766568929841051169595314860369148793394596978252349949998864289559379061583570606097952093879304605016844879453217782660550988096985648366707137297266157426649545674985515099495818772898282484901092216865122772561963324631236870924508649305461856067988693866071671794829325002176538189548828650756475729035512877135611876976237922603367686030456866617385046290291691733861920146876556413193834319120875778897009045709727459000853011195232059110913206245406377697755357068343499127484077853075780114793221249292915055560230655732701503380427880566926956090637221391797395500606445571583365510414224560495495655697347416406890971743799595210344245691312023762955859105377872194560939224319383308148920882699186664360321978509756677352868193069119671934761788871305245662255099336618429556446131668752528850765552953580248649115060727815163333006584952214444646010635167211508872875932425094373929028371843608599308815136078861086710126112726441701741613598075646285774848732009323789241476411871043688357314480573672665969275958351668584148833499804145962671189531402133743991367529057181117325103956651146485471863096863098201384606072313428329676206885844194503177075002189584479993839244985092240590820149567147238764410625753802678612932225587487366069974101811062424218404915174469747449524124647119949376248201749343966581238314924485985679949850771362289118666305527633028596301495164367715276839911394373619445725795464113443516894926221183387704481331502396327942229298234567951518869374964509849279688478276951669113564223268892137461869348628457712217841990770145490920206528265728542192254514469544795129252022543191089568092922852881913324476975291376759636671991402951401118912138774175654221804339496320806900730069517808448823019860268059150668640057604113031771975281601459559559258564044700284375292552995158432111966941866184763768914650783889767453846985787167700298234965679200145168973716741128223149175888574919672906611070915560455017395831825464654821689948823749789521528723816386874925765372326903331276458682599642734223511626767768954691021600863314986635475523950428075180426162163006121338478968953811272951448498454160521111051310566648493210259193193924088873741146606270417366919259473585741706795520698255573646525979346466680163167124810728414562748278173784326305373788516895019728925937539308760066241848168301195579610149060692988912054762475395992601256522013269864212980807359837173967599792828683113744383949125973589051056379969391264200155460839503963472121148831203485628867946972892934644735625013552716094902110673981005538842795289228673723081654279176504236467533543222564553399326247617999801718313453221412652185972187296794378444598217326920767481555798082472917167224061417787703563087106266322106211134753082535702353842067427519774507941850529739404655674120267240133586302972362185039160364532945535373048617946008684538041259830894634375253647926618915512745551293739454537146578418285458111389355108330889752773803711336658974548663081421778334707930206573875653367447622366435376699161206273881431404296591813265400622103567628024189701989900332881436617677517935847149989546369036883152442094200174022873899739580291351709952011373957566045943023538055951793239765757436795723750316862024362877205638290628965899323474813470712633140151077390362034211549347683980475974797012020166265722665623484375254169427617471862666790813906941123935736287204123230686833466306355769917961284249812107168307132143724751387673030176564294901930667945768836571139460154382945805631719839136455642459186856664239592934024625638455216357784635899697088610695631938189691893826303216084413684159921640554278789462477598687491631992839472645017804190043539686448980787179618860593003251914291889105201858683696185723044024404536681669412477927127444496492028864941644868913562496552903197172267715344123885508749864840741483445249432133166014741675138330554945197911786056768918282523742033844421582433965723836766608752113902028844559077470892911166303934367541642183685773543462931111419225641220969225946133402221222954695748467043172243263050351960117383793556866392859538641161851739553040967529185728837073635287192649183583547940612274246421533280907514587510981761957112370782999190495984299733402967699571314063463125586998093151412942044745649431606479959174753497068278449646767181385759095218866573669525084927937575829484970977339122387416351212575716445463550723276562138481415676680517512218217824851762675453917772628368192407998379592938104724032013852351750961352016732676483080759865522539912924684378667706064414668208449705376191101320918941539533177547097341544041702845116223752523995303392485773152570314719200276545326852288756391544156231230855595305577727039129902910374507058915017219158948706114023163157109019366897978526281393223127584278877149074210033458149333318154675077449336917797139285821665355669374179704180030819896284210437694392574309843942664771641144411071412565692162551813467740707926098426676568563729721828962336001751621217769920894443111757033035460595629942288615286857348016925080242680416602786513357967662723040132957371994364298357569754429321082143193423328614423829747978651127174184022862783094558738569415314712874827102376411814525496817133179844398147284679695690773123723448396118581461234874340896181493851705842195024742151951522747193828686995827734619643351287699229463850143915278353272206914144336189641395924755084973768830881640450518274311922890952182267305366337751670649671056116129711901285360473265736568244846101667190121997102162284421295605992325173935196106023359936677985180901960324405766609100321675210725300259701839247580490436896665877997176626158340315562309676681668301635226402620562444371750427833587360667016786247877531161877746954355832692966523972535209787060274279926689945168972066136216601589513956409330530432192951854915508706398495371716575319196221947576039888254460888828941599934736876057778264026043224794153278831427229681182326489032251731035846446716877790435565439199913824408334470379951814593270673465763617412966284152126281428871457350392178271189157844681284902511932524063562972399355465967865905535262946049954389205283219839149875118892986133701638277740554055470481268418853141980249161026388160235525918297253938132226275443695515428089807594947223486710705676145193726811284501826906593644748759855193756535317499707792903874704820199534318279571937230676485799014783648671165349424615644861113487440316258234945759258329533778779786231147207857668466588914644948640541084980422147232828419219163072018568212577147634207012780485191790123286450388280994006878623960527473149043422287152113187202269542877925645891789351648296756194361804444705641931994710488873537573002980543306394990249079284951423396795501568511653905777045313698429032289785595824497913415390974577735747048168364523872097168500796287760412631396455051948048209440827262784610740005763598940697303809206033562850400062661583560558394679898102703459065631527608082893790313255767083513489273976893550073321945850754129677992428866751437398779831925539622280545730104094001114129745989833717500410671651117307909484639370538114332546984491601702527945014900815734508589191680229674279211377496620268996353471255740997521635701551514921504966828280221550643037764852575707119760168222286794322538155974718682914056446312641587172543751888912149299988259178677769514297286293093381535361862347949114721849624974674018852156997321252963787356351285352231905652132128373666239802507684452665309741238119670957756668959715802542579524532349763563281049998444916457827894608719652493195047375577014094041257744340870669295624388240824915021167035401885535275575418788683625853414563262919939831491085312172312803899845845988313467971991481477975403701936259678657234422955549989626648573345700855117668264041770732208759065315883137215485484528827479761385632422097073923959097550517623776026453631890039869624742422052599647937280951462434189993224633864426683638992055118454219455258586805161762167470966463697967454890464078765531596388178095105459486687377413957420947575998343958141224769424924310103928345419833011964161516679736508661335628533203965245664005814588289386985530355635195296190943507673269355496827223459850425685288555557283571869961251291168185170231289163747018607304408414026383593312652450213599274303810159414375179950677291747444898885230544342088627824856045406707169104592527125550868678041688334564112734702565979673431935787427546094715651032814951245031685598381879097025359760190197217474064169724727770065368531469305079497232237672457981518038590576418421979507571352203148489994493451796174738212293537316528331165392612053832935117423231645201279651204661514509530736194679814668118171031110058867396685915078164713904013582899308984064698336884351882939499935165878640503966094629334898870230652489561598236893583128292221119293801526359338261959745654902463060760571479930794019165949477456170399621735455797387539157518645476349475758866909758689165392910031264653169714275408586825320726375956868684503647686317172962947787465352390993579259816946014325408409989062869102116711118329205001915867701372572100777788528535706795159609410682161266360906274207389695930979654039899755437572216061751148535992552032911638596438012067238354122938059229452120244251662801601596154432104593538802479518465137182938947837994513722607445252497801944356274218544248989478571494562652130970241293067656865626153850202779242685436156257406836580193565058324426849035760383979079034128317653580564937507836582130649309270176383805162170264947298079473459435747771690685038450011683994108290145923535754193858417965121014951864433728605734587265215476561937512446243907612409231491499645019215664371025134872097999832487690303782584977146635769836845008339844641783587569996222034003233720155034444338092750327787767348264232370248835852792259325870279910999174682495258938299557748977835422263532084990653364112566199866403444792087414105208515906115748582913099839639419589474499396526695320730727524054455781905039606168567586562109024227798344246747946853767474835086717786402954624188191135750375455330729331231995378960907395156719222633817882986559936776433697335916611150169149284612995994519027191114097525187454051702997652445047165139693431829534427100658485531857133433842007074344599062832030928123934825221255264741767227949913906814233299861402252961792275385491361778412254473610572658121005864766092957931845394337563099370613686698396657125541143815956816695176601775791928964998663128697559024447552948199932039559899171042345965498068273639291332243398283113541960517758104652701494879043964964271932852503268923874424959168537834953394794588425264923782815011133588927912523256884728443558661214472651025777842977168776459707015669111981641403087170375228568643958931207737428571567241146841584571171358676873934747585723839792354786799613517122169828618025159145330553157286249769769364125417832055715904796749982858444091753368096465030423910573085650322369993476541548471857709999962061589468583031697864039073259169186579011897601143039944721359644847068579319662067932579033581917014825218932514260284684547979074180716734178431125194463133360889439279295525209161317923963543183082634468787208856033465247406713281020548257872402990345815255715341836159222822389166163831509048020869392194989489183018210210741869484291157227600622695833236207874093963675139338433692725853555692129342956677045773353851044352804909629342986532412521715550754267361824883942153862318138100135388122951118034174758431343870186812114466478483890605420588359803364848118752295229283620538075138110626334901651335173507703540162172757608236554826880734594615659835963121946495579235986697902714403136896970745065982912890604852688682990882861157904369570940269836446043182610962787298204875246893531592011285011012284779057689576156226720340825843357584936332199193128828927766091414310032436326339100318392643292226397271351274209622236239958144703591058353304303369556669884266274851280013357998466776486785834109916705730397564295157546329834894841939136505585296347882456594930566965156541552467499947181614257481971562540731119752544723430228189662339471423946903681333588134269353837278729866717199196617759232021082490127521979294967865996329094470138846669941790655234768147320491270577203934538736011628659882124519636287347481248338191811237946633590778643587028968288354387964605142203495633383745051006298353629857400560520344136244611014607006105814588684058583837420957073045036542749963421941245154197907880600544381961959018481299184648595465613470111121383274312410086441159707714485264499267690210366055014376981971735580628004251361154742196859872650349042832068634018694453265801331970314377078181187350284635132097755375275763239237639804438269856728102043426380891084424509359624799895599902151122177330311510548718181408269525308969252760959171021917843632094326569042192536260339498795161830611628479678023855852255834924691460967788972948130350580595565356558917822875119526301382476858215945331304507647407506954484842052388865345373135025898769215104728276784367878064569875018640333515838550642211928199820516683895578992490265698384559618159713861100848133849472582588932827940824718251455771512586984425652266783299373494977927461987682669152290424727173566666319855513112524151147417825382096491414637113382750897780907477838366009885096471087606359787677050122834091019664831267999072390822669961250719313999129818213196837737256581298691667451357267764527520783623552673293540193144581817912339032749866276219090666566113727241489744738945487048695805715573870457455479734343812037567042016780112156461753242305351244264357548857997852362702355190372626505303266705418293750036095743299627861081227521153531641566169993323445360677962158354356892400470498942172447590405615756425862939203047700197558403347117438130216155150878319988515226140868156657564244334193302718610885105263645522608626332534808170106140473670296481727510406565261941338780767962293169947715454082408656021815451670001223390395954831220118037535486706757711640465097647975565766125631681827736337549356256580304294647739112751537209072240239415845107163195519575946248793668962989010894124161053262116763773339424916719664793588567915316305890427535408193570553248903741967572311197401282451966338097091981987956555544391461189194527867349689395474487695513881452217915931116266575773428045315142524515511128608153764178620033159198124659776159115170531657317733132690721119057842856379848179897927590024701081766934069834325183964459847632533945479615285971655311175742951423914823113864928479575617473708781398137551004051029408173856163465672445186621785300936547458643155423105253448944252897984819925836299923555528203249473062751804993027504316728824052163637087946330193290554830778862991206543167513830761337814968656264392650875094768644416392348166336624231496756453857912387963158276359717794423228247045865449276366921822669947643579900639796933399368810761987842174396827703628433475930929165579314857978362508527151143752630850097422876157890695791155252267163667868812669682265013500247175738369811458087589470272725934120624523104446066152374176884901548317065849642509646387651413814693824250683955026895175926336166264563570981038360442266890981047582895778104409617859965406788649713473233682899808627919230901054778221753082569291915112018246483910152452544172789422942966286929089075302993823465405625227796707832986214268454975854297543336475338867162874754722114675695569578728435358348892270290963159772606770276897465293760103329649909381122244409623398677189372749141099524163593717176412796095880633828770574990367230510977147254804536310439013679984377865656570431042769657954493403829498013866031415374171060524232094601953130755627140166599036882352775247235719958015938542770269167010810653800726292763626881375655793776916548597894164800458869598315011473234234149687350073258218422042640738929938595882297363709593552373908567084621756739047452902532534494413758347675090774776459893882514480859788837246714284767902218545025866165231250905611402204354191909743080848291499079287998628571919866999357388599318159334545539141008431125835462279630876153219434019508985219482893529321405120629696210903421497867539019489863396176035240914160863232957826306573795233887124276829966217859015316033519770496220992282078748494677015434169158575817489439102497027373946589084058788869953752472862852197466041356906604528243783832047907838076877044214584647353662071774167692453814473938452315832219882018219646255393187567497541871235332106582527022878396082113410142898826642673051637164020753358888718660476017525339809371854576624359585475194153387249814092049811349229710025405762252903935838164597702619396971065603689854356219299940920368499935969310831138225467517461261979948494209714266035834898951712976512998716699945372721107269828504651326055929105311673648989687692128625638939011311574403026210479140748293512731704772914916086547149168703339529586993269732266089199483560444293107046235888995253346093045549892239653282908047370728869652379857669326342449877285702603521479434038126585371527209439117992233851762597139719473119652048639610981607393348129219151355860950581378010063933112230734136861267773172554959250434107240395688580408882635584895007202770375809035526163888981844699125173636079035076000960963110234473459379162621725904331094785426662584877906035985282265900629942539074032027013286138674287431438358145319555144943941114912484195816744536065089461225191825316974320596893751186007619609755881181250579122013932027864496675860875182782718573870056126274853432976675138991414930235778295291341912633860299502862468424968692793479379363526106899064028602743014595794448672853143321990262399679207696770788535456998044047804993282364836664073767233728132674016139620124332795013631336118783515437453654722103603812937490392817974843380660470606682751875079165039424871116365185761998481641873246453681746756786049392196495344368038296878504435233843997055794350330853193325347868300549849791156345279319221731789713781417684836997811826814985726602912471742679664377118506639516016782560731011597869711372422100776669477818761250402368858996758797052412179699393614095036270402837144687282081298274566791834401131884391937444710255738329922990951383496498024042451827064899539534502488107829546886943565771828428243181999622590094404735385778561978935152552670950258231494839964652577689176696822227903595832042641972620538435725133855191808797943304781666648008747015869499294124427500190263567259563814361408506352196167946245291264362895205108102030432367261697820674709673583128802231196321282002850478949374646137521056506375069919397603630082692511734447637794128398973833726951338397033670350227043043509285683324411369952811387479461140491913678732214258064333017888731592504513262292965273787380849257081946751667795905380772396247393263351814647359665788165448988844532953668040663629537167203246815221269328505671361771229807229296994565531179487081871726476382406876762372539343792912786976609559243282227760311027450305717896774129211232284436485324354937477980086869255365692928628868996761789533251275479138466828509250511509355536537964326167869110622047959448903999780136996592712637499996881760905630924234620057395082094456677534026749150299805287652119322386203244517905119231799206048021034462552658888163121984820336985658926671898934549084928569684099483856582966877739561181654656552706895784389928206824157065128220843448468813698775452280451996201241778661237881254913299817564169925449963933821574037692602514969811421041810819264351142070736975500372719370919333390539861025428473294316764480798773768336063643719602300014065986284934432385429073187664954168921319408274419166109594043397185539941929994498765677071578728558387605495025760810787324372371926606491892699866933134209498267509688748746496615808887785558574932687895108206438498121106697606738184343505488594789757877148417242649639079794715074230064003658158717255271883311468385651522251225603527446863199038789626338751217425491428830164629526123812797761468786697889118665343195095924523642841556406757632241313006118644536425018457533666114210846431895222430852708883464388558423520746046985126107599558471729526684191313448080133596113031628328340145451919889402704558529490433561985114794633624438246356713556297464012954885310038238402152501563218909103739545189758795096578366341339495048705719167587952147154671208599857274395587452216206769783811683137779413432669920347550937136113041798469670715863028992059351793671690862619026141071964769373583281251558845208056636253122897713638272878538622984753890318753342520614894802476066995419848428512257215813027615572884581752415319978580899966181903207538092069239068551540638362526329872490919682780977878512360280814755498732295991242863646637982316746479861603983209832191630215329108705644058880663438539633794556255049785938386606468982272841176251452722212192726704901943337403555698149529808424114955093530632104024167007064139226496677028534411046722765978438239910134602170558226978658163494124398670592033422898904359356672072891549975857916063862500099412121202992978036554408727837114272568908732095082846643023852841395578188141045181586166079649670475979119774416569989807292942235815405122151458656069118088609446982018678603262175701966954723794658230477529572055517838958391599569689492387835939372965868409424950515276113628009844651236266680220085625191599187531694924785943178271455244319663206159877932933910999841412127120620595797581211113967744876419224582756414083213623836804934463813504767353732264177215845355640011932428459320707976215290912278816767022310178659974717474265449239973535392635901042263778227749319398523726863976346345831945591829295486650111411431225111828164844990797550155534692993189883793168842530795459493581971269749605240217913285018874599663137589948238859996557220379919223161106374048994404277128446882793361307847561652776972672543165969083252289648277743948661227833294489030448579480427289744692570055438745478942360188348677279195790982218844855832834692324249016810853233917225711184469299450826952979296091569247479487405593956032911540262184589618310243146609136765153101611488581552593939260186027303858298226833600270016565428994569088715047284444472167588153871400726438709875211544656151266712381396273450172321914543281851018072727651259913982316883341315542297304322725442022164668489787834342297324187366349777430839286418321513159010307386941990076308214185856939919746010062514983504097529952326594488732645524623075706125487529617887156908751010545175753677495784814235642613047864197862923219830625633383255425861245606064607486266474960467144887553268892247326343946665775484374127065339996445204421990536568782026371267347275318450279388362105240373800335415802134064014457400457557103798712964954098319994200144126680038474119223394490961918754728913834354911496081591773034146888646984183921416055753237852993156569363285960698927837049129087618425768971315513411853120625489244353352731249637061930878502315831451277513956966311599631548021778148266597390015639865810544448339551760982006565965758007853716805767227851783849120843222463048897643676620632951394069665099974459303558466660666370039246852935769224738493879773546582298735922422629816601042751847205521893479737230911472135162653883896595566014337345879162371738163114725035516657556417700628728286293579753614397746764822238508889042795434450273414544743034487325922288310961961439557960821547738905828940690936887631939991666695017389205300397964310973572624737210245255660289282786899992293558339831676614570962805633964592643951336124595707277105342621881782765861659367161893933862884328086992746171748078340516882466513120613677581443969135370745292011120499502139515420796353116294914841461932487969661155975745027882290168674230440250443220539501639816215567216470673451818025908829583313907535127248954162735563318613344989174094905239742028606252572647577368215499384925572228478665477804926426706928308333161275990243517577443318442575170841893036165258861053149388118062021030942143611115018345418777014838322516115943257645113067966698367599245265808431687702139194456793478466453302733395223732880030070531969299160485186967123585887478396910370559904989688957568853187012439177320495366802760896605535124623586938233652041531561749189136800183801418160235337999648332806453114795136989760608130521966269546077980216193981418971098510782729105666416041840004745937464396372379386577550454485347093690371027994431475176745677064486296187099358572492957077283880316144944525727226822882172728874295755362725724702865517374736836638043207650845992820623881017713820157942413686068858759829528328788287101251548297142286054665529939448714316977896896300451470130356426069945232088829621439572837486078071146282153842540475434575792301497318823041335266718268778893395977090619033030176251938828933870468572163569097217345832552504353811384987863437878633514354155616475203691548635224157072775564919372019704509167139948762154591928385464956506129837244416681067176365273290544300195237747471773263144139748380748592705863068707037535214455742741381389907124269301538471984663673393954388689602396779843099542363093652078687636633458171118454786237981847112672569635185059160065213486685865044499918769624767413671151401731994938272224245912184494823627174557166976768527075885547854013834178075887648907051852246732485772512553625185051258987969967621515040619404803263861607995777654820747330137652108261481657111170125643145622766977785376643854593718835692521284273512478117078432365704698444362325304583467769611841461454645099758949520184054752463021567900443983857570332074696937800657369616628756140318131514041447327868974316548423509104995486492719248755256596578324590529687754501677757485746738948683971671728465233287559584903384914563708617681809758689814450496860826707813413730180510291026676998275283000608961930366741335768944514936248558349845563729267765176352595370554688851328737598968342436999733044065936771895639715525874374646363781612836658661964700355510447215016051683345193000662415781822999592263848442458152002016900489811932645871778330548001395842560210465496485092577144589514967045468550101899145641759958453230645632326486429373354538010936770268092145343530109475471337422630515118576968282373070991699744914095372240454513855233670641243508139011771101891359132905143118159238799198902488302369261629849171430619952233816530377341352531194783404939392681589211470287055290029981497707947603414485832500343365068428862242199412151189020127528589176275367496439563397456728539224990510577189089583240443375989015524248670618218918068679388765263097548152164057366677827988510016620137636061016473237334998751312450186880121286457047377233613151654473588213473674333046488836319077317358873244348947239040119829156668171397766210247907893801898234493877631741170374937411783132714963819137153782256132390377679347974408378839571697297929916741248186392284661541637585376878496421563424373290351971415541176283366357450725195048010314894388343965366204141398229043321832524178076632514437514971285364066116230720037680344176637546283600431765183800654386358614827762997980125699231487107184525404566037334969816338349493854132966729329691657663679111877101668011822833260797452868532325445285852601218809149768659164163058180373848952076931847106667437935760519860623373652741456302835314691501524936080589864745465860415467501535421611826270628185166683554348268105373971331349305352948406386550183226537490227990215928167775654726588794717743239866972115483464159989424945521145788108455172347429732382720714340413064098059818244279427005846361061248504286330501626026901118101266949546908439851113263916821165743138842967395426448748704463637823358869346757184252304745612395097142580744019705352164744115456637320365981182022910225777409761858415995446397586620298833623219209286331068590689006033514403836343663116849269201272474695243482135143749367971925765133091486129329769576258399462985815581705022214998126015743134252610217650056578436696189224463545438192373250936128397551082573658650508950559562118311134696249593278911074979577187771416990093184886756997953740726171898841150250811955729826511314123333957990795468869799728131287996379901058592186173759721337103025076481414366172957112574922354130984532451923313895759411194028647059747148444384852807228931659602882009455613543165459442616738349312075688475521684172625918954778893702108927614461271073325799102251923230707581250305989019098324399338106117835562090611568346574672029010664057104839623219402026429611741531611006400224249623888652697947187165317300713763407479504645085783614984547477891488140563579230019950795884672098440829284886767819801870954636473353556772017367121679607037238037335402137135679523516454363156681318733265036505899652491054707014780479227484152453488995079996362093272561792961769568877543628974999680243448378027591178899597277175213222729672279904118231115462658139433588564181343832712076111612866391041150383334411112323754872195615724085673978645735992965989844545891958464032577499669378417105869808639396522375881058967384897985784415056567736982613233375218388578157674048270621735809451570249549464785449342162583536087511845759889894287998796724017808448675674026538347349749855872132596456457102691994199829072539619396021239464678133394337520056441269463231820384869482362340439015209300040225426295064091848530404688399360759005444584626519071747270779573829553272951412184702132676836776260766851025039422550135160852784960985516893140605104025142885472483382915277108362415372578271283977473465781504901060193388356703140470097732576287914420675635259417043914238534521605437051088476553860687690914144064074856189251421185551610652165775179377227289964131833177429732411141095385420699585471002626059146726400654522464377954332269894431603819534263795749532091837922452799994172978583689371773340669779522189870148944751729739429061561228232995165612570894683529155724016222020930957584803523865427774119013368399613568585564438756498345089452542741420099151350640409426325596164748753544293528232829556260313451168532442567857074010616600411885295917216728451080369138338335351354936119594821208134249426155476836073545977487393792797709355769675251309964501729747856848825572124224157446469579792191150881139003394692113470100940701289258214629771345936134526789664892556415542012878277142792205062030450505919224119670682209560083431428996755526136171398844266290198432080360630151965709522853265536716640901250555263211114225557822893548201778617959867580855201604631753345397394231999302528170523713798408144276189388390222952749529106867258958922851975771592716978790488739318256496858604489082979410038697952762891519884965820113785123450613443136728738340276629841693966836809218420232519825239904619300910612308392854297579236442239388348496902779716398090753089399466761199195640398889711380399538176633792669691451645419112923792640964833616460085832510612225037599065898749515329638192096000767045090530224196483611438791959654728655462201313472154135251385274412346700897853209376087344738537522377843305703456411953291837371358611942970069795196965149681378414331655675020523462922823814539486914327112532912316269991835197132272943545518476304699186952224453999117151827699021469134976643008917185553943668675391134149810038444479454661565177458169228411877696067421541509128483868151994159627306368328753733174893819367621527729272681590517962267398622744450600427278777521966551240472378367251097518869562743382274027870605004233691713282432839968649193921493981584769178261704341386893015127676651756487140853025987812045872364851367516171432011877959574082999550576034665489279862041973486470095561373529972468582481034616299055624826405507309283629268309314658841591716645255095162882936262838133989385314412819123115731606060016522163761968039904282030333393871948548674709467728373728152945872089407331554291999972049504501997620544118156811654235558231493467034399598777582852397051310329750577489991833519167442271229772066513916399661493762923961384045986843139855538573632556822734826410905442054012617778669655751223643245124133928250681235046565303338739268276346116735635247237137167982883272365233962225770688866173746575532632948186947267200901554612028261668294138456099922064718559494598319096667944839422940758041900536595365403695694242807819829918622649533675744222886952202181966117799309401267649684060292045459438563453023164686678962285191503256554921131736036988464289719108858892020887545029217653915201741028383810986288412014235096669721752912263766840256330461313881542817593266367382474396517190855209939926435745344665117682548118315060331123872144729683104357862939260518923577119705604209677866194746209747650151969487455563822307554698748616285003488506443746373438979387855667519389472998695127297261616485628117631324233738431711760761956912056474862374301730310631496780562566100629446258393621857625671513846623918291021672528790017335917816593532918667789164099777381311097759812778737518851164263692345673367538389591155972191199520691537645912137973639147401349050008308497168179950451831781964902617236675464491845932006846884636139728163339502164028399492501403218339890227688704484824495112896285284828763660520459528901289830172448410955497321251113724977407019759299251935747785866109954108448085938478146696309341090418338554167478618922627396496750636287775370664961642320317147629960157243545417685908672451064349438531951694566409322117226044463935989153850375828343166946515884341373726891653470562344745573534363170973390135161610558366400091313349847908307202729727560591723943581673857163323856467445455058932913657325503174089392339816163559836496305080495176830312409925354919689666281928388589450555363076732055996038811959367966989984614743939515930741554302635708926193006244527066912905489064894975710490733913024920293211734586912042985542197826181847732278243994715051881223260282772923365843826878371331124959967770923166918559652936598530661692957509413986000364468640484548160269978448104778194292665974699035645396446995017956311139207566894802444793956746553517488628727498718392811232365579011356112261883497659854452244042472329596572360526275281931805427608072691023925519887446385684593188818591135186629033342681751602515910247794951150776331206749657420068243523567567098277058438912449084752560343289960652999161477316275714945131883657688422958437384564186228348179944714431454178619407590652583577275095528982241892759674462381580878528321880680444338933527626299414207815463956420922224132837326757302566414396581587371361194316199728182117151654883338033794822121559613389618501876463963777980669127945982220790964332432279682319711135716727741828704918926561288214104119658820250442651767507447993626113681132423089848672636072395450218155476508547122499704626431065327404434377405612158297289834644046537156153469703161135845828252506399657682292381572061110628691444248645184169654830386188187358636785576308215480378119224147798157830071306083976878560896996114987754450554609415236373723579295433877371913422386616285077929842266399651985139902823884755119685311225668881612775583034372371554501270997286145215215001328847870385716557966221336235384840792853886502093836083803965577268414992848873842790879227830346458675116696933428839498646758811479502093586261240446468099735194864430088930785556782099507878298167293064696273756653809962401753128054324174477447139768167459339819381113157897848351165379453083453186592361337151447968550730413493215897353689797859066368454273881555588165003689529942643541051396555196064338055852746621497763171386956664064420685129880862793815385980071294195704220683193260448982569062998251148984825204749768912385846052167948994219684335931046998792519234324541076456975707472184165175949261096675561947953161019920940433803626584538800327882295347599982997899662923644895817252580935682451085755890706709389174772422319705963852457097883638916230031144146941868496164639303533757838908648971667383739291039922707971630222516233508661076367274131382172463123879482698595222869817638226669951296018308793942149479464505098649544467452620132863383485587597176699315088140184396793270490744131959107713340306248998381229863426873898737138755458897215201385532831830073443596883932764503782521540544853015083681383206048851520741684069480196522940921845193817306763372960599073727547759586570555668320395544053166978118903107417052989994531238147546343285416568140578059722353560175640726991712062559836812413022347270540443401225660312479231147397304693257977026251324221251915630052236749868934586243984833765499141257061402767043383652811917078610984978457911968782100996573429988283944311068967220942287628881881666252047242145605184473157325655787268453292829611178113090423723261948622648222843933341355242492663433864816427272988251737843753679873139355669375263967276817124221967469162218542886809317376925739361204248524875818734520473810649207086188492383497375216855169741596498228305249898856598590442628875190976712422385534947018937940308573347817877003460513431779186513506236668794297768704171228513271556955915156964001727945037954919609978293438285696932970921495666160605483335815280112180695273992248756862046151866134411661676266961013501299802975838766336233557926463920544652031020844672718142067283658168176727219492513389781711128641976009222574639502209997590405360655069234169382866358429995705755818963304977092529311692699238020831695588367272584034323720455861471033313289419180348884121076385968932776058775887787732660150472100866383518501191091650592781775865763221323489151833975968318383615977147333797618500836864561470026153831822899978867348331842415731169983131081761815456607308872640494881437775557831360066337104165182495254119054556932161990720417685331228342714887184201156829841776843659489641527859700312135988234152099838296856650561459401591148323982724334144871546958761302285875968692088973888707867553325575687958006387829653384048960214978942683148783580498108427837887163734120164111107224918898626948171915138333456326681918642668236951345389015855780728356981327675317368534479838141406949392440485916755274264637977537572617184809938475392855425345481620371394694252213256729517227781178899481286729614495329995825708439332434509284590877046643531279343145514173247588325552763265833944453604515015418513372735622264550104015599780572436679282144583040754790363375520086001659286186561490091591713815975215934226929399018175871950933378428933123652186298949820843778686455168568818512837128124925807775382026566198295846435931116424946813305638260787613007391268345955576886977409110787245387938134866675249579483792562394211599512165395393802521572130841273665237913388952503658264780925217678734837458200592117524299892479678650060525949942615377348187157443821677208839816827980972372122090389604705309325451973879324886379063232579049152145240586741566128567374467249805172151498373075648339973562999857808526081447209684063288012675755290413331669845378995727792027924328339817112482174691121719417677189087027906700636636180323886583535077698830122993282961204806393819168702728836376572763814180779758238680835841388991085823804701788468767588342283715510717197026584070936221504452269627688636903069537317370641898780070496646252765640968719888951298192205328773625348825688525052971793289978477072192522242141897270211631871788088821367604939195786864229273838134339268377879029677480376788494398271819528305670483930497580640923501303727467471717979912343108777161185277113609974466022553333228918578571429894246694791627152897703849049701221600161458674825594730309528683322746391428451116053610160516164945471439387198354075451264412013640776854396833938736946983442234507035497859632601507225814322299561596042292380533753237037292827011940495646614133230752975819465756083487067411910726337331318651374222778893416975780562177100255607372393598895985882213231936833692667896882113820091363351819054005090597791903950762448713657844490070147546083440703741502500867421840977480531857616462631580995579308763670146845400590666160771196793335480979219773365429123116864027611488903247104655021123580312945981427129267242436528552898743083899822337718371844733271689112509113672262523451291471516974886877666834478466111539494795890014750223402577281214180695014841007190786210958368623039962978722811279174552280042553348528010534977575238388435588925486007927733250355148846551586697016615821544124935853291974626228534412321569434717980491515912629708379644723817684356989617191553554995482929979685326264188778781351402332549720875408494372129543473378229510163754666888621645677186926428532337152173890851554917111151678036160569323391907629303149466375166906161550836333368574635151708928664053897676912514188194238716745678792371887193098113886191356166270431055758206848598073983021785978390468848327644422209645639724500960716508688018634681621450018745683107466750212099556855725827576121175264262919261255151401728561140167602648588701514052116148693979948214604237897703297953567829147933315869342387801791045850765670492776333422891759844408081884554942514580049454112830662932802520005346892962438269639808560536584476849929511721835481125450062761943045380863984454560335265901227135882509676446721400986275615148282417059009864371710823945998213917471997534643996762808118423443104684799511691039777565487497761097959821753796113973517126171974553849989055826220841511720952286114564234391363825325537742305330053660651919640900275858164460957475913617103267689545096334627743769766578013455182547613412758783729543697234655146252566894534292616096492768243743613142786058915015150495050410978858886694626283957072341708268189487720008728289048437961664631229825996174370884441493137729471423604995657672433051485161440874810713563475691051959027239771197936342586371524146454063848316350885130410667824775223457580948883631426491844067399583598341995522346296747639173684459681075226053274923962880818144454850335661487568527839562132952287451975520454476644838434364582483434136604823267184788777931547411837325832583098451965703105097500135251655440009687271941752861599989704513937938444079940673395706159590271511917226180834486321694937557270722708211517037520590268627545486726316337519457412322366834449329552171353526902691686966393518158387646244415972547832678705987193608164767507392882048787480817741615060505036829149003998498635240830212591249137885202539956934162850976094924672615621761477990192084283966378337946621875609401472656020307707544691556473309206637926989547031992051947475824480572516279664361683182125850085931947750230858756169788568678365616838827548675563175701142102419603355826118887733828230957168113774430807411632645796092128621986877281540856789090565225629399206261330390507147598141996660754489042016530615537639442251760277652296702887234387311675228349164665080250754525537991135150988008827941148121307606125405178155868827442683475849205295842409807840375136816397494566638089380623659470037507136133862537276333414928101762878334241371271921846056978035993812944384096239300206894435797467301101251644956075653962616275016502521094694022547576742718405954187376544888832652345432188866965539419888989859011862224388320229754680693945781664565474293556239336762997229709894567811823381653348560473739937883802229978519164292235531645724339350531511684658684103766352136715354866931292364955366979265494939109695069626823677116063452161411784518633861846739850478193011021620646155045473906793226365875671768047944149150426846349421166549735970065483144379774659465948127875935057845211546398712312170893071072239243790244792526721851383748229024257664644270704623328652626507173862491137449399249693302015531731159310788868113854314371561401871916595299888121805962875105044797235975541252901538192523254128679638754592167380344252897729052786193071946794386109842588533697373908410070406882032318039919714766291887320173269708616898168686575014391772286684590908289778227417143317144062069607787066521607570868666169758207715477341216540419378273727367344054655940660599554523539364600443778762606310435976142215714053569154570687712700119332559534832588231914061272307578340264698427059978183360852524359528019867816235393391423376743645891569357112071064515755495173631964821213614742897306126309017788626015240062400782344286509404566061156477116361076918290527076171269223019910931147492756751290791950487707293056160380203453438048339603204537003136542512298033270009273055985625493568561460413257691716198239924198155663320252437785508331262263293684066910510244065206786864705499516259035716842282695756774757175341451059759832461654277242207118368002779985019638188861109465753078446644261535366687450802847458851988997158807839171451388625162839822246557522174128226618768236728962967035653929661976272491500814498865031513046494833093859819392813820008125018676274147439478264230573739807058887592542846504868576528152927359464485733382933349100000628196371117480955637647021311747552313192609133682394328757840044712464518035887567931924698887615190418399723229443116478644541263392095223898127175844188626766120783755719741974724602921756643931174905247096436316377547556143737028353175596309914056457575941740165247141669028073828988942388613062457475571358451588256795679676212862042631560286164629383240023231240852242277351832541553173002779804977978821419417836493789070546014604479086474541549827855398179863561692169295648431396261002047615940754968693416148166791398969524656781751654851491784626597894539481407504558601307606096088281619026156066847352354077258923903475952857828810826716665949684480555901911324763909814328578261721574339740394792706071006234326663694910987849335071463881847069154394777759363761736176052484362526207677936962514464093469930715103140890806789793186355205513670472914617746988116746038341540455972485551831050619901041456478800646564648770313680539882079595956369686595435341346313345931383609046538981878698378865164197637367837805298639174649941356327925917490055388149469965294770218378767763697823188224727865349734019888077553213244297226743627242541364383836369811799012655392718637306772158522726239537447575609976934850766901965702688029882466424452298170023076734984576020492747571340191663113478773195322176978275107051193979341483497094742288645442373020625041629774262171620028664253753674589484203575861666360339044881876649144317973950243257582098023142545531710526071272512031844322142621598100558121802673706781121505465921785733627179736662816983943608163278134352805044627788605279461732358714710155057550589993398009153386061410144895452736454757644492477751846840310381931196343444156026822518622322376164071343556008043678492828697078234232581437537465919841920296247427054182750153161659657586176273427895790536868008635575511151975718443027155800579389397140586572987933225299109708322314282357984139079955045972990867063688005531175560583286532156140688652898292738931881878678143666931634348233562357441872667909527215077470595703462298328387001904760139209899448797018323715567511811116822018412272612902628417222780281843961148782962827471243227378734865091617333106805465575928702470253545177014434459285339750377391559029420527973890231944918882429461785116080350217476339459458782229903759379396298456419167184105628278534795163185783154157477197582796251531778277790057792404495700651927293723315449075716471872673443997038369036621326452180001654816149033422946524044459655760681491512517428834320962477219904582164993604134948559687418648589459361722120806020157608592307314259452589515888796077758843866372942976784783578778633803949546809849231364296471317213783225078399903962639924556653189418397293367460458353870150875181286363443092739782721607907962791490178411721468672280581570938810381905230375677193133711194269301074034182965152595578307467088469861955557072598141584080580103937766141577946355786460474973471915567829508602655838861901149687948937967579745540598954373986116307728355063064867642011110277534128787638091557626400524546334502579197021874845452738950242228228675438885992001815717473266909228194523021310984023987204016023306212895172468020168673213628969991991334717984606993708583097489972786326535280774248711491042753622306742081563295108144835553183212101978987495358858139495411484708668656718284605546415464155347086082135084640631896474769019838419800756415681998693760382302808524160744620755694153812377894584021334351488649673876495952854948142537713614944462831272467645087161364719133141578073371686666062959872377562664477932355268496837267976074357777731165770464311065188689759848047719552789712945958003166155793157921168440125769001811742745963989804552612001726174121613910291729241387019487025930332953258967514167216722679177421265373778628388584592729418363085167864216418539157922141386583668529732946971792643742266546080590447349451210296577094080414914127126875914328877361859244743334097290095551544092391788227215789429666605670945104029512548726210226199628702255084929253189204878961094295955915981320301933272934498564546616213832866004632391419302014752773899578751125576243867148986498028999720641296012967390518348669440055691117068088362426156826950713556155536355272685611988926711301591969416455722623259436380995721512450094454275629498024594669945021688791137862486580318745013261011416142865368282038159586501918069080739295609154040680549959652236514319254848917155459487004756652625129737580646911292575659882021874396968654313060064254780157917474405459427501396115932839327808944689947689232649018283906782121077840317558526249219686997091152707749141113434027056424497242777254114906626411327637278059006852829616189370992079842542854827584824392096901369152304712397658692292699306333264138474926616922303426456565432566243876569728820972495871600753731569654406214443867418327706835618113358704325990464705443401125865483899820427637959812855127141994530052936291660038467220098618692972914668943453143795639400599639845779067034277228553118740986590968481546946555184338025093187898448851861123063098013301216153804122064339218436409531041994749349330688867364232917937154615351664550971715039289593706132685119432461884521497561885248798614172569556809766647000913492582616757653385136491078510880867605133810574877162111822248033524956334822899276834962839479365874287991906883180531312066247474694109202007175310510548316045678106437554714023395984091092672708941795093255313604316782835057661430154823849300991288470454759726546466287994837196560768700302097235039955522705100479080731687621271242461872526129984783443282461561341085196634648097279494239119734482281239933493082574188445485532854526551348753349828175897531914094398373581700760268775874724620263989795753961794044768437238355831845435980855124787328878424245181599814720216987298607738482909733940743342347848666677040579994622577938292195317154804639708670383244157864201992238053096483636079805082160743073334545201584077552844083191255509664631071096129281060597004828544943475699666089560705672388868652797642963820082639514276611083221615190720343103444677562012289192710189814944896258090986515203075957326966146825341641335031835862274293413328260427938605483574426717441124121783288695116801204261307555144330486471866665377077087431721776473727835526955798112677235282996161270337581882587532429198474939697005552140316719812700327329687717350861130220798995375587359634227394461899839009801663703133368640709490685320670794647181907249014363348622354509604782451245548925116145564409842740637303507975819247817288721062155880450203283731129405023856294043928688578724716994260376223706575664346279186339345556445438940623130255852546700757562363687371771427370601039418457142517955795932734390573549016928159177431590216267631541590172497768311806191966847902511261992724549142420445829929368731132913118478490198357112791510016932671870253095035456267733192984252690364275809873630698108775187788115677859719119256451163153896216322181863655850521327466818396715250828707973076589537547377218942510132365046175359778053410723480562468955421725252418161928029159270205751168157225358543867111046662411193062493794185760766009760840146447843165414502319863724244049677098066995778209320677394795382126276899838115657376840383739503692156405578982012977748051660053538588084919651785340924997837079070291321453142830762366104256793615796516273274796371322210909498048420987508926990884504242663148443594222494395174383367844029898694481580099221850417462477512770142413549704867758073456936194313744682379769414198889415394142214382449599047170641398962549773915061931696866125512672422100896736177417108355939422043892089746233063173450102727322482126772329669927783855480284708322097944288611476929291344351446595576556546139331694648120861511456583130552294047255495108619959805535579690761211339317943253753314390223321976689312199672569396756288441438481659033677567444869343546903125297564814920063753568931740850324870869425845227174615479959195687902737188593176019673712860715497569956756216303325967124959626189721427035893562246667607503911779843447173755480174345732437398648196836174135317782283806887953064353847174860120584827530453853858271371872444