PREME/G/MU347041
0843319260097980668765831017887374169147639626622615286671152197986989131154770523579514942314489224445226202386771550488640695477429408001864588141968443351993555062955969774597682564296633436504227670992056633694382029112527256652654795853586685184196804791629491023448003165459466722047248647814506438064826654963190119873324042147577454164289659993185459894392934614364107111929813378643051637876611343898302389132049349411654665100531902078532984885772028770331607031872298769724891078236633808408152644971322801983110845395672425773274366907657199755876070739872581135256460757388590245398798386630213210357231761384082409991595494951656279601923315232486095705279786800451210027690219041284106968149874785886304406493680718837007125081914073398607813099261749931846251369077572056620612766106104574841921354536473758621519293877190724755996281077499636572835198311583332267965983519852740650387253128087845030765932494405697428719317564690841104598381707083994156009047746828819021858838879566004516073866986660836722348642223773558008000377619201475569325164773224171348608847050587010927925130321242046412468116951899997284193558442744919047451288776223319676794762704646344442984263165208507491421219766403572949225192565263652410894801356489689957624213715628676363869422746919441923512667686373077384668183855497121938671641101557524611816636829136583211686219596530140745656372178547830591692550308576029365849906064528698578335312485062311736505578669234012358293638567536294449363844916405570235706514701302788582452011640551681255576091404507070131131843901531069959356890872689507120233031731738717357682906035400509387892585756539763987895729071482422213456764687733102668549608335597432978758017185464098180741055007722159280438158775302254019661903644960173344943540929096605764158535438354829985528089316060845727820608590970308052454666263667157266571404462704900495718005978742869221206928666796635445379082127734597716999427026907161412684778958876546592080492023861851285876463647222196528228367536197064264299320876065866200120520254967758511432312527365389133051842349425238880165140570675901113165243250239903264709606866247407513003990426437961982373100115739199791554156968087118783043905454791760502135492348064793111090078161796759745085217616562127204038720368268863745889092436023034662925492654204772654696534271181011043162295264791886549357495333787747888797111123203947984337774980324352277177344722028426626160871244375848196576334376641806466327598539560405079644186863705514045321622531898212401561408777680771912370501587359791534917733522620353667379170809807542734598598323269952760834815155500609245282048659506315549579270290841992169299616950845153302618768348926763952424263339995293517789397785644309895819919320386912242603516378843940682355089361397285375785025962771228808458899766362593870554811595512720986744512422419174516066212111620408242576484644305218930191746226265549351336298594622363084696468543341095493037217439680958918024173241102779413231874188421685105420432733032879079288161842301325976368449319967166475922907008315295639549062504885915757774006669828727925551307188634046694755922993903062107996587330513639424565248002747324472305406370586308757383471235991041646829795748060503605473561830386191148764202614168021659390986827466650360103193977778317016108162387815288636319478696482107681451873177700811536515703122286598126449680034335192376238711712109300655386316819006573786831992591621550515573082948047405688723844009337949648742856860098110011346574793018521772500944667780705725477479859788529573483317365183633242727247721810960535855195102302995719795658586000585937217257203964336791154654364797386359515371106154437131063329750129540971311103092193204264745644199748360077297262564062921656133102748323541427736017628119765398607490304203734849389418859689451926925172381583119648869113525792866624544817300377207836752552610830291157833411971562023929734251146316269687303956666633102425443450943433458780256765276055921890585186209032739010009562426406263399444271958100987194830746945146871371931557035907897296397064859500694074337557752774272933528732715163121643862470606075756631632623167942215384648570508675291153827885552336477194407987791135101892059388754755800541856451561346175490975978109582884503764947897676169537051188733442246230379299228920117522632715091092917000379984162592321031387077977412846454765610057595675495104046648164650099867131151650345983519468937934687226509511063306043106012672591809615896580517060824165939851514688788412352865074146389191533914409714373061751816582117451011989066409222867404257318440223375673528820082061224911595912296406826365460854016321263793615924416679835356199111335748248728159962740232196967571949025304806244240541383933343862169054509323574021268224981693782099687606015566955202517419922342899810090536603834748044182258278294610546461878799539683065293057084206255619690334275661051434104630393031491122628704483730766896644063813107824759398045011676589441073499635668441204038549491424713590473317336712603698362534229189838180647911430545066690211934338226968361336533148626626547786280235763871677749246837716413911739585062002296437809772881501100957442362366412876288081234118328313047600731919721702844546397822835681916832693987063875610883370630693907244193448924131980928004726801916825845816779407475871518977941725012603909684069247420307618204126762010105081105788526412120033439598914658965485649888901112176662430177097295686931183144494501745778486474636283218115933459200687848878243309472897315893867992026429753824746055449597074361356393607265050140098664509117469296513969955833546811100150840950033375294385961593707591659703649188543164029505940093018463436101387903273792122644934820152720036729673221232900257533658898123244567968399210202746290013882195510263946108751473865998809879502525192640074315047699968975868989944939771283430339827688591724463500262166185774900549426584154227413168153615118056363036349977386952815608192828682363782417809619060500114035087270525368556650129045418684385930441344290712442144489347201850989385196904736595354985552929393502610316147701092741625155916210920666747678964879707829337437622023233256584387961717841484199064779599461776126318404455682322269301028196048823657292842061471950537419871407136587443162591440174855640588359132319950804976409309733194666395620301556541373610078864039597128196949573407054742450380120898582547644098419390923851234521484051399881100642469623283115807741466447221826430794964345636657365285124763557591270556308629419896021476980358919763250356501867251247010965175907878808158011956465428576625225565199397317497666906800985485655815763104471736623411684436304671745032328608671060005594567318300194245774969388712436399227678136382549045584198664562123570660957023582229035754834595732965764523898393790266927919980819737247053563147957508757005199482067314840623118366761251761041874138832883726775825956043980231467941549282304846361426911258075202192505545234092736981238306183666823211236196030445093649777699209672293471587389554417744960620084835696042128972508694082364756774208997257145411485136758698518335824438168277033263821937798185858382836189730725913587559678406374428496689919187967996876064689833324771456216463497672539938774021205914358779781464234026188076593572634132481961587908556906168446934014281847119221688989626989459182662229355494655493141796524718990326821032056855016613300092374986420046737616901946493328669384479951384009574707643662530359114586607096965024421837803394356518709423529785456319549891046941490029808942858690374116582822699913855466914348766756365588706360361298676299974504444006784472374261947633023201456640810110362317438446250382060226089692367219761762993057441446654810281803445151324076263967670583126117368722908922438106360545459928383756021960348114933765920365562620825473369047798797362629683825205351886319649322738326518288901353488730096364474282952598145245344020797307329829305395982011677886465612590472893482425002564458684159132040123980523874360495730643025846098415133971333307070287124992013879433829931707269052322180727463999184227482577849765027084064293208315984776131465434003731676662124342454257022963221182862894953152909649166655484682724174829587848989803183833183626684100617016040261324663600871008612179514118354987997637720775150938564175218185376640176890231103875706568661253344503601175567821382394210244568957855696843140032467644729381167483271923786149209668459330988408234299667757689488097763134248443189589709036131461219591850091529580952061950491401095094351380141763707677808488991311932779512888637780890971716277796193560555695065977891318444131105856424538413709750154252352735909885665161623826025860033268237977651286916563887687179490320448344267109083674837695258593295429040704564669847985966672005209700955067108975610373284693527364812878261723738702395844635631250936812426673934507921146194369132783764907163738622722922131140053250978170177081398403963750177796535756047224146029069980558138166613759475628484987210653965980676983885339065657898427193359471520752054399629922626883254934840791159213531899790638727959888326658740452230790670257987601246978400630539251708276325055719311717465699103184262813688027432275004141981409636376268915798472046498057934335829946895745554944125827328485940367945757130870286540701149594141702925875197982342190897416631468230037479208806213914223672318625468471201137155146102228383455551425727983260062104944383442147969458383458415006131106148909323358604051373232931190381208617738324744141807488219608497037296863446996324070283981917824921929161174312731505810365428301744906815675280602252045788378932350579628114496470665359812139096354236957124388502607628122890668011207639536137994731681715267645227740951768985819207939704496518060739616265927550506696528068430054238219660044862718325885128948403147334630460431674933862004166332729630662417661219402653709473742111201867133233985661846665572320602509274013258604180362408381019129447107385830023337778354265307713298963549400532008248563221362413862901562801658121206059536532421751094244178729131410028429193797638353493163942676039335521783450674496302702510486495567049026196677110237112950259854585879530798894549057663983824877455320170183716116415072736578767549505103748912485311896668104692565262782203465464650090174067077987139731047119274493950449140066415656817166503329920927476156843044233801319125886133269209644209018174577423649055112046222686791867124504345865892667484310139566050893437422006160838647845257831789796490652738153761296599196509998285048101924851046123872563023932377822090824505463184481582791453932387676844558369360209309349073941538620568668224700573435219371996018329743316797792725809126081317857272050314650912945102014491904301745051508549464194331155762925187828206620108858436547398692869620612493045315385088780321852140771008324423891281043833012599586793833725069003204716790394924524922480258413431535974985186468850453725926627969963133393088184392402998513528532227320109933500384702467189578252674738788999361738397090608408049632909872495484445556991696803221174050459975746021191581221367608812253751550231872613043375078035068047765886084825108799122314390757732026219806629240391123964044782948695999876771060454338614405821018409807821124647127125562884260271036609049606651983654341235300654722460718593856990893879081727710894518209362674070045590016832628877968863187164515485778375374433260683628348516959345364131000212459892472721268130916740216376717428144754536624292589666873010080823866602634687432867108129306908652074963575060939736325215554070853512895184402734155781769690119464977118197985160907752276182766015018637158713715378286613313675116242543842511797740470281539947709615129732868847264332243284517025789065873125652199851277651808546359042413678311279368804974126306409464629330028547262508705148723460370169431073200317765715313356057167354603951585799726037690018080998243841491189932063181137288392169627945226092111192084119504959909528201150594386584186500015248555667423695887917928621524260495965199693416096725869934022996785980528619442452857241443744939963924179581125041272943848326447861358204143548372719347961376338537207296975670444469983793035667776961834176818227082265930575280151939358858066985540433930812112564116107941867108872000277922419234327788602874425552896098816960598769335844716206036943402747635960326863729714541508285897252417066188819014307945727088473142413800889018948842972312526597913509096144802368652233279422584812269691270382855311161952553000164139318127227389726152607250747046701968894691867478249933184313490402566432117585963256412995999103979742281042089184001948599945823740398348182522151355401567477954811799311960261151023355669976598237664953092256529700210447874674055539561610566022866552823173949623818989018366714322943748652517454410394533188253963365124398625866680439886837078752013034781327367333500588132545023793178171621797116520058826088263979319973768123398094563946166313165756506596987945232093635779157999147239849115893088809636856669296370696149839191448702736371219323230949164514060767222140183484397159775434072449193745462330131125718910339739605999629467029304912683754342355937735337817180039372300234615968743242016360674668204691075981686757551022851988622916671523960751995912021386174700624889698871973628671790708723693512616196637849624034477836932461258383518467816985251302670962032412361147897366155856543487926858749669396017734151545443305851713660828594832830187605376740049057470241442647304273542010455064535542374847356039846624029934797596691986744434663866533913445625402891037881413092074765025213000195623125856565071183320926242068999039269127035379828610063802033496761493344621328904621457799780480612783512092111471274283161389394833524950722440898606334117681036880117100282142184401466613777943074037296065450753491926723923072908491553386258863948399514131822038161037636931358070255893793792010266543597983916566120681045524560779518184401069694010586331006455170749117114985749408781469436828311755319782350668287340320329478359123198455292986476991686497070221050980338485911648832157734513804740400301962657393269158652166935692189617861362772483754887734865999517810586406770833922381472697452812030636795034554476136253301358148901233393862804078990914237267365154046713802704921721868241869493041148508658461528898937511136098296637744376642337795234931159089657081829093200390067938925690533120209306486819711517639373268488611059850146903869213892030917354111849963838307444419552245544492246940590031701524712857489024171347242389531821934824698520513098998986402297435658637442769755854122002790859160906872836739501907535969522904131651078342049471936332420248155367543101031063886997188112426084513861658733798387057993521277246037458993887547890892291806670949437908484377582013855020995246609494507057877204739366272030373255551281299489339885346349618473912103809139536167153926838741189062890057192172539592937874138375320392367662498793398929792859186636787563165787011850300813938659675987703224350472608285330162235108388563672079482349839907061997639723284501480199899218863506558750941109755593321796831645230031753376988823344473676264299850145161606369005341552688388963115861244635594657981551364922422279977632367246808434366737603726861755485550278883097006572168527361898744964605089463818825181729163281680942377519033682594962987177032435885552018645219733103519430496248895696082094265254485076592010453821734362159076463933324133669741446155847762060760678246963436904429504567186634580486021165333119419126164228156254941186003721616329108150217266144403647784759665159493559225688729275175007652068605178849281342803982097271420786703346578333401480715833364842350233510951818633108410388955642203180208589835964332253207779387435412420505751554505723781357727078770910217786860785704330622681859795795667093601112811391009868136233134704515244201966695348870384821760139016268643652760630301696273910907424390728270275442603807480152152576455351809804176700691796543958559696564984269808946393502224570651962485950314770345876713381543540544086808254207822527751954315257799464626772950569054026986886503660056549825708079443546367141069948548972481001505283014461738005928215352596942675699233873324744267215941019142969353665354438394543286160890207234621408201826299284235352491648062521301780790857458956074031156861967679824016189979533655464530798917288234119345874110783337101769504268383805089108440770714272794195765631107278154654226014992671098980390328165361619276475040248776068081979532457295363146527672992682823957155011581122014641340561038238218266063106729142205429192832016870168951663150840811610074774894745630318650491918598887586314728253610264162286688993422118963530557994615739357058816862856249908960309900046831354488249307340034251070463434029383147080356369678589478759768351303350200304749053241362140614035495797303841421813001560397191606376643872412936783789637648176470044086876953616951992819096017824432037001959351341858321496995538594249536336302752245048650520778639572555032955477485385926456327157838342783039595674321108816248415886850180895590964448031350685250792180368335959793292140106519198149348732650847253826895272624178147888527216689370333923578838103676462915977524353483653590390027750548326498119553219243397514034028165510611726709753937734975168408989354562145597805444342650907578570906822075055036506655499724500132652130001211550165893603441074696939654914253618596117417896843750759348022229843686628488243153531741525007888876335684850140139675881277346753893024431752194088195464064458320118245317116847506655503925068405322532148084137250292022311504865580747474183903996321255023015992503078312310412817404890284154707733560909119583494330785107877393393623361806993131935594670288468325731006950466657245868355619654305168780570726181798429267078683839990121702566474595722180630614220952846112115816357173050732878417788160601303052916364902342650852496402832147406901677087448378290033561119963799533534634686095901984716630698497096047517511231168705450721125858138527503273724827153441366621117185557782347055203379973686752966012154384257798094979080923065272861842131106189079569498918461290447673967533703612143244604961961230670496228133933337057655662487135665940697363501613163862205366161780785741775506295848121453045354046281788542214877143000362213996181698858480275204373346707131325842065392127744347201398678363513747473383527428418675734540753981592205217576030710094627178296415124823602987749544726845222095621302814673263647471913760268306572323123806505105163963520619053902057707094955116003724031200879834767897388425913182721348753440487539550872221440579533475290352287898376884198830386333139224878910117474878565104560470535169858613352791542347913037084348232575063640759907700559199971923771491749279863084181664359968293852301339110602813493958027009650533344139884076146825568051679255999751373128473947874823519602336359620824890526949187350575070574615716300229418678780024657955812026288867327300920636913608588522790962672238249920319866298949964933010540016619924547698769327643241193868650642730895672934292229230793407152454636680742483054912857507422762004982837626921403540655023449453812889240799178113326195194659656963934719033404132379667162794978049482017697089221489689004456505427398628292459303879110154544166626195924851272383609492495853834009680458731284483098706105622436829330738574320732614220491742333931464250163474523318014791349009797081465316765759129114371005977243045253291760461887419933003727839789279275306466340396463880659945694405192687321335875137490130887135946755695586539902113275990521961528940495645138300587831986558439170451459588604195932549860916569217770535261225485062411296893421305393111729885506821915737397419480025330036205218625656502189881075824251211853906893392860057910308087435596405194850764707962433580060070322968752305682116474239052898835735116737395388978451088775142962125422124185283088276883709851338200615671339149860997290244409535803704196003286910436587842698843689137256192053297763024548936898207519562704044518945961771773863001691598299902578259028495591125712757632217432548514724462773668575632206454132533859013133547449527104189931033731838503382754452372457097555865942882427119100478470023992896211274674544185789023992118670796533429462343540183350581653788780378475853471025366607118548747806114715918599136882476518256277782276805448045930492909606496807530535417077405102609551110372671926762396307908718360714947314878979829791631278938288617407397774020719202917254357193077933471971330000167482711000842083740747839985628323427633923944680691025757027845303854569062798455189032620468333933093465278498471845287699046165494316184945272908529444053073829255506491502249161049560596555564783697701072363698922255141361819055264118782376484202915858845578713597820577468914236375356054550818749059811836083084891928668460861288302964895489192961840095227786336877490103522605099539452789645515851072627452253238849219730453383756337593291988437830133021812185377990403584953797932080282194958917608731027476106910218679487699172628181430918889630820251716620224110715844796357812885458667006963460313145896609238120179581771469000960824195778850884942080997239898284774907629454424244458616350740482217460897464890820058695706811632800153800943537639711683602909793967838654089996319822573981974030474398064015102566419655471941333159526634708842040233545271478675976113005502365838251619908496373355701181178852597386693898687936012580210439168184184270764687645094426445040929042016702773309338927155105073391137757594776153721156483536030971204660702083222480247263912415846676085430710900935663527076283140460084545633524876865485190567697108218461499023726058166520080111550914362904188452585200179484452012265050461065318075279361306035394518966516508073807711123172439623096958086506796240470211730213000295738411491001848932432138560914746368825202236095941110467512418046611352760859404055213418142331389150473058511232255526307638828864256365817314008661725699524921851582414021994917906697363604119456831261518484312643674569180680834871746977267401571151504402613819132397929552501367903397307791278835924672797184389713706765148171042688808287592775526476180990599881452982755795686982765379125947528243783169448931877690116496649726108522667557817090617791225333787416146481700793772139785897519512595113361308550066910671231240219119340457075543593217411920640862239515690733159196457766479693671089623210176985180432712179620510417531593098547856177036337833677336648923126887935111339516425621575434338103576848022109493592588567303868801305065265760642320972646118093822067916776177876017666446958241315887442961413328660668975471005500583310259185376610904296530851599259655020218673690664925531171597849663192738990345292127951922126000014648320839324348958591736809869539697681470209250162902917139388101982544674673612882004793783199865903687656982425996045806628034481941169070462795296185761224587735016352628756614652698870041409242907801978237533394485002144071921356178503956164977719835706858686789604790540552295824858392471787455119218195467702650851900408301160817096826149380069915264100659640011968681411313026239415239601311492695609445421548607188340725756778316174705279503880634732827096611814628226755493873683280747823725668826265943936411621806878786042832902136577084314177137197462417757696159836123655902314265226322299158782324660153428157358335450960569374860374233143171258458909996496306246572726354035748158653886960115018902147886696369041914995926412600319318829283647727405892137074848761217699416604381948053721757392328184114626318964242459731665891748790009613824489378852995892063887319718201872989803304124614894706993216752030303279452034552370443372998698460215158450759974393136656720812932736418982398694433548429478726144582355423035792740594555285262460856147365794295349112729911230416930972181566630141612478568710799938272031633749278298059803078430140526951246955484487080168832981468835293090908874053456521870982510527587698124042590240212081376091683714269599528930294594357127522321260412996273267800619254968749152212142497281412482162817387835421985756506657147370118120344456757770146553306296825055906772650216022953075270224757960027022353477909790557935448826196347697295930823225697430702373176719493945055433441287385063511380494337556149676838010627571386683450069487245194834938303494306840153338981272661968960377380379841231726913655707515604453817005399028506638069437604391589999309315009086375404664408256990322358437109867555838467628922838900135201594348392594333753726931413566909332223928473652712505079012865273964314389169321773729308193313871721655162842403515059452901874407103013130102083354281720770935155055634655552402487886112392995025137794189817443214195960563264483088623354032038128889555195595171582023997795577522517398273206197463352823829127392395198691897303683717630752366465533535855574309855685561021874341025908732048995561049882884224299196943606204446887993724650426362842027719115073212739716962212210413745197916842018179900370200642172901943025450924400707416701130280623448084116127136243864457891002794405957329011216294336034149206232112593818325123612793821361723054051246099979819830379065123610632123116617653640405999729673400064253192468216646345767904645426701832570821630804773646271397052956453809072618102747465437568387765070707178958490367509399302140478793729096947412905931420391254721140543255392916057868697820053470693789406147440161636246413059014957393060074046060308574009503260090004769985532663767800668379777345870316987455482945849948940515176578405417986816823828206008979929818713255040229133382956143197108244597560561492392007686020393010284489815138380835808705192216203074856226073748222658974453804801062464314334255873921148501130840562476826551818657600658870274311946733333704054121245887596606462691340605230504068859706417660352359922656587014556200476958091934655386974620889820642911947820751979109223831996296520182226031796029486690769571751604483247469277519190856553384269085655231369850303496334017844329019422717026567493540437746382192177670959506528266886311232475444725689709533881989744767107285975768699992778023178687252876939050551071479660311747357607883352723493281224623546124399690632551793247104175997746420151261579749991375290375013159482394955506606720483996843730163341808662463830172501300243360770825796670506682972144217529452337276725716808606181212373458016623155273118267184135639114117141098914486828755987013370260042884843407977336995330637813592119388432065034851630910054636078167708940304702637741913108530988728196148539476964987466471666259927484963873054887936115513281993493485871242451734052856062687680535866749540923971722733800598850795739508355014375165961684066188774305772243908223813179974412041925518957335280560386808353695757190873045962782379230402978982139549250980370266585749587122465707663132060799564108744473558339380720406234805550344057498045265694886323269803901835613276027035116424854638608020192133983617221866065065375551852584084819998699944652586719372303459602429700187498971707135978836083587034262395642827316281250628763226668634211883168589576693497501374811124084191348780040287851938950170188084408003567248865664470918860156063676384655051248491567807998692317529544861373554516851312164234161291938281435625815323278425123683134628671383637893178247274705711650538966255849423330578274807536775072099498667113173295974640101443868070415899226209585568835828182382429835347877109049425751085965062519353181979632824958700141183004184949703388333165479051842260927515246715477288768384898174152558152080153074601624925345745016636502729599127246686733417679070116324533418500108674448987304661593175505902384963466332987818180192332062270292855606452485953481278540362718349910894237746509546865735161972507513313858903987702977658059575262721784656689740822617794122971615815087108338931735348710214031695348209660474744516432751553610241483171054156218087342186663167700946207101946516545391385142095891848316267429394981877314568970865590996619025287556921007538049885454943297643328830831663558563900612748782607071932724390722397077543506258386368448246647181592239942583199513203789494932658079496615833691047987677297451176676972114205438599094094322995037406183757761388742640463688654963755863208850179287748338942034726187682387847434617143580046597118299851117954668793655345938383604321351940373615551623120474960554484772153056920651115734157811507387533561251891629529898896830067359284599418542473488672113371078233042487686967889168800782669236269162132333598329096981461794526752620190587277687614933466829829395858495027715979557993749083378647043563655346391076462939199141111209504616213626971847160526914399194655653664208090338074768062913397064732005178373180961738610314814636821531473349124231480022251979540421932566680020349235099596405459474409991279891329621734603227947604914720153876193263026729331563747942053663264810320712008716652625571671926351739461396310215065944791297258147728844389537693017889492586628001590878681314164842623911390111760089914924975029588718602775066636525549017631855110664274320441275036999631284077910895308103636754905445219795064400851797854460824879247130450967690820342416786595424014725333058294110664101887518250539340241428653329154017150611963294353505807834982099952430350000394565073877897774056118181391138826202124507401469114487861255112079474908585581360016941665944521555293185186841775047290242005858311943496617049223800276147296448062169276128281550363769439030429694958456174409225487851613581671675917119702359771755204900566576878197702906215825909923883155705274021278937337640312636474576182008886559871275423855761507637912967708782883196202777944522587710572163898676465018174317111053183267581523532424874772873520182870715319429017101191751394240522097595695759536398076202920785455701932364389904581393487401128149857456485968165484476880135002197960322025653495593035415327601662051129668277232133352065665878711268479011375520767064384744793154546546220971741459910189460095333943293437041400531134025870647344965250639307502708694018277371669547923013725526576231465128711732123221244388638803108303324530323723681972453675697146598912860496139984423361116969746274099575884164013857263440653997308528540971186633412184291812928889284870602251293531193198972873995169839444097962352798157099989369917371995321630339720487446203842262391298810889386240295321227334293202357916657083505285465180141044620623721432441185071126004477812156252069912758221194263865998000453736134759722627342877782494686519358891931762853954457847971582579085285304880115707315469432052673895277478036461909237785370996189519490767976372186510181163920970571236745538355745230117241098259593877166254932239680190371796141153421640026888116216353716829680045221516069846202109897668197328527722122892121003563384604365518441584352216118413516264609331875141556636164796977340383629306289260250324230941600752322601789523095500914015054963128713175468294601291888149207413253812735041989215150730574327781483616158902337952357431406108953650841024351689709771586396972147030535267189259566227124568645336086644517826335545120536427536149100633058676410747080725119856121240852517079331329589026201223752347853268776208366612482729148681189625062195680689805468684109431591399081742157052621926925442850912348543417304791182942719111387503485318905024396660768011208212351981461829268015483784861253172705350104373814080720617156039416183175347564547253159344267793034157369789730526302446618380689075415795593882999493155632730504701511427648821270517750194614061284230688605669211801552783388180825334846731073214013028013435031683271168655073365123093268890465203406430372169430759923520403846137367839108005535055880558020677974652444881301845619097266120738955619278864941442500067430285704360162474309489933302253758114789703675514635395391804493269087631175853328656921679651656875700382900582194555843479786321121830173109612139060495140994898283512419593746162696835046828440633136036409932434504840350204281197365838163725802886894811187333833949201001148930680266856318546851133675503915399980949875029301443708490523187918900604272890471007762393657139950040790676067431770706612029196819264084388235934157693893517600537783637451586841109381105143183451142592553908907738122530938635528192650492709397332578554577436254734308587773863894270871446186597385400657741550404833974073912040425137306209398669438510299569345512705924986124676361034539619319629133738971967206975983760774323688108524139277821300949830377593218937911737003581488062372474798391507146175608240468724620179718849122601060374361268093656213723208933954775612183763131490583329883603546409390830085799101485824579745237515902496335579840062731829287850692036947829871427122424750358285914832938190126723700490845795225066272186822254663192589956220222039963680186267874413744310541117536552211494147581126455853725040696953066145844150542621906998964178907002675653306304204495473627856045638535159127881093066081895287439934876689530826528431810626772630902410220179555007829779802551639734067050771250705742664792866259150598679585167796203331575538727526086347642895034584263685926026288341979100044836167812569411077709388719680656422613879187379065563441622613057252403020040691785973602520801867320467832462340588446203594441384831054562462243696721658133933101257963726554260118265379269212971202290442266863971975840008869053612585378417352752852764634219871053196307247235232828035911979781515976525067046328469849916681701557553179655425118870563642115083146080268769409775482843829558456186038163553726220860657105772637552612017713023586204219943796274400518597510618082189091412882660586700370212199436902751923468285503329591378677313228582543431790053368797300224933804692265174127265265810474878617610707907143981929480852097503722157051012053432715286055728540266812169891593037923865697038039676784073291012650120609901145221505539673844124609947096943124653489505853391208438849809082337086617977042356209264136027880479925453740405185382266981538145468450167162379298483419275875534830042616047645553052538726191213427314044029890790552742960877516354449375779370355117921193168380338388121168722342874533208766619658782142347336623609702713616222461670157255752190177687281818889679983621949341416070499716070253970040921124864444252774098056129133595580081194316124709806356214626897104965393671654356253085958720451887730328317537867330076636220366730778615899260503383449827093088003803603338993233093290770276031581826504523382930487665272536041923868864984105061675859115229799986030324492541298008896729191454551088040582096817956919228468419825929372956571884693788498105346460379057578144921424546670728852595157367110309474584029665223801587651179624954557549909418359569864906393313992378942435536986469709946589506013362210139174930134850444876723713953844020577197544424710299464790654831694875438860417256557970909519742942296946240047958044713853873372258110762904856003915415529695937302443112370836258719880471777652964029278201663806010948839177609657795893154739168616596837795511868103943732716409738997672965352907159161963287323029369786512481133560354661798287026111884754745238623919783806935045200465527240925386503424197846644412431511285450819906177900028982737304002339875659122239849600964622635842692448341654303879557262908053113173661360954745503955059674952074668345841010964103934201314916611359173664475763081801190199586879733179878044813459693737563892640963157965774963515537175917807480565183284936220323187081132238779444957907102895273448585127201838603910582883575089736695994950586047318918730459249730161539920128736172367695440409235040996044361970697795518554927060529741942145114480118992466816833277409175728858569782973064683508605582722092110224817077898454598795310996467609199774893525369701215359827088581095138728902938108057534986305893393632514334488395522238730992587800674532349283718622560188935090356504826883585906420955844180495036996597261196230245203698177629174838541538944144624540047176291338919228075813157133013146564648764115807873807654900099204441236014326281092887931204300869384020432681589554322374743781021465990248424686819073741717626116072188022326919458006735011995846315485449511182216454612171019139572756911298708405356160608852927372593124296733418951892208612540964567289970303206493458490295444516779788555453911092690489540059699537909326392273301895679999601902509540593285399133470046755551486174610483466276239393476159233831973911758068880036015686523652798009980259718645170256397871386411466308395573887419118093730032087666659548472052520173418838501137709962601108755208097918262474950569438538265646163589089945326367534907343616366932263432996758162218035084066517270273789162116469038776962298428763107515631292850793305179183214333516635317167491730484362577476435340311588960189812057568160182605416314545292931401653572088110287865987646901536358613320420435247811077001928377442699713552861042720308299995756614167872571177002921891186637080536560609513951611408030719750697067236860960365456375115484877200879190422412987973650495623991589915420148851024563110826721377917608672683785116959968125811488350972708484571162654071595183175934172474590645407641006671027827584490834891583936762692076723945902284811182493567520753939254929081723070304801508558372554220560221647748106507220683911782768588086727296898143370507394299457229195460393231491544881868822972074053014884171818592767334245330517098158676438925608486671543626992218674857270003009580524178055775865872153905954636574322768546593087687044311342449698305802640117775958494809943796992115431900431852780734440411588456315723578833783314657314257635213058547521575593403537335763335668886039484223652341628025219775344660596935703082502505694933358292061179754370172473406760927974335132336697447393069108507145853141412093105528512988820444997194377970732885271179298492742887839006737506462118891363744452550016153641491950411362677612690137905020546852709990274814357852504882484985694633735797786132125440492272099580860930000433336141795991088031607316534098767108055290939413522388778804097039929684074902386678190527662906375758825606975164601075935151901106895593892331919552609552123928704676347927971673253972698255772843776589305407833027464660626562764322582333590989487041867493533591533301974408322092702985767388581826403485195290357250818644922266273435171664289603125496255254684685320121666689979225321227133614625263961627541863100157486819992922038919628264240793681138731028500804625828902181157811100472284858871552256718388332703851517339197125370049876876329541839835458460875559166120663481537345835999039881768353933245059366889256394245313502511714477458952062867652558342044590897709841313464800278703410950077901919365079917501236644223850473056509838717397524450441104300354389388042694256198980039976769881646143387079857793508795280545836252842457407183899284860912558953937441634986659959587798251326539285420214436289301542035788637572717749207213121582554298132164241587592910252694295975504693237154934898347885322636819831619708732503657289633407754667419780332324068541475600867850587438499141867949454260112835562494973638778018620969550199986867070189679319167183118121005519731656166454109288745295321449716962302671840737065971825287915365350660783259482648584991071675082794127690522998940231065560056458998347631292680781844759111800231317744475554182960152196494449249990429112877846455509452286589689007643598121563144867519401115209587381952815755061140875431241531717612724859915984517275110621051181846346351292554238864059957452653239759833683611693160050670895462347018808465953831958247644676834728619913850845725663522278744326776495485472181452089283771219517681973849140559511215477994911034328853672521237105753609188692597396160785112185820736967824850133885137732160758156347683760384032587941673461145385901532713285901009393701482001973829214703385128532466189650614640250280653699967065195570648816908244412937966893689323517246946436594379862467014559087793882295703583583941918334340597041152903920585865145005581739107390234386542268783282187305224183880853196165963012258000703220182268108335241271972464221133669919472969609241133955988730094500734101771594045128710047035771637836284674029412528069789834203873057014398034915390256340178080151551432763619330804672078739339118420249963870611802702567236978491814074268104162938828600249845878383468679701902625141094883129115146232634308442841748836375856786380067897078504638911344124854825969357370055356551484109582506717567049168446193859545770836961799995796708427081204842368430901569182954103566283492031279723604634130333532282254390794968129167838703986945538750505645932611657841276747805124957271939026399835269003536883332796664653509845512812998517504043511573276095086621278768750364515165128588972777440044082294214950033858663160752917387566688474869722852969474785271384891587906191420116794005311462522761806506421571286330721110050836271001024523231582249906505530479915540343547634181351820752059539582485650424269561579649896670977103568727679408890336108340305428530164464632275707472752323246955632590748651705356266072450912482096417266168132148198347201712118059682554896649601888138285411828324396164759497098109700858981572021547824093370375435054235898734388638024668356370092863945823627666344906482564454398868578011664434468855665349653698343619505322427192692585633278433446170550611069874079698777840770090405391205740313924955523159141567394821291605539289741873965576471644865668864978470043843973662316984976635179576605618461753075235823809966897230288430885925462658438562019842968804759521253110097356394611260709208493672711546225513702924356545000829018362660754580332855294096314856267705909077077131266774231142223910004250197177869651707034473309900546730419652904702032944867538990018479184139451868880424611217321987885753869250578691243609320308638866158618912057941635968432693047124084799816820157605932725775924521796162880512210175810822980935658941359805507310604295688740630891568464529544463346086554809414082809286360579745287865076841630315661449927964993549165382293447902694604387050120684860108782135175419515250736902778323140062780238736557961143257241112829748766631205992010738951481882514221081521442549713137844316041472773146760938054221326533953167368541406846855588611223576144572367098128432401028185699797909117982459640299277316132722841879503468225994808764785773389278989657800992074772833172876523556903212789725302519986092252778296052464520466083684379504499620660954808981068695355994866225350037675631802198207456872759201704228135667128189733462005196563182895843893076545433489055186071397963885328381853711723487680651896949599670649312490199825396545706077316247625160054885977913821871015345579429566529522329147882099961727730985613741866782848251476734733377824708853545203638839246154947028944461553012456862361894806998552686326942315935120938399444775438422914362119707223566939782305985815447805557876033574396192004869010401589166040401470052577086478238417411570132875914836807109775036220983055196798703887941853204515861006001646014908685931982499772213158897896306509117486260384062786259477087496057390817302255389864228802657357095952870981991111570231290386740173213547965397977043893883925430132801847519442721385237692799337931818742022600165267164045815347412186855868903986562898247458673984905906710187170590953266873105184656605406094550060888298578477586761448594487498991808160037167908570860999117678749734627571196954020985393521224101708324639868168452348910851929514808729810092540252840798208958502536928505875211734374037456090735668094617345434864701028995253789697402765440104551021383191424406789178413404624503446579534806265468576443395310445962199080681695704456709771949312104164052092263336986517586281373466263910661496027470770851671076925320517033794024953571291451899296135603106927347688304951404259440454745458552827892880340003649560163406780195721432700247713587694257400641321487609512099613218870031837899853874624461264914494114270297131235026514825000225218844388121877432012742239063241254454130827338176904414511641448713351425197822939351326330654950501648566297992895689299288594681219902067702178030772437001051501639160146519986048598712663343383240119211350339181742445709762897041507535171180283395036465992029498005135920676429911788332743642238498863753494017754755906913502917183434428143701398677932007842095766520245255060329254568649064739229110016601562920128515355766721478177884135933775136283473527755561646573745797143898339940805636185190201216400346681054649836483476739284048139719337672184699820301751928086036659115839612567980635722617055523236270004608950771839918540675818614573489913859620443831689885629058878044988439790716130014738639527382286376338653590213580791205384735039171079755321618775236828889570990697838938689751187798817162469944315859303614895078841694130223103965298435361532553168577291703539542347389039246397650399263549206298830178613306394919038549483902462832386324550711994716727836390729407643742630658056207981770735390762386349193374774580297336222088924543828447511988524107646924485915778994333120642102650534521224481878627056787395689736293399460278847274279000756092368586588900605078652828589738572165318383783388119014230940100917920617689805174624836183576774616074018001210120038354957931635372163281428193897903503013199843176621154081621668358045482349590496301951108164542485463296537978521411743570837124288527188899274596153683142278192528831189017703597374703286638962482124899285395364881563185961985670397438591000804270781610441285587752178798042413118843020669119298424499408516883841436972856752885059752023694169641313988213295613436316161528448797806848075404627411218199910178922821937353740081015815203619267794243042220487759977495561498698632908328678463814598549031449390823535438410283103344765154810310839877788532992582275065549622996259085536874799321884470176040177692659981079186228171313439794083957321365870135800587939955574670930592720393208278837993686555685868070078013515753926146116130983539683794014969307544592946833044712435067577502664800417214635902898156006694162237285134836291476510001651534998746169794662337756294140709746776590681472425318182901453045754267906590222676035669205509479032224738493490607975152279630032192194484663540381682558513572373867379598593683707111184991723035167404964143600215080452230023688691999264355257026874566209858702748665817187691498838156729531404376308845067654271053893870929532030071733861783702939012114594530236340258974533142662130130570015555881350825121004212659599409868863720141057604129443359841711307878216769462264848394469312042418124843500597001589116111513094656018398914399942340206719503837213283494846227087439879920773717582845012191161344599503779882887131761506240226776901786401882364300445108192678333482515239319693078877835917662390287889469530347458873979321581027599042173917508458605103455769696343917311961104574641449124398704157654358094399310116921825919384813619581654384984682045317271779911914585161204553404401252861670418952482464467415207110558152456142595010289824185179103206865678328841162659286585939302334806943991775099603278702251369331023082428074358134731653595052766219240597429908213402964075400643720608456619982624629205181018305954850579076328639626781978811532883960381091083177075365501876516186073892266199184519525303831125192019059061098412860429571555112843468571874786170331378985859050460606608316520739956713039514208652318793122243104413863334979695734388686382441201631803833543905720421414243824892759816223685947484313910484407336856074009879810630897513202435572800862269486903788277853858087834017350253317826699835591968097538258306927599032566417153029492442586147944970512471265565884401320134778760444709847091090875465956651677022984839861008365615795424435894496403703374029029640082917115254266214508307817734346727399723093917327728063165492976835976520212342738573607015865495989619657580288875916278829971584267691082860797144304231073171419903516126197727543125058898857138486685785968069765380236710813998243264316481974048755920065677126736549848320588917182752045906197773522082898605007480375340680772567359466905324431723490149365987541019678431379096692119802164918385915911136422305894310467202862492515258456165656042863487984843421622198791203963986866079451258409514504164927796972715361570837012811711777214375171112045875967106518405765834078281068356873351335598414694769483388190445635566515290489676626134198215677437149662286497293806363912507031275543068760109893014559468517713555744425285814637728639270048421469040590737218830469398756888709558893706775697603181478177310942753934953304866847696022657122335918153228576630374630745645363924859081861764306483362458756652540811671437733157332703636091462147787272379925898235009581605730471559614032850247348031641702481227992750655748146807169984720428699102830699128242783348589173146152293072505370535001197424157626223028840382366768077015297448846900336350060582804678669796819735717201546491581280191953973113907547036061168990257359976993005944147492915738527190578517015353657609555458125779587119432771967926592611253426963830533006091352972010687344524092607034218559010191617120545201578317786309139417100673492201156443173182693390421048810179481099150107189150625941440923124882025389313003856810118751068833515922335580342710344526616474897042817203571953745730876387843012023810751293151644295009257792319174610257600898388342039158764248752926614095274551659640017594565746930424413597380598536187834982863428059353831142461990406017728878117015010816104971319396291647293493208953859700966558512684154134599394027068909368829082100111606297505476368737990289659180522830440726917404100128061718479848374585284976109753142278781280215210543295158339758630358981754323519751444727976761736637746168574623143185088660917367570135790538499083048493512290398195123461347162310213991830865667688768565334021386015722370109020822647403712520248966948580769560655218214689221851169893386487251684267286009321638316440618441180761227117026594856216764762436635075009438959336794180058982290338804220648103768379937900066638060550236643312725800887287422964376870553740287492403125645771191448866263138629915919607682782327003143817419891005389188820704984616923080583065755747702091739188291686583747865990458506365387219883506806609527919223720294202887951786999885765455118437433511461442179025939590159500551926803484078963823652927879869589393393834333624222334870178714490651103503498317439432645240057628774499643171631627017516520310454422597758415209281991506353886595157980174739537158315684883364333352291731834301658027069727958727730694592914474308145210563523809936913289532214983668170237621374279629386068924531717207435433314882314388413925742875773189742551379689431969314737466133596300207762618003519021909289419380764344828565265260585610563765001559421900043506282264489681369972810175987889251590276410716560770101149113130727148150277149426656357116132386461235875708700430589269883799580750487739323773842008754893538018212443537137502172159425733532404994679679665820215010758106212489200878237329525920039310579486680947806087552176704426650846897125108978125570833033895347353817942745787030119415579067293808254448661753838725882658059683800675692223255084818824070424329584610613387303486065429125238598293383044665885777358271288958580104935962109924329599959879048946092150145684930857884010605083056647529939091055788066712621448872111448510557121211667109061625650224603893779652897874925686402532587018706185509803484736895868618745219941053681731058170611634079117172670414803191955136009992184281212454715599754521870077978897965876995641100695592317125661055406979349948476713891021268516000479492129353324413015923046568180899870237152175098870845043380844154913789737401503913960799589113890257786305014093432850201030528396440552049294575819301752198117751341752016101696874934913145320490749555715247993274411329257181779231847264555619579898841321541962361701713278741911266571232681687874551799366638655708735646318936370348137099156638441046457691686969938480385104895148919865167525831248184716287680655831099855934993723384978489848637038309778681568300245857515676781293668850627767284221469742960682507407332771397811709345884715866745697264462982537775880913316905349335427191180011339498527162809573349901337517463887682953113896296167557488602982787130481277029259873075395225388424182356421017433084388246160203374631282465792085499822801002682060757219928317492613662062119347375827925664500080859401231068106892863092865169410958866236795161319075218045719206336835780031065868309797252743520064279909805091841665678569019603191565537776618398129900642889972907979067641643678833832740254120854538141649779939213047555610796454896519440003219426817736411134735113976352091762231359491782443770330246062191449075226273591139594313406566731940359990068941527650291870166798773194459031211834672460160233492810838348423165126997150397028732518123879748151366341039847240640736089520721449449472319162024588904510932150999227211238527117668153280054442355370672852997739149146275518829684962672262150673585230204023971722356772780720259826156649630811346177144144208932166581236375588740088928282525739790839671326167051435125179172793401008166141605599109818001399875826758036847331416091409071691882950812576852854677266807281475370454594563316083104263632917225693685570506312184303819863066009447566363592152826270510930550884105076672960155888076655923932407259548278009742208887959785982562223012543905252785312079612880849200080419872694180331368585178278351077631283069329776624412446871088887343631159048469983583646277809969918438273745708207581644595190601140574204875588051989150665557669392779235543682344305461042291846062717485386459073886897920640000034073604021408631498788612939087805760930389111205720093752608739102683804506875485324074682385427458427227794155704101084366017285028296021426869416311938004585155036846147765567743181232305968536142814563518101491384359962746811584236414361523625765346700497093675443651505566064968377851078920654888688844672229385233695157159193312422135379353538521675744846940362870217233978601056837310380661381719134766844683982717820437034840333154030570075137261621168859592792841465011598777481682808024569486852897627471896350124440203110464140660190729445910984330375122518018757678135397368363683501423709206472131102155493675501652832690931655959446487710246995356682802637055390968275279728664787119990168794566979955187137955041550960921098540969185930088191443345612637983532015693505459656680002164565561756434921189136529332035104174162846982579837127859616306871116721667217990199006634158569961186113442327344373753570673987053449286218806004183972829757733814104166397799534032523386810984477552541500767046377381207168986586303085689795920118638200308736836127617710264823366854815283505165124156772362380971683944392366389837237292863221824830122794248828611084362124626728052898072586214901118564960651678278893882954016639229480666953616428147056411170722939012210634970415449209409426155931550313960534759933743355078904845849819488373447315605874576427674158158684806339736511514344973767079693196276786873142630060794125022477759742147348057760966714426799432744554733890818348375532410829723491943450067629190808312928277787789505125264991064075664144522714681237087458489334840184170973122836518120374539385145438509250462749663302345676007832140942931997524367229773038838312514265809001994150357231347319311102408773686430001872739863440369978826150445094195251051723220585268265482137844961717403514110870007927220809396137223898433901907547846152718230263201186848239756240584553901079889975856633386581565092852428741038755278771408371742085180586007610241101421762164890832179461760817951818620701503402418567079581631585577557096523727502208199454749645689680571931811200681875540298746287880521165839112484876395190904961603078894922599014876437327838940284290300547781743435085791753597864052839238976922391219047223738267237341329496471926413180802666038505838853684478024886953558124934831704938944300162581379648598981136719635686844450588995672218582307704904436791171686156798206543627621420922517788539128135183082084014221242496405115449676818667435696463193763222952339546066347168715784263173031268464663612876088294510147712012351323845372947273988033955315486400265117983730327499096516303327703911374965410706726781834620082947623700049325810825195928239198480553104811048133816565877030600064178474566292477005868390875465320450985119393270645440187693471421292195964610263606421016957023476986200525230685228468529812123351043880503562499152278592525441110904740379491414056786006102743209799112955523368787589023242115780971960356602480125341236425916386203081173524788299965727044173666224970147060647609446165616689796184273545878008294075298938339380418931477815806662573468144483228388123968113562358827500655321088040432524301039908973537785689268700470106727062016681325985861090906837865078272888871564077350353140483229835885558702686160886174514088075001358432724956339062529857859463567069546169507234290885367979031189733118570992716467912973453902148114110167020477343869089309888145265547089953247699160986170816254669283197819934043425263440302050406248631208430129464481997506878208487062401564122916593157961058454246467155030776117476368089273770289762990526045908945959925942704812940458232259719484375769507432388350084671439561289287584160526489083237614530993619014865946739082214298288180531021592981526700490199068980733424185263389319141271318006822364143542226440430090408821045464568581511531295701614835845565216625750311407786156087604937685595839672138755752211845164504766207369118644571150329688697492281327030436410033253605136596917648277350798101102551067001577693015338213452116940368150644727195097004381006320415359079819495677602200396000403074427261126547742189197185098209205335459114320882690551889874346933612794291271399545112054946503247809790844187512355055515235987585945607009462157678916999295352216300444439705660135624600682766821815689840786492096309245804664448829705240099119025157703061256542307662856754952916307634244273656884302754896545339860357195167114579519515527551653228018273819410922966403326759794075034008651918488053932955151279989452997750682911510030141356199795455797170435951325724040901152778108513770972606936012838117412349858935691031584629874358680586175426983081920312242837131737199766577318158526786366297380817241301209830322347029913480121493682280647994643209930938597031153664293412687890710168025828898069201239757669647602803069241243315953823419295112181122257405141460511630877451486466635092191439053717162621849750359475955374840479959657360219952952630995269896420812809215503758835193161689846633558257596715516343617858733770492642032640291711635651142245755002481871625829657648872717848627879694004262735934023177326716741187259797750975345264686719302146789308843308500807114616472580915146294843239961030211801785964663187480804171594507075180297321675485859508493351041741687418478136906527213059367801402501016304856023042111072158263504923703227953410264168275626228581485844916641670647773381071987169802417488497249840672693792534048514781873162909288056183368049915366414504306902356517703281587325169825590706521239639772326413418118249533858152520635911623756564111302291363706290375253474244363105150880900828534267422650945503231747551911995428094826218925987521065987028693855340139575673098158572102168451054434562464860256586923895981274327673076228551479013485849694431854874219839771181283031202725002828130351966430324503835505772618189963362264056176324465482912996188792389685041049888708575687529357741374208115232631210784093291681333601187692329806721246932195928822012020947755843309048008549979456740678754140777371153170700330611329386689280730607300671403478556824102020528716189945486404910574102880169177596890169734905975542325176244896833470859146920991628778349128784279386151257705327525702639874893998415737724434166690283428482090893222172284743591686857847086010201078431575746110652091166247460268424099004821156019481177697903023501823776737315804281378006813807947760675828981909059956969750908616892573940500155715386248688714460644405378151878452582308341655553924264869888453142574165926961925187163445800508277663894714738763684165732697180704533219517746569103107134894236379089954235315723795402904595258092168074692012849610312365985058274981509648972520057028547586782110055392859695047584376502796800686883688127158597020470080281858781649447514015261427187637432866306885580885330504911498057099995556190246375662527542148550388928792751089052897712111530153488160370125007631903352435437242141661344585159579477743158311673852329451614878544400048871225105722181732527252022438177290449109216438171898548346077569195159956273250312260474622070827866699980540954363221253311701698258524933412160190173290938774771569297993252896605767549662167226331745998131078820920064263238636588382407948142923614786055767675405183771713665309559229400413645719917815352522949026942618972264101320431630384793048648495376203592470181735684606803499557737310521298210971158564535174803928919530709523753160517410460424190170943821861005670335040921371872412472482806353413224955624849443936695501743481971222353754177891592114522707351419337336775575501868824425953446278694121990359237115207137418854533054619428555793146363197792963249123894216757070902901968286531511744638063863578131912106773467271977316930027723595600579000680291226713412147282496700635134965739614438498075057581467714829325972162901827791438645173824153979687894071913392926733931086447799299261884616828773730392121302417041587193318919790087614013716466780915829381357103521126893363669657628704277887107773150552812199136106701532642940109660733518546646697787393863735167962413394408727196454361053414080072291052552434799952200925525253195885840561078679074064862149641012988815089545096087289522275943290771604574691228553964403784273607992644249121127791815808583791675891474909897499163432384474778825996949152320191182475761732928913491645655461594339538237689697100984295842883018905706013196526448978810251892602168523327873882341643212178383073903830748882551020591649385791826639885440668436629494635497778969075576166066120690415477257852298162014998981700954846923911862734815465701847594733982127465804763930738457568135537018546822243439183110256981898802033930901643996585478698372009092965375998226767616564342795320393658437380161741473928808440790522487741354080146997123051574485395732868247813083564841117809911032225446872204583000279134680715409229700516528844253981889234112127278898794105015354762912872227154158708191994086907508757337184017468486903845249329295637823450702299833213374297272746963227365512581415473456385941390633708589403026004093927041453102400822722356212863566808768404497380318194449515733928181522415137080360831346107830609263283756737073666869434787051883857643260091783931982875149374776668463643039177992104806594452198860358506255614069759000189809080264123610546129698113881419350795805895218605270977614766458951336625098708200050638355182722205113425575829466604890211899122684152673569834122164403885385959454405470593750866307238959463679433098257392882643103568912166013883667941593333059152522427037088428519104936366071157485112258247333917962596217531146152794455670056110607359175704522196430052338380882858559176165555972739531026664917796377880665009012822330423790102607602131450042144861617888907107505717340456014784510099454558245071497513351790988722872835630580015390929578726180311891533011279333464711563337797935908174185543687772690315457005305803766128462293392622966298651828876826221463564919146360368807043340525221292538618239140851291601282063285670770585602270048429955650506090566976465933333834728992231677971855084597127238128727063197201769493887893514517020212957337360408978821244795856160699793048693162050111058286063019242442935747879547764603121315166090425926405604746530709189412549446454457892029453185218172942895720336429310369805266836860997481201858333271462171316690817459952060101270806220243456130408995638340443198239109448112499948523696582522464746865657626171349983437383548983384878281412524045813736300373077284860079705632212044026679192239995843016367586925329976515267262713668308981885505148889337725690961726936652896532962891146309575425616150507508191977228163672970665567453436822574117958456830953394379980552942889462047429492244907496097004851164229819561607907777625225827486848644489348754401438066559424569181234172521083425297702289933297672121821734640947586615449017463798669541497588278203018885356424853028531523319646875722560070502609490288235503222421411917534429988276475253046201207220072808521467375875299388525854238128805654449015388342886034162572871088809516465155505744947065926203111763621627702710252394467807873132418451424182346210456821870507800811197627774353915754836644392623573217803769935447863158293745669912530372048307553374844715928551043890512869894979987740988218011569475906226973562752146391381782721321787450729860658508884652274149672184715942538659360616244126040666353117038390280811833565201443191276375275550631861049099153640115510418733414014327007826504547950751310189376741653900019393108538009053284881824426566676156786776943586598424124084158333244348321422971323909525062743901370039515881984376034396525574265114440105217187854110132389258760054528798823661974095281943557027425419639350837753522025203737341193763736827917995238536446466470475918891859327336536264380980302927988817721254055678969304896464165235206995183197281940758710012703554941380188234964081531120993040548162127126306681156401857115319451511639587112372865339491086068179806603469310957786977507631853929060255481754558189458433069839973477635364466076732196822799663180643056222136131485950329914135731661457851534219235730677171332432120742397345405346177506488094913260073408313612038969704865961590159746058564621085229466257722940885845926995322377333224275527191457198934855227851917250991027709300232120502328487732174592892080083124805689508869772683289463129505058983719383087954152775624003881985551732613267849737996292463706560509683976826179009391288560179188132627357489150036563840516472048771247839478414929119433738510429183482428335887476432975627932735749807939425194583746794678348486359110687963771983566608243545292222928594696012518001185245450820140569762085684686208866215487066899611801702417044560845669212737007237794550112057296239831051123037913772768005176496283638936627651302639891370845661610917820396171609432179822535375557581884245927093961741274544442140777054445775170999649575014028290286675283574260416954905571869828149409466684666523911834294541670777284808270251288593393881344502296793073846515640151400648959799657112584333121547581589330677424401183067467339668089822916399557197397177283918068700693390257528468148351092971996966155937676375054926039919154911436078806689568227434686634850299005891366543931451276765961326002934762567105414712895198597680989678748525176446429837770201703742051930290472154074662158802838885043889689277090511428716234153474763065048166116055298692410139991758442457094663484615490194005724087343478703205506421021059572739611975275829366525421971117986064400383368464572481170284411536159408782084326410655812388760141563808333769261582962518219729879426230434738932988084446997652739568525680181839112291443291416490410194024910318450578716147695246062837810643234283137014835118098315185679174486213224562774155381288068988789716369977222740307129068572672486812008449579353086281416258585507803108433219476980752636464266858812471162386667889797868654098787378703453202667357525359617063635190709315301752732980087440135076904343171683379888057710421880083812479160382420723174202651034259282538929009285310551886674914299177310374717070454539752776805251821415287149360178378253306750888492583361107214778620077156473338885880511622295647776726445962749166273771828482610480028044346684772979228564620590767037629633782561213913654970575059028421735741346810924328334229312931433567044668426612074294411827751641576627046216453762838074711560782516338387478149788268050823778903037704014725855239055193368016103353508052422568706116740869995485996320610140400442589543011687577439831852734286979560373220893664596950761755461530749391565210262678841268902201458459211315327696190505980727050662726925071419691243277430985173456169793878986267166583921195523642526537496303526292513072830086645918615667285481253494508986374687772442743833183343882656407066003802431472835176346124570316227845140762497772603718997044288802989876321855832589705173346072122592350124729559865363235450149534610978813646184230052698082559081041674730317537826865431492636420790171175865890433461069827790630640995050336675376909612627200151293007779118738985575401050060703216886529971832573955166241986074228853092232546605770050916175389843469801469619785879567533370256205239349389707078971938050670544442644289206056657546097604634730832293891625811779435351824792879892003234284842206112205280654707887843770009777565646781387721336341805162148568577373459123181913922887889523356670296217461566037418346019771295311320929311315858807532696834021554810832463827362682581697642011239190355022710362957602392652655557096045729617946576990635222842417240164895863913427082675613610987848490970398461583994833300220669518152118048045668449726209179077436562126293556020328539904986636375383276958987546889129319335430304829618910006890264189355599708196298394451675998516645042813053132556063869535822021773090655006299831826157933549070746789640816356294118766907066905245992110103339020853926761277477635766450470047663486752986935645535583721870213409059385552331027597010625671063414848146568529029361688546137356607283001923654405828110622528157453561677617099828129222055983314478096141461339561922224731864785786962876857191889792415257214065813701081836915722500554317967487054397666403130266296608965492835251825549058802776770661139424459381602726538307362780503612879502717650877317289863969871348512238091528100216985907793415403822518149124757388882904386366452296290880844769598564345612368906883227551546037423343672748498417997262004707315375773090080158815585874355442732345631909626404558803396676312502439114590743880118243280075330501179679671412809961659176884655943858776745199346434947896691768127250618692290764907676659221872304305610342471362678346431842026015362016080910656939324410587853990110358483427300402911993289787622584432020519032105296387308222125441621028559397083752539288244765958762162089321195064561927409067257715976869827528964005085838281264225481853524981905171584051583341524517506569682391508663137005225257648431829670721049183633702806915912496907884797117706779979652098514462876922293014818601471778112238192774480728143857228926441344401156346938755432047402995357934545634187058766407236449690902534866459120641493246507222805749236403347016020715444185635869358187031260867000543799623441524729509051180294112236700607422518733908737249135825450361275149857761773387254918672854908129556166923382142716023212844237096452409598806623112435285311175942049926548007991175520338734421924322967135771830081721548423463201767285217809099391361071725937297214975228407733454378646954355687940677780513149863022788819324289650901712689718700486748628745577498824348153390312861641928380113209341823268996381528243403730929724023281899645662294307585208046519107221914743669977973500968796855891963073585912610548038705838640692691562103043550267882499829044938278620925836090967500912387113870086008651918619525858570260067986200443237569396875441952846238173422960636100473590384856228858290953178918457893965934038495941264492723516626124433672170506339022403827602546133119962845842429112957309202520324021803077218810539255046110680061649209292108244466318314875595318974928273586082349291526757781360659544461532069485549307897097759497823578219931105515811136141175971012658930426916730446949692253537693210279479745773789108845633109735669445991895346902724908906734076665862326501786336698757463537464449640229684662842411437739416952270221719195710848385710249993493985787776951087482847770064848053964022904889422436622484876537438578771681190439917498885808860180688950659000515713538429950118661380629847132932423646338555029517006466670189165700677809535197769440556382496090551364303391628196184476890142556152935400353160748665015947543377032705798731655356061475637835122343101949506554429934219512751225320016983545528758860188422268508578978846075270791095381833449324498695212428980157005280760703027725307602089561103707968904508166523219775871909220946866224878851414900435002268005051096916433124638148581230386331149688909321187815776897105982227731293333159146062429510339370855797886738840830766227832139763165327595229069158061411118326643207153881022018859375456204725200556098282095338397459100762584941881977300717667286778045547952764654276270870253663307503015448399763102303154454637914691816327673975792116144718860129394491031394559101291523202245095538555416130717911480855027629927514385638167473439994497025649301697186785873217497498273041254788295625827343829735222430808993154933215667517383397935544738341145615526446798103611033988624577383679555639659144782809600519410568058019012513675005493615850157124786011191949302991368252910684605663104351840134693704946847847772376135258514627573236545707709383078733780006554633055556331467119396501460850942892182592027920605767311217131527606996952763025566975259738255437721598374251220548482259917699283165561036327069946627649641535624019157761625514719173430974990989405901791325063848487382749901069950157099619139632707659687132989015503304537714830026806037490228636952484804067019619813054826877615749101705970524093710746590149191451870008040407263390107553196352527362954174241245069378096592284951931929264000939459126599851471433508910114583376831942963577793985135136475240232833544609181881500744730931330064467927373520115839099190674431159857473723604256535377314134548133704840304936089428235392073005080488971756657025220433841848134655327048305929162489634416230394121125349192766947038813629663179796627809829003229625534573678533935840912039393273572108547868467758799844524215201877661863910854899994094245669054285897042509124819252303301570367059892511836690245814450565154470521825503978723541340817251548097446275974509308897459663134177695880955194901749992468876045314142177463015465156235384727691609981976765756988341391504862258733890811648272832420856569387254716359610359230721888711100112409108976100433542143399086391952820348173128912586550037972680240114438810714441207556948031543240788383619849422061524083529451903366470148546347614870382943682204603369150726820057643607851324447740669600148586344749269446115904894656692294561377224001610985981054942688015005942037631987235450764019829559287764584038924448794459233692363992527314209606406181215511122251221754472146923246392451428811717068928476965432473750350827835352509993660386277972077144605226536521749952370437495748286757460088626032518607773174728253832555012249901269371306979522489018367556076938519837823841774535062157969341746321049474973004136606677877140239970256916641685534927320415553167785881377254445307470962525485956710061267181910542972772389922981356359444102805554909842317365733436615108048229007893755673352085991602142258841221080210683254511177901815426902823687409494530914202131425915781574712646271211667973074103097501104529842933618929208733413620119795781155780125446734731005519907833952806482721455672781808521929544891072105810534934543569907344330636678993728593348087616257917055365164451892626436159201549834780725274828677865559996048467257597593209939788096220668351752754894872561122835140660916566291368045940459517305820804434086619878234964520130768913165085626377015561878176282299475816273238793283460249811061267204990967635906648195655925339073744597970091175908433222414024757774114333544737677270713838448055178811662934892547123190498757812633563384331001779277457081663571310411746355237494667494749310708953299809791187389777870141842143547801110380889180171395833081588887722623275128209422531109706158391679099442051258750444062422770406300559658950034439721954247095360884020223131365717508561622444478620080006804499333995149945570832665572780724886043793798308435758286236427867370931410565368671468265933293617498926219631156290465482388187256141469529708605553067402342912306586654933846305343324946669278246075911735017280133349448267858400886910080582367002824822174687018631458217124567790650933239655068626164110822014936044435279260709958717986622369593408977020661328935426125705169618540711428542582538095913423014274620357502541645379276645671269654758455749953381061450957837235116921924138991669429907121012710911259544663145535847578446914815921536883286724603761816581815393327365132157655519860102564215089991971870358710448508369567141273590530156324989586419693003237257194275174136380117709019843452611094950766121101669479624580774046514337116129943800284303718187547599114793633172161355175875273342423290803750282308590584241540008491604331994005008654375956263403336384609625644211395013946298058764969028319028843110359017364184051051652079669454052861042178441474688699331813891413286629730400293874987000377083698786459860866203795097686064375416051327062154706332246458296142738706876087735818909720875597560833393348449252309498132863219231497150954816661512636382402738458085977224497163762920808271890182152688447598238605189869288633309540050719412387220232373570304924672186066918257543956183690601914531366637710842612851629997951526483310575204320248979896304315550905034662475219712364952383779323787824056438769473863131688819992024604765013018968712105207298271796631042948046117842046382426940245712359339814083140548249614081315421054047807382168944258357880293880341256539335842099691247611030421444188467250261098009683487142214994280032531653592874517190090611828108004768065260982779346318220850895784561984225946661689377617336010430223939181743896436040324291572502382951709667057138287168587305644828293815045459600921882840000784351794339693245422229851048316773430290044518821590787411332398601286963534723815647475793598630859717974966321861134223879731249660082188104290265525387572744623793773565175275523295853517320419237603404959826757220462386839984737536670364376704925285522655948127974321192511565081923012901460476553292427776112611697333268192478875772532311839412130821144263920688360795879055325735706033869724101177846522834202554933405587075105679418038460385110829295933333386286470739415074837220556898814287231287016205820820871630104938144776220666608615791787338247990376764501685881868625753368630801326455205363500308475619566586316165807806441089257501324481714417378876905053895541140248310776268929895732863047722892025074978753995032525676287462144677497363068502228757513623445410674097830117844635521015898469183788738276552087791695329675233121796076854185871473939252267232159938212207642967161355071527554715742135619378710127151532452307321401792088939104157781214386175055926723500947784947932698156831877236533863293409338074656090389402576885524279561131952969816227246010534875787408185437262383104454322197538693476899520730493775879754449517253506690135435554890494890263090945341513414058323575587388398124650994350354101049468959047945021037428926692030968976725125816721646831696857262919224540177443835224766267894353580759519505774026028106042975911380590467558381928664893768324660972693207516742915810430392033740439176749208607070465007804954031229069095989052412029962434515215096123770518532344836637787186518923741448207328802287177008786598823196283283788770493768523306325004105613592334548668093460926609696567104512269133440532663112520051318358410508201901287593693586448244436768909486558616844137076502407379915600487644026386372896602829637443109370909418012142768928372871620846504599900721975275857296092999297863356556564115552833385585852966851729023355223557299810670227281382889751031873219367571682402630798134020791716235186947453388121832536170588602396542563432182425509412623384798756363442477524128064387142876106764655338646781762040874010828000149525739632128186136505205377019796415162786223606010190849233649695624934567802090409028039173173900377083678749577356982480180684654382377419862465281060006098840301255201904975742006048017598449671679017340423833836057730489526715641545187543513053487749825993663420317367121962786439769934082379995161200633304433960731269284279025423287311008494255240869199128310316643078204762497010704902673404707365964492191564938677518119324044649354544556963810644144467346514092092154717548877913806374698980138162949067826410607248941938572186644813181198730352934846272002081290922598156015099087223476933152135583394631410314717918090783685222693490068298714086189554925752208272504438012819114875654150544698993204318708287271661414279322790889395362252949903155560590545612950634987282017831035087509381263092952096133164516725726017535738381560197984609671624419804560970174811164411502429959702655434211817482817968926277052084953347378585880073952450689956404057007422764396996516095947473966003425102457094177209484614820529552781112366424484842527219612715848011302239755716763753069106908833939418435116201773821639049888832200825923516544118973255614262291475285075219591403403309570682222681621313884679582343711567165001448938697841355011006310238904411234734930410188443359684188895255775852216475629974667797613133476435221196787491383278191509374127458522413639893277625914556964779535273964341401273720719528893629513881684936650477070732579368994881591796811879488609531647567330061880366276963644019392088719712927090958763521760266957401270391158772695110213736208699876204992196950124717884510867980325476768946050315893400734953971990811237506921836269394575065526267802012847991931473325096267160163660387625781283021047312425852460490820221949742360480072991754063362077207841884824136300273793183082616752885131397168830984618233495457463136208129263739972077398325378211565551278796194320462035372259178747248638784367086129578279534481506403387275099757979408973717344566910848200272854792006113913971819685561896473662915314845388675875853253688819544263619294407877475107331614792345498375067700751976984186602549647453976978463058605975898758211115898145204182671051650119588874324375901473318794549950557374972846169753589930166837772457336890636769825973653951152975542390027698098601298684108910649343714228213024743512651497924844447237570530186124256601682732094282425678222501602302128477987378411538184398422801955477911856469074087398592661976486238021594201639190623282234460519934912710253530526340841278606879315076913286262235643441998818919959330073837965753058409175000288024219212455171491925195315112380094720057935249982745324417350289394383291982795841498636875837987846007670025219336294123488453061268296075058506291341454134536553037582103697514038853819489927178716891731126151838480625649604306606199169920972494982595124976122188207576149487410294207176237801417383493703178002794023146197043223463194480434707906655141396524576413423238895930760392091489376244190796460788699636890079066853000784029725763601264774184495982387738658373028065252855042843007797523877926674065088155941793969188225452118973330896546047617535594558451853470339202566476773751739886043094299858701352968618638744152812413967126842552224292997918675342966051474701066353142769566183430173562529522459985245283766095666819391148396468492389339805837221716089407510452264871238811906309612661359614186504225442906166737678936866872790886607859097903562929446995280511337224383108995746517749143154225876045632122832479138401419732062588843160700724242090943384389752899471156655546973471618982441331035034682087075763188846002424797192279924951322978331631704490688165967338276791972839923057767257478774632384867288574019500971280611001010236482693497561998634077259753540605213790257472895061629685589132435260334652781268294511153043526183248867832081433631382204645377858921086370133973436253252158574749738812892058812454760371957616891723063940367932954493196740932245621994003175368433721023504488517654430900057678138840272461970984664225141040542092236915944808793694395690614799983262720254608528469787595231457797860314354364072389957306648279991957263788596693891807151590177704672627430803931287233333541479455174031480328781117973403370966862066426873372064368982456778091900691531462726319894649184251845751223480654121551954510447947751851238978801860041020700939055771242025516267650961702328804086675723526878892549955371795948863012634039870492708416846286953949981286148596426037336112460489748482666282283802243466731440974772848221143796096496950977777343354269308169450370819441346888392244969558867327119768000797351229221066994581185296252788504548368335441256184488774490372669655573422633655629746400487728997816493244504875944232458804652137535937584809771157738829399735021385563580316832793389741521759562114775599005152669019271973955610738400539450538346179203577178976234792438909099761014975182592649325022148565931751077582372544853961136673729399103802251455442920457920830311565948838038814520472348052611947907316378284183382871065074844677543817463159691405400489702761146635562484698448864617937772204955720734705048651085154887695605918085823542154279671754296028733415586541876261166090868268460685812719765041456436515988560139000344523842619170921397741569664725110437883053583199270485453797186389879235992685342243506735820397905656813643263373184891667309172975221670694415005547896646845228744822011733239403693391147401640626522019182984235213001695406102482809084258296460209007636352626790890842056937970109449264460652956603518648016569362134720552893271212609180280294626360519743774908575557143835853424720835709868308669365978575485362673782769111541978788945351866425961470725878094999283936663708049151692431942000888048160644745405102457453716292227102887501778895091766996130088656722602745221864091998690312655506897140028881242830455257047807793749134331587448613334766405507383376707630715077043953622602222436485317612050573825751352238943312945657978770151924144089289599859239039146852138601460346453421117053869211304136670134683909796709386177780787262028481276435423979037858235708978895000727511299609124901165450196761333720787525749244298499956410440548579529128400489043356875913322141457773633738300928919970301997079279979379498515946003498831336865820524736791068864140240390720719880534988704156545690558758319106757065528649764827367985972726375061655396041866979208378981409311788736777781544835220019966940089753480294875291776414087217898301652107547557289747658435458075559313807870574152636386861210733979584230111298602955345677341850591408075104916205735035555988039119584333123264714520356465636780707729656629285799438929100022632661303213644635604595047260135544583927748870492980506607861402657492060684234369477463549777196813450303611206414059592293269328144638018453293329608109676441761828422653110135066988273614241085175018969115196662351298428985108663115759006037271069859848017046587080770100083448213638248729251129137167215330744204525764731967584938949168982914791680830194388451263014429823750931417243834265250929817366007244375223203208726542864507594621238002107914737394861489544837455025835461966727988526552548986357340762956296684649570401926661916083144383561244570376041633016808177914334159453902941993436502978774737772882597707893347352160683330377506854419690762972970262255658260068711935136060623317676794686603424439238428795513560479378623985271964003159579403614845732878521333404121442611621589199350506417139442860261372851553516483411582281789577739237676468190874543524979529407154704499903793782759728114773884201531915470886819773827528207165526237743987296204263869269201880526790326200657728590709042573348818457059526275149402973478975534832332473236047922008749516413259530950525661059106701819566864965958660601818150195952502550600772744528311454013150561354521777288463855239347553195355668863517085358642783853890661686562584620672968873202110827203818597893645849408566816825370691676011715192631418515291711566137143770788506528891363099275965711898817355594794646188862618945108892892796563089039908576945250378669225090854736638596659743194335206702879834685681232688594446006242511180036434648470931790088456754281714041229011815572115399350669646328063110195957190649280818615432944454391009774026601010081297862619350818775432505816145679428661106262880658549312754348705632995579206805302170271338309464408248494997630354034351779367721891025240352631107322312937097762895039588506607815804008755194687228173776198342422406838366156787680864292674551483342451957102814030650720281369492198135794780927422288021121474025657337118483577255347027590566372283980999795411751622525090072879067709477606513928436722219767136872629511721768151000793257390296217150526930369077744840915329772414699149903193746949504896229680484588691623404144805414120607033275521278739298489054590941204968130141059307484790979350679308839653569921017065791778032209427967264873000705419516716903044579141708006226511511979576115686409427093966514565795948818917554279521365228232754355348701612242399913022969102383680902310280874421920070414491624813319743668676575262163566797395371459123694286921905410887796356558198593943644419814770428901348269482382031437602950678068264557248153769638117646793841260195734881164809385003969404752051443264264963424471688500697594054297334511861252291292116511613657242811472453867408455883908346888323042568954698948675752480120090175772519880193583025500064103990758464341207236347786564409795046633743483334048750086532070287612441359702276353008068745050709630742554492320695841439687530153750035204906508620200906499478928902485159996350766810448358075932914893341145689651243632339477842596088364237472763067969887062894401743680436803734707397722487915306730852423651176649791649910084593471646861727190717536361603468565453040369350325772027353521847436542306048446534459792608807483303269697420821021263296814656114228055514823479101720307322240490507165515371868810870011773509792266814234720778812406918704297056171854046659379713929552507157195230824296954304315353823346509624362396891945413962815333117709731591664820442220448394916612788902635764731234715619236946460243707882221963531551744010189093860515587296815363847764714594478181703509638186849539138358001954885246191600055319182925246392508975258885224843380250357362874666806616928718134735413566394221344835730854801677746484007091612571463426581106038557167326086200558611266043175020636037727459170679700643037136734966174484289175245756731715841327972479816624639509472402481055054586343860732282076683952838044074597580459467186037884885867005504462062691795327166025035694980786546311147610423336458212967089929013582175371658562679928322794360620551122494907631039495076313211727719596151632777839806735028732143617214150918517915161677820817046379498908545512477249143265545996745168106153210607888298776812828834845261199808209301082228226614450363757496280412025029675737579274509608617598003815596917840156115723593089543180805056434371076876295781702488608178703473737794396384590211239534167572521919968215807767141287826235287468777296903622706394901330624000026255494453007179210672724492343776421933572175283305510245128242054804389447241783878336522914348553553808717961671419155534054081736383157832104744789288265864192241323064897227350214831005644795716451963425682049593216375773409158211021848644290592577413695043263749268648570209737552368100610296719093760863546186960275052272289973834655082547895632304299186255232032190546039045033744152260204174015903447167656541261140633830722504112731402625574826966123678834470633594721188928559675984419453126636576065399584710846334713156786361033439968251063584289418971975543909178945297148052547044262716966872814152302796313833303082817122195254497675344315238066317535317445736140565398060095475729324792750798501118818935411473188663298385730555551203845163630674524898381333084041189918806048566216365209276686839959485189866513040722709374441410371753606493536183816776772972988582879083274040335538986285074389586828875356005013305170600628370893275517408231465505943120406480268633210217375499470640534315327655810810681820955717992161354474664940855525626195212590945599169182259176414993640579269742771496890721097884922588690195009063639356131271706763490971762567221701992321300023062799092405403168824480394980897188769468771472690514520049868578473912602514686358857666544216521603340135251963657576221654605975722343488605936760079389797133117502228278665915712817570042343085344770479754671984950571788874263898718396426787655600646008712264213630929803270171012498932032650546113415710534094621271552479003804460595933571283117587357589056736948072604184872071414551502364268958215153973944939687975292464325945942262032129034583856043006086142608807806733339114959524911414202228848585936170323706454240107037583528583702942446934247758831724929982127193075150657226171653867407411191015222603255659669186065263935678045421072165944538907419471860542508704501716458667110290332956412358733651839804391615918610776284218425310673605147295975933320742322431566062633758440799902261580214278864631166871021871425528755481478526555672069180357808642562153754196427102649541714404641091775208601982210120506733734073786876085916465223282876077150929682393801839644828269236307393908830520608539893112736586520944978529044613597950287885758632863476594933370119266783273187763402490550975489338868409766324884978443012570397808148976111248390607580286725915203986303750847045929797782185014807745040826448739518175577052954197761989212042168486390404065849993321305012267071200696952478263240661277991983040031208105139256149334269393671812244551031147179264238803262155432846356870271302646488471546762059195311137592273344234363677136897952331469558744851858360253548249821841455257580969033489603667897507223173444287934542215942931761511471354800819772120415359650284732735733888135483026047542965293161575890099802045390353673712897233568345093890690508998099927020154070563128717516159574921074013614153503483784802716808910385266040745268948565629879127693659598054971298860241379988108882028773089743740560630023579828234103333039522609740105332743421089289231548361544482381708519770279648754225447935532260139629760136014215140687748159674910311749771989934680664846828540952172171888517843093243927503299678674982684253698133765492994213533331718564615023298643334329771358287174523536735917584163745633319689779121336995537328488491966047778621829845345462658128745952276503250449441756847474488651600614330459128880950044163386344173839654954607578266077014095126574688233397425895788488233264500967755941411340427727838032726960246091270548411654814622947018272678211586315109991843989986748597464712123591931259047291949540426876008422584300303046536443501590410079769531604101391328027759277493972617755796268059676618454287522426066130734945657679454377886275300675866308933031040877785237989473987830554788907255461352527243718828191686961693173598692190789521514740497360145360598769017528910469392645075349724957740115459245420065786189334481212730102148920609438841618019768865084134549816556225253388404702842128232287783218289856660751766679362047470000058187304309007067565880070195996000650278357459945166660110024880766170761474012915357704469584259633009416587650332209327440933705679095021649820883944303868864676107266852666873214228029604606398704229392149220845805096033442165287354538403330158895259667599063720907967020139834109337329723995690068633841926473479142918994002299214731272219878781084342354336925324589004626136193848438863549141765109150534708283146547425506512765741665807465974171847577638785677785236601414134571537256774617308441333632529296110497538655835944322081087614342662017581466464576084157900925884156087282028009117503772829493514846844248961499104277696909903375888294552420089664971142704500448006947404295448262352442772540019494748768636606244656407374508344501618772659590879508807113577046720699004962667912098435704966691894443204039168531824908020338717596165394514358190783135456658062212079195357419945240033561207736789296239489597010111065107466426969668358379219486904052645777191296021150285262265915983554130202710592235004908007386589306956019368138891985191209457065236467859910568795998829459601958134962931214170220232477193053825170482319600837402166078143329844060105938031126413830327803991958757215233430904233500796778517906149699168528743929868030839244570778617213894864990185639186948467409282553985638381848890003993668634961026061936375012822638392574564906753215796224214826672468692291082622892996817481117999709271346559440553838300087234000599842124292031263706765892643714728326109334059812589706337832790663662142971332034224543077527825098834626175849305160337937683754640982662826579299904348152335111589862487060813176563179464057986947311005494645284987034633818531975567535848548231618729972488583909107686387015674136649970809602043146171449376295108563422116863281319049537788456089627280771694969341562452934673604013635936966934525117713219141123316267320824843877284571384484409777634726360436147865231546346429262560699506491546092344085465968321758575924278107409593333386688300654606086128281361710492066353667624324415560849425378846378307458664160830663931271744694356042120214727633044781887161654398248173460912429771682941240183203887640483413196666063985823724911000133949138886139417685491969780060983398878122125457282482777286447457064450618499127782138606274325257611744728678217526958683261075377502071567249645383644488858769780618669943961067160862434811151080734960214948792072980491637264917353980947982025517017307171304869527841435782359596282894868767554107072527184506025142331548764212940710487673593728385252477345962261844079767506153094821216738988994194048427019752748948176643555040497372965067207684943608445508419409240407758378845827251310394847342057942244728244766612252429377980583646153337872620778899412531005697133392994694919769027990881542936507093480923744958509990056741068082941253841466276084966660834810384927309837366784416323562276479520630406378843722246783348500948228176955449138925718536945142242424048826484039937805542987955494415972573491651025953086932919124518352627025685781010050577383632236953052982606681303516265215623142524611477547111878315799105349126413550481293792747377959710584515537612441296851225357363043290747402066510280843477317208144278205753879348082596740794853848794695103789429222752797116600137491078303883792562912207320514964014061222452473629470163251435927019684407908056356596645814588399262201953641412548481355392330612989895739865651805579720171895953965284651634710752686219986403773095201445148796415369140127131971286041218840481360465180798827622549785865774004623461823095480027072507852292152352100846797005353476756822259002526159348076242468666598068516089164611935930902190139599665867590231648975888597748388466239916728034096193045235463562767340381235308009647170847506198516219199386506634411038398415024921308282705352113334683004004054540553993839573311973992843288344965473096199292490010527808381426402774279871148531147545902517640484702386308823592580815063006252963720830976211442329155536771107465422912097101716362842577233150615682812080335753675782992348936343469400671733911783745933988086610080555272274716649379802932395135579122296500232171256044882829135928928043183037087342617937873748168143859115214193253647335263361551384168097027634981200257886513811315307189299096746485988362893887409239535406253607123057868027721512769624431436761193577307373005960218173849612113887183592992922502354434762007558654130505820495183050688706091388653404558387515783063241210862702421289545965952388154728814256256466861440293399774663762407647101597019474942960427345945835591661261174013959829180832338435676995170859114324977623158538564247447927480445117787770813275398987285895628756160051545953478883839880608786695610103282540555672274501521888198161397668369333702447531310213134640978167783544931615367971710645766160844626859962394175242268950311270949994864428132615575427613275240004634545231683174124211217312550811659013456593015249268296280721508575689035065979071975324933983375833624095634797922995574648534426193018047537206381570541744503929010907236318481627404543719470417474895983259357494790727907518378520937008110263901944350510549856528401453584063435585581486086765598126158525650348129116550869176174912809290720478636703083088963447397479871137069635479924961297739933547281529511783324726909514253195281856341752632176106304736756025918896923564496028531134549664316526132349995558823344375296396251773196025822612631851851928193897933155634756695169322144197820431582942549327110150568479911983367534736265734224628148939331328452403114482228615872206224964553195716091408814164877037723744230457575831703393135205370412505049018519844896388435970724049388565775894273539267536614070010556047217157199342156913553281278412510430850069884511920942451841527323599218264820917256139175586484783752138426469507014460108961402475492400212849153505122940529684240414759762223889719521188662940778458817891182882531954722849649933041584889591051339545065889967620787411353882663645133812700053578985547551942712674699559518912384461895121499235235091865838769442287730058586432012887009567242272884386253211234578241409358480724269698253601165392004061810011784259311205728246345312035503905368497911146450742604810363390095123472190584342620000329463368900817685410268035183710552723002665871457824336320789098784891927110091764610380980007401736418238848714963479367972228420434309908272223420763531830468457959289981486997637489919405162481931760435103105656795562180680438558056204548327634995980295034590005260738488693192567300791504646547366577830516734721994823855549880345160934252387482841731345806249044538344823534564356114925713128990597853669213199191229525987356530806199769453051189868013845008320715069855692204908280098807256985572772333593698530898919518637585513002239726046491160431118118738754755934446957877938366065529317495568624106032738315405716474944719994118763915060573918367211999987887302706241711184797023354973669993564450223736101972555794538602992192737384797541099479016140939165713682081519293713068415913904503245679952197334707270771600523754709031510928793774410886121005553894859285348992533398521324363391949067573350400831217012597141663434378586527979855505162644171828628741893806008102708652972009338626169336804652430604483779795263958959595403295201428449150280214746616667572627181183422189989120886550074042840625866519828706156911665409375595046398507794210253413761721457181969629526782236593890482064552286983322439513330213746799912084077029305789343721634748954657775596547905917922789666330604281267016477802828835782606018802481925866666684237302943917371972789890227768175353695973522930057094801538806773099862673241188129019368219156418360122207265284587373678699332268304761923709264219957771852469927026358444661978242640603796588600450382881934194684978698566032850542339146067736191402992134887492032908072603689537106154416757932473565424875074014283391766900388558305564441767846414561847015170337494933576706345379744596946177059812883555692103649757700050325419928593172345269830458570416408120962723012638263630180120235713039827907318234112270114922598465813483872505669320378941210049544121499463666316890504956777184916994882723698946299785248655731574773991975257144152880882441975191576856000692536914884049430751296338874900666203694358468463766936716915340000014263624850134346444822851896979339461585071850358998294348622314879351646448097203827637982447469207216554195521579196600083931762809498847548560739758193838001464758057412195052957213970774895141436550580835467736633895941680814986830442361237707584202166208811083503419667940656020007725673485627830835321077763535414228165665483947025288597656171331638082858515673974319298560352829475083821316767537230851506338026586833776482083216485512815239787863636148619737972314480346213339037632581681797192694696870920200677742828317042768434689672740430226763218727198071852794289763646886736366761971961295300023633694543165794264627445610857702009949415385946370231583934217826057234168366924295378802288384744810286173485200395703098167031546687168975621972954085365850519644600171635379171663265813305201749270081830248847517012509067174468036692617778709827306923997491780420007715117386428335778209106284407083368046028424507209488809710908089430750181389571564802155396006507630445607942491345015095138509057680748312137699617671051282681504444740783324129323017462873484192662975024208551495204140869109884696523465703078205270488260948660625705211972418417918664644165072618085079892724256606814208657054407465464740830700761123107768727387868984074208228133129028739037557605356051911903559769688724851073549600587566751908334118544563667525549093892851265852548205178637802625149953798457425158541528665882003751906686718398962693724555493809273163870015361262832011272783806621262620793015719335850047168989153314753553349955089806546723999278601943467732082972510558335837556052866004526300126328883918883294699971098358550572601003604309017001379100159466364451023920746563961622537062252353173052565275174357975846886739424817669342736506586348425279107593171655360120240330238711346663004623243817899535528043463096033623084791730734076683984688538037658521283110933454048430035377288959169831540564117249472716713350486007040597214090405621833810299935139520685697288099391949511988211323077652131261682079674489964751291591570841395316457597379456360084645388026070390175664370966921976713895230173862937380459326855769829867428990833400411548782404952414076613285400513888679742937271171559801518431025589704608150730876559730422280852418197007868768717915619028504059863195623858800393467804930941565968925924415811916133761117577642722189625325949295154077198945038712785553873325846579322703629490584087632593408260674367822845354171865219444774884380790876109369813058901787745236592130189372616469057657524392970760145465828309023729452039903520871685771947092512387811084808405333667393240081952166652266315353633253853252859388810292308555849638698309636852814114952050789326708455828382026405461354475295407613068144985372025934687547863951730599665211149921664508736687298513359810889405073625149687680176861578597138497203987597343719618128754736458273412635328616767168471720108687930554833358967286993965987654356508839359662689241003053102503644800370388105145205069779356086612094282616247472699909822375759910687389625656634648143255121187184968425787056863350335307384340213049583958325703353503545826257241134256761347221690027154641153444071114506453714974331995037516066964665667449389124159773184322637503848583603608545992570905973835630769984167609327446707833304380470733334758212682863738365908529568118062366861437135286408683747718976940210738317800554860100465588639461530040862783699548141194076716294813799710206825618903501053916605489372280001359329856502143455547386913696567625946090680595475012792288066918666412920094936255270939905401342588622270398573219934970080602654617969652519914351611710304350444268639764771278993947820052051130834449436359638813035711057090416765338837978961719867147649387008444086056267755447002551283285672912481590838752346418240927583672769225523873727769679464578827563282936613561418711558735053584500074015045426591828845652466655240638437001881318078468492091219371468114960010826512388338760787195633507390556831500281225598387032500400961217265225349967948209826107690786761570401280916633534342689395454388193712909438645245546247741491435299961193207515840951028596099310217824273444415981454649628146426397611085179682320010336782904355982332144745280027057091638215254916959190436835837242014061387203752402388644550620573099229966528532598441809901700184869335148348464180131799222134199907655003246984058018039846240063142906635420788515609700637193337277813460550938552788130832227819920683838768903309531322177964896920467053140347857186770822935696657692979649513295031116062356930039219445117613365320094310608067812050912752467712151574142722189212502169149683946239391152720445968256340002644386815019636782536673769658985706701725623129059688265417368734690415843466565197988874665201860166218181610862349219132919410388531833564443382705139475768251535547767780674521288109208411243999264821254769410741390853453771429188439311597326944703976232317877649087978115840951833241659065181092215876585398435945997768633044957706729459440233415805907654754196109957290973203360604248157735166137791934230657529997199991145788266330948081731446218848568516021490580485250195651343091152821944452895307470429711358787144748380870005606194782778166613615961347777206782248896535628520979001780805584659857653322286336780891259644620428961677490973195966168618823249047444455735628676379307392703643080643925762662181311964975672595336390294144742175981710191859126101052982626541843112602642750702597156499119689983564281053895909946568712623629665976927289418374603921112011837065835608584022098781556327255098457104260274792835239326137238522163140126258870780515629874716418849362303131495876283703159680645554232128833039407833581859469393736753706432977611328353913655042517364223122651095798076505802993657999484915357996474216913468168476626362031793868754598402170010343286201039652226776913935521176640709170748764509868098394694269324653658380614677044073337839190354165474488485714161017663046457320120764213138925612697915229108943598880192211479670695031686250410175952590608889428325757531504816625436148095503779152649953754969789643995435610698874757703431764338999298213413920292724330398027380512941892422236560561038528335688635724926184049573069222434618182465962248731247764702574147187875559042741099872732040313125232097627373630644480359711725654714335067455625888882792313180242476894548538026962787392677677945939627689772485228414114626106508063660810011747144386691308761469388031249082397730454955644205915934245844097138422305998607954217456765435080238974989196779699569056536695288821593814644133119330821393573507785631698448391016710486087543050358233176469130957524382385344717388765495875018861843758982818315697935258655522018394500659465683935534902059354649025726369071870141599715960301421282020574247224797048838491422677761984650692768432429121706823888357719952239416838443442733246245503269458202883964460964156233584727223429309724492288231475844605743318076993528003178187766394220712450172997853810180823899236145057226703721114962833989852605596533672046948912421158396304941965945221070718676414491141865141603072506606939904251128413842567226341036094854633502549100711332113076360543341719327328167538561087428680012597052762304052262950183750038850684958351893872661627006794012217451838135906896869186688251637059450577765533191297345178472468062267443746952334129973874175454401755333629386784133581188441136909012785254116026156636778053083539250798234197636810222369122279618816449952801518102893409700635021886164864350068364300335381309555880964853814401402222222037428940322205322097658162158241240315398447570638790590030247709128310655444810097499738447085699465763040393964895123218903934314280958421232334100102009559044929577221255026472871288409792856444709605292027099870490528167453473028082677331779265477657688888501314545536446106570046736437307199315469346335580985975466762205517685059420279510373093937867638281774191904955373955170100343274180950336628967428363849330754893348966817042538313630931824441075339191757985555381328397676578398983135227271323608904235974004013756131267130003453273765512063707841624405257840639944834689886407814336647505120818772495599559494281907400595797056759507966498784199239551951111364017877450152228107939885936729112712243079169991831971432254452484099677889281090851231703206008637038414411842613745187125996653283471076844207978094381058188351686844285711962489635290259458407743274336254043655574671142272431689300864833676438602560152881956844389463983619663335897562688725676731216886571660387032955881632763272782304409310430808412709217950091168752085308844094816101844272031557988825192835331606190241063621499974989419109434287467816243967556028213889441528262457038445572307405291412987626656112970859682051282919422201453316524805435510071816801105943577951002078194923142786409502396792949252848739319411160653544747714601512299530178477414818279279882239460647222165325159083401031069967585194944447169647026089591064304600580233041330695963022953896262735250492695730601374092565782323103300191937688058171905836343279695420593005825113581629341370848065312122989291896887967653937449026948301366811795124554399593898478203848072310411802499694867902396902248093839564017406889804174742707519128353567307961941678239003587129383032316995076925500680223536325598627976091955611164567852001860951864854617149450404310920515833363467396124630201776142231787530781976974682864674921572235412521829999290196937812331513149136860202284851547432042268668990951343612692222316546710161555660824993873187976112777335709796482900354400127936405641959486463253168431195749867742972645060966495460656110514051268587784856653113184036771906888192963289930352450710440076844770665369865081358785697844766230048356338784171348539820160171384539191838066442185858515256163745285851894720314259697994586550361439484921618254678161141152076802016668430569971329029234759642988317647715095730814811251365423136518857156579141314519054663112408027896706408813878552267399148561499405631472014221892927240010209368543774969712746523387843335820837912721433677740730504766973502433459613713378742672825471213564972345632722890094608057768873495100398468923604151234321342346359006688268521536109151876608458776827431959717476611980345573814201254661783557687801413017484411965058486147741145975310503702411271526480535793308053929938831370171428127514123837375549446270294295439608862953994214631356179074748839859750686258878985853438548492268897483881966706984726286990408589295424725153623081033812843616951650874295092826920773235718711182565826370418914382591363596811374304802845346324815336720248941958805926305387167343685704304521517385862982340014224288070862531737289563068892854978230426561208276655925730658963633694746292660293125283839711051771732485191873146853959990412527215222979292831892555312325122835580262153917730695621519448667791820140148664070651772461956700375361822522788978258719773621026683654562443788830426344659108347443365150672294460285176624442458355663997003894397385630203218388036979977964073826126204668685658060130931990858604400975839532346975557165808380222923116607115555130783575822431200392227864879900265280065316139575052685649924462354706950368240698066277125639077858381032095878819137694070265485110500179011318899294278607278640345218558596465840809351552849811071725327430133889256652969336340229365732259891328660884319945998019339872776020098877629424678632778093834514810456418012441393555422199167880016496045971080513995503988891118408918331948919359900712391053370028728344558632585272235118745934736686025523939717464780300229908981111761432817464332159719852646979347942675269040586432733844721345260348640483933914456185856967110519340676567248173501168580394490632692931804319846867539224410690408617267088581555605564091365428255883055900418147788573620091237862125795297643060871733207740541740203640729499143832906520361600546118117141939870806941850255779552523332582480696447698303652865515259078449184404710604811303064058755804038497153842761867109476320638599916119441641378947644090567850636886073257490339831088049775077315215579772596533037510835714047629152676041076380843336178544203281798369585417639387248731895630857794440072876711502707279264968741892705309538097576559246167669391698384421199929992898138689194733898778513283901495491161264330275702189863561926119223710614131639801929701991284527804799824721179831827385385125616568382818487835073829824642117212825473990557968197364748481402622321635398882432451567051663062799733418522563735576375490776139125527396221805240165186365422952317648438860778988496641831270626760089394851445062207987175994518286579372938614871476296415664978047812842016358802177044997852101433177337243734210826976952006364598913954083626404488202964819593560524802994559421812947468113578334007373291722970259687153279942656592662626458864653070482471068869993990299215272661773717529807736314925860108461142417076319469386330952681006486375008863461997715361455436090041876694324174366541515740363176608388880658002514727480532258985168080804870856607607269083431086037766431045369008089934354092457740473154642797029418705377112508770532157148166527552560227028641458296592146334862446818653071918085888623973898588125102597299123178762018748841014044316747627765385205394126247291624840648907644076079926195478341956872474405471374666103414599052552971332155387004834897893521499706961164472743318982990274591539754813629242100555417204156232268111603782780710701145833742676930030437185262225974472175054787247650919541633931673978525403812232941085435398189602138503694867838709983216062741841717942330605087228630713023804287878458268665219847011436443432794192483686488807076056240761700541320648139113220459126207030141647866387482065596538710023768206282341619443420911094933806173987482589290206699012936184584303359785844013536632753877236782015442942052430556804925956350149043520690790171816130300827141889740010171569741957132519255993637432364324107736696758646310868486899235192305898473217985464905746470703462674542480438996642351432422683870132907985029848660289876021864961393578439062535232071868148250239493124346767805506739617609933096129923466163574124145263124634346975520979560015119580298062759086363283278092129688644459918101660421573532134053383120088180386860898235564630799119811108667764887369424481951120584136669449185677636861659191045602511387773888568239388807879343679532616162692062935723677085904358141066519067880214433043765279138697789823664463401556310877878596211395224947401969071177207989743590700652424181701570960376152218988194315791071294902143768799873886748962839622702423307977427517624437766127809704381901490232407438494863459249780889214369694070081558963274327225168352939191911893342947122963583020476367620904002097307501022379675744943630023969003232519266180872605801300996218788632490122914760218886230169414344461567118473890438609147506967864562370029331520290896358010593765212292756755476353999480083125399611589821799002753242701151629631944345974112895357720174236526633741383042048285618203398619172608687249332832980223974670880183810769669133946441014490014089392630100365722045605999765847935143423092528380561024566045872906426571271377591534547804044728009694443812964827610019385594914694210634472805766081093279610013750449672711238690593252809861625626439993608748599897289073725842587762215443046797458208482849314284367055215931276778707937527942827261209729173232678686765285840233980394676110088214333141411482141197821704084112508532132418888409213003144063777677250747659410655531783530934302832283741449970969218409520501792662036316781867536577869010550200520848656744636935955768463476361737023164517912836354903722773866673674963314565712386580829442938253136783042220819990739614399346119698619948961065673313236919545307316613658363192310563613776675601812994031986554663694288296480222986124612024244078518737276563511904243699583330211551943283574556313488714661170889252710018683111156325141449726521823094542375421064832838681166808878717636948992849927238998279676127587237029087243731099009529728949774583642104561888531210026340909125986866733396071271388205799896649574479524131087292924250168199665778178537016022488920222215023365886219825775683066529421659735760360795453615397346751860691726839113340968628486492938339417530049120989721925066124469858564839388879542631425705861754827160272723226623919247392106606583132371226901188186395377754374395731539285516684525849800959625106339163039455460072763868486497826826864369231700399049233085541450991967302588022044223121814006297280081231465149372012218803125331604249820499836874348125502403431526710020960995849798222844769094814256932131688003439702950037082520337061667280663137070138895155111582590659315704945198215586263370081528299345052017844644777855085045225644123976548035797016304994037844574173019501577053932286509976273655595720195436145252968815558390867246862717166030938967187462030290700639993229122373340193514381403501092894593601529551641823924031374857305177219874778334749884337203413782602086778798912545897820127450683100266879726831912468582032305232804724008341059215565782590826954342291230329367570021274993336207642511502312634208138561061353833636670357887877531960176495629630388675777432689569525970581186366008388821324471975720596851304814806131827976839210752917762327307744261018332096093695256982567409453471693080902449964618290692325296223787250548907275865388282758556151730336012917125207144745400473270066147588753436108602634516144374618270011548112959605200283012505844928028586869638986795078148565532162862650330890095123035060598359103915473393331914832056746417711147507505176250203312159031647384420919455051665982536899599823900819826981266055657019989649357714519828812144075524859006791292268198042449566851463846990386654782100728388165152052967727530816107958651289994114295372402572689522162065227095342320380960986877809363667473492817910325434926437574413526652848127790274919727804851134669032426922213410703684979593872687111315392731690499215897557343000648474242677447639150302895917077067047266210073594804329721483890277144486416829150147513298178612411448168439483418241191338006988078665137554523177242512943241875212339009565564856719004159137177987457950925484121410233765294245169448490677554245910773570578553875247453413099609961825230774926550536892596576005395194528188819674609846347344135994405181518128858222192810904895138783236436824587766025123339194103829160877919280305339493254782443827705687042905980474014845401961117751918503177364586670292189037335370345226686894588547633632147698378533612220634866285453369872355892417005824308870030291844886225423456023448927479330671810020386522644609929064074129520129481098808369755941151777506476784431553539970416235721309038801419923818376829059812599547071692555319445860925185123870460367735696638181055800584957013049976351543438145954498160353669963416297385783795130881353026154009272863565114788768947124957389538421976907787260007910710606822234434267826971883626118410389335397418376171560008849930400647168326962647077937513688409691618147386166572781039123861156456704029967292919793921896518757821525627035699363628099687941231121481711568798913156078317380786469051663002437884917080232764220318012788109303545122427498074001029838338488816957224507136509564451637152543314229162210836064305118839312232000041371763716519082041015171447939495682507567858892582740835714279862469905959492299125677524464482309127805028233825325010139153362731049031389674124826113861216103170705622638305935012393694753977908547896626559504851901056739604708548881440146090789923437449488583918651103297841421645676507494474992808721351446190536537448973229767134995908073988156991014443373604418522894193992791179891967360120966319975833942858080322637276042445000370869518649748332224878385572913325726295208213450161207797328360024389475697785948814381389428804680011550464813581772110238337572788919817469390217217435218307889179160147170743354752950769937990143658208997050795064451180721908815492696455753219825374827048404600351971181476518796972516473978829889290000146481774632192083399787711263741767792317352827748489272136585043497207654919625510768167251939565571433483334287095470530713203779773960697663439148799698509071148015597647137866311074890590693200144071222467214746862990656355422464716378987922701732370855343722381350165081997154224582815293501614817063081553895106786951273787270404967540236399835225162904650090647564913640283122077064109171015299221878270559262486744973938278526411517229063346266836704673719800464198027773079457058781789830124856284766870099386962883773426265118039718162780251998101366730627721831397914647315497339089555709591809981427195219265526992551482660906086833468722324420286957562129427661118288384850309718575215590003480181679955699378661180724559917247415157759823828282417677782322436875739451333007654375523385066121848029739940361376697433720660308713156953507952850692027097592750399205963896735234836194800441059882286821196840993541051770728841545660390495162347222263530392932763363937046936805773600226552817482580437294679596985524079017867092337863084225388856140889748702272832099741287583071481567675488050697894425660781016309814718008897279104624391102594623606272203419985268833834319149547936438450537615648366726847142226904512303550358871695066475408219136419128440696524715264908595795025129958158859431564489193690535762599180251012230924232878402194389855919427815159363178374435753875685012542049990020264458072262229142931769466584518762970844617610420916240919274391608116860259981241854900565970648630573377445701795681305449968279690022654574713770961906348220813727881045197285460419698666356277787420902132583359474983699825524753329120551960551235503471010220330297006003690138626566330694673937587802086066439739892252339905172514513695138832916194649494706164188895352683060912203316171382713179060279589792639227237027432506910661814222706872866701379299808118229228210962600833276382609278510646664026996480181234863866100103018402420166944902185963964344148544414877337283892812552190464412593629129899407450138059828842529135380650992930923757234584824797929628646686754926764358289300484607033977128645745960456417074254900843811877802550291001078670044848095581848743823535528239792562689545735348457383750166597343723468319087632180910688799962298093620303076509836551774929964256426088138412683902083947391243979997276103346592713490545824667531486834058291840187777389565962399389778923644237546587234584083895393868444241578089502008233918286594559144902134352615297095788478453640105757831965700357612670149917823019611024760757985404655183824734241797120245028995777996876328979794161249257495750541722296549619437661686104242819546809528563853538929007762194680753679670751148933830981266620544763232256200888518840873882629810821013446889864991568486719208733492653449393724380532928744720796169832116210982994084876994635833923272515698651420674328119034367326194066967132165795016780337453225745216766238446116670198385476538634572832505588293425875877496907165004766589701777744331374192972995609291763170554095163669267492148415007814991860250604071817801972599911877637217027818323483780669080077725226965530751846274719944104283658552648130472957218484071487415780757995574383453715081240048365492564718547558071995971003394827750594557279872735101828796294513589936623317968235985450375400168790668026202994282013913755507882100965363680822647087267983616429731495303427585790485345991015388312647845887202137198094634311823116128715545847637504337365343036246948003410123071840023219109135742702701797907586058961594729613869975523872815264232717683713081748013858906212035269008106691563039886563981425239351029283765594464231077049545128229145849026344220913544268876712744220839582869827601829996919294328755901920804881380605755553473923134355156297388208941590612218463836478173773607627622151779400167911438916746047976409758267910975681879412665028476496100074571523091628056262041017203213445414226270141159006042012508572970767291570390749438392255529378837102981321872262307706813178453682646634982936141412217380902436346341050233011357103519657242488276464798429467884695089838282295659493896136049643559662318583154564619713462568488867845090042025442634468721757929979265648548582559755263488474806760104044090248505176065797864579813272887629030625672646821911827671074940857567626505635694007997461178076154059317351358754325006130653959917063104458704673505812598446929008225659812013716880064524389355764914161883180551513708429243943126647301381587055024670434103069128532591284693735345057427085659126436895590308717648639122852935425612932627821388612736355584873957612751242673056231222814415048662362417281825946381526298838046216705678240214256351802010860977688847624529765343255223086962904151980368022246890962082733654364570941446785503519402305196641868209577402823071263911088675369377209281950351876656474926701499959547362811133751960146932481253478495804066640857161458368586773985183048793920426029437958708401395438100249784057026122974083823765962217221304231994445215534701339954596285373976446812619257461537976643916657826847749199118555598589427798361638307573897835803946200285456149148859937387718334694790208160003658654025120882297903658409455082087892154158836417979816631262969851377155721133383890478040153884350079567294326931738572649712359185521276138114599773036501191304739241984394923406691365279778176702658635622275856762393838618738400455414844664356082924712949301806058344682326268405325850453687833614307539572839844554692377255668717045453012631479098664313664636390518422194347942305593211773640614117885142451805194597156629950827551302830893822775028526961149288166235262101679814759764091507976756393188255606249331452439179992158068127111369127151544366770788660261872317060604217113600295053273686008707403434916285435804786895467328273768774317063854106460456349441535810527593493840626814141548379441053084226642436341922891618194744395951342514964627053507310762571931980724875902530513217901370154067563554748232134820021174081741860109617818123406357873871633847759585068275556926136021958305192571765167690478190622429121823584438603079000437274251402701282700905948711244449640938482127412127222179618363236407510151097882455868696317376754383865345257023785878180365211199611639949408844759129215455822804401581031389053300161838067159363784508352283685723934701058820478301857532698580633927962253086337416220879263703231120610089399295025888080491032403691254710367540500073632668071959479843285966141974683514642612675490932652620737630175886389503165861814099133704881425675472602646982693671857873424497164886086708060910668648882773755302893608770528943529281957445045195371928861696311141951102254679478311589551182319798947870436510670278270903606709336709328911234379101560258034423948800450290119258236668673622621326803648454029540083536283634735479472560617360772546857474473447659502153956391819895786561066586004252292081866458704487052626660819269395349978919181563397452844063173381831710088360644462245113593639883305952804834240302077734038027715586965565777664603616229725458391302732355203803265290057806920297117610500138534203203520714009806581985951978681153252222736256031743596660600419756431167609956030439690045571986010649425632488175414395306358970893730655901710878207813262283197605099980179080946356082518088365516720569430142390015758678239335758897180433390803335313927979761668512534637594429077489309636954167296996741058099925264016239669841671133911144235537685439607090624632093236938206242769065576110667791820939788221044846860253450916537465161805155754563853383930246767071475263152246560129957078087574827002868665586104320361868867435882884112158780676494683390939214031953537206425563473613295252286964618638667964652386683135986704719504406050039686206799774003571996838461083452363108630679423063393826371423554919625378983608307684147913788077135384356118346362680319623147471152286671662687281863354693199152006928898248913809167843867626781980121728082874785867954771719721677665441673304037838357439911818843369579529570324726117712862330891438652260833895032510883281799766578130485708084490801523049095494288261698446956019989943236898687661363702058591251651869167395910505701944127501818815125276784398467984448282051032968159126813128238800485232772920467559247507482496410789064801505551377226243075413797698359736007462873119614861707668508161469729699842636384604794008496254577920883903895230457520180002237037815971140666037584084113818057561353397743971556591291297372802432509732719986251858853395097969080790368033826303782506537220090764691240350084081515194173010701012946305414362410368667922128626695360472207597377880061174294134515347652484445563253822340544204059660713733485447310767107241522343353917259951448129296327281148749388980044113883376166817105056142229607282533769748608480593130231750186440741173587440223543598481623804905675831130330808772193054287831247724466676985474248974755405595356568450026372659173939923739755297279505581593923093746357740870509821731574982107991557797020941870094693133860162001419474085923762288309519858829864426871359645141000433891828669741207627311600256737991498496749466571880415626067537562062986385340888744976366320921153393980890682892682419445521958745256339593661985892385760633788689724784397717329120131404492554180191937275195560178139620044282767835649870857936857072835352846247896340227270434862402605487937017322496406997720978597750921865961073986195347642468925532636672310707910495860911570935155697121890098388017197241283384949464155463527351296151428863975649094750547468719846024528270723620811111412233801644041085684616522392349992423151293814109586191335568140855289564404817941667865127118545614545682910611203548621531463050157556883401249335783680487364809325314706287371657446623797212133227515117770652001627418945134511835681402159282591818745739791944528001592440982185341351795600175243722857905975248362464209983997776662578905219023506607664379642339928956171524957705830165475241247410234256522261227872913923386378927514204851740649297018487873485507558094829426543992127270771261174734086152634589118929955317460050509320399382068997731137536442206952422409086894075211990025409881989844949064713859506938583532308414837716969431246761736861556460912444041715063581154055385588766825075197020321050704465534723216726614294761859150444149877362072562259479954268291713435316495409378575903883364399573273538250495161621869425173610445630914568507530626362884890124570874044556141092043836418866694025848649325681666562340871191222748375127811523020841867274637371312375520992937426856115605668625371719452312283802724205062643507413760896411519798099343403315387060527852820201557877137978703954181548783212462984407780734646555288474250486785383195920634974551773102325678191257932850725598475254186576774823074920517980187788238622174613552181090774783322176966673119897173689945142222405782431014344348016993608740703349851730314976774099364866099652273095567863884122406823309076342538211331384541480363632079353754847821159621569396900271906344368183557208032266880165219891099545711511397272525685985210169082620539735287983694491718513386913751202698667665956925454811194152208172139562410917665041120444411814417624181887464121968062396174825045285664028987223137345531251268473816143096178907067617991752086030868019784819943743914257640219330185641107359193522398599671754198743148305511699642775987797329414953716123737156414932477336350944742582161716867409913907001536702837368389527138498138336181454509335713284141438514115658731348537562621641277987172738183119652908618354036938643305812499393417498602637860524277813526699926788821751482355088652552404961178545324041763217844781956003649929040842870404025401158309913860364244077293716925674722682733466926034507908801327144099824705705851120059935720109753934462555989441368847731945699154914046803585723383204410597690101394620267845822184533564521279848157800777891236477812150981329535717902235696985375518119358755751851245424694821085124784070848749162119810043617182284431400202607512052201122996913790843075703655583905944485480527600702450644635016973891555886488073052121065777631365733108783845742611336691858622133863495558164281069705456942997337203502941220415482817683662363945392898101271929285790108366631947006173410116475459529177534278182030632175197042022620693553395324952003287692750484478501305413197689642208148437542821063246105568129953986881629754371105078203697297609566873073780884496036427895856324167733027125368240738117015688345024687697009630296945613656596254355373884900146600980238598766060832350321034077142884553549355382859284246457115160487975962949934560164539565063356012590486994852635951591662380091164079143979429553514391223196495678066592823317577432184481673210404797543742669767277736548927922376764621979414625791769793369774347080004118006883466316870139026157432610742088751683523229867689855786547056343104718986137156311668783870981852344861066212414943182172166879837195669493719825781765525923191810199364657978136175504662732621193830778581329979134357803475002378134878439615885415046552142953157410566471216967879560607395788419448588567837238112318669555142602272783330291975866641308141279773367701148898455922331203743105006904779583706327339401451477674180443001636844672260481800768641441690316443117065252550484159225367714934711219979638928646495507259541940650232395249602667760288872657350830121742682216737998213902963096188734912895664753176901866825606056621449200647876715479756637211154907359059886017382166511796928870836075125379627502853881891611171306679702523134659197051142984473823413283312585715817324463523026809136375125513234644810275740727073720691231371727510152890577293800907285417327725574303102377069585862778637531194268724923639392982502079801490174369558743163070787152440389561842468704887454886675542906295218190911630642409569117446459867974850727678904061230560613528263898511776351379239249811958855038663655657561827762876401902205433897982489019009322358476590359800079288422335730698661055795095321877269767919592557141033171081520254427255359422134545349775599660244922180917195220090097101197532426766485823100658106589784983193901171179541699761627655346781793579389399348215376202140141999645010938092673923565368201640175552371363700929996385776794942625859044436613324097198074689805414871468279553538343845865428283731626843053215263491045462840763732032581799751222327089863507546535054209128186445847792744127934575851247866704278964590059298243699724524668186618038652098413233332353460038731765835342156925640955307094382214876078627975616904413950112696311916394210568915463577704365179228598258345811970052702195692469727335112081390073067480926718048299930275921619221335631216350605183701795238230452319531772188128128734496914752330755807126614915535511199522319471837377322773798455829330040354554748327643489484443791934585271789952145309272052167323461063145301986328311910610304060091310357475685536793599302171800776315102175217569573212648932771984151994089727875054717332301470297387128373176914299983931874501860456512199922999000954734203920371112934232053386935382346740783304165334300806954247608121594217698636021990542647782944871366719048578733358031261512391630795021817403198792478494166259447983785549298162746915671481857991676479423692427151452581089823389526409599676459250998245162480016504856274242343015424860126148919902175708050523668939606277611735893928199216961583741803339750166619098462605033323741095794446854992442142220876698997563868838051586013102880189994432933058798512793397220918155286699185091309999574263917433695111288794518905599566386671825632452456941827668868134019267608293797188679880403499854463699385115239153696775284478273679844118486270815209723857870190965679028021000095122276537429978742632036884145401737685640289294171184110213046516936974643922035475371959491523282914610683120191939596083591826441536955812047217418666200829757347339513644619628059300283034350406502534319939319878724164043653413246284362355873035187994857559794436665452578970126516886627946683817500878451917107287452469074793969985062213984246603057905481048156132092996458299538307807747694381817277643102430319671184915364893183048930479103034618819885848324717462396351125361408928763880990850172318331724045214659228228586953862913715488733957763602569152996787514743822945360601529522157444447564020868816772737772995864919915323484572982165937059774111370710885016301619130337132264163632104465612562765043108637302384670200462879944020920706365213495086137599113716416159459107783897273204202908170768490178116173891084984085518817288400007014774560987989374499057200795679354306941628947580938263541050181974958595976449202767964151249910791947968462582623641446222545758455762520145038283687886504919841512253910465843353791151114706196775800449134209739003764239617417793724320548496981945635550814577723025897242071792439973024003309933186130505678659034291341504237688065168266802145602341212202400584784861168548631465518040339678613142988392195522589405949195111323537637801134752259747746649759700950187202261953665750545700326093875020361896396970809493070041577475750792719702479075449476767443542772153587133227573960035117814482978215412837421223712274091335420342192552472378582768589559571936013582940360936925968568866397549737725261814529461251689793912551241181867256308276339513117819883313554360030450997034974941919003780061382160800897815528756463861091019076085825701460642046509018516184070403889471032527295005043621272108260796231065010153181752523098070340130892466347233489475783919151055265011019832729119751814830103333329545110859691995099046703830379377984696986729979162742427626232920068158391126841383041176493149391808781520129053164321672212872899011194693470945215469651851015792287420929300403560770618351637638181025873201651697287262345963862515216472855616011954528227950579190495892623172679240130412659106873726267813185709011144722462001362584413835080996986009388758366124411597956884685058659289878106539019680397310749434210744707077490635630434440550807365833576326448084247576085762842339523502656644049001112736679040317942727672597555361299565590374191969525733395250324864185084061138705560820278818883044391588602975240600784793008733084590052079563533496568693384709788492028247092895678774494528952794223218824982032552199189598769884696071329718670189813003904453138069844066256923076165740265985515267832653052068560856274058147311129364132045253884765836806725182216502007455200216572659844736114342844819377775105042486451347677207168949260218375404306504240457884741575530733620764790707391705565626413262285784533910171804528538754205076361984462230661374417270919770338996671354163101676710423812540573320190309079095146559179448300656660885129089388648464701991826449031433421801473261788851017556153982374665370693406001272603502175206892815716495382449121044435331022432104557214051714882506240936331181117668620905174255147285579982409645809402732277213757152967557859925049344461847129723114849196239007657736593496869265062782475792155957368145472813064855027954338448997419132259430654666017950022799018064998600478431401574734476170849617271515614063654096335178126933448793910241951537609093391734884586196459431441576101200226021432347724657472905810655732061041126855626512020192153217992109707247481433787865569689356189921989639057926043573631438804730730783554175792298500841438665523796766695952853972279427124488910869566659493797928134763315319033039880196198809156273682169460899270033736651116170726040926349339293493806403051367760460704282286085908249347274005094412673630322091891206748786554103759352945609848992896176999574158848733741577624328396220870028716573782132131864206864350743608344104267866929602485714312211159481782672192260864615952301788026708345471342695117786394046041838048741954426595724302772400003775376102268176667373412372626887398356582470760489246773873765786168177910288518729777403097313115797831866005337565184532375296822871866631467427264070367169124918052059387933487160089900080194020736308082787837828684865988023658666915815101228006200899123081859354541582164398383181908441525262317191641314261580022895537586311884501993109692871698076260789524952645417170880469758467991400230203137104465551572172851581422305861083299512268334279715543208290306643816143359389524256222980005900909501827762536112823253095913923637993020717355452775135150254501351850035687654063355065728070332778499090104859965698606542114520628114881756030181205899261441543312244342732942046605356987671488447709643893550683854284849550704378996077014846290652412560417724176497282984730849480463235914913715277440857484666176196284908236872710293671798365575534812895873545346044086795951960581805307202265237968685306469358544451452254345791383276490484869080670282346131791231196985976859410312627356456933018870650298725737912772284145957862450490507920403283857724969331336910858714932082182331095259600243953677710143941862413720860029870991191797125623832879274031945668367042241685962876786102878527812569220968429252534283938374449902632663244122310855358259825086934834656241615296082037920526277598671832564728474830741245455148298911537157026931888733357737455617685527682268510313304869426015950810145565451714608401963401395600159448051199236265505677246437332435344564963386023734401766835708204232401196900556907099759934227335780531678146589376987940516673723897665906762058560375229085564603978469451825156867675843261498908209354324895782078670991033379401472024644785918718318110332319910072084923462562651283282415471609327422946386567940811138796064337734355118451778645232952912414454958888540483538587699801169102468576563283225123093098511683353538454798749352417508508647513936010629124867520245757252096615544766798861215131301984177826139504203939718469099540636850691864548817739807465200800049801332197323881223910788842536943274446155928746678622582673034513832604377691370447088980792407708980019491523540442316672654232444534177758854679298912581803327133932012382178597279433163066661035698485785643490200702543194019889450215378718775255769166063637280129354044936853656611577671979928375034760133904548100635876055636827764260708323307450895521856972143989004128106968092519655316216971497949474265987714650672093873427998175473449433240994029115714962806368446706590204225437369986864438328661925736299738723687950308069928264963685867355454686766500025388142550868025847318266682309383507335883471992679420234031359998375836986139250872808643630363335543885385898913406274213350231518190100822416001085102691940208088750774311810071330170667770042005650137871826076699943743886447440134267387922002996908880527980039013357376370779537512144769220136293568829481732591151644944233996976999579918033706241577152317167544216925939021094255278934081923757228438687776314763193151295612253488875924565625105958270659034164002696964453721613595399377224343439455048539596082781020171830939843636747539879068199429033878880185567159810626975994007344429470349297457660447678527498088559543129331483904507287204832384039568773897605251760698100895429660323753006769615128804971565595282932367122090712617922572071251841147624837364971038826696277542708224170694836160846074280243152780932867863889597823921987914019556276090699697592820303828078086788509723441799130463499048665271487947996170395463477829855697303279484551604340761208740986040831653806268962358757871669595222193362406277221797608169843995815260639816404045058577062305378006060371291648508603591078908786481205801434108195134137328324811128725907385857133897830721760628705600615760141228315015556811320256531250012114313000262211870279067790034447182477139410799498288290150546683128088097698694054639970177077154290724767831812478610846182410265048296568565269052702945129303835854942839469040307686406452716143481253154888036247554031698544363558442697052415154389446380776123457582652959167172685595263947052740755066049370058302066933598031035330223497791627484541428871359794226226054804703827316134414085825293359907843924794325965052324925125941893433528762187979411268299922387148389031864461382182367088241145123582237890878636344374358620835062942338097280895222640684059746530811665263868366414264595806246858729912091485536315559557042472851524659990571765477145148618573244446929332659040851364866400763950544026236609360466138868435465336038821334461211945130844489011127701995105284979155546510084553963627622638644617652222795180375981810228741909773297303008420134234658750642967498266319145407418731941972863170217265125014456276553137953250633514603403042093220637576403965542403288235281587456570689425563850380848464462603251373304759566623097532502830259277610749531625842317778659001891877273471137642629465758801793561559011398569101394997788553078902333949764506883479041909728778492833091121654152453224257129514304988282451643887979272430639366129691098077598525376432819618815012916502654611193419135762203271422861794832407263463618893973542802703105236751111225329399177354424651627701822783909023497895159781163228220049889483768573393520883469041273523211858808064191319202580123397539915855272677046907338941265745344853898973175322149810361469490169386266484305656349527210547082559263526694068717480006560992203858233895102662099784899549300027052802294885709242129140701264143603109461485412621632494845228123495538846200986511255588271094288267063996285652344543563826075047007283470474929489687149767557996015280459572954990936950004708780726601090159560629413416762443664460812052737565606249813557785626769151274093456837738217314010084882264885347740294425262092657378495468157745584513411710834732311796422829254233804304918079728768272508985702775435775000112120521281799545202893349620862459113012511080873934157141800299310203487048318943261207133912407986160058544999668862575582435743096120035001473348988285192422218406457392531761656653837835861153510075784173241093223426455200091747231783425918479568550844757727534429209334679417845954363698635991800681109198500786295343503336522941993802111170384471392634070402789141384356535051029109996651381533821427245815549707081313765334325983243805368050944365022950860035422893340401374983517129916702220206758186645770598775561046562806969537812462426364838603973885411251889746231219642873675767995916813241678126210044483414374811312732401221833669083369036916227811521286483284358312296765787161948647986483443848676869860464747088055590375066363498738133583078206567628015145477466493934736733670589421761170302126943898426620408540653320577016213740565505094383693489371441471025780269658923532579378944253654809891482393639705409350240982690388519652078047782875711362362718696838712157625671528355466920476856693888322728152317352336474845407558074604233312354227377555238040373097812638544907882810416502631642261490830915843772620488639452082364176382633876638301908865893893499462398928783451566311476874234301267840298759094430512783834878476167354963047656995339071425360255334890617333684738281140289352359697328439697543834969836149474050598410914089869416320403350436969718735174672902386646486252660180894125807477791360414059098889012694729416455479159679032221331272370350955878974399248817650544292724658789784749077624709974656872346654077935239321419933346466814237785664358441820118802109382234816478072819522874114633036226069946547391154051736345872322443267463519694465270059695055382672811221639629600481631138724840436982406014043762933465384858010371472216100199648741908649661404961036570882094914782358365553269894823854705452752987668486139429803051693867226670475806981403826610755046052387056249914629022974035350830116503060558647874739617968812554753491818108605113861590235537871599448885063902057282337464006336236269256072553348832918847657777242030165154238872890164876322275981370509247732857725427501753984100583838695857492071901583924892334105440697238418583267389962404235371831190806951157111676714429871096139493642985595113339995943807742426366990945644209602750292626155494114742122429658120112706381969505352255841828403009565760006998204351835235077255215669974471372962287680371149108000014006206409727216504975360018311982967577290783317863415543748674627571598993160223207503986810672789344548978678735105771623769798724763798266835292265828712565819168600433887465866800703446261605833878241264243033454623795134031232245721128942132896303080630891224320444579780393537154685333357579327383604392113609241739046013773465144677381260897972615599989470489629850788356065526658894608530953107939221460245496094164137007607385137087744926452941018401226873723482918456685594116266749672339596249645039086192744005119556759791311904805786567353551022055723564767790182278449988403574981318948497599418966606106691628921433617449141002995659208997331014000523856769365889666636395350585510220423026690436455428261507998574926758169495835167437449228359411850428253100204111552041149351613357982255597495808840698198213937898439183768342499713469447175710031416609042292984483002669239616967548880344316170454706499106478764326105682884415206232214331255680613575449176735566624628536864751911669221242603335982687977011738032842656903169680503367116009399754320043778985303796967345842427506422952558849827713014291891698330736357788088283450220344150474423509412192751203156026433174392002920676136592523493306000919478835832016744893181976152580917020848279141429848110743908930189855512432722793135178463893304116275379394189865317172389678759118243409124036133345954358231933725792077672026649855535945388556571010866916027270262633605100689583601324859858423871737468360630571827405582275000626202600205916673970115485913920083715044314359733390775357503096424589697143511791730885388421401453313310705621363191510607771067251969096937356306177150921972439240617683138551923259719953778001354894747808302390886738797167464873870717036645283982625823433506760016498782466707800055378000672385453245757710099201118267671264475556450495079402372935933417712549050691031144856610795468354041590016407188353926287746333722215550289107314737712111253811729545027764162593729018708930561755986620931235929557894421790676809510651543390076784315984751288033284529500882924427584399323498406557450336018308253564332223547752673984833909231089859276663925228915753171489298992542894217027889080489494232652845586143347528964456417106930061377046634000952104652770568970502393063187493863976310179831430118050143240056379156804311016504882884050166225191003987070254713813629153398091562664712575559485719410044540282006101821877987002873788927691656401632855870760218650587624570484009267926044622271274172241235417136586168723706321310683773181579442989923832434385178271858787310421772193444834880569794282389480903610340978557275385024506229160981976812197781105653057192985627613324272713974764655453440859298448917564395125343160942969142185172436741650992900218867819663041031351674879623269938582103443225870789730410942326126054019073620003180585271079377357168779649698832550454408384034275614711445762262113866561438430815344173448478328908003074600640371117001509403259088469749343929089549959950460106260594880699354685172085079045702968046216514347836855728105369348258626484232860532936009468312736819253570725982762418502714708199609468097353399168121051247837766082902270556831394847726063147256449429664405866368942046589777970335317691271335918079385018363941558593064998981207853486191713292326760197186027043701351572572661158091785103536225242673779059321691636837317353400740379736550375949912956402466868531602065912493301119969014410539676739900877188868948750020006855588495526443516755982538378703660088780373160075198444341243063023480422371984309295158366971292709506840987028166777400923968015787360361036311155941780923075823010395691856994103786434275050852249441263204395611799173965868927306095876349419677927947097148051837849796062822079850551555481892741697688205208063569085777937446097937848101194817435716725276195291626018637651565441522889117275197267239086467235411570822533490999261343730821380747507211071180325599324240613510662265867867893631325217049175746136514879972546172477663018430587177145795648288304123898921259301174557970359211229719336535523274779360876196907095375494488737143857969896124987840791263690659967559482676008235851845503871705092522651646762249232071693057219772223942318152996921048988349919572169673151196123348256106674200975296607017556408251039829320361388534551303561053492021614594139218419122864616966398922226471833237030774624126558412023909931747894688371802262476599393213282850891028261747653298587418974705313019605262839945904801146548950623191178844255226071371227004057549070135340733803641116201608291087000607915708518723479280952343699440045870435365889893723244360551137103209606387239594052420472809148660268725836699877059067160280873418166257096181022984274526200790556546095418437134423920833722836572485433873829369883872494441842164827784485068117222114789526959987772230072352284843719877850229200380664883291804025045133404275972523698300104393720819008508727417910992743783886484646846070640628237928621118338828922297817092369710745653463055709594101360539243770418205393501424744296136597578634724329839211044641659196208134732214369863032165451299756075536570153404062083144645506152861561933815370313306513255991740099515107637588011311726861443973728536135344584855683617360485212782706890431456340018274414519039071173453328309822449488305251293535882173216105271067046578304494355312151520515039263060357030026629076435404133172192596467040983197362982660426468286744407130235001916596008148133981498520041058042911893012113741352772005157361609148422342966230053430361989850972360245990687518179848698513090522982504020038527229290860615889136749193307097620127902204184357944301817682172883360999073433369921279514640984009364098051680811563593560907898008368744224662689749898194662093203742842991119299420972038345646215025351586894294662711332527611733832071340978383293274115193614384004956614898836602963034561508518194762110350427473109559115851744296093079883492678434419728231119863075453075934686688673070120828482809554552687100994715179470415310378807493939662507669138075498775614629622307047070112858745863724905447028848907587672976026053614595899150570190863910509028193547074467778765470042661804079474196326267592275802226030643934560636710142238480995353863340324775083087452292901238325817641304461448667971477451479903157444782086606862059238267146296350410200339587421828071873251170396624430088548477205837541511538175178609365146915227301701736308988633304239865683844962192509040657465270262316156953222109866833644734490995936806448099339755196031956874172675774848855838111324012303663182455677638306091723179622891758374161789517966150193055317992077585821888214726341928312040830675306259146125408082930875841837291892793669867857631941441748305323544283585796487118145114515674367812407382376925650161580910167224051240043102942133801018122776462715456162857193969697869784203937029608729263795132783577251673209461021689922657594859593376079769711861343437720851014701260219023734156562716279569089143075817467568668247057458147550418052999661227247299380680927442423417623231727247284774677527971300395375555495982531049051531296923529772694471357226973365249368536893977032104333836252561634189854920170490924818077077032992308256294520790853715624675203528335661226930176835827164587113347623603396214528726422424790727985318332953900761542938438916243122886587082098898022452244072616517562284323488955455538320983829913415540280377533234781096042548647286857454950414769298846393927040450280861794247716218175510702818599093750760534841578778022230816447399069363382206843923359186469485137642311076466758639722881869112937799335430390715891551301120237320291848207891267490162401882360354254041583143977042171688931011160341833594150954670418175387921872837807648213086835903176886928821728295521243093452052267111171776629220600749236847243869561211961397379119887015730321518712978772832212999972872298431639097183767588362559023336170434650264192659066477006924039932510903469996897030208419570478642631111680868586262871933012753413410667500508713517177194066772692295187375522597865961665722601992033998016773188983108172989854623659555196534721127037946292243781697079243962679893765581576782027131969232864446811342377393528439680666236759759840922363922747509246321545363459203213874443808537529399289301814415770847976236825906503614345833928125383846476924303143367049784557062313518825657123811563049716041376331900503412988491917642260605377852241495796730683609494539300333557381468694109058255410879941284298176346293877906208602194818176057679516628128756272977119462690799753590613019305663446965431141468729005365721986475853796375932412584232643544127724591284218312320640520081424288762672871180000192001524987351001313357116128375555583434722329920952243969115194881318736915059429454220315659585872134741039531771659265615219891326500863665032713620506122239444741994719703639088784290155935689889747388001241361943307224592598324239684841052353216168904221336668405544353375610285664612058245795425267977775596785966866003268669527545851551311401586620864735768880187172163515976261258484854695388671830735770600070693565546117912437687289188010408896155199115766585741254842227283830718371228910311727266881972268799132517072544383955099534970735682080330875009868875817379488125963979258702957167828627190688705535185369271134130135952080978230609688484683456353528659617630396854691215747844843563652451319417251895334291408368108752915722461698187824089033863192037009286742379463316223679214523062801976071068997260483350404267520413866190314286257292803063432761062311243629489858923579763435435156053812971780860050882300218560127936411643450550984586380403911414526016493640758586935885850054166012058854867058698244641916880673739767099277331704929238558378509258426847679189588726335588403795105044652598181747208535374338684671023525177300236859413160474915060357809089952327621922736752626531816541765732064071233614718705062925048425298026003850532573081549654707032062846960420330642204172699101357128917714517312851792799167242236349122756042071332522651984888791686419268537809984993377951962454291093287704797425320153176814443160659086486260918105122015014388682842997440760857938512640060533820962834614833788584047925167984209822757442465678301265071354019474140052586237395882121600764627295247491485700398850292153984223422943936377198684190190599465857613197726040280326471421271716125289642353505424429873985305421937294423688915131352929089388591029999181029611156606125436873458865938461708947813487473826679077569734287404187878965333038387020733468261011515034988769735942691218195662012054615229707831695968989669086838252163164810429558876982932453479970727718615277689012682103464471229211031510980388196134244098319282127435098144044889738857884568955251154737314306436907652762983893427762636919550042335080601290343401081750350599845613034410722685390559131218154445848370577388559540857058239152867595978405213798680711097353505294643438108342843112976050174636986614008411164193088273141605078593412413046660693259521663997152335329939473278332889747937180476316622148169697399866707088356657536062135789571472009948955622594311015624369803679002930166711837307481168014938233162218644626922458322105355596552473135926117371942080549574670909376980830603058222464446438989436207940594239362615579947642262833982623055656211412151395453578451862739431946152531068166826331484256601190975571677712710016229846849948854391412009210400185139785330504480524516030918885603084738522005375695702175157387131253840528446145417275483654217156224185009484586034334423464549592270887032655152206772032756138724134352861743179458743748790605254474529274195295888078058880693247424600071137190544999001736112070481361981620108766475202226285593305873491628395820717239077073886493298381621091641534546771333866457560956765286612414898150586960781935285458203691063212489995227015569598320389567666567855446270519746843695589995424909904693959240606947828384110337979321660994426714124812653631728650206255863200895685783338320271139346214062039389021706386779241263213110132822201986810184741292492022926688308252930356678999913806897382841761618625994319293906258487951791730646646622176122302320008208961666069511914846800837468069742472203542662925631226949421481508283849303227639342052434526337166115289515025882011909137643489451847080788249799132336597778576117784485007868289213697104920894989893738203175071442335059667035877560779084376244868960011917169084496799168047381467042344526424325890417791746351858531941281682715673673533505305083084632251508790806744704737229289920873948212860479392423330918053105795864209567009195114680234212829258341713476131372309865979222762133927039871714345271076275144810081453844983675070173063798652207151995074235622354529936695261717420089215822091646764680361771704199073878420939591802626825013888275132283328087787760791507660131692809697817357124796338885136585436101172785276476797990580288772458648078418262866899778627021425234396393736509472810596130930759595868547750384881602804736621053288050042947228234847071077910455554314619950244235069983012334296494547265326581346189507906968652412534013977387651088750717939917836698087728704678197233994235400286674860044788753214976082395600454813301313538974503588552286247210163958903826553329902801794119121450491772233032213035499459221078884097209675919668549524029936679542057220190500071832097057030062395844869865930906450408132840128716237609568335322005754720575840174714660310032598041589105428683761260981097409144277918877130468363011448264620231798090515167652624189356020694395310232109953614059407889962672002676121486151750615376350764285215227799051451202298780871245165810346097584646978203945598345337271157623466501687047963035268356114869687582717313994409599007606756679226007429073202362057867472837519618145881322409485937136610337837125641040819174488095407710569813196510761132522300103732366618727382761059810739394283638862012122481961844061869101567435889239401126944306960054015583896323068311514863349989945152157423846983410299250675631463277209518306302134205596504679874962820858493569188066292852203579484750350838627436604044832510880026254791953376761749721032601256222828521877645537517209867113205131679950578295848160265011186628036161079539134982119766826430718412157429474269905843151906029856518691094552795896770935344678972321608009388458121793987861462373477388216556613292177010350872338799557154950139796497628576832863450642776044444065508014441171638918645509215827642542705767714144353231010635533690415945875279214775742493033034742095994525618785825656423279265643610849358016910174172000179040828167568197856624330198243109309704862914875670263610055696593439003322058676241525504120675282853469549453290978336904440194511181664925079198357614654627634366197145554083113099125078296144310599195583228634638081451922622747084955550906412211449183186027890919670624257281100485628977459006449411175644062516400978758985101033758729292959637775207847193345089235402453071182301770259817530147208618498778070848834658010108774557053731525389065865195012775434461557520087718842751417842838669812624245864127823364516772744504846996205870284174361418447485875179886467182193248388400922143822264290328812669934801704760059588418238943109687662925339783057484218936426994246393896925080708116913888294203456585536334669045152862274738193350665718769164826543278185334302845413019595997728945038649026408995610525154223071648625388463152654429757769968238798015685406512658287159363159138918092168434700168376984959912392828381705099250062687811786357333917517819773972682767831425565387727661847004725343522988720728326809540109189497016390908892459394314738475738169339341679394352285493280437205780881896850543497085083803808520569950568490633294495582493505956218264765507958165287098917524579182930477684593947953557306326107799936874428993209698076318557633400355074761992241526270425912423812747276360285700138357956218326073448797283056384378891486233059114906709163668566050593972397979407747921822991648379350497193978059529435543111689546434027348173792075359884557291294170278642196093491618915928707902331399465732811372393358089158210976526593432477229638042394463155858008028556879792884847555235424970920118692690393586307538887712610546588447335984416679670770857815653592887540803893068845133479841326815792181285838528915285861637987365994602410567005233592945294697455305541232261982979256777111383449209618996921163239523360513248186178237693133969676998930963922629119779291618937649969778387647841731265124501026376693633229481207065468938046834143128171617200912398578599980132244937259864948317694986171100959544651941929361704285089615654621438195959422431353203495039735533406103933739276295909050797481850387851742664286327924913612730952582477104860091065847069709260206366944273414240435798047599275233662216794981805717861634774404364465820044221510762982116810269647777634397458229399607964711022086824098499735476593081536164906537040047770371620963834117294645464158906104854829248173359758692946192929891142056810475292687365075936034174963554436728394961270573553367573778286500227837097110223669629191303941746668850403725706462973169838470303821610623366249373458638130442304131045047861787520692214003089417960126808154480394031317672585685136295579162094491990008958175239708952830490827763095397017405434027403581803931648691724757348264726474634721459168641185011002736493784231696432505092664865519243414178237732937040005434763069428137705366097780936252036781033028541918488313233890416544169862255107851051886725237398424613972024872533038578334807489515901675098876351371400456792427721290079718780113779713252508392367616957176718827137629939657246845279591001604684404836800246729243227916566021708496515702032414777657361389248663118279165818226548354165508412434464893980773038942750051265486118529830955621411560079523487106084738079029034271686858757845786030377504766004254855527345528625570717862495059666190989180011632663609022854234572187997041401263102249650005489280882453703781771357744886118701144225699060158864559911818812149246897992599692265748086111133133964550897242144853335422583287632963446512019170475121764948298283084480876505206463013740669348922632274414578700197424756232170329765583355849075339634468989384881154357131855228457255953100439622273000517828483483520460747528988377377452806848886003869493357274063832478322220851786912194605811473435034418392729157293362015832562200893710041995349674988209535244923356911455191256626360526671018434238707089111743139795874837496222118485030764044697138354390422792183870446715196555741285241035627549452977130574303735951217617893602163182146569687096981493586222658690788502985705321850487778768691940443340864371262055871028902695094128915500929364276608998083166955905630741498506663277454986008033395055884563761848096195247663594440428737310794385261615097405953347318344615861045463127473730857352383824749663529844406329343103196553608167029788619498011737826089342438410138260839748315824383625751435943320244100602804568102781816755742617068465806990610304687355940378591165234427396227782322529509018102860647156979562873850154361458842526306955836644087952253495214238718236599463303887611023787638639678970380068178024754496225575506529294891567974997160374354833316533916042697614596951762181266356421641467301585386697430404167361955657922480697023325617114132376398762257108785291464401748416168092122737473663734583130349946494207075870610052752607479631571495885643065472923944768199402525325492526685918518266393971913255002430579168271279767877392405829592343672248777531145821959137990408226079625104057304391167247284552850544307316025617054203002435907013046268997247148787947072444179969211420320382858144645298405988519283836928775635711960843068019406403122748490131691023788865654971239105367741232966392104589155977152217515657220365740875879448252902653684286409943310826949149778561406595188944433587209473019303432555036220274722785301403279805424379888993830679197360071855372251520552199101136977541521500604945265150554273476914950371684305247002433374819332671070453188414229361225694115227337430482788043560913494921667318283469677401037003560358903916095455062927634297219675728579298097188105771418820254823423908466225358854052287979965803960811589656103510969852716350399998306820701137513190243669231530861744217267300257443481675506551099718341487462097252812160214555771159708937163463891112474279767648968419522451780857818489963784209230118848976976221011776348143314402418846678576447399860494189039466517508560356344665292761188004502438424278528996229347029896582733376622638614156125184565016601519497018757115226923444603175259572311459943213216439235482820347991476955244739727606911475183450472739957664352133042304769583556245110664430054858082483202442888319260405731166177177673466528021205891205887480243267510610862644265039623184713349783050564299634672134219160725883287898734958616858987869863904210358300851511899526391908003060038952219442595468651382133928488061535434067124693961638398818400717692984118952133776048761922314554814064589728304664246686873672862385789088833415549883388069159211511943555977272448692256191233745965331612960797271724183097124143391677982336392564234893471765690298829763733251035704870872830064119729554409674329269190431357143679020918807054921722779421274641250759907174281344257430619945274324788751276400720828422963246140008054921923189225622360126256248748860860979283592275784380488477955596030642700276526717771650416404220228550600253516238319884233375893116357166865819571402068918174818629997100954671962149855798390725000304361263199470719009868578467258012083040727763147376455650116465793823026753895026114918595013578210702772411054779798940405538448942299239516873459436088494753276981261697719006908380649705091893626631427500087177310338066311612793963201479510392572326523803547556627410831419887766475868013922169522147470982447443979599242708707143253417223542139076446937226268123788862201697178196946759473871468115782478476526120759746656777916810717665839321043691272318999763347176808654293599463166898126595419583467783022447451563282024761714667053298478233345063496615926702134396798735670626881951490042257682424148179722696395821657040463324222488665168265486935205290921899077120151284136290342023886112140584094132243564322577445211519866871833312243846800536367714331618485508524412029100012599298529121085046879631742868205378106892576597831206744670117982463269851410252295558295185848111237011340610468436017485104146156209727612479303118787310453593761863661535286989524370636116002167643252580121553614453433811400149593304921551154250100511273729183315358641867859183287711169193357138470131193104785127776540796859727924641377884833156205851852199806671124273413796295514214581184326038192156565226048183021101253070174218686575206119037913676317513915725766251745645912280001132896266005945731562191693908258187142735014953813609946150817171811444083203058131153767477970424967617510563085672743838408895510291284054619918398530420817990435417099286549782725928690171039603536955444560894849250147212841712930068034787302830472561275392010320679034234794795172739751729139505434082183356586495591383666547673168977387307379713324715147773433113042970587546087978365027718545501883212280934473995621902744593425971737536706722420943125159316173191800280224378579731312821698427499591191454061518527942317764440711214244412018684030893141129275220137572301989359871686676225954652341295045844705135019869511413059905859002006477903174000625903491676585567478613627426794614198950451539970067812792886926212273289058912757990340390953233064166621089076717189536411058723528723534064525437727632318529435724133472627477973147437016278422429179507825569577037320983027913337218848847397240974713118236195057330074694964703631040682519846105574367526311246173799775121018108972233080046179397122910953298946192371822090764994282935564074988434773170953914231326162057388823939112639001188140724127048421156623710246313646452473290781605486154682880648543632419105447569406863386082809883805572373975853567312772819417830133816463398421269051048189888778104197756459928742297126977380498413411557970515855681268051000093802750301396556768883512280582515125220663112052336068794798138815981548380174984947122012162168636015128500188424042303578521874635190871834200200187036070193821776420079187039850634662956456757032502422613426869410565052519909870228777716262360855314168330119764754838078631000484699504736144700467131433035734778950626630330773515315509211648082077374419836836430048241770252333480285094101258168953990921933915748936869077113819032199257569564773425517527711229981557257777215861879075119259804751819690751486056072396864001698135200192274702582937802638144137960379809890358761267010173961771328711836123788472043719884303222601291711829766537637022681780754765332078253283784360619693304626871049053571941221337763298382956642014616744039757766110393170621345784993375905961608416033940682328905902782949373109712847948716450729800976048531426374547965246736017168993237701046678388306537062233623022378031273682635511873342465711380130732211729715900365362615755438502560175509670022953724830013800569364105414063111452813278221100564848710285990923853795130391872768829019099719927429148915026926312362419389320050286715359561068538492000835701908156786272414901222847883217038914405826037615386331043167464834038473308488865404999595952570976790541586108711369095848957285924627208645112367817111500030776939652344525502004753981318221551707538952234539816354309875848877054505065177758162996839955323129562909672877037418127542427613576499952227187632305916746349221380807682885508446832372181851167084859344375813476604015967569060519089334319106867248054709063342011839840426218467578977609101273681136359247819502756886697184431656091143228139887183929185950897132961724180494992774924262789077413414371129531022939243554439616233460927184573595189134034325010654484325596320681893333421011908442421985960188100718566211059857377823304842769010619248446309957442314374294130131710138459523739362255904611939222689312387725866511971613490033096895006068918727000526396606037845529364834176216658887242964202989387282626381966965181038344776833172327650242313207796228191731995366504620674066968107795386286254949283960721655572467288276090940403876716819811121019535243070426769860846279964871873947397946511742159290369004271657493363169286847974901043915427796177245834448161632907186165112084258199821884203676694001709769488949422673408248270089009032507259381327457099355773571351769538680936099850406335709468522855868088248998166631355008513152836156103186945194791534633319884489526550804922438433370430725091770628260910998160021963704990177330535668049979858859922322447565349360787170158948620577375120882415025951458164766026284762952156790691493797723688214187025015418423517911404319869941382448159618522187205623887841282800138515320956628032552269944957096421102011188343374278820194475899067855956210595172605965988326524855662880158197739802654821137850513275350248704355474551106612864655672676607069783506123840453563904440852021240668873102099371311922900489696863845304169215426476434763963874226330804782763880901796950355201014233056759072370776915572868129553693322539531704381634246790687269793825065769377702824571534453100588983299851920756031809614353616273152053893168898513892973516884452382120192649233021746831591807093886204104400995250649145128110191598117370884628392511971434434706971768583057884288145373599835278572459902835326991169563122510394935858224212827091654004912982088982087088132703168855762363735472442353423865201933931901490405446427572905110258721891716770941859586391906108722150319713939220806086721776520936115690529785505991332240836213227723185864223925293122401237565517573975828286437310004048305845067963518164306931877363940099568160070366152979472897442431975022780315428237857689846703797081178845393733903472382731134925316439525023726375262613761414515688306618262847103150990367589100687615027435282329589888228909819073645798400267110769982516080033235655941675361602025758733446252524627513828050346033860726141249124822774783852631028126638195453626796319705716961909605014607642524422857240443410067616161861150583260011207880453842963871837903144733362022371283454516156593139876504488785864905588690216677501424511182799757122544606742293847234324218250636948826440248641467447467643106940003271086996780164230263486607965481044034076945778853693176835597125397388856185340958302569966340751808113745581913869309294193793964936378944446076876773334504803470504151323156378195779753744944120161572553197487083162534367220095378064193155826972401192095754959415405993241690167684488910165463199222276983858316232136968128555809157624709970092222310543974375981594451394028956207735825481141283934816723738193213438827372981077430882690275901567165634952628776364321507722659524041741282328160772146306874637031962052890474699793963574976009528989067747755633513417564549374251977697740334410138267063048489839066115474992247109338629168215305561251478456968709158059738474388919615197139785686574176979987193776366529718866783460547410759410075905302705284865564046254621508749135526728271681650630992330347423173792908342053423518678667509511573732081498129466949915353163619431162592925450008272739124280913647247314984555274623193132926859373676717730382693860017302439803504335253006163875119811820872419917638039249626215989807525112342085325946272156698525755477982362755318528499898289888260753500533779615312117621188819665365860711237934768305442311717534290750031656334626940729047184620396762945471832497332483682027319729916082802646300888045249307609211518896413025501888029100607594355952156106838788168920698012497214582127644906776357198536356628768975102313604089742217198207965753444458474933869470911116457609723637504705887518366465504387213507195662052620673696518469163313500266104673354783806852388094410422410876822707940663206576151084903729295919155662631895947140177422576430999057923062622860082346082772935789988200520416052059548349512861286707389152658285811839824705451096311716568626981472453648251861741240545826258917680740106163390222340493269559863561686919234495772864726335097701369208363269803699199904029603211596033385600000291339631975827377388441907602698107153662976196194743574762294337936858022070077508923257452969608046798458035397823736248707877744649732220861244355261861951471578844178406517708220429313087082284268004008942508841691681338696972366721806881165864528331948922307415449019146539935437433229489768813152021568942430496696526277754394720149099169582358097783836108780438280440136840777031546422779883004969205963582821435792934846769661579839390020051795055962679098152922505271088031334749295694145548375199716858556215777926574309919975660706580887611331058912547862080234222229422177417897437378107293275032800789155115723533584329265677443882851293946762419568058313282103495354562301651350224245065865608609279065958701806169143144818162386482661675555829647640449060941168232022060163826090737698532988756359066252110782794239751058018915325274701421791721916897690838133256780269742489299248848155827030000293290340689617917130376843968021514010741212096875533424738163836206273754691678711603353098284422016100754734220462683892244615789836411890711649018323132869162450501885301045203776026229891669201947811819021404466861244368842467848729966149518181194479179826816829884450431562621782073340180525231885369665044854351447263462037188717880363447098784328815919539063132669821699816055059576881164272690317626718020203679196729055068325569014799560529493766009733257995082351077805780145809680153552657900472635315357314573792373203425104092871502519439546420455966724296462985950738914483874016820738179113939408611160217047359109322773604154320900586969489144755915607246382959668248953670196801434730743011689434051906504966337149646277088492164372432974454865859995024911783535078115416703428633622740460075865585912615829369181837870265972528782420894786271671397100581950010239254937320006586648958881414778867240007733285180796198751365001295859703900553360246455604091270967396694775080851326320797648864718580487830899708757021318440679493298285368698002178182323922551947291255869184636032117856529933617786907507119105178256706344550408010098863319346753788600664760692365500009872007890467864429737725582153755091410407501113362013240867414439744361700694494979273327447088220603273782494956691701665104264144424670067014814031135625639047241022665200599507646370826145374543569521644435500176298579750564062979270999888836495341874095627498043326160955860403934984486093736215938740452415128481061612168653002319160384356787559190484882267721734630325709100280991522082595339061800365265809149249357145509589346410173837296128150926880769113723827941306934438809787933678500149104502094250855895010194801068360069692411409883484785671023236535456639059169782146393437202741641084089819103707306168734316815329383979229110158448919707282908304546760907264497267140470667008138512862651091546414373663854681001458461241742384723207589047930035532457684067245011748311260460246165017644966670368947906488829318605554796380656689500647860030328039074557245924817253254155175254045588706307889169054725550059178497888670308910427158936054186122679650373468770325759674948724363447018014276432617985106471450306088126834003828182891758994131297814943008476399908845318908528432810346469502702108145479102172738822545819977233575241134011498719163836859182089795463381623806004475267325821382215163868054602283077509866372562143681523602609523969279942038120144654544838918682272570071452572299677695220703615079848226249557975575708333567269910209505617155733736188447326865122654599520388502380055404015816000274578860900226335468408563368414565740927195194502969580042360612267508364996915344453354533657483754328980348678994300613100998731609347548359417761320076687579932855311734251627413999488926889341360486330705840254173507524533140900182633328992021344562333521649293562327333119862277719642681346429700992267531981826013310491023355249396199964109957854739007339394317061153398459159858770436698605358766560585363794860281691326123906726843563132978286949199660699149813295844843810978013395169765379002336728628609869299664755965393854122330040916401890884389874746698759580028047651842835096056097207465225511995359935749421078740395820521602687394924825693606353823707066728469856719463370454656438396212608029287717295104456164703209325664266659512827559716805147641172688956484166022737965372948397800725621732695432287620220121295025659612302870361387505192200793542176814876110594465747887964032751114235436031900898305221166904820359433154161957330301385673354260512392890387076699884178655434387577325298879712866465585993101379264918407380698186669199787367892965000008616455204898723052750247066837098531074948175709635656091101679175545628933712218641396579128515655433561234894357052331744723185912187571612483291716932338174451488233158806770302798905590982735162872790696164887345458115181899447024014771833239379174032569635304928995869490505872692190905850565549370306838744243968341287090053438391662919501819673553039257620555773441701568742899348208152845192164796169531676264030787245620397125884150051358803918071208541304090061724789058126943911778696491595075675803981411207352676695834929632412132461078203893569968395022029896704629580158854691502274145262146279327961987814849621695220218341121226042868437409764384214994261507118567922607706566713278863120876575211815797439204730891856777770346243327624429463937985696306192001989481101141707216200708827870604557196254658419938882070867439958881583452780814611828915282224697265169911804996656400299861058458622236472878475530058256855908965247245875707161957571839394975151725334569509023617319293628790896715335251545105264321609367559096049432856947218980444041933736084492980886342434191467573473443690224244688855560320772018380576262133731405704239485001244350861810763558057900714372736292947792198403437714256337117551606783585347961382602055161719902432057361662560135938837728101492923194431602618530453059742268855058640376867882388275848071994934723275435322640796808910097656932907796305291067894868344524289594821169082592213981589218629373692838229016600247001288263632091054290213915113393731191198355161191947759097356094792873816705761768455642674015676981696718231319328454596797402817288525741881642907134064044389482865002245128944413313765610262536109880675195183702932610492623811289555163259452768162407478189239076422836249993871024783859969942997920958881789590129754883259154260910376371375061934001754717150697343550718793717426117367490003465817412108918647496730659569573963413334495528919525445955308087311230628976939104602437467646874169262346779891679914964578614298241455292148761924447371960193809474007965386515783699477442517783809328093306524597174051638849728661574169698441731827225691261658414926282165441239302432372148451602655636809658242226873637675794418322797219982474710840046656206007922579218312749502453430402038664255579888837578515989017499160250954354194318467620063108752425787371427492151412696294553625260848484187293016793531245097055530084436771556241201253482626529596867781835367810326260531722484342113860713120647270312113427725479074831499749824913814016964581607041453310156039624158577827326968571389881168857741619760807986194435183642271455969078538262391685472113422571962553031846544248661376661012584255828453442282887271643276518761160701046295518626261968221322302796828510088243754347632589897584992650105642144013945270424950016333497699155064559831489603582699668931593332419440071792502234635624083459163332392972568017022777576662165439476454963163924491401570344338761603372992615602391988891877909273700872440264481578372964307783786415612995823687410742964815468658730340131883532447365732598725115984328290548083489565704855032388851419494507665701302721013502063629609155886249197925536880309438189612176290220186415353295520052998841816031341529594370813607175560142741467794023750596060961676424212007418968296228528477734895602981770405646097663422057018190856784887723212517925284892358584007716552812842973074519409604878196496164332743044155828147145919046436538886667387386327179108943849882601536877436405970879791532994126632917741961175281461158019380099503628994403857310085708884359859853757764319080133772630001716916137226790272772122692659663844586769849783989573469458310092048283735575283559393345442028446329181753056500776609875502872467971139279970381888428693626101610107267856780533932971331132862898324549365651749025800081781406898535796981881202892564556201535329832758439446907242233721829385594317298550166102493254206752319812885873581339893356730459471515057029168011884315454217513581790617130439704709987094371102025279653679775964721376295478959489596109909363809669188154439615511277444049343305245011585861431594982873636074639631614629646411373682540174010287378481417718332535017595406735150270928993743687600922174628343632931809813016523619858722083219179179850835273699983300579669731333664463056147399404994305090046723851056566468677278833517821787496568005510222250458022297669055481037547082330467163653520190395770969762129168099013507076493080358267830110066829313430149642484836006763763444155232865997859291772365574202421257499470977016626296883865897962071961860514354671302505139316597374690177261892416331562143321348514262332537732716181685985070802432854895066597874447279115319301860070917958596801338218236310549784012352938860434457765001202500530241040400855615208398786704050298955229288316860615807830180884293092908676550675747508039357132430266426272332068830313030142373474283749664466185452862224475168307957155514753615530131005791596558105480766114218097055866959449554697895752283184281017025095515183284726364199573325047229727656578816944740404416567398382259370308535250884359338791808781699121484301870376822515219723675241282955106042692001064573779445604303435953302852625648152051677933232767787164389070828133185269498430684814716138530401004151167544890405817694764647280026557175835732111043533286849714192734734474722276670465366990906289999008361728321724433490182052920990332419988415576957462702510476528459088707791658956605023240251554064515006517586609463238248847847602903873088966078992257460161001468337143704758134775261527702215540939130243079605676968320882077247136537172805315115216719445413523640484156872068967223482947486535015318377838499317558444865942701671642057315432514706538008339588801245580191686623230985751806468918377852912000848828619948158420924886868904307104294408291735920065263080292290002300049681310546761475436135078701785169093590929812216303969805194243491547716594930417836766470789347010747245956297271296438287842431467853540524348415500953909904561724088959276895545232633236763717579386209800549676424284268853695862315149723638715574629965701590329102088429710239389184885080722027239080138328920630967092889841264888349541929476582184485519525658473144689982538796150669205511055245385242941430957438143365419121853163509454098123657458275330144976135389720390988909120979552047091280515275261215451916846828650664053135259605331662787043751459496602816236936930660982433038946234971223254659940980005703184402126271384129118317711706185143508698689785151621825970287023084634690718198065686933810523987093309404482598660067121604346369572436217687431835495218717331059732916387862206161098499794253663767658374710846743227659281306492834472319643768817396317276653501628594330748059469467836274504080212168385588450939824453793584423993344800429126764710204814367331674400684785162974091950004691078891400403941838248071634426696541019949938343491003954274391510065374287005485261852868303966203368935718797892594897391722797683737072965323744552891751777433127310174794427495044454829992259694950680411128246155077883869358778485001390489747206860332411523117604218895520021968955039876691205902882923486369160725616243768535143861406983618365927905559974581695763485452051587327329765348997794059391697822248284862107758540087145745812682696758570596462630700670381627533808070260273263899604937889996387945608735032891469578846043607426512802603555779462950302914303677557269135156618718917572147712450478902271732112195340491719197112041127367139417480448260526975550489610786884708626150015004458014076672334544710497258751988683736099726536022709543944403271622115863802317470713906918378618455798788291051305851222624242390338075473393890720216524082437599152183387583813027525925614217958719000135108320758878409005059856370152897611328969553687844772176988210270990322700028291241626283398108677630459464658834647929306496297418106849189160051165298986972108413598134389269359451762628626869895336481031252059539723451765670121162902769772085803947490185142398042034220013188101714405632257688887347337531358743607178139366980795130019327193726344836134928424748696819477033138885939133214537919635958112699914003491646368633448667995812304478139469317660206838223214997971641874715466216903839714848374599680347193583313190807312292478107946774199472502229572388045206728000642800721680493739661289898588448819561745051889045733113312592665969385736228394510585748750785718559233795134637323117879183053109192253971596437977034519769895977355802496484836876383609669363794605495296492762021529720720528274718427898835737949140566523678674430437663620934835510408900528961831814001747562962657576493831859057158628820244425939973275729863524354841978646296550984048095331797907787040349311216247367843828845399128313594991164301369208878546990779700353507406291869547401523855561822599724357767009832535443358543547986298066766379734583169424683123618889718657031084091530549411004988635636555008654500654465292896286417348970826583970701782201535696352819790062547023557301258142824861724362795627445033661938993773097262437244563155341938670616236572293431006233147076839578958196468853508336793237793843621390094668956995319151767119492897800514476276080351959589473951579163095558271296236085942847391203371577614496568406147728171632747007826770533416530067268524463298457863551264292978029012936976173670614696672392499012059183306711905597436018861193725701026899063053145186777822382045082472483179006600736127571396319223881703546530216355492862571170855729365909615917370432514122666327671497400800794451019978783414196149756989369407848422424746332363975947158826425884845021346088126968086569325583285861795726074400577176127228087010156039500688663521425963207554182748107319763270458665812913912595804049561891053843108083932973886355973394376208221547975080195878375606715584606135037273727347324811946412181431004750673911926597031873946881487148709641108305364306820503274637855842953438810646323362155057811654043851425541521787394410575563821261979220813441306761624126944558059296790676720846305751606508414070243563209418580616089414668931051238266187850761986963722808710832709588704752245877297796775882037453643902702968832094940462991652076643697799292620870056742363310624646169811395980265708570774684891081685631750063327893532797167298879582270823770838184687539713847162711624139370453973741450404888122205709659640139500955214216104175880484137801890934303568932049285381715354258155573697957708051550140824184293260598170554369237630082372282410682521919863067014881292932759098389695655684432455759186316824278659008589834658654518403748664467540579925093751780235256260351447589268861471736782872765619871541677341156957425004936198070910109501577994998774722158916549440330790998395141875739984707173653744550013844204890709309267351702138664204954398637850131900484894772695078989178506478213766191287473370890297121790608004715072830761904524800941012220133797909509428706748817422020620224430245746853540264763210635751644121801553013192415129883779571774482458057784261961434251198748202004083488508495616705579401161539261821416544205318501843662026975890442980940182505138248950461246609152323565727593293793147854144111268073780295182330432597892059922061959849250064594951591465760451191316480372598495331736614938177925810394533045130828080839311428089620176321022074430580297086003707220162662374329924073392088677244859913495014085086994297196377360929592401735431775308041394222333637314210548590278457104241610578326177994406022964109625810023940374427289719009229232375111377107232542933136214442721724692321530579032529148138506264713742182545789287232531089078469869396620896040270677873871318204941442971360906945057104680552020884497024014015062423635805894655859331145480228814507873755781182658930701321703358705112875215986979381938429218829137256860569462331122734279701747841981142126242290631484171142018970396410431543034071457844621068535419855040443147547742583086088414152479714020970192194862118654340642266275566706302068805981399440620958648595929815355536389934324865881793174119024695891054863971450406627249375128420488824339273876295433264481818444794727931009987308200657132064307947153531296719449257035417670455580149387075440498283186367461663037409714176840511084968045901401811576662841178512620470017345578279955371877706820715883660895942887227804893958537180001469675288461023390314544865625554110195329713577905704496325526342984483304552255425013205193533001936977001006053032257693785444667322863549129199116147392487028513714944417329445377058323267646556472715947651485341396781494575618827229742961879819500502858486444530022441165098192567231555057711831996758196570969395345164058285326598248006886537453429595349748429628558805714006340895801645365117846163567250976192972669334215053167406014255756070332747221986298047685443564499407298789074488763782066528343004023577629272340231424387080607772721106361129544965995483722644461238407884706452208719833126878654078290905383211467510980149768768751658507095227420161122605590137054608412168079185273487689574738370643892889975609926092093770417108529616414700406150584380103902121401233571250316351955112613258960735308476154936188919706054300142483817497556907209886971560298321734921656478197706366793495296677055330822560057859518335071485974204123343817826311824986417493340364623925258432515102740279121547596618008688928732322538454240508337247384803219472623642608516822992645107725845358601489777748456204927761130095994125364431110560410813052403603808604967754623222679101078290365133980109701523347499259552081472963564244452590676580033004242468691913408695710201737966032115863750794028342843724629917187839324706636824079281340350141175512169366100073123151692514472042418716455381317350961068241450155773707218281847375826706974686304334916723958457923151738301478924945085577285394228238104162217348251225236447978926195425410756772409823861595817297870396386537598318886795601740066494214505657680558896660586461349040954016759064072113253639167621649325503792442853437405435764991037630451395773352848429858949721106519679149361150696803224292564874750840696318505729562043754476961518136836877145997269908474983950095555362063255448661785111905328015402473987114318967043432976633909807137161580615557338819968578746865731255544831905862752604868822978279022788885321248847052132846886295992092828293000603083779362007808115049237765878111035796413992765337772594464426331335232615533691675718602423502659647449210378115935868192399233154436408312712415430417590793587595836814368857164986123804776664615874102949005326987160973023073519476060010767728893843362538548590056486425158500582611348308819146321273203171585344029739265094359212788841722655205119105365013320011480080600100998380346358125487813653435851643700813961203873733994790982795735610693965644641115614772214401443444097950767386294653654850246438844677394053965528758702836657046566815237065545437410107050127586729496852811425994362650272117507000204864764104564879683053046424165252219684970724915159093925438166504543945885655138007765700791192823505828542474675480307987659649514850300747234263853227998969205186934442573437612422579787875853250350010538584556416519249551437477374158183842326536650409388639140127624918208660370168417043044148728129911421854218995233761935355186484604061483846060190246435765959075854488114322115014813215718966261033618711029687269677282904713987720573834480288502467889087356862169559513068558767213178900373312977876555230812241609218253216996018152559059152878644734222192007015933959881428245347743618740383233363739392154454827057600389756046065860293994496495448948005761905430234853430389776217464470636768440324810772884778316662077303244926966809524622121635670176272769173352729080743375340012649534645140446112945542299612410942101312988827512140988874826695186806001836092505419416611583893261114369662066135380307671229835271868123622193334746617239369996150924131025578688630029762266167812382438217685969404325876331220365532846150622142445046918716030837387917430393993814514281385683772522022323516557415215528550848035188352382562884004111203991157361457848309994997431480307250255842169023643865946603579593743388233872766437526428056620988189214081429700246390736367339943944719277385891516154802230165893915302815182323863138922286249054044533415649232074103469601406070870418547730977360941190371924286463909092114285256094504823520232880961237766728637418282715325680108235107471833687988984922164449083754840611637797505191268095837858345317208487344422378075365085985966550140013321067885613879672306763067239270459002234482831053894211285914733251376998175816675618905978337212048177433548602939557297410574406979615969474186598659768213580297491265760316642807512643617537845382984772485934427655328064045888761161047127543755473764389630171068562070246143286974002860624701187204431921146254300583742685191958614951663917168899969127635791182265024068592161784220223357689810428038029415981076965746688174626257745984154682676313145261516403111935951080926187536064770528424358709673976422401710768861774715774483074273352018503151397453383780902689871376194528029269395067564045050657569087249143070941513871474124494055349500432271815875797795348886140321602926846520739084410251137371225138211341054501766081334452899996220480288518823326720271325939603778095447060827089296850534926491582660338020940189477698505733587817282885252154574626246999215473802490262644957013891493692997908729331278296459863996142008147020445380663329023017606270947027738003065025998896447927523914508697697148858946385961599259976614940527209057213381947655877381594192494746711002270704287122686728606187167325874395469288313020079112520249740674321754528374891683349413943722183861007648847698389956195645506441200187537054942937593403274852044331856395514419966000303509139030705782971823017022294768398833328776241068720983865364876082576470496613392955945900194010291995729442594667076777806475471504619368683933714842314605186393805226275696029931674201710265014978016316629506107294870380878810822809065499783323806928000670523629355506128134617765684105008598664125909230005011042707043646822142486254159148235513360774233417419224754764826796618733084954491034007616605261565168997159683111663088767806168012267528211349675219301294402108733348932133147819411504581978485884929804639477449434137527321870018787030453996744096628031952185523380377506267994437569592905593607852230859008303262220474344061046559151567837664256043824253280041145154887909712944861260824945212103889792072915961623660336662406172902772424931822726212231613163453552161110125281299638236765266961683101739220615252171942914371752320056178417250777294559398300838696415534570999883419830677501493728883846416233039236970519623342428593453885295484401621880126997757932045793475247854567325583834097486298148615082620000494553674142103804093189433584785937167343191655365606529828872281668055194582994710853480436611212364414733229245509720690492665548642911401392678228134229637703971827794679643997672039558623654532317704995957755589150039794149789709542548137468998257981240435991368945455945425467631285121595279089972353997385165612036315191818124109917162530156714759245812990191641206937937008977391675752892451232444264973445289544073841504216185833902570495605674068639158361047169767280244671830229430744994658434189820441107105860051460267570387498212182811192694671270897091593162918636651625102037462399936939677051932573733890618743503352469926185868171689132538659491839769376003863874005365784676963554646452392588567638066208130439139737153966647395467499760250483571935964206355176223240192876149795828941434909287933740959787938699289803632294400853973162590901071934143933633027385145177717171190787045292122169865899369735348305280283105141456347296248192460950883304240522744746031148953458313709319312396616677150517911238995624881994912842270193008039895611199871840344091920790746837124031594845193411117999050617898769108583776260293546726020783991326321638598178564450626257414145738294805096411066830749974737520615244906119859432481635451214259760581406889543576703643277561731327735055594450695850079091328132083497373537854576330444836544557282869540296125625227155124537150540542758281480528337783500759487268524402035646885303056279893030887894093276659593073379338025585822139831652949434243583264513086613265569549176940302753749022293481801782763055477209292857094586345127610150969930901374632562417252297768590316939374279022957917776312354042713800439759890703087130992131300222335940834230015662889298280779788529158653744554162135780354838124180339590301705655473338460922671729417909838597510643701374091779293621120399514983866291998928849888192141707822099367023352435902921624753886967678123962813481353555087523176654745035734852037311927530208327716219717556150925722322739913104056768177075928343847545633831246318728973103309132948118148435544159062596423758241195123633280836983819696158326855756253863731043524254655095648096330583980825805241257715101274824435650252647803937740586326581214990337422499292272924180139175755444314108238409673007171280565726133278199891466418315442551464651755832266449035322631975665949191035412670326691338768832777267331489313824050340309173631270971223207163203411234709115778582041510592904163269571604827133958433581875630964021482473405579266612874330273974644925162522666353321845309331642749771637601294677385605016874696208816799597236734111064995199026481159836546193518065476544051439140376587263202255558888835331033128510511344422212666039788726810385209595589437617148718876143166744040221009763739215156412428195411461866051557742369821720844621552603592733489189155023733175908837704842915673494014729629306363522144224947472336806801648686290066249290837277567871734001622666234063484798849307970449901788719045411436884498852645833399091340251062463889647913167652654383381311824398058039795057043727478858524514031583245881705709151808961731862409768292528298937664267958975621066153631153317127927233384546176271870664164347819244259670618793047861692648952425072340941981095510776335330394718955896193644985121496545973767163513304713308040731834443034724529199770550811828362866709197615154891712032154833376985479806678689825931737808975686538325338097153975429914005533149807263800068021065867540339393185757166233842352152162733815667734348709255621877214307698006213570836336420546382684372362763421185750156150618722464005641687656841177423284514795989170640622931428272600519412628029990778582069686599191063928675231981809165587153922682208943883235101669523152989649482161547385975010123303305517032850523221983057416069473633834392833527611803495525739861847520054598130793526830627585144514886368590247224329777360315838029863599750969532919416294669453835913645648456220109396976959411636118937181532301013509390406282742333505578676228678383529532017780217595287010991065164183427591411332735287975188855380492720649972564659501024502984051434231459250441289062005542721025787069820556345558914458977142190247045826037040076102945918361031265508348998781701718024645908378253988801088026885207845622827263747139343954723362072373306905477551130014833984765389653651494314461962908900959468223384269919029994793884808150980594648375702398077014897239072452879606136170054694406520635435775952258402782004029388817772197785485063831010153113939891877869985168562077745138853749359437685829801195404317847842217403631611190544724269499325611766292485973381776051655749376599151444676985686129401837294181704273065709604830918980714750204907053373052576744030796148785885385972527183384419483817127643562309736013705889064028480592099195358635902208532049001575939797668849177349119174101954521823041223550347051152068518221195183322753701362472310179347304367764914258979001757986673687534867059838588493131026710985737716639407891357584104482824975594490183453730049979920864580902318329204243679884258438600306262707517502289325389074417146477722356243913086580254713520924401754098416340497749178959612464019981830380256139888536210801553525556863699022894676523065078935592915684061332874587276032371933540983401154856365749951499304999730664003214012159933612195749120874927901718580007266470198987442738897615458426369303643061921370131913001997220607417280889809447411812475920888303913237404332239555928310350874462041878002385463028435389317257245005276154192589290110202765607186399702961879784257916729562777861656674972004410192469051877790594983627789625895631201250398651053851271185847229822307387968664036073852711310769162535103435350452214827370191832303316059439990130581654654157931189367086016913440008507016279895696455592352556888052395583207627342445120798197059926850356779583821555173706473469192760611801979300836196563666725828470189223664912057745338100591152894537508660831449401046938811606367599692376053000001041963485691495406649195696062399172929748854342932751005807919320643280192124367183815123786448414452414918792830334087793317293295110482200014099718644470584569143268761907426837438819826291692903150093342445442127638232165027983041765967054880018204100928179954786525914554138078077771869077026801134020592690557546383599898833540066405880344810010400059292010140381669203101654412567354709386065024995522722066066394710739236410619595676762402185158186792066611923995570677763887865967917816008864532316912045610060518258719729718365155932250377367931735620460073204357595210502256521425773273068558843647886478833884733582240704349514356123208038879820672546624708828190488169044706643331569543227621285382827926721328447968309937134295613562738118705653293176786721345555004019031212885898446805360381723461152266392447657470207908111265433257091811834699607524476978821809479731339639704524528134036657003171028835926366188001759349492221438079243848363920917239980518416986766661598223712379134138916131568616074228333469002437218947649871402095617199202551562511296628092563196089262532706906132992610874411228311315397471273936068318387070240517863159014631914508469505703286526311668485106535620449772154998230551654655979670881057819822002428544994563079608448537726635405773598888545756714897658250564433773659563725133344733940718104353779017268495146863954660345657599258442862741549834817098661553534178409599752356183584294662554224870437717232667547676683147188647562290951116947762044591844217839118269653422552800380524998030925954914552941490708996517155262516005872361079997898934074053162172749700945909659061975551805285192036605150362618225531232498171109131903705805317279895376609928426042227029799165137051272134958685908228320671385190774174521502598957714007670877636775617971492755377253276491668785666113800656528116468600611196510392484157727644983649996687319644930086549141551861112416881394349594965571630198945480105420250618096917696771442027002617064333240812951361022849567048801033097314261787981470789818247552525216366068552573301618261113340505006132216963639924065793572761994498785473591417081711003954612401327219377232449249512555123945348109958619976054839468029720034483455337334575353229633091920330313285112439064383384036039771502260857867561507664552648082724278058150842420382069496069070633872833124470403793038888336357564998598675633010814021372957419654055752513202924000517736777289739022833658218793262406639123142036114867591934585762344887300511755359996324097533461363368903554971662429805282632200640747630874025092368694534396144630813621932639933042061800005341879968341186757382723869020844642857650058131811012379351906832327485492917933853244444701715908344964514309212645364868190413388855099991771511760493901350953941702413991716117489808080164475793910624545136801515747120900050617423110138317731117356710758648829519822535679979980754188126978661401952436278361747869777466636565673018540654975686135236567804645947060846112850712923524953118768337238448800458004502144312004953705984063253805334688878510277764539246618279736027478300230330091768700568969330862920438624162737042510209874170316340945970122986023659551802021049091324664703515216525115728296048757200340689367630589324989797487777821359170232338390891269763839335264106687883977265153988314703699661986099474459182967802197833557507790559840789462631056702673470092078067741133915692309372641095630358313077063866252682000163502883633849517175845204235930868374429255945579962848169485239293227143712447579556027820967197397839547290396869361998414249993686190153770349195564122099752257261999974441542164762544451123877492972336301499929047982521433882942928412619507144836678234958884549391018849606275740682792033361978933647131831239021118122498511874948668050145567321091472520019317445895466311353916853825378275466284812971000198450129871243697241735337891868081540597757316527586755943306927542296584296746973932343310048585787017458599416273627786973596656743281802119807700821307808520175004618400408360246256871210264252712521805307385608635728037954881346204694608557208971092163044081755278295028995429242840472072383192481068942062547142507129823795537991059104016314125869184066437869425891012851397308672169555842320225368435621951742215924494385232772266469821601926056860472067707869037488720937938074284445015645911890264397593687233158720466749408447252814802466724146072466040674345009245798504635603720535474026618936477075636249671877390487947963008856135947715949741878453764277917335686735201945651864894078465274505682269773254906276643983235826553943017272593650270615919846403486456830763707396223995999774793364420163843612935381965020951106078959164440640280612913243521463062512112400662046629151284342439537360401088132106070962354002964968387667991764907332645458308815933395938538072327596368214563850119204038388735166278397535126378368278013282506963103415802719269883535071406109416563405869961750803708125801536312698330496352736640863978502515825701546281258339857858997560994154030671490019991761730234041443227208285492764675650786788767885381405871478913794111593230015849218942858307662423753905214338888502063298284908917218406847422825197456957310294029467247076477552954190163500975310078642167691849634817899526651451344053272441780200168870608387400899356577130649309629343877667057817903882152172311014452836487879578813527964379568325648662304714893980136944760936061611135466980272712406974795581360238877731841475257304202728978268146352539743145822570621453466407830507429499697013570146602145815716462947819558106517540435639682635361350329072239898620016291629210172371105248905629934985912791286781535973232582163962955530262275154465020410682700446382671664265212772163451626707526373677357568783295840834646910601322752921487218627292653917533702494694398396372857234482869227972041897378172680003446193635784987196727884462683142832445752555242079887883710766785469552404674612898433540262738444450774508518103773303670846699072780240437306461195822168526889071988781891060255848844801747706014372787495333496339252100666205126671225787187271527126385120663870153765986977949613937105431752525685393084565500708178716486132086023648832887607098471546527013292514654821189564549896686351146690623594267353640558366755968361330419282693613736398631632382902867817151145228287462593905281708681954644345588786568336176336823775844570398929905972715967772462994160944114688532999810935371577850088135957410130079280006913992029502001178650822986520451789209804766034397120253512065583953327077658342825081819333817585442769458544881609770160206121020437201944934032873095419984988266690589044698938037203735277633936160046184462208590842680718876211039631373491276811494084926645812767031413614063832410851279058552947522535370738503569603057579827086354761229347387560136812661747640262642521074777978714016964218039556666849916921536315068812871542715424965188675601908414383136161663257818350774714798532971456142326559823455859097018130435584272294315978855352575500193360063176934180289280615353042907834016138078012246572325488698904429779476717774443055585492851604865162850142103973767993550776959473092208410621562947678794776519512784999558429983606436787906819608372165976293339656119387480338615590224391337436709842277700831358048340360933816407436966172086512818912558191869964247602726120954312205232723066626791762451284337494919570975330298312079067084524475889862763562945287931118434266759324385345894695332302322998297844976784637945671801419503082403788985693188067665603546429690895395699918235515179535862259458289877544166603598813643211513597315345536192200469159413897216857375424008115805533773029737468534293123831505179591183262762719384824716632839053870205568117000537925506400794137973428425191366771201281058076564213377878688865546487231953096897619783767174101637527028861340252484352145508152603812965712271845623760087764704671040655766166764041288417587709116779973927803027002742237646735430108541200454507584049635140120629316018865464848064242889996629631462995024321241208028565577906854097001560380400556517466532373479277837613748765589726243582112110501261904141450569677356031566716836506302711898324069810317401267062950840165137629602150255575982054812730633156794817330436064304958609940672201843657145721910728532688639286569448213601848746791711739052449215057285404439031473449468721688543390306891872844603102454758768126085794509284691118922990174526877494933698666525682041774443900647496582833017600611187889945498967404237939022951281088110334471166339327080434285972873370390836067745937589304848818755187774547084243263909805988799075097093222426895542723839541868609219130611651493034453779244838428256778778553969257954135504544640381734586945824632885720077085374915534408905758024545079629492596506575313537947464404143063417314005688493575387787271802024853322019133692472597378199511843257320585260693395409313289165171826220688171397740562142273276091465035494721929337229968025083422138681229486588433715541745577006641564124701352772658564273236131813310633622106588646902371561284049841925905541113163348817221370026084269623471076656221348119452213280359373174078690712062761186748480858458887244059465700848712317927334865927286447296985791923575238225986477101204007556775642446774500433962617816384567654558601161955634203964868988791799845312169248008491476739188003152070234365833732642894125518671837981969531557209875453395858075878163007956465328798489604518623900075808738082596420390060680319680247519439332709959829458224350275749927057922255904907338363050733958422199550462606870095855522999153871413149684353253721307811829759014020550958499298790150450417067261296200844432043067870681895112701592880879075877915685310267409574487570549198948082418709513562557309187995219436754816781065027239748910007131312194310983351897982654517697985552375043101547541127454442067364119343999064502723192261999202853562041504866789509988276979856517098259063958701727274488242227157784492400836419943934921528268782322234398697064919380604354795366789326133218088050070466956947746453852424251291665830458587310919701377086337170969604899076046651226353132260966189191029483466022577842926670784439025769900610563840698434353124393964486184964941123819772972686299621261080612000586093485076628846594326769394460468084425977682698335459343133122518860522843057465377465500111731334533744022825213588621409996908904115734476440780958294482764801704201208147833823360846409360842036808878006812835123045095537225902477028059938179286910765725748664407207097659419843188175576130205824939627432859884921661734888270483689715346742343279270710032518083582154224560872754641494661569896759996157407075595639912344572070733550711312836412433341592552051085629610120703216905356582516077027902659453029846088091360830620851435907661075862314605093072102576700438430773486999122543161340516209634966381871996261970112710880166794108186007830217616431631294382861927318920125997173251882526231049633240023405274329024942369892329184395150564165789588581594518096481005174689776430678897132321431039386108995823574001891462974954907230354349984491884376457254535673799336310514831488633271520357857546972730826527268854729916632382877729900157172885269998012272884471927819005418539981283949756746640811332574004337380227629527206112911808931973846083558454306697666066362858316297301325513859289805832569101722873841730149219945380730446481279873908889608514446112876402236634579957556398607864437133336871640169142375339819132416042245723349182434515434436914037559367586646406266710057121424396980433800467720224825444063608707389103330691922101112201290994581230774212837361121178544261679635989207382946485916403328567304713163802259249592451231816244577633366031117221539520689195921904200842781349336154520256982363635545756003794575371008069266920932448303870142095648141864526501967733814386339909469148245589486250380845881442668371670141923075897875977886085467081460166388098972509496596972591811997765068323339772850778648743015302935473807559094171860554893487582719434803414577272857541329958079680701498864253315956912603815537173721860226721310888370882838742736561354634047049751583975915970559070361523597836620670544828972119111896576783909098065004329576326757359290022711333316531018465825128175829009969556486645344784105062314408516708407378378307416522618769959205102697432710414652164649731327314716328167460603503254471916541341275741171168643157294775819357970687269104519150665162238596802524437640910128765376016057344593108370092758649937879582171874174863836595143899188452291033280057828575719755794046749321661301656937261528654706132775927523654685820720391044669638281347020095637800096669622997315270971000014206936894894352787334630977664410265094213375422366011268500756633470874345553889855022658464030478450706930472941453706461337625673680192304593171794782832812025474898392164876484996131846089977941587317450151618627872020665934493406683739082365151763920843926590300478446976845296634185275541650491246304804070794268891679858945706339246227178285303721502509809539639263494654986944409134506816127246366247963713851116663340644361298011440848555776200814442624153160682360699751045238314923623078437489154646443529060139917638529252031261635847721054354794464340531300166081206845459433353430310712621653722038610853658659659333123543592763433856864496283726969254784251710084768700589422086919977262285375026901071093109413025965507082165461509882404047395566476499541047147193084659532378021284044628758159800965932665202009246643525430133942831797684761707018585929944028788053343926421888096475542679031358063890828124707435738311566035358700372052711789469388470002985173239749970037710281539376208948305989630345955967818933732930792573183509082897689590629712300903721505037605161924863465314307617620549429325873644212261930221719330658132472136325515658002916087870618714301917067082945440243271146510126965293878053025919830121524184762024673476249679113375125611965271240000397446521659054027188286300693348511957607787197475480883772893057092742377961673276029204578480189949942433767957970464139013977070573986949263372098228236848152682344212842190794273145107462189793332128361610277150521115761819297065951636536002642052098668663706252639516004656213010198405001111080210104946000778438634394383092705423042438915887969134845720506808581849394705223521314445372430277991318708954548662507218048955636691989323293265259990651075343689984238280899734871535691333072924763943900188851442689595091188960927082890241712306627394499903598192260430616387741224346853640589376070997197136010461899452288130053378035400949634912062733674706936782342578527189750493557024352363504846378135666490949863374757739527664425920617590249027094106453550145776134358969792769607226369783850792709528028187189155119308497426546798776835912099714854319303284251633441930922571388310564232607619530077276714610368015332298276133995925843233768768278166609582627698333569774785431270330218276415160271848334752042166985889706240140588248194368762847192417560559553207807656793949899960050030655275662117478628243469972848355311140313447671648202825841894685029973394467851360927878227681494859622585592831656582471627957664271313966222915093316285589060439902267926578336309939522165212157886859237959108419828265968357807237928116421929004660927904918594329375089870375203067984882763301742138530898751956652454015691622016146771831183890087193476347833523054461916463411690132487779208506219206283802980553459167878529673469685283245203969599310900359576135748153470831662134629946084282350512610011748070319107223562324988086181756609264125748254374159939524524292873939826648631128870685769271253758137760746288629515435290867344741451102052375197771706871749639289555210182711675949024836173534387499118647210673619389249599505984061157021900215464422365775302159486263919675302611152738052118574308593514922064742109437670732092973184021916840561615925295101813901751866538534102852832253866111781785900801446467119283255042180779709396202397216795112619801163897919848387729916221668058120793487101493178823912917598458406746369687631766437831692584849296909463557852633313098354001003441913012792231076637178474966794975267252098811923501703802355917174091600430475335715000310673275944188774497023431818079890901897983880136165757925559610870904056812756661918489868592789451919716238017509236050537140085512009993020433811099065600748768077044056971077764665188569710209006021112573149516525737853874562414819298563490931905868224883579725307084306949108340832214290766632464698640860934819579808090127525004159364429357713513606184556734063672278927426319879391835759580825862030751833161633381445137675334824318651641636467527677629306166784841725677775916268559365331565745727624697495097986946042554656951635200274779757854680683774077958240482782162390890502012836293969061346512816018424388392870264564897648175002201803484252130887543590778385101531598021939780069552614930020607298458073741110872202011420868785658358545774296903146171081858678085427999728388465104937682070675378790633917335798159525305415571573212993924312986312506850352819154372199027713984398622576645771604663480038518300593753782978274695768320020335314492318568979891954310743609799380175328471734368468225978253345470967083061470776449154468166647766105702215993903627254849382494052126213767313413434871113805743947177334926944254693363067543979266056951229091127238841172184368889937928357499171032649521115210865205804382460452604456357311183503281308064305375581940674868403158630901014690515346708808217661214432753585420193481999181239899437935883499365074056676647791674139906259861425242950340601377477510029478473915994661848607935216900043082756362020416197504717677053475965596704565791178889259463100577305479539897610528097505995940733982010143105925846868316332907838206346496306648320572498536311473380356465436434122030246075150753034537093119698528415678231799675367802123143746554969635833880346517165632827389639301661521418025682622269215472359632834936250299905729981627371824108941505366928099154917735028508952276077661386202521356608720080621272880572285870264861133485140837633157986117565905145172908266806150227018056508976557489333874290679759602482899487505549872947748785697729968060597813338830152757108500072181282995559776445102796604814221230847682969056949800448693724437329354080170409608475828402285539045167757871612524558044614295866633990638704759052530053555014343700640747726424533404013680317178568636070466561368807023922008442216845355397809510071142480078449647067354126843178917872321634167149751541942752387828136355198228314538036793934859050953598333538460901666160503253869505715348872657670700596180198513686213906404394506977388814910819032672130545129682841887394677187631395152149178943931092155878514172682982128816575236402522734495062283472603123870650129801933716728995603681320169009002872592991042547781042704717431097666151558179909319870254899300949606747384434792805656924108632007857023535704828577000394467958722368547206067261721394660240053128129347920937850507866140410613726208410389410426148434776410993490966449932297473936510016488134251650337182299570232274930704463679081280261400599528131419427162347756210728915548573098423800853692763392377752147547404752224814802549954267164268502961705065257591027261231958674807996209126510573431603661244370488663399975976471879253676090552932775894823064298267083493938406024274080185024815608948255879318744221726463578440771314705014490930521153552449196174514914517162745075531812012565857081147511809184524363165267318387377985596570146763704313665264994994092445165949851147110513113572897897635480067664561669008999673936471897507216088105757322356166657335677432918553132747767867469341455380980325039746823162369286528258111788747259320699191594581074308766423983167787967073929769512852037834154429411322337017371305870789774853926145883176968468846562086051730483467674917823940994932460788861033044769312167436481553363655513886044238547176171503283352981475316201442065565999054970304247450975063255052185383804711227509604956811478766916119106133155465008996435179804549856305736561614166845522773488474356044293093699464489659641516472748581533183725601848436185273235522938945130286713175900492087889476955798697333439009284129991646241119364013246402347638251151479889535948233670774990250236532328946607014941728616169186996798271795767107402371058575124613112404268225019514033080748349091381687182956154489977501383861221354978632012334155308717302430180316753101964726569177912490240107960479332311404348340113274604414613606590851645158593511587763539429825362462341757404424214587163733624270674549278190176661713374973340298970940005164007425760945381895543743467022361709339212123295361417553769760176698769325486674305275058551720625613064690565862013096238482824756197361913829076836420699256891523697376243062903767713022110644840528404136927448111853319341610349195237309231540920886143257935813152701232551683927170119975910210684699285379929918834599165506542154007860552107417860551406062358663789764304308574079965417601209366053311916053621185803540293382015187215626148407921966185176263288984516644695644998682676561748427231679690481471757323558735652967362887440887609144292092706771676191968431961666557001051985634848375785159940466574558524119300616599544967090509177885985574630699871558998151380020304022453618658415040151966673638403345825612212471025779916332564861464234278678154618609308226225078083070222481628770390316256422032800770415987614982378686974157336220762725234546190048813002729562355392475628701332697614243358168238883275878166536081846620192872637670140725789393921340539927914316373426252848678825632014319298730008367904976613072849746739182940926262449503650172029231679441123570188227465645018025097190663885915265303850515677141069496436363608543720000231502157575162495874416833696978768417608967503705094518071137723283481383588704022624898452342623259732120291610126192473965515914566882033095753743475166197074744896816387034421776295152982198849567067376045399622297216899062153119645988358479011924284127465416954836474203458173608367408528156175689499136733979728083274664001771509319561969089119323280952520580306016952070292482111627961108422506637814077347177383984220667473280296699044164360744036610953466084978888377164697755529544635823689886647190911751471946218256117379364531440354113337040626894698964814347855131926311623995118820583911042871745399107345924763788848184839662796178668830020259746466575409926156203494058658931635250529278113533953923937728458713556301988814520531859816136911777516365497568045086764748940498154252631406242743383099460681027472127739523128482158596028088474009064812227060777267456213340332978698390241912709490688439930327358942126443232173531112989889583678608075448402530434512950266126751204453070875403125407523064274839115815350490695201564609738638983678782248490826638037058818260606533130396758611325334484804208024840482908597555335148412844843296658702306986426278745631088925618814188401278622614449914513729747113586140050585519270658329421508825754207279892226904115895569589907891869452239125467264965607845056414953173865278344578746121965975832386684708984986863534621819521934150999751191660522378115768923394746622138919509013805314145396651379107858002691675534401691433766040210302447788192722463252552539987121431882634020154832119697975068797971692652460867264693906136196885364734284436611168611730325643274914627525302153036271874384290277581387160759443788664384060861261851484876040712494201014511272534473329480556102831111819082697244835006824693124199562624457074967142144446591699884470132499285770222638329636630026095763141126762311519242395669142630959703477473782717149826373689580241167206405008866796579705082009294959582401853593827213453403180553115797812955434454050676540869279759267844062027440114473217631955361773464629248456557971966293323257880851290997767180398400117039411935842947292889695003707536715213804040753119942159219059656843150465279837149047378440452337995777231971832297608634127435175884552877210804094015736328006583400424575285773809159434431956448214813149364775716516645823896146620971599073982982093185782495450773484928250673720083058998971242238831652528269165863014310851132461048776466848284438613109481630036363931081643550855728428792423989623441828255052368631026042560068980238965219486801613732469126789745125495798166886060251388078851123083568248086906073000154587106521608024539937757539804108703989256274791389375705194350607263923530499426390925443044380848118108630935726674972487533943845154373266792592680891480095985133259340497584623849940013708424394497072902044022613878269549708723699921932693762162609117232013356307871044384638566526818125845045605342045962114084362726304813493063007397138019367694793696266140973217807048871378666272107190073453591160886903620050441758932603593628621780325118447237090720960327330047229557984529456390585337813304778940858883421775104487424507036891170640564045436323293164944461799548456327840949297698875539302728577561629019740511745638597261560621588508331759881770418572495553413047446573084682793770269418973534022172962324402787448448493925718318868422202229682559795803708165955148540841128082589873546901126247273569880018627288874021821939162483035524788503477282830264903493659201815273091218941526132597584850919578197675536173456869827770961592692448910735317785272177524677709998071702046609381402668753468752984856709933014176323169945318934855901365631525765248276129316092748258928647116481359064393965651713926641008827114274151904988503127366077908672977667363240667143274586979838522784361421701768618923218466016367832822820998444554418857327944224192636145193268330078714887672071704380436333394176409396872231119189177242247191851387621437650600605032368340893832987073402177166422705746600055299970668603844363124286523378517165465664788879517172037599706101062032092643847831700468746369426711454854047672939937810133608192717121006140697894788707233039724385620996039607309647344728465073631437536518882754384781264508692687629506874228889502786445548032813336941983347642617281791834654140068367105148350688053215901024608214710307994783891539706682956737850295832757270601605227022226688740759785046878072701538649056406545880399152761967397873865394639399991199304311553120131021641457218062275833765109417797435993316558479708191777797327538485610913250316201587669114835846242348278324893498825397307203168491486916816234273703740824209380278940489184778000581583333425801653416015084822632218248477625119891651943642327157852228611254528427370327615759649945661348817390381229196531194936524117466272720000776546393493821085262344449175116411368419030350489543064032017744757647757834804419778727051604635563419964027557488759574704634359999709193414846196730505337009246717671283722148038259762798760509436523871272594815644924462068883278430100520371891517564031442453300687859376014588195531627020588506737824833754600962209707990189202041452481150221288622156192824457099794681819693334825355836422981782036184951450299868550078887208762471859096009566001747388329364192622232063403312503772423746534681987331897619396864992657772464537773196631298541573881314104870601152759900230803459726142475136353646797702175685152455360672807982491149497592993009720326470426562471354881547787787684941054868227107032151143136879614752396741116163568205401836867766879403164683384422905866400735455158166703063856365408028508129357239545979356929439796572628701199451928937144031140166153203569508518747840791001556565282535609910936392483700086760026207068270333052108442712007309187867783420383627222791188122130227794437168661695681509660246901579303120576217130384759383626231323387986145630760001292864463902673682621823252356608696974040483253561222529339421402422985263651146606205560054226845364946115057975450841150507275218538296813075139159295217789061525734471095107232913249197613127767284544963832519717535117405355106921199420750190987300790663949721448179052758119485909083638006882038884448819361200013592733646109459724776746503504605872249358159774835404486319763281781213260960784705807180286073913593944552675183218933465129229415312636389834709388659269022465584213839443003009949343832010588739498764001381112322675085727916985261742494109502020031576620652287295483832772921513544291323286986724081882953619417130570439966889519722760057183884534180946154483462728725827908490188053289869078152450713382612946869831434207088130798253094526414464153429289092256721753416209424706664040653780819458912257373849710615835997362226272494365851827002557879528665584599717602535462159151187569087564443222107003474283804824433248571524644604593026129995209733895837016156647663001395465462661662185881180076914912567625650007923428989032894488417590697636347849615876314077717841529220628464687822854554285979751205018202930829481147407921528020294762580455765741700688191326102989694582836409943029731966653260004579003681530518778460868223739860809847055836359892190429606500614716201251040498092472903936314565747309574380249516884450769654418297688282258406965103864741241714584716949658851112121812960838975674190078620011491107001047793151958553684873948250979521175570888231339923606650060512753619985278747682118938711801332074563431712759212648089729046566940101822488740876643066220369118527904967914831059372236106268672648193249997180641504651613207588121988105885323305859506896273438066473655530838231949953461757186939641906911579748746211225524947743396832223119456762036595906730938419687540946419442958759234202667086474569547902715366822355111470755031213933450394222409834203437251628280098443031018455068620292465710647465460243554840504381529939900931296414675657837350880031986128595754753184785553466674792011601869015712238087669133757747274585828059733085606988202713138024302161313352652148281178931133507800077444956217682666830241610032610246723218456211451939214671916765638438782360260193540216058494852037218244058580024958659645264647528858511101640709868653367187042295398919092187558660800707716970712607187655704827252019346880671531918466232013879430908544764631513116980607738802892722194456910678515603957223164385808984024891640443874470880995129742038184588768827246891901103808232110978859236694464229901767527602409365890252573307474211037113349209839121527381446449265072638897080533804716550592528969553914244741381953097739535682452657823577541798952623144733937622452469128090143030913651058541458115175820250033361380660612290717787269205699794977174128776727732703556731792567228793541475954112583879131380205549087674488526975766344830120912074921481428611539065524633473093352974245488920554572743085919388096839513042163082273303031607965103257955763374216112085422406056305779912244036550361323962943796645687175212285422516461236029755579920986957032287301817973355114348203029778198832996961980023991424999769487677154026451903387548927909645141979080253850314112309452073015938093789894758714335537340585251945665850406681121087910312535692411450550271119739933468925457837794101159137675014286021687329758938863688574336081347512506954755929296950514488540683402321424214551336901253523297518774948111957159141523323656426289408711140347256791627526512738922075668431157076896463930566270923444678648552599483439240813658350082785657522645822646092624568089537752247602395544105067737686585905191537006915606836330202852328068301102402449275990111687747912881604938305535766974462555714985075381354493529909263379335351917667390920133291513378658479267810718698282739365857286672528747189359644955906053911255155195080238220355469606141346784142184963660353318268880737251233079158553311903450428168004998905862945406083874094109055051654792752881614350988785048140772217436500375379502870434964226290906714440203695579537869954960005655906529021061311140368421077705169905634109094259496832023798504610465058151896365287088343004203516012014714978446556893626788088735803591997357848594570303170035129188672606569145708015731928928441822224536707409745825079142089853533059695235185423073336740903129112564600840436385069242833600325824695986283019962427923506702029232733450664789375869792150331158876772692391980009817587664532768424742886371058973078395423372186661350349430253810919807955798261270715107493277656484423004846854030421915340029130566916846834775790158893494682089023896631168371138511747822350853141540623341873087968676512932351156037434359679323724593280186812100097042090339509299142584038424699324494177019401718107026322111890916353006536322302574013993246408925090889154516899481362966721226671601347680092650421338134105244485187150887448916713512836560325104686342666802294611354207942766430076009577483165344906419525285150779870252319193010745182115651281567576619203141376893855059836620528404907239671257858025312765886340277876073898604828167333198349169257314300705011240088270196515143992698672329364535954067308393484529985668699189310889694627868336485678131658428372750659293316223215756962187593972556534903497331797589425144914912421681979062860719893745662273084627006780704220642431767893769039035706614004515864667620978919520712051488533348779081615605438426917068137036611730435448197099695216151630828964966650538946832099109988309739754404487349907617229148878890858747055619237246942935525067753935413930203247505614673675155448965051177548172628023183609473357215226891927282914135355768690521645727769983784506619354242775555529403729120368373084817893421521947725328372693875471483340174270120131171067239052953175123300957575909360847322003752466282101358248980752556903644006527458546569734931911532471285599505174204647082346137289518545373428019568393637332325175650256233878241296661155904029357902929661323502278107239606346320801772711551371068330844262266422255237754528815270135141149660694813104490708875857141640157834503001986743284357044726090111062712880277126286223168636293459532255488546968242787704889870708802542890550038949811607737008996423843306641008754984784880649957539599795952394871880590899687936742637537826691993636971118644138965760138657411409790865645472075409377897602240611804269607638634803536931240145438173941961842357959966739475316399822927514458208828408585664508458306112187306461336429903496970172130539224259860155073306385069094587877423636520007661677803880412756841245193582672965581749302856905495245068022596503742641895501632235816178019766400365752929193638110857693680299921051631669623196496492765581434209478150830506290028070142057811611293625182514388836673562269641117911322492874843486358869025619326535925333488689590801231371570143272513343342068335649484315635852066618256234806395769503623142425766886902335445559389340309881079787129484596058363725622825706855606722211186488430984171842584947154699194015043501598195361579662064702339957118092021537817884516415087846776369459557596565618001175541803373033862507337234134339684220916121253017741839447859939614061040364835738463291410326593246306067264709151390146416643231511644278926845923921903579763823821791004131104699570474685041259275796056007806247201884366158190260754877006675203392997655540791080066821149790314354814971601658429996713399981844434933833271823085623281159068983753056079293708641034897879416676461985516101800907847958085035419095957950120854577619671090681228036433512608045952968805480961387075354304153513295997142547524078825819281268335257701609851539536182842854151197122138623534657624490554632866486466896914177158121193118353873110370898494348964259885758053731638014103657611575538301503848168380312026452511570372374984314636665234318023622182710312307083390126828214803513148251335870697872553003019568211440062380531107372419439710320223424415361384435262732918047138093201567106798470902777817970011759567079525358049972944220197149107738248696178722718078801650566627303765928301462557586237322981822988513965200683868662605162605195539484401741949316284629385753622599669864200673483875564456486321680275790366368062198515398689688037510871780544142341950389923330045608092819213909734649157778161649564991963117735295355824340749476168202505214951617592218368453255071575384983634945184975139218890610962573148131576536105297178867972706366309535690788550387885880673419797731279234906454132575546530625646262166824099230411453533677409195032742103467622802209918193973325181608085410471527668512772556835824403002413060661191746569246036824433984122238883355486517801977990512143001744214156059935470061528588648221261242617884452564160341414961066617912531971739989893403432220506990439920164044758792334498583518426638380263004556154261117978251361650335437300482459090337016252223936670022460071826763002131716572243211289604890116596031254452211785590597272669940769879395970426612876964157736601231337043882495892575247555740534172927200337382119410273777942083338774184990810546003605689574444380802434924027786225837689690370907428596848612534564589500815689338115966506767955708121141964860481016347682460215558058218798528151751050499502850222511477007148792759174666817544902467979084998793485866744559314868600748678110017531652089229554256878480658779375986220324774721049768444342690986055730981892630062998937535803416856458312085835932739579465250766001042445871840329637834056194203243376247398127163200155808108781501265778077934834168882376329175511487652991308828771502677022003063218085161113302581134352514544039427312941256463500943341291882869929056543854682952806221500109638663570629927630002765603708821402658253792565742908432995194589526696112050935025085139782577747667889218591767000987401867418514525046979059407756235048029462946592781711402404496636794080011694395506725800594828306380300558829187140801587967463752647283490284995363754860344933209225990781296425558418033685580763247168796198743512343890616650089743859913025446239614792136420492120398223134178669342222814207201851941623482471286077732923414053951220558985400096895599727712245213214707116374944948752625678849034974964745232797317117371847225489662667575883123322019275331367718777167204810433191862781742021365260380214325488280340807866945146473580943868239042899982627092422697790657212071571178138762855601534122970476652263685738117242164888641942139982774657830489186356769331789355757341536531912054565207512933342542069148798571261392550729492644562649947675096387334590881035876035476303009224795808613064130909024831794376939828394535264299355931341711674092867404199772880239389061887303883145049829668459930930834351880568294186199042609533660859011033667395558389353670256623956045168587819792162948135473342552433730766206725672934886722940705032989175199570966043579546229046992469548123462998546548063147462124790221408194337988829731200210409087419540154042768070065488134750624744514963503335257074536877345783212536857105122251445336362945392975902694881474718519235768831101310238288405011644461484378693467187548874214859532267309658927589738150671911213292100024350440139334436801722607014806336818740923153286568725139515651150517427554025329018097215783704813269449558347617046794320444226255444038038697120445676327507504558033581439054814087430976114442345620640257153575341146700853857724553987769382935781915106282852055216506388793365790917370960095003200515947620308696564993466486229696790292073136004258605760100985753621491575156841180830397374364462061690801413297594269929474325284725506163915923531729235983938567627243225359221632136316414600816844020058319021573336022395878029600621444256185918383186708706416623314636425487105481078614719156712631173411168029677185162181410382148797857047240704491557334665534012912138893087183278599827237919792573828988490957560636988511738139975607929734310957981246118069638886793333525705849862696174878086439126459724477547878912085352601321507588331638068293394270332508787500642354212545803801138408579479503226602497789825364842366403245485047526553703118268907737644184497286023735274419991117816421943530115507785524150621734975755186692220235830443184190906803417772652093991593825669828758896001900996541934143999414192462513954180637459222776140154476920615164956632207188206547876033125772714323719912212524052618905000448802268106578216202920638925615061025998654564287908202512835817105468648227238179002180798099432989057230027795814205167182057073740405240318396406723067994534941893742021056711219590858200077811041200904616264946860385820063566629141777747220390167009019316912833612735983578424516844693908318141069247247419206860524264028806669545372978281801231460981965260163764661151748268209291920651536445322942234881035951610419998566383375306413119248132679461147828944061817743986334618388472570333724645466263150204020645305490658966207967585533385591360657619551372073381021181813834024621626300285360638354349211318510910765095501275071942535246298834979094997287698750273035185268523697907877337928656859417890694803512063268957687669339805591290368719542245635892309246924825352674352270800406712543133380754389417020246579042517820250273934889321211371527456230078843293609943678520170179858718357396932516774823276359174012546870291579721437015496699307357025175076781064546227237108463847472966153871830919848244971637052431321123517357855655508539271116869409521250110908109764829115865366904815900103389399196739825197811461200124591775407770388910009496869412768026774115356872276592642489376298352592159682881553677186741595015666564175464897443091096952719750893499136296456310710522454300448051835652709090941138525957945405903473586580778745913695010856882630662123508695139584926989198325005870554504169661152559854196390844678694931421749473206073654001010774888928902817970028865036631964879983764767947174555486256582113238325134452442694579169394956956516638972439006815140733728436859833891086116440135439277574386312432145904039373798796979954193496387934932076130252875269884499351917314570491343808387534894664730219983612354721476770497850163050596453466245224823449458460848218981935247344241215414641330854675926441651394539393654316183697623686856522970964938697094434193842988655385636045306965373213476038828192634274414308163630350815801657109483357710067076057299851466464083852567272042143583289609217140980141847364156193201447301840539136248455339207949623397936172217149371394885092097643077130362257247467606739470126941667470167699826810597996897485614907705458524265883699624986768947234693248821288792355914184503593607617400733147236340687487169331690753277359859813161051050486131530200458951729796116811392713375030904169121161188054888487897829344671711436143763417700454629904349043502247834533945871473437994702778918684614363090559792769912705714217708870986001269309519986627649954709181090296881162480621691777397464802272972351638003497500514946452452292927055421734272426497561103107365907244503341349129163515132719118488293504213925951025441044168632391267189128456601128337951545551544560177386452818341155024328340647974567538428722858679473483944273568836750348200247343022620038409225620052960704461936221385961629634761705613331264068497736272746172237011030299872810080283079124275995310887898238778443076655498941145331208357740951780308958664992186311711333407309936381954333852943860153835917195581529524632929110913764812450204666633203826586492091263520015965711705694220007276097528661657578706774230493679201232589404619913864662190016408580825266912170118903730836605393777483856247510486538988450393691148961590545716121403406477034740168576285023861017802816319100353754812087015051986281187283342702132123530955723966163701606521455289022450600667749305192235794273818965966849236442859382921867396956534519647483752396158822641051568803675702967929630418956993697908311913628285614493957890895748574013472269665480235592016764825540253089340464327404763779449355718008630392176621855634345421098690968650410546311027141695123940887866935624152373765107631174502846033536054927331290515514474017490101467136857882491863339028159916098582859633707114058888634797650011029377551691382074802948404446534845197985550780350676103446462051515466255034669614813273067028637948905092303267789071213168670550665304807631786247308751202447353470733703904132855778378188008083363454299576010756741281312533090050358616348814141434457543392016829130520710183363615743148711046707617759639902343289140168052293405672519664682401880523901648985019420243711545302654074223870499836506840242460953565242277696330599342416362252769772378424641612611718466857938856768440900501474254320847326642657737031519398009867378613053917042172226092556425328918305204079332130019911418612488807466729851051590681384633435949465033333882939342323196260726127360861555635801529312876815135803128255059405910688644395704375740421698196490969771038861528073486476000583527955249057434037007726279335048923437911874769356909060048187358632280891417730624712407452263345107944314475451954862819068176783435853576129998053663881648425151562444774627484284841681165669646867555490442244886152975019198396697008484578856205754996125732153735018990269229770934947463128088347187985673316117583001141142788453316363375604632176418366736621512407669455355302547456215372846243783959509841602145091710977628086447412817809443544111846484880497506162024311864835065505052276326105251376603065063980327514381202741751127256060023705086808160358734093140451678985737092532176394471992190386986272456419572113178952099242848849858519607611487857270795647726429417534257224462746335767569979749212836924577845554532433786783290240711508232456025714324195435453839113509531329850667230413565797873148095319700422594978239728278402240691100189489568693553161508806086650683917924665204804763170943553163960355567318618473154708448595192489971745407576780240121084410703094198681698627799487632369489279560066464415829634255270400236752535904001727317543177597830248280330449966248594233033167349962287514507261150320838536083639581131272703235978642350398680517935682551173010614037150663128528971506512831364288847490366971482083257232395800413058305150872722415187926861134142548407149193305819686577334378313428668500988933123684095931598261748848055212771247571494041117971343631921973395054858452738183069605616929497823285208073991648562651364812875843296292989164956691635658623068940039866482071852735375412320968307347368437578518946636467161111135466945278144794662164593387939447689346776240184926870381026214084499953016064292119575162827828432521098336675510690949747391532744656176487517503681604928447400270642291147184736795321504731652820416056995682033281391037255526664898387214145393460989381302858041793523834185419528055725436988943649840650001464754966903135780971591549465921816478645744425769535250270064298663178017426733778481333821492233422180701730497823698844183180206942711669754274677021275184083952183529676982907742628144255508175737791467241612906653032140206722432700404994535493600573101505007989739158771917543836310413478188480793263382616056991547474865584660402013939099698207924185638467963723807825897016393548566905605328165039416042770880359602746858725768202984055790813493565282644141954153731986589127274197065598462664990282447989688693595505008930228961748397821373982163811720526500265553648384360592259470664253042636740149803053107432866963453654012044846729320992189267022270699819197658420775053516734518633437473455704797529356356756722144836580104139457119916910847121462987401420739115394130612949530210383071434291550325846266249162651770012945199738943955555718063313199064039588512916048109058477558835229324709975506773069849293916329258079429415539917156807951407291267953756716330159878362502912688090373371686176293549683321557368627824052008448250039151679587379143470581817713751074336853866795782495135484726951259580176191785893898511406587168405610936327333360992643714035087426845819751516035744049887128936340010627049570194363236106814213909089938494680544372320278664448705213786950474110487257898681060039584318199086675014823589968819849474480660348697580961914593795702051139637198842485952835588350686874662379286311746080154373403385167598352236803476851562285695642564693350744922850975205713724719874756268061712130319636608544063529271115162068451346052070069626194520050470092325042147395739476654875898428402833396511015848495407766716831229672181828325369708821436116070646357497888281751554832778321353791425017568450725629485799992470668349856806817140641694599498392373158801533314550475733033165239973203913112327225708360622026785773683164803506807117590786034195838654749037321921974237003194409679651303661697461222099814159072119687150532069953376434024824201813123640311169888259199311534591032031081969647133799946003648018026698891300974392771497642584745265160629557508844744557379004787335133131500798672324568707651034506954776690254789197011403661725778030842974421518559027477551450307341796893921514038703477343196365632859192639309703095115529903137744610881547770738917004214352750078793365153895205878341800187450995108859947479999955961789558085953930299057919282573986705223638925670524175304584462455732942979099780977888256988111258781528890589023448688170810466554670476837398024837433078649918809626778843035500113886197079518433907549160143142780826082702062305230782665227214268334668137988838012101325022035624825190199382448461498407506552588995527689692361574082602933680471517317619044480391245789032417233995625421673278408799379350181167999271958565419785461035123581683029018172056230601372968588776145402701193804453084425866439715853840103872467971172379005840354147471954422627587274859391204192147528884375594406297894194739589590457170913360119362313181315108973379210720357249152608851451445449387037038367327904512541804032637590944932081797956759986983572661803936263612625292579593508283992589842858045463254238717026314021524052800654363762890155402313564808609221346845680480871947180360809195856338812781329521499414936225884358216044537027512950926673270240860716750118944638000368202633297780116633057847696825573131142923086391430814164532361971974578206619874725759655774683852833597594698267200388740024230215530084696108870718031816879555270032584083650500611608662380497111497764446713175315255665941970324263783854647453285670012050148023568334618775945887621637851242283345266087898594814287452001254745332215843631726705621302749771616032199837343414962638447714929385542309727567082131529398501514073923469910074563788928361450502116175938376694604467356524066306955419133388723144908736747967875492185862816737778428690676969502822403246628683064125473225805680624992559899963046938591556600273038527157013984177696634784309331256093279721182365790004492438171413856007392276659586949075560329623960374461606084080066848133090174855573692983958154376172744460999717490014208141923109937028969586738336906253941190542434309292924720540403769854627841901725035935564171423723743948937846780804878188049019982097244169073306517948027326004314800087067505226174151730948464405887446276623172659452867568178653766256192186637025417974142627259238795978562039403678154404509005424784684655694679505700760159718851700859063412534949349603563509701046444325266286413114601978030899843444755487383876607074987970493605023043128033987225484095531056674151874662494004473612867850233565690335606142700854553365493186540880180151084606435410914337272221255433275285207713989901574061271105988100085151103037639908755078996326667097499312043851841030649075854389675984867993895031590253421866069300180606443169545771582534904211952423058607390324607007079155749696847285993745067925422261363906664967314575956199632450153502836127478316269565016243378866470134732636321806875786747084098043219052370296772481481117940755408327264839670151651250581880653341906602104919140867307415565681762883345867169995297387567537590060834251495622033945696046352022019366561960258570928731103005819590375662597174876149907737171977400954471983252575377613254535845466696252519898723400277470035115159678351484832076031012050815825881359808691107765236162300824323177156813284313922386281167228388139195112006868004822110977930197903445616299196090901757371701729063786616574127847373979486207836999569680284195576543242893941119054721131471530714072042560036792672140477784229280960160239968943010685609990964809186283772037796629395314118245439518110712320946511369435731351858120519254334650387714687668059030253643666894036269139187039126109194261915283988910884006688491628866786552468209013452889529975876698849082065782645933833137262514685011691938477989987259887755090139080172725116740917139221799979302047341678483088292095570568761922008738885086879582500963790939261377557524363372372493675110538562749653929513900758968119761058760136057244362178831113151090105742830111770753572639347401369563157756159059054207613760846466725975149763884977483112221441533812649154053051245221938043477883477283707731004232901093483343253109712449427801824865688122671732294550200168141424097589237195865059699431877819043385286155360206690257117317109708675803624347485721495196292795071248669247890414276749692076033173569052409419779613978398895306254189994828619221270610809803486234418825082403448055518253683852839441462460757747846828181712692069908621994555919088802423275307685214698447642196668647520565901955018162983480192397008106555390740749916571759047057495963594921086753414448114655686142573324560058738042853319710962986595613715559658693111463781514194752114152041122928344908324313716976728791361196751673556169133582529249910301009279906279237568516244888656348853827907984636093902905105261082255545451956332468686997353360600428369311609934856552642720849271322904834069236698439392780541805499723686876676592880978559422700625136715226677223626223090380809243015450724514721190434769709431388322559288966510253660869986089915014748650440277912664191296009025174345547171588198108584864662461676869501699316485398773162397277772467515457570714431186505562534415550168576002849413317100265491683319278539383356919310916127562252765126162592735020134243388547951744085452519722681344547249234184128178021416757807339217497980338016568818669743642732181777950003782309780481833987347281525473779235610746925974777200994152802481117699920161973217677833389564635200433463527502096383580857466562720644908888998244671859948323023768263752992191177320666237069275201281456522761335922956766780849804239879105080347910109327241116301340794944203616182293295492092265761371781392458253071262887101093557098188972819945158847122837980146287723201847251507920182180738832624450438510355140059402223541207506068679169631446577752030144633097357710840074674582543561197196568563567193327258570729111286907012325578510386578508459643486979101221118173157815871711344737134885912577131338808639299350155135069450647879780382489784096320832528758661933704602490200947541814117911109883055623917930046199200377134710635206177357757152903115664287122206749886517051373060378456040340297742089907761664987846140478386105768655060743479196656935481863945884298443310155366037492153216621870140683595946912389737750452906037984337736739690443713790649001753263144383145919678333088481852353309664409582962106201221763129903834678007768963197693857703389144832478571127934081110386753358585157398536103082468591940037980762622152556597795768078349500176947885906546324278058153289778829493468402801450046304610642564006998563818410949643090282653093873119556586090995541968126835345838206020194785691057457623190158455514802410444022456328404310963711819742032684672928887332837770897775719712209779621634962719683727764678847922111547410100189043243273822385670425716974745867486825485773754882396798638731784912353702820689141843863903256730318342463627576561516839648659651968691482760229158103233578351180090084305719137996453564341706773612726067495551243859618219858840555380837129123909131910339712359732533462376401459562588780653510336758333914611594811513580449601521384942632191270030084005597851107389534151069330279573219099106818663384780088032857231742866229170408355629870879307052613478968485359141300200794742694027930764716476221351727710743933963406833158464244477690082578806926000128464973174303316413685650821880837867730809151860894162740328763781906354193013092007101116915583357870003402623779885877133740236360078680690112791401932244148878298678415337292084436305069166204001963004418719217790353650341665399614196390654943557166185600841664826165683780814333567393697389820771383715921659807792632727282579366494656227577460867775422102252730284655882669876650535305503371198213095137680960838791036895368304918553419569370260589794312749163098208413567702820473249035020645815274870662628671506488155768188451078638202138407479939245689658143001105835368534305839699020381451957672466306343023637848765810122902997442228709998546813399617754904335388688745180128175875667922315560866925010660623513453842372778207763568088452564849013345071177094950131614612820330030052196910802061788383238087823411509171636237337647282883112453261254593800439424806018836694365320692331482428004907695539584082866046432541017860160733463935844521118879495656750497069239302541208620337530264268821496608701261796808108879673676457036110223636521373285407005903825204793605369734472616807464085328502596155500865783026059901754766728975180417194149719844232838526841985422371556330637662917031400861233440781161219782252545256389071211395430099547858187975446235861950913035552892863866468657549813866847255128800135712703286171179749326217311400673592342993612587115989223336132521476828915354789224988183002399316333191413066763867740829103127913343647299552500627856509317721680362685457326624462999271748870982983609061895201722182366256793570434961481770870732549403248331144364134233897338241174757428557358066452476415066635650365990210773014780430499965205944674913998661762067523813180823857519281503631514374920490895457126829629626581669094912889354511101798706391106691235530190355159182404929947429582625329045581097262226424417884355175932490252242709826207574826596095943640130032201889006898227665824853999225205544144423098008314804299388845329339568453058682818998293551239196258489863218154251761342502695909318580196879851954225629656095323905070558082029302939856638665075364284225407048775947834041276913259940450223790024409688097367582038527562872951060132384658558271022789682954141451429831154013514861853439541117464960496879034243775504466233913483189217834545062179965335697065542000736717797025644766373945628379689309616473025674721681370346784049463367134977701543660752901217301518525838409453848189792702936221071207034138557954622158794654591500109794709090079401194679001327951091625347045408025401334959153165690689578415357162377812141068011073624053307023786925614431844741759505855663641852756764549632520984990495976567244035589133464184653290883029989458047536739960056260291633497865248362246028766954702209142765843326154335568018593811701011707148152782176605700936847882700400253512533414249151750998497474567298671177272465465680472081800598796783081848469176216671683813721568290846701512350655439032057717089630739127306601316421194517021992073906449836852055762425658320755851432420479015074423021079997953710106271380210290355829064490543730736481436060862278584996156442162245271413836738826891761579826428726358778488546805394212940011953634584574189039538908642955612136794692366296639335690833495234072550358888924293098548838455969365643942965740669714920527830679078003013603961514239987757003784826138337307107571097155332656762580848309313096986581585507438026427487589853957532093804460042379184016192357005567231290506572793501969941289899107404813023312240263052386745588782044185573201770085185649496633374968078972214711046787423042045778773924043916965937838083540178629377237523284048160397091880923915044488698009640902327957521813199097335603878108830720691159515501196203736026023451398751798071088699510680899324719394757309777974363317177141928633542784921181494001146490717788021105017956051861548866965535695512626692191618570072799821956949531495991828281406875415214415837027112745109264267814366156483692334646934482452265843203376013962877431218196091067463528376792513541058364712888387656567098490729819557999998176796839105281456713383791225719221627970215023165490111587611171007343794783761286428430188693501374614740697831259389389229576404145175021181273713601376601625940470158962660009187030337202637431007763759394537346226303817205295135781847853911170454339102464487694038409428313275777891075141278579298588597693272094093688969390595077654819824443245709372735610413849691906039022725142678094021036960213126514795202125398951093698420923829406335441500670471526209358360693730964795544300071658751640922646350906609995087760504329655249487349852173363410525246292118135144688143928089522821039786453090043690376148744515708216021551312890199264400198233182218832891169669572269876998792537667867725955005803033665730863738147811057908943109691342940634046687861787064260273065049333685010709558576531454821350641541388546361127340474049338934765048153538306533822476669416776086492421275309454175623588786413420157971761387870680401541620318684372070062682121109133110038244980606666964181635510979019474906233975353885309747135954534096363420375451815783073556581029362210525704169688424665417969822771301913838384795600731082796716133460722534673254599387320616875360022301523974998094024135437034123764769111167313139654131737054162486412938949280054876709613628426318250950268498523462420468301459562545872774634521561391202419181401159322366356025307408072878788032235211528893025354805378842897987642158090591302409586208427336967293245177549603571147650023730636171750905188215758476909419816878219393493588465806242325442144938660134510187120627665012879933742028368940489760648493450512342233459201005190358065554921186651894964208720243226396726068112318936806511267586954050465634265228724090402953768149579059916414988748551811866198099687685188369819914266642010846898924435551184596499835699897685310919624479063342361654994920045996704913215093627923339873522227533185640257739297355972408753825514170094316093650781785368281838888318788373697968995093128358792873636233734940255543329715243911824454731588461419208651069879558101186316370730382869269832901764295487273537064978821048972806948049168072187041735321622906873580519417223322549033180484718094207130927598582573707879093611758241755438236711374836523230889494722683167142077654142393570256228180957560687852492232309576173452847687789570377304999917881242989771080263464597831490940751120215225058532710297993809945674599240279097864236893559634881242872731128361907911008969885110799650770712167475012202206209018166088290354232286914379544338229238393781469691298344303678510042394770069788552026530752692584590275673506033399824300956231502291829319196786715148420901498216082458870728105796314035885779445720903842125247178084055025623997571853181579123752639885629367587460102559634979838318711898764507814681969976684358716759907169374245843660213882118582604770183178307567627459257069277284589123976111597551355855833932511439571750283379793964851653610739130240585075900240161630438794164286428769303021863856494558701771035228818954578064419059393547091889094664936673279374337203055602551272395139072010437632676270764804630844965205693826215720265383592977298159252717119652193746904438870505115199677078131863264897625064937017312141094011629326621582218164618860984783034509637313797805909147280837907865271839691627690663538279763546650409255307399596160386853355054448947823679563805247646231669434223588774800711971453948370671988579431878135995315237554354120731744203884937320849215312552084476006636443805641014535864229126809676983195077104443949646323788054480214372266938255649999898708541922227164736636804645811329212104260348594540117021826301834138986231082559340831487079196826195559911784728749104055553850887312410955903284516184046940771215639864473066447228448992924126590555888780246870169859651559122134197847706920391553257811814273509542899313451894073094204155856675994200441120690853914033474027889104633602181259073455089754495416141841499640926370098012016286307102189327686684074487351536576389296460263939346682674175659672262311620599007376919003924133907907879943736928805508508402589791316890589762575439490531103980330161493497825514154206450044932132401531215231418677980844655765594958595340152020902953919118001735059892892408979482631152041482044566967294900443690402680154146979502724488136520054949795283263901837317755135605646179340933362602993386232607707290270879755616400158793781394913070906862415225469072329053010292240220425960111882441345662188030840183523806124933045381598359064904619993547178591727760057383123151411239006319041083580220312486358928956364746676338544054503484810071272900519000008387295722131627723203680325768918674415218450880391100638119205383076635534243794329266841778871089036519186188981464616135908013804305299951416843457129302644409351593982148942568691836759388272182404917962127599438320898691728605669408876706024745350475706708000892884933382014703292834999877245991393761219192845555912985857718898202426775016214212867713930452148144433253004748817627929079988851811633250018351394282612003188288183191183508932295389839880953258304563786121692061906565281126553821027564332956234949258449513632128007720998749805154602604575708031752710910676728980288447755631218372734089124008161536056084067234439403283477808326937053498000794553283512914356089290995176877229273408973307871568887333893959260614607727143562703746890618943223390051297390094141776155640976629029568929158376001997501337154614499581155265408365399321660976439464446888879962657998784298020292401840052432272076255472834129258014439624738616540188312279880285717467623061814854422113938621317044564129947501385724938975835754132758117003122096364871908526980302498900008236978918723062216927381705600241881708596582989332040130122331732735068270715921377983490386670099388836601112961227762746295083824095204554777663046016201753713145192656386232056741086974460607707391353274874933432692562101596637085341736607256946102217830659658946446699129067538062768711068226362766068374316018458922217120842157737420309347614521221659604853131439649166465735105777401065771339486964632779114482520797758140974065300903601104658982224033978384585686612833331672635795875983485274626643427706739208914628314975173243361696677571490301525482609971219746411171976505201897152202052663689311474713685400343967459002601371394246449313152358866262850048158393374127519391157356119979016658310598682472145347244548256314488591261236919851815022227567484878504725483213723303944368861619767858615530560106331570053182343170371420015922580064629235794410867035497307085371137599232845461846453948332306378170666681103053405211621194110200790648187985182002147686081112820749461414280052425060922299535353619732849247328715903091915253704622126306577471084921822215346467666048391554211010415525500745442678437665832726059458386965772247404607799297134492034242255530499255643393956469657624024812905008492858752606752839078117357617178472229939632418182003324234111934349058320858306406116679291013402366352880326764984022988992986006361193001140791301127262907341029807808238092881825924013196823714402066604845299489585321224805144290312847129538819947250932887447988806585559139598582078828208010188031684626360190592269226169862255614481591214507466263955659792512743042020674617683559118731113167504032137639210450618112971011255752496029191413953515079929085644102093476711477846072456276288511281592590675147296977038202432351970432392095421524913849323644760408914390684352977048872470852955594274405045788026722905293408380276800742023680426296585884024505066463942999110136003970105812991495403977978029897835111068433394062255147554875584741174537862687934288045119178059816891808817570183355982543970458650023059307500691857926123907783216571663421874566422627114138458575678972266599322941113825906476892661240419051647808043457670560868448412537743811590095896775020486704816677653879187534453178029653491286387916264209709736208516438379860000872747618789908119028059492676241004522096468651482613000408816866338033784540901199104873882281284222800810087829358806691762700147937574698054766617659510470138775456053263758892665005980924766200591176997310998505006328082219475221946028250467627342699560599600700608357488800405538637051805046493706307677176052808075751478058137433071322108151230489350043182209114474951740521479558801850782031395577569401335419380275929410777339047848526248215098728538312689986428697088621442236094989781545345495152442556952201939512563444628870432424788806538681761291016761903441157164722737076756254823406824092047393960023031995068662992852746294983762538205341638298742568276342127011984429438086688300883109495917523800238103554882503609324717762849409284294348225599325099430905130339490961042064852826235647211370532379891958677341091373547319968248926336363215237384942681252846302825643732412979277629196950382130261560158668655227939365945587752665091478354706948488756976824316809966317670128744993367395737376266052410404666452147501409703830046076220688528202853385668046093809989006473175814526637147928964127370329302023577437842856296646690418895603754941406045990589930373555943016740207286922869769251316478455302486462023047223523732309270923853166392752007590619772024774782669192025009808064896950139612763849384801136891184617668649807066255267907005451090452142939491909066333379465361481412499756132417609959488413125499137788143473919878327604486918487508393110455218810892099340256467746690077544170962345484423795336776909240984173408208409335966233494458923996425285820652242417390924007162275488956961483906084238320274281513457141437080613297867852090780347105512290039526229868248717536765639950656484119423048060947556581914306958419615455588177309683539238039110936105986901990966556321696966730421689795412074049481707273053071480513078957701406206223087608607149640796646057353480626106546037694079655865629953998077990571512958734343141943074850578834900140287906280033961386737867507086624081541623349594281508233951738130518401031659279517336664070547696537210897024887741279252673112387349702188985800593339179953089783150153326123654854991310290994579104668383219195853038082278694178436645853529543166880005481242989924596277891366259559917774615931450080555416559379814892241798562056594627424686974722679842789125116994834536618205409856321287183905407154939658809990424816243530332371971720112138941850189033803429552268177947858338167828438204893926134547356992565011861559279688714115379082376054476371202908156261446689899364791099618022012323532394308327085744701780196532303496177126186246254845147450851489824435083157650293864920834725286755842115009888804456616672218031462370691858034283203390053833800168470242089989999494081738970004558335411109004532182646634049030509878543508037325185007337992664606421790452287422953156357815273446417047641375753057840723952694580973060352896093888732799234471181930951957103651434707911388335358993116211156509312288885445095208651374393945765160794886968465232855318951438505446490646821478065851948105805698292436354705709147223449561388319557762664145313357876880199643626401762175071765871890372134525657439358187364771085628408850893588605529091951252517715788682829677526286049689561304933822744753488155618487189030890196877691614546629268609806604514131955122607626787920926938696557897547681986560786404031813833708783336818495962572170541574098316672253408138229969055012702945399838930295897640137548634936979302982207399206798169447270741780983351801928779326478760229103206625496595609109528641301173552026539554511369063890042974577039978278688698037883960864484505936562242376031396644682035679899556212704676759316654780964060903498120641439721689969681288696943946655223541062695097199789529060246011397496469294263114819074347783470176244198857910228817760290238665829194552081236046471832720979421279818898758371339826266616292771489197268060724171034639053101348767335963254659942933542884091108416231879052387811591247915405011978055752709661689449985746680465462274665760353445736888833271844952703409420511072920423036396283468710547380964833665750506207472968205436314019300103315538979492463791197109562410598298398885210481017640062990783192498257075311562430722722804730077826868374489332290013191769673569499711553345663138258468806815184365012325313605183144118796822810012808564133864326133763491647013007852288405426480463829985490263775453910411180535886775195206004343471308918295319366621345618652069934056952486200470230212730009596834764375814238267425171864214182053347388721649758236213133981359423069817664079653377781914410809080118349668762449578517886122103948029155417343448738455037163509910907166684952513073624200499385551358378997757589516492048861057630651677370300602950958697726566336791581235915807519947775557159691042937463174833497514197303961151355169057263535563534174951069117540083908472685397560553634040755822012437322819271152071473940360891622606212421449058031787515176122743141405881753618665649294573548802108011589821693570571685206150614718323185159672901089464784286802722685713292705953004226118772712408717782099549130775447306811859511253816169135200866229173987133030161727638477665303883076160755874607602883110344093268271770215777219014535819916927462108406670617515093357884338781992801169246398210295748431436871657865632147427676037388801465647565963969815821653674422697333596133794470701242847612948652007922635567787436296501685771382227746625176662656704603555114569496591178267197812636206734909053200972828701563108249551469410115650417142294428896575873849923811459244146105553057536432096176167221941587173631176298976387560480452952734571453898776627970769674097609266097997653570496053346528498647024112973140988678546783654760867649612394284984347895107826478697957070917678576387483479798085979859871063935555046706538852687569969425305333749113238367802570368729387419050270061311460920054531746663008553206152968826688899998546300327524565548190306385750443218052605899489394423056741169343710645701159820169058237565971848710136735433604455641272354673298825369210438538462431797925274719427553442453614625203579780438430750645272850532731140307960422753579589601010586701265933683071395729396356194933844318820484711714202734560950202045619239552072439315321319675331600517045865890708279535022356058832201627009244143516121440846897562154780668147202679329854236055939105634662957861225983128443675743291329680294848986661430917271261046159948411696027018809266456414539355578989615101305591008894873821464938230474564790753462298556376297575557740423959943937870186464726762699584039214335186946157269896706319649993694989889605524213067588293992008685856557210924575550937459003546327742318943153672023644577858601799261494621133905276615827576489849211478246378238559266595672408914979614037673669672492333566321429628844423799484660769668899142418592074717599124833955784708746892473104530770993874684301729564021514212145879417456477567406484997778587313127492979187039076906508663506496775348706635457821363392438328147098355645936958422804506745942342501048870329619672921552888160634693678332296553422236823653701979382454815393907031418772209268506473589149850725833263837845354473889686024488029042682995910845609695728049114615098223218543715560950379683829790265387783792687474586527488463488546481307227069607634179686178460840942662133846795478148133029972380575209246988587408352667420951943402693626926076712951091307661768011367236045319079710861600180592596284536797165275872458804612371765904486429532180392865104210050428268695999256380422673501387905811716948030212473944018452967422500610797734683870890832403525618878366464471944422301023978548377806206540155968805564497913276092272116497673533367072967121560360179385168971538449285003986752499215261012083667025401200707121381993743132241318748767676945094192650510742318636887826502902817426266819780582428859151553263169149527305311373032667167743609213612562037077633005309153047987948351222775418183682491512080184597011861450386785912522706855654223290512410464719700987191897920854652719017058755559483321618186070852184426557467711622892399256432115928034686997435713739355775843385375098894828412192719911292621429860936719572368289475243478440391968812839961499963913686075710031270888583534024429718023876039770270638368520114964529610354060509469934016721651126909051517861807948215100152919184038617278459198896094294483040959925046440476902931804161058976732362252984993946679201139838943490287307162773898651926655557856946089357670759109069667493223210783108127770332304813617773182882757363529628885244577700545615146597218915378965493064787911509005798356377515286027282838370369878883485465744278417750971057312879157705389492112529537700628618215892619834898001715529354513244059176342608311620281310105408500727120800886412752347868765873339981887233244127918417850738732508078965296516729788946189557954296771466250166306962482904661706944599282756505939276367608081504695425057463821539288483332922701663330495066654903066126905515376355602988172170670728760252387472327921901018784238172314292762297080556814718208963169966524400375120382467965402645923971283117348194426883942089627617703314980342894674793952752697296126164064255746086085042052231857259937180133140240865455500102719514741147069557280880568361976214417744184277072745081422083990351333379449845323003009478789059427394112004873498070515865324752911517402359147723673674782339456258473301749881353669928557358188613764381646333460685637064894463678322514600990402240920376356044795975810822918965794876279756600121488932396364540648321133017075388809316655912416981170801894801880479796402318133869532137731437097139599326631942079421836225134744728868896126355310767355437971472611447508378211812487805517760843333665899409127746519144015439667861818861087185399784495064876423638382816694892855649162053253810831109946334070858342848893491966073085776044411579761032512618763965707589239160330305257931747459938289467345222147481857331358083028053611390031096931453151775633605358892867379685600484202053951812587044287867445275231541662551391840024269016321211576804397484799694751260487312844966535993042285158395637986587564742171383884289289611119573030934434947371481708887321111815373762038451707729048418575798394640239898734959147584556312178215464545873601414348549184669545457297519190960225546483909629195524752359343366357595913855501441467017500100277178154726076234265514211321137703965233276973502418771415116069486513509521735127843272087999788398251855894932903968674486423532444296763141686638323625684814104979827537609257085703974178630690024631993327819994523331605881308996138695704480941781010763050741751300529371230827260512604115395195518944561874042055430149252765879269373075342916310109383420992416464366659701830390989508689700309239211232357367781583031736350596794020390827932471442473426815005602170426253763782256694560265857156686076096795530632521870169181999918816861877236031696050753326720000037175788299402343371327276557278691799529894030533715381659837153641275177202019741613692917945477934144392047485781087932496996370913781007161536373539188759620589790601073752073842062211377938292910542065919733993766810830891251084449813895421915321625953167110629426992771027766112171869523898800221497112037872263130125150858420965092951111474120798628454167857835899882268919970872598302164373693948518502166714009933560501074250209133569779442031482776851223954645582659207469726208361416193014413820614885594602053720098579406010705464816127594024498290971943495726683326178610299249110433630982810406443484104103950669331069119314629451179507647711800197123353566831300456065240619053100282831773190330934371809293369298284964018566711779160138742023229924765204176491046287436455265326673876766004310510395847114355545832722365847286051389957658992411713484656132128323566347487884875373925767200061716011187832565280034331670288102538225018724266100863132512907513160031630902129132387673251489927204249316756188563437313833518703986216275301690643394754333732866169899539745690313338822964825673524138723441488524559827654877730236786485503968558125340283577744300596960797561547794839015222070553799885983348744279582777446387084801576809792409764531793192411341434939429161307693109177431875471645048374572747383281544059918660764673371013583446759322880232063501663199157037071970854204124937780843773168399822622333571897228983797941172242878633805358324440119193783938239045606089647161903953149879180220771557453906486168583481540109926734055340864019109767002311321962854854548046046333336459533128608808475234855565188835015117174808271625684784694187043303611241512846680215347121858465645715931784506911417411697747647868201888565404200464631594615639258912217734505990830545125355631499871387091006987004217900372895329776035041535121972757013513035068140525363203929941269588227650023287969698214350475857857038741862428960902426028370651591612824254194081813710932819731992670294840751800213022731849990574112432636181961560765846526025840243032420686678787359069000792360032862937432674553156748850371962151078466991139648204485519478050334573071608303672839802088321140401047341468228074958582016287907768630348787832522032883887874899603097279146115516180879089335467535454185886613420835624362025284282977453784301491839224065956564599015161526327002570123509485860601053515406950428216919930156714136458686649777640300273052615604652000644544353210916601751773198410222488581791462254087755757937418879449852262043748627280946983961529261113844785704561639817958041352766172718152638903638942448370736395750665697724031019220857265042762122367511861902250760250963355267575029437784532125643519174372740066617762929477007293207840881199883593370667893486568824200031838181093583786006564702895501556644766511870735552286925322708536904964540192312427876460564133101162592931035479222811836705411734131911355261991482325607203921656808237547303006928848354652881063077305988385100929025618885430188763788799006251112073416929458330055640614293483370396809130060474234186502072697348419393290485099138620412328883217439142171116938786425015870710072377381503716937699680692991818108140135981960885972817180284731365652800925711240153685149755010151578140003600299837085192897057852437962741936443364317799391018357289970567229032177170532303220339058376636312886814706133948394966213475384555709986367814533678171127136376856053518877907990438544483385859395114851524416165928190225481265467762684581329856601277920232913161324896207673622033279136512242403105399489324919199724689129032134757848901079248797641454514243485120491866871533116975946165175651489480668555033153868145759289782505787113656651203522291003925379062381373922490667416583265925834176438164418944948251644460441304703865834885828287617343947485589162346355957055118512631577484623419676030060182936484018746291319810156213283481798910680109962082478242654706638865783417975808047547766828383878885287606504413014875279103477774618220258871171505134772927552259171535622683987879516791994575279562825680333955874296103800498804747873915597183439569073589708783625333396865532792740870667512262924918391041918541831823167662997676208012627394506321359318026463596947545117123333592489520804927715682418339026413013216785766212908147218154620888026624931621757768200074062322665487625191571293850640109091894584575447129803337142165231012361029177512687267708458742012861082589584630702380009261121977410335068074085613717465353425218290688407137112223425376953408186555068054800461395155882396735097149889559681560828754225854640345351705131855687062175736131656148986206810623011119813552134873098241060376104485437078681691403748779617031578955008094644095277080128937352676167601334505680927912862348653882714249275759289867064635102119342822729199662947686678286740656047358847330339115615176741829539870336995109837257108821491112860032913061585615736173752680052106842802571986200177561180254059026366550269864905984658232790977498080331867066881152129442112167531281353266203792966614799638635649801060926066024575991027305585668128383830285579063680150463289870702200165175114336805703107134994217718737929014368768514890375052649131401893484172106899976993629106629730428981353686139091169909968605422844041626949051561788467286025732954698689245170027915470196566359562764863420427200612968388231297687420751376370740672372212296485120278418753725132752587437532780323643721259779967518808284978107220595037975411313045452112382887171265392364062470529001257118108322070116098451335490133670891900256014788954499615972436472295395670063698703873969385172311856038740404809959047618482127327207516255889736109581030183309085763895750307427392027330006351927139001761554170743037939205741674972444626058716068582138881525690468063712642514616665329070266892611264140867894417841394630410319252463209108533402341717461049328396984181511446515423799948905642289829392861827815048746188389296691125566214872686145141205266076038315123288176752902006142386105459948630538886536010629615241596855990573402985126898737631361616761324388497439330096038857479080879946225213729650613431646269718861881102126006673399565540571363749194760359852115897236063116785253887996241762166585790558158431206141390283618716951337526011411508305658301637032291701393243031224003790216110011179623129075887351704771017330428620638820494334342827931522881849867953641274591390373467689508841828669990267516065724245859456981825904563963439930975221119985412604837565157788902870878839547056388389903456515339780905842083449526330372035007462030420095023385237881187053522752150054176140879746455277199584174752599256995552720832150482885938634850441974498490950368257389837360392726221532996712729729429765186244960556076197631457586807643719777516550331049534561181459810632306974944785305825008379076540122190113184302631347883185685207713790921279712110235291586355056307821439946730904939380774507316298103217459650213661476520754839394757696195776710566558619327542132865035769572810143133666596858795973757433184911369903084383135514985200922774823829109983863687038774136092443074948365098739465949696958354982037538219113902343454269794824566006783894948229238215469472154567522031787299381591852883270831477077745274626940684514699101462159679804181017082352500698209338795029496780020214456043487259083421355990671522412111419649979847623885780412344608300122389785353017163812175385706465434889607196226324619004630765508982711280823985726045610094819337965833975009721987513844531771634047825372237482168421702299025979460489486831108240975747817484079720081003044328173627617596772641504376614081192473172750681066572656906772460610735634414969041603232229739552992669138077579748380890372263624577518680610165732180181781211778671092734752471894333666652326033783071314217112129292790473613633346036429071987745747559793584157087954380116770236508914474440663506017115327143661573325736606370357993286048336622321527196572587486680862895633213221140001897764011511329052773313013850387742806958228489036378602276385528788615325257959235621251905957290443267929281415051695470117573925846886779519614837219966207207654821320712307576311544449179071363445502755904177690573920772772152261322439172163934223320612248956624414134423929489299502031993729143662815384477243839988160511893882225560280848099387560295569359550548168904179939284694037217508935454712069254633617297276223361343662056408490495384935035098650123157367921419634898514758204773001484138961648902890191878416043780491150723299668586292976495800018021344492793885164769813626493513640929466302283618068279305697114149910287224932388873653539716183510469333756970209811216201066309808432124697151249915558243902742036792940121646164649379388327491841884621947302326412214000092240414407518474908054939075532070264872404422724026523195048309922027929693149622000011741398158803949901601890568521767787870805160723599067834161786039033682237174419972395568845851443194717274470753540944841571201477587809119158718167543907940556079828453760503870396863520766935035885392109779971611698672421148401070229093315670311686370193177539671879157606675595956265439229181082968800080385850311461190297763128182775730277232799816555336694488207728574975316300339251031991174647835096946919890999380440693888253697901570601994763005676986098842324116681872307662231618850628157048965535236980589240803972139647797018959827718798265276188401487522237348065532965077256825592990765600386075336530097981353717247533352298365816551222538089881967519244501805802350368660577201244850961441044785140907378427977076192739331932711312829738196727686195602934407161436197258702476514447494374887524350656497577049692033810842531639608148551321165458034868384384609294795287445964895438863766333178650996091304717037137563632345637004976800502611502857421673024422914600409529367695243650464423438389199875977408224196617363729859580124844005554170166114342344609786932373319802258869440632086239246991159440295634495116465723122956829998639445223956342382962854856234771095590847108947591869798973688213263443612424709163214051969362661727491224447220233012688046999796386325620737545791401796758663065039077440431846245209062575617733935511270295293345611210224241700168919495327655674933271926994229413037306591860416129642395539496930006036802487273595356651552715513364514589545119554844511860131901341175910048987952947623698480603933812939305073773284251772116970931376778189573307997911007406761438864304861688740311924808617831018348976123901105667903687296998412822738023799062531960463403179422445767808613749128688076511828694379629750124154902854389610387035444073413393195287633536135314679957802472992770577691070397508531073831823277092835928521582229242432079679795727462010399632249725617183039571292792651441853202079325786110692021424722913964884016431448728395860984570139250314038338177958085963030594242741444187952026925202498390507428923617994084715120000692824042805312345784555018521996791498525803332722869341757096640583759322391114518681661540242724834895808119300159764586445100511567123156545097521219080183784963918515942918915114430438446612191470610900606217660838390540803588908410950822998223740311862522088589400725670736053637118652011354618464797600464147442216295934332247278419646920620057681087357138114560787720098478188957821543984340889606961018240153903139432685193926220397735991321088692933650640491788587918035284937218376275513375905279835148291109961555335826355116118342860029631333059048218602178072512371814009164686448331587678571774609446726287733508341773257237822006499325211565013807121371394070059210396354363886093892238136310231524661425826740918125593282080112942524802909464864305562866328138570100384380369228484747724154230051221802723212788484098474084017811467781799074724437650627243473055268450514036722194118153070690897994488122035934495094868907036737922344093308585434816193059834721294485376639830606961706139724051244986744042357926345308872618120296923668501731222516945493342105515064259740748332020421377139975530079795840905800376085021486234587837540233275008139222829662436688748882851615230985973472234202923537281922989972788612259636356241526160975847601438056671372301562968998451671762970825417142500933797032780116303283738469826642070303374904690244432790732493113110991569810243059827625737257438832730559047042250119810288445037401706787203430524796867610995569983809723377322532058979868092340086985721086829167616556442042153768711388508330379362460084514897964606294358497403638604152025154886131047307967287871768257763409656069372124508535314719598656023148851356348141473236554749560228762369607375094527761758087475942846466084411208608088871481334766966301673492891789506151268390869767886069142244413152409752240974066511453886991625539207774495256718436035238122502495118217424029416524329989190574849288792629632018967509581795924388924924386320349263113846586200745809254003831472604807677824633406467800325992210156114885362425988257124112134705671755160487872627624921437784299882226379630409886664344273643523131328894756971080507796530932365483177687932167171529844902614832584225428408709069964987953743201708839378703025632457013427030451560417491379993042486595994109450459779745900806387934672511922831620549953440957280065119502468540274311294409659671871061682319990311050000626536762743839634739844167399475409207113992699350699097618212781204802206463759254486606170538577638502381756037712660035408402201603805162825122617318073265425613970661001070014315287293641449245150728890357656713708789072368783340650972465870525692524883688169952130763661357886258132220455205003620765281491617962057443547474604257071895340422472862079507100964481315049963927276046789278294158945339723495166487771463601796035033696102624557572132523703241551558388042818670152070392979707867758918070553831876650093747544219337821718449744194238529997795363881598450299013459900048730250486171342302794489590156005403083531197553399280691669913049129508288186261720543284510538673340508922554741672183870116366619092611041065647222054238010200045028884575742060417963161735210642784507313195136305735018263410099688759564825515001889802625197419040447759938697297901140367023452044366411602772155343184918143679225844394180265956993515226397631411508000506101613165435870154864606536549842648649904356751165006597646315836094488364579740791395756113456627508065958174214153920762965772884520531912212734837805216887243158852615269803500776506174074974179481506019983145768349009118212031827109687422151551858483232929684447650203112524103785856452137943661520448694363284929975294388336276936035301491306120359870335649672059553448229775190857736862197891371355852974455831117825811201643961466418712725361841099914231357553835361034595730049917272708167739858599572478574752165914675884996470348626053502343862964627004631837900854587430227766614364064498493298147607272347684680030842423331146981542250889534575951241655829444711010777018023900653651641393705341208270823761864198287119157642248574749797539962798340284765249288419875723490055170844401460467301390995553811643321956885274423888695808757489683742179524863014418969108978371158524376018477030339511191663286159527069300365833352921408564631251560643009249062120103378760157398267334195101630626779480175175776387582938654249610526972480092250857942825481130201233370214303862750821027072843021450838947965878643216071238074397716458960957177901741769375916559200433658069858906734264304251934634693337039463515748661174829824047332295050022198229827896480349526624175899178474394398271192618253120416715326470085515152837422048994837018027631250443820463829671104190241937234490672909573997634985895834526886476194678804228213953989311786152230977544074715916467210511065443369190062057192471079854939531099630041613958445791341919061848419236163938405091741693363140402884242932977036444837617084944212435831965044122359065706529729304921636651038725380484510873192179804501116108211441106165543851431916591673957418112412825266359387303985216645401685674362968710534412230600541594177467270092735787668816455652596923977668130204359493278710156613203512495384011868134733650495176022277336917703775753075104511574220711261152034895995119209297997684251298613730799468010125823064733710008555999195526967418630160892870723324868136463115578884659806086759989792739581889958696028263064762345848843042274943505960750293352337351575415036282490660157095882351380744162810924419068908945694330117784344156967820451136427515418519446246001162782540663167272951790393377747225697531415482993079103779418456347722918597297105505763209682376133497483640150317098214531344371673582815792346248496761490755416995521763854550657290051664587141910953214848001643209426312408722174182648932128909851454901407683655098556747014729183674399614986973527991735817179399352711233807031139170420145932416552257220779208334719794407854298618155022861101019511726858160252558770422654672821902561042877231274572453687878754955977590172448048211004345244155084052141776569024015017485523924918645974664671857304833133624447313100352789373244824329408381519016954945141552897392820763994069939518411197067457187818236580805957375687354523686017222745519934918635565614911880785301370976138718898233457092325571590618995195907980268595484234100505266161637287321205685301603404469991620654741102571544636410571232439532831028303651528780173256845933214390681042911048745247907272147008397771318254460249760341897578951264716290033535812220790260406398188044434865718699727350559319496348369533639390673690231427250302280469079252958040218534566189007544043778594676179605517816284791920509994341025599317537700572322518223186382757407467437662993966284874188946710333607787852550993484657025011105675671708120343653812536785645967473889236811381532390888424218618973110439199926272304446235735141422833381051437234994479417845166669956472363624903597168029267852461421314550456195955708778453185409155862963507556326557855066356218202365648882794875990113445173942055888623194685721656968202967900424091643027233333187220057766967761361501767475977772253785832725784828506955002046655533338133496260117099907476632862095288993718757014748349772186714577306626020532519002814075260014133738073466707069001894979716923610880022250977810965827194457781489039065320556023731815768647550949372874683516411592240988516764246499838085234620547784468823327456658296052505711686917479656300704297750014832233624418190943875597763462119664041629219535726619461258481729756903302050710669681024045760820768879244861456110355654992955094479100961611552371691178496023652242917494309886169002760720207262558192749207119684704416688203393684888905025787336652799177477678006542119201185687672050009261092533497824424285470505214437542095309041225725676168361524595111314526394121726103980439294757917131095895489548827781701020217904056234355559298723920674448037693447797067515469741083417094133808637863558268336067810542456350189501638635567973959221511063825674961268067190714063769838008973628158437048499473964108618313482707712408281292086791923021072352624526053832835872681704794564822394617067254963359837580647654774776642492725645174107085783360889771285700741289161925898833541750856359465590481980309084341561240300161068235031142364875698412633278773378575935271309329723336358137001631893712656623667561019217311919181295774761640061847743603892483632271908001014733572490804747563227039200026016242577303901660197243889005534424712774185554787048954345164611058147145804650274649651075662198158065301348619491289049651789256142443018677265155778238380818956583362857324953695107057133966499770823579721101542920376493403672689025089344592751800032566511428581897236777597307653915719741713579966328581633792985681804157848573988287960369059690975139169082801794126317589008987534178575687658759326446322725920853086929096793359074418321594062914305115505766253329132118614467664034246732457355187002211295620661707966135966710694630575109534756380266619463178816817420254004804980270924777239395335447966871278643456997370079948747231757289397283872500674455078161497271558265378329533494470265235015558254374765224098727069610544971404771860723334944223514311447158624535079592999911059673980521429226474097101465122117389520608490696059987533544118715068778535854730284361333155414449207477376090542809136695974014622741877684394753504125456720681369808338634009759033661447629546320976423110460860830812541742301078470431942692339207377685880204544087230332781138463627814350569019479415862113707591826310323612120486023321968239612947440370472408259049065926816229259842586517347972066762573212063720812202964736603291108893164412436763212421247836010879925798656551446690959203663891307894303306549250678405732331605404750729860192245174815241164094508847266602337337378701696990384604383055261877469751649816675513336641391937547508680598818258829488717775948106026576567021006452954847146693376280738242509328502960085190593243873577494775885213713960874654230880555112882602081952704466863937574478558366798660892169780400927696120536584485687409488652258627923886843683904623838093078749987195208960522015622631019911810764365566877656030473189086310330721027395030119052884762324336109401018780946378664863503447188745587542290719798599933715956540456608461666362349102400287250241453726629513752176942508982253453465861340569452994061918979157022140778165586561109953942458569355094089995310487043972055391148513838288717218134227877515286335684947968158552598298203559306827258401516348997909804578255849101783410303821291852516465323950272158962792324769939928795341783820787162834774353760916645222165509615058098138993639567545532599435389242532651798318615744245140718751908669434784985361662550918144531766690488817955907468351180837611738104166994681926337880215614275569132027471659756775579603871251410803983230955256516025364658601460902663230325304877138608206510180955661189238811055770897045865210071231049643261243100825300883257788325041487406115192439430612406196857579922874001660774998166109007394829836503139760687905238725996532960362681801983433952024318282313629993867820429254340553106684680044777279266291896118335325532491874132889604710456201112592439637964497918563171555376809339555916500731136815552710366985768595887809957622105713621045430323387028285174479543342195045815712663195335684942583977363786149771228675380893396099518589657016646727455775887975455871881410798715246631342335532550422245841929839658996155622716528525013792123846312708594657557886022753545771020699939949428529107240397962940976891201815067612503869159525670800288632187113211197301549151902772818372293854223043496322041571246295136845134563764945243993957013750859856285907522598014376408577674286016633836385213095052037079550243664267034414696724632964154895878921094684728391231941439153824035409770626986347946732684378131203771088364646727544375751073499410355104248808937600244742210593012591485794664853863614155918361597647443991651313819976856445014491526157596823615955040894789642575850970641354549252280425853836261545194145415513998578489076674680909343892442218079547760744743383283803607488682674157423289283464116799899507790872734505782887217985380015016577750845656600503666869652682619293232024865149170313835005177829691956357996605311721801628142996904762158667064577354530876085728233968007744948845032855309882942007080770312417056042473267783630860844097223947317793562004076886009157129858643906932227253683161137949988886557760840188753396496894193725329872037120560211768289310846541089180705961494137599683090521288610665634290024949202908621492348592005988751627934883466918419236845616340986455840271112175267643363855707387003329656028387300977869631329710879818627313409235216212629847414409014478729013804251221661964577242732435535476718694839163418628693132188718383357775924337904264150622226902727947031734632756507828398527932475431898692408833853462085812529094993822826129102682469974141997425406734962274189497190248920389178926388444683297714004656294152793445695068111623859296841620949241492763740423543147058385410360358555055205376724207061101966488264881162813147343575970192581216847812219760933442230103791381255091924851519290527074400188240325282537259773214636082812886732379286652076671316661198258807285019498234408315614438116045642795750867062957933761577585178125199255801845105116278242049864503383125570706677405866121136494794178763742854054698703627804542054324170699340806916119327987262712293540218913915902249856502421880589718902327920178623530257570472143265208137907110923552379722319531186338170557942348277639458889474950923017220476251320623868459024510715607362736274498802899685343421673639510007960845029564913191982240583098997905311426292151195937216742651577097586472488375108729128667973368778714204820552359344740629890956785194501431177980090852262517066112930796441879542738683834122888862390935802257548171374707542062144255764279703617075625603288357834369621150861998500825383872916874069417226689545160529073010982274534722846975786232565710274070851592376658199393598934089574860267072167234254551912930861532744178791934258648368458665693274905682000475199410722407663583956949413500732023231340554247554377611048422895803661185914875325421677932601907906901268954805334149442106446139228255695223716759137539963120722188953321201899365808632205973027317434374671494638079928754158484272267374740754838854272315990059495028751710850456043293521665824517891455524697813404153955808154709796283423231546586483441805923277473823489614159027512431368100425014308141838099620748209088985229618520553977362560341557432973515496805603956800630136473545355254694947251848233626657120977614551913189706267249700801934625690772395508741382284053223767225913820952529611653621798365555885826764410972786617454966117837440737625322407787091104147798609639584004563995450508774108392272253288770266259065244235717569085198879406706725405889313185681979478463956084327407632163821633527795466680933529050907788485362103890599773250750758442894134178963418653027170066373481465578110610293635911251692265275291180714838678792916255526091841650233464097982055394100119873596670943447186806477450474162015601033289974082485610156700388669979851472538019145875932228946658382142835729870083651479851897370084913970415829901624872770730086619887205120502673986085339251016608437339200557069796473961289534095878217716964897080645236678869481348994097310113653483985168996672195356584500817803063660433010809101160056303518523074262052463034266475876682704427202883514681503751684217066886578167370169322069960115495257364807555089062926218154120375479588953682020424120273015540021001063072027065613846644156449514495609859713073374064920315985770760456154089034559228364376701867790405059681626835111455432091416498713511151247962358533961545348221078944080193452008342031203459973310360624509989030976580107675279340107730360367011188451017642366763787650591767729936072169304157067184159937988039954291322941634897555460046285589755776720277465090010432178732784268311925471613107407628146691810094862978846260425274799572817516797702964414415063946267031942078175054917764440180536793602703486301222686786733503893001238725684358361499932110392357625991759802944175520031838778424358221719323814757432525376306022851366043535201540776961057641828643716321251820368895274185702162100390219046728923128144878887417845118983856082879700858348004761923991491222992267763269551917609808956352508589162748844531553064354088802001683836583606212397974338589262770277583315695783185519142602906679691550982793479005760654196599227073652887504947575043426565257866763979906999278491469594670549703647977685047708424493354636320226225258680457378464388913797631222281843635497064848430088613267177171663125607283983918592007917312751348903211111255715644066511517230543000785299855789571720456080817985262991633654480088768771466390629368592096444863278393777313635278602234568929174010892263510965290108769038990501927553414719327771247791312159929913210788486911435780933919965104068919084613064599430731780897999545041072227814825404513679155666578095585088285245182054872864068943342076251240028914728017188315035136203313473193713588573081832627828921388234466743001185907230737457621667051258734124881774618065562201319042087884216385477384990414072799700380853503852095671484904697649564418101854077589030120550112115326988328196806447756578330686194671572243111086649745129205059353724202828974297755978823444555645035275602254072990273274994379826462803362677977029123159394378732778234142794697199767744171318952860715804429200919181771064520123476145569582799014540579835497544324702918121204058455315129828450360707133134217392476550970793008898608319596428250422984812131753848051785016231816196793651775236247517078938249794299944425660817567541346559933425269855228086993773203427158890914141967164641234350445401434517922042192350075346223457593669468374287801945459907246320170379332838828866243959435944984368451831194407748532050977754475838121658726203579091824126132676414051824908889168060579390099205366827263217571099574509215860594375953482439230084091833241362798698944534175693633927812790319266479080442463525860386662626941343393474465892995406967567087655910854534286148620281882539336128061910537490555692633957944411812882751611692935014372285692818133945344694560885108683879912186069926338241875331168392361433833805503679893530026736516345213111973241441247739824561539386733306238596122454479135266471111894765676434322660265815079601978785156733028480049219386653336823551903271545995364544841894535893349433049146645086697350014501135566082404853736210805944673079903486302564088292503616513520226603516646362175104757454178582388667317081539467603227332115989547071873844557625284779132874627615579560768181283519224591423131340964838817679564672888334360297344014735495131455268752346499293638743194604384795783086267123636359584374231985132893453511855125493459631608586438896942571666098016493558698433955336898798858209186855920154986440660440673250424577654009681568209577598002764050578630422050998412153805993307048182297519000354329166252565343667907531756786294047244590691275759198940246592932237358815039309071204010836723369226431509241915947152263321942295160650981518103416704660093182998802418412900032853505904144471762617349748189402493233832805268512468914177313528695038689670678914468917829256861111843839687498579427747835804208488702012049405438354016108870697208548012615866190622214686546918080492042730828698531781057926182678400229402823428704681464628292061951405087557508852791184914005924618027824011857655135263709761662623115984136060168670766348454445367550276509832522535446877946346066637159240482268915370439615590156254010604664711310610787861709571312782619530805094668363527164254673538049271730191983196184469721931637836145525687252998647520433741042374896651194849732257690857350845973314904537214917053517857604561328861533177930517694368129982718609231774934936678034158467569053366657236204902585536698849003412708120067728630387514561116266426184042958680774886928238578029477505779433420278816448170292729410545649592839335812729633814527400286941533177480276359018232153193766331769605797602643620274283428427069537849985106498666142002988374724652319386247098587093540652096498828941328843988249278048250837954249243927866260563542437772363326078870258880433731600334544681850379832833147016221835268439765938546003045531261127028441180321478636783174202940974171025388881857039990773837856883599121198159606292723916135183271739286181418894335658317443327626880093483844803723269306036656097644282509710688054528276179864462642752704843485516768450085608190306907205906158481331872660367038991727281294107087656794617186605866871569684655600664349385961700431590990844143265839377323609440602354872835808384720087507870593389208990148542036609588626424757971973466824916393877282631909546847355952962949777135759441325808297242791164440982626861962946468929100726088597193861305920473445086097173261606468421229382552729822930029670408590406915677711997975173603709561055449739939509663011505120148628896858315857678342282211019131502464709061756154588649185845848943333327926788682394719499517199677076736005742090568329089414965102740248943845835427323201018728932357667366368515117609385293353906524693626163482131384864285185436919111342502324139338475376875188776742342711990985957304225469068784102480673672107533745025144412984875018707949124490494375154608921057229539017453258812057324175098235529317928773555646240452837600343795773989605182736119950491585899953824857982632075673876373795909035990997659317387310473178423117452695176323538808120035706747924941216657707741595048114739754698920383867972075741056449544972530081057286256568277033354328800949630115931343001364970010961853139598924006874678434690637661943664216055139175698336537726367996649885190370550827010702651992806156121579416562274803265361637407931527814967850461581070969226023826955715707346695610385843739193820149699110632412217106344846325454347600311960410417712726792429200569447769361719276936727640604794550541083666565053948025972323864047798806147790091490649174702296791408118612194301218050087095302055931537289309385455045407360555495927739255922120339391071726688166651216078411904224204992501254796850574483735444107953296430712492094678722552440828833366761352029469453044472641893658775918302580077035511100565568090768147288733750982189773079525948874125565076247806318602926686781980786803141383258133222598759118186976580232743354107473452067123601909427422716778016715100289549494097636940302661866164717482264461949641430999944127814997914332654535855979457905961226557914946844923199519331299140673333064924095476240192642807168649931696863554410701304411551569508775958085745379962030711993208030865797914964241351852945212669643182441291729070914919468738186620186869881959125612039797394449233572777841634611118163714008652044388879046953806467096468738275591100807454230636140823010054855204429120645324496935238250120149309532029923667434940563776064328344548773167901007770680936798331998353947684758596041548714281699983090156304285553293820069046767911713392778923753870780795528422552286662842441240532712586296604039867719252058790967261745650151412510458085638330159817654953942641306401235784713713395541154332963299738150816704003072405472545422237142944092558431492304538101914675226513764427347760421890189971484011084191685497856824122543019997171595127056883064359205137818786117306248839172219021275437552360700004441304778733762595572000916058750728922395909907924610704019271935504020212230523457617267890505053593921198788482348466220339483088127006039482453562714575119672103790692346122912381962803294041361245587514330589648560266702563870559702028066783504261594882454577915979166474281379278789279399264856869722688313344011600291232324207378029276419837220086369079049437830852357189030233478471840549236837993380270466910792950470765699245354241169822987398952640946760571054830432743808017573235078084654248805886533311699221058529494046032695089745011578659034697153923489607848511128643343305856774102180176047023929977041694806242635356977964957639359037182645472249868998789802031700933944556260745665434466942905391988613537953085872465566983913140315211803880660569587035926822682094838398015993942799802752343735535471565704179156034330515619132397861407851410772868838962510399140377281750702470586702607297999243002404405817078501195911371133108675269364849040386957653782327088908612779630270628652706153355455302098474932270538016932287468716396301104978841781522533231693190788203996870216967515487482137882028573827123669126613859909482875395022785491685881355130009371580246830946878752835746135340216845493022758265971339996962145284831903926689034870546810270501339755249491146027943047033751175753443122964745061451411185137372695601353062924555111286655629592544393768744816255938821383438144289839169352833310190660903819849515596772114624548177157430077623262818743254326925166355703794527720320122781997539030639610200770954272451758125678717704355289840873505858405316663423383138892390057996242642287227558484455276451120953719406974775118922048547072454175359053498879250420730292904019929102652928542496202718562329530945876053766230762401401455768146843348664901269566180633070282353848055803727619972664150255880633942951367140170796720448299268591715623096804393863233744170083891988148076792934295385884114110819198616968589696093385548211387854788562703946790385819942660387775569210623428944303439246868475148963738064806475483855897789227897867911554810070176830816552297103052466632921775929947412046628710031250845598541255549540025715943393376635771755775765016583242181350987664465726419302582595695803717818281415190633162242124134155825309302091968275019007003800988752426005300981015151676698216466059304471314624419831949361691878506853531876867514054313955469684976464928361585155526898828680943976691393395000178733658188055524582190586214337227382376630166883726770982781111113396771193750381214939501535840513030273506711703612120980818418970767018472103869886778396798069520802952372131537822175249569188567743902583671891684803649703818532080489940653723820564130079308709329667030532367452885944649073253422553776892204767686963934476498519773542124131526148285175551092860281393838373523531232103709986872626474931850243154521995757500328792425913515136082499900876204834295879595601217485240038903552011061318705269438262175120349914527671329478013185529493278415967342872706945012056064477800978232585672469601500728748720784675717330570471371940062186931240024453821238694417357312091883079932990564818876568338114696774634497694000639015569993509291550861485463968274445948114889080440416233596022716627442823689465465759421614695178505422614458503576265773726465638650694932970080354662171178534444175557882476216350549776351795257855639970273527284475375166856806727705980485308654316067846831862731782433867218677503435494017778390291957079813710085308868038817754527225477767342249419695392974301225607948133110599841093905929325669795886560081198206627452529467782585232522948392934460343244729354716285884427639080912525675255755860029553508527855576646179159529253709825971050522966876113007788566334817672493073369379861835029684713578352604443390728941004682540439940927582001579906456390489601556519477441630092788751252736246347857979902403250338853486436768608520307853287890744956964031519393397081695971141038172586517242265821908528770004613200753349494963607066837776675431542270053739919538236541070579248219458304928950304561117630760107594477282939925013026639249850717193204457305440330025607926331265322668591928400891978313970329522403863500280501483611038786558979639483197681449110678803917394325332350520199949006204300751120093894602248031885289016339568905963607886518061841678074305398693786130698323319957717599751561423926122016623245054244500498442155432058340825520160400850880050757020805669330905419473951107051125576219369191474984025401217389536964480518153973167271047874168793280913871953681695530887931926644566999279174393215853892150423234212941706836012085854748516394029297526267135170149401164439294813795327830795871833138242623124143735032484047930880417692044566548738474579453545707386986435628449780990658644836877855697786685371223672999663651901412853111991252640440747949135878156017890743975608170888828560191556580172170652419942674777097268362797217163815913352391505349755837248278969312141891467907028705988464058572433151256920254551154961102947381530230095306787587742700409093003761457431267763187424140211510262280142105679274525225316891276019438138534177219232744873424059769746575019281519801241364400100191234272477356555720861674623263788572804938455165471276714459533368453092637710776550735987792186278556121388603311636821152590790670952774189741510817658179120157613966642769247560670619839383851871386496591743392577758688008304035250255698462166824868918331012437231333794546685173352437329933715017919329952396438883100788514908327556936886841653735599942967453746506157056640660124067433003850850621287631861617615767486509031167689777049473051455393801160629150217080474592797823010338348047914767792501888514704952799334223004852125011259754393198895326083265138573234335165816643669103556349799133695177695472342849178019313733226862774185645085581003387636559091030554880861915840091845413166227699917362616006126574569830892914252353506959416355981003914083881928114808846040864125470364054737418495303469381268526010070575099017402573004970489238955232372147669254616863737624992114652594933998121531530612653095715941307855605263463976036307621391138396769556934758023619052055195118038731097265251308087141029043469992189000198369716958350897905896097873313892566655493771797040938230999849256142973066076333643435519124840440268361986687324726990337555153482729765993452115550755369094442898150849294085787097374298116742483125522971688886494629776124856239730737251649071692428395634573254297692010466408934989706275998005043756068031318443411211274079677815121584318904408026063889541693559976685803989074615404024533619199245815195361927104018363119703353660441875339461244600613223265154027531404785486028174804613670874956098909666821803453328152657590171217404931311976555586828288847653813182182320883896786475789021686167371895417648927917843355623508772152234456939808812118591176163229045898069037377207622226890133011621559224350337738420212997639707611883901996432132861906149381148995895886808229206388485697136475495459948883889238303175243214007473232166235504510097834513267076604859409378941889530088970596429727307957404385797103891496881953690434384772611300328590158618917427073529521068226542937092117983203928661229337457046246392785916330079625246298030430750432781860277413038196930367840408784148641957738836611405889339386044857231318897595834237755204476858122644492932024898772194031619348376450761872153181970245939378962050229615563647148114197658351692621628456215581389808486189974308229433320030444350678970021154314587898240685491582350689764538225109947692975144736709622188156581583922902775375224753638621753632322341711141344104751857437792449665263375257096002607013138568423864457536238448323106895873354693475451178157651590309497003216041854265384349612949303309254440334593909218096165793548787946731950728505603806301532168733192866992513216433715713982137245218636551017923267050667372438995304002041411323629567802261166094443154019296622374433039814364072966655766848805411985976892284540642581900872771432343308798723123797210295390859317146934186600325048230077038278354405655955145808269418837790758215294051680484826091249048099443818221447728410846839924337680303303164539845863420883363042218913959650621452267575436453297419138936432592236788808942250857752743242651678774795962012585911067356105311238371981625817284530910727327597634478777985853252115576998674890257729048270719902907830559982024741791590246420734223801530829635854384987286113737013315318993604848797524659557898701113844023505211416522714896351803220338860169323372844389137117416633240577681036093756368741528231066564562056099172078586454618159785510318785818164125509039561688915716159259479123115719267826621772757022626788185944566331929396031193035172100156002724321836553803379884806657926615158692717902041613798794376840647675369121496268865227008446817570795922639505306565587392815803305017738060918441735857344508331838377664082466236208129221209359530136907116417640440880169645001189175287742799134863652844875198795211751836689019549661894517476881323294330927710332864673219970961554333780614265595082953065272262825023005526723909648732244040001222585455115798477710995489919130576460274115920464054788453349863584223466808975781958933284601944533551574276436033531733117179926429533305339965255208345165644841232632668042949917533548726023157070690852507961489421499687338206430395585532861625079080261417075940298587887922043354405039169991233437357865533969420858773784145039020985251976886133862635279738487828063956101934856561011380177090180175623384775208475466662863677135561854456740854090854621213302518144151272084086191243069868329526645574468068723276184676271152175092770200219439497055118505586965357457549275557075613824104612093472883704685236718049154363582766815690977196014580228649317944398139164741751947198917306726067190421602265405086545845034986417011051888115165694934164341167414017168678064233282807896090645860336739810771223958056885075136049150604398928982768870036857345188976411867502246675709876489417628925774291347420567607854614373109719772230213209593599335839980275616925795995748618788507077637176283865117762598858692548464425827722656831650424645706544408268754466801381589066087963441169271614460111477921737694036105083162808040257695268695628633515859191728255053931749265197387051834886398485196811405447954065146967701181390428937194883655007189729257335566563931465929477954684661958037496697313682734436107203378766301401382337030182114181640232343576984847637656253109456938217722255140102736163210400031954611996609784243424227320386540537010772200286676964407483305022938627085456644112934171639439506565517895281319334744873776236382951605866657046471638805379010606760064034522862670965832773272960054835219061748960455456671936018929256610901287735110028880151739943258403053263787994534884345530140805924816327157987826867846753278189020755356699011942200040451948999135282750163047446523028041687507063257991832272562938069527398919433846504394202084162773986605370033263398654359401863856603546609269245311891507799328757242922393817790922580546719304815570498651749571648252774214835599529869468258890688491600824458612363324363356585224206958749359023327023102355522132161371971069896837066846733035263731840476739831912324580483765726938488434515576819725850474702534479839620013539251254913687625568447133056014584847196965571620566382325860442708676385468663600709186231127651449470457159305461999053755401923161736863316344858017456340555140449127202392333460573058376860403620849310915030277235383482315446443923749427677177143401547584359591663401510066683588171754316497508783194778694820117431976769187693976143981534438941334845856808069371065073801523139001716645805483835095766526298420639361498869607988155388025280369802883876807364902480406896019440408885892953608838024324656657825124549595816176729611922281730113360416966784273174456414318578324802030720131844976063835469536634743543324426161842705231065757649066380088525034298298823535839474299334357197500879055958399979476821984715571095185191475735092239131045061413362978686369395564323280126034013061795129787517880624128045431591626556731439568402069928092795866207971361097805163741851501467790639756864479799603173909677353407667709848552068105075216682346645877287878002215821159469119031087861284961228546631901065292693981620852057361074877301115014277969567258811821511566159575322920489378965828910038079447491209806311525171713525773842020182405299118125613692598696334741155075537694965461273269726573578225170958128989536425455086033539184927295938215087218401827886766123994131911055785721696295212673414458085688255486026544318065011655276901553245695176516117147578058663252540405076269265286674454927578657048458650095456037085536206745254285804888286726392893475810756802466412718407414232701917841192289461342304671353405448332134269895891377707811109806528031859250640308216342892924481508033556036691933935138491109329175236084130323977855262433227415185772041434167584951451283385916956088991467095436325018259018064280818489544170619814033935083089656305973764841939220321356926604514746348648975782536702015879686715331725440918719888669662496903059225837877261534439992112003461014596910665500233897358097095442532678462018555073393231884490211620882789040991342679833459821605710541876133936938831043910089498777124757776094723871580186433737633018613240954063451678352063077960313133929260957957557988136666931003658951568043591035598800069211479680516578579493104893181668752339368020583429295112942380541042790799343952734879931574982275077621504307479306101026765276249423590186756033212057393843128968667312207307491249510944297033239285865594490620610237155043424830181395964481811072993634235642450932686445149220006979562541584701473029620644175613677860524758519571081990059106110996953142626955492847431731243310652371696852284437727598946861085589532834440972449935667017364145048283508677342006072886340989987538684301708091555544068946186370630652801489841476456532230406718871708617926946445341201140665240755860355107234902979794405486019661884934559777304175391496933177121059601585639331698388016207200235978289501227990945516292906753733997442169528561998097780020455461716707891657199058076769318905974479890266931685618233288008596773846022315811030218527489667210762338781289714474685334773235622125171319869398171933787597285154978353327955200354139350429691289979878986126618368073133030346890978146372196413497931309196265364315441579087684645976962670847344290871432206255737054376294000146333173479520509975481639613656208496476015444405488038216932224899695436717276401846762822632959626640762774096177782255080863758818929568909800596817559518999711607866631876928903362903620941064677066346463529176613962707918601818369564282013019023095707078735168586626721682367818314696207730067092894348519650418309985250442752908061819863115477403275839455074235460347860190995954389292663001200664055858779675897005371736596997836241788364049824768368216005209586671579049259364875453660325455961286409635963983250680870450924210000078616463924210716185570802015433424446297701065854551561498866378003624037261343872343057139487101269735211027615935378643897407282104985047079755352855856873296805188595010851681558859257282701884633341222351073472057546909572767602264113668026073675319281867369816285028329242154031079003073102380323187149039845055349312153369246895838299316060228892736280883679348859804786345103026144246912162674540828932953023074328283814764564301344859596661318657584449949994750903910133200977634656523595103168111227005290184728617996967313678663594703162896049715670709013471054853128315999437532851668527451274490626278378827921703362555115444791826206304324182037572716951642289844916470167227673757934492008733136133727903008632433189947704434989089330124129038309106161857648969017573747023499648607954193572223010618793377881560007134324344371123619810173243403194924876866982378599270351990819874964278150772055682758494020500562457135083525754020006093215069111238556126512186303653485951331653295682750866517993551890191874007240169359785351683344103190467655504771727081685842068391475624876766536449107471298113084366278534543702271299223309118363814421209769071160961656395999339369502283552728232532993526403692379296099574555840119416120997188521693468563140678496700993938290344033374796635193782066448141535906184697107199285911533904344083873426666421433314997192611560484647089549353037797024606445034577838344071745052534455249686019951791352941319377205217865549120530461174881124684879430958224291745230178956087960362589890293459466170989051286156500526961394696282963839243875128401077467189794567940492368398217656282330793096816518142145978286011270138814791716042093756305683377484477972079064616867874033312057673236606658843667628910969307292091729863368456685337396467451111763529362358153318539473376264330524144755678373856191057088514428767967354744811934628908663964004094108750806614448528388049338285420548573353863219863122669187423403101360186860538142696312757289815433810569965933785507412469755969330519735141738218442543233254772562818850625297744437076366298524924313433094630597684634238131090050904012858399269635383163889498052005202816049130785208096859758827539524477378379001475088051983580605855519624568448045844351574908888048090104721354813512850230855940201256734959213591075440207248803438119408101269736227068151519996722485820393455794879740084008634139396417218344322093080924827883366377867330213628581364728046234144243906451030490975291836626015171817109933191901619705009775770577818755379012200225963288502080567611325262460080342322325159334259649959012021022831424693807668061671579787795075088555480629490861300118642546568668894953412881781061863835983347774285430846913094528977100730276149258759869951045628125652929769522973057995804282289076957114841679000990097495288859799536387566973258919828779643842610877894065055461709661844657248750430237827808222666816162120018470685281376693991465382956059024306746266930470264886822282920094390564577227523898832615529833145314581341807477216529822755596081975070711353634526072140669282966872922683701678963904008993834814677725272294977874909835893671227413116089265663089540446138513176332577512152100578506729753851093517434514926890618702490369877797422699581834925620384115484730717306982435629116408691639514445815091246215860096845785990189751239075610265845108191644213710865873352280522785648278387794582967331189353235652642655434422086677463701890482091157286620929624333888931647415747448397247457620509674661473837811468509969280924469233606217645385279827979758745627783737562582150820889657433324634833844469389942839290799897599767273754584816432532639319612172111616535094972496367134436804432205708190222048791672875879997737728997237573471542728106606065603275155021194059811056717906526884429036875674905889276466850382855837104496410210412708020514438648670335755975767629676969251138841451593057907502193787879496244358691885289327535012439358047784322746955305211451402534556661026363624530851417885424285241489288024962935047790386195758015317881869111794326618572138334182120869117935581101720840848430815330191499991598839871100281703175128680906871344475841818331824857047678677844842576916991200128806245277106140333850961598087862095488180919377861280037858779157566500015815955132326694920216012158237903059369325631829722760821451243264641378541965519621837579073466191771709925475443525506658559139432889554186514968183998486869345454945825293768964949192271012621853831220348975992319385488870051948267434224696025972953633420532290055339028477830039388776334530046712637352535223361191389885613426382738469041814405386025947433036812302161538530914036481181458804118223523263205233862963023219338790733486082521636251653637539793887214347192996132887951946986291108659682074442451986330042659202909326662575202022682546974162430222659716830918706220311639357506375413185915396517964615880660505296038514749082112816674760321203555097963342291087732301047217237967602378338931019979252507436184760294442318095912058149315239001288657404885422849042495496143378444735526835852205023710468422997584099163848124890573227686352267727319506967354346913283069082528168462532576731751515851697125061052898154647859292746421383085881719737767362494962405043730072361173432203204182470304189660465402030625999746685280511524301668268911150382756201398702317289909002495912110403786049061572853292044982851571179999864089132038961377705139258363041943892322310291392921055756815647428984716499623705538166607590762521044739885453182964593254791220778812905398108140220878939599081908930421685876606544202140111471375037412309100210042736772489000483472624985378244300722294033505322347908300533444899568609195293574239201828368949472638716024987859536162817105435784066964691226785829463735839065625426352119548877952540768118445212614016314222922098617466275218274530553165748997392983188817816764880354757153850782171041971127947205492302200710177913403772417474889416500928490083528912927048561585006978998950717846488141823480034665766298780206235104052849203318230038245252612490548103647609875303780873872503125294012528820592092193630781822341628270330587736346355726724832977696210108113463619643541573261378754187921825803956237278687781613710658198822672103917884370840590247011566380813380779024155040993023274825425126408833105322605899037293313205425457277026655560870550576109079638179610916218809370001645059541275517200206170303381950542514563776968332816412052405057787479596396916552925407033574254480102725808230779172254733087634171007283275043346970018423150546700009321279293633941667592235530813311580961937094318884827014656831350082102971712736059270567060644783735537103675848682717931890760079705527545494326460905712386137107319755255576111993827535124876956590224160198952452594863504332080419987470191737449949951697580699699211958870131900187013500506026814445460074004511858512070435021379231808439345416317839560951385728958649846351702301310067516436505784860096491162717556068631495716698040387562068028060409445487795140728291388823312391892370643899491861579928574264952424808741448266815139700219449105080076208748795248259873911305467316757468735666856332101271106350832636293371668373489461197571265066145307066859657277298898930558734091900232658283000174696416971781069080515007330184276762182781255410191252070366581521995498736561824257205961860940024136287300538220526538959023429602101966767230338574548917810388906579564475975670251020540576981426880981974629788472277675548580789794113845903754528274672222647556876414392922192585726512511583778311621558287609516236377759254809466618735594196495911423212060783274993851403333502348959135682042933722655580514543714447180275644760583557779731306253016715529596107590407538605404940903746442282458667889829671407555403951121113190673452170294018482410181354875915545749152983831115369179549701620781703376805086562561504060479491949144484109480477171673691429554601216261249545099956157457378397998523024100923421215049226312724782703369105658504895528514415541526032094368255653748234267606001558739810368710246659884899546800330087587126701629569288877709324037229307899503746341163228281088928521120720396330048196959290216061661346987262762980327039094076734360242200194154460757860641887255556372887321645392519386875058509066197973260104249743887141350241375656300877199098882242590175854501056164698414936967010167514778063733782541461611303664706759487234303296342203064661230653848766063825897716716691641084926273836489784266382933609928337579853655194452553722543666701550749281404681100010737446946823875650977120790563523024520258614295573785864178256043532020290391272264196920334213996456816077232202254229389512747230573603944304872731767143277656703708758163547193342854385046209316763301710131938495132028293700905575925460066251877486354640603882442389238304013413871081107637107687382810956813543088674753963720556052733672344867110399504695627005106980599383619881946422822459505728298768043431818457498712964412275574452348237978037978343915638615936181694450559094846747897882768848525008853267621423503116919313257041229870534881055672038545881882812883087799557967156699495031035622089594943002979083891844920195881488327605183663113163494075295756624239953259367755010740912904466223617650098401221369764060221222805130647671788365002558267604355401784179243132855656980704768337096349972858132416749979793287137562594999296841660791029781601494377396248745343304303254640759961818087601533105676732201980667579263034246662482378683741503274935969480156963672435255322682610169543339995286780535393143501394479866555603908556706099482432206215351943295418611393320074477514708487420601461563879565499413681957120524426196043743800127124817611867668198397082197606811582191178807408022804321809281048622908316734302256303412368725146410839199796705892760442865480460283343276595356152690686421903175844304317835341464670187981536937437454247274306457428388646142332405181324900689386806177725605744899080361835573365080221151292657063834330249117217103443724925197825170057387043383092549720488071189142954451823644087704891377828379211537884155195875068593813610287969242661167386618871046616666174417992542613745663807009072824436948964040978873126194163457299823850684252811970961252605810387635197105017603675096110935282068824606807227973973960094375044548634287006594950639975081840529144218284033590257288195432304446841392206299894191729351954374872862309483382028006059827890674040656810470704442799175491310114899903033482176397628909112618729024907418635377146341974311078863193802897652524925752251064709184420951387749924835829353898730052787080476620524303207686170261954623134881318284315717200400950330497266180433779213366552805764466037547772513552959441260188367681158080116571348098896608594417788237276610643981397852420259002030937374406293593221013310433498724414996352503531210791892130851010882755144126649767314223230150442954083160115047721917893455748647372109285254569759152995681922362495262108752310259751910873471514467887387151111160330921429659338394817155763709156533942896120123913519628147195125415443346304356373037003151832272321347620684999854796092514227852109852102945283761937612065633928351340511905194457688552101089624030490116692541655143791944277859405617147003494541124664445665736489680347639416432451384185764724856434362636652349837770111303561845676565834811095910736769439484333107640603476557121799783207540575388985076277222599493881626429326217822597766921155510192653072953580154093336363144998206822797710477771873868475696531520200828266538382372488521024254314422418118622893009041992986098333183993621637383801126309556525861333227420207003909295040123760893822608282472300424496625127529630588220595341703222425324604373426773032837586259404190662963521443178413904500806848572950510444275146071085238103024731716306966837208449948083433231668292550612974004903777844265828586125413960358503921134600411618110298744208455240018204518300529941638895194293652530994940907194990393131350276093357973946815203736169557597522360388167921507485797176144145631449914231099625220636175921720876843939745698962155324656412377666251343561221254491179736208396288996137608203785638741937180893748432235987430584861531487818453660922745693786811664098492932116174994189949336332532550017711719818899972769216068933393532850408346399443224041384335444569358628847220058721851630615258553143808712726806989619660586973895750344134928044281231819251942066170416083955425655812955149766397415989093028605111271777233247659427513799718020162069264768212163528852525917438310809499067478901971603336140872891123994673613223874113947369777938352501774574201699601708695042201108549139572526214567719209460212665558282535845792601732274668211127620177897597686480577816822309497659550101129735098665607815826152762161102416692688021413148686711306331925820900108117305145553386285213259683963056406600272783385690731013496295537253761273209702179364321401313854267459978303744778538599217696082642881311947667732694325785717844688970951652317026732796415933588484890444291492636474059046048625113893848527283469174543165430061790550472383197364379310497228239899845722707429484119126151490977063526386011346456875463485794031841057073685206358838060962517069879275961934179834568108100955845944683449115187742953528357401524620954511230973183898093915426466469824331126578409666981390190707672803443009017333500047153476889731352734606014948718839603081279288439213457415743181112287047556948640893319333040975315992490177462472887457268827958483274220985047223654277327690190763375183992474528517898348903860982642370763799749036269794831403228673070726266307422400755268420845543103906059553831695062401217969126854755119526786380047969382466240573252117979346857062784199328126237737023814955758668174958565230002162482316758117198038087591771162908777443278048103967966349560107697730724313567017249851860901164709343126998123227944312066053447015231450984499866128409370806727889273575662116431164196229996589054865920343847633399984896216742380589519150809969623702891495220468244547227531330362622745248540447046474891770462761521587510003020810166997407698509386224080996050042554167005939214429693611371736033183246979533066790378603170217296055949428246677747311926489548547202436183446238888890093317006246488595337321828068688156380447776494375965515643048937890158860599548095982608751837142814233100378206057538917847663101748527427773316399232216725278919386189205225776023435767836960614126267086154484244207730634590490080171943626829786775829717445463864912822875932280606686925344963005047135218007595903441764895161697682049726445840231748506149349516273122345010440503811858947321625890173300602355787697486976296483079892505209566862262170585959829664026886669583144611152490111971783418039135105211536177458626267547965789784313119834895811707820781269135452189432446266780932409697088608804890656410674020117801140917293281184109808116039234389592931724423906699976723304756641627542737827345672452108028406383883028611097480072667544999971923564536245471104983426288416491048987034935730476626464398247043319179955558530890080700376848651698742259241263827628176583715420448080668138188609719099646081800516342047495584431305558476902129431139062502024305132553445811295173299277432564643456018633832377115465810685089338967939235656527905732899898850903194255717797687933455927063031654066524410848198047364239852589582426126774325337624455614066173653721177907448458821045464915625506694890687553490497763956521436337788693618337446043009176621982781798228546974254068895275193077417123340754916407807922926746724521752880697964745301890138529068816518353440318344345595910544972398890683136155323005109197369680224450725841235401501321211366928909567736739347780175628838874330905212966856039594925779712269893515471709539973648864505051807640251134916157021288095576925374930318573137497436636601832514812769709004387071887214856787481633499979466113633266744881546042069398076248147769394283850432409296958347376337523987411267459458803802367234385759239316992927209651336748259073263652269561323196819203547954403335512067740325357380396551123811242434118410094951634394198640725771024729228019383651248589290379795724592649834157062280090429705148297751909922151767591054083464628930538792095009739976794732376450730940071118787619180608701127147978500522183792439876521369777885499384598663477998330353061279748683127170688451056728471140765533016668264527424934030570542902988898610436395868960346020291298688751272714112559528165616247454130542506416724178341481113750909288805366762752181766914198806116803488627222112031408913232002718581790845769699574951771595618938026516051138436453759293464538079799730613034249099342202862495449184997960357306185798474590556059806571760870524330809642181084482475903307894440721128266612195997506047346943851570663614770888970438958256453553895742960082617257471937649761981127095937906143752063747975106407262319177598212239908551110990205917897891026497780789844197451482209562343979798141723442395648699885397953281999081383394380887317230114095309839008490810340139596690186550036406967003977370843404583890131827915715325719231718662271454809901389507552180326381228942655656407846266708367706926823659629948870022646354599972684293494519262843570524727050786853387938430525757040868035993100326857351744910809493056479045382859398773749321800798944869069286555033361415348382670225061994913461919805465656353762762691374831945903096095125437298976515161854082356594016558671467673376996911606435536805657160484676372644855066572821973376834751439758681664957397608176300614223768015850291532674067925007703797120944934135792416532017366638512265069398053655150851694400752708231051031675325735291185983330391248210412215304316628427288531831846618021791167866189016611196135696727932994866159923682548792874128805201376644011747763468716447426095789633043840469005720132936742500116825097626698156281591395458829208658272030008623535229347874346342383048022722139018648096144452349740133690735021286646013677975957976211977201516232327098462283167979963879766899847082031330867482390574768070836407535101933643730543460373381032094353223287651635643326826352954365487861375001325537942023553653959358002065489451086192370015660867224435321696729478591842778070165651982571263492468335908884468825439819172641699986240307010411924861959203957916524720483223506632741490692286070049745924289504867621605633852590157442816813680635348563178302187601624393787835675710520983584156869816584872672972951388541071155046001986056646254993560032927895376245391527904457788464159911720995911219811647442875283501969050017550873146665859995578229872839050193908729438721173297497772006792524459788909646913802861173103685713101152552052904687521717244991706665726223447676671507476908777927176824787152703073925540530341814120506459888972428460711075734536379237912910817073852506179834835271405051006172895401778419466533289275119680016164065876933227732144954941559349682505290318874453438474566589547759625104596105008702796515213443428201414623844299399165156168901292039488262511784232087104158271584372007894070152496310544738456822959669002557460462508065234263299176344468307339017275403728267147608805669748755001392978962978688473529023815380967701254641415718094281063025932855325390067013852055996732690571420949249016206781938368843300901560024054032179532727395306477436448585448887761642834398369051111999005546661901298742459147683543244459027284812870506925240472945227334631652981671454989866940473891657359049166147785454253191462683275626760092807485533387202326883208843431619796041825615265026389049680629749785122998872442613716847706200079222186033172887180277233425840273910796336975860295949045315002255727193525759966574096139117512397718530941635754219660714245581980453465645202697542123415001163455001013100871032783916678377252362025504166250722102541384511684976112499222252956975226021993342926673583554285635911731226104932653733531212903413741808511026069497747673190546571773359546764412693314911599825477534294451432165977565426843630362556037858899690990356484633561463261382921200148255752253502127759423084806920124192576747081441889476318568331039456105770089978635219370334134518005883880154378789680807725086358098450285853202840792334516190812348248319198421784191128899906652294604541436897241295143802519778416287540411902375324702777619538628326984167118001625400743667592722219322032191496730116675356362209894679413794221896453890962499469740118612694644949645827411555039490222796766218358885908814895218491121951499428174643699734186364550917911781521084765431570920055690570181642431783241179237466715315173366926891263345640955710049638856776711187730568713892277132330952604041268317080627823193050796054250450455951210168159991959329897506651371358114796771926767905269779470163646401725093977888449449856960431915231560701429831647226278178748351917919532494502516756709361922046509453579293417081866764729597650907091858423106908962448001935166818080430398809875447124270725812636609194170071161413990871955859284013189638894445393863744502028348551498466964179474905823846622762718566953931831777571185957300118392992647722019032422575218969399970750768369210047456887254107805623906456090555293367959057673134147729145933144187859122096057260516730899674581223601983591156549967621665543983369894560370676249596973120844013153572922799554553383321332615786281981049292304475947133003915814383247588476557664690656108332591093195122008308042885707161669616398224215502078540255944540321627961653632069180234994214015114128856355647186208652017421608775229406406092536328811205881952016707227979235704197948758803706251103396025312148569415096447014887681701755653579825070566306158003131616755871151538519295050739420003445414997779908040795963669438711543467570211525102830992980016825360017394919686990095932786259051011491808775572899722589617403780818058183371163103251694788828124628351594773041877064650176273613762838931973807149461323199716494047551843889093772222590722162849434013607631126101434119679498284164330626425514873200958112343180210184687530084922692060880600063024287754988575385958229955701368297807497689311252740432162247378367715498499794968274985733860671301331603740446047364155595133792339140536336156612030001116209751164019519428351684428205052920696401986454396891368573183667115411504619953817518176570493635587225123555414151853280246736567868175549025552982013962718164922918222751504451237417070038617245206037356371294426175037702583637493040604781205807239260328312049276443680632024488794506821578428852875186686902657519803725479392207099368821412475757940439388230920188243993416604444363708912881101696722015569729931606127331320534813623943343322365417628873751311261318065817448166751805752921108953870374392907435547497185552039414751203202802496678623632181160180097968447030525773980457872457396906690927412299460342778093568721780757480418462924865494889886858498983754074747631563232907308129520486603597859050562443043549277692161481704854112818393949952479280799432126235075876217606969248441005002975542100311639213180801624244583671552110515335885789288570050442205506559057405013229364678804391992309956141512258156047646186347044526081360049511344363604537033996779862881706635103291630453909337677110519214816725167717529544385854870238161651387486344007641633427019772524194093743915002436242201307082859695762981858768592510813720476260847375083365374499031285792443574425066792482857653592005754614555700883998460892877144172498689601143670559599445813569642696501779963067745178624035030624142239188022158819311218625115860323436004134745333314762161917312775795322981115239068114102594548089737798939542862501045045814701370494848308644931018631662094438072282967895814092982673742983366995975630415325465308959572461900620805226961526083722948651398370574819350145241480430801449043312346713127453051412805401640672525475220094882901930983704589169642177050228826606351912706117167735238027912363064301913351840959067920459691656535789842103339786911276239395362684849294138396111369507657212611544660616937749034955905765939870758696185818724037490324561595708263806401702758044787052794791581675451041501990652200480769753973745988115397383826741388391507625089337522294065669403855879019482509679408879910699709365571837638243459355335172137855612412343812194542982778836587372002949813224933802689560881381824863192217721941064303120012204132263797972009555595631323385265347566565141362037205729280869111787479616865998882560457016513663668699829624859196571828036571810864555837452248582133670136996279181452616731376926928325196108551776419919082384499909737830085610112708987200082811820657140826552683973852370021410033279171171543803306919197722056491311222504533390890490311735413833355827172416966906278353473559976716158909726673978390309449848188833144844555640243636298272793434669293335308169192679009250092207613421951912319688085094266016821402846339112301478017566945688622042380884668668629468941795712605454925560253347353548617217080482362915568102578071828964070076028988304586306150502217315278909167065742628450656236742000637553577091806964631045718362746068221278798628209515929477487720348084080082937667250339489685356780136113900247694603587594306976385841461444666961572549025044513457846767273133399795054720427019595685065189265736738615631198703606534339209854837197755573179379635285047553900196835757813352118704866642580248371459711126088642147997403283361891250461898636364146462764364382546611476083728669054384515726527860162456071730524753688026593827649908817857874366026997090459266796809286320712618117711196183480409934374827953724547485093081583074826277309089272231161726102821185978957231125675010632712850186025345647652065107693561159753869633958809053737761132203367497670362972099364851587748775845396000053578312124456544451925408873224286404064561862897484770651251718668072263395881400409318778902737094517612791176572181788452195446804351562275343453767384639291421084333233038972570053030046097495400361960072392547090999191480181432262269558804554931971884730874399026090370131789983155528770480488129998336569996810678202001984602629895518192942312022660002523698298556373792956165540789431444903924782604657591461894865372876212600924365465713798124868866389232563043999437891546813320855644819917848302894214073315652300029123574134552125611227212672209676876808243237262712328828962134251519196715356695478097978804275761046381683893607598902501917996288085200777207338213326841923343027597709761729929070671451854221797872131879018125874093678236489942776880583381303472534297398248233086648152672467088993546211074551795692310727958192154339245092154553035471151720138337747577512740681381193411724945352702653239818600681298877856760889463129121708366314515200346614844463962155171410819690241367636497995629102215009383658494621966176221073737529476700859569964875150985667497158546916501919037225080083118475282960030552208573165919731168605754796552095825059715014258935757585929460510259464663998522303135692701413750530831182353325061461824782677537131603245699365259460681973336434837591557863789540547876694717102073285029639337641402126212225327286628251847573287251816731793225772996721042022579839549029123353258685534927681267045726391380145667339313037357930222486026140815987266693524801770684318992447004762863926679544707707891690851120911774839851654320026025397825429994373848733741204313821691224376948493855610596026320456006815931392913482465499603373958532344574431993168354243643189349993627421481125685357597500552461677119490039091853074329703780046482130255372483948806416993523783100337888569900542978562551058332335076040503217950256782310569632148411622696208878385267631223224405844677917573084525588568875725742424520340895139900550397381524258702873673132939405021522947102222135913076290901343441395607685954760724225099604639613660809318137275842427558691471019252471278347183970879332412789273001678516884345364960361674430983722751170457695368394862209407273323241365408215052674672459927181811222738320324353396231503635669940856274692133834621204942398720158861825995340801427480167799248914384575090063583179782975787600501936166891361749061851664652073832542060642530101558715920948289215525689491398924525933597961902826394415793052539666060659341032143412215513872352049294028760443643208646312858414003128337875861196013116232658427821065090131654677636803819579457737257010424719736395971797295872658205724696535066304928513443436539375689445649102574666477291549203609539158190101910630129127651817711415366505452599444539840874984062537531290571202900504894738091473734846033119560048374527511836707933168495114704611089283399790174052009940032702117861973238821285561555568913376567468934645375379613107360260167421158717205482918277943622829499681232704388685834162279404181625131027888348730163815203936207635169240087867260578525506021298772428042445871972769508977579372118993684920844878899538620850873682146772158248100643670324156378861351026769033630465547709515206509295902717285657186572149059386263445618974148926882950008103808975560454563008421406609411504340539945045196067707704960865631565500284279960172746086027389360475967125866280242671238447610553639184754603467818008570895401376411408308706135792143635657262731938431807751309136351283742452010755657749300177920916415713501140119954797559267803167731805205896633037773472314487801718479915978339458047899711744587002906854111433973708427425171383051747958185821736688105755801838660610862382311657265990279499021964612273044301810382795589794772883400587110780923091276809101866837912159865389747698194227198954007976126817932204310084249640068416670618755957561620685630344542093451865320102239724576442238560936693726268822297866703824988508210680166683613303019113972868380803992319731461191920708802940041046032178992202899147615146736469386252957858743462058567227776763800316482512178223339040990033225865061661450138138766257719935929213055932542539619139465885226328846482732829725853274401402612019770403075747108169442924374701987190230619028624123159350544514201506760682122025007457163772386658656015374257681019520417155688730839932446647175881424869993314914258621246234931357147116012452545742124171159950346036813364914576785199446368148910515323621193535968267689868463673406183582448383305175507511215676667865767934830720132145983604121390405960973318155451795066976219443979910458103205544100779954877018030522250268904644822047117008816139081801644805441384037279098050316644687992098556834442150610242500732243745746110461296463023781312734557900080857237448745608421635015738681438445156172492504090864902905520645160607942615829091282345786094380331835783306096108855400175383045789818367680230272887872118002907244527477080916580369636987068247595391423480757283663587824526465197638528809611982906103580183778013344629398737141729369528574068560250437295663740161010857726021522987717728921584774909218715399270052585663023742942855004319009789434621861184269253418435599180291681055413108587533637031882299129749188629009902273717515437369800029341759265553826687950242993450602728323943823861711927468146455068694093292597307862907552440200488932092594490609191641856040747587405105049212092521128039018436138820266114525453238966135295719495961017608521491183901101962237042625465408030467917699957218272658212761114263262366234875215367095530003639906671717964318879532293200094160331293022650388600865737161240158462178853360835508808228807394844369942498561900712695726329243849890779447486205157756933581690571840818395047068286151611799825687595268168145185481873271370714926645906628876547059531506751694678821211770275630297013508793225086976150705080755662601372323205430809045669091454140855216995024490977417613921561763952150324360734044542889958158596917456627443458805701351534659638314297544145432516991507858988591706730743150304127710588592892952393178729263707337697560169847142017521098428765788491876474466600505893476802399512233449219161458582515889671592531485864376443945065140531648120293732286572095422773512657587913915010840467806453769392113343464171195348638454688275256799745298834177144946273649072638894202882746999715940960394658089315938573556070451056156229744071789476794095318351280362030276753571224654563835328229339222021355316415708758249220749350076843607698270008446276380728983210257384968254505788342932370730008786803631257129108569798825656607294858748888471206640899070790823845477898053354136603287542166495474753596387739567596641526929506827830688849464072307283557264159086246015339262809004682954177940301829723232444153818277280136959205227872935492445247087379368369285753812475340208316812104990950246660573260515084687777951512628057260856578363403787759000101972209679552369663111491315688211731884076577347468596818633624443979574648523958151788738126614051539502033614926327685070218852067036079110229712535505814114181833956688039740191646839435274011570985260711775395044032530006788002744288396724678821902449232691975690917224840506260437681436806118373406588897024897737933145638276379001425598753170214499022722284073359096453055030605579981815347381373650706102505686542491784692318642519018620826758406489910724219834480146334858033928827733425769059402655033987785818178231936059870238425657964663484641140341516519683124460763086349936175598344893907958662656681391492078751436302244376239009219252681562305751399988256282904943821274752924729159947209350505055260774305936443230141708713277886196221540546619254414241188476208924055230643591787525146481319502705678970467343023148612640508343098320644338035756473816190734987193016185509481020092724712225320963842226886480850831132407475018358380066358944920030438958482033681003375365433414031054184725779552959168043694317168064169172034668136782802568922765574362752466049917639354707731846523759744015222945412938948320601198677531372151951375795125792169228962227849051771561273145453273173974752807063134311217267232920152185934669355667626444715543420157650819164647563445814862377959545420334115484322149889762742264487499065849465446881398757051265043213215907206370538463203228436069656624779359882945802015994449695268572054205492488103392757012063050219744209823032048716570472518689335021790953442074811693613323658706161688268194521756839612123533397795625206245158507793014951452150414395375755158917631683262724276579660003256632048832180471905815836745288286795767712067377135615450263766981330076468119702321494358509704774785260033727405223022744168397926907695848419273511385143484694241844312151310043447015211100897116725497913212160654471239151747438032102138481372368360272527196596686131639228903844573053171602839326098092952148145914368705077792047314680384787048336181503180330720653036080575436116836532314369236912791545668515867594783281813389846641079718352854690930087897763102238764576095832222573866267774241644262106606263974421456159005126206824375636727719647322462597196814414417476179694693168665576469240630736720472702719453979874485359902350161790777510875313186468470658433048377741648303450457637221486948585550331732624053700546415179035744664736682129725956041212479287809677295183919489139310412883459362105310622368458390942609280208297434248884198257557824845131595027877477315050402189618539769031736588524078320714162979078003764755426733490500823705609406467980592825282946822232819641057333608318292810120271177387274221846199973822443732159494987094560041079398457766908770842031569084301495833317493225771605155335271898259796554041198765794480290733618373958954609966570554136982156428157812631163737121881145678658086477305973672963892009259854820900044521338873974987515024649332033621632880208334685828826479804066127673660573930473720223987005587321443916494717659266439917615491344196211945542640560566846939956971360797082030434939251198807877899821596879742863475481123104430025923084893518677607779466013981568602718270163164625370505519121976413571601720541234888975705580984067872413652467301607595301970526553093814447479925880611630404666373547339539922864751188414754143645202042817262209877502873822416059679080000774783077622845436980913485103542424779995749252445921174270180633235417887683517782213787383445984380536324094508698903442083978127493131950361965375770584828992594229607805447374072596737731018501618379464172010143530886460497221014302350904056504870518818324213816602862108026767461031343051370392508995548895574966240510369739528655479924659609046530912344683180483034918923328349729279682175661873725694678604371261422662332490716995934698304155697810691756185983528573557520632466281329276440997619475750825921040449300541622393276760397015216050347386223844426547640206550482004453476003213315234979428183322527332547812520735537728008467043355241561960280330984468771322194660460967008693212080280630579670644221453534448131011979785335091719755988183157335178545361997991208436556315252441489643601369659846002194019979660895530384880840337027578912128513573027687896773799453627443331283716141818765276908866533813387601680745525914810670625376729036549798514043232826678175442862627581253611245525392129848616403419978476925780698450201531120459534067671332987772371233624806188498686937785660289960134752482511991804021720574884474867604753228524448269740379469092365656058683331537364296018996799167908789051573610040643477188036940659761792376669341071773903844184830089677078777894738887216456122114101019995854074277849232365719181456475193460523072684641544251842454343406526263005633013903083337421425630134955672932426827091705297081057423668069346532145697003154589375685410890969995394392185245317194779809858423603365476574520918875282440123109053809456854313441938818467895893914270322863554549759188178831957051061114165763227606682774365752811924937642402362167909065327339219790625321092459610060259529155396853374692763559980614368193291953892342213061190590773170410704974577218636232147121072598042940412942423487690129360647628464333027609804244296234520947632181992426016246641497149674395567001162626370854185957114185905077072191339816051941875486514806721487534134273725060593114741439670131568505888559234353302471671025631952008067425169396632681247506437615984599957399764689779719240861978047008315824396953041142312583130848987577268017851076061031481557286192074374508944725745139563856833051333647682749853928372944206295455515359828256874092989346421428160843968718393194000555694247612768781883805690660817470400257897693958672514469765176691778110830745218084489895555594485334727354508822978878672784500373143484561522982328167630877397986725978181414956350573424699301640865907365050396417249949329267767898795075106348524841276403458994425354285634059369684234617339635261335795215941354670420204477813122220972413279305517527686348246134389098526163836722244271136752196212498808232270291827187752009587784629544165730695495114906560067713796371840401648996842835958363439467466891051394598887636527773955375362236725664683624195208242064564750478424885979150315476808736525770965023375916821162017006013240624164222611896512083515146350868505707610109278056569230537880041216449483259798424204880563244413972197104291827711751904445909412076247936519404485757977621317786990808283530264235066096630954339677115414966034788969488980334119243981874997634233411481652800320253668553826130773203912283596619673703006641228769910430419986636245516041654222144878248972776707570811727268916734362257787482955309799570836247907602667620763377705574562175892576859729590093231644410323799273379053543453350265094315159576913270168504744287725639255348799235187601638351088937552967887852929614617639139042800919316976000348673053914770338021284713922017477158727576306373637656896734059953886819316542333252594343032753197166557209422557467025246984340802617055728307594613797339598058823976978705772150477354778821111299674516883441020838731757758517793245657200874791329719660375266312884323678631192916454013566097584179126792015056840533876160001218424652764674793310784450752016628908707404420789900753136720907571958358857234232296934670696426985641867019522408954862049708530043049554005693834078421995779274277541570459469562041029175965267459424859408519519696404197983132665055713395059108134329053318344775668410352893503869018910736338597213130104189481619592122293997651759674201850914843287002963615889132808492610480278956489594410265871453505148646244463852216957520866301728105872128678658763780297478319952049392395083893060763118136804451094738919909779130213606034170319258849695857004016268470899155879204184762508452940182836671844171615887674667197882276138476272616903748075484419286445000172341674050555435997219952279721447204696907732029478454539813997914875543725542446479904087000439185706482220532923930967848964275380126445661776047459408212270789093307890834204258703724337539935711890471589973866621455005524724785929147059237074064036530205614502346386508942744384406819197609191692268489950106315128431364192085262048672429079972114960027180210942076679188419772029564532033926275374691235732019615454031685937209895995978955594210609507087856806929418852551838476800938796402757689108448865755469216098238969161156019324684316381743938140931641029260139738174336849235603652127250639287312783732313919865120900317128172562808504330817223026155412202861454066841645701199591566955103628964142383998897947945555628479179841867458514334377703109090537023323483317084034309283689328624692014048134884554148659693664274202542393084106321047208240827759558973818268051250727973093026200886654300618709543071843502728701573434663915599355550323429861247565114645951248467437385656850389348198627547392825499461045923285476684164501791198733069986999594296856379854957618531588148726635921388552839785133387712109347540358155392057771869717531333611380782525285578889255342590389241814991885091799262324967479322145509820886385638659606399943179213425354063987784588736423985999628848619581282519563790833305474297732970668775925604050753671782823365077899608518517510817354724453759373540432640113204794231736488269645206763264334449239467139543889375033496081489968612591513578566365744654717984831215824045124620177264059668222861284422439213660192412979680877101283400446786787579497083726545395893654335832755490071922841271957577576462273847429135697514257853038914926848857891486967051088156146384964016828390995743602097042687076311819910950203531074266914372855259295813624947701098228206134277964964958758851272273695179613467383608943070954160332349812024997722365276765097176097341006459430932695446240287893224598283145230910366517038456692531395077784164774155363760110628443874354926734001032629722170050897823922010704721211100144840029042831822324319057786198926302103260098578609911404018986104800224439741391402598565554800643614853517696387607522822042394214455564793777384293060944846922102850100279769766717363434684260308793217675259936045421141206579735871465848003711439440524413246821094835111507443460764233096841308727102351893272944895670155611443868826207708996478661871523801037394296219460966086774523442090020391903712522558716279340033330890498606100538927786088597254225502440627438105360663871765751197431343963980630922169041942439917321340157826100069037823755974885720074147950422462029726755612974716353254250885842426802381576353612437629188961478061333848741713388510974841953955883186532117642220768966838535665474202117350029800630007140056676868849931975590790514261215719524890853109756816506473554644555632200138220715933744999930144354616691881873878027029063761435050939303606673852344299590006809097804839225650841110811629387173839563371172824980823839337431091018088964355836169511030109727937475059943615602281126487665117874958038160174439068986214580250952667307302640182037082064021288625112747394061389505675568623962239196583840850649377582411126701322847555870123979449953491880419956875047266943426331057941809924803614269654036370826057196248705110610258950429855752157902208371343468263245485405238161277861129658793749918921063559049265261230664609409321915275265366307096420021037467290947198025630068676087881561029434721002356091442894413737575980602452454840786368546081204389151353549835104442193475539499216404419524583239362351368220689295210620999390774941911735465943470518634910583942546302414966428322024273383786926595715530551484900811498775152589236529998694485294367084178973155771704695698337411425357948578502851929222672458969787266268947979128712393234170628442448113258336026530690356082723216626838426246527388028174687251125396747631890481406655974720964608808215833238710649569468562471601866491751821618872422163370055710417368846576262801386687047146208727024636619327323840842644038048016377773430503260086010828981402479210193840717351965223714713139967129765105936560176521101858869727640975066368372418180362501482254519481949375401877474148096303246009001054285364357322046181774453493491908583060509729292439971022583658200112513357023944087108256592844475491446790067406901383628451002622883896130432310063916043473645736167925145778194686355751774488522193410295411687241711614899511068203579832650976439765479942800302516950507981022171235464216540932234087722431707771043560328193535595701945436918076506301167835362833071714569728675061136649895884467702823424732920755975984196236300599789222810278007533112573802954971676747537939894827630661361431272630427011220386419138363807312146386592255232701762228181554987568378727978932535572831874346505262591935396374452301496521578460747316527816720157393100846709645989155200376952459764086368804542918144972293681992198578210923470016043649495425105999814351647725757139918532252096565960344849651928982816892097128901945225467580539710247561971740122631613322913855297666648801177783884209651689261948033045702198895531800777604421637368040378072448961262866718259597883788760832346844000143220014968265494930026703338679759520612589833641268542430316897938393299131166523060844906950405281285958563410627407779793925582985992989699111965840249297570456084116251418752648581236878643290691385249048198594323232799566601126677271417337073250982779499687757038794703263820103944346052463408816555906247775154127234095466379396566083985511264312248938780592225993696827241025054059561508545477140966318097420166423525821854004433710188350674015359879968592125188391050957435930254562062627363685322084290870118656194680275330028524970224558244039855675646193420011819830448391784990841946835825461776838451032458328565436814885333746890497311296288708169436922628524541710944559331214500813510854665621576150203917440082076846032467456337921309737533422939969139518073322119497802388623291823890961905658538817599061310203417865544175124240760976175533502569969043699429498110950302735652891782788375277000063745589799288845190729476665266383171846084396707862702599401156052715031052020675293537736509193119181392020442035480076573821245302055092824369328332020817264581034885736873204846894551256034737889032332553176903255083607407468868084109427097800447461149938824342489090721098959853771118732419575723352679091559277603607213296086639592228237357087887496390872173659055485376370750838008294154914051818868477028022592388193759621107960027835268974266030441909928971622402844474443003244645906778926906568326795490518558760719976746853041192085821215698906034959575143099670841621013079801422146252088941856049920963483913748902077408859339554407509815283661419099866891434659677774204400919547842921899393991704298755478956446786903855101163186917792292668559949502836128886023681170635734235799158808445336295208013956107976036594975465336333136076965716148392133796536494758560028040244271872085151164547493906307329027021146970526866783176376095028302896390483625445328327522736523857939928475460855374275331207464042936168156254042651571701070118564906083521659691204487406678050730655315117792497612165456207419186317994154421446124559259472745341806440314805657370966073789350930067065498109865443522565259622894898979237313098776242309959119938324693720217184389332916037122638963887183085902153654440968622072591747751709527863372986182057198748658037396701851507721855481656361549462529563193231764153979920241895211380413000369239866422275531806600406117317936134454438442722452479812371795679438750926295709371936444708091571572346396248252984250877262576445048917950153075940360458380380818389580858275220799773866616423634598798357418564173348718664976480299776112900449136762323075698474495320927395480084078193930453471194607831533662882064465071698907970366777352134333084110273244114517062029557139926363080474584584465718333205036252229570574331097630602526363832417668012464795876465716976666798660394228792406093272748520138022402287647245535716888361091928710652959046686051343846121146833655558123297557723591438711056864976686604860306256564437866089582763132956776288426102182289829909724787856357828752740529952314053514702932923915378883880057649274860556172078569740807475917755704358579785405771386113463243662785457815601506586779906264660229109747401691491953211488355179970768297829374210376285691190230617835568784554672955138664195599678920698384215691892763401228961000556331704863215411253006522861249241658725490757384612025490161916452573138495254084450480513038057625334053363657779187287860880107738063435533561450912016935442717036075632311284634639772202294348025389619581755915425911459767630414055355140048534314047666886645313031402172489977249262059144149396341290869988575866369679562781127349961432974505823707017644044394055955342424761786096683925917606173289302889182230285886363271812696211116913736800908156913825125595652429210726590510874377337125816911471576869534008138828831946078289314205108390976436165598745893205367210153938430591226584822814123493938339926121392375258234554064325829530349301684314503171346760351112251694041576098586522972056089936709303973743765946516405218540281465027737148923661497296588480066242907599389491415559385327479234368442851416172879298466777373556158244111290484364873955312391126904368299548446526654259596035242584122950996534787306556511161697537649242872861685705520091872312938875046987205085844749013219488848893223838375278377094611522412220886934139295710090620444639580645122418844374133956043967186840062067658526327844414066914787120914404028741302833007048333287209721798858272148152456356565687948405540397208754154468754260010299287652076549705490726245161346300866341384783879462674269014885029164430760421324579570250954873444076666944442370121663120846366105622997224176527713338941281322983233566763965713655659990532352682709181596607768478128264753559758095640590327895149056410710107179991538262949395820090672244039638460932386842044443883432044640854634441511831271627692688121554551674740638747949004365017966506013728886272283678754179437243664989977353734288827373935498043155600561187274276951828602414421149161366185461149095337981905672855512262211892399688484970663193160379422106535069550599672237790063950570526356347303476542652040582411347598023213950524063255131485834106483718681132005798165655212688884356746018550237538244037208171157137729495295718490253976613061208875183444596579406266856537184510075618836607391835696375398480191993551329695936696227597725452556708258397168367083480364667779804551170456978970993049322087876867693641095888862041036928371057501887485044591189374604703057250848598386177743400447890104489685213679816268397847613599719546727502400682242901057677367868041772231021657145556167173142895435451177698972657023916608848787731010035309441951954730359062125561848494024044253414222320312776463617948085969140720552770683869380272040763963072799644659759868968390598724504279684331933184141541942190895769908336861444972424414438589737385460662670351823966121422252534404971255470058060257358479869182746421880539789603619258764243650001915598822220530989959470261234767015379583432048246050500501453789626241632185121761431156096198702083924019268453655453889296770086045530437846641080229196908514407107329255818618395368715367884016495947623586173041161220488376328124321846881507301753397128274589191415444395547246736219052343347927162506802274191181550480807689598357560064981514760782515189576294431561551391447841076490855676725063032043887279748009338372033931304288724239353741115332672450680119725735175793415169080900526942512058365064019069044051153929198787383193794178456234748131989171252945109121351465652332087794715996835066260716167216964284412798567162876060580185400662381249693112293666610676237870361042590440620248261485145737760876307795221487958072030066719586069099875393507490404202314546085662491436578439962843604353421592564361687563759416190023976631323986519207045009746412490708250942694663072311323168988550500225538518466900559929443288655792222260699883923894276569048928899301881251249959298109172685491891838166002189594795676980736023335454606597079485509918580362930630387354677079355580307738573695830742849079561163853127005137122290472007275716061504436601615047415001939684356400812029941332418307249434764821630104903981192696686215047948757616395288358116688997448904085185533814833871831127843146070171321571499912330717843915112755964851892801148944849005751843929894580376880532038201330027766744300943291909427828096092356460159328300435610607062233990227030691918386849711801036498778931175146569858883785915776179608743223072286699945931531167917481152290577692432984606188595823982497798232305933339001524196398220375743019005902365814713634030888884417299832437656286405807163169378810689059579138440349279948958059114889467024668003841147547801292106664685207248271656812059654214938237044458899424879572277053324573964513465963727224144208377187839413028450890906914822230463803108697789688449407285788622013227304691868054094515646468628954962227468576992952423790345492939432183630596601869722518483859663121104285598581967516003887058876593039561568467322274287051903814608736131278166455654974472765646790347589917402223189004803180548903809879395287271238371728577185266921039535941256488417897676308295468307149146359003927282867860062512500918516441906146791693649432318747609514632520141532559701178700032249293988398340335608545748287269159466660849849947272081334628174159756542873900408797828520189243723106036733525625806448402178991735579080853442148154617473419771387373514553731238096159653784883170716971582925494781985964262978077220699887450109095760322989030127166160507256023634906705953533134102152648917446562567607661208296420951908582749153327501747899181286541601894198043257397034001231222901479038555546234771151200276592209307431803924000091044163149345886240441649366406140051894552826911685625502850919281477167839880623473869747833544830454243469924286822247129547937376765355684188709241405605953390802243319038073414158135576463052329316504606025843375538883904839090382248786357975315355513781853721625893676110095873517845209318637672174275476821436265834490640227938187523025240262212110952704803960070548545016561907231650454088752840464036530671888535169488922830087213201681068016558562465289225466592818315879017716268338745343716770384799483586436857300713067562981027628671317567166962365060657848693475605342146748324232305873310263453150169924662018306766658316627712676565352220705896367823042995417963051768103571023031966015946953861557068592543155571181921752409736561532323293610747459673355290213770508688457450767059222707214031742210757651142365250218020744869152842293397499751001366692374190098558804180474427933971026443300113206259311564248795155929573473085311136751297584196142870328991853430929687735862366170978466928042961136472005483423542645102593250234856689892776900600125726588960490971004881670823449615552618512036809054078803218977379430266112752727873389937716274836951700710021006718044030631367088173975169558412384972598175830358220287890459047688623217112592814751554491731711713818433577310281865147754700183843550883646410056155828655152412954859498450207777214649084619135498043089304923264356468034134362159023453988611234447495514007441825620050078168582596592536258208102138207424460169482706716949612461530408959394277760412452782873131211840324468962915821598482582939111050620166397830803243294126923422682599214075662307218785509787279429990063939277808426978063379547053788699560992899448625031032303778314245802589164917348154120992883452503286065898411073391302717227259984876343918264773975985580811073742038262674770060103386662207634425810732676832171733045004185821779625966527037553669583147257973078669175503682292560070553243276237807733170838788433130304290414485272585550041748276059939543682870819265612034744684028198922672965904054803543233629163649126375541667554400059909528590481924367181524473504834423523308249404098074857339215982003640058723338364061480636425588546438887345705267625186859441575078381714958773617973514343490291234550830233967092063561430358785934087545972424383499723067361326989852369827170253428200688817209706008587023245217111885212242456871034859911314510489598480000308828267610416835456435658414353698136821762863122269620568442631642882365812884559233808812452671296065054839050683758388037710883226428359658498278669015335173309274503085688087585907327920078616720943651244701968028122428782301359872673059251624170544308549353175987115521936366440164119057941124981659970417564527948473875466150714633948813327666219130472692678511135691450386783749801718536319566247081884837679603950349765037001377321851711088245717178395080457215338263365396459527577247933769015290804295930381640462527720052558343183603583770046848879333266367468368896066638691636125126533125226863691025863378277413634588468842625350475919203706633546029957219046777904409770869730420881116989313514064108852048293414113270200178562486226741596811186297135001445403746258381886457556970960736606832824849158583739512678852446646917201197840930827167623232052434278877038534008289172373079724003276591391655181194364415301847280431617206754060081152240140492417915318074085299435978434134339931830382516625645453749824203541245832941982170154222465955407951012317098108089491514755837636046575607601537565693940845683085263735729060776595765473409828199533893192988171955370683842563712639865106333582766536267748647866654171739617097104031159931758115328890856183910776247525685355810963518574926712254131783924871467243809037758187628107258015092725499148551954940192414256434989077591210140900173462309591577591317453935591907743620546103631791955365997543624435553433702567262691689663921196036549661127029639922527302560639439872074251143558942699552732129824772983095637998549449948346631810426993423600751353387061266517562942840499228845735023889370933996190271475202516205756457375030893866228642067276524447089000733094479966805638059279618373870769838640423898329249235263785374892159709052531756546559694200499443220024449902072874734432577773687717946352877559922050065978826683330333498128422006067555493500734409347903963829329771620028099844155596578055001728630841663172982422834931663915659538740004809691436662806111812389725999277690569702458343229211247337763102161978703041740964970474138790200776460817113241858998601724236453539869167113624593416825621296600119348868635373640940574908371066290336898468016411458124257758765683589191307523875818270259456814041462055279719950569881169738536390096728119408245341935797511370564441503518488629862336463291290694901625321404472573102966900585623065170145054585551304041882697893527311994359330349240672208058350656309258228709054667216028110716273967461518392903433036334006549706988270227594485021154088052320864082807409840453121189741932800300848780374288719070719880973462998094563198256269618022494378737600104275610502728439297147823287599504680308424554890123082290995686378154732356283995732556696361740782011591818612452918998638464057970306273933563708530291142050064282751503557106848017769825279875861350680921477948491975315851432363255963328235132946292499436635549811142734254564545278978194576008270871733772914767737352498602641147628358433715773453382453632645724612814786025278823411645225839999679451312350714227080720864100720639097715830282088446512171637544924411240132025692831703449786238743637346434972972110464644555058510986839732282169049023716669358404259907605250528699747415809589047806205391710843279322038399934006497608842286738951793904904067192701097122650073272641338498684819829137823501799317498658753970321549935304962582880461937314124891551816940293285901917050918369019091379370479810198901715694420609432355174900759210543844756514483454652348765279848420201510822199969794429974071708952307741029557621546451202026835188396497802917572937041992692693583635129761222065867214833948217447038284700526622974006829626988524641297067784904518362774549736685305919320110704095723546530426501073577880127277264706960056473590968361840626025294067993628556700487220244270237166486217531645023862025093863217205841444654269182513583687911153656301870448922382251773530069181566065345703801417140343830729293486003997218067953643026485711757651572918550884433859329530354065156856479573274274545427515179573902565708261369815818709422960546520260509231671826204371511988920354065624656500234215690513094549072892554009266049729650150871718906089681457834666457789745341358458369915301769405851523392773946569691316851408846976671610611546707122310493061707491539637260604868929603165490860931156443885310667699252425010708226431825792246127453932434581735818170356306389202796604604964608250379611740720250335830552476631463073305924489961690493799105856246217995873986628103474419186844404810498429644032091045907413042402475615501253735826221195232803962338758566485592132265454939116307392939486074231508406354156650661075914405146206449091206223195744674984198283787929102886192016516141475112359864774754869618650224734142986947786980783453151715906687101396504628328765224175572244684275458166951727953882337510763605249400538649056697595906473334477956405329131863512274173971520233844950356340272466887907239126657779057431230426075183501754481881177729600223716866571783358067453885326437278721304232566721869300642396314815272184920931134318611305873492476579880549513836617761801511970462940929142785691625931849397563690222080285446237664819335134391337114984706043269952084652387734353860437094515098336786333686706504932357764918771601859037053559276380860903151634296346264768743129919763939868058244763876500828440676665492998759180954556800957466902754728466635376667515545610109898028778350366584077767608356091621215525207357422252591582047750554115101034504593040367909362133333547520540497982419586136408522355194848547443433896434744232740907844759370385112451572853958364027116787807724474172870680590568313518875261464947544813052911429614757833975203555660976403692766358826364988377461131890769038368769498378891484055535327978178552897633510199065609884501338278984494063436344467984664666281011569189695386797138308026202343574191085723783496342747882333183397693486013893398529263770986995915484756333623093838345345703302375926483258857915962640511477855544974901303517229291331318404821857175638039745933236352647890369241207179356214615727631959131968899816500905836117993097870672731688242371939773410379898797107292370906032112645005453185282210403748140015069271814993347691738424413315011009043814026267077651645411961164983697553780543867011558853441807363790658663981349921548485545224574130361689756365301938759700489504993518129663163540252472650548902573645557309281376080558631546758356009807089242686403328634273660675760368836763155537244938687536156792447095464457896367352764016108532628689728616054933487862932956122562940738585950661988773135172520639404715025869965331527732925620906368530265458772300314008684546039768017066568317443833193456787951484379975823119386826831206895562316298841667623673672228290855461971411045330666930458800753130779505950187397748591498687424145041533437248779086720820533801098125274766007811021651764340371874534264484388875256951366865228353094260111492326971710923617072497107394049322647784321617234864051458977422428674887536181906861291038739541502293725711837552086829535114318718028329125096148343614631911961286793586995087978551768807042073336418913726927375434416871948254561774450128683096342487348839153853382747119201944934894440796361053742006173414832997238775675777686513750657745546040255649593308329319341664399274895654739285297989799177590483942986897182516089452622562129591287417561926382649701383580579975803854981886427705993411029265002523992632880876991064638092547548778682730797727478972981844866374474649223025207247450912123575984144172807499275053536648752914525721111316873464122140664414029001211181134365442544618882720076492087315090075615542458475359167372998853807800168735362203363981652479988450206346726742886339135937361626629647429911106778146963316960214480835853268881344988602518046791165911307126497358545476910716243144436412685908646505333238760971593647744690515697119392593912482804877652356758885136155504214057032629352912534682610134477482837540861688827733254779447611730696187499868361061800062784547279133822229329476324741923053383128226168986963187543321571141922636719547955300444481918725700781998503663629556876220381316509193213827964353860262238024555194942456198632133487426133976011380932117581779031739836713057221385588851750392398723250977277426376014244789538167114817106734668280395264825381796050951205105585642242079634835393520960870038617867719072002441250983545674077162668319361898490408061206414368163077075511521350676708458380283610645298089317131395282554946351018415459014746681531386074469869441511130405541869752935680132099304893819669443072549792333473380014384647651754039063041819875938817081889246809247537148333023925929280378464806981130191471607951117418300888349845656103572164008887383776361968329941226737019542140101327992553036027792391682851745280889011987123779847635968123138365047736043311604581871683976777276681022167951060577779559490209826416792833663796838922234407097994115150099522395666694043225034754326820801724412535567901569064408400329963442358923534140810993781239297473968492501012309656984443965149746883514133819898973809408750066364361149716657219832855260772115150019453577016464711348769088317102793844130868600086791832190587523090013214148576731949422361259491883553494691642791615721966097671193855540610370551750068351391691078319144467459580254517916828679561308732863010641058550827014548980634497108029867042012646462220174192343548084332102668658308891781160442641055499452801250653442656326844022870679920417227825424416562051310741551660164065101625394167395126738266871517416976802263091808027157003256590837037580935434898666678366318234254651139188599416380992851559563732718096754325178361114092604045815717268572823243474871772805162590264214538898707123662888768004257833608555799197666854884770491192212264163787118087100909268726081360556343188457450153672580332637754001304102118573301527594470211562614386563300358813346890494190973682334409505313733497871304176804531651010432603214577308305512326375738063309871041348322242128077397323089574542777197309339004131019289930666742613996381754259955960614328799863061844858612209625775901670187226851804096408094265537267729371993664307206548458293118309394389560653945217898826417063949314311715871227405630965594829184896947848834814787352630794292762025075620126071285966316458017274461279691622674527613522493300191402447367698115221047616006919402080531939992678292459886676301033258330053452480279220732259158752726761108326437920974443000015225281480912242749276084102210672503188520292198052016682728099553961222339895179599728636129136573891597775845591537231197488327494120694491228040404515918115959107444770198732159808975147493216554659761574523707690340300033966442513099058248173726253713982423905510844656253612055227691554492151562841597819110608637597995379397661970808447260110026946323736144176243304556886185340987913733832590517498619620760287674215964457176409077539234108618824162932088947939354914190071397127259896210772846110535245596203370463611500460674746939917286556184692543466019221977727970305734361412708907912918144217953945064002221204853323432649159476112479662533761685740100540721303733611768294296806403592798968730869733596381677379914795642272795416133189448641923684912216973824812243758922231402473637772303562465102752528121479017138667118589097834943488257140056959544268293879546824690797924391570066178664052230844943894794714568789471706560505389070618928662789106260944847984300567810453659483346676235889003835778468266677585837008966054216473190360618238099595836617193675115260431366090375748374474824144397923744071970578275250182502747636664509068086682213793704289539871132273699089635847425913478880990732623311927892054624909913995176772237284061004826371987296583556971493555961201543360902753012818355905011021924087471988193902381894568928907765741126615285858430580044941807737346246106715466646102290216591133493726323029427193243459002202641332544689837831478822853924579428573668128642481194476919635633941193012799056150300302603040078612953620679682655371141329494555875622429404477894465143167538461360753927443066184167868128769519690354485355634304596978845972704135849023015482101844826914624966234380597722512106371726313407926275088763743346894007104076792279542097046954698019989398682241890158562998274150277967073874729642126770579716557742660622598019182856005390071441448010356103441441179910741355440949219097250226796311614281819009334686478722508587543124471647476848169162291290724131096308188775810564104766865467002756270618339406776304795842461747794070376179996382881496798496004066601746658066905973230944179969754455574983598301709668967808472722907960454438088259615730087731743321809421771906117964231113382814680957895420351047356214976882951035843404631344243772903227988457934105402239815692927755231973035893514114560683803354772724845794988888344502791170053846906703097484167047820395376388865828315569682477121267992327420627211323060838767423982493024266682192647578567412279893166939468278170917327493056029108640581282852073455341177715983780858339864521779758969418422679179160634707022422318744203607590785138553831474015198572917366499366794860542607756032079598811522202747032653528891450069022019307824426617106118333834396908442826442383760026164684154643792934041766416148042465370972958252438884689251298071828032749222167633724415581993055487495340802221762315844166331154648345364875507115639002505141179169503046665833889228492205407000311184065245350495863507340147292163127331471363413693026407461662649455202277308710001602241292536136024512013253403095238435006080645450809014508393124477172197861407144167722448288073635437488597330018022185405481673508466387820749233108949163516993041964266879015179157223838521074286769068660605943298074572474348333842330163056045021213513841166753452754468387547715683760084681470859938649481316651824494272424839747476736902094837177687392674451964230288305322036883911478698034774284909032213935861994815000542047731738991499464417945623839913742953333990694539816383070245831514757467442426011102849001836148585168552095670718878566037758854748304991981686533547302660129534547070967406534401643540006697182811555144724111113503805680006901573918388223129745512470342435603204897401407048652545776835001620464400687228234448708847242240577449327763148480512655424566884790603692594154858015815671331519335873846216174036219227709421577197596969348663999933117663663300170218937952283042031495896898163341533235553629181445778804995709181678896353167553897392715443606784839207795845745091044572025042595810159213465932422383923734178289074974883309679467648603984500149619893042590749332317777110827579363775055996362380657923430804187388576047289040266360367218255858041323182517101401126701555082882059640203433103708505512449185721198924511508703657948542891640473976487112999128386065573499504832263287439704029611615764689035029601172862209812251035136126753094789265414519818886990256735138711648026282062345169474745703371379363395448651648107007028049617033049546252992403893793122091257012741603770805052306352286449967383823178419116927331224725177475187811040593768037284024561386887355251229117808008482062082938824257927645968151377996988641147481968538116174188322984677099837726068891729425136382637201417441983023008998367068729737262903527483410219407998775804966774634326451609792328269861363664825957743420020377795097816022560186590633605064026256391106209084881666015290428574693848072147346712832528845517113790192169640543996309930729958076007261799454875797416816739557724709822637538085393799977662978868837015146183830096744542801631557367437019280219027498320295336084115655702056037146494816138664781595966447768733134835614192947392093732407164254961757532431910569211407137360795525193594028452580904826974793315943807385505633599465660992801857761615910105051564305684656168546414217068955255565280624850797367822562819602323324132559252388471198117877341166641857470818983083508379333982921131867904311838699121099257864429377302535797984810951026743890740769738571658335929829706313258341974524639836999718725057792004277156432447421337189846957191282807555824709031938006673497373650874975612866965567262528350811166804709985415468420851314352437298421269484230031584835837784367045906712135281988960825918337635564008610264936807514016066065434098621567262991786135652794163082578762893703494113680528762884536425679994424505002578419098473241286905392324219379866666695447625000210943643126217014657872029240066565492118303005346408434994224267261310337698346999523734554277471336833031644101430725037306248385548660355327656519512645604025048562666780375290185285789969496199688451129455267525897162617449248810518529570052238246589185674776547629253761444392506729247676458949838222568237223092553279911887588524174110627408211273349357684618225697462746653883844338828824021645421357739073011786010360071980571111439543319893028946593422444145107006160838341932502869272013306076711855701564370191196000358232003857055089486961707002901309300174859189839767675469476068786782033829359605540095857469998591314118536160728919033569601808057942613871946840705069029801039074548565233225148248244623695547013014218366879576403995202779060495189282129653521404343253041836998141416259686660044960393090994326927593872939036916220987052090622170828199033875044972385191330173081825614355999477956368817408543526406674192159654410400230730744768534642362165171817214057258507115951866762717716900743663460101358526595441344625983506417113208819174585961999801697456163078774641504708769643599894520456444787453610937161344689292446317167864566877216011626304237523654769921662788209808453763820367641139104280032785829524838764409546764127289436619888724332819664786489451453598283829137701872746611225560330063676707913675480510227034799981424231603685656370648508108949119009789555884642935789036014076867731085448812267055728188303248744669567127895399273332843225005268257968572341722530839156167093295753105391334022441243302222475669402957495080789484643182677183495276154158289588312256505031661429076571105957981783409794647258439954331732901546032432064016255093100541765665445731719946751420463546942255249500366282333297003720287094715410882014580661736532394453760184624836625983599186325999882418394451112383362710781293196834075603023553370373382098067308293627322318475455741579735659609351252099495414283983376785618969332364838637318419908655208973899403395744399026006284187444392806717099914947343901624286268547074695280084918243422614468275768575481054396232790578545660832657372039426171717631083139819636584344738788888922120101581189611177068882237896716428935049092810813004804599477818763483604393942765579500646200170315931717346193688702287548986314844015515407202743364976322192598484474087696614625246662540832947935063015544452291136974050235511985232486165373805196389288283283470543206411851275084775449042317654565516128641828335087317754445627312672914597809302592874219088693983128213161471452905929899550451653806135157979866698537278142356121775619474187948554578025673829255823643974122687204840028127912336024400619905967945559152822257313463479428687789002649786698969295432557987978212494744490875514089104522220679027840092428078444691764978021331610580230532467656350665373879748678753308140112860517178413584249857945864659732474849010643878185838509828064264478541882454606628148579807729200605745956864989032205635842995310638517086487320808590738757701143454274648883545394135563025124802393172055213119714596937119916871259927788420114219375938203802749905872568495081085304189397762442504133292629559480070120923693848172300860276309259698105926862156193954436803399541153538164759489755555844641201826871388684106074400122512121573137359804008546262885536002042047929371428265160749733950665591012980139576365378907438612499048182844587571282644097956150563007661328087402246414654139063971371435319370162390218404361044422331495940799372964055939396326750497872687903563791837729292287012493366115750892097977350927569677116720008416280313352827842587139070303382319541433009557366078630346349460182779937400260422525798108004197756204174865405268639743455454874366046231288146179976306821199208198740323842095869985686997291151762272642696199764658675980426002218226443284382330670323438545835663768744054701903827035473092390545828513278047572176372108811231005109208860397148796957594511732305462134746567442997574491697888471940317789202663981039181112379451979710479797095590044570996794063362632359723293986650761013041714432520475809088614957581616517335629452286964307369621733912727238978685477726825384403447471259576617524582100736888888430410648549295683768756752698773398120287024101587902220174758602153759572545385052000632828891527044712017629127047356876122110198934703366353302872287047409357467781482437634101880243604139209295324379391879889267722294101224870890222052356821047553392619832877963780055548043966821641472794368884611455303106231297136070719678735325811196674735129667405419119832088660378855520822774316102578790207622338159521417100848308111781037142389075731665276624489353604694554771764378020739549529215447865740566837597525223760973365389359972109199858290690758890615658303723201671438735520241808625985665589182541831210867559790235005802693597136059673055643118608186386766592543335580628678610103932805013027416034115310132197961514529899430035697011957308094313407707750346764403594934242283114633621665807619957176286147776425632997486468778617300476059980386515503246690886753084844127402973108738135070934365079103599828033975809500535491490538222970487568461701410538095222549065878360648894882165389495425720021639689678725137157983230449372689663207152826472472699334421327814576862655187943380240201968950201284633723323076841484486799922553282294166446972446142749601493019657711124870235135612514662359412095201176266960305459132675902655467942681642877552312247813250291400486146267142400227088528948776531143768716916103779240787148161545240247604274860134663088844687072061723446144896173846254356069136495142686110172611956487880997284700034789119035863752349715983427776576196971017917329572125416042014380921804515792979921446557167410361781731900718478388867432405356762590049501463788442485813871183354092351143726340014068762615014159695742013854328774139336860506798677943921482544497279938808284862614575118002411532525200601393322148499572105670753174072785391597328157034628893017471845843450836501865035692669767558469320459587562146968290213698163939285860449783769850152614997931649170682023880027705703614473945751422393028811075040119529515430463330450290494619744573068542481580646927358310276921638718343986281894451819340416691804505163935449389297165973193847597351381519301250917256827364813775899267399979435974802271225976458048461264736218053412191569229822274790753806825088573930630726238780366984043211649930910106947539169159605556371038927325973879958519431608049255890419278705563234319865507558266590460053675229785954069930283246577380254349225710064104038750215215940065468443830397144426970271399726077713722438048348307438832771688955146573584923779641983637717411992866562631403670044186404433511545290856867946988820109248507173822924160797073335797920239060413619936820073305518694872921911847558803007659320018871882017217406188235460624901307233636892042351441253887628652560894212301705921342719993327745818640254056661141869561709281780402438146084762221415165718460085602756038283079605748027129570860651295937955032778580914036491620823790189594998715882724175474015291350534417660584706046206474807899316113923896027873426959055606800498944245145091640669345510751170752630890442578925669441728149564469144244168431691447569439359459067318295028732537345443489265926682632674441347341983593586413907945788229252549757596611079425094328729229809515537418895187449284731845380472896576261458419447357726706136436183203918380988905799900592465601889320425411714772644295025623645876989013379926299786308560376611206499926143420124565173957801579757373548238888202593962010291631295209425336487867471623722215365252861873616182404646035285613919843173579076650505523221499467298292319405477274526486494254769193656477930404799875782040456553919908640678257583748752925308332746215075301050882207314042684569251234884560309024532507334293188531983880847214360421176411650668885193361697926658939449881760777886023298953127762042851627190731585998114292967730603893863938148095071486156075255902138605706787508434777479164365872931695763258334403956783528566044054318619285719499461548954477798976885861284375913723161383067216848002820598755784257851233378518664288651277456719829565604324776784730525874851661947460676333686697159809453499315210926675941072883157867438270328010469408050335628745700293696327912691430786238353322082790054650995403861920342814251186955845502233997186231930141335044721172913925593622446020468228479948749757107040393242874667036927579069929137772723978242159343762423615570312927266235020446235923135852792626998527440213742310683425160732733267080556124976588374287524963743032196001364320335582186714316434455800405349659282948105237634191272132522834788741601676917948428970826817809367594118836758465421192164327048373608938130501303804267656989153967938642216925687991006884801247884946349008619462198948691908538369263520575998676051444457543397755603224024482831633409741710305121045508699978524142173457245517336511786659316941997726350055691730931011401100765974824243875275429462872254053413704546847764465466252821494588168099611895495357917260730274123646279559150041358814129070639163008502167428730310016824109701210406314376375303064136756720877622175543957440005131003986259291254111595017672734119224219124838284350884306882945656657572124909727510146255267047734080500605747111432878347422819775616641400383146878600865884733156911888068822549945250716977458467367857626147754306677549175187236116511402890360895722918388815678534764479007605130391829978870048633701145840017454859711144403039657218202698935631448990287609874621606534294582400051905167158812030687837282578694074543489350533086737656329530991616112512599833285299030806934981370639701992164929150958075846675956351540775922727287737716580346436559331934948085902327025994220455588868696747079863386010125193527341899723271053068915959948447984385380229269782415163696420302840068137885806410283427540407011938383240714302601906717585818309459769474500438491964054960296452235386519841447164156913324390256007451572698017573835522758300559084628914454753777578950578283024675072960516237421404987028252676955471099972171555598366101876685426217610964824497123952859019229439643174662618733576625494383408678681205323115221486608345356832763304807638257782713318110253277385935114122322187905498228782532044698462280812871571753426545681326650246643181110408667576080646577153142741229941659382565648055296097478754720138347978315382481958952484535705107270967979396085730354830062514004713023107188872313226436946229033029486844969094678078992085657700703528945848174638970829014905492256377044093105595701175338121060463735908501359390168961955604316363075374862580636661214881245031924182440855995865740496536773943259785218950391425557494844908484332130602671132468485622926566272816717655072955845242848927581522543758512332307606715045548318019857016695415365577963972608594418303011137080673528185341148035109255456177887118396296289873286002312432874996860333789831146009515365858478773587494636722021277029106932371121114028954664734933401944069946998310277657081957248543370275203282536629568957917673676948969532507796248217575245053687118733146203655161491079137748218891886808303456568477398386113860906221996079444528509588464804512160806681239054884208659163587682407755903136362310367452376027308173356014077129622997123589623044562741685452207823037299147097011873696020990930278930817666532411443521053150644925623123221366692272368015147666660200177311741344132625420475285409055696678125122355040752961649374210897699978227471261919031109170586552803244684465159093658886053755017550989936802571076236429724307991367038436751469031952478220468012176226633410452736401740656584749508640973103836141323526323982216247725563034634175927424204693043326992961305128013605610028923962110599817241633717945583731106324153186671375780711256033149195267141220522029589028733210952275996232383006902143309726026579201331727501562315377039115791996426827022455694224730705751552555155125204562912258569058574134859843976177599656585061602022746471651096890720322022321091779218781390570530507316413425633384716166701209783088619181690193444020529338641138139205239251615958493700222804387492693558526104696699777527278102389627233723719278158473583627889928627399011061623506170139126565520711682853009322607771545800122329596760149133429429624849417227724592981786219319358107647450624448697258066610437600629218808823077251979377241236195311461720362742359589505201206425521346029782200298560945944016321439460482634390225924474092094155130670930954838279528824113723969700069866220378431268547414343408726214202349141669169202228814639164396225647080156715526562202784285387820628986557078077597558097753646831881768439894980118196777043792709993638110775573973624868138600469730104179882548315973489866972155955665220517881230973227838543075538051546165557348077517322589106568879938536271746030252361225712151657338495054546024975422972081143127929947550028612812311774864053697553974728737799786177422879772786898291169957229573196748192404144599995266180340552094347635471103838909788947909428606049574280241482655161593004855710031805669116705224120039254602445781376256477096164171733594754759975425793554064829974828627740601172971466794617155821590609771554884540150157894930576002377416993724937331137466052238138859062291605220618580496371434562007744510579042883142495725155611559380941078558353388229065315365350580963353760011460159613160982678007641053473233884466849058632787632639339462544017701187439668889712555775444557796906003424223654993959104425033697186523097429911137099289278744273168568109432561813317711258810140329489139767774519134891390259792818976393286069516066511323977506942524282236724229035130900838326940430159340244653707769023298778751289934493644389075415189362028995743650927677094736191730565879919806372549380682471676077682374731905792934713499177948472452652656167089786744904489996520411625582198334597670171827858058578357124704266895175281876217306939081508046094326758533542805940038416320858260673863716529221273064475892899452154578916743948411506878431469623652830556599308466325086466445788301242812132901885553935108280558264238922981163769473017579526717340469061449194143623950517894909698382623327056401714046399599321960023448840810555237232044113345076053692364449804130412701666934991305834862133361098972113760331785637885991058333376297865753481635364354980437067326029552478510147356459233437129977871114127626577894224759377820658452270138205789083187108898257185499354426801022669403164524998898714436068844155891852903636084344209733243828055646030912605019864133170277563330070669381674969026759238490022205533418144217482049488509319764260456239686978941780996549936831750393026904983073149323355771000528271248534490092392897463541653205397494672428996413892220286780241152843320336656117741010264178357236865520493927291091149061488679321360417425946867789420481178129126161872076117978710779941051028321110828444416059430201724140765129049758524424369036361482668200300499755244737434830285153812421517676688422884219865360468158261751240547563141866987378126710038325633270834819779839802318443381452354404346977670429374531235339283796350779861743480035920644292919467688071351968361126877693548029238062868303911811601191132988860777828868346882758560159843612565039900272236475661701198061023467351982004723637828851343751116191577292239044717867555757332717697451767920303960231408801485430352902588842648953374965030261677147463949208428339234850242369664753042471403349528643257136531691315516084349927920267862703954495795440768293277756250894256350931086664043328304603944772988352158589886559233897430568343743502330532920991227746886289651633797525648310288286047335565856080429596789119773191820290884265545031708953095505895623494629555595784722762022773350256654473792314234703437262124641246556417319104307556327990458521404436030363525447197186807026772421336407935633529728420046259960273228231949930382904312995919738214762907626800504200590492310929733240665061920002342231181054973777457825463631872344246342798487434870644388694261518760392970783924674908634155684507211671079530672261639547425230210816839084998586522407637351619089578214347514791667250958940188674418295200103712587045031282907704799924512317937404764326165176802378754756764358398820852739748154561367173582048418571374018382764408093566863376862287815604753043722585408976104005008977705267423429273280294916582842346830818210171539558344327319277723018069815232183957366925516577801294305292089357849220694685521599891885014387494563937523369879391972391933211641387049600657511957740720875148744559836934036008733045395777965647810683662931268738193532092575061086206136726409970793144758182023563847946603423136761856179940831039332430525668528295646168816711698113445292869292379257188955130016847710327795168125366364835661150929466190971391251913769594093120284077655759301516997835905697989037928624456232631552132941491573070152200344079368000038781886350974873275599738358585971598818367965373786624407967124640210144894398685703059484664757506408585538689543990729615788646086457954478266595835966186885220983875351018735533749580707557302900014297126472835720816122652754553153549179488294043388950673574084611859493216992710273339326322522891165420117275557901137913957342712990476565076139666317588808197882040362077916808877219985940261188355266305162139779581370101440719113609144538232941505387078900994877886832608892579183829698765360905990802670483038754549076362307138134840671220055546464780603694148279690858147594691026636564578177732690013219350695943730517627833762142776430957454203254345546528315948234565293266702288436587178780408150455288991872347127193758505064943108801493832572392358908177550003147685240645493556075048361706948348936023544372696792335442053955716125781613781422760267401137994058229284446736576507631918392060692117057839483026179934084148090585436258464203888905952354728248795344117162325622105283452573590492887493702116003933838184012938998465307263050034084356870815375391910129655225061295438340139606585013378325142292951308249095485801269132484148920956743995161073864337148899522535134686412699198229226520861671288194042367222959418377604221724932126526006328081318350160176377494169142262676185000682564539875185779494736177745665016673911169033314574724106627661885054380563571430428416429996807872354515396271796551426308547824546523927577610286565280869930751005889103405138670594518672920043663275727346308527785046884966586790273730526740512605339172129510391473521633575171761399314106925036802843362781934279846346211048797720016922890199733741736198520575748583104746584565864029046484588631867997453247979105835053516375230238419094095414557987313288235280463440935698029312644097986450579649941854600075910369376449663636997294628387773715085928698921498198058748194559237511193792408167960899771600488504765419373590459371546213854243973003341487321454256491388353479851679778199585212805697012627131145702127354672788121139814805043070259085804588184583301878382731011955816154364648215331483854318921260179090615265464086718738013946615003890980204455834767842527225110303667651604644031011875437556330400126451217527074450989554992976900722442122599826226988444785809050444177464796421635804931293650532103584742655853450545305308678539935604957410982549744572194018523776676847808670522063864245236999668392338597205399813310065126100837310894319628161411917092055154182058750928860981074301712822234873491090873841818863411088727707175003837212453034021997553462401880353948231103635199370147021560592869014947946761259808971651630294483047107479512975152028845533660158936304478832172360307052355202821653227623747958190034895226612999643142325679079335413517867151750493789284196227726668062606835169619166883065306085757897771680453097504503151382625472669656175930362765346874798203947766403002019218024748985932382623008416797799486686080856333334919798818189573008825333306184886269972118301084681452714191476591218012771165234006728874334159908568123913608355659329452707359409561112156043212282369794917325523900086629189298707426102356704788115782110659112645669487333924886713354335206579675008450269751578993699217766014225253292651393852044420641422667908042906189631929868217794385915898255394830586975124918804731220793714949369627177004626166250611276515441020898478769687949935962548231561467965200899357809169456131994184346134397213547187888011446172051368001897266788397642630492718712312995794040610961650407753065692563804528679333394366392474705899026118704777472637345111244801103764528244469370713809340585661909569911056705516038879451353798993164279633856191989067132782664026327983494351297514659273522535688525238727859294511949019632597868547836853084899219205863014083719302358529962605090746802604755685592806555727894240073816393028012640886985833113044514864320053439509389431147136138550014971578978367425254807017375292549744783526343419913139817424174263495663783841266477866609542972278346078600830512588378944446620048173636545827395618344412889219558461213499150579368191524642926060267430592489081870262560983760909476248526271042547210991455339083424548604223282998972179857606156224203763533595462741537136737990209511977741534240430253371509341870844112083776939151011936056880924140670829204442266775432623942924191314168169166994567261808781320013583971964616058482071061322336882617052677150654017269774303767378867400150348339107993138484012627433322484947378845302749135569368486355706782848123995768363180512855369825559353359429776280433007893699893744343800768409111911010467207407591672786595714453386781928150498925895811546227754391915431840664969729453243675506585243167188728989076516531194662013742380758483284498961217188312364051300987587037518334298349874469548463752566595953212835819272104851986047893861604932659896464515669525489399441952738089787156984021959601018800080378783774335837606416632239424552347635436871253165486055931200773592233873440673800623363923613703460979216312776671482752012634308683453633370487059021034068274990092582135527207300787666010503220886271261921851372618242740079194865758150843691557645342910133621836877987805432850762260854765236797615355104383650634685723126514670490960975427832875131746400662250080605148334056106923837215740680020957229236814939372305685869662268207932892809887422077506838939490859557850858782416197748736450325770327241572418002499419854289060436975195092478932624707061032390587629804632185182636169854496920558890637073689089840026988794040255704367111730483791629028756115333699407195292606375950298921050643400790868946442415482373662278320956489324234382823047137189572044238144264138024925029343056658870623861564583580609540566979357654222158108620626979342112324676753763834069856746887295823277103240331128831507833212352821884364051020184740315803240328059408503156851564874233752527002266696259220466693734028464951027059363485957338256218088898112623025839714912996144086316753847103239196844664835765642840975496769280052160078066448512347295139985530315403718618101439710108424486257546999543355087876434668629327304676063177492797113366453029411473201109576027633624037715250767953460007750469588425172812612137855779044602458570149110415123247737774662957054092679796492513595416774011559523348578409807834324463768787485943692334616897621389282652997623025409687833216694112518569476490397956050594598207940591934626310132592471728605993299371880025756341038302699980375407629889016227066448701718570608197843577441581902567725776217088045206683385831287305386498162209621441863981415054751135498922871674950912934331628150574351908806425287014785163727385059458354591764587678306764781109914558400857458166452804736457448597309655907578527286446339012078722758607611349350403773440230527957188755116949249847997890771263697444921376738122485656805807190039109028227651839797100761762325407829107094617555480459517102887040322041639914799665704870484856791293216706500394421325915605636318967288327010940052434930113444091160256046958069922442274083217788084262307951195067176087613057286349017295751403955392164314491541593432377936487179113603812365434999789802744349348910453558624172029333389879837487400343763024937101190491425712269028864967666381349607902686272802240547274934503023464200786736187776530546770081764392859878061227564952681371768395855214711728268916987111518914050486135228524907030356529897005137350445045496349193417017615810194890441730799473459720224022634364429503376027801371073209163425339970962202075215361127763073701220542526277823176683929820052482784557961849615260650023048400270895131000696100384060096496625250345741901676855595377260089613646201899436330038451528753132529194275193111823105924268362661430311851380543186904881236891303791395369621887092893248349337230355078216613806243328556303547635175353959511271513173759447630280716356410383610279842014074567849045594998751129122165475692207649510653117056984892945587799423347159216518184617361668777706318828016598318523609384698487270087318226916186378042061926049563458878205671676195590154732457277429191795596553340969705021800003537624160344192434983851923206393906702189044162885579003657802637761066755062449294218427430963778802849359537583180218456486068800112245538541084182538747457787742944047376664936751769296131905237149536871408857244590101224589087891841096404371982605867046256423511899426596110884354869528472866721314094804138974905834210037453833619526450859671796107382384808350804012520587516545815387574618853346423176414262220104697328969494623492172364596266618501464384518260697333839307350109527784489375437989722757974856077144592672311307906884210556199437623630073774842942319079217836608846307270827894177098567572274122306071406224182218464067859454245395391616516652923746696593981034108842388500789905153864406542286047412295149626986305555049205075904649467184702951009101602149122636091745786613461976376379867366417349663910112406998883688456240744344239133051527825143970020125121920672814825775845163564393396845868536562532864401690389926364215990811565049268686964866038513480996849769498911432344624108401074412075667797647484689930750544150525350855966246463812914522714347434939266181758347378638687080282339688232208122266278851581670522568799720184347003623563171083304788658540564464588469352639941076643675561707593331394709551167902224357452565098187806217111301776978830952272277454283168686891009540157496765038623977401971273196680671073133312457904103486883268400535269394553245848353332811022589077048048473171877748975558810024814901326691099991032845930706774671769796613443725304026925892352228503855027504334198741115525684331948178985912747101025981707759322243057459169550040805348760806273617687213997173633457810186059880235649372057662083016617378595725528323527868532642435508487932933772357273396745390390684372861425617573401476313606135012919614579092077872039166127115618391067654098375088715520663551529044397571096220075730382673544230151620655078230096493552818105929358649474384314933449933698789500667279304078392208484627619303095615495639465885869803762202659398532693381608195615889227076053569942694957613839737416335397615587512495292298654843340476649763820546726794106459475825451886841856408400621699537632278118320044151368165279635530179728612563549130558342654557818006927949185726212506153952474728970450164977736631112176016215861204542587054590875451179486819886816945591484604240765458988154378104441881468477014438751473259428603877232467007110462009823080845061242212541849710045791076041325606024170468102541829958017137683799838216406724733709391241213621626652571781056743562088146794769434105928643619319099173389272768164354449477674983896561058888557437932921952744752369988869474946349080698389283081090094234268946070129230322621165490193760346920667021215866232090794965214057641379462964413233451699977462658525509880036919444528504295772900716421531727543674182885053421530094986966411207427792368932424293109444991109380024199968568615853741428477143586217375009460287364318584008304738283621700104142984186755821656695222734881313413179011885826246562826295648662503600724742951465226655172195377235486677927769160927193486638694341696199722029533150615424254898599446180807320564810442327771593540282655783437040055904353020086984946566101745549307437188779531077383393819142965939482154583266759996331304677548809866382506853475549349587425878569221992979207445608991603028388697527943511731993256145934533400260281933640374556584358099463449144487689991185282129625879118619676939408996625544733949960508904515151623035041803506098463061871555810451411716963398520789597755516551526497833488975335478512111260121749914880973544535401465678718979778965116242780588992986107957515012139325391108818573990449238853656647940515149348140063220655721000641267390314983817057962305543580357151157771784081443756829045719613748909348959422302988596458787319083251200217334595977409792281794055391532421974872142872541888026825774424683366715501036434595770247899832861353289763151873287172091881733294098948481604616543384625325102033231607271822459190586944546779792568105020486421410318078354224475872914754231238763040547629504330159186911217603251553848668808042111261673766627391988742304456033176348304409036105598408114447752704522465194370218578637279342185928962466901785632122560744130058744585597397417287767919376517318676949844178626461083218509999057747883704421263190183842772553318143300391181080236956416175631286345613049555705928714909817598835185587664864412413202838471875254359593289847858436781083990805151053676143048383988319556034347037223285272860249539200010843109154048236432747997149675037119755698166473551709190119296661037639328946862362088990570589122925526921043302934309715286828996251304119487970022952350280172970248000171865187955313384967951311109060910670828172288920142541269529192034792282998234688149171898443605946028024235346606511661421006558145481782397156721819774029186477245851263248655290059568979472745098060269131613944665837267110112597487654669029155897488008873662670960837273398957718805235134959221535803833224107944730791830923443850455979448440116016325868527048720235268545110681910197439320579850207368186681920531622279004245510213264369170563463366429418418688917149198732533648497331601895839848081103643272803585497326251314999477889838222238861638706517764855129490561744824690238083875746997703580027088188728675681867877784761682298703554076604824755802187179478547958058440896696252342106306267980761051071635106715317588420004704811282214329384558272424972477112260662165698918278266615483386774459644706389161226852862510376265498381738540258603682703626961397795335703633761618215880531945462543906752884533303054135618419996744926848183630710246105684861858261489467113219744267480750980080543010679629865046084375678246109750968605395526415656940911362149723634676280144066888779075411015737483232591020047094146126344746909776739473177814046835658328027273172776999199576209927190773728295179164044686711448333953632882863799397564954857400049256368563912715148993815566619723589505155162850216075870862065416344149929284478396648669676473360475887217280212218104396051524391407548745135367719194624782938278216344501766772870195660192649124602403518266510377649874545121120009683393742857836219352111774895401867180887991493128820227647248755901835029488594469340087898911641769976530032060826366226092821999358467972859231206523931260655182497950292400749309064693381287828746814013283700758242983138376972662580050104832346560444242399317235812218057426679474298999032743794601981071563789235670132661355801936279777150522340524279945278188807939228576712064651609289703051051231097159726956347953301190143986296396824839336650494012519866836747103377838275752392567788496485286683868534273574023395593473767215048746247929611650427752886021153244338957103634696542061483146146896721117582490990422249686123953394200053045689326087932331968132144736438910150132142138940757656562123101965087147180179685161149446317310858741908508895991880779636843435871502773945471867276864536452669003710399921292147246759651295296755977535722020585929273099976754497380123039539006947043258424552775191443597184400882632853734537214528315145394284022110062208680582006068552181608673096860240621689040004508446771044207203281931105773198968806520795737713372923167613254761254063669225972059413537432644239622364992586336592910668909433529255692261769039230147657369460654158243155725875385507863640090836779151832537609780919135157322190055148887419862825026465632880828129550453537601911162342700412791486160174310800592773972497793389961590398814197315114971002585086415160257161448524235591801141011136085332964049704414112294232658633273101432196674346600907258986851975088158530563903240641373182969990190896630005441002884754770956047184466629093818933117422171416069968976395837918748676107275946691717790526788245407118155363912935823406625802323234376250634380795471232484266479088339350138528886245725847453342886653545491978121465106251931735725080312952440378954769575641093908987469388666456749099559560819376136031431938747433139721689317651499019316307203482074015638123519706616398619983555479314137410607415510471509585192609379843495106219140102010019903437927625655901037608647771645540285915313907118060747699420423020963750393734810570885109922610095638960624566926566218155679053315847852413937442165737118718073056933610479810268593912822705561115459080394875181164462299004868115567369894335677614380911551486052983997409859708783347364790110789708738520300963715631112688922589578699605164964178961622526976496947127293208920635524813803215057486492856789792832066689504758807797326323899240257757060703373192115889579343462126048280423973803940509013918940046863403697834883618456825697667816327070819728585401385043868673948827293571901094021802187572350523982429795555228698198802519132794586748603016096503256643638518104363713767929171323887561329131489789753359008742414333321969421103268927028370617531856697903570463031766713993106359682054547298185942471801109888734196573449506649021772848052999318066249655903960185571262992817131925993792648635726366826276372321652603025757999999730425819423401651329409707142579199410942749814415813787652182473941352895939683568876586063487563025490081149030421122345535761908137997657393638616152868384598000465253137666545832416273545213095360751916626731666503058034752849991999395130407661886282234212363949522680129991940677295474635736753871510210007442929915420544909644155955521653927289370834394688882939418542883067769712373482887222236328494396738934156040928839675492107284702405690568866945952797221983160585701998826549986780362031738306022077253848196037754651770447407926136358840176196234407754485572591865707280536476792496860759611728045065356159151212601527638797883183359845051143454899532807225358788164434431380983762260454302911318845690498331846935912134274716667417844274926933370662062743805232447365698886524707656688275863664796785203989151096934390937339539718925408033154082158368801634743062441266733422112561023188947711268744664618194485477851889773123307176771523725909398640636815591035356883234264759650495529528357496074733395911090002933096709294841305096314859822873063871808280427476404990560953394476203123317455364773538272574541687187069301013727741802166790304110732332629175206012438791860952629445654353752328149816362526709063930550851127128752783656887074756868165184810249783265732669241698072514851379446026209569290426063601967530433331622681473005832251277874117168392983769371754083802972559455025394806479870943478963356453513391755000381063398421198780021244824209256374311886274471377853479635745177424279464157205273358427571599992785331886000861578994393341219360330876651991694668842566887552236083553667777679641140288475179467699596369390472064868872747227975222116387878277925034033811297820436510080666880259272669895051162978675608371643071461350539903864449909405688213136193782093274638168448982652740103003898078296805564976028712812417518915952833970797948649026376815898174584478597916672386947729257689238506134013065835558847736456202679636224513248128673591120952265674874823073464893527648747818836057684043050180081054823362073451747320570832945912324914142777990900041749683841755345119228504550565298962498263850697438789008706766107019352716496395211976828200777195508033002272875800160131949840980872742094945475349602225377096394491496375785374500934929800563501710579848366796642259817018554386185790728463902574522156865720376552079057022606955681142274282174365298392610149898142807921029680773827185122279370740564198063677400595717264420235705709409297711810760141958874811748994546840722225461309339273926663949372155886349258172181775341398308779107155000582358336260477663849549051673959637692174442376639731305807514204354007499824733559037892303128542902824291141845721877153192825047337530541904268545274774092717150355035687861985541856551295278968714886926457881174065117245923371844923560599348249628229925478589723492183297525893843001135599476854843084286911520725180993480473965937423831607289335273986459356212801668477628357226913286796201205621518925091410074439258528809730835738897437191497879854021756846189134099163456463252716814692422174724775532398523866001379965500277433966001943399302929734181767247646497587861864991049332211051879403840255020600248805456506787261678394984049164755491954369904048623545999706250511440135470683568364329011876563268455633611142545776778863180034690913074104582577446454927891240584152862159478295158211019525881322218924294691518091947317682723278067455886315507890820827316840925027637517506602477534310022029328628753622684403204876513073935944282595780846730423346394523757790122917655363742542429126679259092696478038084299058997464559715041469291782405953698048839428251101059302527755664453362338811324987342855896085489401145620087903909728368209553364246496603555837536741532171891580290572211050495294840932611338147139860124447007642149987967343408696980106704984307834693000056628849923539741962291949786299761900670075337227137654696066761073501658202144309901712712067154874334245663756827709930921601537934160187463347856439095597092215517021172696761380899984979149967216266951515185691520689463713240668525683225067948397006651526339799751825431729831895610035531000716840232245992359320635846015646822570677813463197934765949530925673021834040829273414360323050537151849110410218834095474378299453029766720150360874570622596920260019437370090696950491772937809432876151693959487366219648795404323034100502242260130998576199266306313104746579362900021100654496395082512837332200219247764744173297732681601606063185855459980692419049378294131422858774032310829981542442247305476980032534240598637713365343331389727688748270191292800178029573499609824504764200516638250393376680117279338352768307083142294342278124676248684524462670796479392739885285731038520176574616043661496827288094391138649189639297223081184181435680870764781369703801533336570558737771337389192560674699457275266282946741938469371591670521256642711357882936538457897542939861873304789638065725662018645608052347485682105746133156686779141597474831084215594838780190405782960618270306121374460796939863696061157398788512071329038040822547774892464671207623796880741595551674287633786807692318360373853746959150836547576643605842852753306084201190496419860674861980851756987352330615530385791608936418421575792086493429752551638575982932036249572978296598794411922559175320995016854001429739203322207814650351958693630669842643474701506169163898975217355835193350514507476624753254778031726395661693585431858775429871734339141715520388287772200959130907153572985173282080738308185040301104619181676451558672778305480411120129126259438642654122067229309742127067283466641745513100414598727993115418622941914540011236433093827288150877906448137112152697682775457408292764193744490421669646081042497429540107467760100909228553298575044027104188393251090098445195012950766698514261394855977661945829005455998846496349110633638037357385328511830944649934056868991414586956671766531039037106284338628696300911166278860736852379115398659926575100969482000871883502090208627909735871054271851518663260893297746510776693819756887442666534214185307693926198011672504529499674178083015985571772453307692190718406488408085302078487681514815284916099118524153143352925833998571782282889157407917951282735266169983904618182062711253570245195437322217658939291073079199232181963392831924215912466422772848884725199222030674206943711204809455277211231343341450435416275192060128512489283002336580114820809363586007651496568592433899524090730637039072835174117781516120831399045895517120461542724209977923063472295560417046877028641930293391221820266341713133941066097666157055777508601428853052415549591452138614592808643034959009510504108797865106148594967398002498176219036915348866699290670561852224677582318186428841954031124577908469709249014977894803469009880126362845640161854119524110942847321869858551539622119088358516820666153658622728586872554406132505055985550276523891742794209615428172918140612860953040904930203772005962348040822555648671026983909130205137353054032337805750903023413824962101095329500551017950060986972052970187798821369700486791453446268041392370459830046853373550136988863528108011304174109206456361292169786275261767922954753228766064111990062882308652618460345690111359479848184938378936379762903176528749781842481936522107422192447635432113540331331736367338056502782620634215834001497964916407532562909924177386804972177623036215821699287603896567783356170185522088642842759584068000133877384998195161502324438868312977167599981465506842619671651015817164503454279886263156749247244858634393524991255549262789380341214394675039433593929645806387977681928369289171584326779459475681727785791286734222671108227339628487823943968086099419536275929303945750295396439508553169880913801883067796805050771870603746021493419422035735491103949300473322950645211004889174617621279216596798415247666511087301934613582758997985049017411631125133998491134987722977965182323311330620091190704607173175273760644236848621018924179138288796041238649764366253630782057283332829756428853054633342838892648594516215420884308613316151485083066982148906736345301301483907180079081761705345683382452703325157131295499414777433385340501818197243192579375996182458027452438951772390203037618316013100138772066020742741485756696618785163052300995780680088421772186524221884622369707243523366139021490769041407159487941616467755056896323985773271451534399236587345601179867260248401423481862646988062420864417605393312762105116091375136802088583093474089844936036178153617858250609367799542213626713077408496108089708480221345918193477980362098478767413991682827182774238143291281881207906819879322364510243600896870599043980535911636842671135014155238933603722155095873219870241806635314532584286393335643901361374039089420890965885485028977255419999153311788181076246854857722718179957595133164659123431436515220295809235188094373568900974749939401960834009650810412554551616588323512511571006372054511336614573151372801696235777235636532780508588567419142635748534516625224541946878653073454196294127485535743179926887540720572119569859083277661672311941811595921625186628898048295822331996543466125735742964849490559732484061001969387018433868976065145588638276072019083987920987420527022279596577914390045527963983381665497499577768012291915259005190049116032120584806968146763952878023511857165502391400661939175305464806784702946590478686802750792319379666865741556086204273679707937086420548208638450002011487396969784831617193942987963206917277649626604785285033059784276518738350760844658289493806113561351834600727642849620938347718543327583906489628869117509542992299272491151896885466951548507538514593475689760934786727948884166661043649934127663592675932825337292555650269894884800554320922340232440290189562846783190806104635565532675015674705878218613160111914914985366277625083775768689021232227166712941790252761355296219158987860194010438063371547785191311415753876099600625738776935685786506117166530854359215808121228774079513627588642248734618142635559525996248480087968126346022037207311994307575903627042235833442398701793271125596287223142507111865068835748267646158074898312032798650280799575861247727154633510853977247613576145127301838255902138923309976188835975372258936443138959421861085766228781664060707073008414986822954065961430289248078450025194739826798879309966626569086710531453775169440462381742284415415679871893572975337224816131528139909280787087795455450839555410958524745670225497367594385925773290934629680122437575992726582857237341324013321686922774072585254551586306222580878568655800374944786199874554773624600323319597878426658918595223772848830870611971834161281743351747581655181649351967725568630601959142985852197255452803155336591543198931320276556104244148981447364639303456071640252471557703546670001065351302971076554411301339883398158316344930828880876053818727554145747845840603836847278259224388104378744830373412434354546768949610374277958725329791949357217804605924424665516704457345621224995633115151486788085417412246471079581654656259358848782570204821937755562326907569135968460823000293925632855557402423246881336310921326003379918694461431387055572963737552098096997656166775842649747819468052773309662672017215187344625181684103372448937438930350745094686064450995185138382835171867203108100587507567047269325537356459547006231216599867563923036197839260617730190865471385554394787918896273085354534291113787805592280821513216671489691598412856632551752242841902354783231782940748851998642174273433853567360959253594904157557167852159301117197823054352161262995520355990731582569004854549818713551044946349144637064077740102289581952792207850911319157252755540627466926875570257709058905709146883187392777062429905534352898881600338753780370843382758011804871304121240272258556044834576233130091614759771808393984235934636210004889603193234956008398977938733133772283244848008791069528954164031635334670943318822315996749354814514111619918262252718788694233581863752214396183426763485194323286338337764760920076058656425355263911035691377050216455773139405268190712998164152889543842699046601586613800326211696260678007655176343348357692103630813442501497358550161381009539581354298065664618798069863723285655214371639627018761076540050991968508942280049526830714540123736430225333985356968838877015927634985707223744605454623778840693941726613073407074372455806182002862427748866026819321208148637849464154882264477432378427265991356636092710295319882136903568419199481510487486289587045105516201728947418700278204624205090486983750518736879044520351278546426324379156955423500643432733649966970309162946615332360532278177999676789354784362815454281579585807308331990818221959102010597226251271522332822797693995073128676346388394174286646340321506480850941083464480115218395673224084368181683185781479290696806363842163652238346875980718068313040756727548085319098695137569078229713678499490718326478943633464442930559708349088478858854546117842183036073065671566414121529722616889523882276544354879825489183856025188639456667839953612359244383495144308652008537542975772689987953796641350026734954115142983065383863452712298549466366555662033230453623049396346416444343903996907213072565047540483456205913886926951464431529059412698007379331289588188687096532315341648944070718814976494521215790625166818797131797893501300020302206822806526908456777388863272074851212169470119215438978617020295158829668395595802584925796488595081497955316662543362893994189479760512907406863671014029287148345145362216077745856710817935924799191564129219047417293545164483282777804086672968417608473532041551905106504807478004579995943052115637126946516202197595525050570251671149407917683325588857109331027036854294754390872635931478142769055205946616088418336524982521864606102922838002855898202296229219929622738945190178561340885259563468532989171261791916622243683853180500350240520502353306398406040677927029330161979190568183898405516785433043137128847245572882697061284345309131336512918646352865009406545672017184818583033320064823403393691782310898890826770784757328011307449215001777333914846168505940646588281423775461370616893190328568192731050547690688716054215763626146699347930243051476492887458092431495746409925719657929577262655050269207779782036624049740886785506969053469886989450693866151893786796371275959827942446116624088668691532065685378199764082232477847801272714645300825183820218510031454996056799870922963963409153551679749464677963099668148341968231016910596181112700445118938305135202141227017881979893798843950023783679367626797336745238327997814674494538375901103612940054499142057153058120018863742041221372322910240654224635842260764446326422664755601039811308023589088943955299107907804850367415943684604928894587699943501260335258961416379085714812183190327826178925430443660338527818657440207644061205568767526015075628568971890996331769196886204760515234766287509055145985400617428474142071824827441010489097069680906187393759689061081365101260089468909143885968677265232805003388338897060594732621406225172182019832656485960048042970528812857295513226591557496943170160156460991438901890080969296767779046999370450994958115447710733060352914346841865355189369832932196552758326573147789714771501802867873479729785737852891774717354704324290468152111538436768405296551246036786413643350724444498906139228974550650050685626936005214777939963314794105714077586306715504068830341129847715886876998158847964786061878261978467512151662570007613092779957434811604730142938470688313719509919063987367164383239841484484791672959359229272160689825993336949463156699353034982248338878020211629810984430885988527835291573546238173659201208251108745725183030104731192710592734961747933205580003543254740316532288184023283517883434043418489319413819423966648565215982738918669708887287577018232872355411024769438570187755421644264140618579236896083724380492377996107673750536516624278377537588248217860222308030889089078909282478354591947246065562081094846151052402197476941657055439405712055821568712544661669422024960656802954850761874413961412364182328169830696272609180001167856651371404648396009689402614515707367331752436648989657017446502374519967862680217897445259497590088409631227605024514450906648903813186264217709418181041492453180956624447725427130974632985413433062215869462450082864001116462154162277405231033865394484858316792133579395093551623166570765243711150613053144772850356929266503581199179474688669666565008434410486262136235204549160769339034675643448977293041597884572530096820563319164732168612236487124250625097955799701968958894561987386513899280585839037534436406998862505561925677173125539403873888041870151742684544128839249152105502391489530249215996043902189294685096365777779834094249502769828609043425221638337941810800078928883688532214921111016742898013999986442344518274422661114090898364015747369138812311857347142602128219122814458322243874565206737750675819315892053861469050127556077854810088233392776469477131659889008887443590775432506298685436932507964771150598819323104679326409286986726300923535041892102735420287034255343226073997383397396322723555084248850774178687412219031657761039612587442618024256844923143066386692468730852596053676907646856373221128609676167337807887790224257531851254075428481884740439640422020152268070072487565565683964720825242833033925672475596976994650901651109125752123825247553057222822468862158461294316149143377215918828243310551415153792496814916402161820845750655974917114036890052583960281823210524920409459033345632320257227224239107170427570464604696399853035329260600472462994913101079692332564044419008430300230908670620584958118613136945140772066998639004351158134188559924538510508712824703021632724998198802274943046183093574763552901388624867002168376091713755090548107545713047733238170701824106764523505245891526162381064147949486897019777690514007768710606885130016222717861144579889407006119113269790034727773085934619608823997534696800319819343359082895126851013179049644484868920385896131839680643073158120399204269317372613766719619386226889825185776998626235906417582199195096079422282762938827850605138202858362476211876444793528366238805628783747483459052199247815409459647567930259519006438790314536849905679920402644858046954490420107220347414138737402699563423424266573207034157198762758606764470884253428087217077566775487021511833512170419700369983016716267501455752043456748604504424919329840043201059158313597010232512394942668559085471641050701386766569352721565653160957174454399361163154261281430141265514247500697513992406105269796296151191257385954918298913511897160571516138878232610187153036108789396366442666045141682968981078923830757182566139063294429953066943184518353678447599528212268904823581392740951243545005670561481344744889424720915118643625539907725261005813547065355158909851479881282156603809906806364579151226750517378400308129284233998887762597851307750083486454111797409272198816482936249304233028883651770503032425607783161234774450910454397706145055675243955829447493918836621125339458964379140304590214015724357980805057416688585412705029459017780634501108076709679429123835712475063297666656355263469145863685138912626473675691572084965655321643333555538628292378742831213784808877285304903992075587430715302959934240695422411999713514445240553126222164523140971018456047390368634451849978076023825228263021810771022691459862558713466442815857940988992462022795305975035838185258604391602768904911871213711426064402359405368746080524154401008276453770626667956083448779307890807752924240305168704805721816895460348802345872390386073551625140757784365810195089507641650359417423646043527940867008498438219537733550244115473300071134339840918431074396926446680222305334781468311813224562750808014194411830630568960265603951817273332083234071459693753867470537791233115262504922266477734091910712053927057596264800159913453118820037567231219529524906447262546831097191256378271380237196560887687862936847361780687419574621253358105196936970581351093909590188419207686118795996237828741328985458291023600656709455270881783063683263874699745252301969802776918946410711654683891024755371806475713453730775293463267183653546047891614225542041732625806562084301490525066845478114681144954140232738570349239666091280366692099658636150689789597333933979057407020179678529120726604735763639827203946604433175351512133602223007534698209079084750075459642967488866397636686691885281888125526172631685549955263830753704278404197496723958212569327507484167085647719635892066953396683563437448726889887805321070343968387807836711224026675539283446388832622420441558608917106062747002733489386355670414496162572483963541235633839848640539099902757548040410856609570139370449036339833044585030490718546048254027021371346796996829455102829607077869908568229951905820245048611654745081407077449564372435457037396053862922777109490398865458420143099467207691112298985332902801217505041168947895262476637922682397911196213433957761664473566919881882394502722094242812451981292743665430440831459681430156235344554530524867621648259577802827098706782054375224731480251195766288767905625997709920630300482133704538362440994063017107441224952404011036461058182395306538347612781008113056664958501627956511383022207255884633180879354489294374270160310081064505580726511088639309477306160257346190320072781612014655057787288866141220602863131064466790606432035722192471528682995752180222092279905643729302495568211678031413427102360565375526986596333065593633442154495046509405446236619232089874300536910400503176259707507586600840812851791019255814858549282511980181509267804134958146913956039394438926204145960506088491903235410580169151184303953253812894596055132001597703548054767714982937860478564336715147765542876848394863797431898383328653212757915918401265370148010606844161312401576538937896209037768613055997677177691042996831167156271494432034332326863701157522181178292139497575352267426010486110080344428351119575246770203258099721155551123953481225197980197934463698112499737196990674154407362129913493467273770461392525450122320231081256900490778966523375736476557743978277449710384507044284090085529314123662287864036578683782940417302677404098169738010924854115502817764825728617140867468650522310517889396953240768256724277732509890693146169785615355965269498519162564566454167169096472155741533759539072948118381539095479811808638945461453726341705556369436966729813863554759346524225693069425792907145887251813156723435844341822660228004755768893602514757441637487273576517197875617304318470266768956766628011301268989975817786434319265304602343065372169196336053515956230981818353829708261147675755904374105270124444945053402281560486226679849171128821691423342590842472015829810955019020678711447875490133225337824479280849842696376632277108253117905003844158389296352954096422237670872074039402828101586212873566725213403821596298812841434250731599654303408694499785690332085119700980861196406400801605660709685515589396633044492304540138388071863952237919851816035874786335152630810953922389535261816583994311225995465430589300243360990378286424575222234981750870236395920407922392421358859739032644249448555244573763541162555292970116528440532202017097576542855568831824413834883603574690700412885813720514783637751653529606977883943948640725446869085170760209847924567928875251800373054340424746970374748944820012189729374630380612438574275641876289501703976820384544743207646665869037367294445299504164038011437707990480626274043451478270365426051568074701881219671557915513805064782966706620898009457819834522244848718844966323468573959831901330808721740163805303137876948769919669720718228858313083298600042812368340365208789995917346394989281597174682723171416340936280432311182322412872464260858356975147979890811479437990326383079226926554406423609619322889112412135800152077160374653049202839218887224367412217094098623671992799189104207419377002404350738830101183854490871377485158886167504274201016298545322255555075475911713059150171267749754732301427171947988232495087574146243656321766415488057444717220342696383137060598343036085449597860342505965832711672652141046513552753773691350907104596760900118056828972035970735172921039702052904718356533340417963731257135756628198363410194597683774156377699328694249135485222946501008883516268861567160151781988896915683855492686176172874443893226374424736113127148895218494376633306223556531343120654736895336981067270566133590544832491528714511157440767189593110716392397731520800566340405309136030328603308715347988184777392488574595602645848035753516242975553388491866438249129493429875924734308789607566761168226356122157719649925385647671266312145468833512589555160522066972286341108677607637621772090231443768584551240163431506855345228654327870650415496041308560041555226678459366731459325593349685499667610996302394821925187937191450802757395914598449471892295374602299526156996444667084271253784384078662515373004213141826212577439474609404175615639777924921704408939688964915816480333464680191998771968858936751203977171830888578557260360440013189071020050967771976079097934772101959389095558093472861293972054693635211815846032623792036289298600621504236030803599957396758289354753493799811897315937217574271142218305614706406188982856355358853657357707657180138292136236193484587033181297384266709601780303104802837574301535559643846399653589400312824944836410287251099914005737782944484884449529957020168131190869445567273426609558544148606074089505942325685592905349257679513548032149152624323355430039438397403358094926561066450086191369278979804043622703791280365485005800189663385586208854369249077675617568217460575736403741915208927655576106571133501494266964084279786572514775898312142763184512918277165673289224226374023132304829649512409835428991426359058956890081280040475420993700620539067571741476079540797984068847042786247667975799349898134092022001459607781685830571662758632413370073885786699914172804791875266372374894552805059531635025370028371719823315203967085304870065302191687358912539710652362987903216883752787539622001713074527425944883633261599721176630235346467856407340306931948088899334964820648979272812019085759583607058830198217615383999886836460024616800198119786160919880688859602184381191915484381450485001218086885303024736802926623989493351827689890543101890096722607029529320160220371226552143853386686101346602819541891548235138624116133749395719157859508412721612386732251647777938773728893950470412036962459862759784756986871514282531955656041728500981008722916749580725648266861010380069608787157130204061568417871309021439298942066579330701132371168240387046182641419165353107213390080036690106877053219564646479283580170042895830710031833092316886246537019093917014124417963449007567301598964869697129277520550756019032766505981967317718549955351123304296813678703839300534178533958108030205665746925101413574978919999384661028106196252506534563973927087376304416299517771987998124772014878451802410244899610360595646600106055915494835304106445669529284273598557366277226419467809159874981572399756372121384489813714861468275816490446104854849060369617597442754580915758584943841940561610439400420399921794292439164443971461011840040267097582270144121626805661955696251254632524199505180072233085265936140677316082270825971702687846362194131964033164501008895581278480201312929535922501455511813196716940593485057515192846835468851263066755025844500162943786637090017391569222179119318435667719038662959321078099794044506391690311820988101379072252860243818470876765110388220031108654789933706716852020073090783473132468568744774417726568002153438894891549075745040622389404797895857516671424028748639576670797911351476490497534230710836475373256235721501665763102325628128574776221812468357267042507531442996471893617991137728611567163440633589654147487107822345987456409111800032864344860573451596128772148025423269577783213178368386358912387245701277476488690076408186722181260210629361607350627287485375336471275139855877161226302487952635039295426904565787317835528006561982947230737192889554135852173173671526125358491943175154749997908082882671675743296010741983388660879818410335487125776948957162647024205663894252467137149174552895380805578570443404004821840356690596071465256934926721064247237950566188593087328173087246758951524029225649690787713778085976216725339269290556859215757555697674717745128283961533894037143521694227286463052791647106864359869164620267425814510404961125666841655415588827834292844484133082475640810382158162669827578658366053403983409088798011269332882368510227587497351224662051747992209263895826226376593179821640432199134249837121232908716643464732021326911406979096259318875022113730959792585700243306520631086620010150586676138497639967922773885747961431105173716647773886946382219452419184646734356928827103581922407292400734021614925872894861911956321840434764775881364495487118856346684451562442549409504855268202231247187819672055620006452238819936821186822448787791609696557517062543013177393083560865139580561726704735112984181529918062637533659131501845552118155621545383415731779879700315840136330936142653590511406568051856433175305012504565180478935231304349515990423272751724692494590586091896857840453836794756532686101258624999037225663514422062272359330935415901938588647106321549666907197451720477754208687493839570446389781736778621930999768229585521650995085177278746217705131415965409025361647688641199291151954370010237949195967216637465188754187338531653872858505654642054121777095932162276726373263957065103841729248549117684915572157173275819610172108896522437595366832291806219708444024740718056109212426886344774274319719066490532543883386300127697369219475803874484763983708909183345648280188795097659674295853987540927163734572503345039708562288766310292397591159953791801636772241725655637841406958480899235901967699032989022092431946540379368510395299488010343691896590974095824967330625303880597604763048351249355407164073267672722910351660433655685025093271329864932500091275260276751947896848260421890460342895587036688253458193840515433650111740662433542395514201795123743220114124374962363139382234610910272814543195743250618774718789200207364851339943831264925912763143970372651193459345058225404786702286035785779814161723037447169244513785429693951900814485338890322802575192282453672314849805316826143384686795775112769112628618694886876973280539265619459050007805340338880087791055894789526557814098657459446965830772702287051344575127042702050303000297166833218039484036031960660323197525962540440745941157409543027079565725361054086230350706644874560308163221692007339385066973365511808149198590554686003226679225067607816682963723671802907789776838324852531375761368983560176291112737103342515706390244661632868943324087909419744036501855051173206485631109563649033086837152747202699306329693650755764436396961154306547413708691083780769412556943315298533539711831392903003529016353899422198302314102140132710373555523851965092982845439151723567834915639981160787010627592094654970803359696453637276026014990601608180817389956712201377930531812736995564813882412395730027684463523689032876592119740645103820471249364340611055699296537291875442425851843635469196082936143518168030340245082908214902901035519737174383608054763484106243914954520420434230357548524814790821547095981782448009144452068564587822541957447863078621223911381294001203542585482780354930158512649703044985287827865328755948052876690438853398044188985446190564098418034813939210132936020518730774083328981637643910729763873975994496222450776958097171373966754284541594325569550513954276873047875006859260276948326257229454325620641738228186813024157183115023676005863530990007098904699596314760718808003290430335916452572121824993680192374752128049125925957052632665037577731314878642448985617569539795742237257995777807655312238776303986120895471450449793558795281531625845128250614198915466227025639669821927249227436368812662048577243241666120610526169650854954731769662081098984691659178277149596536217400116728750855056234138113495833662010089270674599579933032691943785359757966472698821276170340575431106852919468916865523977757518217722454390925548892850372048388346059401827826591355925175056365890298822089602604287924609618089615408735356654724885334683596708685327286498417944184520003785056534091806919548524012984802835358104165530789403467471273370589135923488598733692234952952220889376196394123702864862987415843860693429089058654618358298048473999488047634111856759195447325066220392308410756633850376939683615654497336824684103283917602010352742689474508327433285935749032710507167335422903685111403208562099144396623467688205711795873574980281615230187292806235910400196746945118810006260719534721375377758041790031923277533627145007448685902847046474655417785930203753935859504249725335986935419793396254103351694780145530537969102605167285193272593808109645892255517046873503085651171216280519309257845157641142562657160063218241091694498846877524113959399638103611673096577650540187924865517321882555365040559987453691821424524188641194606236303638854204000164816794716062669245724067784773759019974738848159212826281369990789937272886893655264776305713354125636137048195021725079602573518882229853912436160898789494250604464251828132695436227433640520065319645006412860815732733793145150583065219897002496108751349620124450880585634560368113382378434562193744410500953367507182373608227428833451417818941397990761446719726117556710574849288274722700295247105604437042520687237481076102103903064246976178418993686692265472333883226219907134811332431877920730856398144204866599968743995676450811326604394189372311946197987566097397586014667352160380122210934189505622405735097492610888564159943000675683885409755287684621991643690860044422537180761829019105086709248535319440804923534834594477987874983443304268979159400718379693995156984562234115283454756663287543899120955177160623244793513861454379625324307793148482305944141724678738119850182320893407503461000970854664116409982326159897124875979671242805874889377882613072701604221965162685609190441931983058030456846125398046246210265544849562584050922089052620194224406045721869800643026635447404290596642697538851819688671389642108203661948789531293260348444145235846203118615250181191107972565739041315053619722335239840365222429420159596232930918907570788587147512890394061506562595960696369950285083221503817532849611810054161232738442545789925686948332185505936027759015312808027522318291079359565123429450310187596261375945151294240865636520529021111762004881138447402759326653296369392114081867324740079126176779861994890704422800419116974307280663311142544342251803237841065363618024020791084868680100914270819344043313146166941319000004997284882051232736831055398160631711740681974256089535076599356584811340711923535325196697406503658608123702175511465499808517444859216615308441285581479296707493283653739856995368876811668704882106762692650016521857362447019420037832682811958523871778355528290361711452784630599899520206034664114011219726123074398506280237754924206912507023616262002790068488444626226377573978354105895288367917391645067865516455560784427323060616629678379767937066696091720717124103372170640623118838406552778508581604568249704144982468613975816533257682903575603170382222231907133828449254852950433515932567168024048348257618081209368425542693265121978633443271924337063597053316205957802170610294325651339502601419009034139152701356854184682143986872140746830626999182155045108443152108082618123980707858011400895043854502475680371363428317708087913487323634723796639024144868466842278872964020992426001991526593276654199498904945545490425286711927535628014983827997680232129805602403813346546024129600657905333750786352560041001470258328462188019935612299335834615426430742073294617745291415152843947640718430346095146901527738417395076384574988840918032656850996308190045742525050243589045992244164681495770469897021035995688819765629616654150359998986026784619804304824406901317496202741004460885036708920875681562492724544033943482903800657243468835818390835162511412762449372803878384187783511792033334785624889938502724757807455648601153839026903460554091914643482507457719808068000187057866047997522767465865319544445986742738548068183732835656731556341292427920898711316380796354106192792311694579449158951985003161532547432385469381562563388505531566789511597987643016179173129186016248342233085069166584632001682333431118692380378041891978405106139047017605991101998423010466968803622697965955647251825872185508862322441810652438901242419009094013119264291759797533125089892235176828238723812538754714253054154169934474744745207294897575359813560439518021001834242445733993453993721920498134247387795787179815492056168305676933659712858464256036349211634737408038798917274463612724852216168917277901078232185793888985923827500310437066855566365570454867173066030385895757406321553313207021300239018248888812732206705178694347755932787091288046661583227328759898626563147783968586943827017360567883020852113175631295241117822108633167599848250161181571941659308214845427164507589400881208466968863344268075488726153575695587394910125386451939811790758934082421364230412645046957756743902199104558979662383101094843982863076732906236406165273993032563283392773670650817481288357744411564658797595022091436544843927467562198229648826365807928429542506488782485111315639642969555476948276086472981955641214361053980232983696344590670542950032029987268975476322015161743988973386968807753572366734744557256224301486535771166496416659391298754301246620347608242102114049917656525598714628005264889148937903638843525983843332899067032823781161812325327389156677585851043877561182189624252949669701388269497033734910805326310667214065148385302580445033832221947425931280040376051203755398439661334732744271470760600163076055872125442965916029696779910103643863907596337429512713500304430055393282607937755273007935340437332409721907752149761199020337703131574274427246214457599652101846498943251424218195473363336637668989861271008396595498213211110923389180783286472144742961498244434115975403980287280501023838956027899368431919001169718428383435813040656851991218690793492092580907917016055339537986301459011431384030123590623641761765869939321133815246586943750106303024837405561593799477129287668412169313344198019402674677565659781523301543713148662914349191669689689883169679003074534819466656030901261626526972447540252238108621869439185322461997503556867946466641365218448544803086345950737409848537561215552845309500829579538615543904080941123759347299673918906550974301660273735696216586714416069469756233328656675380852186195973702887019792153575297858097023555178623026130444617795905142951681235900554344023812484486724856924248434373555652889280236806262162553146933185059726692441208004718199555074190040983760899377727403945972392105490038022034034008884866798526202813337638833912684995652615192058616907365075218028618399252908672871712415433261644215725047364334153038194306447522488976802427252170940069705968739457556777193955914155228239965441527265718988497076161314619132689971900336487198698833540748838868751952956530524063216115046081062971463234869936920672873783276787381533860322183779887307239543909030644657065867574070385049069580565986338656744874050411202412331163472585330033495572396118350405900003959462202502983365394667831061377037081940699816285941085206534013508778125270040641430603881442529348022316513887378064948637488621458710804834216317640434020409305158645965337358855791401092661168333500440661563469674939964051804221050125548144204792766957500973470871442967735057301963108453823080297348863493279036777626583378046165383179836337101986999393553425673828312469995907507772539564540641356858205747934763029261808516699427483804103653837491211642517742880876789922521842414157600910111939101442295059016097538850263429280870604833058383664047496570272125135376579791901855118061414280867345533308108985287730521360725118673691326225824670778044694729881118348424951096171263504110365467345922079974259907431898365940840402684101123985982697867187760758966514292879619262661568631118104158525436267792045353141662894449997705689000245253058513601415740908326380878133498852839236261181022778451351803321403810084062787043432359165337233279775938934232655823081977925706152213566881841352500264297811993417084481416682100152805674505684711490041374010437415061425695884963899370227328998754880037493541235750460600761291732450495919503452504289392917834743460278495108004008672597941051575649503935155678393610871222188788565060684839284096706093023275638958012902864192783741024960457306891484475052306838119854687552164260177669668983332371056489953377107354889450228632985599999521643466392223587077986123996574304362942481763795089628713697345433491645623707798016753183724017533590439989522267664957427674773961080515758188102570426175961116870435866369853985008249912313149202954801873861508061932359832034021342719235839806233461325036259068018163679975669467326316202088978090068303298085337000030966334649298247652449193949915301270906629493473909927944861212171122303898061818309156935407122765039640351343475387986453426058221602096263742711209148164703813078400559480600898661906449782237749392439077179408317495479298078972015932631771081117222099490243082260235197416894761156550072194634337259025440833385380839336750378805897565144904288020093469771789962368276760319960440817387581595507502380371573928655419104758529268212078865341547660173122877026635050566626680824680359063781894059483697900142204975347701619886709561700506315955652579438783925030929594327796913036273934474147176127679242577652590483017450795307240618776701423647329682948211747164594824742356488512755210398937465780839093449886467002727984580141543770707373986477527371472622572197999898574617026501871575808152077122249654177181749823433020088257419316014674935439580610840232904210585444536832398575310943735560553531276301209142601760774442397142587072078794858603688645619574891176246918520501844181454256706302910128983683362739764878485747128299902842097310481909713372322823684408898486023115086912206107613103701538973979561560732562646559958266125589636335747876275196123378079715049105532447014818111537886665724965523518735439394917498305678801303708220481805021073306606555569420625758015884705781397107798234471243144691709423084976496245820195757960067932405750269941304690439127307397878040241893446757838398523071668150829974804002633414523562533937197065263482381402558483938646882609213415564076004666198065347202411264529964905609064613990899497282685848469537739739169624530186975438856774285386785318742581565247405729134058667053566567746161155779331751519125657843215494844254202472535004276361788036223063802141781780129848080668686705422954655262623336852538961565723684480736130236653308612179958723265227699363991559043546105207266578487600766533915717647565109942253444326311001292019257725541522300575313736315789125746975001429311089333271379640689886153387202037078042870983245486172725234870318724186690117300564078696483505418715163497632169645743672569402902285337626107892896350906240012093732607262870561979641678520863975329617871766208759844965062526863940567279561754629090163657092610899896885643800958127657982039883698750967437338841217932353470225367763063161469629473624764880670792163597463885023836777671809819724934966575066875581333601908423662966732690559087484713265603654636418386341593895465350199836446757925140071195729605448474416571125847093814204770178317102629503959076339978032152350123806697665376043561959194913870712600092206583783579902629856323537551697758935116897334510015894789938684717544405255085595130004073745643909478640407428501606655077932533549801371249557523791041701898973318307753107429915666754247855551890749897152662756414522509848938070590290058329807461742653573934912850670375316728700178571659071558705286191030872234161916107616111192800923648073586355296189234740391830562201548395518609147671998678673266357605201639986975143461573739051293539859315652749276226543548270399325257121052560840898821298810689213395490485651980832750919528643975742830789615851331753673983751727799186264936476222293624130153142029138716173950378611241086350633843598018772343946209885188774496954243578570949043682744834834329744486909145310489727249974867429157173887560539024914231088755101523288408159971963133310326081319576178945975269041568390348889061085249097417549321349002569754059138370578365266106379942845477745429972418467674890435417556560801123707079929378229517074126087463654262935277456283523225505631965514729136542645281425800958622243047547585470654170801057001670486089546228622290186914018621517915140816466931287614992053196939406750925182889704426797739491828082283969378552660144896373944661436059341433005894597569609012294177138777023780298611692030731541020537848030837215550420197335063959018329355416093302482274918631810798571871042762167792104875345328382225715939752077038792545695315219334928110950978512574555423411064098113155674426433822245550293133461727791092522003039449744054571498585558672572718327037571261407325403996064888255658625480677947371526593524763059208697243056628499289148396812702738487799188008889843749557220290822388912829824805403605949542556694534795276164995063298013902635465093001230129896673767803363718499833047339028302947295053295923932872630157869957510184664595732879682857316603741532870476310151214483086579058052265958861565166696684394690787580691293661728410891190181917185342460495519600714267378591694897536756750812985786240169391266545930162181880492005945476761469568775409967156879153473524869948510360101020318629159561374786214895927490821357834762505318878537423966707084626506148004002131374652874474929274753796645809380454619602643063323036964052934806284005837669922834138553948220105556627356830607005273060084788376953316939898005366560415365021270430848002343087781162888184419361813501046439122537952355700439690402419028267987005898471478596114012338345025284578522033727683747074229322899252146330888442546803243796700103588581371727794609764223124407962067581819389088188988336910902113417651211109169857971953537286173808838913552041109960779564205052788873389300523004535707284582786838128617555151438896423164031014576300114130460977650948272923194559777285552572171447144212848815129115327237020660905955870339073471163775118664170381048364116697101121707408234009311137108645604829317375155968953541656037347516128954568344271725340451941325303802179752979894452894130136504461987863501899893559407359752791997903880838656511263752267762845652010797595350645816570852855596918514153284297632722189031603715555485761047566618444414284425980035162293980553373631878229630741284420877662027240047685189214078309450706349859840475649888448235739725632810578984581354453393488790109947659065595673389469565163906529250933033139652548380908391694819321021230210635147637609401254105298993155733181879650647335094252062982025932029741924266070371101784371136689611938814566745871088739524869432441095129169948377690906972043394581646153959393423042364006197579371386990751468591118793281648410647730053370588741232178920615083954526413567355243977434187723357550522027440927627375104226666006102902535345646996940273444359662326523822508631916562245728343784768467974829842193196936953173522543087787860769045865414830580153759343186245304423167574726167502710858140002665973437114166022236712293261621238304841898994830226335206661515761554965779290272984973507895559320085650496186286434123372995903455700025034723023171657132808843271494151421856436384818703014578937685743100429268645243187236510862950420397111748877324226247810119454609926147675193807462285192333159016056428583605976588595139742345832891717897335120663622864195782806116351710111394304131403604472526599419443197281366695439474339287987989061554919536953270162829068592745087276653026813300612049799167002621660372283830192563016339485427758358062922496657288486173106062078957408435735299146066430170091341917616716591864635730979626562802909793260504028076464644093693192957255931140209193021332247138909052007486878822635582688827203835261781766121139874396352941299140688447864824709876894926941273745033649833472739359180033333367002560263819187640612343204642152566908699912502450832057504884364534376924139545682435806542339356274258588751672284962993789942649645481696206582207041109366829531921426573548472244445874355766670541370755910353193425523952601187327459102755787444366412391660384102089866493853784301308673270456208110031934394677721812841775071851579254237725663721502152947347671251263368522178417323962487883517451807000548623185924262768935630873287236271079766441709417787453859552772325956298867892254767373955556733516358475967848181784494490867858402061795900468891348459170680554332121476249988319779953165085136206590860980161613390466034208363781490437404228382974041667879242675694398702664610282327500899084822133238178708562349190591094584914567548856441812621206303918874270583209964811149786736942106366420274557695670683411711838123793452078417290414159404070150904345844917174265828019693604498232379987119204855321454971179594141275256031321197210200136982808011079691718610877800117053676760607212127382314125535041702177444978114389838889837700903106004115785914816747001201273729178178364565715744782193858273520843634408262991427420795497085833948534484501542198325127698815201423274285013773191725745983690275583927725108084986555540265655707097671929200611152995689951329768219815161701997633448718465182810860320530499837587844051034062425423230407517507339947597870803023517012116938909190462859978683757697935084471160410020725236675256282160808403114359602820464784698428607725742884398422316376500700453830008093943080689269652055545772227526918478000077570633413108065672332434763861848158306376867518208432611177640438235573185297112975233272657180232802110525798407017104458804121832409516808919938754893248875329185504768499412156963186102870471570521313970148315047601766513706237735923142066670273670642889323217821471661748195482409678209085528524415497588661486839485860505794231095045260213657577648429330449961007402925934387511031147747623435001777269838033370870680965204777918350500188045053152540176878206502351771277571671774361000142140997010719722367619123185602946204470517720881671651058761664645384698841742529645512104796824742321687726495370599207606288863002253000976884911020455330325845723017715790969781583643575704575675936906807266629178329665522600015214274584377111999947906164758089254670355871697830687874941479292976633008429801841944684954933055358728889302961827778924917613834931910476580042802441642582543569332178899939051563118058455229700770683908358093474073666061195573042378337882430898174319606066929847703571483337415783243513449918161216518577734727985673902145393667506744784631743268456716544463269892797156393479299651728450452387718710020439876000549975653002163602770595853585676763329426597434552480856095365244454545736311519329933198587085607611551170600314110532062547061984813465929145928525710651542482561296025654157808684937736660528441440176345910683574214921982378040333547537277489440565508706432645140323072182330306148178096929012505266394757284844929257925979449753212437937215288211475351283736113408353465287599964352319895500884141863450998969938084801588380801455890098433254116872986981467869334409411128154570889860770812254103442787792354673563488809165518766694119762981840044944400869669978786709673325145853829542240769635128777679341593145120239258191990384012103692671024170813411310092091046611258258776576006228239539206462575668840457472207429908347171444674129702623430890050737369424811262064872479434781691444064844750764502081012680002122584966505066713467269447776744543250206767185729171887486207232620606153979167806664314665307587347279468121977157958657865825998787157964645907277856608150374420983645620659329039774041935067390065608949565168473878589540602098564263981305639577871404036746794115171763655881507419699244464480348160289937785420496075210916028966916230790664434614572232599710477541830709158140300937070396203158972424796036183044252286174340748065959281014318907920294944571697704936479848065714926064405483764962430892808177764480455737906340896612005585687810273066529101117253614684399752761629081863142056165207593156761700826757154234861352957656599290412625902351190012341373364940147174767664981774437520927447030281869010017708992072219597574379884480108326644346211536545474412763926230855935922564799293434308342733274107738429993457488277541701177830591882387296034994161101921436613243033528648839225916438672151777025466128661769907778735189933918516063244099010274776491903391780043340122920687851125032535635713620648656374081485724914184121115609657064906764856878605346280087363045978147234973195322853813282927925491371504547272730475696066783505692304611294588591291862588159286377577342564646537455909672267102818440210357169406226984688222572412338611283831155730781868203684644109813190429939215778146340399454422279294560513041490619783582819292676622703952834472540458775292500517319174339596280994261518371762211073936358323539940127811048101135508180951671549405041651207054631815860889052054239892725595501889317934553895919133137588641818317149981741376928597340611275390216600939191337530455841517315827639595939420029860127131185242883637638609162564559750350878049188534741202175687086122946917263427509532986926808751097313212067496250477482103413844713525793970910091806683201545167964991098236147263795287091058767273131623960989823705468533409753565816606170446662739089475916677094610715270877246644009018509218047332813331768679159087528752249682040668913382722343307397628484578476474240935409024763939191513916288986244334055331027435721114678345496161880989559743393721331554205918316630410041616272544701545589646237542811661011944687046600267167788199699639548117313185122723588388453976894634981658553039193581113299533305827626359540741668880265961372873403207734174878256479493178243626428449887922248572933387521548798408135125672612862528616601177164237601683172851995831109724608642758988920676887703982144546808722840589186081175138084953175471981937018548373748505148557715116705482669075396172637264181817197680431982648915337694557548350473189042171619255147496904181474429588974785381344894869442297804358492885929112489423023376252427152338981344062825878305519692980281906469090232138851349689598136895743265256108452637342541234597251719706242642354829918596430072290878319337404443524486595388506207465807637582087978612630650099556540175659041194661034573808135111809087580244252711065987075323272076493160276594267784728793464242770828552131390357790996197102766230053491733550767432462455743392483860206495809278474990521553678739008884065734122337615705137964579648660856415518122033417827108823714009407139979362068004492477029220207277784764749364556719597775667582413353584462647611471683490105939366510481300843961089386739355343471138449399978063173637372638814350106102534204482386864572602986450802871487494273396456009184787795863515673482898971895724771789068222767482869713968029670255385995604319887095184698918471266655167855524343564156739839868317284162527275580728834292355561859712762076944413918416035134831627278509063197679836243093628273400743430712294283236732743604544678194120418290056327167865289191066670838501515246131999622621708755063404129908382943750818188648302285172632429218773430500937055465814326102831355654397450723495897967993417572257953156493852824615385046274060962015407774381000144450086485097130869667870158411070673918332750655294224770463155908181642413249706954751005681560769444284294879234495075686442466358487707936597619246667495904399230863440322641300439955991221400379104079110380111394553468346671356656859852979787751480956530825509345450669006287283928322901444186304242656724341409247977090742288008232481248607147998791468864571243437726606233613273333822730427542693976197107990026120723447230474934145029067694462801571917817716337500768634334421514172843843967097903531846009911730700214928181816032565630552453625745384364246576554423918604701264534687890982986338235977476763539660078397123904577391193124656870631449329446037213811902221360000372960006090741246131370265431600345455784024951246532227554504287149838466838744918994572744119752461344813816907680418871402270118032726705601469363584031719135321203587058107675771413112989256135978719273685291104976922559994367994961519871266477936883195355470779849307052732460255855175921114166585085465513362357758265490979455521090124958540485693412583691841248977998839584314335526967798320319855572421940757786822604976429221125074663387161119844767505617964752894051122650880534291091869755341588743032770773034571279966867883247323728112236731551241711077730398345590680767333587070390650420760915532588478297222745248421776189525918502097339545712609597982763773498439181939384033812010494707033487425683573838772369950499054616283019869049086449834273619851740892229258789656247958283153273314941149346095291818651343405568353935548296787690916703101088644805678338367785528532376798306906602847085480401220145160836848463836946385081817279768139805690086627502502245625324769831199633893681186146475026412200546103105930054436350406870251088022783520935292085679340147707723156685442576454738507517180495283332715845587608645517346668258560396811348735942520255704435415858600706380062179133362616828806688141905848866987171908170618918612277583172015815035539950285772242838688187825997410069583074702977499965458771146065464458917053151306058662200997041094040410517888925467863183809162092866139355981932508817801332283519925480044339999629144991865910353820412192599325814020416002011202408599888197867103204106437265104733278136442195360473727789987147006967991635149479279878763188970139370481957301845341168028797398967790292248432564119817026813514992156324700654508392267516781526861612253706340285290529020658650406617417190526093087615999396711003225265683079968246071333778610374507413267031312173662007326319466002194242718652530978322278991384127001128410912714306080636623089472127012978483662691280313060706607109484644092015164751936655999994546951453474835378305287911324772700328264843997790479847745378915242428277414152172360195476953421143741074315163047667812310391839934585187036321935609920749640921088899516838841204862321820117933721537364505392952116530459177091517476933249110724474164665631850790185507211624595075771167668603156326790584702460603027181031676567373541914926633385690163704006995232619463135785950708272424690243690418650272548777032836478212803653007181834511908360752578883881714469233045106548648949040594945504385021708520013134133002988717307213186544743507794720783079498154371816960686624377796336871325635121888673772209848271522137583658873274448469249420901344633151307604515039128309675555573562307085437247734793051562284431179789893713800020849890432261878016330200039148202075070181434823111270841070059192558061988229162366311340083058816509019511990080841084721945895752645092247727715354101653287778327504063758522625780937857386571980447445925364591958417621805447848986431533397330263388175434915274414889193520213009754708877104399947632729602209650777726622105217450082055499004343257688807288867974586647444120366528926670164411209481821340106222464939254951546443512736307794680650043222587227975303575578025259594979829883903564934270795499869191943420217513060299249887429089617087695871073067454109482398863086407567936360824553305963208859593324844944744221659400166439458537254602140122167403390228899926105256291130428992955319459570297395885648287708729526464539802141031713599219957916414403160166639703819436833205061357856635962450856311127521953205301175343015547015651288363228073372521288346315326095356758880350408398777147785049143400113378293807318926508340508955340270433172867443777534447607832135545214951862330029823868619819748857601704585753023223866140631318834704657179377464443575500987471967119178611913381269413933769732010641083793822653765632852530586530870464127875309637685103183808606362637769711693774623825757230226742932677805521149645651992223565949068292543854016360659173895825918106877493857585923686237790966712488165250060795274542536346688092492643737754602973053122413352668863275939035616106316073288343404869357334482972814893518945053084919628750333833496379985914927587399557519051019890420763503612490026169783419914318609693701302700264887068682400393985436114015187189973658793887438638163046561703952988903479510113203787824084865067637167030338400219412260569469929400319441453065779811025034857268607618320609345338771545082791470635821895272371519537924971258553957951762096542714012738573612445906016410289812383974037367445243468427637934231044039672834901724229470475124167669394124814569043346908172369634963371016719059144106817444851950837787349410866350625820154835068934429714227499213157285274817700647478941953755744594912059022827733901414744849063084628661663117402945333982251295651550691804645157864184691165463670552777416507616666240601810802939019160098508023389531305674116631585305511602454818812668602409337156543776386941066631864438879270670080751056731182158730497193061792410109719410137726115236158071558944039349147130966724533368194248628088526975283846110773808451451551690109124949483334816547018572426773149976723445369857378209680054775404858566408026002570287856597929358845134434494438797871949399467083312413830354989682542263368122722959185568732933234890642455540245624606530330871144178051993499570992761653275795453702704985424149080076359411995164281975205571805127669459157686800891451164115131488563672935921322810439199436555822375840376584761663810588952569118921364004573705567116366301105103751409259262788796761508637535058611532812807033992247289783725935929798178224551127132653993256609331162694483622189200515839552343066182740848500331559223913543196147931261022666823632575600144870047756653176610117662140810900270113296206446263129820138386768557467917332566744927551732132749368132691244116406525572982950297130791177997142197677213120766889684010893889136231258912478601620384915262651734672490448863644155533696438350303312861829385768407363625651042045502744860560944337130522700822198279182823562541252889737347310016796809930993600550875201314885697184495180409732266598229259928092970867258301811229908260540441398277779180799714912133768468604677279636613602487257737618772127975034504978454508777727946275307381419191660646710622048312123414171718840460336145929354829759448601677859350060769447251084279423702059669897894628693522513238973740767922231451171135179676227981492100929294149313594452816673989475566124403014997579842133203152458972059914337709968325375909342814821775924709179015459139014515144037978793450375581465985092792603167143241808745552715562436588377507076221950633035951498646742159995322223253335282914897044265735198524869154313269341599024254919796198084328337887335188222070741131279705486634154462980437242040074703479626674581612012014079869411677387384160630431278123720952947940282172368686140176048157816994816611773384583942886558951621559115278823059338202119146318287505859212604075967672325018286981959477645682694425763632834788369367714203493160760197451788705543327830351221106241916846249945018641534163881371922395096655099635816603720749107844527258295209890415552273069519799948400976886222637096014848675032283482503784156514686790507934896305560473178174114390795536051489927663124808208933608816542809859144813097265179475546774143542921997678564294835944362044199663704479153184970975427856917810560595322552489929069838236891796587215945944872205215202127897296380482887059670536691876143424136366297908623173494254561002911828936660806710267205149212075722722921577289116162344260695988012758010512299575967680050901093622075039677387377582616012986736056329626709329783039108117776185141462352882264344661179781859895723569447740442209938932894282121509452718733165905000880956510112470507415524719927307510031389678430404834005181251932316409804637717318993869898804390058380510750017346520020713223429459488966386871862508279928932800594422317668772895369929539413014890633517409932987395957580858568037359156688042080539729104141591620742374516584190553839576897777578039035899169417688704386929766333883108772774886574412781433468244359789300838318941417651584479303945123005323773260589034792167025604248381088297039230732436607936897961387331893171281442590514984766011444741827348134799154572058072269960768524102161088785941236495110696970105428051546623164874515851056361695094532090412729277884818039790576070567313323988317019342352012633854826461497931004180223917219925518854662469370966836088523822095600828509699029137717597421024636427850740711685275012593532274913057483080453690416032690512480766728555611955109990994638155199329549135781137142955573666611135048734015775081759970609422626190851273816809187135298821688092030174904543796106857933484598574395210566852999140013081246711951811575880823114942841751269308034610103072390622709488302078146253539315641110204292025941364741629506126161047312288156057475741681611761029361901879386856963432054420480439870838159880631385759585910206561321645112658977794771710283111148126634270237355555238047825708151570602088923890345835177213468638003351103309044946934311131828719233672890131247921995197034497331333335911281352213964112312616437225441615395732929226653118656633181801597561801936683457365738794187520639632216559623853621673611500268936258228633542176738267889249825195703546503920770544948248336240525460265231114959511488011274219707943426533348710641423596812461285499659539655257316525410994708469455592834422889726298718108302138641259817889256403324523246227012242866962655504767734341828077983299599876328986309322648873403045924641506011148392014600117662565221366711547251456975160151862242557735764626586352679860290807265978968940730605015589053158276956769636576825294194184592856830397128410015173188177506615076206281289210374188339003098516178646686869500793582299722530658214635489817449515269016949474653350615276869973957999939020162732965259109694592012302389474483673118333360442643847457161871157773649247504739610752125376537742772798741991981953870219000890292065208763713118338476494150726318337167913794960599286852417008989562632680990759334501797237650409650007306344622399916414958893934967932158618914359145049014878777370322258200590821271447917674579668303154838115357002121488340400408188565567095735976346073855913846660011778791898118940750714818326347924248673315583292403749421378650398132508835286031777876295525952459558474199421208108865832792968904070292555801607095201247668108444095687173097585017241704288122694570065018185316865397483388200143400106875344571223390796876300876887578478694879615044250576056638211309947535916014109246733328177808941027240649111386745704224373482520352376646637207535407287789285726517153985217781213460729239130455970207438243649392741783498733883019548824748312629328250220106776724084860439925013072708371969401881495020220135660980685568033795492075189085744778996667481853537039212787648803558548854541748337816153407684511038182453323671311979316505887856093127532286627546478455438715805526127245917862814921550657443277501857111709405317374319470245245275230254125767992453461103991406664058411506238815648738242918642185176888994595835481330831069538728443765003483976448212662603742336420692232891032950182153925001045615816567799515715584393900158078026885334667040164211360124154417771919697690668939693498498750513632998424950030065512037884309523529970464838864852592824861779807753073575056462376326163833175376545216586095580413684828858395832970977968859596045670350136405858333570725951842510637070871710905561085030831400618262943638723871030704980309074813564065641202027647100269506987092789993803767605634526857753824792151529573965790418124163133227456445169413521683789025957420339483932133849226539821172743841334316657496728233100461168192933412758410757966930033562182567898099648849103785004682919200666404938034061256753781648962828100617419524402840085538332679878350597297114445885168872697586080368330194806089248302039475783122577870272639789320642575162084714465956520963157267883474221326414259115631681687756735757596869503546786808064986000050213511145619986769839055711067505977927665033649473772648217803811042280059584880895691296646629453363224147118710271770076754208205526485321257098892494697246682151034826616091359841910743305590590705848250154077562863341948068242610549356819464008483005421083416158752322760438854975382521133708130252105739005557066900116589007315735093710622932272877571363932528997311555884753239017026681152628096264123986887966512057679775391526908081524142103376461430831113119219733217884407622737652064936922594883844455714145661920303387107983862013830997291861922161930291536283124622409524723177686353761130399693798613063499425383853492204566431303012799871490198696744638080252437116629555097596135847944780889550578938835174102482027611097400685675055046074220424530373604690439982204534783098583250240652697150085149490337480709214796664224939722359611822100381300923158277589288550694387939570183950177288999861922897756724890480323071380515486160685648349142326490351550116080691273291186302320216012651260553854968854207699273869067564996256314711006453097149693365974478507337761866456636120534284570307702862992624886535148607317893272404303318394311024018076552400004409061111260537444673672307029674732914173804249381864010914211738889527220349017900126248315398107461571234121788921769156874140321295782895478818820953715591443704689156107622312642083698084888647654229549559773288480071437270537532182320960496501388555149730318871384392702617263571559053333048218544614935729136487696221512037415503057669253931173770735916237243434066616980422254916599377483255025565001930797872302500794105317460907700113283307144902636781432860896650576886638255533793931717431235965215459773818641228919073408403337471708588439989064612030603759989458359696734738675725588379358756813311313239365149627784697817005543038117158350300825842636911407469136131693027208115511316041080180789388356499650644830097970594347037783390243279403994891751332786540491931839353803007281726314212826161037843451366254705566567441625076392341107609227226608413004065275160735677291345134606530494943788637083760297234038766658436928712927881502652095606125983896346377071824684693082933458586005227466629118065465063264582034416113699794325602292196185691624652108497295023830726571411451071295311774388552765287220554452304303690943475474119302068065512631284336840200490949355398407414399684450998101565769566355763751189417953325688264456615200275542741040553004327021473392544279179690479816526056948010527296456173982295145048877391690034459242677715815527899117932071063038302341037103703774198938464318846029656807773026958991667336310091897346408588797535584081621529681233934543048367954945540951915562406487519536247220145063255396156636320681031713250171006388660347505466938195783292471407292283319915655953493637097429344808592231585794147116180835022239193726095150932409183206506673489332376163849589419644620566953816736503139472599284763608756316630012871313656972916614618452866074950778926688373085104474524775867243696853807368945750868757599223600588841649987768861103587948489652947001519146869107390412545245704525471464953972974260176379522096500451894048651229978509280408777374560881296702397803542659735376035588816986487027302031340260006042383355195613173160438818926859256459285840878696846117487647854905056994720736048805084646272716887731172395370433201830133373624891813248606334302690536801990797145259132039252177100132896556661713941667074762274424265285208790110177890976460561593142390506321388792285539544529809242902302884931325683674019187173756118093929542406012813375041707396585079326484904582053605729422142085714840458567491554737836585491567946543139189316635727179556322513261707672823526947600225703526434779862408817455983928250232201333664634586553704273692014842970201944392072389762263961310971241075218643295783720038161734366878566738274601947562509281279761384953025096271916221494729854849736986350963643043535958890641504545673702416373231102488083347184688989408852304908421028561132941038488835273201188622799170962233803054562616359720243227842994066905066421386643281397846762541531991504248801555453672642346141629697199445601623096681530425132650123185393493794243648687763429275335862408834618236388590109537535038036663313906474610844727630113864821213860410497735188024293641416527894039746907955952187661439696937826502573858156971432076455778618486628662965606175252102301126756902389131258622026530542928073501002438045772219342302851124743817271325545964805661179688724707958063435060004461008951711805167007308303651611944907605696052795033180542853188021020758993975498932335909863844163076583086715373904073895184437026666916202332110187776177692941996719550013263510881326289226734772103372691982778867253380148301290677630447648321721481348706254339113952090660345891415329566953035146797186037513018399378686918935392498802576076570460123666623507086037763929560137677614870482847180368997605439440911237023804252886985507180816341643392991129542300183637100449243764208388281457968128025752636428631629045073823789244680651423088980997194773632967631882461686315184010307252640528114378061700119306870073402683714016435331424662358148212453111220651426660829939044766152020510772415881076667519912033849850425941724198116984343304409826172320781540402828048642256754658965355604221275087597933190611851641460089308965846304429870132753793260979333621289497165982263007114375877669555387396601358165781849750371112377417822310756396100084521150020119959542663316206426188118402138359885323867270273113992232640876259703929474371350865426754601016890426571947665408036225945070794536945419705461166754470639864789806484555449325872503190006177892904806053813741212550179056445693887647603369688153977238626378436972846674512685916681468178439664634247567176118449867286930588094382428408642491237222132526195225191655243744181251545424331096729766293890329704046433000611172116909936663549939384745243605034957418486540323716156340329612984945117858929219748829352861369085993908433216705572921620014729057216853117358644646210492539530244643014730554393285288954403011805196719190802332526878847373207671227019187215134451318041731005305450466430135230767912289981942247418933497163393959015537778231830960446183931025908535715632113454581405795385915815863480828483410361398845562007954146427145693563167447464532888213428854883394526825039644243579387194075401326287598216194212189008661231585267113412391585953119604625268107682026520663648520465800118483702847924322570994072573091990982870266213213891418036284209747903573031112359296964084949696668211055231918125393649872199207467215444712211476205639082380051409069445485584705654606173349464518352557121197392613814750319532345497043725264513136560933652731017507420532505961600762980074624991583432957146738779418756802612848680656929231814440412361602625454786646080363727810910489839956128383539321009733118277540887558083527226946689131245788472252478575969112923087817084748439439689779042004280343480272489574836607735328760778924083506919024121225360194522853780613469725012766361622947159567169761134281969596013079962125734196360153078909915285476740327719485965981032754026517538438731344722684430155708808609137419628532477492162508051269763817030200544425070630084002937076483385708631843147012905332698405919696188907049730005700088703077446347153380834343426329431305037845906704704342885729268478398256117475006018138953205251114449002672342530430945161289317699547327099311687868755771340178023925544984438917788376891909834649154164863089969491917120723283155631902348258834404626249468021402740024158772142893349996723657508255643619574688271455021001225885800461754659492744096712597626271397550192389128848133126182933669517507558419486435460569428127856250671730762197928815445472774110267311651657482154391242755233627402241080208639908554705295714964862501913790999193892124439922808893545735398133286882122694893154178421066408112276330385082402495042233046329552456690583661974912932383409517957065614569621368183166062866651228292896379286268168524135764154959869871068126287944054698921953349379722233740605312388283273908103918231359473015438928041794086770393792945280223483243023186947509544603608492729861564058481453423533626325647592866896989204724777402993072205872552694836621651545281482615768467142973986529490079987216919904182049050429904171293454626806174670048422044340838793906937875037225371221121212561792813755658519757425932217718012725841953260257460230832078443662147049510785316895251264289391065997206409797105919212454245702585659605993668465743652868137002731719020637195324672799525308754492029195084022322913718858403306242569965478013056298608395217570744522327908676223308048685944240097558269724397507144331277186148514776515307504485755286004695660792383976019881609002699661020372713733616206328528293919213778388521897836288173679144518719171580204016182769697421539517624171347742582091459208168653081203310439557740317962478580237270165638447332571124684530939332608778028790923817628615712890953441366981381861755116358760450313349107168304789133592128942746307305360441717655018779749638246914814531715404017552616043180256515899815716324244808749472493832558566680326474135813377606379614806408041881709909960126015588666655065527912870900925919711769829933727650265576102272543690822712793439166411801229997461863638547885045074140665219670737549822128236782952138978693660716013542714633397897787498150773813767442715053948419192123694488543271571255603584665160302122081386351506417658800135211947001956549323906751155824345011473256813709058183182712375674968582457510782013572899211521269590448869962912319069080833405984740678629382880559090646520478859023511239375343842057630187553990072832406441047666797302275799032431410208280026116960592758894273887050974862562919679093500250120857232743175953920837838483423499575983077306885112247533580668301482255987729002915367350688761746735795963881218652992462545821972230830963224929369663361102716290033376650675406052427988920162804341748095139129772262771835245893382632974964472473418423955477795129682337099952808050685806706964527531000248850188532508028745636755703023763103204910181539183130186713473510678301673248813235908249592039532092772198294724120190758833482663047566384801079784637844531968751417709677671531409228039674992919603322033713387510751740993537603721844290869241733894399254792424450855862163302917021508145922380559316488727456506299084303206284031363079333216073405910368179368353234417888600191635973764906008103238248483643530573946216562137298873122478489779063514167873454850871277538726090671463538945341187161001894433123721447870822217452863165594670256982399224405997213141178838031862636926762877125954120981785630840130850710292037477556241085851275870240868536026229843536949189475999615234112837227504783071223904134536235200001878613350713269367286355934470640484039814240648891288217067888664326778196633134844180014957191624750478333955146394342872115174271599791998207528935182213802088983885241425439494024738873352207900795118779717996384324050614131550816619616563110110870163771184386644046938753975597976575164435763586278648517904190521912199793905155292681466680596342039985558891510222138680566339927295749539205603716653117028545895181944499667942712614538251664878706943703089173360293167025668294130170737674621289515794089361794361472534789939357985765834777728233398680622997564211211027771013876830143714913954620617441813912173202552409288747336523016629344061389478557059515752571452849393951092275640171261296680652780496996395278079897612922885325917192568477277411908034325070301525694436432158647108346884005786008950261238730694524675112817839904170011135383318220960448440030317862189122357425653556904124492664708796664694000569587629270513137163667458794977700966689341594371750157042967930832090261252845264306729007232950699190599418458119420877016542536536645139708606337377306979514495796648119146239350111057704738709716104989195063428613041291305852349199871256805446588809096001577230418307054026143915804265679070506085104764843585212272274307293106266391942893422923069791536053550122158182002920727227168923872302084272812913369889116742247692867183555739536197527549939964446142177833888020502270437018222836474970709131458941700094605494787060985475654576029379290307494467325794558994625831928340684665287867042237474932152139705599298494971681891604964957334966027195007042929104479872726278388094055213531671314019296150626181413279479372481919283088981540860389747902623639082996953672771424674701072447287810215651922792597466427792554800272189461714436863198810158389690501665447910729026820579902884972831093722522601957758390643811645941758590221485081974757806347523006514954548267756251932283798361241845630103137444408537369855319651250664694120800503789745798354806709909793343001814715925799159301588632114840533473580036734762292323266977974175737847745374520095873569115188165168125601442371127133311563791873860946186749015114355511833441141512371096127805011522767451671359585849379226521843017558919804381722584901017573862874287154990642970019413746906631131714563059513886506493890060210796195279420139812153733400868219984111294558406727484618207022723699235566280695801306916223216856446729143206864103627042292609765930187798399314801914410402936903595449554435050582748854758261005573240469934488774456310413330985075327544697166032417505975065294528955830440425566540467750548007471245418653467754916521917331967078232208074254463183920085468618177586645745779107157662798773160215722380555581467706333791929061902090657255257686422793224313064177640949083804918294910523810982837356100202536698945792907182116684689595817378846876282218711078943550830069398910584119675446866774452456856970818051478677441487891515587577183844949694161658272755614047621150168049080339405564240899870134178056741994070847255438299831822615602543827728877955675903264566997045043371952666543995683092507042178914485455919802249526429688923947121804640884030726087792125893872833833842631300172971846635703620557442007516858279288660175489770877644838162763854351271735320670544364573767615681473487441422419680734274646748445855128634531781245588121331339847346526069273418399771496956023757814074363399082411236714694512193750957437222749614839793999408714490560056004174707558741793313646318346708077057113446227194452854445387615954685127051079558948514053239844790440114150148766965861623852317977091717669440338033822319237990653860310846787034219463968850264775386565074515467456066009196690793788181050021541176936859033619320436295309195528637532925555886380527621204911327031438137377119887274863740920082822886115680130625486887604576053560128048210697347478500515458659611442320708327299798888509205799089371590782986174843520817001059883450518336797447387859313881041351607164586575948751038079142998740376424193502795398017936061048799739944693034511530606491046631006754182651487083309421289857363681678309134369534856070160201793524683721796919941020911231866609070378649578705177376713619513270449341279511203819567067953982501690250614507885636570609928779226374622722929306684232600301811021092724673327326031611904445719136975852262039520379906135199496073760740009143093482149108172298080755726260127131979850607592350708524314262919124973134352319743002809043197220200422016489438736465769383186067934225861817839364222108883161576589401755081495342830055335844992437764333118210171792779111473608258910625834583352652641803242492581846120651616243656649679140407628963512680343830196736718225920694708408981602408978891787069828581149843158617853185649665070421521672082037646635743416384147585910386113336432812403790234324815517883442979290242856078550650902088993350133247440945131446499222788142711319590606469017024645532880523772576287154510603129151711726086678528699475226643242449883686407154166170930997819143437830199774593454518383094932353917839761407673510103321706387788151610547880362298204646107628094548036503644753025814034455557287221120325884419891026200524306617218777752987588869796712746871767478467855773843184865802605651681945541168479742486125041257655454260444974306598774841663710170304026569788445429364853587884864388755427044044591483024881903545471475563162011388152418720298686781608159493064288100679440578249410300772345606195082378745177263108650477411034540653809586358150288525948603656274773856934627953376813556843031565744734789756854916633546814364447889719267211785559575789385096319371427257350227364293558097089412431671780637306157965738586020989766268742054405265366878403521014074392566611219000656719746160507363734386886259639750445713592094815779413276915100460691771977828090180352275880106417697405232451917149559174049702339723282127521320447183909596734471184500977586744423499710629248905657447984009405685945362954889065646838652347021504225421130381725479982880189249132900665649225854523319057166495932636906280247669966568125228480551400705477829160017410677047762373166784159662754233050811908110255241767777639094262880824209089198095931362055000889513460000792173731542375482035233053260305143373027522669993180391837731724288004132158705917795319805370446461131048855231227936712251974013568698345716343652047249518326472506243472741572027179642475778306349943150956145224103883859493858951873226104026296725817568353568762778993814812895801741384712801072224819072562342606346748278453803625837872955327262613161904088980347269959511670557380540219947346339353021161871382052819973237045961788947352937382426392366438901757708383360092986125957777287890584286348709829992179907788755620932805176741442361232906728311895060115547408007077755595034468966441162586471279970196446625822481895360096428393138851203953218690077194809502918638533832352444535687449534595451729397409655937155101816858225599444872734685831274694515561841172039089435278370119775314751678795044769692090504493867655561279997049718218139146572092147737537330805813697939329918828056092187413768385827111642592065124046312831171046659310093313299591454016327901170758599338271142383443170739804490301102306612078827567187838647621612530242684585386050901105108642580861317614840411958398214102254794342543587162650472494931706987406903019503742178678009456268989457824106240867226291480923950605005511438448639155416540854221727286741804546405705295199143269656505870063586941724994445866988973871826896033305688849277294871431248033052108938005764029956279714871574873808355394137293161659477373530081174938850535222984789648532088046534214047118018646427361603207092562733485241520817980624701408018428566311130952605293252988766901807197294993296359156695693811337034372609819429921147151741824400871999575978111149071665007210303724740934891728565457315645993346357195572012388699195012664503904786516422999662584025161482517429362543748252013123056878632242767085959718931588595703265756322945507627337531832646991586379901729436247892629830262666718210174323663625417052763796580729388703908189021028116105930596255539660067997585846890519574721077248293270359405418685741253779102716715821938600967366714615952188741558787943516877671841269706604658150504676061756586015307239199241192112232338870296102111325691383498840198328224563831977763494632136106872937939127999035809939011915213586570404631704527573370483249744795437254028545131182040408767275542401779123238854982441995826353687244853603104654013966485824445667538567871496430667786778910797069723294120353584383149425622909291314725571810919854467110786150009577294796598289460494251081838952975985432350881010048320429764136217796783779316480409536480017329168718125297449581265594211999308468075334918782247585415744240387355995563409938132020505041772656417528579755464763883380299894741551567686527146599513605476214394373963614414303881470377544240661670019136877930202392132258873081026561891684525213254637148732170343896212964800831760782475840649646804259947230080037260099572300297850714045433579718700285761889290830493576701409283449381387078844437355860131910162953056371086962541559829238117861887284332240600595227585820443976210039977641719327774177228360170123789954176330663302155595283023716708533865168682534621967552859387307962694155018123653908502681773161826559622541893862767967968106954556245098468960285105643945795253786878211538187459155347203050954416803682923796550525628660718428979861417691095829966815635541604535562286371955270790122497860258220300386117901015913728610914325494283526863659864664776777461243453329095565785507037227264352631871512977605231176652606190296199815886808207004637541038659035317688491152609911854687133809472122267262371643914082860198965160100598276200946211121999421135933932343405598501919355259379396986326945017043998880044364475157131025417036908269038103859543711185442411806546010272763179440026190797678355206860649267609087480117083799863584689156539817989191134816183340276337791424804870188087484213718598508309006019017986923980619438046483033313955180717461945724189602257059817899505450437399349319039835645550132170865925284464394457451147943791889964699585180693708661269281285900281140904154479441629222129394495994209029642202648484508944761911749858368427787236097547624299626483956622371375180309724301555888192980854561083928063281525980508797956294085726427370577079554099102439635811102544809619530336870237833996648079945518818171766959405893163912166949428630775167973555096676357907463359451654303714116029761826704282752212138843348430571339304788759269795872363527296671831371345723247005529761559055477050975861133083151842833129654304304911637966762835119055376077365777122422128712790534213240066672542593758077639275827513518929577895941500250587552016093787636146521049439591576397468461841336269765790300980821270806562081302997918512891275291771752167146849206449200042114657363763331677502624019380414994783848660772666528213865003682195493112156150745133169162269840482416450081171558287697934792775631935021263799009556586767985004925673376259862648487641877670091312988866868657457967357955765047891369309861269669914361838805370734494436865928089931934207817063709354178802303321579643648200113619124282998813149744195059366730622430884571407560677447171553548823273101465358045270206256882841111236949071934886636070567865314594132201767177462272066266066694800839275706817994816365043977034513174578722951866443180998786553158096450351357717197903910072319844095736076973741694248731330265506490795916393882439746427068771613608219409929869357057290216558952631510543086913647235182080427905284548562171517868776125857667419626897434453396820197813184220362565898148193050936599280722187762228614702676313292689330907847743830529016917324747277634873928042804286388760352418669414616209479184334687263329120393129225327327801953025807868143585691940045988428275409746595345782672987936657931737913658570680464901120568713577690160607423999503720557698202341523587163212007225555565150676490745587092301086213555863498101655598889095630118356599749558435754234689511631198821207771344476493960018168081246152113300288582521198081449332739212378335929376774946443883156737666756461126000175727553883758915797892840850592029569866360862743818822155330504039955114487002034936065428364167909385536809913226819152374016935349936808933962094003753836523128335963988653972779700368291957954286008432222156544929487949263472155104086165174877494691304178809906485157703711174657605951032884057807081123232760120659795118237825301436811255840332706689788889657412186680826923084165454623639812698934056260585846664573927146902675702077193189185749091094541536654103115799858289689335292118728093383032622007994789497705468874251644206341574017409806105533673020056584212803280625919539070293972749448026757373424994537540943155621134652860138117826802263363559557433785697211264837471178872218711362721645524359770129374682335535181782330682262088487080546120063442346390659626083857644686626379419809872297145093114088328062382196699361400472574391805585196505679811355869423218422303705283091394147358340377820950293629808356355533078205683554437267043293432968550205907463632446581792153112409888679273547086235210674420103117731610306211373311436480170024480862374627297636043363985383752326705756050082626411751713323802773336016476052605709498169930726490655624898089685052045344694235992083173178486920748209959121099675783496082202933712019649329255422387769186055415942332931752442240927957082900751515687103179326611016561731592467223092876943887539977468174644772375443733954425512088387447217626682056885654150826688297794088972495737756199576409667842631780562918740761310926459815233336703412590331845146798816231097416129871252441164085899522819349560415995218316156713240084519326459661662284728014843288882421432854776414303554136338769225322272606928855447729754134409477267748514158278084366306281708312437991109070649180241165056206319804422093808777301774129386980104995196691649574091623193168138693763917436346256514323287269435557224073775104771223908389041067398944519605058485041520697729619866452455238857730035156569465776852083931468836656938796991563311757623690615737290009940793069804419616546651538462924347594609320164651457571725287488155021247849627860172331726457261309597604725268276361105524924582641861205285692870282349994839586349712993814508277748726994771620746073287334857470825166273449219276418298735162864858477999641099049446957829907690578580300156321252833640396247206720480979365565083300185147618447066132840320436068274999115274995990383680193336291441745410441381948328789940555307028363225228178828303365764492668278029449639899788250496327340085179488937588896180326761196505203735993697709657113729078625431409037633030402791502192297619247150093463290833487633359358894742128005846899547126209584076477345421438920135882139383397880115190708396652777733066232538335349942535260592938107484595621541829971548210893276331498205575157831753439289130615048181441176496946277440186458335471770501046639931415360312526532379278522446666612633364772084579335103038005600350251009112034384372380753080714220481277690457268197464535668358715447436132451050631737104061459635850958841863282659238798681169392701102762214435102001625311422312194911415530500383204978736761472647591498364984410901159981916806294644078815552297768188034420177161454365956852081977295288717811997798723533943143555840185464537045763043186397742157451025080849358506410583954502678900722501418973448058645555819885789977027927588617223659657149539157360070892712120233466479000887579208193119143198057885797647370964771175252335501535981885931999091457480909961992042224310819276236296156179423570702082942952244733265474823068936374047040368356503968483601756595847971785319160679112374484233651734242076239043995112863946125718153699833794570501724844053089738217869342018259383407460686450836023844370559378557310212989850422395789364445743201944637824123799971610523752173487707228683836617561329808536025147347862008609937097378712904829134674333511382825805439185697422029845879898260763527709047175446900128133000280744294864547956488400997726576604507784300824872512948706443373318989809750133329316581717093357419343481090617192219801186337474639673372586551902019424490346499109345055734309556178340619665919214338574392482901863164414701586575897261683784960740197786595686578514243672305218971825840841169318518417224619184688217887261361319215712864437275544864750981465772913330834794371602550991085493791991517066773693999750826050023555481727192216590740993650736882103753631651594881722570822911757328977868906701588513911301167049954365362533489337222308404406450510901937596191043169368555726414397118893590616864903420180297180888648749557920009448070936915094082877722738227242386803243257943745360909551632530437493167951729129074882835478035299958017755577282397960631962197633390590042465181350242131594215413526039297979258585091276878028753993996498660845147151951878132281606501011659028429060850951259024906938295010818381006605731354291716981735133774197963700554721049245204433241238045071471365528562059287746103493834956431220142732430820563621382433930171174304644722470163816154100587906502883076857939169695070182855051106754937189798504058631864238869682431571725885381220118261941022801110131195464846365415156231535637037161974739610577925605163794351449540271847561847561194699577631864967601958884391674197054011444197273541084596145785145797706529974964670294815032699531686089177864483086140874171974370989898381847084744216856510766568380078441656684941931473459113384295177123784656305012508505494587575407843454453012884602948805586412257774606544700480406201652257902316012283290650137086535977334491526819560066511141061418793621265051957030996401043925305082786119527295952237244242198487564501383799450987339840989892982687671519730729327971646391734715702870411493429081813318190718030396976571915197956572047990812289659469130226445194337497792063056614382544170462184011218584265771559114193431160814735275358330677326948031619525672042599948945076627345741607366904177418319594464145622262382669479974541369711016966893396809171700983912440838056880226185311958838353952421406798859162748060711673254541255838540987190287416669068251505572495105705572951906917919916337765127733178718629415043630323279930357712743508675356945199672882939870491463111064973996855980412501798660043865149939277852218810864047515977531623336453071731288244663223929540694465294899013877452895445617007280124833048360977789059793328490004264510493218015110584451753661976841425541820141216475483431854756441084618857189515664694580351227557136493420324529590143198028818607027387865149944784184486742556700554154886259180418955605905301597569952410478859646710193645437479028603863316893512184525261137773471016278893977501564251410137887603075530732971667052098736324149327923078474123073276578644132882523016880887356254860252792041346724528632721554536202530985522046496546985373595768320612757550423809028566343838029620053071440619944403518253882494838420587399350868507916182189360222165019906953415588950254979262839546398931750840310317650383742047833250993435231696563750671168929827282313846996738219479393867593603259432234480782329097593067252623746961484823753939604910625876740290571405516940966259641565601011953109895138909077918385322715599379642902456152328110378188243438642952725494060857377147323055427147122360001812773235411694662938205690903470780015236907994126556463167482085830835621725771713127841819385578426187432570357894012363428753855961966761430938232158813129104431213308417487884042448560722722788159735573942807035316212673598733144122865605071864860851567355721249070779931652217895204725614915025808591481231918552331377213522484847259077423921029214590079479434623546177620307298559976197851480787882747422899035939346563329457738219920153923823025168312316602932760264211539089756556235241288354490136058141636745114627279872911956485845178031220912941030244840635229169523856723928582750024694370708272078257028859329298223270369600401772730299293733194501135990996795464411995675859970947828036917114485831354695025484378598926445826245389565783809319981449023606008878335130978122966261157263002100845094412507896505973899197283349501651355432436904438879155873678089843513778856980612055824492473634453914102575250383200382476653610938546733638083698988308506887517163962089981544033117112424037986155726832301737207335776105006023747131804181955754109762060652991444299836504455532059048281572653999252533248356592909161464166581109039224621897383498282083126173910723455631454193009118200950414843644800812523107712843479350243593170003491919025043667896670388947818836606329019135144926169415669745674405036807984269947029846035788565560935806192638042850261821825332459731471317076312454862050356224622879583539227526676915139479880926111844080075899471408818250843147547241713322618511567569043468654327217396984295071523307410031147199534870633386147229291336219041605857258829729615408112937237263458308054079701402171200717273197059947170711497519000414645725099026741767853849479528938842674887530839460067945808742989424451374268532952523190946601797087441488708029117212975017997227103840251980316062100741440947916339421941231594798996596197047482910696833368703888620523742042642121063123212113584134934908393238357882376557062954218950062833444605410943591175719377648938120609461642135099335329121994422478324846433705383851052642539597652825580156310830694761512129640624819825966233949270624817409099824766121380796069857749394932150390738178989691877986483527715978999160788693614521028550466421232202955728247818835341287841499796428709403334745578904349271216217545455024620093709995091965720081394626835988036547951341627468322588044047172210247614970511192711971542009400165805452582474875534202814780120963680822723257026095267214847351377181137085679084916187758098412516388152020127684880400126510519558810721310463332710068250766722284398442877583385401891822932196468563382324742419741021812897656098227009265076542037058329087155566653076561290627027576006197519937374141526710833026684032877760064425977910883309857924881236105750175480397152961179656507452260470480587404559093985576868128994692706888213957152575325058130040080709933234845555527859490575006560860831117141126003404703083737452474437088717053806213001738989764293304081434746193600344187545028068801997672000813020996922031935079680658789779437081063749136587003068343305509734454807297424469657566859319245731610476199716524133338292138975294425007436181647513471974796514924511258505994583630284119256018238994388314401940795477201541818621114308190247607836729627087347311990842340197159200992383893530159474463237786451915375699282623764567217109346044860519113844314213350793261117272238975855742585527431271856009795513971668874529408349429089657909721627813240196235503711871364343264780552709838182240951810214024566138797012526589839600219290468307951058942515129016732480865967125427877219118862752546882414082235508575143827386827344259990282610527088865681029283754137223996302695152565087037926184635713465704127585601139748228333659457659576851471550254297686840514649575531979622360757872827915394539711560244405401943668554600543526625833051449893023817361770080672056484413192499102914320915604596647185961199719460095208892922716193965658545482762308323382969289982944508197211065506345565324972322142060733234669546325416557392249556202016556238293005577312427940481776098732959502460388321743477541387066611122275970331823948365147527931454379500324766976278981126962537720169960376344866237091086310958375831822769183227763609569399069244955065101418703432331621346410237463065181523315559523145674462570480985439149993667551398469191601665440278604936700401794499662711614929454790817565216315647477759510648957771079719998259586445147774246995420822497254710292080281871844783924007851189916140232492409026560077198929272441686566495055555791821731870712806813008904812602154176213551058819063051577032461040734424226890985842093670351626633997602119083512381287311355201720100913419087553608511417092187972686592108083667993009477916007125540666278199745362824889029099116946112927252591304696813109736729705493765716962674854249058901732148844417355238440661399225327101580513617085939235625238430305904686390925293350825284424742436466355375440142406660853146591636238590781473353632611329081291811790591814750982805289294324291849048193694417707661999272767380426048623187699288352568548899675187502873013890137809397600986702919794046992807847479417255675346136724439815535264576794261377898152676559099262789040324874485625026980111569643103264931386122421637749300925507979246195799769263549704138410608514547270726913827279198159680613852660341676393318293996534669323111027153833019165187169647436749585103540022861440022567629717135315628408380656754657542372047926268035605632640996552291205630505305425884295036278229767806802069234168369168092574798209837154091577539468956665511309491312104746435724490478229919755373740900107070376136821710659136163276658793376047236236689789151948774648280345893360685161098671162701826191054865268822742975220608614306805822428637261548478040930267482277829162749662349455520756183922777765454274015966592418761223621896330443943969114732765589057331127296360063165382521663188854102452795190802669380373524818275994531419186491774517679715727284359155565448570807094635712045909536167549596913247843634737494664291346206122059970430509965494314549438635577224753553334525656702748668902794837327484391874769287025237729160114995733629915112053585565326760839685066745779889449076746347084906927793312183699094434879744688908786356285726263514263146382602214068196678369647174881788271836392308040823628565902818639308513872347212730775598023299840320451714564726001376333531139476362480205299115740077758722986533323671507766405349550571916551029467723733674965315777332497491792728532980344775119316461064554858810070213627775275571925816610836032291283603974305805442078149080337194260970499389313806747955977263050794869421053479083375653259431310554125417358362738173339216111210100277200650528267386594235278184033964039956715984188848437800768006254480169857704197099123309861083499231981686420371042853618429440692000506869237862493159663150600966716641133264536917371711912633280504664811943928766022071869915553075538449637685661882763262250462651967335242639012504204228674505015211687574516745367954072916101358444059737200048517072484138537586114274814243596840082070000673371005099531556019899446493870784370512487259336371842725640080841240130468111529412453475184527290060323538615660455874218225072096566129943462153467194193651175616311005919701635937641898097088825534659575030131389372295850118174311445155516720717232058253653848783060074628449506993473608879000269079292430762161533546951546580858202049487834142075588680921920094771505911319247237960595748097029319393840206484698631262622478362254094660687394319626618979833364354854250949036486077354129899063278856724263224285189615512052914825450534641335906688233733384813673181479702013102125459780756312606582268997454870181109783531373565500089009267171995279062103620348438590841778809081524631422620360254866279102255299240394440876849188734001226341807424648167477315362876428799523043889381140456847476424538131191529223579150145302462585888721083013029718853391981684927321792926147879301276103509103022068182368043261432066569540310051631870983433357146645079970244849139819388632891293907123388875642968286832918199209987791936302204862821677188481787118727349548255536754955388978908220743538221047476234013805860302043855801883632077937122547642737564548588009269124285644493904569523074985393433982750128736820608250337873575261794172043448969977726620950732472249732297462490409839272807718037673469372808182848105183820790012423256016604654417542380649795338696127734536732490177418603642662871131159198488016425458385929145975920939105619784242083209226321794815424708579125944722681516171679175846618770863076621654637295313433873361143578787861954038650774992265889052622011723145088886746476946846647192393975934997981934679025797818808676785307006815612452606144265646205907680801929175919171698976322927841113221063226410732248691998036003817364783426401752707754807841152847580004594034091788111170419095652930561414962532529585655171812634257135679204623087063943792542635010725949792682145703513829062624790088951005034540442839024563093971148122542607848997340782832543219250442966390328596505789577076499980977280795234523595481876857169023410506956609000417365348624921324065182307376351707933383615560249909434981475748357236530128038696184226700490161874660050543683962194154007242253620483895691950351741674807387441308921939606272875733126011096460444060905361302230475159255970551932575258700143050123788856887139644132654166131442076069288619416551306768086695573393608467408415678605238604935158626760926500046978807711479762101070399596596495621624137782576751597686733583939852231340306352698340496665653324950605425737067511835226819846629267310926903167006572499160161947353134425225759895687204508591193901302870582027399589646317155285151839947845167483749357156477963417340914600704823653009824693925053828928376937218750918487602009327112505693065562421432368689395272118990707106852479753330847445512307121179335981863434391460283437032815051742736751953768222466957728383281454938859988150996001740261453452136835899053313336583918166991242686130073684420914105439013665820226845548342445960416480237641984376941836059209321744306896991744010234829202572327157196883122595056442078048404291573725126256840158451819064508099308572287829924531106784833625908490452670863861496309404562350549968193892651517375905169013816936022009937606726628567231946378014187726792843702976788069850429977010190859562268111664828705126148599913212537890779351839852236971431909831496414121617499884529834893697730953829391724381551214335259859797355606466700737835061982221636039650341491273776676219097291859446840319255764990540390902519161409378104511448057498406214189362339617617252497430274725022266793357833543340325756053941158101650518772023187852706775624288679451232972437470883431389412816857826723015276648862222253111836542664813959528373233194826830277479540129116128843150576000741967130818227100129326290293541050397326492221267024619564615660031719657176657349648298107231214179521494903931964570776273280252534812444178611552309696512883468978041051633153698180845657736204090306498460698199778513602207804264336141540544858006221451564867331318076714247609482603058542907802079177858914988270605262987283443956812633342786911611130462854600484067688548432623582834068948228314625164866670384869543984226407598856841216958728899516631153920175122138389813263866783060257721365415101326691113430830659231909843872605125231614524744443353669563695565948350392993308336904391294136514767962323280461876238687610670628590314790955589572439596957015113793320022143810885008482864635791841510681056323402867979945873085198688250455018933523943975726585843043643103068559983539171462006978508933052685142521712469548969395153745186855890561309033344426840570643791688402296611710387946183364829865111302002966500725419999497608073615388059557967130000372980706578263828175435849757921607502963484789172467178473280386482407821515591712114909973436451213928697136623129337806858594290630986784631968278785039538468819800733686007907564360678489069509360354261410954868090347465503305882387695676807945595764433462989116774974021346656336911910423181406612896320369156852098113068674520855031521193384293820236630085157627616014337700123613095555345456287258048986215555122641388139114323218895826316010310453591199396279044297281347669836595071522072311594166282614110267013651893210094456776758094900871978276420927052432026743530209935297116304004903396181992903249355801531009566801444985630861645986503026343064737842841864057961264122213025796273666537524087826561068665111594961855587127512361781454156474463632264139896642174068663243118639725495120925664161251189425926394756101359065265774147909229005611850746252401189818302358791820414931099834277239829149380817680050642010323415415633128840436713670907964603284011736278157090102025094540684342228589959745464296856973427002791546667706864843774513946592226625010982051210819581696291495336931480408269690240816011558393308791690035174702181268445369599590198762976802306308807368201051916690850608120278878464904268644489547360835682108047620008068764043101995222872510693671708928328476530914600636923615593595369894194213419059649073410033128282444873949969557123729251491675473817030138498582142771122254688771110460437431834199893478413963228126053095590587546413048029089850534762094904639723523286240708313094568102684807489883742172754769926774666323498544522172780732938843827194795320951452631136077526557323358115441216587108745857223698485347805432722420137672143968509659665227946903510518779322905056444753409077223206948102549003285881501567355418874845770581611246229444595180480623269182121969718871029361017679922670106323009479175164134311496786756490639706329355523202550118259118991783333131287186905044189279701626519307640939130734428163247016326258843853192507483348555583500929347642899693762939354279024171808672401579462811529403303210086958639280378395020355582585032756137893301756205432507092768341923051217158593559371373327880454467893005358664072096011050944774842649078472974583813384502313144072643894270643071126809889945988367246894373140968020806894733177389652674982646443496472375533874557365031939324350652737492350882501949128217590226192825009959728698958803132626008072742011794891580510475700061687068788199440566969437273208054653251317563313817247755958686348424147827964978054721469007258162345285760169081914290628455444383414302928668630762215991014613425995721734923909799111018716439140876716552699437473963274588087315380777328143833551848012128212312771731152952582136095152128265327181342567287277215941418903337745809203086098125171403235775466013511716850681542445123804109826016560196167319904053089706284798620719659585612745239336797029515978747585929019027567463995684125426878616180940858701285939745278537129097421598064348423981480646495034699217396006605824278040912897760087739808947985131034800195488460674928845201773669072521139997740171407884512276444775472114925823435554991905570246420761664657085069255143902135935862201912901577349527860898532312436532435521636157163943367798423366786145999929623175350031351385137910306511703527007726342442287390874434046416867099965762749910587896775294532006094299359422724615130501723145922983134744195227845413409832281090405476890562850335836174041387596981088723945147259837701262463925926687170512776846071349333193176252887254587910109807492697470582463581836746835192496320618340841509052584107590009636892835539958932104370095467985415074894269961404040786652154095539901053996648340234077750073242310601445923978577088086418241966388761875595359891823305556848635781065996866110573352833281069806850748019437359564814327522448637589614767820480902482677629847660832279907494325516811955006560193335100832091491765222652681974966800458672767046580019193909122973126517938003364707585725269449664278450261857089300978072600824254643074803116251107596733672835698518100800859372800287606949589849704291459678200099436486737401685003972938533334520517003249002631180873145818389551702819360249175624060578038593660854042800128401695453324505332125787646041997633121428620378971016261008985771023243667900317449733432342884699658447998388237652010106894538753857781857264885744498044104399796290819375803229389069403508524948328506752979959466087637348274164459533740954415156132449726255980312799515273840785038565763062878447418789810127347011864460744849486005133744426089208824585121132415626456103949624904326830413575752558877138044808327732893625675188545482015349154701352288476410073254963655468122117210765823795912535813257149439090617958934902398758933755800198941606242886274575215744591553563598428466755599850294477878512830836293266347917113440573930006853810249496177374248758101941381753038233961721097998808966472247829966750571949324329105665214713584172674057794795238296510570853404646801458402225828032574093831284509591042832461547951932841255942072750984849690635848767246453752540114945414301126811368489397199577098693529788123613741530994400332319531427224067997202361079637893709754508479135571333952910803923930578304125932824543175714326257939162013499481204284497203306399218150353810057830178748377236261662203349788259983508364625705943585660036225188990268121069828674864425387672769750754503622094111549862488661030739271809777632366106531833355732607454961370037797415013339649330050653120850112765694125723484585357756226291045700655535660352460589944395102190911782505527975331543192241075861310098791017115720368352085720535883468439520350228605240628413282568350490749979445118885751051019805431513652085924578928440616679888655585984804476514778641414025595886870829126302877372623695843825712691904595071291853271199330332897061813753270179133473286655091878630708983857371733010194420923257607686597748511682173780608335252418368271907102795942383312038380672248591134893060275508164949424151627379155374692025849089383437288693761039207401369842148239173905637620072743113737599941594138396242524049841258800623785614508388759872341913036185704083250462572369159208424388489596515343463568179430682034789337473945740650564909373919486259213956752423529381505997385976930608921612986472717821034100186948611467990919060168045049306418057129220813146025849863350864168418401677368608389765306125559208550631036924155720034681309493695332697686797662332264752664185414797829827432959514562783024961559818852397699601907010718663612572430670923988280612578289840552866554787565346914109986634212522231556850343084141993712589465020275975208178830503775951478344558639183593775452656271950457777318768546438120757842895456785704342134343108522519335825622923857972120641966821825501373549101586739574673377604544431654478234493228592644297121942283411971333289876386423888932165538167555979211520849022168442534503233475528672061905927699201526833861849016589284750980826746405710282744471663413962214469445595216731403721926482945180552601855190608459542152546426295427150917495240211317592617604622607551767598052577284218529465446082073003715630950308456023686185827166368040182524426910342047699860210361558336085535322755912212362635545968854081295049470633323631209317564510389649432511783039757973672774107755668277230997810320060114490574808627030096896985045155214562115311339593830619894393291501335102868467146355002944017368218276887314132851969234642452600547560922202481355189904372663462395489907019256882975633398084569302169401782633723628085225191742760607578122556424510172516345602002518436370584725581768217079345738449634037563379683949091141982082116066548850033290690239318540283404169171595165552119981660270623747592658300659874219088401082218942165155437601036487894326456677343268532032617923679604720508826678499206415377199951917818216216697664669909024653688127956872576170943776709535200518728839607159859565023641854945420062897424690177292837797895076322525164324514977264894042011501382574985836790723829123041589436460452814709852999974953289064333335701947890687717320152918398122015387201070038979149760758972673676196018209732784529160846485593038849338627732319975467187408422291958664183147617302476936202834272670275904402210055524008053762642342333697500939720112569244626699929196234405289793001753111376873873963380487555871134802090707544412749788045904440975969330190437821703714095276232009483542769521352976504787515419113724511651394851552130107606410254596321118936784330294573641225566482509218036979646090692088521787881387010166329667514043356684134361191561641956301102283872238852856023913580655573792240830244041640015261057596332485061222060715987552602815846420633566651926129262734559521850927173185009338624967899291870121977435069144299934082150436600418755501845348204707194224800185108907633577812159605608400776648248021219553513161325728858179250965117977589884032417072209918593784972426076841163017944941121652716181151985209117252419206847963549460295224197894209183690975713388456029786934484460806905919082638892472290009166073077409357688755759998345318748856532571888858012398729186714551965439928590293427024092174072412539692061879109223188600611668363524826265176474161056112481154883559000890178482751649489941498426706749158895527905302254818234189780529299066016779180186730837570631669252007540672280705843720698493260587996685456722558594245747596606141267501258688539804584568651904730077637394544198381218864814327853323982800087093134670218151205477255663021512044432123907148486210755424281091312264827924523864108850206304659845354719866752030516554774494648437292957465928382040658762391470802481256398215850727207679821691083256199891765365710948486646948577332142837955666996995789434323517238354954555004468284985842184556044402921748189672086115894203303221959309214850708751398138509200552824069246528454297420520264837163727595317769886120173893732695981927382808501034607168535297109219270494155375078006274697105851944433663543839869440411127747643378589495958463964804371505605001385536340535612595911331089235289598762011179039010597804771385720575974059402680747860621009649414326020504734124777385263985713268455124734721493582460596532606010239234881386022628211635927498887762356845710880770488266914385735218350602254646233678848247766427805398143257781158803242227966070321362663112157696207828501639091846292293355082644467555802286084626916828075429748053277361908811525356001506015696948325744391202284044872413112927862431639012106508584381799355483958764783253004423787179059115255591991690870186844956115389319534996845819455302858024988912808194646132995656527459570246623681185285962000421676022110996581467597304048940364878764193020621302686264208727339192795980927006600164863114016761323144163209919600424883777326217170570122915232741987841002527757028500178976348657866550089532144454346128423502715097284101712392976123426667447467001013767298900481190786916376807924887243556268282938616639749913239135771503439384269383124251406488470021658270541293630446426593735021488130445586664565526326262963759743880159600622531218493424850247785931222220663217449336586778428542319974206822165953204950530704252456421445924150325135330524548941111817423099437926403010792919044310079573892228603365758584448748101995616896715151839337646910778138285800114444792724745924026260978389636310534863625701725108075839806873054208987952515301977086623203398870378338710484999569679555524916687845824747871418863252506215071250780471712442437137312701938244372143936580635475504110783223370019868334620094197116249598154921508767672727700730284479579391169114859780379699156664417915208368206478153605143187908053292605225891153546851851732422736952579705031920009874070259025403022296787151405242836491018388615473889402915568298386358364318002295606245103667720686044065566795106032703214661232504207693978225235362596555708141827158948440735796363047718368723914740125733329997644707436181039269861620935558243065240577045965933291396828268485704270622161469484423687253689520295512711695145639229354423638123271191985300317619859246635388231606853765326529881122047693343835946511555363331014918783327595312493445656995765464560267884290397738231708892746018383086732951671505190661516701590978205662194844873812886539982735463549975308259290005171759568276457631904503152430041853123152530586806282386752234594364633541955314492098924078949695428631844820016522311147536026781623113394871270624259558116141402306063029938063850609084024984376363708478050595749738137648916424040330074380449637075552832357242991062814651064787023981136455464665060277560609396458860343117092315598152096644826115033799026201288190405955000402051787679110411946175838148666071228250720844029656372657344703747055082761856571968667573789131172509071479925569641249402974949018240885920368567689131147584713020867228365464060394148857695749686790299461494565953779385298499941205976236528142639661411225411902953926086331943839400042010256645430129718709191994016398054046453007361727464751788632440992792434166045572044112006097708360077645848416922428379898788896141384253065857387763142083052033081669323165035385164865005074175121271504060012815050363896725869805796775023253729403870906754499725486143769559096469871991928386179193253712245275627615165818327190107291933566993423003282407336958285259117070861323121872084925924345690702128633527687232055533675335294794650379195392622821492012918416909988727321837906046230847919714832216674033585302793261062040482344059309829703592280545122820158062053253262826115815271277582220012927587000940275875341067352627788854168944079890311013783682761293605916409505991187555851041926921392611503366344209638576369787712688481285932553323005561375255257652265032406993903459548123525142931977037206721279829679999904119395061548413226890316560681335975709662119405790658429318200718666849194621493081227478521186673273738154400710184334799302494180913546977307643866983970435556471338266342647399175794808134819051526340731532643263262124027328193225590075370697986206598168522434907436691040002779658630075214555837173797666663938496536481369108072510091468805308683346452628188674264972729059029726689582076289018924830532935815885409488966140370618375180519437308121990862582543090951141179387527151455739061568207096661634922125237783536557319266586295894210768977414756517698590305918685662646012292212492439941265674066430275806421112284576544526986358411697515462897063141464914603040078912375988479119569306731592646985417776890769119059984953085568336693750193044725475498793862190414843635952951765070233101703635767676456361307662665151985085385027348033798020358059150074116063556135304948872435309866403616206239165747669703920199399548821493968186125606978400380771223045556513978344842271191807784329295058911719136173657072773432093465825418900030999439342603154725752887365244965423617345770633121933825349839404530676653943354840532187753834013866140743479958160631545420380738526043628075776074200051621041533354238498962745710492432836680128306237830510908433854549583942792067934772146446398441539378470962166267065757282656433697687356396373036890994485356337567308510113632557992780656175885823048211281560641298152623991933451329619984535102877593668122696740862684582304205631103689004889820682818156184880088745040610051155785480082106211004616823625742660359479311359053756732169638328450528029977835699589860046984745340318200237397877238483923688551338299143948064546580274122121391316035469721473517859695687408255699218009416754060359363058335895013197797600795783675780480746467295340386817833590076452808003603758865133995438638038617600162667360922700753149022967348316409712474897251606778846807113086542670435830730762318622650758887724307510101513190954693039389025973635656708427509769747484089902155558707804189883479973955065487151429990890021810375269175629465973136539849496896229714193353161212593355624018016343556370591430973260444619032360513843718123285074978883341669992519909536780534766676329444815754329648730705485050176715977213992030137258035326535298611749599799576099377965651092619444547962356586173533219842532649104447675016956120124063032941840788740699788988597155983662363312932277639666102664801597351764265398730033235300725596697711156828765181074150691662957262185412331847201658513691836257996189452955713940183900700416801887476603242871119069473407524890246245981030374863884226273960566853851925817517806165186944734092102645148820576756412614865760593361854993825975709611581504932026394171761307207897881640561327648135061037084328749736139196433702819641126454289748802936340549222733349593140943095977936856798354832547897980227389526359228480635311111104334659763859398622492432074079329329523346934822585328936999269396825744332209633791927123451777194914585945997612933789291274916445374401104189884764948987915668902440930821488183860189037838153968640398286103205466944685092781580015549834531971193921697755636265984252968206480909838092676484009571104802317251090222589514000388747281431730206050037298535198893281184644444871794713247356614606614014777293424780194225884994227258007808870197754888117670511178304531085651334146396546197993335582573653420532059426816517568855028177387832291314595956939417020777209075455988387892427229020015535244148030429579078433889017524722230957272498026582929537147581675561770383363049303312719349560828410664295662311057490003462547360036239299777736454224045495201773391751745444067868370072107097873950663308152357644231572324103461851330376690817189051819979433795928816239458595133757252618933597129477999892947408480103775160537957373087036834025928166151520580055550558274759744988187269932630773318644349332340295283602420570824845416395151727033022817961627946654959557203545564001987368872328313919307387875058088649272959065078387765983605612535443096133622408931151059549792250240827416339322532652740694784101867505497762259075199697784196762163728363239757082974129883540632372882393271037593103281721007444568375733590679066108054021750227203895341762077872355430795752954917755839460633377439393917098147004567096700049066637864398051053099826440362227684206871051625123353749053168607420148134302902448627260162648956863317098415319208325893171371324256860515337924762360563733949998685817283533348397319763006950759431699061806473826135823316628721237661474334293881877431974406929773509940804503740555917188408497917895720904562594541622934710758055467129432761039861495843765039016290070866848603996824364957951560974459717435800205783851024973786572025908206765174157610265151297358545409947155293907816896448453878183701530170407618867521792507371931810416643515460342248590369550106633601145650313003053226134006233796171212959104063765945973200440231364949142927935603915696950248228062451679221286083866677986123184934135178278256653283619890659869899031858241424909250012071351605194760491376997041475510418077463513299966943705798207333556931885920542546969872758052949226321338529902469781169593538925663059226581673342042045386180710528869392835383863474457632151519094623392278086952273013869111885403436301533696188905238055883230318010066196515621882057156572559607227666463998606448916932224866025948747665051558548464919691622041768088898681739898652576876962072965500699357006556541433207768574536817660111189879647256948485807722161197494860406019135396141618248426088565529561135027014607533753157352660639325216848190554797330550548120256019282554339842373559358047070225836259403843520272943742286331842169544665997333041076635742676351295871202189380431387089304188038131553126946112482069917199518325023463122559962492516976208143838924317724204777479551860039820702839046729213464570734813167881342599896508588257833224974688103127892903007629297001182767758505295195320912071075013979352606954266586593867522622934663268315779740588768597540159126517500422224840186761369250133244266939675161551369643674681488837965950416867128947440393439420263029662196967404862214664432088854328643289485020847604405509406582722876463870654645186407583606288579485962552958052596326575743880862743235571798401795541019555616765821686665988455818277424291752460235058789165728273437688813730266926052029842395109153376911151138453389726969876452580119926457670456614143831812638415739297571894966190189460674711045718194819011803500829942038750373206377584634779429865759969679127135440835224560206854647223234196981392620329199524771546278359901552063563186103513422524993062282435263397208189612521587392612477118342248493012391851955771727314988958390119966621819255639080933100658200286427370108814122307155020116457873952756126946942300329822451433323157206132800610551195216497672695515184032679395319447808611333180421043804307363700200933376471629013914368364137499622279087539533405447727741068327535639771925045495381167606780241166975871533529991723983476672076881839406357994296293836587918493463478477473729706291015852768373658140950373778249132871319591432474295101782736352512762957212006986875151648748104822745390408026068931425620209471422282855787392629497877019119737251772305165351565950997245997325067097183259205668799016886526982028399113963810808057320882117546084284294183881494236559653528316197980602474014200063745873864647281445002071703993323614881355972315240489194004545843793116632385095790785028081654429884740149968685423896670234645624890048835749529995686272760474142398017026324073728774647071366431853194071256965987237098484279933972859836391276288254284260077737181702295330674225288207969319847342546902072290466145053415810112918940382123387100218251084672972072733504567225462974903505589280557310596503506320661988334720221729790335012563591271086902369400475510212132946104453189990910204529673414161679975219762079541994325138410524048230822215937088005676603623203636466955937530591815179049310393714871556733978107681925587313512061984461343027267126637166340578766994958252725289749515221026790310430174725289442776993064066131010454909194998953907806352841056277280118905076971968476375035849279887177588983903338780634516042163114147561760751790373247157089734940599345123203994064071247531469223875535139114022680182097398868177084338864015664101767338325537934460180142822675428633197277083763424230647131621921163170892881700741261160564227906016124473335581463792896279503110164544404319524711006481529753926090291930085963448012884073515162507187971223497277384981128424272175394195571945453789163721633241545287033582047781980659462311569558328524515739864297023601824432136386773979561766231869969342200044293526305132285311218000584712102749187953487141641572471280492812934999414240506064894342070404520192337975752193362079949384786847053801514601207780828571934842840608848164036811189446799789542362490172403692389796970246845826837295943546788447482975679818954803643200905641404518679807032385687009003947464105161565449701918629480606551855640994922509685948025018320089084405258717917137841167566683200833763339688855166825775929873376308016191395792497071354688054446946349342521767854179629693402548741544618801034741537094992909852352552561958258552303411208085783279429194330758425042171081429529526331602216355374150114555880820476349482950035494840009140217400611340070338163983213560794048506052947596806889612862843087654553310167153943969888258897366714404094189638436741082104507747680538835892547264170991640549061796107457541376258833125732392916158715550370284486588922464485678976238359666159635865730765597431057312381815229290171766860940814059180573534807418806561829180766667155506673208366803091313815233153822784749206358574380461268787245067471802053396439287501845416007247634955342015878143553402878011580623906751523488754338893883891561183166981126338811823894083495046340523483540290620074167365352802854426380333211862223718192903814938375224982373623887220112459059526563149923347524212146015549647470067248291145809255572443031302039075187353167997605697152143251182274916464029825750843942634081154328333649944667227316493472128015264320372340894935694904939385343460234333174698686255159098965398603717652630827077090913544903902909235715744443005836866547216655266370902533821466875325430833358399584602805050931867092664257558783363764828742439747243437814795107225620574314210184001384074754674178849305993870253698182958688084269782609630318263582683334824394376717038238260831046795889728576966334894034333201647241873782539361589064736319378741712699199053377002433411903234045668432058676992671338737166420750216086559906716008615671948895724286202842210259872753031898004885562341230280800394801940926125273571370918586438138554962510111434401677078547334921298089294555413080209265985927571365936705238341255673096048178332527697927390642913793856703849973843993041898619080094283830982325210462084767892221385947508432834509065151141166637202857513410295074791165244781090073464656770219414222606590124630207060429555221067924222759404934733621867753531102220207456688665142826439769446526600139772917435616733838231374364525353614796709952510636460519488069111945488973762887359256695897249414686157382341745872553666040185517206358068089129284075657516894525527573448523573904118521719805983524976746894912745108010336510568874112120506447435133492631492971720334546790100237556434184629989065678618093855127118018592089541352257396481006723952517748308386237386921315768102766731350912043273557210688713655079400843743826554376435694038088772813377709616486844881695469062133706676208453105678206260349070448577908707834745469714773345663651999954062755113741661641439112032386431091452277529566638210263303006614134641721183475427984143872516078037782064327723167715747527699185447944318000443014655143167239742811919712031426427643048830404607878322015231221650102429712729350125848157555513747483440618120282716713499012333396148365420226293332020334476790975985491684100059309834595388416335057318703179999329054521485863319397795569354979282730459536389285527713555575901148285131046856434471180838743102956143460039252256371791675960208254131958987725572420536664926478803153006498980394269446271255821961660241501205409327050324511515410335841197690945906387801219877785892204824575499295704278560443996757707358733201442149549670578486029585493667088942661183341702117534571517454728741102700293242894255847137106327206715821451645114002491967405045807096775968444940877028197963856137642113225424057198240262660736270319505558118204088716510886433895102577686045169555660224291460547725182647601680239286643672454048156772724857325022826902287502197893589703198360809075220032433456045951791845929846086370558389154465339139408705041293195801473470211679407344485207261081142901829666962507728075262069674026876258291850346966133249217875727057862525029191699331278802381311518581817596500931750969713041415365955670534974865484375233163791348324802180790686280505110919810980277686195300243971631285139149661218356004044046562648854233594201344286776576768446050909605457795618205000770196673327942567274183347628245935987371318245315118937076784925912442766282457923374244150222330856184149797348131881688921251347849191111552192762209925115806678723267057356135362271095899260302377017851008678400119458703256176215932621459701433603302214828080335538743169398974409825357009132833304187680843401365423452005015149355709757674291603664406090020673615731527121824167512927057675188795173539002169568716002129265966277437426556583853652740848441407075848138397975332871740228575556930303188341782432668588382227449617891073727174725813499888834176001330298407719125629483316894072857039848399634355602296149135346966350094816534009887005494710877850431674399874899244872026760071512930557807443923632852105313185595876303453080208167202441380149580230490228616441090614647208900345002767301379793797694438487769747113202718604436831658148825118546047542462340502672578927186082239902985723241680018742922742351999631812694119896705510861905357890307043563147371558181535909204781526637381599135588566715550250150913664610774670101920140184756347206757836663391611870163669509596886823561267650906155020799036150567988498975161426075797268336437176623637032799704301707349580853901672065178694178094521576126562471373854229429018613206006651808516549067533474945684770804219916787562274869377204426440061471886383359327262104697436271090257450464584680093210577071676964720124295827079345516226423204003471754634382546165247308294294602001157806719568468028921200524468908261097103665547777773868567797397572529285827077174602002745327878512929792905099592391209787410601397566701923776741423422194990414122735312591063625179802051846587735140711628143280005531923791447507040984280170817106121175448164141295029849561403909903220645376364138956282575654405082376669027506767402698341175302413356764601284800723836009275544306922088746197477193168752780356792218903164920422528716686033618746955828653301791057095867317125491453265011926258026324646245772411854692182248130973662989356135257326408642219891961013898264437670460432536480375193314785643538973942624194646779217198919633106271469318422973105187561804810788911762037047528085072919841880214844799166410011377953180180833048667638868838588593123671884097281235419461126008625717189183075399043133813693875203127262146841050327932833148586809424433936572386536467406585209851144593831542846972757810893738463970247689363084155354722338495951031075757857593630867992383726860213197616938420142240027105818620951399457615446902641876356750951030448005155899116490163485565933933931761376508329013698917061531771782151965647681466141014217651492297796368906551159191498472916409068837193020518769580318595156947196597464170906440333348144564572841886081014429492936799822538061676533269335277332972424479608997561963949619375219018308658252195575406386535125827551976730277302128469656115555789324465909011344201867513647262076011462467944656381240088085904276436362730598016552624729612392777940194291505183539488434946737055589703501301075170425815045892503873760666770778103459623033452489884181751254835564388111342934949424584348575472840197421698354091471324050883559196276972152723230176482974156404682583746943424965802615829458252634576673602486511988999553918231883086357298880588000611765470964634924045706785430377559622597287043550629652333398964506514295391666915481926392689574050114169013879263126543022718445308619300299383084408401819418862035390931751220205038940817996158848985454547682178392687639158641436082962157981191816786000897411749330631907122190175624309555747141938244289870560370853761077842734463850124836959662011374280178314302997623966232449596368710570443943643625376180367435935233757149472028757435540330118422990871400993862270419172715773053896752686219007091359058665805324524495207939042986222951779238284995806276163969032973749658516027298510704915804714683049955943718198854900227832594394682691966203025203750676171880694987590040168728606837625858519961653610673026715729341606938750361203202641063738636830607561475773444832959035310991253915999151642368518517622309942721790962958394604228226411423710178217594617643412029082900143251641682299228700477464120543088255665058499469090857025697798771125676673410418073632966534469075137679390546638790052963168310506460597166014417460870661321322027744506686576770585792593918884639375000928532849700168136487629004307993571067634556397547336756121105595557174434617545983688174673184596790656284764486509476961064812966228974042017889358343951963302415843073527113917091569446743551621471234180929615799866675870724693746324531964865854699911249590771443503554200880608178487122369102468155646980675399199579630022224680070463048063389685443097882182752051011433056065257450014593386558560312274513573927593944543569208532401388245708057859403269068294391261086450153411022529687843105299800562221098753856706322417160121712111701863451839273578411547787123280256687305105978007315896764050765802887903092937799929778978060152136253976533415602215405305864234277313684380111750723365999613709181503128865081082072059246369204180465998481892978398225455019211072344952712524643098184524438264994050446038697658889670975745995216860314044102943531506166592242581869150019971631896447338667721162563736761818802533172020294518317307233913617179935785718750993394029680049082667408711933335717306272774925260456288389954942307782143898082403201892491316404517044492871547965616329879574275825069710672344776720008446495333755309211638456861436961100358868205200763309868641414515080796333846148126119271781926695190673836893414496591782083025655757146973206534556200924326391030437437760343431276143249834619328809533421608805404497717274482959973469661680002281332814584828343399624925464549163851572925103609645415638952604075765945996073819215373509297231778153273701362903459846027208001306715825156268177877659858305148394502728799482056390421938687108669781206335732102813828667034367184633917374276692040190869366642169943418444404429508471335100320079587261344383721473807162963642922337321771702886439567406917814529807369450029755132871254243069180022276044445411886586378463258254349391990637740352087515441320282401815056787422201605396380162677586891695886154839555010874566862664786140496891202658520463863420183323591236302666259863464616775249134271194566840391991676275455148007165644187501553139433698548701306677028062694345062235106710840834695700245567842068580196121911648793457023643851247345850454378354183239020865801837397088535098660624465666506402410055451423953022715291997604192383129882253857858899796954055576944744899141066364079529077251163048693042808716639182235011487151139053110825632394876479761844663917320320360110185485926266959827534818462893123389491616236317204341223903426891620127016403974767299114051533287638955697564872773559865486502347874335631308595128277895931858003374049618314195922646476229685975961254334433942948930087992865256525574433435941195663361809017889031673090003747625073083244986176529468297336484415324653041561888021466350245850362522135813187432055794182835697857665349713015423679011116428979236868573878299718708230347137361060855069214622682330428596168331341217509522879192902544403208969190077151900594638103361135325576133884904922491994919669379709751823995274740014996180420615580207890441488155503071957230029123245020872603996952786623791542499145157934610344457694215889037370009871389013809135956982027019799907264508992411371121661324309118826025967066772398711460720800377924792724749922400067135227049997293631357981196197244618446622026477309578769817957053040778313297614219134420907224952140964333719697768894955081126866906928926195797197596621761251686238075643494867579538588970461560926724409633276626642782831368884630815295376276630612955752863202476824695637395756721377311773468143188603055055532333377386229438565899615236809016658617222456156425983980512699338949466388614294892648999634056099405580766690620269431301596502672345075449276301587176454702850566957122459130971781487926036259483483369940939951205396840113564016635360469818833875750698015629451790258481903072264220870361437490010356925790807015949238673187472612719706519466776626850832335773429530332645434405055213193025342023321852906580483936411817270654345492056567422177721884426570344486944600799654556603498270600742624602439291084393721029049571155415481134842404728873993069634316003671590902772459072833320552528935077759936593108541251531630164412830212567140258111422952613359490006450927176319478722411928647704535621224409124471748334682440016102190430057470962790809646249011211635148812770959560595115146060033046324827331425484142665449295596528573713401099156710707471746959856827609194453674071483929171454027018997788524450370809867804668069647236927645927304046302294177247848810146896711446275200754265468197914349513099595392782444812412548514589514782604396111914089291935931452229936803191872246239461691309195051071202029026481709968718864241121028063323536352800690246169547395288429027029957228891392823641191668086378618847726623461143177942894380036162652308102919768511090651184000907702313777969788352986754867291364747157646734242099317918042279859255906000000927989581590091804915160351955149010076715240079176882670971230240646380704920916138702754838836077127129979579785613331342696369389128523217135492046496633194553401018956874637818639686075087352658706330806509388039349905462119118636380456167869915078653227943198277674132011301004954546964183895385959649793958409410072087075618421820841482385978789811114991686774604077257324818425122090847597270791684411762448999141767815601201543578044451463037344964576032835010269876196657487906112461661764083168198051654107502762289415550003946224214149036324976645341155746468311715840171917826490206485975847237149452236988126769477963108669258420491319196412101002458606305738867522658503765235195660983652548938839417219827143126762547139434669137324568195692835325116011700013377263522650017881660463557596319109223505678718787209680789865544042118625466953810304115311517645911697865905766531842618096110180191452755376008033725374876914925465739685147806137004634484202785730411176621605016969839390845907846674293776669120906281217322949447157646802326082593717331905312366967865234906993661574883805409771692336697741611051073268948455487690386882708508805787889110491988498025289350780612031409126932590201305912109279909475731843452409709666212914860600767682820999291784790857663032643466327531231051310577047226095458907713218219776152021808624219172967711080796516410893481561360089222394997165953949073991704741891206675625181963976690818204485669931194014065107400384545865505621563229893945199037497322827933251233065812236956485410286330095261899466559156425212055306172391869480806851901244839953029901106838055012255106065730280495854848414139556572850838479873125150639089284318573361182558451657168709738641068465633483936354433435939005083196254168796874349724983180547120731753873980409861696401957243710977748923003980740309569534417847743003985904666540226152955864783850105969806272787812517405133869723072970115076526404510518007713856533503337042152597758651813277297198192556644257927319004503344592168928463019297932345788712968549722170406746400062681950888673432625204021216655383889976286974688411890933750221619112081855080850625864179399440493640626541922701026450926904244925898469522370295690878793037452603522989172409376308238061908608111534477670942548233524768814951210873145714517300757924701637806547635192295472208573698186019356095257256507660240474267215021262210106101470608520473778673247738394086912573299014575745108155152349168200003268711501800705994368824133744904375132594010670587898775285982459966265319130665268605128013413807465015701384199925843226944164796076349512294927420109450212899904793603028786051536001965276960974021335699222099168435119964959622863855809917896767355845640368360075902759287664631911837038307323062027313641824570540416859861421794892231877264132517086824887033404959114564581033796413625692315570188013304430907500139298824430214768812904019547046523830527806301700919126884654005023032370408788773038400806747531685081735258744500315172189417650512124643055384196252140175794020757586805713399802174715845475525783769916002876064452554704207254265825101247318698934614440514787749513984091467721782767861797265383989510816557172297006485294516500615752285637750896701515166210345185541126990456971468160218079837372369965677380042904500093782594397451730457865798500013383523499436908900996417053206283049423853615589642320196690587104146081229348073528320995354715296647375587056493446914549742221087499800137638364816430194773026931224365373227177121240332651008259004186093296358249747695668148660575061749084939786972857412490666337970573807953644953558779358933067187153834125628702103730347385636351312123265602913897807340285721413467360322233013952953940037932978566748358191486610660962576622847296420895885152726015115671296335060550358306178117577823339006617610579446205867220397322678272919742578495963488464614161168147540261874900672921945556965059439796023844786419547378597456553568565414434921141882596682506396295218919404190446457766359222822809544795885516438600323916379576162958190500086887869034020617101341581396319964091006150314702418446213915629017203151815476562859576398637207237551458993523154713998777950787573913370904614989704926154998602957652094061373480344992128968286952816448093930769107789419143139610561495622281653352164327124033964411639137049002429909081069675570083172490366642805628956691735690097500057092733204012561858769226222916416020049705700119008658634364705915815035688237596541090247873667179252003524038801804146907745158634083321279311901058278659214835149701411054771326585647026381678036420476171376837207210039760706164042430783778301285022697315824139728817484818554216222170824300710663188380067396548936683067226734759128921950836601518503716501982121492835360912737444460703993363873365121133806104885264162025055445714874941340750900017512560211449817616660792820259651936968546535900081659676185593909010877777586387048678541950501433684045111738223532682637649819599847290374998761367133187977723460433629547444144921031496893152712609922867056332923627709725482797362908692495204423780365224698566157159737062088470819455295290214063833177600549504841424659174714140623701833453791080743163096461021333645905963082437167135231177850724242852157930750230249489288800795330320516943020453081714990180144557969283770030981207608708033072584896487225588215146969879065109729805469246023990674352472008779243566645721640426602168872412292885552499450494412843167021764158946742781168494206083451340421530002702888087287344417576128901123866015734036982984683783944485772601023995503726674985879169426994518164168302749646107531887543935051073653146527754569414807472500649346408146660307275625646904187699498805573715905363055222679406075253184470740578771438993157145019593195417932513143048634969816897400559939356065882989232933551204679521257885758156018626127476634659070830180055815456283574146937876280229344924173559039594487964758764483763312207298318894891637724287421549148843267678173039556711029055515354009656478550770732358456822827397674049548668352643572389266182806736380458344452523953113947450490619229587570180683490498856490928879933552218390023446509621185738341115430077484708339725401066743951985458868036274738236998007930614708306107723952386874964668112690845202061435305199385188895867693153343573827618516304310928948090640593261127292767807463256831949977248668583659796419542569771164121434024090773782808917452550925391935164958077687967847538398333961276476125771966422101332592839506296399590320769269963580582093316459412960233208114763046427759638032037149428378722137370037327732539160221894105891196402198532063770617089820321291593224380742613038576878766595754715703344650773732543242259237674859116664623823161995443296259463977677978310308548118189267763979006009340140717896361173145826581281507445816534612818419660180867944146738879208783319746475584057321037330193971478861985056897487605986958440593914058755323696569636128370408003128011779444657887611680709249417460724621962902447920646314501475641346538236169509755502434631666380929015167397488401166987779839821492061246389608934113717547334624834616967003575444254474968393685574015921298698547768832515911701244642450966259621839020216203483781295865614044490270375947254778060852455058109744250394861735783104490672680564943802609442444233353915202725124508260242136168513224259493038834750323791870435571613206534025125871414317621642284987885820906999756358116398025170572867595343589001795336412325253112395885043151917781448511861967983119267775813958174269128028637248418630482055502997769673314177654140967610046960641200669892109610142185131796060771191059309999198444310022230240192187901891399731288745429082707656126548605324715249833578803205091449473153834937628330008660008111620556450611428193472495060210266536090809508494039217082466262093006465962358614027653930370522019434110986606573319011494212045108576978363427357959699766791319543337532419164356732796870254761654500667298397444938600784446563849919091935807050873813227761713245367242925823124197158099596323747078404610039846127035706989679494538295001317970873657431776537338611809587469586495965433093953252093821596503061564104333558553621638453543497039815391747177998892966536890362653192336877323458541389475532562413344847285192764899117702844551117056774679727370796584902371891033594842277027571758855860723304263250231686973967689314374392560903763817384065188301884268298704095252076202284192655531879119107827932571442349265729002043102653825791611357245268100124163896402333815034841645971199671097823664001017883866716339746275239192833218581076564220283028082968069394742281129547257074903499206232722115868401420587038551257153905947799683150091798366747060746815985799272962045675116215400327919198926068324981640681675968176103038943380766188996260812485055856849509576137426348500860040760422391078288494572231965369363920324467199432899767501665378511333444812189731534118285683472966968156723050299670619426362755970106729491017211206366977874302449309810195379173701225277549203252110250490502089630817457346913630626015167957940051766580725149893884935003801778967493760017140126386797020928747988540048705179250905772808092237186347512817523420048677096570454903427097281946619833385981615134740016456637855031500848270277195860013077381074513609452677216928432034788350993092678658377287874604287326507871875204443089264356902893791952227806639236412644513716807363478276561495282568720456155687608166465485138931440113130593125274042816215391332282726864786558090293216059533779957040124921676695177320288084408766452179024284936841196378914308950553717204837935694946916034738042804533271777135730381694749523775810355240453062039754135620477726800661041504319190680459684342588433817496726222518168679131515826995760830219015893366327214765962494496793194832241132963991382838921041221483199509573676932205096929288848385379165311187101949561790888852395850114267786979450612495638692944366354691230314727616678793824692633757921316493575529718454213561745038170932443152865430848716542276329923840490410720748933229659058331947560632886860275410995705757002965364198916089119713584778969440687245609982667988113848798048427872700709840096726883110869808333728433751943846907937015474140326297292555767125820810929689656365094520388816921951435600546813423317124252303050734239102262107270777403351404955830340771780108018803460494011015670914293497003550745568526540930048893037726412805951943467986784281346350761175890776188548446802579427289775379535999158939424145789533827937458778142896153228592471070186527712026370911839746270871829839174389649916133219854675442365223868328078946558807221685981301017866250128478412818040963400301120085348940423497678941827018999900592028109841527627690208868444718286481896761963192026501846306030449016311189652593058837083880994668147735302424191042986327709797370086347469385345971229504710545178686627521882505796527153513550695272651066761670344979063904140197375617054481848487441405789319356157770226071606181158212496412026746578993388147010570326379210384702492635105876114434193362466587183413248575616089512871850608705999829397874630928469369459782312528283364241934532699329471948593438210813022973310835556718660003656127159154833025541330246409078040837792436277611172790731121240759019223658923756413694922710610938694224692108894706609319776441220174915819176643938220408509906558363755014747482319393871392556895841760944476648951314123764318106479209441275606649977684418707893730000326200956525773007267456970278106581924706471817430945615831926034559873137322363300431774052853153476210030845864497797386937248442633579091675148515811712617202797741478090553391521148079265663651926817936846695660081333723800237215522205859772595717511736778235792279352690845839654295916741719320935923349704480897056854072760291352911228967981886647740669683545669716231864051749849395456624354303315814349048077728939894060631719681772050927630848500328223392363893506637097466301074716595092702891669776187926895493246906304039950496335386344028195227179941970774094263974523934752027561376719382941889688368354762693141355752846894455455293294586195674028115454724645543253055235222240194552026653927122466989926853535671604293191344021323991126687259259942868189468743296354524284336589236718072204455981685428183971738006558262176138016154438312882503377456908408956376025166647238903719880442216882612359039473597029295327012136829778842559050110161334772560809851342401255031424622398660663535813694143346674016012939810927853464503289447431357320983301820135029641253779354354643419855292934758854411954829376356650397177500268571571196098074208243029258929022381910524874221909243132760109553246489265174224989733232264640586957693712095320290018661557705491232710058656073905522676389176905286866722830572920761768931783445258428213391769974749358488686009394568503288711169169177561654410786655670657798391913072918974863464763937336731216421860528961763049213505752460180075015170685135554104174641872659494585803907831620602615957498985840126059205093691389910211934901008681455463948110726046372053599781886695438929144514201908411856233720875870994113610746302554231735652827287090655029057385091799819561104167188985942585267247006730148866717233907551503733696131842324274575352429360203886131117762595826143419596598014233621354774115115920979489206261181129380484276665478825687554548852034880110156650238907676400953752319923595304865237680136415661096642028778823723998674123917124042589295446348357453877614140823849989315351112302090978576289215840170922476043016361384844293495665603425960267722971310008102109069914759865427739321152771576714802383418975263439662421866293821969973597124951041039436924467661377070183833562900628800758360643053058094600941191549489540072700928122716180487701399421654732783030904030348923642178621799612408248021962480548010406854576223603961301845712328084569188457393403862732480344968398783717571176219024688825307385681556234733047398132019922306446069349625400491693756266050392973354200271821754790728449745408474791796521122708450134496256369134108744228912636369568885138961125642434234780885259966829170698860800380772044278978729170004566137505743006496094278985135694688250057188791814382165868384990001078288534452993493192980902103778724605721476853291710809266171488107886381749588964295268544844182948048355674156214960935368191067423882631203043540761460111575536721530818834364957930232114603397169122661710685289688976773200366322911535396143856413260973230278653618085966851998808044226500260017517282200179036900905018297778197998391604826646416224387260956672573292755475956467984527249656055366905723642911140325414871833800986113848076285905968042603716383288075551758140198705392016480154450083086335154430790932395496880462907719867377122650412651620122830796443341875764864949291179368123996081131097785005963348378450700151502852905549438755773269569843641314788275745638769770619732077461697172027079028372394783668982081028816811563951929926837017206915806173826383306246923566149533163935671585078040321274275607505081967751809416036537614186179625281141779735573216268858812523429501948120375024319986939854766952255964957565473141501561139454358084240076981443758409153259998754113597806923347042603141147066173759882020030228499092787248890325575534219800248636575524582574023404759965870577162737343544996051308947128057745464413613919771197948779658412830748555247013047919021074499551284182041943357931942665397413262405124575409733901792241160119681868355663739916067974466393920409976737970169937168311445970574277351616713810150339877445080615763544635104178194698762841829205528696486103057636500793299835174938404300314891986315216312838136804572916527826730454184559788014130452026948481461096129739414880115535965716712757031261480212842279507250603295202489117929916359121790969708388485387112760825955144757061721744328341194545939104835565788522531250742303168891012683075446084391265532566409387813826575568689898113967619242179141755367835208082495770086924042735829561633787448526077023861552670391795854276738894178396024997172136220882735015324728172550216108458150360236177963681691425555890157076282246435323837163943571392566806014854490988808314282983277813966444980618514467759255499916796086320911816708557312460563331511538649019955893509747623760924639612240309154490185139223302985398694833406086244848852934545711193288761526158020501386770443986537681795697032655015830443609270444652982031982648386242264421893003398632501303260481469960283157353399030359025061693574616788573176121932283138151045622750665051957639535128002958056332426319862409208078970701200565654350020856420511027913343028597142676894749235892382225649662037485217883077973514835950114878502519856854302481508473782869885494557818257541121454114463112886377335450273365778528974914253392063994207312388113196194885103607210106477587467637226182051017220948986006443545889084449324052509300647607993615923628967474686984847841279415027662491659506699880118158789609025484646975088096863779743339840711759940778245232978814385700629608458967726372511243318141967287682289634610659017105873545601956666715796469534911493397546474070439474404315882110626728030102398432695853417162053823538636682039496959771757059221763456160939644128841749682215784084191402203768095600725303168540621347564597298165855676247248864868817255701047442883938089989255617049635341456390916287038580273854380610936906183073073257139812556780863753863258360251675579158676097626373238278282039600920836638113059432117220178709367203919007180219942772209673324294355481042783325020054594469820078923723086584807519543895399885435027437652273872274331387390713007410425551659507995531937132599088796087980220516267574909428094330087408364231513079008147616695437229926031865364381521009145225156714730773012913591892153457308957639269661046624379296202257374611819750712170521983781518083672243557540858195844286152616104664821096397137122560184397017563164648847580618881201310693781824264081017846688504737888378402674274558537525236422350360615673634515394071362391551368087464609974979845728252968844410480801365002973385435399494631658737543749655227149088942909184349668984407294992041538778656913979028231589616401548469826293871291201192431328898984820578773397654839865119942002648085025638829549784466739980009849402422619782706682343438623100472024621794375291173793819264110920523219248281570788276155515383439429561311007888579430840230804990587385466505623088616038720967558069041457317332704103507196320219998187418995787843004209303752386762860939604848354204958056506699733464309269536739449704337170326100840091072740512146422769479867530488251010471684661523826855426223642104721579516865257810251050316413031491236134023990302169897614090377671027121606942152355625142979771400180344154993923556154045818931064176890110218226106512664864550750436021351475057841673136144424480842500542292441517794153498031276465649534911350853398192190360530423493088188519533539739054869015298027366482322939325788035886420562959341757768144256652440568824490898345462117079908491389411190064416706432729739933824993744714221530016022774356301465422540019554383102821821040178414249809127685525862453487143613147435626599542006472356195431473621653842761707957834263573037344584446573371177149487770637127755977435222471201474119444576080854644345664928340488019011835135918540387631573920238859965372773109071647618578954442299576640633135527784021880509957345101754406594286713155550727365482277855296221914435867954115015502139262081069712842309103243898019767745271352982820639561838374149944751332423603821179551440310572750580989260847490687102052819787192273768595423270491823927014955728302658123878867116264289324403178332234432080912959670931633049446633678894906911793327449703521492358825572359384832416510745081060625492245592672714098904089107813374683084591860292409585499647373837429369102530316416231585647720565414231029447408739250766868704625006627817233336725521800892280722042565234658029211375663982495805864231272591109764052834275089832458712336919502426754853104134093569824596400699546318829110040685012817570923359525838257898901650364432102532135804495974258139931766360031971377887899614644052577875526974955124370993933674823194243119356328295484689082527747166946866507541658447841663652747812524389826015271189215949270222091353605907180494964257004922550630283405845651293893985254422622745828621936112652457310632864305681155081515676263874736127734284061935298552821560146643164242603206407392528176805187270907499218165723098459810580224215767034619350013125975235009824107990077745191397553097709164402877796548793717199819558209219100337992154944004351507070410362788843522926289116310652858295932959118847335114449720893331890343549365083142097041631752345048003665884922522723423235608196072103685737125256495415723095887064996298358060285707183432126829024241240034556366040209145442351891951324903232389748458756391190974481783485129701639780647487925630734891774906108083855685958048267842122055554413557543937025735776176833925414529015117189741600937415587393430329692042466332355697368209438661388878034396671657278530376475316935624801214335168308426287064847125853981220349914472930849043227810763333044823746348080708807143118928462868303756646101267611763666758317609055830817937616120120486693085565524117345945119573549158053740737116903528967525780049801771621136745223823241061717792176569240291355591521717386821745074762057441396992037451540228111652057348654678694206053867216945138947675748227994807945403368164741300849581289496758468938356977576516797806998671533154610571988577222808766379683702189270573466863175408535934765038034696242333129354979539361289421712317322515467325112186552950577609242050050502235578867696766973863657236014715370399503652444035559271208702963027143453047775353190738947282544499398035693402535627307889219189002169865099533718719143172215683162076974190739444734879849244082810823416164887207718694385965973912987073006275381571413305772233805145595453271704539713008164585532020841708755165959023524883899580267675810099919905084132786931092990540386366472319491302718240755136340797044358355760119134945766827590878783369455446341336918178661979002025954247902390960876971001091381884575008847714571489498797494079348155872561431205559128264278351073858303272791174505956733407318013845698012165317142877661741380688661876309641016953241347100880581088790030785378890573248224973839332458003576050097375775449548454428320003737228590585352024586960133308539308443709102446267977632754435992828734990429022605588152933544250310766437403607871938967808919396623782525623447882535858204819996279511866195379901960579381193492125789567688196577547696046639929928503141077884074986012066647773702462035242198220026790352244107175732763904623006575957182922130069784958329796203624267666460814356361773685129987960166277770926472117340834778592434302915997067479712912259863199244815284110296005790771070705428180581536238993105140939755109328542137118541056583515836993918129733297072050715946988780722747757656304978150191666922580438144697356536789576603699352060889663211057833846193873078432411153868602025913696968831044141998311159297479190367607396636376814069673239569099007471091261864056562535080498209791746066493455800151611852280938958377277574609295230226028557858480112114568980821395283798732843627682283626294435858136954314298714981957365428562722954579499359751115264293450186842192643907841321182429859984806876206047494689509297895476832987596943169341453121551739741068553517637914771123799967341319746715513419830005622759912818739055658518368950597714007141553864573599252160353930774049906231700452008375111011971709059315304036025186131615609103669047114744377459772067477729209445948462878586620388527673789941396851494468629355844886718566072508091099539228681128934465858883829150169714896610501412647277016640567689707671576058669663836273120415853245405728040625950987757706786731503493836098938181857832436922648727130008799048622526352977450006304878471895424461236470589192907945225618634135941702043433122502395615829904320805984031985414815306010552909987603521885125013414142983820048477692473437088539926355738056394615726485194361454617576502334420543583445375609817854091025061989290352089993129262947358239681387713622667356720222491805549779113130398101701652483463658438589466350601453398597863846908410828335934820211966746226711875939826220679241065629665071279527175542688832703059882469035825918987056560830969877258602509431382434117727458866701601110270574833787241038350197920603978578131037781419095428661832626591770165680191999078485385828268723139444919344672750159922937123438703882670590963375967567381195835613674391440106776864312450262742518683460343588373119732292763328917497992289642005991306762230722222527773350283884134431722520768301366347667339311140645254259664230269919895785158200345639449688293796566449800297090125609066802132003348597327063130842561125846868297265886801210788485264997677398091187933587006187366428098828990810476326360041672622452942705151658339075293954378072898368766726021131554094871626346076779899690030301474754269171220953137177382976106175451097616579179801825912543245883470794398596989115161569142209832779238925205126360024552141621696404270842137582326033018187148206267791073177933875293545777286186246305843299350627946240258073458760334915806560681883877083559563725671153982021101315188972743647501095776164596020062596611462646996163237599273016726354182944376632889071195597887821687317621178022388194721454906040843610965201635727499062514978557714940032754177847965168967223394024963772721695452169403509333948465112698720269025035559920061056335252228370359776675136247896400013526303525110184054986047640571668249818059879743291470049532944275362665443076828878862852079164866377112622748555247164320271087409198096095800277432036774576950486439716620252666534813952637410239956466027580496023602534214591187773457670291197275359364738710918408640838851014505637251970619070747694467184703487783244175265141653434830142215470094791093659886859932453160969203258484331544935964580764644834631562613480033858821203358956154736021670079083635059172510018699693104997635607044310516391835747463320057116457846525484573436359615276296828019845381133211859415123049137460307312847000617815611828291892335683095758242630490535098764003503633657906863771569698998553615729453697272364567562609267966808839229289065559532192581603434103785172936442892374372527290900737280935944253210983037900286259230887668581235779642939359700477397447416824327685599714952068378307783910801334271990130531627558216094727820385883372784276714981223521583368562093117096211947772804035396785970137789217816129719902485738689353847791265522054270726456597009811667871110724092313290356726079515803842156504774867738192670007137796354052660598384490697296074094041237412269768771328003520147537668250042253011262220629492922041354775167537787930358925180690223398872042761887370231151075435896729902874289495202915095691017223658734445487829917419438500800850238635582542277754750360811451938339019358846928236166422213078624156267636915030558157682550256580736359589405493154786269767415903985212148430208480272311293611913756871360675149993145632752963009357556007331495898647032172838770663226368066342888371145206591383884945314740480800344002045860617386456312246925439559217123667542999975123272448613693510737680563714146954401425749422533007114350672480056320274732689246524840381583661558190813675489579051574477207136842239020730778133038859048884646474256162804826019969340895581217481439857973236215517207509673576953867051391279106489162109451098281127300226969397392424102982553713356116553503374038099755126416982956963101561217907385231502495226924864342595315646518132849542417942765598291620052634840907247829235508027982360388662319554419888966569026077287177866350469868602241426134463558347399603829648413673263665772306525014997872437971944048627544294079411435689678871335548786140078993287073390757074086948688953206221584137164316042551434017928724533219917361771370352994268164234239577979186325779963628181037691914594601551121928270632101116054219158090080304232970091882656133787560891258674472970350202358834869574663999070837909560715886559528145276985612440527963959455127948132983285647633076184746008437819777917283001311892317369829280000190161583635236561320550405593071076768675949196181912316411627032001022285360531158908061648457314238736703457536394220204146605020538706192149661127021578364838391921760399945866454080493981692629286569055562982551581797323859173825769813385103369218439818250707974834617639620486440977041661688896773357344161387125895549942554997574582163472667834667836107653549988314937081597806013116970174551125985557113686288809237148888237277433598328639720067312432760611048657201080902071930284420322548681054512601651535516668851594426847197135808265530662486889863804660457692782894424077939071734877386236736186787488054956465093427859042479552517998385314770216299634673145024710685579419369943135439941564224937374626292978092277296378101754069077734910875251498505086862640354779458715453038444739254968308690900857141332123409284017828241962186338683031881809940297097068455542650308899757731018379525254583454864220119516406963241306365451974704954889627825598360317542554642350619228232444694637667189121973930465696594661201401216720236468495703876605817387479514462505408399157838199385339053891675710562519434854825999376857166341985528255863641469480194404588934862573712984651787203658815981845587646884940807616497292059739771753899439714385498215906177614076734586421090720784662854193023837245732033073219491783706619902256182643480466488821753889055181445818756027054232738697373965949599596114538599472315125943517183854991577901785373540086657808026511196427698193244465838044579994954832812222105077120884037953983061319347101306459582964538356445722723986251428062619842212652414151363508144772261242244266774815322214755648771004601986936197658782624964849212279257185304273010344507066213930534412507487419026900805552780003870472529729042350042002266715559456191921554889410623034668524063027941772584322603222649242683921866282919926016404052535566023001877549931091984185266357004346958741461787890630677704850458583901807654036981927345346203019622450383446023106854898752167800029867888156997209994039784660259312131084607773424945880146108574134639921033844548712054401755104977117566541883825996533529075235888828306535797403906637061924583421559439471009186785332296863893989664116142645968712786141151372323577553773367568870059922855768193515749057824030628667627098473262506824364548434321471571449922315162085152671696653382235404778297270615849974464914989114565050397982063568702484186636027569695251126596810978839739668998506183640406541664926682349030202769444842670884105836383187673608917900304016693567728166418044448974882664260058002737459223319938753266490132479182744947893451366781772780842094893039705819116484662694457768999953107024647744046819431965406789529918370784124200443057896897465823825207668516082915292023376531879288066386279330511707246990439530963151026184909347616268840381011500753176834980216388061189484802584749050768624158412825024939524148442703453416244254047110889701950799779791735836855566850943901225355350771689600001025421051763860567702027797829481845921540990942727359770052903978842829611066199890938870199686160298069388003594572855049221472954395991161123728255071889277759736972802947809341847524539928769744931837669139466448194374355259597003244251094867767830907687810112924656742816562366375528226652556235617373542953431303546613021296970746894232387927493403966336677668693939989530190903339302960267788270279711132073415275247310672468986903092423277982692104945473006652275031973819534692243385864030075044439589291146971399780631307101472218028511648070571346336350858610402823124051962588277727397869423126522082251601142127639180015896831649288429439473756580927263489806482755416131193840290430121453317088128528305260076381434725335380846716931429659101552167571998381125419450719220201125407328929278040331863395244452937640906513669098308143224893531795575179284872217678605344056272334964961970254096469743783582886210876808231677965173364842945299495088493382047018413221905705620083812047432708006294658821855437828837278845198417475488494228224242849217907079929303892723458955852644491140322369460981619806556087110759326749628926042623395073428779675357894929862161678686392016051460848599927559724705915986700803871655539383416583696068711579954147369282660643599823672078969177799197452518941922462390601440790069369834038945227343332172438460741721870712742152474669995503910083296472807553411632915776197526117576529855374806187613202065558917182556243326653321267317741877786565621822926088320412383465829847503958420302807344175947650996138533925201551383648833332071707170569977544988024703937545514432235817838733706778268304075810918166451482499108807540108427082701044863118871149595773224085808384453958699282268053842412683057632097675019369673361127326307509271926156117036238748192195778559893122589949947496825648387151959199154615260300125546462622001665651241857256524804633752578040650318434342511885821509147906722125366110583820431323806869385403890596675841241941813867176066673155309129744915333637176344615802627448486049974904490526650331919736343719229251955970994148305459057451343497188257029105144733732449994841196139745831112899322684834551749425135419112445287678373853697179060754810834432924370209090693429212803110571205924065982646765756292352687505995463256074976370241783674353205953179465872836072603859738014439293887284839736814199879732573386848118194635050445117548435549584614875324958606549457330402708185448720849632812427471256130042521279278998754403602367446560423720553363925974590384865496002846062123141436249786210788732747571461900431374043266051742179817309623371590382547896189284316067516243577776590260963532636481135519644761098710794656896141893387657564358442315130686989968328030419831057409995659289976167650099881088541358149191978479641261125527701715523956867572265586618215612502747158948962590900587798512928891970550880161489506776397712047394987823624072534158215068233869117062230667212134873209251926444194466882710451565742259560917824312309535562726112586907663257468140258686150843784193993628027399077172278381754629498363979760903202006160520392729232295308257518278553410959669187967618677986830485683055323310719654447274620392372824456292604887529973472377762524954500075341587989397145257772416113999834823819224401785736022959212829377405505143686542065551846393278745984506521108948426925663650346650183865994480460688737405758122307395876692935827312000205434052714577732438340897110692162080778243811476187311268347193902326855093610280169593237013577634943788316492954561918637869268340020420792853542046187296734982560341860380904433612792227653129157651084857504064288966468077447394027392069450186420848683477709549518946232297712438232395312748059881594012973358824094270855241352718544632647454600661731131046618484136859222237938354715384058724718313809719379889575922227018823488197959953578817198962286459975219643136979804653711713338355891561307012462250087742104498608445322539517414651057226493841953656247890004053649783324783146074283144367737901482770270516043977369843976376646000665430235864899251666405416614735865769945591308428312240217850424531395395720195485384763632447102874602003495543904176319472054946145388252822723342688100947760005634407510577218440375782749524428405546654827169910764468120321949019813667901479806582349040611348091493127932596074754043821394897565948478127116271486729155081350057813505509008875322275858221749477287811693500490907644340215709568252635668813404334771299510441648259669288200249730066439317158031935899522996273564338271803317429015087600746509998023239018662980294318748348032765970149452567342473266086850571223462432763039632735778125219360785923192199129128751778652911193063937651781143124081180770962232006090317245849374517881606513365486751360973853855109836035130309151673499500054416745310180985896897149701221616159982259909209519035924462378132112319451587757897986118509966603502866344681277863004025895766199580850346732911049472415897015033094173242544169356366730307376019388866052017107930039842170732933150145904812933329028272276453161396146485836329773865849066992032114164673635398521781456233571014173309823081474384542826751889641042544091932324770108121922903650398801509529258346096532102195917863373234017736835917942035949835912772116959411699703031246356076622026197073207653487899285068982073579622955025072619788570506197412140514095176047297789551481287642595677791153742598273482674077728556635309109113291761531448706087335961905602364627033829952610572403126896420707991535280970960427430818809310147235550766524739628710759565581649661765917096086976927542754322941788262945953505996399228146560994591014079142914549422305640550275283307204364503342170664956691652916640981875860171657704398777066785065942718998539925620992293359831568653695961386132537212683721953967469087187091973147768441470061753392724253294749514193750346020009561659303267285244513770459876694556512104573995328238764516114762069386686779086242021583588479255022852359181093752425549424972241633999347283442775963939213079205500452095838850086679351351550902896326118138214867099247037934385849451995671200968087865186262269698402866648298141540865685504906388061349894454853281374806619276155406632837796872283426705102979403963422868781297670771921046823771013591597046605654390631134917171740056015807015707368050832671602407265090195938190870342159729978269915122558133964571152091099906448342084423123410463442011391832310513604704100074008078458311126262754072534739093571189639191154205113161429513973041418986078995683498827709236476420241073096239671255628247768435384312377247301643780113508362098279680245875909017514596597976669873941592014925732535980197448053406406649800016321369848608488368367508207283884324384992015702615091972696341043341450560430854929729533768217459498957304103351262166185572007136788536115856986569052762137607268155602263911241944426709712826918972396083888629895743996246401827801690046650245112656197708423595431552183456715818438319148812664863600627253836298881115381983457074024821555625601409299378972459580777262519425114005782925214336088650108651172135967200748185528236149749479809172012450252637691869691585683935569858005220113967998504110947038692563785803844899147217881757091457297170977128053849704456765182260057441923141819804429389660977425372500760154935842052029556514580869143140093393445534868378127856154968158028346599233686773371869865439148677740337148476815451519952557843635326116324177529811034627726149451562538971181225680383282914618031584914185946613791167304440444223539320745498942271031818966426358160940825401894593755456031533111650930638052231237724227487870261890419740381840416939555874863080663952702160402155166743340385127534709012818479431911292749100634096917648917304802334489853623228944614020577055221200998593936186784084294461359444414543721014123416493339278532511993451585243836124224141778698209880294592048478431818263795492850334266733637684346846508782504041630103102743582326746651163486554706665029613428303255510460963244647808147870285567687406457184039323029429987261849486638792926284457048482673854565946413644456082843805405582651070057463749259679601939324368743676246956046764324886058398611602473823870240333724420514058616431467210419958003157395549488729358017609122127557823698566193733111374657302055675111106176766539228862987578120066968460649123902318168748478459189434068936536480527579651569438305455427192429808364617547093077752788530321443361697169632613862317409217530213824166398518267880397888146657108804761404111235804874338214816093692032192736038154590813144288430509146785461310983259651954956643570098860977288240416682559017215533522640001349498380530145777367832919395806654844216124332941083647984444277923955181431438035068967586856913552755041971014476567028285293030565686304578182769992169849969556573001488424154557327841078141718285116675797447117603147833664303979002626370104290971895297470765438795331368130126369681986801460356690705744469360368663802695556057551039071024841932406088177623288604066104196765652914873614079523951304888157083320198617482444619809742350072777843142953975866202432603354245231328426423396372159955405800266780487767383234421045499247119468821213000104713691987714909754870676283433537863058981305081668288406338494177473807916653322259477884918707257543178287748555658332364280194684489145018981280087280247804246318106782318894863900922999550197173950325389349942840507212803501235858803373137430599183584570197514264835284431343075265294164101585277142686556367865958553790178235994566285465008643443660037558002565030759840620323171645636144758710405434946565060770649423155860806846024967338483740667991921390098607247423936265466833817364560442793116238133728207322112240078299292115070248115098606477485030860530589410611407019711338950777637160756333031496307301119366570534247604969466192539578593133462548869511916038205652452239575305807950251258348804016506715639804590528887424667891941539101100273574062461660844887078593278763107553241399883800901866676940101730316251193431578459180326231577388853289541161345907745784743827303305220805919688546128263666253585642710380345508256389412741844404554923920777712437357841745093524489181359421505869825939834654304497735314083688241514286782191615330805906762254154320281227579644503007627674745467532456495274232868169707589011013644146405962221959664162402636457828176954398757344893253327617612815045359304452732930533646776304659600369280538087656038800910126193847219154816081180134595834153995377822890595590212958996739478199967004129010270954088511597258396447782104916119489975024828528576046231755154037037693380665481249336312765251606246407955510684367547978570785503837657948657955815135667533815505661475673392890799609251514656724492298306369071698289471269821954300893748435306725136905016482462995181143478868238132563719486526050584159164043871124558668302112570661675583611744678774068423339851436885908494032774371817157493417867484509352465083831073215152947501127834171947441230381662495837431704452439858713154617485034825796677813456301994888561569308901627027394838003970606040046074682799428025788640378123046702223146816448961715576811886415100173749508199653697591864171498838035044261466520505239976393082579836433906556879706976016391661568511705929415591048155793044637156373959773160367853113533968585735992686322967393027418409347087217146664798874152519785039852943603975371402517431631660307993598524660030276275620074420514570256241131689107828089775453898080627294469243290991360738518906377626420974920771807571975877208508527545734017434836627649435186662320162087766706093872101779702213781840011417034734500277794119790973883708505530339622802240117022790807669431543649409219123183981365464203340411012727808017006797433287204316155311074990475040552371145990661658410925794526501897335942380205917902314889812413411094862604403281848691797902372547207461989183998007065236085885851683495891077248368950516127962895177101137634833807915030623984696363986738878942190491040646664997253627386565403588562966696983239444626155087780649471857199848303683968451144279264816296333507000382036659306402331710251584795579837151820562498122248455623375145148691393915853560144465247064774335535005048033596670974877022103299303040341814865599043984064879899414409740602679374206989555086859522956177696425517775896717146854279799330923750179459709284235963480903369256024537657877534808199849933252958166462200532350831928408200747072102572972401394094226872806933751557413607761767332459669565428958568599692897037308221629409290716231289214618194009588176899444855496875624044223055131056711054590321491619226831606331709976359143130263421532559800278612722725520439586375685063263843455290492750994632925002296521636562154250501831189451728867719398774602506658643332569533966139651398863083891584764045882027424966311242252819147575722983657138776573136666108982688572890994548330724253146578646244642978478672027169835487079215235582740930635695467515898797885357450653966890075976742586382359563194315482149724684896754809486607184624445394098210931320336112913281530067533876647375261732729748410842356481420530050669899959998377689902911071476959227424588688143966826007739774976958293464562331547074728982851645555437505006789473239160869732243975375081059209391228487173922884599554362083789996269072263781731750048527789462714235402925815095251516606091994355157365545092622300647967620344014147980609941588031610425623582780416636035180633948923182951196208537092007318922369111575670941636544317716229890537077248460213015603445255196024958244029165388840023102022268911465778710314576155915208669722733056022847452760226133164309539673762087512323928107275075139270667416151492975456381187884098252038040778529557387882983005141456020118376926118388157326403786960613991475825573472562439554778385774348432673855484568463777724168004013351473360293362543668445441677223234293643672685870707132871489278539616130263646991552281103390322879725393414368679043320835973273601613555917231649153337409126807100761494020902151637020583303022739197161507444875931643579752476353751250565548415586337135057194451775460783947454387376869914675154224904027305416436216655838776526444326121173418244965645549614092825353555529727312526451503970991636911794101939104863773622196261442790456240019384425794177742486725566655882928133107869116351243431682777459445079805421329498188833755538882019836234202164982730499115463461151623699224474165038856877745436974334268844618131538146002819692534452316524784186370547073776446267807050820614435134643702978515448370250847106770045378093800268924492927461358373535655448578076113756790196684967094642102195784153749009186354138085106956272918448414662668940520394602037351841729780705181930917310632037253836900294539357409667323324708694629584945501629679335965251256815341160795245287791628334769803920329134876697581451685812973801544265583027184792639099643781963947466667280364900070450846243787680903770454685490537750187000319005705687350161125243213989679704442766754594976692412631912828438274710415047016680539285909342786415112630769149575522601990375242177712459945291576224952496026524039185992850870223505776228311279446237324009152391323679329426247717928409096183555430406028127760536168875301525808973928300209042445209177554847874207292749151309731340193005764696881207134617132190058557707632978736227497931663706776582517495605168648709956168713935134222435824369518187667491428540115935730580018082145882711527506310963822225027361968187244410452665119957702677547155861502188807813552460760800083085612927100711232721444229953041809523640497602886113133357796239183454869793162847964981107389270597831959210588122059410298202465146659180663679956248440993496444922800378931840318574412261712663814631767662097269957997988153615255140752509945661928330078060587620808228748952303784573870166134381000454429742489196240598150874450209204800754251740920204750758016685284840973952152789358261658630258612682960832256644778508998417523687146190055832710447035097523498876147318603057503535903366893523251814643297598318277986947290975373315176767922597296851484788396451220836906357712712529213044567826412173762945540547651284309291949163134731338292439310951754541455660685783330114078208575501280136794395918884820281111095665463590739813844651941638880117222682894119660539918886315113772708188979255073126192612877906170107736504038256263899404987689988289499619291773436272346200418407900361582863562253773557084184561508363758195031290941234986781830169745032230372414138782971659108915256908219073763492555365127510385585320717128173435821518402184860123038123800048022981666064982305453904959211297388598512449548691401543913775579647275085354114390443885789423836640081630717711572810247967896521588559498670503879391058808641273635988835265373790315371688280938390897554420450405862268781801536943745160360455194810227544461880532099945055910409781694147466647545034564039510458150120541921393713165465527034219625715017394318723250979195350509733530795029367811951275504278885868712428345475893982335676819244009961821696586816765538188943094424897795969370637708538990615964953809934390787441869714771861926140923393775477207552706126955151734238653094773370712766855105133546885860447426349833591763199251555478031470414646855895153385767741211593009338731792235846226172736779533724188634083738269016678979919993786063854633807877947458553640032742858072800121546508821620059006289021990444898128992452482065755561902126955803740444735671531679144824484968043163321410959221093051189806212813388938124260983598823051349061771520055924738894335764797087165507895974351916535092135620385324740675057791442397212623335141814500421243342130857137380239427948466377439493959794454095857255952886486352718273911364324308952544891015460612823109085622014132081505693572532520823890905010095151327115822627971897779011364451538601874044308020807190247920139906671439841299227060866696439908792172528681136341256106925922167576680365966289487399023232903831749866768321713628824871649204738176200177020357505710831198758553752788468328123144511777798560749647244492024268582360151621076371378906708975300429108957742866956693273691898273214479007745892186469022433863694556683783498278783399798569775443786458572079433508396047116756990084194302648788162180725462217133058387336675060372150810338253357567061415008208974277612756758832175122841096117639991747813713317372404580118794060094748789705977266046305245373502007231657143677765885671884482651713341804610224333391245656355352360665500679594969118286124186700017697907034688692486083157198211603089156497359717499968969978635705318010943693006986204447568786725957016530028407643820610161092409982973206345052290481936357743583751489784822090041889367823900767160614618696089908784140722985105228955368678261787624793555438713873861169442193799352508967041486810103006868149181444978406323928574427204749669868503381316265121414008241139385512117681207239004919013891263647769456196170880853468548407944359365260537106443342007359413032037192197477785590503020645362766901839910136145300216447940711776542452685363875146976447504592911285618838046354416960744761092809478927396994431872391162106492591485469682375080814748786132367752816043329752506384698561923585925802595833522062396291862471110209500555426052108560612929736385453663644659618531721068273333921110319061004559583200176902797202345925348333158496246093318663267082159466500047726617877272179355678771186299275239474764162221308589083729747615162530170479869951994064877719093803645283826580266130978176413768092382415069036696817606747843459301946720864449389038534701134472762669986261303925377732897248003651683050829806377241839343369682442927919243204363339740849147950017108826648609521842492414051597319062157143996874523170861441504274338262646569464453254931144332757520381803301579551466857419443275389125401511604045638243409757089398037064845225883216216351702920954302772066766193094543021896975261656054714284353130645297474870521018191704478784196261640989555128580487069886738409947073552666215619623775107764634404402495923825782763341169358151165576133452814789771257822050067060070377411025182430443223890580627533836633466785264468891990410018233802087718438678400163318059463987204596310539637893443495587514991346613738482065190699072758458183976986653498815620767149082116870678764689054980888721153862394570282253233851440964211625238856202814731508363097880834660848184860249706857176207893512618524369836995369528842821796510333348512206397783505218535461400705601422860400711903299582114538701833003836294650475434164384914021047170873192230789157803569374866116743951883594908908709550196024570513536501040695478041555946554940987709075572173940286674930686676375384140290040564677465770109743277907537677834579506429498277475529905565643247319125541528914442140131501057006349348396620103567918673019478970420065152058884903932322766199862674970031484896778949760917751831612867364426300520660433617190795355033634237241796533466513410256810847302503429807306065171581441143820808313916645347565707391934612947129318868386916888096080124316239009066053417919911693987398845655093452965040080042614806249092005333178434175195758662130357217088428949267859666327487559784053734923939322626984411841498100554805317636865348621352902307065221388037010760555314097431196828533802329833499779400632867632180648525127030807726970417313037706527184786504342342394442231481390386603170341730216655335057578707298783985365707969649192527973867296114330990836242663480612608178134666372240849051990284465329351684155511236762488976387098838414481016119263889606583394256439294581593242836066635790144015826204532466151131514422775099420646116374648657806862697003288076159083983157555610596471280406734307706855453754837053402503954661350656033048736170415476429239853850224703496083305474347872085586813293576470018321417305543951525993507739581369447155819242739005944792675901707253124902582977773436284594307456959425984021806805338407014179496207444364877862723669315332622247924227257694177019736878364753703590651136352475636096243331097132473826760145290517808334354318816437699209047707377700971895413296292859783323679452497919256188778639312464488947188006699339216713954943501420908936625721716685427061261425696654331795819413041445922026450012106899631722036541035465661403734228118492757459325101201467944750074564871520575943052994997542669558653342099857386506740178887591228719132638992001801210805912126099653063862135699624051325217834863983921861669306950105386957788620917413303295453890923463446664250242818814702448350718849461197831989123934967480119753318030259136146549688474076717274495127300698521638551768878709599400306339243379333602082479476677848536269998202688986016066984262568420111807660433528529531108145741173786006861144589212464811726598131412810896028862067473296729677547368234134930162790406705952368146127090155866973985230801913475858990850332563674923587500939149324897607637986139855502245553015876022477275332263924450440995914915875411940772495606139748965935931765213167690235713998078463317794289255267349063955750551596097276963261686284660791982072604440077124403734209258203766818494394010821935941360080093430991725056522175547275220429375002022785314180758457898452993911531022691978643714077225504008552764046600699675937759484757545884445749886306677465229803960408907002676259558127699601984296868899869674245642404082859373181058204422711033013010350951904963526729786716279895372760564524439084984875448793252971942827346394265848509665688556805778930799371605433432282848296429050299505195982561715260947701694078666638977944189079825302016535671066950347540457345141780563932576592841132955682553732881052469825582844139118272506132897097997608026501959371439236509988550447046812497286910048914045369883140760236369691034675617280942560945055689890435805718661177456242086320627459913712879027877451952480643656693831084781013345730882402511808447471794570413703015397521223190303245989493600161454880618096693921173593085821187172877543767084253302473671353114124247866529518037258723276576177182309862144520414772401602050406500441398023616958924281862508726630974287265775267990478292715808938421108631902926288252631100322671009794447521304201710594692179572984368027960649996376480347069355180707024948426250750068481675242458642580575138637756178015527243381435570934702800678069726041862809164694655985585558650492166309891028474059395201193865274370148972159623462340251405839111793047737789188418858839492629788441838732852718186958863645428703084888104371506298159844921780782279283952446323116733293108417850480646361740333994841513580773580108047412475832315985435078493320569607723017136132948894089010524862749078511526010037377475598370808788114452762917341904928862494262362644818062879943220731516556923554212263089374771639029268035932873131953873479412564793235208608629515432103095345207432690868995791013631289304493659892847574674016804673936823600693449078135320138858088875341935254675820760377002666863395117269152371641461682688930293144779546724303096434052630745044705250464825465068284352765315179931070161366582834389764477563833731506521304548959090170834142843202555928177833240841023185384597218697688184923255911534543033716976046710728656767681030429521592252728900665840432285048866237925878252829548352731068272291919988634736903645587759448120691763118242873093903935590375241484634436115411730465624439625039590132194755463312088095033864646667877607642751637882173663579940356358979565028880771442378435157960682382534939946588556529546776457277416126342304444510978611846498646339894374128894289948489246768273104044121466197616474447831267209975294512846865187076774666595275115293292780657535108683738012318829863664319044999433650635376455727877096204202146746809378283430685163163521859551418002948327660924459985050217375543613807758467305372593972613372829551824706235254995166520759435856001766101157113792316123412801983218740039109170141416325935091017049344150394918855181035160723712347436719004068674493954177989016064527167034117411103914727400742774761945124924215404454579259782356229096842590609829016456252539621265496497234667570685644021596332968944009741592034337689093988443554442745001733085081073418016260042812388332589038363349145955541469554234272098848520590334345801728270208467015678038203661103196130071731296868099210391415200069500111185385163317403538438748214892793513931619162012081640477091906744500819428583620124539123280019163707127582731282560022680990390503214450237715229492099963199804188406565076704312271667593577268931435648984674626850098169408164382992681015053236459691345206242621939490793690603225431957221385214005808472046094886155116287208694423017833259613504861576070634456702810928559306417051150860541140543242841940896314784794723594422937015457552163873928492830567962644621506714047452278897102329052379404479275797968499634391402296448851847708177081077932035859715470888289737873816839684967048194401662491208343233891519680300752340211483356716605867332849587405184354069790330636530765354263625532251327516471189444111558968858251195593092613780499568728366275489443005046563583554885045285679753155150114578769825991008342172035305210715341967675462795809880210911090732105817918103820544099991537959992420042609172252235570288497249652904390432531069154587004949447990587834861379084416116325908298169687190742615114947786821552676038901500499394096245605672147454649029960599224645689865993276088500851618965664839435368728353700570293801696802071160806411452489943594966834701543527312062054363331629841725171612332014902171812700953855551440334288899349105344435871264424515570396439940584048118993239636422352028803167180055208016839545118100524448523246261372817615573889717740339465498694725089477735276051237857003907569619490925336743038584187049796991731546389516922059399528870940765182968198160173996269507778298536705238885434350915558573061281779027537640851373000689673965723092266691400153864270429436832393228477821709400036721640988426411309886130911925403450473392517753253396728284501517637803233475091495431850756347649898929387531512145129320019471187223449569086420698678020179130914439475230895440296737220067137481105063663339955336902410470299239611281886900709058200965216742423917704335578468513571249377067697388916451562431448809867758476842465961215590589420426487836734413365977566885073192096953965211313497601798350457986474167820826677050121815027927748751612826754375246354573347368985588094945512643046305570825211242638080951400815877877840117784762775437001898720550286165754456099208113309429352243235246016265331757318656277148533523533452708397937424732645799373700594348086110475657766076837445362785254852931817894765624855631814553244804190496559963107993093280406290262884200311528705706971592983805787471950589818042362968979744311026962387451174045807284223580287049216742914477754571173911005498676375509476811793908370473877291076846803180012254887526262764565646237152253381650513870859873160360778043388863850342347020867467147020375012105894399839290588011214727345303136919368569327513147363080669360660727446365214387627529027698849298458663835796523658660124960027348634445152877391172524141784241772260462130527879959322230330151802131791301591576403444232659968164833625558945310380708134254555903847633482177194940456741184658635765581987781847428943241486665466949080610103988809576393443480602010284800619052366499213356439363429354054973600877766733451139464165944543665727447945825145011415755617797160990683508555395521960108729801374548238019559933709785150945279413034549929896744839882392011292871521773375078779673660339808505486770957759628448696205171810664847571757040009393956091942592719075524910707017817633146608828267782128359180635508586277718733156378571199162484197193980257948525849368543302804965326582855662456132522503749481584396790069236309416714494570207364945365995876089310379570606848079598873952848353030570682492549188541809630445243248529542967114193566639866864983169340198235957085542786283228215731920600371444236272089998352273464199704356308871138544811914712757280111087737279954340947596137499853904791559116427184805529797186460792971116335217755200216030078130489892617875158735818740764542186219165502503771725427548440837451145768779883919249622251339957128047853832575223359019780548295182683683936274092629796525436293904020648241277734905420585003002104325102481135779090144693864660645764066281375930050664799937476554322871097768948625464573357323541902278190318718956225828183740789768294532175106998656667007009356411004466276060688607049226417129333315350599159556502454808887492970790037153145484985091577693564669416558162282620190383672889599570954301682731845665874597966038338772478829191476082283404007917735200258238199876204757584677303641271287900754202045297081662044627628104917342278822178575150124678504141834892733343691944477403682506364499749715468335513005558392383684167677056337800706139243967217309654157579270393261733372421349225828606002483615316547732934177310842991346470486560759349214818823152602050311211396891062073272682249445565499014927358815208791515265422978170398357759795416263631084562442873123787254388306221202380909806361802046061830718592769266748577694334055150604105811494056693165746669098989013716905962266223443929892541955809976109679390192555278639130304233008587066901877651063818119477087504815056774805823247597841286610043463352097051680740493155038868714010472979348812986015543722239395765058105535671531957903410109896852899591256687385013061340627208850544633997001271577026696028158400000547798975086279166526967207230402060265397999358124264190619241541329458879170237101541983194076227694131760813397593133819940286444197808807485594701928998191044483697054196346343382966193583408226437294609046072164110716960157188174642871782261168275742383162138722907241638406387314183021792409909456309566050463680070370141001436728756461215364684407689138778996436063083277512023516217782997088481219826451544740386154347206925742716653055398304980290187122931632832993883243226474577579331187572417686600346118179103889193805041446770457921979490603481569292747456319354672098026136252701396331235490997399039765005850720415859445450765407245341891201398999341864134786017524787531408921357524896958057746126383071914127898321831811324863519513246680788258285094641729072642456182404125419663725205317021541308360340959729847175990707798888395306695393603556323878449221040055567856873098315509871579696976854671231213997093537175083227284465270932096678475321673304882658680741260833302880647979910033842973373130168111374614127834760805637118101029504848734707066269103906936478243760548174233572089885700615496253945488645349773312525674851571389308069395312190305723944636398127546746164381517838983862699957114641070747393666167767601321036000073464332447458217240524057752579130062381741864821706147731932818950842401950642246104449503868777360105515053555830633677109611374793395444670321843996222635426483013123472663726031711572190783250684844800144057010195811691467015692654520288855951959881732849092371151689455798778514566015877173545278235438392406689860491261949180940960172897178341680871473302756403364346974811419289615698692818100111350547643538312372185120558016966842305816823741166502378426472640288204496553292639587332578434653748270726453422232193333779186875566292169639329185441162853078222464345843039549643237393768693514469378962023158992122291043020031646642792511615285699188215928266861986973564561150871193784613313957757481509572436596855438485199710473079751832504843013798705111114891162830518456198136329887541677487311406469527833950921815884683178727446466333264065305334621797245247442566325894760484417097030159578914310106504965155590327048752585863031839492602639534226952093006177062346416566768756584144360802512791550996432971267201268295300188856530025852540726823461685999782934030599707896722119371110706016355023083865040201931726550156849307362939651062088606568663585992826765854651710800354969498314190165006840639589644010581422680550240570480391881382058831426486914035469704766956823076696424393416172362504328454912257577710862562349693196560826202160526915186209198107294190028951354628182792216590752634754952047280214504873410432327645238082003726368493300268383648064923571712621860350316747546015974532391037115281792973378823700217438490407306589445886875161542843973969577000308111743938903926892664531043188178119877128677567680939781435196557282344810060135857918928211627198928490995748209730414162644504140580138061817156410475997911614799853656551938105493195981782247020355639826131560728704049420487906972310586381432872393317612756217812958751087042546571176013416964024198651982390921645607595795846982423137201390888604660091622540229995170027746591801149161208686943376288334162113799627089165935017993127499015214523498668601391117973573558917211655969382432484508720153943659991135041988777866442655480722074291544851457839374513924735046716049533276674815613263738767338363379903065154245067387186396898397090494025835743742163032717125246496001262541881824895038504803292839232237386400197364981158430122247160998517074227553539644181835305310711856158113849085797244188830837179445395116807101988273493877337494806591336502764412053348205594437053312530241359336331106302554145199027461398883946870183680017750695290986618501923883157280351657601409729139088148091887770753009067670224770372894381195187870285972385969417374393509540729051519530207648937757173295936940354515024886751858054468363753784301871164822511211697454379268408835267539507800786214534446593565556916338775339323820442901033639602557046993496905743332503623489430543176802486425628970519191687751143209470594501762089513724987420006617800764573394801430421186832568006531370866216492496706271522674315346889726629075469321527475512491174667077719691146372218477252713098224331445679249570215207165984103857522949415511735566540642544688170133286631185252297417416952284656543497018268405263006271580275059349543833269933182153493861591914280087639060584470998180569637090277615204962353097340403537426402174135393914297634004612836752266703427954539556376984538053966562822421352176977743696458265682975527015615556042802620502785604705623773595315728266742961197026559070880622190234757189630161322675647684145458395528199981663020033230682351873165590079791940130405701399975590498265743564074231218285188188189512673806266882689919719364262777398110000765648040306702893407738782244767114262350623252764128786179919224663542328037727743302058565233158005024868588199587403614049263616767805538105632716096693411353590433770822637408634051500553566183519475118310659517301535452745549573199094806608590356880834773286504790716980659095910475225869632186476869752505543305730286863921273387636249613863398103568870200342918641953236780586986731215066750545427962693723116598579016337672485929540159592841353648233400305916385079071929561380835011853464693190477130009442711547185457134206671514307332862169615611199840623681082978594357842016942916483802921419763279810025094300778573187846711287470126636116089866810929343147572454711963951940234680690474630571829534882469034064810408512743290258393703255109775211979961735747108242311567710843558104447886544363649754179674508973228041972490591877642620203840422272084379607130945555632222802590152010107757786478655494236917167725364560141917895884122998996962891249375769866979109532866146476233940795419499637597794936812259839928851203758202978423645068150839141658760716544805963968527819504785480570472104655269476699200267297929382973637402053310062414332478069788515362062221772379214547555993108815795807561164425712944303372688563277532943446800399565881549106777547429815187605373820412930980758906528154345772508983718667728482088020287417596579263281550850022731030206127618351975706379595280982892631072825794922624130656862078796374952546401117792017574592254688752432046784531473569874557355923310262945485659983894293442476497707138120458170465621754358482416475773921748778296493698565175523294936227098424056030830132370935038049374489258025960308013443169495478033830843275196745185654794378111602140393405175249407859978979118605647594862777823975850169078335369172990654208870016924058722714870247276638222370449917355926298733660899128446914568077104634489959553851510194118521342637233169661903204405098170663787767815355389046042652226312811780877259503733421249566790991023422563272076531893176529824662086525729363460527487754082156446925676210093237965285714204925810654072832181915550393458815373382194591725256838129424248289626462117432948671485997912439466824942997172186410424941397126265563103330370826801023986350799327267442756559294777689877264159141564023977115590280908356658301264802902404502570551805794451068583467447208491497798368095369773926486930515830056748799180396758417909517629252896211142299752256045623257786949998107697585600914739738203099273507365829555317131340585606953122027426502369470769920497598748013882666190230129127990057314167701846693232279019457052178644268684401283580594314085562402223613559556506802728227730712899648489558878139146587760042758618892513814600976336823356166462241857217005767229413440244460572963387482935202353185635463288067022636031328607404461035963411186672380440022547437280040623208192644762032721735917607181488060352913316072672936867375060805268411684487396939809677673773801404782013338870421785285787233824250214492479414613997197735216983733526436064127157980221241466841217944343612252976878323618376307974662416140138138666307372422871463816010110628695162839895460825233400041439798319763834425885109704281646113427412457409176413865277143601869257503034928802876208753469384628506111509598520337882320149446159327192275947733007266125574803761058498083266213318450644715343759012304160422619598128605697449078244688998833067791586099574036592117295117634761983832731698571818470046636325145303296993809318846341456832116962038116549574524313100327746814602774508581374701699363918927182478821313865952403390546367765341080730454027283248740954361905541031499361102439222124534738697671841750209054872739907050709710430529795343029896114005402568108118191466895519618258887453515145843587767027060784808466871885200018060238685509586629405766480270971403128112420583380280117518338606541562166885100488095423416621482292075491793882454423917353141470500338670501967424681361074825170960844950140465907322928611480604319909711962481450852721572866406172273416304864479360867408343864585876733566997156985230695883828488966762402179688118395109182657820086979872362672381715047330628998014935079611078755800190650598637020032758516185223883583048890330107438058948151808509514613302318481087335915288677775383907599931429603473289965687201703349353504376358470179439954268825078777375215191028186390210355337536758570687547646448422749359432026456889812949678701676960055147463140227738719633772232326278001144335105283555268874395785695521441475394211474302434222629018586997451098074035094888290510720797344978054094214120209854647299438882173161425147224387797131289118544239761593922677439992670217159366150315261278467872048000027706530261987678491015472822989903702206853364908771263512695132845592321677497405608868725252174470621696145183449140680915484521194846903692067025400127991297908133086247284376866308639083025055101105950458357062523434551628603390319583709629290526056036771345937708528863820018762115102986444083033429516606254684715839097922474072580603920525357715860178705747099267833480061994924603946195849008744812892567421521762284261327533676578652025430472493241055824310680926023698587010432679659305478215552033718228746991310501752968701338684931610238302396999142186006492768253757616808693649482833553586870346675272751403442496326804058172095763964508967469097533955246057510237352060983177451688226539878121171583907869636694667149023438444238560320518493417913189745245622816309723238718939719541402601664911840142038618705515786977587489042848176252794736700278100760764521949021211308197676913066858973548999968839491437391662944355826933166289033461484710002723371332342192957133940125424112654082347384541240986818211143625555572080968555253072455110052997884879940941611952626585663678679289650260637843591199429744021472035919250781040434150505073359921931707286447943788748523224567830022077036249773260874667828334434725300565174150019800238641252962435890236991115347870378388166959269187217953796794954211570753178678504628804781731708401682917096495382436318669798705106083510677378144206044971062634933990749234613329085995270148737776610430080244230168002333018685193758750577316335527217357431558303272775477953691889908825622863610410480040554144533254657733376978603587343957022222065579089802915231738500036630984747376269302222988232021046952562444306522778467272739566229877663011393168054928364940354977564345567825809368746166615060624476411749169571663398323450622114004181845608692231343142320123482299925607303813819911213094858541482633679101297963459591780565209666410854660993137186467827164934212235521217964725477449652859064907947192690368997522760960663339764948325977821389727016008178749476808569537608602357504794970324388056978381948255311115131206543458916898283730131855987994894769819405441831651061348250549091810460005715206055029474829469044739014065352152011708446577002528404947690111399680698543188497343418998040224689754239745332439291936351796575955492660137190104306687725272283127627151620507980452587528025192184933455239316266432476860133383495380090882121683233595260944403659312897863463289243373670809727037426805726136185927354219850729350098104353066203578982679505323535693642879336741869952106979730625433027265776589049136190466291018502028291468532493029625565596017760531729782828120088308812087708806596954038262465938033698641982608842013493624676866794970336399200423121202081477571127721760793905652526534991805714173934845934254468118784236240970595286265307053182655565830756940520279140010546629219289080565415399194776628872746058484704495983295331001570599509477721926064967445283327999913086181343895233496545939121012971086874375710335550254165959111794582557368765929065827666285070591326362791783664210836117219593556192546179465044877782968259999446595866653256952215074229900419648366237382852169836743265917954692022020317956720936308446813538457540238694021909941323245812196120193702205760097725508991942912234856521695991509265611114044388524035433877995750388193464973809832384880875070085651066865429093634076384758823446195600176101591967335324480871016665842869209820433595160998356844677512237216875705321180259254361353684311638694502027920172385235228954681444934745030432799161970202198917767795898606137688161559480523367630760720233460492279190900390161936304569413122868659449659344173630701119207601067901906256403330546558003145715503128250035795660584276781950209313419554458023277133882352620326463932093830289587622428425403981400840878128758394700852345100816472948236522552959465117275095916057833970765421490534506075447345778362823961896921355759802248396531505604858128035382720722769840432532798357979201758958375794948703442943567821569660646339235382397008915416726496375790950738471900757786255675410077698605383355458447298196300813424324837551655668501317437758823043859661075470881914500817340729247307778843210465221644322954435683897005420942284027925750436143679287074333334835179210697536939930518283061163571440948849024742525306166559090145693377447656433901911273769417211298452361692550798441774467400258968788157647195306451769862325485766281827546457723542830176513935340782436180074377739349009636597482479078369709546490786303973347291446863457860522467147068726655043132647225134440971934359047752579381585044730191447918613923041196629413656481302094750188260995069812396624107261223057596003115556803936970343183812263253804613963081683816235170189151493669033574726211646813672111532398644649527907137601753549569624738086224394326508796005146546967900948314441154040978010031528966142889827975851000772139608708203515056431684945534394204889820793426599421091169021371505774322434123500826939826007715637792086132412458927277283610489003919505176555405470806682071423428842839914204356786969678630743726514698056556563458513074754028319611833023529459991667862229799069243056134278317966622442533920167828510375218155108352425910381278287308785157961221572254183898639687376078751446550412100852831543878139427977032781756001332414923610461623996185146717007957776805972087899744507136659792615053179117398531128471846529596498832619275832140596255324805571910397239529284931014573204608116553495467000828984109796010977028549533412119463395524873835747750423834053291289755676914454641724787378106317283729299956439882131937579910739352190190672319996954064182027545890554971227394859172549861258470281449355415669938761366003884302201605167185913400746284847041007573401255629448651490715868641914410666759357793111204869855075673429398239232164952270818844175989886823653284298529971997453892052682091398654807388259381728671266057247655168685593028728850737359747670943848659410551269633521872280595121154402717062443334658657619581467797651622570251017836217769247336212881322837019108904047164537440714070210537901823758933914947936301299264929047607059095788579111464098854938872316338606143831252277612745096711832139246914309696817338020400415579625423493426373967964956451283004255633925742267167008427083271994849006570927633811900979991520042931724953565318006586855553900160438451485250293538197693351513288984242731139986062724927955909366840349707998388572562606113764838228807620493063778323923531310880214538346510656581515797244884855059984105852110489745889801708840695835772849969168410226193616108107965131295841181895936931819631287110832419737947365487519710190263784740722246707171083273945890354314172758923219822654649855074891776334379697966774504789661662361580651376974688615439111879994906740544286347452055648242567158939763842491068511227261306354406061021801823352773519706431238815450843583018450370835394078450634174623865714838761800179540108877455493413722468981171525010825474275514191647121060201611393075109960403683027873700668074401042936971496039913933343731134061674171118620881963968615947725171446600365891258822575017611637124085882573150663370991202553014291181168956631142512325275165296913849277620520653743582857779601610953084818466361056798461998658757985542890147958827513024316514637582177029936944745064619413737082929164708873260640520597528554408403075950110105577815599513445177000939935719594747565709444457675250917613491144134380302680954650178024636853039182683619563429678598044377089171417162026348295330475631418638976760115254695048077108789593007817470176562995380374154981098653419608242176342871596085011819753567558110697563391351027761138419924695804850242525229088461604748328289862714318455835473366276585624260537392618550704371771693739168629216138007266690939942401903274907411190756750191848834858083257457377733048297521832316355164521878402781063085471938862139750790211959174934271320269841702515742690444450409596687460284804526680866909819843791597570186119759087226394980215872353545506105459889452468954939655612837430498597644902946611211409099972177471090800711895443200769372439814274088002022662472147723514927557656441768952677255340084511489919613291615491891297696834529136521230504048547177467115719923108621497557274576087032474205663704843304301960753621542349160072137629493839788170926129874814383457206362574380694658146882769044645564448222363144789017673788924322755949276869269747157640827864351013059736713327732174515403196402495529347426629744418531585368338036701767868667765400969986192041277945732569129499790589021663711094573389789991363932857218989504530422461769137705821764593706891131814440662368074408273705898122503076590447903641100209313659284723198349711080361840247140507665387215987608847131882005818790997469614994821590969742468300970493468091013032885149353985901677881082059424748926488556892970662149058857531884433685194776295728193137853098099877127481642386078069382726025730723324072580966515517320274899179940422607363501265535360836194998920649007167808519020153790723854270859203573387813721990949178695191150096559329328602924226644571739929063174464258919796502649047047668401784099468459768989785771517717564058521551901126332490773714311906977676206073396920570122077316559120015501950687080211038834691070625428807446373092307457832489692526264014697299376436117643706374454428873353870181460153519466334893952316909637099564522673139197338847058232482156965380612480083489523171082329170715466309491632011779389589425857315437371071948461029278289091363859997161773349624272731378616472981050791829953713062763461076269638051016658106669009058049035098623912189839784134965086508822486964794839339992156736627935723492228598800627991605617684595252875108220655223837586079445148944966990807775282011380822461513384435593011664756670520896217154071491692969290726879597706553332123296286036473397269498432659082566979196972263909698896673357954765228098917157630491311143313289134764995034707125972306401594939889133406344222402494523721869787270628121468355051650014111071792958161745175072363890833621593372479611650526883812891011459880591931095450217277677671444600943563169432720607774506887085023905786636383775416885428448820744459754532530438793274319151909153451948540020275253847626346309000596333488877371369013045913729367682737910039139172459758370775352852059207017392743396461521758496772621441829798403647294478361954278600964332009322537149519387841287460801148333278053142962817698263278137024798222638936380975489444583187501378273942225069093007378626444871478842492634983012482124787734925538861446643740928469481108083374506599155716636373525844449964430334372084477458677931519262396457689393302329900520437350562486685537596917373059842866341078029541446169583195896396089862810143254808227507728801034711504472671705491215895236729012263879174923702072292089928862597455257986280854886985214924147941569997317815710184956699194384347325984286045870023573418865495731080667454663843955957971112416221160099726178547410899832882056828504786868274660380165492778771376596728086042941807937235420794728190074894237125634284473184384061863077038480810591668960797797213583466253662422692805794416836917287601624162646518005329681143148222039909358763947930571022909526524277857740889226906376108995258592940833318940281393799645948387915201785337027379831416300095346056376618120849776354554750215162011587000768990192062581673641306548503359225500999359391284693513370867877412154325784681601899032539919597799380406040988908828109737746615289313680427050618362355048696033469710563348240209033848979453290162534666153552745351779933724079540686223289462375012508411738603546027402443628159071052210201306170514847507163832470501402230523019283202270511009718134858207203755556188303952038221854238331352909914215513610925886722987702801942979947316748016899599969997042213431112612099473158212377508020672366054595257102947640364030156147050139722619323311742530494624611299210558615479809459807442741402974026544381248285546836805797124722287748780322843931405343611196405548167439875869330927411031517392829783886612322255058632598622549607824372613358788247704102523816053338510068393290465594353316688312264834394899523391948080273894432061161683476872238345874767227865892332088775955837791224796025273704675932203916098340711475104694224274489705555695827372609059957554888034258169581743177244468257374213776300786652981225852403434340705107555194579753303451332919229735089212532618629325670768797024476231313634063430240435562790002357970102080583197287392470733899695893489673359868139927224115757234990602876316417577117762993726184443553668709122024354689446044566301201222577444355330006698162155053174645096743851074041106153332169453993006333498173639153341466936231791565521155654181482915469788309669073456161371742042841726831256247002899414965456551486081594601297698309834455387874773090577309809248573921388844343171545987603517173756338928605935290004821400995640629768363967852636086970494447840553811034616056250045731171941398329671363310230620114366789849289273628816919341855617734039821635901536393511851844572293275005867052319179481852464104873688772888500771749790284291951048558226956732745846467993223455281749257826719330897759190840611562041599551662074590749031452228117969054990062266760386127219032483737266271956366835468778773239707037326576802752414941755697366216727729576916474567159285130554605062443313224603474237673627725147282535224870047051429427451285571156201727049785599159934417352001796368673296291067151493805813946574869126629518073293097794519607255782109524468019145279347941224071893556106847359987183592156100737607346687426244711333479282010239583559344149207674437344520393864742716633378919063944833048843785308572352083530376014404351926829047920259008973666020674601999307636596526749984125857058579043548262681404558631553425571619492245192630478587288217301055858134377516561779233786616872262187191330323682651401984472417935574035953469067539967862373877171013769044386034425270219772637301496143160843926112327241947596941707780980825557528382507736625365350740164813512866469773393462350676542659276989570777354019077946759612068612108252391306889096718796348135062318631027054137452639174377339453352723718918897237316297912769220400116238366543626085310490062525751075122869246767868775324196776318664439208160996667413080105515487542658011711619691874745141808088383273706763177312399427960019186348896903510923096777176722121865052205584757899043713828960344879766493788649280712427389057672271150798988246579622938543728890839074278693266673356801260221243444112893903127911182042484226266741833270359837487996673105039269459571880708663360148654999459913433016152249168289967170163527523953743932249101851472377238346167879500257460878840673860577184629381386968576862010066198674122287553029992834244960797160003797178221033098550841284245188393835226277342161266477267033417863422035431117115138779154430257353886337819674777923025947099299781802625843565947194734280400528369810784641364230511668399202925801997351921229666337599274547599321617258005331876826284115490486970761608767968911495436975306716382389989470138379831199289344584099849829425198119991365471496962909580905953170658469516029560547629792831128693604728916098756498312309340989013215774448329275844726403241489609472402633092300715082398347620105657120854770472905321509446721704440924149543926196204825308172692019074257038192031584130840122622304267233099853624258296476870168483898061351490527788339767359295821389365013643195979243500913954415113085591619535673463261054249493757800750777996974189501682103643107112783549340123719155435068603887729366941103522647445956115114304288322721911784942982773958547225734535052852256858678464921319757712002391752433976258057529880038365919874008644221734978032750919463194975333359326981688385252967886208623366282804059164278318131723041580194107536158614199570069574599309519921989806396427959244150217960921983145232512256488915638865866504434774472269865715527701333704304149003519919516333702187188857258826703831913642718585448071252483979329694097870864708390992132514208879310036697316401232988493321729089089180304606590071459818556022613432531484577911641593705983234422316019369480854531763548728358414388563165865749720318948085595613651276318051808193578198281102274081267220967279717587974421820512685128771627456373158564628871035448068953497327091790322165794334949755516595420589234978331346988998364339769160082324033476437470217494910057930321299264419000213673020620878106805668156153743779654679741169759623957490679525014861739669600971183142916900157223175790638230413984512217481686238173999196730676383209676039886509760849962037180722718538747315076023250946514418446741923855291298405800565338238908782650902448611811074837778209439861231745197891055000637194394401525218754556523600418889492659340090539035539289155592718757963592843014294408968193563376808554379429526239612655117840136745550375889149228370248001082912317839472984118284952061050183598656356604620678068745850358399882926617427722724650489171244416016044924456238868896595780641286389657193110428091493620417171094496212016018549729048623761691981537839363551821863266775315481817613160119666045192113866191885129050985592335005982251608150374284538991939032097700877098341903321577791636336542097686618159541953594662139698112214907086592698869709314268963146336932304203118172616397206331367566357276315230817836732197686093606995306277577225766975494998973653849433486890729443916647221999720616583568528395510720866206394185838418236420221525479842378024610012332883582786980792971098820820005740406264930944148469526616333381323533814676072655796475265324297442113207749333669183398621756721190391688877260301197335671905882496261954443652914803640748953854883738911228819383378142152794308779215245916411613816811491393089496057935718470050116826406642902385676497435047965223292201701900053523379275738786665305941553122802335081368866498831037612871286229887484299382677637519641730520983787703493975938488655293856156812031672818288811425574502396937562688679473598372499344955932092497111421138880593108561664759242859115022847653082205753294066191671588386683588635833592056139815565824305537739667372535924995515044923419429308159616762507352564752860125746913512503569751661859091218101667962609420573319168002222884432278753709288018892794917884640255347462193914826723433057801973372165798510959603797095522333206316151280123644902166780503328112363517724718658868054590042151780532198157214035637654731639835829630156889208341779284294568101816434369171718141571528764548563231661700023045121888197261899204255167398592405263164342203558857813528500780511512964193814408643907104846122631473530596516019364518575911010549440550355574391350915917322776235551255636698815949188258135049875615825764607361145165804854921278190348773078176521460413636185685492333550557577015598605974746835972938998938994524193008832358511596805629582705516792039930417922081854127288125628248850706269594239068883914160075583104279826183692933126690723780168286176056950765496106750945735163593168099272384074792898952196275994653522713095571513236374698858681864273986143366761185584545279423571276528948971472528234525922074753410181856125748000291696803401994063280310178307414475970778593335996736775483495029849382218965315809684739195669694067789663320510402687088998572111517496678664698609541009791723323789980577145818239095693275645721657420171295140839560657482917490595778527633260658642537748372347312503694619518462387163428935888418757916113788046743281463371280927524694233004259825740208230492422342449290557208781801315657218681564169922144627455742880073865438195072566440522473125560364886999450374565751430007043666975031979110795765389507072603550659822691653935272256667844794883447345004923210224065727625440672773297847243962917461222385409714820166112394951608695963283725911112043583882481358455847614476282454690562752733062930407355370081349391181908626684031920638924923248165372572457568666568589376517316649184576853537836718599700133962443632175725395979454181879636136946104098762068256644355234914667672084985439571483776183398661003076643856469768875184788605182639733078069300836103173318423618457634524319954441760735346904754049252614119799649515584534790031602342874341927435459933112548551819776777546007735505261948574490581226940113854738710986836214359498626023852308940812053345849372294327067365863757933932587909603039413626760534845246687414983401745060650806672083673871092165179410571883564696488804298462078661637376212034365718313692960162662470927764574124093850493345623664947136648256951608050217210535550683744911596517260075284185390318260103752370507646515085673747000620827974396728241817343018998184071574038847366455141261025656058435723663503655874802896120719413745298682391476235798045965963580355393662474277926278612340533277612530846523636660608306973438157331184277676072532327044242084339850155046555030782953930641246287286835819300890820010333927692979592324084651324494618838869498414232042022335654416528398911410878285917837404416144914022188347847034696515825558181799024597724887687771108695787486281915814169945561913116372987233544480117768108766089145173495224574472448962206848411301130117345424413003102953723738373541801727474614151306712047581186719411564500967580981715934836336772825793068271407652976163395032607777426904173893686864672251428789148968487115412770726151998150048724168476209180322355082229134680499343864424324447803724703933669322098634901346636589323024675717074232450892556799405574288004641666123030407998797235669512987292465874903200143146281262639184858858915412325672225985045155497063571822334245202680238501589759356773636171437849961428607139137380249885362878760326854017009870290944366878123888319360856180103326266597927502987680100213186358960923656720726442256115397134206836530087465243846341000901559359195512326974771066993724322215041136879994218882643715075413328367762946564797401603171597368876357686318896495928827839468631307227877858449638667363562874813457268379749486279054070175627110481168979668847552372990137906545072058078870031662393462823936720358846658630695818701184517844654141187448711617972380961727075504303633252376725543282233500583989296492145616503612793737283127818356372168591057331276611955745510026320539005265205309451971132974386511474561251039874729652425310984270180557466803676578324523754219335329480475565812159326139288886199967964779482623497017606600803464866978572700154287549899201367467726815914001020105746541289970294025770547783793051169903747353055414850436738352154778749151024653654876571961992845127772644446623646102682095251523687979224293593215430516100544223872036084219392278715444383265304985347017994807530773179696823127874526242073415909079833310766396720177596779034008179765876181269285559724886387633534190917278550126380559338314845705170083715307499413447579549726899105053514294623929884451003425328851479860068489719610570217231152156297764949086761233569604767384042707216095331800721244064495317346877969347974085453948529608663293364587361400778511074515825433298417482070132977127609230151773399844450937048712759081335973676205760388811099624849842564018954610737812027238284741201460011074237644982633025361291446804446903520381472222409591801999009967184691416478963023556112963227726284440058134435551308656757845494289119743356627027031067737952956586890173631492945909098066211313243294434474940294723312806371336425432957773017373655188865743585450541625839603688277057188033374044601271381271478774672666567478553121628553030348830100753911744754124893712174606863124608090429284623673726437231992809145836100733848512320119698579810668266096040533278091659435314099606622212929901940224001292321251386253147670926707990924645260050370164503873086940278178805240655600578137993521448746376095837677439708227473459552615396601153092666035430000183893084640816122431395959992487103490649117081804669602161578188845673485043122366041894545055807612489455333544139664086737574474992777677551520473382385468239934126741417252632849610798726087015904931928427371609212601166240239182320363570980077605273781306321919848617219301864287608848230796937149871105502127429138869608249350159779609515489273393028713345910268763093865812871538085521259928526033222692098836694706398340312201377643015965969541360770274614921197410289135831889164057934916208523819740496698586623178917526025571852900056923969543263619388194515576529834925480727505234754241935681511209473033848719568272403236759674354047053504181556822028218644589292266043092613939548684225606174234180614029838411553226187263503285531401065131166251986126266359769156924284202853301492929058791017731307261473747835154345461122233642314174456500121658423581764178017182683593018318362603942357664656055877073769688012540437291439118964588048833284960829138969448645082889621001764277160046919445062911893178948032594558810666563226785923550181426416116989130465230683467555097285981737382357363093792631711478367955441611790588579968577715121822113901521135528471188227160502854065254285079567816339424611102233124800471627477806833264410781875508885095229509824478641182874883218465981831801270691768633449415039441549672912261263975585947593713039590696972475721305427996597759488610022495971025432089106679157051400579664047455259814368223018438020907244404885717784967206517072341237026095446290041950226196030444660866353543823794461357069798442170626132129628306991461896527298618774823136695755862184886840000074938256727353899093916832535995588317920184451540799535755799632037777169220431249877532699156839555106171005073933325619951685888291999348297057255341566029186898717586469797422546692028616283480904604784848090095291858850597917458303400251921933656361978333060839614969272818688330952810547308939902933380917841072956637835147941468956416237430488631021623564986384274622956785985904066769374734758288489712873014127995298058989769542398250386497907336615422029225118620645959989932925328387412863126628104913548800476907335979088920900647426822886520934383856533306969987586698441224604613448192148620567239443528783221103166018495612218424517048078899477358927610739677461103162711654818320365105590878594478700720012700924328040983110517313269561770470504721917551762113341978891302513878345767726467749904023558108043483591573562916805486686007091946870927921982393253285636581747338326551411257068969452385893942450741585366110722367910751351062771034981036345094684098262757756447751877612170977466505257212608150060305611166071632016344535374006074260100615118629840409212728116399160944859420067825221327427155164780516131767022655474889704698650632321815096521018538706681608866552781208132534502842013678549309942828958545977853956295214699045493373838810902979802545903011949774477584158405572846227400986959974042021401653855207230891555780565670905641920526831721710815553427812508764868520316535016409648070725748774073755099389531179696304232331675226964436677493452726274732382998696272211468796652847612051863574060009069310891976251241205704449006352740884273913057254551217879140544804831150285521376292324577475135186331528209835925321104216597742221460633027303047679511876632509023443990790703303586917915584396262958710975434908978834394784450398568804992366479128990991836685919718582980103550323925262049448869624911599513821037743071932910302090202913703727910978718580156546857300228934465592405666196286497487668975089278867419044823018032717521634246438250804010981616788280704456983391153715545057394637205189322311455828892717860433199989219964036979933358562389507566415615835655853482078131650203971387355171209450722029900164697214144132893727798461554514564388381446619484345358139700582037560654878559080628766050369977707224942180720104083663964224058221490592887009932909465515201245215008231315668306087470763716355973404740520792499506340539095660914709680915212111175069818559940472637316648138445122576946053667938486833581028120210271101649531429830399157838536883843096102521814894174029461762642217391068595711158761223791763336641879497556117621531255186448459551043184744300063225826349392135509040158456910557017676975060772208068352025242978061621509573659439263770043891435033007446451459241962670435855830773642990583164139670250975543629032590689067716203386978555470916992119933053391660808608945626633366267744699123643729417008565673237692155086944294011921108485908385181676825966628799772168499441224991328187047997072100303991776235285042771152414451080962972982107666432700619106736407283894262172858196842613989754790025939485009065397784549766193761256931551540952619825817964663274728136246902958320517140411019512781295873435359082447633690476769075716820157979213581708770424521443266898583781492898968927833381063657204855640087935937238441482505014394660595143014436131801679560722763548592892576022030661276321795838586174221589450014668266727417063848868875604662570940260384564683116626143868084013129011987652079940693644685308675194447094015105605581523718474312295194491185516578284618120524904254464994631681388731842357725792225450159206656206867654272404601208484284270983863875279660732876816720660405020011616683441374708669587816011905021557519060865354133655441576070232546354128651568437967983420214199399926352349070501829306731652495613805758337603030624631682546577522755584210127350631337062047197984877508992099773196699324664249299063936696206581063427743967631805231210817445774180609213265389399399260041813867708554958995361278492569420770982502386270539492134784148470591829991871847890845332184986226028850347251649771286318774787535585343505365044878219746808540246767175559321315095683680245958172865135021237248195928065470121605374900368875844702001293326484358301042984648582971565896626404531903511565402285077553221986770038891508672027932650902456114344915350309813920360447573154940791890461062427454894169734309728142724452073861159964925051958852109481255342664263318285582879391732681806239165291733909805379510294563240927837231212051411249541255722384810605292860340171131587203134970394566795175460671962750805165044521962667235158519713082011024898852749911490630116787178525847385604084396014680518381017720447622732442816932281785501885036330651000122530776795468813656943327191776495573032526942610047852303124366940152117748093248857343822416688961022358120403015378391557278726823625894912773096453904943992051658724404998593583342223684573291312682140522224212367103322313960165324490854718162595075841121109855426363485558689153930861107321870205133802109606327084702040630288766238200867535281359678946184954208502648369821011020259292294766873447031861136485316539897742206692547256678815384370311568346657821472903658836217503394105099557917872071377462252196035203128329968723334697505078750498290926549875255609312061493768333641559859221782789365511330718900335615869893122363907104721881580728905853795914405261503190288872631603624350277943431345468893519455498017754523162705476812721105890897560378507644019443460949923660306412225830478319165323182018319683521660112457461981427546484925970486668046453160205040790727557406979483017254486779960662561633046625833339421620659509737747426271247250968114433699325651729158622226298760612000186795742256186325557437645980006250344037762404032332813364721413231315702600951059500914388764373682513607382264284459228529952133131890268726569289891300235956373555818874772764314990909205349907515412387466825150997735607861286976273393271743959229706993557623881710147760184689586336773754686639565560302271449971049343861820167851709903611337499057539976644789794606159375200200500473273015496128850644958487298650498835604819534462334703223038048380855038635824495154771554435871054735802876291714118821609202042765439254961732100236557004395080993820753631919654253942835698046828678840270162137331248933521068532072679818543199730436478761602098078092129511300474478502490617900008143053227950825584341039740968097162023449083452705574085269819882852891071045111820836187764726002986039495182578292379740363702384436236703588742075561998065854984379994272600839362496316506964837814805095311605897794840118659981149212151829634175214854252889151315280597350740613739837922779247666961165868506402889527332362698057943934105567586806961124079591881180288040017167691107271385782589080931990366334231657204574453906654175016783393540639365275329350361863146024480715108374015311116204615012292020676538598579704517180325555737433355074287541676814803284315337947510397731415925849380615630597366553722809453724662669826348494312565084521220356393224207020382439524330311079040468569086410848548124560666493512928712278612538385177628315125618922801009139635050684730179613236026923955957570985351560053904138254933091788560116435785627739837117580058610553066768561977071934185537506002251027071261712718536079222251314130796807274346283675071180712545878564690418538727907295639661941451963615637761009437426940964695429017372452532723580659598655371424081059891952746918091076876815707155158934765970433856002172009024751280080547907917458505257183367218373280478788338828236611917148752689578608054406081426537423033548421477586531160233137106987354088498569992407016108787612008938642274622386698784282298497712816892901406393808491934297736747535893686176030246544780665930527896723382052998479127955570518596098588007581924431025795723970116637611572574266857245082454143870168198180784927969973742026643291567991588650282555825500344691365455344024508338564513116469384643576002947751380740167360188753268491617614519268993379575686037147079137718385447605830523851348559796970444439411553457937188921130636104255332656654865424368040171110451606294468152909974778221061696792800168332238625428592429112303920683883445492736094352067257459795352945742811067885874506045741029547418260891934129243750851803555141053089957040364185803771062119191299526671061302563804622334096418063358965589033601163279953446045221765685635416829485852477232682348411468558373752919477221206005348672436247946602229577819136776100533105431618833853224021178348836685519379163424604235790786769274775732056388694652247626894594294964074337104339989239094563734223186017474715525809031600153123012505499230680315574084197103619814820734211217994910873888077129292333209856159803599260379097912202476441345204501564583613421153215752903825369265140003806888762361908061423853912323212657086007135782163393562997403942119934769746758879018918098928410431899343180910841043658451113232284012938717849049443769282245894979668662037191926904901968466896222068000708714018945189320887766384891969012982573683579419057331844028517177139962274803652775112394621850995996496572915807751954205609128434071926414163883314037182784916699418863731831061050460016799121525429524419088404626129477423884238713941811747621134560851730394122147028805086244528358935906104554844064516172009355594609071845986750190851757840419108961824649655085188388107074911495388522372914209491253522895513689223668310110937954204524783616769799267252953362957684646938855302412054744063468760800616034378501171287656927748406244525305418684252813137570287338957071984592215999912181979407050370491756524042596435516614222469374202694053289473259800847004632698186731767490547607305683047505296121050112300533709826616465745848002828326321749331498788880031878152132829106242560650519795044557022831390089004451801194168592606575791979195719285884256323985304033871989955425034095535606439990872374090388545722776031045791616283608350354532740821015069791570625727010290894739646603870321781591881861339643359980643985729385495252914847636304165507734991546968100239055335785843957553014315985790179732548696576317183302847543004619064134369846286252385748843097312994115254295963707845958218787995891935886234114949176828623421146498595221973250465133968592238265745387891158472360378061863787529436956419019344313057182774237051129655265821653832595695011845908532392611753398758613102726741002470394979113649169309472151381102021610254028945692027367467488151544699807234541470235440791290111659525663342462412719181407780728848386318784048031275896976845220287233331119273045123735485226735332592769933559120848223665361983795802690777882508149064262815006607058444521034877579465397528360215568006565906540257139198433651106502940091815711799198636193682121898793797776862966338761733126847298283771273705764639308933503471904890641995495057864403319132694270134161788179035630009643012194882456668374280220923610272298885950502769048632637903746040860199967241885020098302540618518726048438391486180216296417618144198334041638333941998494909217929739286423014248637925697070767787398679026452482781750913370753847491518701683901840505705455589693543327495349224264387659337202697164814860260200023450507259967249762241834575925037674460154851675642395223529892979520640362127373166486086475413264502828173712714624461065614097469964865473548988972662248038577598088978913970581007185775734533197114765485038801517703241992717240588880171974575332396576443909242855312132475934929795762234974735507361647591989274409409015008064482931785878391265900631903924219292719998537728996537389736333944293581995630199790549317202313692236372223597082182229499887648191898460129916142886530222098978858599482440887515527007986999888534978923725487901373530031268136302642141364913522115260259555638317552061478109547090072403488959726662470171490047312372297345034426876352095181275276292484195316318591081638811498306292326646538791820820612750054818382503766364967164946268150006105641271763846412171117970839730342195426711555723316557117130471103488706972047740109154311095489317789465668306179854752451121486049133878241302406239437156554544117653060078275806754372247560197410702084145864464005794480917660801191210709150610759506196433971040778024249492401156810484964823240359140893046820407942446681962214600398306585924390530817492536123119232153158248211687927020137164971523843214023739785976837694316259536976359129859614847798940466529524386159839703578185927165641634013439385930135773911886443621692865357356405672652063024170207727748601796536748927743421022777200270637076877214140448813450107477548114090603953975680202742890498437955129122137317697885039179518616585937030485617419791444410286398303658849050218526401218502240218633130708948918188449826581906900938528114860647148635230136413417717286689970368686701720463624748233847143994518068739793084993204512990562542595661737051063885654235601335197552061292868966336049559637574142125250442588049730413694417094039510342989831978743402967995967475466039936039954491967949145587918548416554751412297532061509651079214340005348096274626565938848914418470712548101622762863112695967905641570261882885404053918373847718835603239253940218523100581598930183704496175238338331798668379152266854086906952223542480603841411407619111392034265764294553121594104416229303377601910346878491593495867365239397220671740289988331429057511896988847011168212367428129826208423219357707800406792408288501834636305292276019680769495690979909515819169257107993926549121751754297462026268918531388381925099501955306587381515408665505327348986174988841215191430358718650892689837844828134264825905795434943656976082491033973530974195967895032006020511990257478456612134870753317666904414419337005240980511864854046880306702368938797996046859857500906602291269521905231280509792668149891812538206466856843175458578881072250845026779967746059347302094251754766235495944503212641632697896539485000305284820971958506974344536920235949484533655842706744457419689216493519510308112384608009548455941867316934164750106071935236071726104881984698659796041260522701905434197755393129844619425683042616152869289128925757873026722586039328104643296224943921998716324553974533162029890884919585147294768570190639898792860968423671557769344691779566888240088081716759240211635641729921241651893400832806586033032336404438389464249625247763953319080014682160271969088771566231928382850601502617315405061637036222135245434189730926442853201271944312058573893826829701193213913682034172873054901500812222036605183537353742916198455783950554570198569237479019038217212686791651299939481381210945164062138675047261777569797410551593930163734890587832027734078144028676481788789643406223401192017959587307126672141333173249641536760894644265330606440234868014002736788312102458694426138385159278911864305727621620613617614137981176331905851833955979054861983370101543786995571685966553211877793668559159727442532022945549024133229102363299022444322796954049012155055623126676105003052631554458965945738753108902418286310780384429208539880282986456277051843985741910884666990394240307955305388860829182830231406825515068354764335147031266206716391448499497161390164960678266011090133693508546788346966196466910794318477975067089012330291076117803729406688012015901399136164703456983779583865450442137972237454810487454915737521605629724568308604666685692051246916921407254461184830417752975317102534966238375929755344218903521380527220522247806798285021796732211076113752493918087317549045043003435077119696330576820805051069954925871994018253481292858015445989937686820475912846222589221593585418195171847018411492790669321331806047750148725185378772524203113009090262259704889302963272570726305272874032580811960309770740183913075430919420553660129277089543034956384378392428432488537685126467519191281611079197566303977534645820406030736823285363871072136037254830849213468458570561609999320165488785105696864950312905586090848885061364541649981430315610534186385722444219594549532359771003549032499236992616248526836667795797537164579869112515078848694167458139840168143735209401237089751292115641562039104400422602268341201129876997943396581813917202445131878155453349824909796646222205618586731919543416671480703926019476126213797999582728968855966567146393164397217759875938944396931795214066824025042858922088807460981818565364347050301511339859145062309877509709066251356134496991336904357094527760605194100710062879262022738547507630605160657959451659660615942966321559598874898236107447705352674439652075002989251935206552865863531724124549100030339040307883918398429708552868908308148602698605526467927945882132431867104381287795586534375439953293431256412928915336502604470845839962956722675959101521220911159954741091256382453464018709058155113562607927146579436784249373550896867518074034149088635012098923562294026905381924104145464657514609058249238773122604025975808366915392932881503864302372878676970948602604717258409396535181441488039873227974002282651559019826040324680768360026989910807266314318826618259740879741379528694619776660817181562801931022111565095503277315234181336127696746478257604959623561599350413810278122707095537432739514140013091270672954968175990536106031810705888773149378974061827101479383205694713448626401597435577035070528739983824905315733945560703343575927784194959753643379903801682547745016969683585973715049212193849020747069862371257498425801878931841113811658866960837510275983933686215548247558256018733289353235670771175291952812270456139678289032337639144173030668504370619299587052813820440082451173176588954829120024725216392239650382872621567214349458853497487930692747816468280818226028731422062090901243473134853896707102728885718580781142474863183090328500604346554852752501990589538878688712205402611827580704295827947731410547303452692521594996327107171249271703071683043157951427078473266659242397995736414065807735066239007439958288478371021274770187962496087004208895776875933745570923853269045797577103129812246547794739222538131177524074435526172436122580519402342453239487337660267216102180260138978232132834482913218102853053813831963690389286024085973493082981455746008798516886137954664632718587419682033702466512750130916401497691699251422426728244018575033056312774557363242579146077409920468412222123512154965470765731022559220780227802210810096430843992224369158652658265733191847084465605854196102173098327733352172740368851198055566890432412148143929998078591979330229152922360328998745784375109632794778011399366797436349469689316146916090652786179920832617151373675738826766578260979974459190467191574573281561349613451784305389717243130166904802134202431655835887253806910932300007198283916547281497891196795044450443596570728405407629216476591937673286244911226217292497278574688022799693110985939542126365779572024671953928921320967874381386532106400629932879954596644933094139032117587167603623798190184051496574598520195200341757217713212921003248658021060220476014037266441864540779659507600119461443652756640860249624318579313506862199738751908298960098150116459482523308416820133867105867906454631575871816928568206224997177574962748033875040547145371180833574371363034367377901571430580797803500911780825268808497034689027023224562342689364798338484945507518243814693670432356297223057454190719617759923284160862636284721914436771967954392185272626675656258528110947408697427036594335574975431775715959565577479649185255520688678590644447231455103469850831401698657740070069911248579218523042100734400816590395392239486724070882082767035670879404305003998418451282881744463700882441339639896549139250392124760214163377842999010277848559750603246382659497843556879672617779745962681168323987677797599137771726300441417940970664450465983612415302369523542473263989311565579297177691332068448216824787242979378201551475281171393412163813128008726432198450859625771156537476387226086358352017067906846498316237211649114140545611736869310685358548507726936932314616120055411281006080914550811255035355376078229956956786586576191023022566193629333510638017158236581320947547530038110177044563336735225837969868384648589859830796960071220541704875491076546848287229217097040082168448573261225467218853101168074367015782770793606056376496364086460937987256640945237939409657489699093596626262404446544602069802614850617292860818056784423695788114354463727592522882113694969672272867332106655367569203695446504306878172789038098259178870148183756202786258981120936929421046301091561991865479003761927868800198617789181612560799111455237436016747448604914976280745279408349547615336337278461961023553313062617538015931837236462122103015616347570802390944796747441033016357302929656202681001435929343689373634441612982345081374338407486176131570517255418361874072354081477356878128389874073836294208464819801856847402524016839783286480791571619115267525256764678545411167413443124691289274009067316547378194348243491160386906099946023337302366163593728057399523464851413085807531032188248077083212120452845890539989255394852828706696630110120986689814120727886403387259411878058340206306532662249811277780948458329304015245621921472640317622173978711258090012547447977387056638093895326821191442447451332930862837939763004411846365851266061147113141465962770582171480045879989331766682009862461873208924477576464204814455493892542470585037889757362366835896289825683002323232568924661843466456221791850422877469653758289331602490909987092241178497694266483664907164734189828620604100545286062026716982019755371723202991266848783859255793390102704273351770497167968333100498995663534221272504574267362902411084021054400017211047176842668930363435319115646324837916733213877265794460369381223319289158028761347928949154230463482074314517067076286410765942898783232412439199000134561533105844610895009223035035079766416690799799961389625276324213845195107577535061626243587005072146765923347675507905720309214493421671870080577088348709172711722717051128101612699946304436278272520522403408094710031762199441996540710649741142685612592554444842366392272136800572642346490049494931793752063872794771228508378202251018396661584822653152244664239570113858757545060833413438585212127033749498206325413336214526187768150347812362414680105129106795807116594519841054740723151454289282737577396806980886606705405967138453252786369562526824016016083910179288331867188985838301875677438978091470372989821060384984480514420167350957106825688296247961737104502040653406052550864716660708197686160286970777372936513892976366632593569248776029062200804986416658942475123891397993287160560691772416982138203603149901645575098316540245735011574592547381820919995233069251925187244810936195033303092202572302462118721281211862260419751716984709379855765402776914895763039021439140159931449306070133898612145074501012485682425469146505760389492854248986896778490426988027632228063257452755238067127234242959366071496387361648084427861967490213182072452167419471095639004573174311530784693330449757256583247340074539032666412750992529163281071114564969333153948072783140252072301270677121729934524564613229747539156874629608257457484912963303422904110828600732353929069647905751534712157180286345735958610242685741461117944176718072642361208159673338997711117463039947538145464174604733106485192887436017209656245982352982984026744829931499700946445976871170826964268058531575243381302503839388816705571600806492701995082456480031913779156457932606469289661059272032544381588707967990567397096757494614907703786519223324649426894285214946225973226089975237840121180261726810955701476081903021474094775900753391587337342225131595413651371640479792245001200407406562510207173998981021532969373314827004164266220663983303051654562517819496140937132318850179392473041821487407610515183756557551773764021192428277105929776890578017863600761271198996312810303069259546606408867384860697210105217905523100052407103457117971377601607073449098567785452957087798289630941322294393727171187069864709326595926582847843841317027335411045292097668318243822099311948285573393043438712779420836242147767369288352713887526592226397040683570683596826960151326361643033505594407186826206472136565268096704987895288726112977981166107610989608160294036491129087123736173180457354243475317891790268158523503321456184235639559180165607204660046986392065134563259490232909942389592750126372151108711853030438147537311774207908494997874109341997274145427908749316345579040355078461797479461517531074561981078971231567067369744097668112475882830927239038399143354283227171966473045039763516176897440442174649675713579241898980334774611354513744364182247252664103229766313274211482451630413605796975005985538476124183872071081074729391846478019141348600079756722985623382899205106422698806486393958907831343681523916109892974940659531226698638215130557892231933628033880383466282184984042864269768859486030832517035446423096295233379990074368681542351450375949317965238852892123146506255490837404031055899799886700668060548265959241283136085540508937564201950397111028025492413872261861515446737446934403356672041154119916483176562078820634772446067840892402208308197845736145205352923360312327723332234839344542219882172656946353162651644398082938516956780967746806894410116200817498297297178995991242150516437758959675846368049562838823829372747765932033948786045416043637393264514010324670519606344061469870175230603905357657765329504541475390781452631615101939155332764583301176530868404024291635904628838683818383047810420117551039371100613125668030399023117840750362051443370564592811302549611530092611811852955467967908044833633097993548250291276867656602169974791806766411154924988505162244587067972430796228502961698663616146118808918010206207172010572265582972241391603262578218240088190841606458807547630820477200617949130099939160947876895419910684446174982320256159909176941728119764906213615856034257055059416779738012862503049820272222880565927754124943033860137331825428332242558358839849784850377718380201172029768535526629129887685167923833135871335969547117622524501838528258987854136749946756995102903323561016908668797049871469945087360204325450872653128021884944892332370322730840421650134958437028258538977559305714811285307197277377874369485653530685317443832681779319636574868427726403459358322382668381614112216216428165514764608956709836656407024906582773678937026281097339590264291373930979761954417572790885780143280688435677089410486527120368395524960818037397526788440912744766656509156799266894115164441771133193326930544613674907511872592208321729786430853263229059454687940081237129803876858329800413741067822935270555858918060610689434568969512584053736321670924587986335476016810428152024730862926496274517631290924132600264253534540819583860161095080996673425117099696842963203767186409880640384975511040379004649680242857358693115655396554746303975213640687787736217351815496164541436903095895370539545714954879748438378480732038528480342761788021917043165968516915509709326132410803803438833063800979867598636534602477645762819743332279864519756717637044094833404729332708010860435691065263839344636460247082462518028841436015054140276602800510631296898608128597928031979979291693720338888963660438988147707025690149419907738247749904717652863818917470439299143373643361783569959456543339086115838464104515186559924172742669090178135882407177587786271950893768162955641997228087838215118372104862406888488615080718072087607739613139546447571967865214179818992895139973038457870048329671119326795841280248456724512542912654573874582728569436003286898738576993232061012345552780217908102765800417861180633453993926047108518029879523484018525185497091599996618491409456297651353193822850792375947154053886126217087008136231535965856696448385372636346080620931719551585887347608359770550805374823299673582600131868148104669550580626849367229037725960475465424747323688122801694569389769042306322698120629839589028846836303513510682904275304639971478275201491854865263872282145457771668740256931793856460918872710446158993281597963137498923496828042438674349826298934605498355689159624355748909332225511411959636071578227579900618544933079151451042200986818922782227725790702133264953979704798585520202865497422749224601994637543539903609960904424531723992738936800199204485530688970242344147921689328085410461548333260122414229570750406517969931621980389007192556908560691948067517474122673674425416236199600517972509648067348108746958716283255702563502943249974593985096921676325645582876889903817354425421669007891874069751180641355609606071663020491951450559150387174570017996784178452395488121510525150233885508261718492557566999941121180189681253592631241991622350968374116981765075551064268994362450409425093692188774849277937080911857205949194810196711758309911166849298180247853710358799671735156079443334212715605902404741537027607159120576481846684896229765895327995104444191380768184062807343808722660913524055943478664000423894132940945027590895095529892630616251675081878480059486001775297886135105837851700761766098980481507002903823994677115468462110904512755741670307849462720548599160465655478133771784982723682057181458336289105955497034670257819605680699881773521092406423407518480560499157906118795691404102449002848214102052170132297177734197524327023956756694936809291530755686566596373524428648726755121573318233816221277945097201090217944265801847952015064913523490838540714597670077268240095685175873916578577197523496976374163853057374035191858431338287058853684531679070800475087596705920855100114051325959039626056207038979078051571925279551138631726720621408175706899849227136589030842219785724933034472689325319597544029340662076417836556127755454497541764443793684985399354258547255333389609872170298717223009168990517650795230630576065609952701108692033149725367184293983940841793764775616614020301629727344258921485174838383331698269287706599358732684897991509780691541423683326555827540947325957337987695048763426659356160057356397848044469920484162875562491145980075524431092495984811677928351281862723620925227550534019496629223248000226003620554417797468345301738920066388153791929129691721209825336816928713283497295327087283267788461494669358984419267205685072248698253335164987207665630203330776802677413872770551357874205252071788847298831600197655557477985886426463416110971858075065500860325876106810771129254979667885014408200656673022791652763518362281179769716337006540499758833385902271320377921567713180854940074020597014367742779531721726930771709543367881623720129687079210785565741605188266466236386848303410896219915142625021108236640622635744944388122365309764025390367674201247437965310141397987116673264560384259193831513248755663076252028409634192912287204477936200609038872640462753392159128564263589096838782271424566068984818800243030653718695895732395654221844488437696486887974700702324330302763377238460006318125490035966409468368455131358754616285136545943150846454799087728675903969906798422720148129343411158882311462756243588076249749864969509694131157209574398169926750720366282115755505659085765507763324686490675268155827386603251339752958411677202193930404983266262887548866181980049390168989999084334947257276069413785216409150112149120589335582500014081486548670076644365497721151294748068424238656345347245552894523503195385578697241262949561405466345848237650479692436512220337504306059913936731053040655415168533384437509823562753008501298804703728301275107186426358910454029963724418128230902688439121483723330754849904474677421724739430463005354887329489940731174087865550838287301375978630112322971228499293054113565114525668972503099601663779671517082140129366655061434425873223777597530991787485425603211129090173267564791130970522809658775994043302085597774643961386731648084981713168036925417213050513026528891306898562549340893087837633707647487619700025766054939390605687297565042922546543154779757723702364620432045163284594905715790771569837512482840226744190903882949129654106858336119625125216412682445833442539362981710764550264892775700473591704713270993823841636999971296497615109958799854087419038339932350400155491077294119778475842225671495292300596894721993825508047352871235143659493422970375041555490677258547450298801957974386071094393782866683590997327659166561139707314287252841461926132698787115882459068797459079486520536270507487921359498199136017132128430030169724677305290549477415538677254142421532996334033417129342034408555731326510117786346224073022545556858263594934077223751708078187600676106364224938548228673167448948468564725747745163194107012053567211455206088073245237553812389097166716481898642623045343074193628049141346646200303838026083785589856398705227654539418422557394879922482861550882939954430651870799039910530452292287479450486688631496513191130923909676912084977804548461182047842271119886835402114104291411726277385464208246921011904649850786217859586006142027978529278381444925692198616831824177842560280455725658427718937383603504862872413492225897621149280775356301600467106831933766556078780956441605970250048169975911365714477149675323773529540226647362551989438683767248820758463069060664596375184968088337947193008150898900794799565592959048330206920318043024875808777112388443551972790162362736992567233648132714686205827170198543543176261352365063728569705676468586692251642502358405854902271727773273783646289002493890326889519455809752539599677287319357478866518751700237886640101204382081196816569751818776326369184727777703011278078443171074282006872647341522069852077971651391034998785469339536421854364925832023520293863890363731164912697427978765542355288520310776913685731816836568507492007113342333186439158953857625616627038269134493998822343511827474921418574605081031002632787114086984648162615972055046292487542053169560658449281344313392278238045782865606319289024080688746803006263019197730479396469322990034417643591813113710196429384393325473949916450624309337121666074504471903630604289020897523160622943235156952674187948715925284005875641177808837592240566507137476933649136075524941514954455955721051317149669524993312173645755976879493566676568971755658503604919903002298147632942591059588147499266229376951634091958959356377658610502421552616206159864595792337380130916802947872930309932550113138725104567212009713843074505739667962971878346230610511215877528158210921024581572391168806985745560063105307790528731744625105867172390608062656531297196851515749715662064504257738128279186948334224317364112585615584551186489004766460556035675691097952438378985635404530401200844158391228698472441760891596351538182410033024814184152677946862485240113374226832521787301011396868875996699704033494737418925026761116478644705112031014904924577399646543149312551397103526662080539534719477059145962218320185361156727110826301515097754290015962677121467110678389293395899058092648877570911036651601343824216592915406856329636384672268583820666976985906762522893812018939894898967765946459404160022082950022516621535511006280114944249666457158600368106698546291085240817757646858864711637125961781451914985915500754315742433421242577441157319164904551634575520793854232750319882216961644744406231605362874274722788276555467529445255456028726696604113601234652702179384411663498961975997054421464234779700607821130252472633238766713813269340817664232030061476266137525825625543573874341930311889584785086427887768101769678200243389027496523408813359228292839676949233431333623440927703009426945438249245826273525866374240483230943033157095546590851164580234190839767970107627278078712693457095121131142325970506956326863117933325600065408957716099255127875956785873137829812102957318429421984346852845684613306144997410883584524181196663680678631498429872001274112968962833606133007784390911869859243129026510224168335622246779978304323997308662200449892380780674719516441566047635457320627961391879534298360063391054034124895710950278260591938528381981482177655261465355469228181390903772537066500437018256988136303163452020215492953527212408651158210679405168874800163223385009926660349918772913606272885893565864333475895546436582602630769078872323833229164629649634491400233671354322165841899708285484002917468377414145423598324426127191777452259860063748082234457972687151947313118206772779618575593673261678511021228396919509073892128057576680114310131589044532010186496275868982680761253250231808628263358735698889609974769011038416209451915769393223182286540122894043734388368874546830596424759574932137542655557797419244941378620271876625888176953400690826365761344654178536304390673719834446975145837348215506268830994703355078462003121614835625664349135260401592421970278292337746308899999483546366135423974298997397321123925238869808594490129110291503485084317918880727293400214383831135651855539851382270070381413647328991819272259320150406377102540130123033118915333895986188124189695494690700517062575984442961577735087601604044271854153036792885726617867082539954954404186684035215195850231595092134413044578652679018995208108813871214959407698193864687327553174320279492728556810274977077379243256841209846001271113792237854871375501348564394040462699399722736709806607226462215223284425429287767805910878265282824916675483741390284991982272389145656074910904356366909311794730674688458036382813340546962899143865338403450032038686298567745875132167875571718715018073054797803832127794146928120502982589239474011853315490254489768074704118028807306451611861037520365043294685865595408836755676284335113341556669810097968061112987600038365094423392211286565988807817750132450605189007861562581089157542835305334911958053486933512257717559862684140618134681970597130030489503115685243751296237664533246495220980106220528269223773273652587642868659033201054930659125634057383093841596801076794566364565760378269780401411470463318931328441551826740920481714073017120344445588908522364089543599686505507679779108291115773712245676638247826844257834603173537025175108348358675869621764605458421496442349168771921508145000102128160653777316576345525565394909459640268681844121005610795473650256768950127435455034658662744362219686523759214232354930909277821295681270662156860170873510229839050737142572290335153525213306941383421771772986237285968469641998659187517678435475703055573999090223580459278442996244679595816309983284647278278366219690005606164846409811298975312510263188966454169113390821999321011952046617652541086236508785626380895214110883392508230425101993895903029371232987902441878854486436656802128341636336887121587329641483133749499074211283192491149426012231659028909792487272061876459113996175706232732748727965716805406432891829649328341499982452711652251033287167256649824046434864830788820268901879097340912808152709262434762129560361983385899967556928457012915479101172916299861465898549532276542780831526728973961303216781452121845653669109694361954155504307614149938312899689265441934078553559623387708852211730380904706457627474092973573060914188288181191466713352532031957413537744280334349414697227305855007809246270978969088828935570488488041903036835829746075370350716804817166262776321902491988966798036495726376309212176405224564446442657487511720558700670328034095573786381345347572299536032660049249259850341651590917804269601870770311826700670733707267044403678859783251401311726948649839404732749733491658168800683910197045225359704903270672059316441910965714327893309034823430706878813315771457676511924451059246985297801055795753340569350165162533290284028095436809703409714481471858157134297913093957497245538934642569903511244305969187980508642524635222493519955324038814227903064799362301672048676811422043960799869987796022789193552748455931189243840826615982429919837912493801512397441694947919254391301058374505991494974115548978844014805497494226365817014985183577759144907788739296274097589248636131023161330587842625351382603332140046299335073501440702899928200992538129813342558812358535070260160925239763333366703428809712799690745627862311807864247992203011387400394567754351962207517878219343846189291020698542085312568222338139280626081320959427440013754487052516660643833661508927872369865138998906542513418300031448455685392583113903424833824610714565974772434109504368567791376103269913417518986817302767634453283721539190000847514390991098783516203946506032484896857697636685773013635456277349434173928942785474676294679409934767967502595348946675143526786482801562202919240575082349043300325700371053154841930993106848552482697799068144108983706287229315182080254697815714465302618923421258298411977536104281430407866183695726818639323157819414946016490315228597143957738833307223063893862962718808150713567088430048298150743330684702777384625978208117214980221703688737335354795905737772569482474914497383400922603826074752958368082837407955701489188636209140103737890723449160260590910283986244751347652587009130189825250799029679443456792148805012166484782929601408820975056001704691252124357908427985679290575209768858152623660158903374175930121364611314979847078166605255786915535237107831804255572886251472287097086841275129321184852082377511934811851407741814601187359664764019933526463430811311071629464083560356127797884164513058165958743653975215143277886608928521185195703705732749992138676773221335792535033620855697911888229804123787073839840681044808002317712478943084309072116649040362951341383686865514413839157736369453342083586430833997799279640599417338184332868162608863580139665651142338624898001239124963476091217785300494692551529278779771039752628056349781318151949782143774584652000058778817235512731094994175833694213654833076697988795202830266213088103441989680505124565837273125339309498378727489350336140462681527102263634769690099376921591226450309433404311910068930828622590504258522747381641510934771854623202111066032855106211778883991518289144280197253327687852233437176639706015063839663700094753741595463525725420791681964837057157097718686371302816239793440362512751485429175664889444306217887794192172229288617212740986558379736576208523878103834838160170892316253951422947350117903706362266001368987719182989761110417924548376484230872783727959258596044481719632611335418617182562410103137136575692641649076605712559201086197385137396372311360844458656757828195988873134040041005738949848648274121295830430212849468144537982088840334653065435515027261903748793982518538920044732022073382768553920872412019898527272407566311079649765858273230296760263414457658696716596571686273598627973125291095310252205720844529604973776986777560607324840022582212404094097486912645028075161551221018384899843033570720726081169267552392144556802483950446812124765817403983600894146840827945707894118082471702898873103707842556437438184958032406356109338381466345275284986375236593407692713651726475797172367506955179057969381360770047083082294060564019194419548605823288508799118996690363239937624239536836934034394957354429360581352745597174770104917052381712015052200630775054296392564479650148832450475882525664982644711137829826022839694427984143036539161635041487456585747236560533111870366637311041982378940124666246300405030661708302857060185043473771031026464104491087788671559631265685768098910040009399408942373504340318000312731639730009093771471942815083702993958874046425247934537008015819887947060846112082813379158696918598567505322908752828177007766854397190904507943176943903490197290326866278039337591144147474690219298962959818502772534137686705684692880519059810414897666082596128316830504862416578221767267686608362143468033135350377650175825853305399184541143643103668010103711168859886144300346782834838813751157763710314322386125823774608159075966249595412848435592879964179803085915569682920106137107679204048602379964738649218818768217264991463704240544667332102047155922480108363989137845493435931773706125088043902542584735457163908022744295947015714697596208298992218988004426586185206425811762928629225772948875575029197759391783151360855011227315240720119242064419187619318819947658166712889278422676963149690861085439512602433724787137399739781935595067406640856805576535225742346230682884581549411089437198643712907087039862588330229637524759797743677598893572657980098090028559978646218678994076470129919188026685286494005640563902280605598265989426233945549660868406333203152656996909646493614576838764760323373810367126099844778542411979682110130692258194878426309530331136499605066006482924520292776092990297870367412838800906193375221263500345238105505736406930787353090066934065342873432005003338790235942128090630972889638375695182897451690324085901920519578494135960250000836189332014169124623011105847914264276470305213203515240066429970580772054007211409591444284080583360109388197066079503144872790857380413039666432978055076324626193974581723282311017223869803094007774116464979935618987551979129617203245002705720074893555159599402638393656257928245859188899722936353312018086888501829778693828441649600465973651891525571750444302348888351954010784429559331686878183765732181351305478921119116816965483551326120440609201973506057376092978614516749309996425199401532396387291684586213968953568949377854828795089109678963625677233013586253527899425072413408140677407166361913675630520580761297176248741179577974382567784864603342780447199991795711202058362597805637073230637556661010363196897476488908859322168087338509547457952148993850081166299924784500797286455534570703577793049937466955834537693886682094661201160352084795467412620759473781656889241582244913969171920151810117852918917280329865135189091102955447469630470768320248626954094334631643511748871398631030904609375416617192201425258905261973890169796274368339782182971070338917425788366855332548393046001685404785105959576021636168628642314832651990947492076313601315701118245855631777785402983708878431253938130030892864725054003619675150619497072261052826493053220207284747092235240353559804667540208216542033818473030075026053141685448916416016595796001569324498251290812379933522868437050333583452971301006969126172521120428668248657398629982518645980320382022529202939602964534700802832580331045546352204272549662130999669856290220504948791910078349934941236721177932439918378248323384996841662679977197230751726457377071454286297371562686777847683521092032271116344071537082991356121183678150988011826961968045973932584880580188306665054290529885440999947252810441507841754903677927809036795600366073041197592501002521166088494210868805804334987873566248313149086632431147434442188491303916192760093160564212678103534774812573730772622282975629541223902951050218669636201045705250569570100426982259019729823064909440255082418732500279822076970943225545667207303814847477599736316522612729388448646494467486614296916634588136760404308751381699796551159826404658852595407161272955414751596809288911082743429160657954669102430382749506167385516811178510070546418644708631331914073530713703492053373333264628921725494571631240130046040259102902853554264421903088821061234650214673735534971164932336031016638682749685598747497127427701600020517405747698149623362559210812753602865516402181099363284171437563808104876068140133067515053255025988307754545676947920286180593153237444852214743452365112763752678119771725676508282152616554240779690171553513960552912139359548616124749785075397108899055943389366547863713629097009520863530342986595066508760817744934765001926257404429457777291504930009971975457852461706837112540153563293335107138456523576917461467125675209407041388063936844331079087052875195272050077418442000584615764510127928423698523914177348073276588863908090468397627624450057100770617984767804937713315841610523487963683764733443590020033757516218578092383988512348475484914285637906871769352571790195582880118687334689532094604202478614636850663955832278677440735447724473997104299587409571844337165886493562186117329284189047237574967288736681999163049671807615452732372340137586800850190927384850737943977910623876139364870482355731899314235353523411964061988775128356938917285457445541150554825907942849261987268385227884534428447984255025725596516999803368905907207605049749622998695688009680837814944128044732107284266125515941361458985745436603520482156588533725590724969999476197193120259430073529936132237333806995936565794834532728391433945608393497081199783394350890588415434553256814405381049515679356784796899837829031383282706553596834209980160843043397560473937390315425345166579726029162373296683647056715913633532502594572334382547419631690424601987821001507146008877096657388400538328981579999646218775398107076907486943952447831547660600605367480196668870005821023599474345988926905073151587347795241746951734269706383750870334349078817289215460093288132291677562503910007954158553786483158844093221006780728293357665211338328097170771726000077149542789630143411509878289043255175045633388697228570899323239023194857418464460402592638420485431472216553327903426496854729516510492576726213756357795404287653835392371360736021280879645685416323519975361830941881317587600600951742984676472562616007682025659114444288222266810787753070152133044225134989588546783773140498693887427609222769460660844500570837955303640519291706427108588150246367469213889323665285811035665248257566520371772507429849219342607968664130311010492864312153300711263710102191644462610392581907666028608730059415146467915707918966757071889456356466607927732178425045775100863759856556324126690228402839871407520011575009493501746925091618464124121450631208504525455261664979088167860941375277451678015336379784052371337940272238278749918728868451069182870651018406294699829110548868372310001480727642558879104100451456721623994116267924779826924897367341535099439941515657717987173640096630055866104047873919806163321575377584259242873398271687500556167143205719947299008025920372831445295630162250140949146640750579076830575722114068839834543348462188241000156875930971585352580492646329118811814751867108741196435650551989631657769855860079421393159465717095385974232696637507260459190475118977525562156886742528088387473857563109989410039570454055134290172045026263061256566082865509101731581687739493363624248942640219335585822008488264749214039247953051058914196077769720645880471982381916288102274703548867710301316120884686678912603160074234733586094296152804495094570998042433081898948731460936820339940049675976159620302111542909451863842985168788312687588883315829327069140702325243722795829367151529603709270166955641883322467412078115472526985251124225508686704281687139176774388327733452099284876131051776358225581370373684842849516727818223865962039006072873756132468019004423623472071994335520995476172701866075900456332751076628339553244082415087852814969048733159347391045601607092796715876481475624552333949240727548421177492448055206578223053727423869309106493590383277115472148565278339174132062327992734139772886263935994897159614419207539624598386175745538161160041866343338599943052958315626847829788534661682610654557271552348650085103050285093360635950977525218271350578884675424787141489788476509219656691353370869165586146778812234342165598210899075599040273929956002517746601018862474426293792126389394830605458931565988858148781976068967113240523583336884247599493144808262425164282555136968154999349033865863693151561239888143834992502572396831889703567302490293165795582600020371295678103116629081245352634312225682189532032105117386829505549379977039867776098165321782739782690080762998088719279958928003192742827299784543813937832625831396685343590705054565568001431501093323341962682879537845636983500124829368015032660025852108566320350533419844585223102463475455749914634979558511391681740341703281948446664595524626184411733019427179689070509167960873061570768115686094884942395391731834803759271205481537317581340907928900229425467141465493822378580640220920654986321960969133336493199333928816464016782752244197677004814471114997020609486857426451760765946506655838244047009177926740873984159650447926275260724836425971640619523292036699308478855940565821278541051687553542247584341067849595538209527697867873793325116062187665678141026365719898843237587567594841941971576840848927452783906973794906121200838312536014178467191543800966683474145959735538731585828680287967331124579763225427937515973483857716323565192163180107948072921884063915993107642692379208832162443317728130852678377850900588823177024541317372617457963398792489948103921285117846692549742110549954927387665111255211286476742008629996849130344638309770150472772061083074836750537585653084660302579502914772513010334336612740866337840564999937510924748503684963463444117182250592379330871935941811545967440881570036443229222533595555590856879189265556464049128209100122809428609416024451792717561270518886974291409216587934905928088922532764127779140149354882358957067239787443603219114081680871702123091407414232375520315507577525202612861948570320139901400693881378643158903642139660273517831733353891267453213773777094369143707815496654081736010820289421927485117262212370523699122482678553906481580485844487154756768793045382771724788682765490634571191601028832581836352101148028117786422648671533165992196869890601783972084252519863174035030840926673579046900011395622391049809925651843430482970661670334435801721307406443020298843035668269446937860397624542464085394787559489744335355709112398535412803398574133001382354151564288971147090279236789642655802229865592085315679858441801824596934049397937603501636212212767686832858323563123987247262373371783323487799494883525915841509978743532537744428773798858972162936712246202026792825113654978597914406166221081131181789733037226145431937296666063335536818407736326944264394687437579968997587194792433919717471355365974769887761232026266218253034731635109777547269131027093452030034773708068077131721234827090631561858294705505173570667886464382733961015811715951516688145689816314546556492398844087439853455114349648495322444081549793480403395100754596216336050688966395087507070484359045576426485064413077236965343042370968394404556991631146886252824555957674012605278545921170932502119108969917626685189111730229741467599675643442168014823386825070016770772307751194233608547669379829332236193090787307044239598392668942742897830303946869613992927980578120051145073553990270014836992678383779129598488101636156769001391306652884935032313256868792624331629481250977607046038694194636550396400281646126179134260572500883189993211835389542114651948499567265684292842819959588418680231130296622988757462513474072207994655383307443431480934308239433444915138225696324238282423022678193104494446247895158689963318307121837170662641867503113208485971530604078237389594203730235700323491956721211082015785019579112612953003555062134694518569743178877395909948709938071305301951767232020737184849325104357810903564624478809879831697332015959352841048630954535482087133246429499580437994469682045143739208876771345909762246579879418221124412429168119401422002929288197583064472109111422868248616918439111531059482096947534140217259833405203973011105525433933279555995975273644102225308498401476520317152557124410085923124358471335047449616336271932479480571829899707797854165281776778282166961179288393832473361538798172085647932745218635217199975739436973701978461165593891596378725810328382345338131841108959990217235124730130774293382362334501132084471067677668708260543330394323626776239727368948027345821239625426811026442765072728335035219005535110583238064617585050667390217546522554667403126629492205259324750322292998701017534346083424794154603832831745075135116602747989483169232281913926812036832838751398399608671333135270914406942855917267141590577254278175637098596212239239694354455601984418512460693875111148685353589053468774662210793336956381102984201149167132153575639758958793215037599005962643686907919851823646498401495478265304575911237459120014622808355365590893582980834309086755482719903784407728025634986837663459794375311047674069609095116513283005625797846244055423178188690067666772032346988024834896090534051911511739710465909558316815491651650502338301938432524535617387874661124339754682265168562918122985335262063718646200011677675136255220786159604520934777557987825791575053668259819179223582926608979616364120798313101046070800602726592656219496495871963563361033058127651781758213041155558151823215506135601394639598132383830633449700881525177200229354217780873089355059362748857731532414628453024430395310932189736306330983141028929035040874000939130060406610878391136297337482124113320193917099693904313109214242121739050997915902507446291094936752505394684868806203471907200497165464467749320539017377521328240035575847663318790496525309962792962311370155108127633326629000446059322894037118052793484349339931073222798915242389124231436446205646442723095527788428750265261665489978152648203112850852887618567036300485519563252951699911407643691042935950226922205227237046560268422456609795226541278988727900287513050049844532847087072725342601048927350538200070736204821676201465955757388029772283100172070409793283612395288879495954520810043790434101757137365612370538244649398588328886884708761301384179799199554871348975653480349979492743868617038531452500595392215314604199360092378749967795646341200878171047755127844027198101562516136532261678754489464231120668036303917008055319025519441387563042087626185677031057441430966909360847730433954724047636748863264520463760476365974917619715436652391825379657007319445076128470683944261945372427779396920024693984565096374992012947036073079100710463086668249431218138751766320017718944380572216152060014578714024843164228058673778236667134367365572159354002816396517092679629980517059397534963134780697363470781677335151655379616365772498117283513822060634345575028294394133972397521271724150159246907775774226996723873197261599551345552272784068946012274131419787164873206572039440656713139982245573205987471904618273666017853014136545537190809242770021485003982570759939694420877391385886783418450370213581931892059281819660417201737111717141853289914877858215841761574450764165692376543099665421713631005293245213472776770224102807650680516813052156314361667659131709152451420900734531317460280565854912477343158464571025724991204072090662953529596789923982098649040568557307681157023345184319228335621945786728970960327951968107543398079489353721028567468936083384885744944255803394672626165965243229508856955097860071661002447156650799382936750187763101622976939205727705265023611471497854076016330579952524152496027123664662748465768827914118305773710701839859875896342350177844429347524323561293681883181337439726124795695037992702255058569640622513928755071912811035079210183799316962513831072802107909814621363315721403877680824620436167555227788481614478291094218126727522817529950375754078257273926033484603540453845255640065390404372413597278492482841812409357164135700017466952091783651675917822793342198177487298985850413249835726003510063810537312594763461835279240851107676738226191446327551832382388179866678275942011355169438087571747669540215287429945628109152445803957393751296769707288113101440310490397327756010485248975437771545488359637945853073763290766939928766909998988716934986825607696510844307348997853612888061879611644192600077646644985390164616988592041150933293889826833356436467106023354542727834417775694535322574975209801608719625828706401937969895553801692067531275096823945836110147703236769403534126213258111548106483106909354617750145939055545049993091289360389644695168707930103907671196050644053029275952602155840652518783257888604705116381628253987231960264373530481114782455889939579168801161486753119655755846411552515629233076166067660993563391275868093870258789879101064859008881113980977495014606031384014621535359188151520807102051231333373174349349541624026260286179519049962679919585050064166597664889934028129717864036573306745970612720450341017020342918805251134683269331646442219950974548916348755051111044786195934959893407127945906333173965938722194826731358551381520103603811980855651161468044276344819192185662541146075054082869593313979434255834699704513674217878606129771111013030633732721730426671083684851661023299933344610190208945157812345938287781972854999503351665707499255989815662843641898625495872065615477938479773026135935186737063554542163585772542646086536344284110789856374350181822492455115829685538622222327303960685358991569480321149993525979028314505231675801112201053485696769282133699739392819478263801228213606868159279538875768056914297145796619687404822999990863506937620072961478842296574402446169569886569207930690693870598736334181379960707267662637154940962476449683247797727822179544545967372036731123315052349638356342203896132940225872680180653972505727901228292564858549541176285258674469780806485724946547453623991728289581786414158527558469317520153428748022041523844527999920097058406787093299087871590870454277894527955801927573410534527524772121762107446471360320341452447676647316161771437151564723765828773303162492390884115945998836128561987455228727568760346227299849870406908619216551476320008979419378626908615235488497499793414377292120914939301919033575258047708222769501086014211850554012207725435695027252670729228642662445906769909235128351089558891261767769613403658602094170888194087135544572085757466702208831442962656258941924423207269092346691847184707893519311664618027049189556870923608871378626675244654281333167197855032172979042362421490767999164160884939331024424383128456025262752899144671602800278050770436884581620713424618021510240810572502775178925523173623484263947539587650714947193030614705194366723369609539201025456350988456387451401424676050477561937817193932113650404185085336560620205464415898609049427244316010223751026972728768919045116321034000866161349101416284876154731573332369774975758734214998811141566557023127617501507376230459330059165146268199105562076902657333321284006534581444399354800142011605780294276708142548394637684362825916991280641937441117203299122021624623988742970928364272161179147638928093966867753761356538934552965562069936481884218504768108968417390340339438794196260256814522743673477082637862299358625627185622170970228811601968813358949464241940859448336434997565142395381888243446150845594112793283653498899281036917591413502791869099389206095891890923888549953019724841918745826938526968576364740814804026689225146259538668437620849789608583317284983914031406482401682252489290263919262261688849449326734609236931561909804182664946107149539163856868685303936464232593385070372741096430161759019981913693996914323965997828661068498510516793492147301818735849003175860883215446540055224417550704548706547921181552932879780092522639582978675055380511933326581516575021427107614654373826668750686903331082149910112245503221055127744480606578504076033069713938843029866924028687940123757870898777103883364741137755200049339495548528804281567314117253338914449305948083085262899793976011211845977371929273770699596510280775924733059910303002272358613185078165212126518267727202457976287520324895574245087559038443888520554020449478016459475190273127336517162216602556990742933530424969594783615723677237801767286234347463283212154437103878251853817987538140892108076931186467552172478954123873995770383307436641572437691759969789254125162308935869790034028175929754823609452345422056265243272027621675686168108704784457295995893716186534676080588938695588042093323641700806500632009965769068056595955958329036227929637268624268070616538221877633618142738054950016820721689649165433540392912403006958086986434131025129831251185894116164658136389396910082509336304808997326551895891911785990513092537275778364339100228086536651320231100571874322374580460608023582063870594287327864185470331479334343532769237568665023450681412474645322219022589217633376253663810159291813333912860829872464278145098661637623921070966234899977309785961366030383984936539675027539670735935207357026359653182316954705620819139362116671062047066782487621310367808492440806935102609552749940327653301508842991491129158168631268094879207189902041161885018575719396055527271027114878481126245973432500372915020371292584963901333064489405517577057509189650673455881471746004773553675477329905408140803720100119110082626827149950438378213180933931357515646772413016331964302545275359691720707837803580095449948177793170312231133595808608866252043446161677952101285068248166404512956937410254635916647749560104614160303963990594741099236671127252432926999291415583186857319337190777782299758376613816584301431585579516337091558895692067849444516967025793692658556170557319989752871633432064960601412708278509692484641935003043489727809571326983115863366962254170699306390583476011162545760749531723555815603994118158635798412431390752041963241839977525671195062845059041858733647052889305008416127820372261027440230705084233786023446257412269608012765025181497062207638097967020470022675555433621804920384005601715409435529460476021093013431760474156313764207180718829557240325159642082844405059122538234391082603298851730268750326424444304642978890089558474000635555106814976439232145090044319224992933270231153802001804290787190260780558443020760422090345611905253637480871670429506194525958233891153387875602044231493163107127836276002251529926600194054003784045410338369604348723660953776308303503895366769482361593349515411279270491652505216295781084026237873401822363662743852595801794783744749028733813912234440043067985137697543787687321530979629740587869067554673778512590733906644305328542119185117139777941512304419239566562506036694635047668638654473808347131022682397839498916962400337802596907089935397136081589880177563281002919405143147309747718486168828699983916555169270422385521128108586043179646538236494650592664191332515448627984520930031170176453977195452182673443101737715826639366823690766819261713367049635400418974944596763269787601314521560943059950693301671725892572219735225683210129144469995899266407438181152984325232695440298218261541139581944661697060868470434978062858594225457709229078038098440157860960402823684628375740284716164803294005992519681064661509477617670470252854628655015789632494955800077615920730467517814672870555079833457771007867150125941579009989216149684365138964868906193887518010183356840783107024361544831178206758800275860014520183952996307913764821453104976093026008835095614197269795668096558362085192500339350706907433415961948698575992021731352918600081383312584758235462637757632113877613253208746071710195460852173088901983399890091371603040271294745529505030582668762148869247869060466735596215915371262636070478230379731958764522215350111020177918309087254526573955988358710257391801138426561006897004324447099698037815597299509263464411759784235740005944369389063616354503195527082560516709282822774709187220377441437070332761062600584569423963085745775340304858679261740728992665349534145984203446375443713806132766016537789378396124161419248981734013887058062537769077691381304986715371089078990510665204870080692278822234702498495819801552616504428729278131155599193230292240763838305173638063656272755122343332346134072195691942491006437313222415297181406753374533845674301875598931618525991207458959490743799309999962995246824684189735672008538046411714693790386023742677155454782612575648270532398316558637721656850970409863600355970643258405391770068156740961328891729561892500296335675621711277262321690792491532758534276056138927607131795488496613303511298844293032049157697989605665803934298856390572389796641779530231380393317961229724070758886486640493713684838476032175592764222491073721246961452565455965273305506238543285688061338911030189414424828843116570544904507919308354407782138898779434268945902335571541842044597879757895570589362018939921805914251019117049706811931049754411008986632428774851209005553603074734807144377249473054021916800048934751859744155873464493806880127232388973083883965230849373767629436453704671101739533460604180116556833281960214538138665132116356958545193533804606525104315627809485056765848764847218948121593293601439949671285907862474443585312726610245758903568467296053809727820522832371806627470928800320678736403844824227274378358291853250697881231462681602679802474966017583799519920373155502554612242031268166951450171923457526435811119118314954245795285757963520725375823503689263054295103904897432347371504883470243082505898896432081397526577615701124708774186034819175847896210101796508612996629898275540920271968951081428370239944494033397225490512388528272532433865242816012934041027208903551296581105033164055588923353188894911578973651241206674432837054585515397455032419863448008777409491570666429021694881744523940457591378360544542927589196855101210269666060607837913324968511555422351948633224300889813864425039410465037435021329845669008875661362352717620317428614939311582670433021490103073595527553005699013556873981305634553918663028076001875117674987730522306264053831387782771094273821376053274572432982123637745343066476773795994195910312164854983026268660334250278724105002144404731241029254063337722760910919178177235763087680063154102685129357857135547538624512230233853549326549412463668103515927254535106941730870855492622876309332585327383129861812531722945022049635840163075092399618663319923179436254359057867032777169712905833794409779872262535865621020750264714385370631934939491640069228487344932913290742356939088198904210397450952171993975375663626179739029263749296179509337171277421765426078099289701914997868225479568283878683600010847119430071136294817181634656007916267665577983019215741776265385147890255471858656378539853246834423985108564107841302899386753044643559378320469188143286679992259548376206418999060677915113487392242724802772224774038715418098513798839041535220346421194707418851693418587583467126746204974838750290077399535321131188523381855834202573499313521217160589866843544875876624948231902014669108253634967600657214499885756475463004767239179015281703543064868970072476571530321082278852640722105697673717503691952087213846378595184049598717856786342028712829984372988105061909853423794992944579653724489070305580629132639537853361804141703798558809416273174263455934518053851820640659056455133478270677430156876045440164475817125698995598242287818486264445159425035290926783087030982831987505793537589287603331976122810880273682161283055536542118589029714817258081842912783894637754457626508592512965475647753796480737120926060886539063455736316065830804300434180866338098402312071130975815976436501096366079059311453361593655462447783133853447155523047484164890320403954538285083209417112209586235746395643010763769081318550325374303452212262282341243851636373159311556036518084857834222763370085781097503164854533176188870275430851727619842467730725210374781925840837271049029811249593102367371874486724128298026808064424481561058291111227943538720026715076562072341994245363727194719939098317477984466069199888566856781004847452781143325708281364301526010117681950950133639754599622116791452758934386772555192996136111579992770873815897861287715947324227584500233669162397172520050912411154847062560249520858288052696625511776157843142938674365772056513224735663289750873316138625683358299168748060216247573086659430712083649946026724800545413698656945235144596038389490190939397892013751082140093589416686864658428819093058576170971198213826333868873061831183980684041780036187379102287842992783580884249901988053539125033020009823262676846461268907129847439255045622953825489491534165248651779464648581996081681874129275957528415844269434476648568587568844073556320851638710292537474076726745929090910798736390837890566065392077183420671957794539968084646943734276509405665050761163260183602212635200624494409146179795541727668085554809647723489432096340353512234710659919334963829842185854399367446736075925385785406942344038805944837334927969263264998151197381649374062639959990322152724338918374441692880327849891508994323466598274563647242743996717953950905716087204090329937513427955322371462265647319061236607223250043486912414362941977311934768868972211624131781773486915260769637467680502642118398704717312658549918848102636089006682382816304726458275279723097272917072469380989440272299109529638853332682820999817943556247738537907687566876681698202729595076172511226673225440691421120921590936403436129240990589191447710372942788213679207722388169881954202974705027552913406864607935438359013734722222987738178234817466083369610022295700827288205749171666264426833242914908901540816925970963536710606885277963997138471454144405855981929942052762542268570835029573831434733662256853813296782312999938957997378633932210434127189600511227747869844249133973243803997147631206587945801899966749994705615174568764207406081289014405221704950813708863068446754010476783259518172383680011692718969254279961408018798728107193020091360981007976780511047533425292518099420911282331183271701785735527709592231626689926264748241752212333105284889972879914920147837074677750527453306665076744468847811731018281436837149875491994648168239803907117695467097863850176904552772133219511336453341232575375781067409637508101321696409797660899601249221645268666396591127305906351622224180970810175971633382943700390466558228555544624321137073297603606569570074663186567066708963636724339419627616450630735693291069264534426821053007703486353454782749028909566594078237506535799632588617211389908921227993626641180681491435348484924204966571414045616527170044160940032077688157719650581182688596494473771251457310383504960409122756723428787143276880751689487370553634417249411133809495871557848304150136639021126610086402450445577026099678699506490322749200003967001014734872811395306147790140278702660940139410392235076445883390732456333503172193650456307607157230370589811046497308007908203038130908525302000293241105752038243704868931274029661620589890340172237537933697903700299679578930345137180728531155718662219184560659079277127135254193282085421289305667340351551618402143932224679345133074210125657005391202006101636676746745261056728093322473145108740659074899196065744579091948434067652640739739226022339761332908646278801299671282517221398448027682739947821689203995113523608616678994466946738665062548969498157904975998017181126545178142057364572211714319971254190263048361712638840550979734874972146530674319877360116772321439981661014859118315192517695922416395650899410008577351890715069108139011453991232126784262629758059837373800458229164919531088559795290629747004470741200879898608031436162135200969764218829842196883111712344751649552430815647521136031768025177629331319789782957305342282172527119172875917188068610766181162944384728909269131812184405490568721110452360929713985326151217986401111953247810864190964164704758752575441955576774835220253334868236098248859830224600985304748945027323928295506969966201561767695396061957371416114451367475268382003367010130006458613932077221575123251617883370311069714943628977174155749499888988663121928346798627213951422045311860598717033685408817484275436170723709487652512404794774139309923794303361728500452240770083364765141404950261221050248086565486540470629023598304703509035067938658724709434699415552465627163947921724676540265180829374421835479712651007328761715372881320363935613863814437336535917359090545264590310875039939525057265972719344943749254299992409557588359023037096887566442299081166741556240079329649248777294814003413992208511809461162761085932787710000510916323581206638719503218041457988689932150194043033864687409771555984714296463764145788606654433905475063969512447255865952733874330187355736891957571452905794923295501565428636540470527545217211215421869728888761901966059089111348692003870361743362404726787721748428276571107611688875624538612603996034633508102423819384645729956401087237562856671371985201499012514793611630253015368854844120181558067889873525695007261521164796330786708960935415843940365854466990874027489041049321409693568899942621660480440545929520619020226564543126145346965458441077926413679375776356193581440518571832407091379068651364420592090154636360664072627402084902108901642739542355693795253413614500476814856822431015287459815169042710732593371717238412024610177276021191367834998194707429151786378950086742895047768535488486379119145188533183678433652532752536155526741801609816741228289489756376551589421508189478665565783824848730495282123675083988343769860151622337074989938601485513105058459273478062678619042338559408979021901473523426183050178284110564840979829905497304228346127769194781542846810101189082440586076834402138400520818886246268051870622370476569355088672035790225156190168381154637426402984481438362908272349142407873239177493709443401975219150375097473425296596467039372039801468927388957983705481962398096909298721767110586911032928127950736929534250252524875129996425274348583255017491305601931124190358425229127037111222147042410518074701198657982685664380541067390309342017835949253958673839075576901272676035356626708947929814712732212099797248664532467524264973654937829941752515897017788974918335306979954871208281226946196930832313521025888900481725776323064646090192302081097682423461790657332217620469348701554268334308960077171291657392127348319609029433398781459994240339609095167586760226824332464496618113830131081576056267390237160365125037165073593510365363721224234169567447187568015805589141700612664463567393541209175445789251835686501412278974926163725652442978393934304934764737588293281248558679462143114978848842100074784462100917162817283569971587913549721935548978843363654742223724258507088438423006728368401255217554378366793367404137074442446720980737622864417459480686432100435784419438288757240313407774856009199381229834641236891293845573492687626387889976374834511821558661100169553754991527113314405069846092169429080571216369004219605403554552335732023042721831708406116344004084504130337831294505143628651435939661781912968898899750965647161656843605450943452784590669305295957002201763891924465811861055924123355182989757238491312261096366503228394500367426697413567630411555259309014603743899777803758944029687513600762281214294970039717257691468764351969502118240709945499390341671641306003127118657964110711298733522938971583056084395517581454670724940466387962861460498072573793723610366801805031965414709822372717926340709544856289757190849647550375021645925928103858018838273075669683292763585335388680378767330106970658206650307308183316468816837194254426131902518180056637364464588306574566900286190634369869763147341094161548121739596152341463266769721229754849167238174155172991906024887873121610023545155447454732159094015503224191538503568412551071573509104420783319051847142214645014524283098628691557300845921824849656862389591722025289708533887117822064457705046896160944863687891666617011898630155688463365916870002608059296754061817155593938626790098215447020423937474906265890852895445941654003995372392287726784757686120644750627141538097771909267509706301059764429019022027439546720043037111195702471771365907735255493697759731922878504411471223197020584797820458051919289484819200022959995985957920584929381508647453823531894443438976362415175867793638165651355908519102902930243415695136441801822551479328349244425519463018690943452331731793458069235986004292071541211188814234235035151493383693333779225371108927260476524695489937823172895590483079656079889419779812290074731024931796477969283304494504567112337231914756129284861159227733152035352436194092823546397026792832205142133166636387621511683055188942314288363751495001349094049021286714021542882685744864571652668059109222170296321434322898480055873941431042608878128137965348479033183534027577496615239238762052805039847980379172858402169569056873748587662598509552015771393754079028011815838548454963963878502559689799963316132143336136540446953501904554166066113123896150658245117674939632226471149822208937163988466794480503983992400737491946480965427808460852758051828473469753217257696908533446460532914124386920614915180116584826332886810274286165771894440960139346875297727358409943967134256148294628587771529563856913525757303525915362473510056145168231468031733827264495119643965601503697279842437596196966710669450952368357715053780141763295068541113181546703345901274509164398574837102285127011102285374900826473166152098295125525769797292701521407515173715436086256726417881556579835165572126406580134688846435706091960806668243265894632280790965008603827789924675075967079280712756147056146862141368294804819163503225085401495627837534421613021738911308359115027527023301718643666581410924580171803814305425746377005543308408427260262744989703263899229355527839525084530164700655507616244256409989060597212410162156753286958828817079952614449516806869651920606055814442845445384425310486521180996884950451907998955570760579309336521605851502172994344706549222561058334182860705506126544551952828164548925876283911914434916753701616683387574172044500706271645857221300710224937685745660267001722412633127246178305913058854813109414868356886645207402352804488616765358463794453821733738943642634008212061448201386947038777529322773150117055470907136574243082929002242727857921332534468020320933480935481840478319135420720360297075556676564512527761144569318690912463566115461000817209978905875123447560097106050852982165830122597364389070695477480104950083436961090129770185054013403914510750586382866707358090156659089818818466050318879877695384615888016547068311106294759292847137352877939666012941029139080297405702945604088330260420893208254372240642800362796883985987139474667324173449337310558107237736547109390445652960365254475544591995158105592536947928673023468823053432239882679333922045865833698935029549772859054431326370726110878831628105169349204111156469679471291289252289140246353772409695573236509371492217032765567351271175131735223939013559000581581815948070927346183928368477640303777818064837920835742687451838225378511153857795316874531940846148378096109245525723826484702751049081906579691271191919940786891279777347361242236237651533794134482972106199997190135657237502711667144128901495307595699183033299006659397535929482176037086672504815847239180238644844133849050808364837439410005683601355768610289690552332626446216008897915684566665606395591929161505018904359631301909659745071030411339017004505137191145735369266958858796494379746237296262003705752676957827501795191677374085669146749130215531739512520158731318127904967406578456964741890371928855640822305659127196366091180409182129926395578957826957117312106384065599805062722032162038762992250760669367067563243934700179990595257731717315132958427981845200683190662990155401821256278483438912861298926305712509763338690751409224687427348662657733538591501954908789156283772096890977424356772337459775232122533476801348455143354867817526032176347281080206069644833176171764083912252304789527419996866764557953128427611044615950751323618279563627499002048357649161244298555260673645292218089005688835280478115017396088953091305430330210432321719575532294848243746449825107813105053320627804317740714872557697672569193489186789385782228035516579178653020922985094385908024192292523197242136147763496818072578487797317030316644420071413485682001076479480112021111269815145193211592649329465341063766618213534650418602836698943238381250856028733242641935004940723914321136782043070123865331446177112682341878564969664550544024931899560988365809480813566730217366777394194819536704800670236096970769811133623195055617200057778778007026239642204122946411855353431551984550848146524102940253722220545714883492385702261514319876015837311287816118135613501598847509479476008340064618057984707585367954753381287793739308451953870089225154895442600065284233951482205116803638237102319349197658905824756983277368645044833522223279746664883011422750858901760564906386336792417890878105669348903075507762504047793684042794676768775364259949644002976268152658636655409249339172238119775792936879336577711446706403562527282756767473548807095271497901865279274646897301721753889520062764054953443600805982169278876005727335179418596832068014900107377628485347280192269053823773716144582084591684488807533259123323206698005932799930645956072534126024136313711336067962590472394415918487995437187857034183917354028619257719206586776489120336995924009554661482601579801606469263374118459139590910752562753722455200299517731618800946740614760348945615644386955213460751327580723473872397827679715826039326975445294547271235807730120564867825853455717006714582187229360873574231702447510218909721449906792630145857417631429886834008275369580364888769754602040638912644923905815561688887024452008081398742051368583657000049816038364012003594557934851529876028512597581691653091515237291466054396736499419247509777076072727319818726569560067207414592407999591597146552166271588877868007517044943494749311259497144829470957479946036675525107161935934837953567505385754994452792600083143168945823218034794516431571639930279672624226711632564184415815684141419055967764221502032423025977128456595143631552245820845747274994969232671953373738356718221805071586188054242600498250609758636039984058336284528745234143811506748639864023579973497485214587896224528896646133122598324175662814121337302827507614785677575275182228044117791268763380287365632092597052088877492189541433163724595301452592922330992834005147849572091694047245654649325768097949931085908102109271546660154993808721609173214142692041177699870477324462277122717022295667556217121504856894430014549547533402248961322206729471177660924175557170069861073449006648430160250082083147139140749813261326207243338443186245542882407716085185158657257575083072909639868388763058206152322718288398890436006967911154293882438141929356175337300038628228505679312547081860387380151794143038671516398490436949058243322601801934862511437914036059330953201759108875898268635663873645112932151057273266696457932739702181496226720430237478746372781788642266027848563946647579334216373525426627254735688137937726328749110765376958547012358716084645835028875617336227004490185570999570768724898800044862465271248768365654326049509812683431684515933986153095856238266568841713563234456205612759371264153866356468766972372845699103868058150368073822418808448045795361676648552982006170195973257011131644954689631148162733847292273470574276499021450782515718834719732234540916706773045559891810928468257634069798476423441176160701103897142406352258241267305291395034033556982471539058214429019939350340510849922753858432390144435355444052143111630142208458244977965062617855313708309669726765975631751511724355384867451638519323797347072098795940642114138642235836784207815604999882237576538536123640700631565690810326117226288882788040336292075999454525384820242381350005520957609681336385246790017667760973219291832591137196897738585558828959729610279961505698738719775659207446328767944908348472890768117448475305344763337112434566985405001583313756275645909525717725213364906615539121519169360530550259370557611742600740058591662349137307941475406570988828987287406376673401308774273965465327225361937809248037700620637112232783203213255978462313107933705435454159585467866304857709135242249573031237147384977967822723136159198647916342517806373921186447062272753072437523060596419918178908237096780758860773887491239964330390795235761120376410404273524710334473093796051716166450950109415046261871370635254062243735781008486169432235832990495412618593023352991428865555552083244048950140866217287962599477048532413573779796045592058006110342549261817524677643052343325173993482346228377775401096592786964645122092636532744647646165771638303765334912280667462507625506683406915294932173266565232806649655588801282591292013739516433892466098490663825770191974550551980299284773213604519748566332418675348594697612004380809683778878466448902661044645642380512102818787578772654473975885672337870973277838492791193599392498649303843331779850995085204358045434953224730318368034809927029091317107089295405000786894315901478965504895404187349823538124810077304427809802298052471717490958402033023559587547976022331453204728467516177296137416919869085810638601772706045854977282919958448961901663852691714320534870646768030401100999544230713802989738114915213627901000320630542414973492243680498236531433161765998359970769063652504940677068786877414266044572817052762355548946768417358682980278350448283880346558033695771277722624100923478143811632286768525106569873440568277224309647433041256992502904135234977551414664818421447765270757241673985680175604253144581396483814275142223453047123872003743870924161661509012617748442208842861406965344215663611590524819361555378423986444453012621145119669935805488347647063237522595412935016556148271977866974904348970021524481569653196195842227289830951722857815425244081382708112368233175307209575317632683522353252200471382126347591492968141052138235463480639673465101815508890689619996890250263019686673901952361039543061565962563149235276218732869545387047180521370054067400577309603140244468051517136206794127035405450508935958828991390500628090501093630875521202881660359778586161449881510513887180730188393621652212281544943619636469816588187142567713239616160935161847242785948737700657189708129245249935441891084733566242341360406585396783427436774320247124698396735214052934938966384740350003373684862641035659766616064167790909018321671611640036165071348051941887308665944032070217928116234105453275746853745388238434877358381919712260549462429414055654553174979980590764931477043352807044507986009050869289948413908053232943212780191820400397464227860933428370475551102172642292000416570753299624788143849422704210314985585263238460385484745654234576688149973727579299303448149217695097258548450609828626723160311440469471113948388061701333395587618408688819339896669074549512385321897799080683946979137604408531349142125055177846220996375536482093225697094665548757228767745703756998371747985677510202848467487106029982342709327983441809639192451124012598270041481358098482249911638195065651452586643209612924370141107897900404120003231022569876521837248646759847139250653014461787400201011173031018505385761769579322815215538857899445581155438006560799336977971076509913037279584610475667828702968161940280790313091087496197638379685940629812962092953520701492195422769114788491925631742279200434438849540961366081155438071691212302347888202818079366840314934232467993088545192434652294762986793276663550696822326346630256781235969121278246981873441063602667434171825202676486325433840711341996821487634871374097025547278640309036986336553759788100134454047801924782332687937050661067548658432739926815858787045185400614221025908574086299282689282583182488261850043507001207199834717116672525608397051544787470647312254572533510912048926654670008627036406864451623560665303410988987400377754404304290528048067427854772890430367425162478868192102009768579204784684477052637494975652364872804797963535833901281034220012962852866704634157391428834412727918976491123172818971743108606834333969590047401292249737290473570642551170443997448755026787333918269211613918248579910151862550973755704623642070727718319246813543006481669474910951060711344393565808782452403592190685541223328766746654687063871680833302051984332786312505569111993208551027687505256748711383142331144377812657159038833905513281245006988606404020073680520888791398349063133241615091950543632294558197974430831258739102513575323935227640157354563053926411462144703055413237199683525843715977475715286013020137630104391321083273009639358658424896895889289406852571085695133693036215649908073735353944201559072127885969780454067486843866952088371336020058510170044437081021977760966558790693841239656562882354492181058103349184828022154612719181759054220782021863833377039670738532421193362782525178972656850873070136813243673758050629140262634520612392515461706945398242280359313784408312220090664335767178680310667488195317258016657408037850257452131309100723289938154196954874046964482848432739149931577253294642522070907841751726599249358186993944674152798272876285697355571483238215676004118105043379503855411880408687623322298822826615249933181608236104864582258659998694946884799393964552124270782436892878879191913108838857568213348259512779023408448994180238939080986293888959736095345954531469395844583140418719717050224326025820918727379325509563752899861297621613688839865713314441263306623734015576946275936591028708034419317556561657834678366671768243433750082945180188847580095745763291274234836319239216026709981503745808763494587203450854659144569671918039449502343112930180524760286417759645783139480867366867340780742812220389155021131515339771338845153406291877449670764863197583490165789119647027046109101302628619305793994143596192948229033216613253131637345163265832799564845666898857452066556073069566166295405620852980852304636526590884352694314257979185963784758538059298235895218966295756921631705581375946763039478390420662539808312634515145086498910181680121143235525567643961285153537956604218957417181697977461196145828940451235950779187350997929688196694848479925409324815357832460183299613828772575203899867576740276971207552442865211937164383944229911155280395819141647451718469508861850328210384241118223628308883820848623537217698279366704281120799013520087476893502838811941596257022317185197292824667607477981269729114477556287874583835617437290694067115731549599023762910173020258686289503997232435875287173494191180610480873387128504825277149035269862587737025484632503750373688092833551911655481910656946177512148913720382917505981547564610915842292111857665230156468319533997909956566780321663666868451975368054544420657233530668206444046411793571149710000263642567440114611529192427861783043025385339485373133368267628092737172450649222922216776373350455856393692143034316333042738606880145935234871219850647012412253964164766901539153235841805264129096980237976175882913734330172749844980558689008346646559058443527684935017821280338954289952353400274526236645934863084652892252558221791669839663880839621660771422845981999133918260282310517002746320294868750064800530387995324052124683101191924084405608639005323390941578938428665746565320935984558369588168264581839394635183428285266262221759165699850291151955155211158208900600094924177304785953315807559805587380190003398987372390144677168068433918575227794403353261921215796519154538436924762746311412628998858663059833029632754578867327793516859335722592840588322286750727316141930942044065002481566254852041004976635585159498661339115645961273861840478540607620344216353966487611116803420752163065357482885805572638518309482449694739415882546492763851281810962661185963784808532586236003754565940484449635614216735373145446130966287815057269802957119732322071841273356161204316247864289697993166850358865642162373731296081701658545998745679487351894086278652449744462984752515607703124115129291199090937677176213092282127819778170758680510559599545246897344231197937363026085163583183465162419419401352360417531424859815368406276636544345352730678933149916300804581710529848487052548276956053022953583330549373426346080402059866122777975877396198810099319804721690630361019756017568091999439140012684034420416140418746979613039854469284007697676815995253442100752135678073126537990509504504194378031834537420378613534196237278599674403307319766984524470362665172759384788779067237446764438461639728714055347913451838280843435744417136126159470196761521628693773580679935242151317366965240047263963401084292577983411098713191858229753635941768833927932421312529356764895653260572671475089420995349564492955719979853540539317434784564372327811040092218725500634293322635726154924113952992736633227368109512412490741020007506955804736066456292331442977183540683686325796210633852170531505552704880210472384147385000220918460335294756178703702369507961691274878496269066205570072698994781981503717991200704725594786211248922831121621670927987752710515062115197243310056259254496553068558987155754814259566053682395972797610206499211722830210157123352643942558212332283031561502462718565638476887298166197311218533155439969020276154805311286866327666373195758898992501703276012325721935642835199315076739849387751460062075249625855468830837437165444852923144189366695092021051173704076986762032008537173913077240725650121430023098946375355974774065171233603060286567942861790067739741765596981511792819129106067913355681057984444165894757869101413852039800185190462836890218039890463605122002835162253102995083996465978565674366656288519845878496751149266552443729322068397839173360758547817874936818749863749551198896441297564946891091207505180231674620150748814306077416632435105243046950757113036542074912494087262823381340134486650519255077688163658503735086594229233859670927598992390147067071455002658482745878484538129723632851852999110742963852338740829349672532492547825505936440326783467226683372234991253011625722274559669407864113882414242317057970990100601664240671734720695822797480518497737197003911939776479744368149829323496030979747118096570355229757693022337459707886981100495824102716642855431949059694066792092886440405943396985504059383864060516092287731622150801350006146533002693938819738806389991357493031896962626269495762025316706254059214797350452635449130866044253667532457650637301240262548507984659113457333187715597474745394008972116258560133205279104880811180744039546353416081358351319022367100642203761291626453641835563174818797052493127882331853535169956583921443424670275147707285188792308561410449991770387672784581352034547948480841158486160605772995736413405897575104966434170362905666306846000547271671559002761207330697954779298444401102539375290559372783715570891248268886434262178378741041572053481527042112915293949603654875571849899837823870749664254166635904621499136436931238775362527268676513505517524799087464609194786975603155742962195966475542768536743552273546130084075865874067851640727254189314458866963995221447271070126588625617031741345104246784486630167515093126723375353331135031004256001278835997971546032481024014033904629349829528529146703777915017148403481152262932310565549991303315150871781933268753194992563162841948611601544031766769683585766659522145808152399214026971097638816869182085833598186537825258362098951276596391195037867287611359447524075364338134381712013468024048409967233633289183315182596050588453238670344670455232231477825213407571871254699673448266327221925895753086612128743887761863221619206525905511261830089336857226809477779865196618261150692190453570151907312528673388992452596419714455756540088332306183847607864615175908420789229022984793717825400616547420035100346854803944262225979164287750638953139435983254424477107572462333591889213470491955543661130607857360324462620029161055379310776412377243040577559013139772129438253465362951076609172435471807986285411534107619966695965864856643376511669052820204328028195670397662155661971609279309842449842069958339435825058843592699562478956599450386201995264284335085303084252255395158491043774269930878775896630051298387413851150162516510256756797742631642528125308722081937357611586506562501093854688137123519054972293284687899075293433899789227956869463532483884294422716713366434747619278489791353684736812375096773987159448710781645679536152166028707833391849815839212997935532368652158706863782282188860875575542516384172428728490056624371307366804828248504423440305365353155020980516114801244460744387909955603921265212751701482510143197517491499092987445028635962258463464835136333029338370323338712948105338564577104658805362718543924344721461576429469604641440219918263306739987579743977760536176698115244200472609149266537619410177808931365724324320871854740049114744502670058045957019273090132598510877324442524913023341478018462995726597706223446626947878750538368021795440277527777190089154775219274146105580258566118670004518545693678173298671883307117940270749231624070791858163733556583538395947315187928526133489735514883974895469915916995569882110736214623726389063088025841200907054591708968532336680228274171715932337143043080657084628609194018060823574733465174247504515750799696030700795862641786875500404768534620627566625423294082449083768507740966023506136238249320415953649065560320447710139389280135295884878855362297266646324604582696038553773364104721881897411991065785315100184534068775344661997682683347476682242584972500528758179062439866334938164813860467286359724243093327115416450069857727011042066716400883336904875055030852848201443442443970769954061665643585100960257612782751161137180281504037826431890568676124956992568987069301069194624171634214253320393340277737644846488275126191390402609378108806518746908511342618372314411146557367922554192939723432225890430250021768533073124418867699456149507463278443181042493390792076581274005213201954915994822205215923617268215024773953395513335871030575826565658066171632461059005402746141708599752524847671925888699058115403250777483101269182633440289386156582310224485349068011852442302043066602311598208721170349374533723786504721973535970964570673360578668254216186407839740447745898325847071703176643580746915713510147092557271495934080763228844242792118965109612300110934155511105111627700555326403071647784082770963686507254331205038651529776685002574600738834463901006683131224724833315601189325718487833140644366057855589293727871763528152704710371843864073269470358806228475514515107492978119460221254522173354067389124155463246998364659402669172773919946554728398719755602708532343765857162475841153024236259655839800045039773938395601606554815392026577880254682321783370020871184867137417256230589127862453570399637592202120801317099976375106718262298132594781776374635114585170946646228085046389889850435263938601049192200188116055947667918651613460722860416215777608789472270380695568827406723483673230501775535650698082116008717676690971244928588446196726028276062033560864043080700702056408197644329450632317690540559742320247325438797117580728487357419021678884821536895388569854867932929150694096373299268600479417012833822283077158637129783188076325284114744338316896540493488885804161844261332078048535166587302477740634570710367877101842728498273841194702242913198362721430364694919498492961244596972349465010398090994700162981955925922540217615769463620840953955794892539261441035725357609134196295759216126888282930271509632226423946129745513600715690634459767527988164654914635973404807574466923551155623769306552323891776347012766362102554623287636701681325732795131338166522097356841896232355593789151238949638728210707437854666110820785480818337641636126293671307166712221312482484904451682164901061116058314141354664930170830369419165274275347414683342631796945301765602033158888348700081320394276907906235258351728184452254733679697076923481508287813739563367605663325123327051197474531108240153520757045277915269226685359713039658212497789174254756596960778384859592076521640954664018068622866310039575551493686041178042717205949615899383395788484986199740409575888347523784994978586528058570643547189380594681170889038393945175402420834861368869930171972204322937044989317232271887808268928435394656323547871534890665050484505154168141663503806680564137184344255808812692502669672336731218154775984191741438158568962885021990862943683806806379321339566734433735141115340758603406991836721484364576766025936027241192846939037260599052557479953164267709603756051278885739000565102005868973453932661214580547017605406655809111757300606794280311359491716736142971816825626480462782162921513338899854985862888376085116835914573710783818053596593609290051532196087360826020237072384860277703268356979118123154605094406055100437878218356402468779973348440541206835217533131305704141831817263236239896757979808626367964814074067748132899190928879595004505352841993178306159909561874642027717906404713108989285364815729147436916988742102698561289436524731178842279379760276088200480692602199634272803013575559683019591526555221393889010740192437463455559790624274630660371595025497381414391409860427390708235565972023586449192364351674146562078695829935976232235460196615772471612686677868797291275729585758775060948363831677975039891321338884700296481806968614316990034273764691187272281173996926913455464631179849657304016475188195458010729179252804946132194843937302962523957437909646355490768207197538260451241989070522273048211718202037974445147901110311373887044446921596035583567608687241528684339475861786988416470226180842556419407932311081642744675078771698805527046872411387356015670476141811752787442505702588588510480896910002563092594256051936222913627365581747197505681335071985729037631782450435458928167753275639443620496862422791242150480956309098862794468004656098891462047110381356156658509174846552445690631035488092346634024005752508001388398696838363288382358209786956870560201816456165067332341858558805862080297492461017775902280542457582472949155985594320620320094615369309054095109251345689818963099009777205002443202375244647603467601191702445457020366175918880223541310948311310560271742131054761505506073844285203076977984248352018650485173304535398310763679810559221623201963025914576849320707021449911497048540248636020305550917368345290980644391246080570728806635854928099303979641772531046546178483363472143147421928497206303831990151640072821180929958071949343767832287333310184057465327358911452103091691709626914369675773290012722191401926138228002820474893948775323105512346136556769919360360615865411935026945045490341912206714758456836051825442714815927302556731575717711093079738345042810648413220003416280344908820029957165486940519369105506005842117554231885267902759028033262832491023441264669043921630504716440757108518872791940677509009940905864506984079071490896776628389592916940594292002093951279794253200657025069599889362681920970534806585529980299337466435328994184236654892780748295159710368063204896092370559543340506323507520878880073924186106423246257365659558916820264382393703421957644148167225237225138247809585186162975702217895452195106488491947820643375012150598656962484435901923644587043227175998904481272371406419722069984116010682636996923034409016620160306682690209048661426097775964068046065277441950572912411366959796385660216655932820454034854666830268854763457224338212043196961578658217898795132142023014247817313151769877998218712072093234044853540563247282428383569802404996266348058146111692317008150988882888980121457295733010387789496486030142964050146391196643156530420215346043148796971995880071298452064350388382249377686888432448922621382777075069112890549560296414064012846566161811962186298559864332952646244759941725149857637765824855620738193803752033801121494479969130654143473371499487141589523919872874921771060511239767876689620695791981477912083587760089389353089865368543607377266002657382352360777152399571653481545345460478155509025769002822578986901050953150232198614264609360812847928515093920277903367438827242160950127325233164090939487767525377612672484135356193668086254185562320778265914651314980751785421956131947125047398603721255133901367574887933308573098629256036111238405638515447776184017709379937969783791916433058342669510344485245225086774097165973100392413844474148488853622071297592411531269951542630176039580951890652294495574229454217403187863223003572572611432856126167546952432090138569371902677970929214995799703505164709885165494672827579799706929836697291397072694817037280668871000234296556233394733063266397975726265412718962772914585470361130930179054966071958738701550237545768175204010891415589661113501892745410401207101680648868789584619669105642044939352272366675556427098393162730888305259267651797120073654875813122376907419366247386693305840131494568480320863197484753409682364944663024160545515621625080661257996212192199205453896412335272274320410039052729744407080878654534567461396305870644854500117833122657353903158378624502161822152331598219941974317572956992203273001199430825456750083347733894506201605660612238940311542135144528815189466282183199646837959137810544048734181198627736057741050003901339763819342243716795347671609752730550550067275197336876726212421273792663043394589095618869803351269345231070741978062862551623079004106455896591258726571897381911620186322900302312162770731557195156807923062515452070568874371714418266689295352620601407774109572787583421668524742653545889354709362698345631143506409029307990894150998806220780323782052487709227652057461614092380541140848556405226426104349687561947624908901749335579655103352765658962864013120932309461797157844053631694877141730516653320857961755173817679538723209239303401511384129137001288523311610099144772612662459501203514294615173657173077959415139047443881907807545292013292644041375620360909675535656763297683815368358769370581143830256645658592363166947203309710623409981861914399666555885276817334562743108306791353952012626251575933201678020619333967093973858158724852755310910517863944929495940743625013036427202855390389186183985902919034971641996987661303934743589494119705292838867231065671900957928258526004413232613557338920816433514631079616395402319938933264689327763647508200762115607229143210363739813391165145195905020103755176604410554776596972443613966831736399995843987563752813491574216454196147016158818194159858013094163826668725206716884918717124667925227669351553147458427032297946069194280311528271382963114541856766393810753302333678057524559832139136672772483407814353952217321591700084513507589011857378109982001625395416135694665191974219900583239865400115059072082120727007323655499359345384018723733459612718011701351558203120545684113592667209682906245587337791930853232728924456592737621287395203869365463398313805045888518326439658015351561063828705039212487267956682563574104803402202722939420487203536654535828109791743635244157637071463618707321348180283651521905754829580005228964240120826512271196355988716742990591950465086170933208006103103769434200629086599360734936158601678708652270130168733046742900835129360082475345145733633145690784295638614091419634304674235921867015595077248300345297907390079050810905913093694742247623082272448089845609824238258168776791581949636472828043384664354672696609344795406635548064651927909830758803654330748148944424627411780120784723896284330047470395612545708693058010115023072520109860030482889196422234926468557107485557855631541690401124683317858519059210039464274105492926056105461476471143957388494869589740375948822450843432930678747298216441204902851056388888246805567217958080828768193053220022054913111454344692255050721011337434260211611804359888883204828348978132164147766435292658940846865957129303616628658461948617919440047390579520917799423939541207629050714486225630369035252671336408166427284554096104299475843321455549246140665898126010722919545963417452181753999915309467502054723605227947378836929325039204308274518459630439609198988098636247179286877917863005761637269694064642885646955271608665485480264679705558556131041947600810300257918160961364494121978775936270373830650175876779799294338000152703105894794182243060833845391597876523732314780337424645154080854431275974060717143116404015465962089401474608916981724376903001010871603596688447566359937358311139274362450888458154098547304912630578938872833023767104091962738462910220759984628454103843218147109193833950933885264282038756440354476357895581267087065370190510747855226694465997388148428486433193281742903517418453684099744690576164533410490176167400658985092623414668018065319451289649078563235963099511110362964105056851889698522555648339294752958441748509280525296416940251835238848876567580709871668740505873001136616434122692777489800549830843644637695878444273883838131396564661648827646424143196152245825035592946957897271398939690904176495085758560526823385390319777426696094520573181133601876645337322912887031042840776872426439014154212521716574005430754734323199602630923149375208258858965498201913114926083512715784995678902628994584803152600799735574604619844178873468593011766868767208107579045292372748234188919486828537004199701366232329110729416176107987928381726390369381729210371260460166160659920657300800492619919870061843038710815918388661096155523322554901228121304252845484025329679002291670005356983901336334144882103279519382918376436603798328554351313312779114111826102670165836500889698011011388612932951400991646123088529000048795627459885230483801558282439752292963800910905624138791823699931714849319340557868784810453643433256640563043215592511137129251662310620175680044106328273652028420581515209883477918526071515603300392802404300719662669683433822248380324684128391664797260538474564562599498338385510201584333962921326809933121690158848411902935178649750739925521979025847162161313004055500587146033959570081262324956899900637918566086033996558808184454203860296064670114228042577899999688189058626740167434423618198771977682493321280235370293118379513788822911283590950285632226765263603864158062943509202066411256117988443877325870836013766040752932074502254359000568592952100439584272910831684176696003121513373479915484408266799556755471971518611048857214270879933391722697464393907947742476578748897958362879229171498603183691660873728514125109035111041603944825227343242178702757852315524503349510711236912552071461264348246271574130381418658424849509946838530256584286961631013805155549978994918668155795007427106974504864146588331022223145831375989173162962247759551961638039516935302842107772608491223382476776960564125145932040905030288446378873280725485487288357233765077127436384751541831353209621163467574413916641835488787595498345571692448582065095275706925242692087091819279233419167755402993417615189618796871042997481229240120294031888334626868628694158005774597436211468193734295642524606888729757643318596873556811004988076752308901969376046365410305390450277495419377132178861539239891604423306174222017437269673822697087940455056564776138261555567033026259349454921956726802347902572934781063619910142411559662604995771968998540954078655771941913105946472054075862763050885186514706746544721945142399124976707179830210432961691339643415387300036138709270770405038339165642891577994429626278395614677504813726344045296635319549426624803774514129516831742200006931061731032575657452940086375091326950992634461772248674347569470476960603432118370264789222096222672693246436083030231593152836304470768117990793631098166709955112784413287067780089255079591217814120015970148452643745546580301837273708679597179751964381012680092170003118886977111703584746682719389024885728007476598568861563032625749548919428877056762938515370683478745991481977380795850535396366591097921371325723493979261096994253037684141567693291340263764645751811785372353396936094652904811891176092545261961852733596140978977474027543583946525414119167958314452149910205190577356361866592539651062881595424025079096406165627492310156386313255285795716044243799457589020008523766699537046777204272553033424365973918098675034381687314343932450876090151408495333138509392849056428813820581271441723087858741481516321898940654466384255715724434601173534110192492816240386374477707660319032319967336912993144057795740297302372124948013729733188130935384094318361912687726099785809584973048836934277603459696445406585498045308821744682746202881601214658010691375737627851255301228200575090619156398580567030057350056609281200039749849640315352809410180666825637657508276060137924288363461929225004819601867436884128340205527774099548441035792190029457215751084979009024141145470354018869281506783393151571556986580254853882109006577756614453991746775727357189708913924733434452990704673000911816805641796945667824560454332558753901568979029832979540999884028345180860915097874501502207402564254532667514294133081209667650972206165341110416436614780064381696689449532230804022342971490368999515804906155127474594252977577683140891042353488373565851389380903617016739771550430116001167723310318852571562530393893002487889051894036948227149195764400053224663008769750929068441818516958501690467684516921370301624812165428882390963616417915147178457111237101222465195137495058363225781236190349505570410360547460997716415070427943303907187588935403939515149084098779247089341423573621190001274170037804202999093152451263891982252545079217404208462687793163061049053404528041880812555745527578658294561023541440722297544428593025821145826667758250437669013753195162484601858846022557236294981419287655555888460648743267769554546701070608916478931779452657596750372710774731001721589839157836927115715881799962452113394156694540430750456528475531934920021979419671072720077176153826753825856046999012922111938577377078613935792399190045680146186526576621323139749607542637086086332734073992652741036757507419474546059867786688766859637525159612322718662583697442166103459751555676057647066756175545247769941621977702259527466024953511158015160275011856618148157113530736148646970025278872498837984847183368474862905759291597650195204393500416855666574533275037446812112159163584674925588144097139377275596616701555503673866097632560703108473012541353190655837449885853528544186889383038995033236128816673773067829561240777903952914398750794079945380664199853393834828074446259545708559572401358085660111535419495223491159556116494500767607132443419563918107730723790047308037998908358082389309851604336175013056864717845552778306630686531139657973390548632396227734730454186530543753245668231722117020592552723623614976607933310058430869099460921541358239217394586488305086496215172617317735647705486914012223386978335161022410941302665925867294395518487175385476751304706084982684809949487143835466560938236818901003317848580136512537211879589630872032411969870968863633675248989420871656510440781377645966743016712759928924393807200313304536460855119804344690843400136938591232313400785786867980176302067607517460366269412137657303788707121895923284881488295984023243718660466114907925410527564341037793184028607779024108474440436342324023784237978473919577479758967747123006085593948317892905138691290495558463049184224836240628283841692024656951045070937480940545864642702003460269896699248861685155774963824899025205416627546956447936853576188008307071223074772278746549310201122179599468363256197213866442830533659609891568893029290070052961801763715082035638802680543880618954890903553761474284299060121149107646892328487026761181949810781282189129276560903857013304887466648029253083068772787961573826730188644675833664581668509879819535436415312955802095621669329035087760064589164983491317050850339231985855144680122236647648317475876933695024909821069149158263050145611246576099921782372698760325893223812100693395672840557542603364588681577099129589484725136341413596976197738351749366221551587145172372020445023695340350974545089552183612528658816631185765776411581275520555952331801374058049595747915920552188352678068302521341836326609663059899996866496738347768467423081910220761268026889121640711756611478297688673998060002275280358493856538482471954016335153250334145696454432124523479670061513439151598523773114664850233796780342749516278915005022621254912711580952535196731858494071963754699868014119985897046943012404617764545593398343379880848906039003899683590248883647695189579216318918271609354973775514773576850223626467894606494981649882925109953284896433766517037052028050502152168620493798726688290142475689848324170388047307779358593123089762143021282190104837387884367716494842566366105601425642597213007073660442009130420351155825047476756556255279035947439157942686170286440503128005515328341116948743361022999072064952282780441996975198731745622381994496779196010821799193293576856727551831533568047561526319752265965470255578218813190538955918585987140118676017026937046457953634684585767556068676706368396175646373686132607793702769467054435963918807184182293102291575391910868702606928752747972677708636958780399574890227686868137996000871731817933013886218796931986873309327877203502747660633842113229117987328901532668944643778939750655578867909849508184875899476846333046271376215918708414471612953137296398117274204471501254218911360533024215517848751427608069499456925485912190398275362906429272534143938554692466934899698338679132892048045150191824990757034356780391464194831388517743673410535007905221145466631170838630491647230842117883333642827038699028784438900745750479363277998110387883132351848234363318138888272738854832181919266654966169762222304858067207417981579934662875770803557784289760716525344047656546690511250840753473833838332492940638534549509749758079120460064379618517352904359637269472787635154692045783648701227228249737263606119084258735504365208742066971481925390798725884931022956843704942504108945350589983904314005097928726406242899797983346402202375579372973791691054407925604924957723105681659193239509990216766946705444805235333484597506899806925060127941657212929240307678321719060161187727092986360292348158119253543462921615418095242229355253093857390571438484232843063686746866684071061922496707652635747875874726963037408897846411537381635554251557315821795324410308347808229107764639057684245831853251062863013213536976022891882899637498166769422850347248578355236495703693472187637154745475978662641677468468352359784963496465402599127596097604486576210041782256797796927030777582839695380389612555944485876889939831947562413169689555865847616465806786185786512212049505589735747837737420926270480540850967162622346985713510778364995036232344666099318582975158836123201819046220886479781489560889195800781488808092649472993556683896983864375288184095656831280691096312489039407209261536280823077194499488670678508439732136139103516665966851382733347365933885001680690322399516231771343368898949494867515892860707906615613162900821839298862869856773032634318987114830965171110223704081617315700782959690881274410167828813149214010927029091141881769317247776925800946696940141997427080515118017887887124239441855661333243116979816652294640996264092435589734638415123133084865467856867879233941117036331982245362679072221049406282822517060930312922835193724136851962185920910457112960314133820368273523550638233384289365337141535596326646144332180182100662326451228430964592395952730350165217848764714649653080893867532411676510418961344427512244227739590343553231291643966196119640419200152994007986013507102676535355883039104473595393877507456302502540740772777214981154624326356691463104641258682488291099369185922603047145925448220969366647205977779027786881316995769643342504384537499720619548265772491781134469273962384582514525444388998032245890850629104260003842503062758895229593855815905115005730433095366938021976813292620357133055562755305201248983887791364261587815046068137309804896383063554975580437947204419122316713532310901370637069200255900830909736836670792020654255004440577614578449333875611888320579293590791510572204660354098008971863701642148621741169087396749415540917205601901519307360106754876492639573590516070622575491136228452792836903182244436706809388720564887445331914775448125662895274966817239183704740007334939195510445826820227482309858901952395957786956375270092573555964539627174887317913427478038869895501805169245646940128410572025569357321074773936691689738606228338580244936116013447648200895542412110829177825845985256119410879783135860711907951679788582505485854279982165565544895396040897101730369603830156727727116585640426238582351110166612594574123839282548661262553098842249375733013749562785717038491114210553776470734872887548113834089860488442571811891488658616206235972468941659920387765807633669676001523395333023892422955990589556231674892500738275831750353782299482657398869386855951908585904248166440510144389697747860095146522269575566944089088821896939001156809081187480464131557002711332349104479997200601893327788417819428460595814199544969110406492397597587775482240389557939082836340387744840849286831080767486231311547388413506918319484803554515078846565864607916259805270717770137207381407237265847440262687504459550399345629577563559681832573208283021916319569814580106511421993386071488267287817236595650408595355537842158541620926721956171310462771023724542030460554354021238483291495176630962754454921427776871702873823640781737271890552424471683914118545837979976027960573449983759389791610590395508414431269445425932665866105123075973413468479491382999319466883542021013346338583687417291870385525476278720011482800637974913948122726322310106907321371228411500502030920197879095939444297431640928682655026231599815138513593451972033317678715538776304681414499226318771368731273572997898333354344890621656071447259482502477013385129801721818863060482545830937953420912307403644902045272399769641738029667708748753183847800528644882476027489965691980347148180970907036437609937710727259973877980599290511532736528419580409259176248297571467793052078814271221593217114266970763578401677595359163506229785338930819054242806072554959083923226558218593436026520260649051192534727919087921905461715704152332200576435874634054854476697858002605178962625768921783151011928585678722231004441926432172294614774352146574769508037484591285836407600250320776434537212315457272346659594007283140330337872974694547565771728311014717512272164663173848952868019829765730084132241163358168461136668784287367127046647811240941016770887093514856738603736494438593723759319514520469024288390322694318640423301277407196720188174540914841719734178792953521404117297903126958867002997539681701212541937411317636970681482079394784395819538895102834859769683598498246831732149598574515052777277262088084347724757059407697470689463311393384559091339551182969623678601002487087475776239407108564531858381332791390443641733355604260146881932484371224188669292911514720307475447752168800437487882066474885568395109211193728522255838440032219320372216672201845300682831272864687974073761920670706290968235149776384078492800668352369189915305330338674658210663776117277425880404223990888534359828776660486046184237414307615829095020142146744626960594384319433978136127153521249004177521250638758612692366828597243316506447153441025094433446397427647684362416259282083119901652067740336112169004468945840827373876045760954606039835724417449688291055836368274474961799417075673944606365521531743005638701832534395800081424483775499290942290647749601139232267944581411590211992594146663406319203124602730665131919037451806277551266181340345761985581685121037633684456761701742000719674423055664985377700158182581070948843895675321399171276685293823186985061389900360977826084957161225877362392954476435089891914203372833297155314447985449995442147281701235315075960190039135009736863917887908471671758122691172149910449842197456714564116544167662379212138168165020280438951245771342093847828764357932668891152537445676378704828289829868047116466793241477190977962061856029134818192505301426325576033147471558563028832418469435083552997910239661017697074373452441478225596506222254686906654201420594714972970195089996612724270103871375533958562855049713993070611662372653911787900720825960293077576978110954443996089601385104936536686077075391831526006024923115734972082879163238819666102124607435878020725246354035618479803784332438896365544314023146642987922566303429663221341693861458176602154207336326068958166984469383681237932654562485081229594309044690383114987636843924920186375597524056397036202176543809993163690040568417933856344183642731481827442021369192348971219390324462932473494038990376325361407041060363308062332480381346130214011690956680082528465710022478691739432941763585395859438024850806010552286120270464106571349146944972261875099142133619499890974873953650473737587924626967471623233694748724189753099737917235478186851970809253891510965553739082097922996584686031160534742732224287962801002812703091888170361716074906886173324254997445971014116670726664097978365648053459669005052681394393246888681820184195683655204997004236899183159365979823958082598379517764682336823325372884800857226579391535919202787888693365339393330436225223298246502213182507128521026190097382294431842479384276764376002054711164076947514788007933426010395328559051708730145174851356701500379275691318364504007744672355291094038803481510254295225894361256533100994323678784051872147529433435907975286160459094140584081521863517183606094087189528991230842012298288203073601609617343917717726711731382711631267392249762440586618870177620765833705892179764871960902940322006282214517156511843873127633432922122697078982831793563250876604462655757647957734243073007666112447194288587706040962365249074106696144517168816985599379218874621786139159914192000691740249805315617562213136607359758533341078944387740310093645645506943568784038822843413654855555849731254321878888950370723504832885558966407533644320871029395649980854998676266092833064385551795004708334720895307564583749137088696078019685836961935983329420317627087061433888023305418430885961728424468958474706853612253597582189401427936955994917706576320919598576170229181453708318940089664054654535100910306242364522311964123093950768162055038234747597182919244837777095950269956957160298329598380323789880716371562381626404978490394724297134003098494975470180822195597072806641916753655304585478035734631617710139140074325411072898677937745240422318748860233799575653774317602367748246886362036125257048993494492966728358931880112972063642589312037704715773053362643183679267377270167945050573829845004917197964800533274443523365735168958048204152064135639095827444034764074627243967249421327498848734565858619904182573642498939730517837154104614840857491473660336680382727658521336187285812773928034165926694582457593628600066061584336925297874593141705319140280637965843885753435006909278757276425319891547742391763369710909870764605603457843989656083899821082572470388914522689262792779825683628379469494594646276965856756595043350858521074201505947737326827062547277189216017616709696847979475688143684457715994877093773636060996694075674284911123773381527497548583841643485979132589747528552864433479035963871001790254536563014252649038298747894038040722843098216139852977644725936693236379083375528834556760154130078585828294657315731769610653836109714724825106932783678383373630914109020699220802017969047308273499566508223002035863954411902505259588260243646300691093810688861766157971972431953705784505041761653312591642512557800339591002029894106531561862366942817593899499448060492070177771255285061878005472509236605499045181422807781692225050269157194065953827232536319571707273527410575498364576137463949172788128861595938450036814559469016243501831559421262858241235925303565882606025798740560639223188137851045530004981567952856258947837364573958985301286783071657186603972888334524688967447231418608661997063092184605306480588727027158311820773113131506427737307175579346939293530744641343468039087494496521258206340070331316334023049970663927321590268675100696256211780272241869729399986700835215206396232790682821344168188255510225268469665500789211433581440316647166671595379349801862185645533369859305986451388513883221491333894774913618725516820529867971471685731960384579950897469346217496282685458945956597281969955825450944519499713068199981816894701008249607338095608620256741435361736049639199083777590551869225820377178505860576452472299285148265169529035189473763168464560617839198823842908735184310388060229311487275511338583369548625139266340606284219229611883089686479141131843866551570749936201396825792012720655642246449136118755668416252861430532193351518485755077198393588372305304202193303482153492864159605315362572532177522870032446142993112278663715917096524697151910850426028318527837828319991212646788945757402105414423917129439988136026096768474596368856440082791795139576603648917002153560710688431769346883331223788632582783328062750115433094160971798132994808745130284575579307731702288860806820748804851428543113229524691554606611581722980093890855345740256658841454685024271020303406157767234794303039479087345182216395825627089143252067343796531727253567552198633481045321941120049985421525425877385554796129169749544258436796443368280958644303290868802807224167258446446914271102074960884713277660401127785524763443465066164687079069595872306123267690247596176659335302389989438528562127061976221812616876150860046768233662341671539926990329961611211815112610967469014584578748407374881388549064446861447225361217143550493826246579031731665508232800702625143913839816882615184734171842799343624465855678026293799084510761804331637780779191547224024413512178989132890432167232213279074258098510469341850958235167802188926102274042526654394960952058312741503535306593830596228029463819184460818302239171773218990522940508796976076835767879669964925690253331385956895886325776319446703055068389665650456933109152811859115099931226187372531280605112260514128081233344260594026443353085064193295318521697892578638534953217826629832460207396268706158421768400850727493482584907318059158663614013063932267550061564726209372148906475264374983164160392065095724202147478225312435728774212520604066834186671084164423538724856674338391255388235778305298721745307028509668178688314742360021772374393210329276531358042129947322175095449248244456094678661677625789888813091044478946108127676535245546377798761134383067202972890087278908946900690978937031904218053961859632565600274045590840174425374059276015476999277263890964186518710827102002397232549926131203139104993182220368751587926638948772345909089670047277341511335675994333403882557423830144844980554606518156780373440140222649551737406129355679399463894185987161598224975490269702090987063537016555845151001340859842079896971578606819486275991905616782106037437397146283522366805740152382403289726842786864172750466279417090644991820794375036329801944846640350383268672048163518730196312264218546079589672358274256691370981930120371223320374086721837532947859699835098577819930736032288795705094275850807173391979590326359845655399456617011530543033764704175422933846685147636869177709549870272212472803330127896554130135105011692176267547330982649883868175816525592742328501408305138009157119681735600524868612373818922719068726826519806501012767261571551054455390813598909768291393883238239628040752063277805528367830174005983329175049849461942276320866503894475066720556066924991977698576478696204048673369006599412542900252216519329565723462505432255044558376931369909174899994445982060090526884168985023387911198887193672795480863128218419484152791172339901710867195014417676943578459103235772924006916163847264178943927540568411584937951555867225266454054224422637335327814964535287286392556388137024581912598536537189448291275405390789066588101451077807457200436660663069838138330750914405390850193682605547782543448034496728838795518460861554685681614729306925443810265811405582448993421961948667368380056425029522653899846434255349849979456454197950184577232218893760102692732884769354481707883179225951989962154952605657158628269440125847006022205983972062600308372429167932916616852611999924303743823729946651398799212224570661140726226080141393620997024186938247001403423962245795318622754624046872543084044846766862300145986421086443810983243693359023648340608829136429828864745548418959762504285766206852136743308552047603662361157863569248222447276797214254665912864195665355086846260114258782010899885178805543151902059275388477376462590562039148510757168394475706662403062041756774626857393209044902013724876066799809158181982965868634955730359945567845627939409728104475637478563828024771709504901033998342991635295183388221383495769743281192316830108463209517234838522257308734185636467509010195157691071990177731905814035088223285102871971889609654344299697148032791643057063961803522585169466981416634388372535490371798127194026817828494752874765756831969766026259752643795184277416166388737161118046358118490668902452128496647846697982120082903867813133624232800494703278424831779400968066893318785975934594219901064140835747097372645743053377404728972782953813088612391363673736718034124716151467989655577821161596347184138629935827353508292611433732841734950131688438088736969310690483777168961139738591404280174094448097616305537224644087565256326132674043885541334578437390215654025450458240300986959568163131820885061126766060920893459687414719491354547038730894643960787350874521683023169783646474109684391504640603578722512775522556899205565019724330869198378725135208164689381372849084203424155768469045662138103447076767354717856953919194812354018967740361130194820515966053500639935064239661773687928479671082308141715706107092980774413298380908586560866525769289488979209085332312682832435248709411224899807536917388393761673715909092963403194016541546317669113875510922108114727926005307836866895282426077871516165000186337738905840117595990096107317370103448832897505723407705956319044093261459202805718322347265866379247452837326400761943993962001345235165755293853116267167119073942730506522137192323018817170652969400380632692101004168200794650418530698008948519891890471711532670342897689443152956745604572663141656569379184792817428402758761953055302856741651485996213238164012501169035671178441457846036619459659131714074796495304781170668282737211030826642491701856907603721862546057208798441463507357270596948178078495091545932534373974542176006356853011357158123063265987222153678875117997900837103025072947643059254103586126781684676836525266360846370501194671047510758349903045088361265032702406475877799212278142364439593197653912857980568477901903887514773239033620014013278970906804349811261620294888224339591160031141309029500068602643382498532752947396960740537017108187063894479784628183031621560784148530620932123046164958622640626695981557393351000013402471264789414524580586803264842553394281587118003888121827396322285867184086939811970893920245879908410618988257872006169776666386812375460081751875491152102793094601018444826265249766165191392433377663386747255446188264926224456724213379529002537698881866417624256088232706220815064098202606622156788980559259538016292724285775666596621433549736704286487019304884816351270181562218219719111269219971019484018401820542821063116535541765660125382485378982279100680387256577903593172547711104328852896268469595609945246379767144922011983537975262452361205070616613927618137517031063061875530346802779387509373641249414143675504334131123614913427751107977822103059284740815228769025164862004129270135641779251693331780091705705500440272979040735123914747558551219674299069672555398867512433716238430098399775368910716362152275093916623494718954399533956396296134892548489567028159419801081965430704339955313829762872766301502920885075732929169731285192817833001895224093447894843285175208350751523914823306430279859216684886359755755249717482127055334407550771006005991122949473832058999533783082577823756955304015872693471453733208466691841049164909133014425112673482577279906947317532431951337055424906305160088370517388916922912408965006836991625546806563489879501907890640635181956489940538800109034788358408053293956580288892785275002050534192757576317850230333039593199481690076204785538426602256756318051033915905997513449424898434676111809311832411310476226403583195313235603348598013704974172516951700253995214776934773267804356368474633107103230662366802738873356423895210395704563368684980505983730994178036131824458004843075366415163317133310993101958131456733157593173862135668282671222642402566943933838566322978554122572427815615747794679903686480741883540647040911010090382167741256211151430504182618197803055462619930648230611132014620698757252826339192689554696306561369157226110112146933107443989161335180583966063385526344584990912949817560825952883335581259681123144244363968959748274447734061911669857286467492142768342143170110945889874285365986149332416509160263780524867273608007284003519677968105143101623751672403118569112590783922932583667757576354525250509332539469368084037755713548454333115667972474454434386455356033323993828964095591050628302208184982624052186705099359769518249489749909506730303201915107491801240538619466872307961631367237705819023415620802024166148784536397145916617946235982279637069602467276375153070011537054317385352545645052634765551094960931753557021012374203925430241391874276063050316848902101565524270951438696058299734672821092326740816269088761440811514878849670541621539861347218868815004218260614161992132854552853593667257490099486999261487781187542858723887784273197573967111443193537455950209784879748140129257661568380132918328547705756350417934694746219310177167546239159385250249859238187799642776283476557435425488590276856044231555002110543817439303475639871413187494268734837232234147844235433662541673700931899439438929212402747030218781077749766014680011479804892996299346814845190171037541498442115068268780020060047158172806867613129386655497576273349878277243672171417171974979817927354183159730474989647912859299247412175780492063504817721928071322005160925383171362201129439701156525551517571423032010632159838528992207444332279943813041732970679819226448873322632494742212742843258242750480781086548144741470073514697428174515941406590631117163558522722083438480481123211464065195347824432990762800159435231020159848927781206271285861725533829066882665933458990439341344062285278875536903120470782841818385920786541380420345525497027064778967478036743820574227628238439896934572410155224463448395301825185382085254314980315496530485035432417410197481308173796989302566022745983160449748266250833477246495044432609219408854654036784212983159990828754874789988110973930264244715204284918542867409231663451536330176258446258917168980316278113626346783589090296528947343279570128116905954216696830889458482176420963467042461855600035951374001949272530946077476720310122594965268488074013573667716774343001966839305926396529773976238008083313570017952028826886716003447459693428181710884514662713434745404643576704784078120128968637238677348781939053561207578081091429595654835842611934816024958323373144654837515483830196951597646286299294575488313580938728086005580140804676486705004133865629046738856045624126084533176795576482821211708232374099736713497029622734683374579303241120598946102326535497992769150386723290638006100623395951563536545729409906068546732032597527874532735805995333352326081780872013999735818017626677545363610402539181282359540214718729060253443404028886942913832895138206238182344818978738217568670894341578257677288158364618008051332538596317341308065939548057215769182789629221237640100392165341118394655410322051438397104797147213179070858656389842517389016991271794186116460814377857033026446715472039079425519361163268566077962076177640810913939830434525244518360138155941959287699220022201170553551455033201133670953673892380842800253669260125671436193298454451245604453001321443592675601341205217483654022318537735530099413398468639428090404650987318307338021029249983193218674326007639754219246071163392106826680933793886087795413314163667913248162903615253735142837970805063027381089779274772424149454156515555240496077594424729676680371682100683623735899621254672948748099829629320953199826141413313063073998152420013847096158155097114813097430054006190895383429340096115345159384877333763399788548391583121456862421795132415139821885778447984110304866305089434293059153717203873316376874003370400894247574068086830388747722411606879137902521438505030156215306337394495926696902213011343846372501007017764581673621863801546821691220801869235141918703677985504149992502755801654438298272893079517860946537646955784347804838028297953965082268485108843705328436083695092733197156946011624897906254973298887086503997028912504871911943566255575513896410588168963815122001282003472527156469656964948273462495389712392588370176011239842620221982895367085037142111974516325461339440867731283782407557935727331411463808910841170191206094032625165654993168108692753949987467749997692026421479703730291113943971255568362846835042668782955021790951251623617218012209588146823429110752814248441649661399259688512547006115826485520504072423130424149781116987569211364427845420655437616361292277712059965818656712226485348381475426667062222234663831139604682083154430063848888046828217108958496496723847543033953163793587483917502884279116262005826953249113334636633433985724047954821265008321129727500473630500369281089978398650105950706599952571432854004933698454508640342876780889967506502253783734398670709131982678804232157006457485231465347602195028917980453686274007876690601846313841322684329103542189669666238076794953019273038478868823490818559549138085261805564650411022459877302929480950279805231771112208860487834662146845763695102587343547021019929225641842666946930617446237514843371836133752263997516567952699074120610079905199987878658019252587508343241259183567155083070027649971275506915545000431647765346371560854895093120700481050802990738559561392562127422635352823729440247460262609059274306445483001425981081740321600032753851213466071769811862470330023660884545266276365126698363324158510136071908590344947472037898350706175832869046523450489521776169697828988827787291214462794870396596598647444410434682794803854236696311451104279228101488936768528578168815704108862401741117242708503978945097790542859620922199714015963469486820627640070941363943578005363941069750477172677662070852460592084062783213590560908252073443985270022404897848800029763632221330899305413891123981137367861055741221486736046632562801966476107643627860520723124902477704195653063278318659103064392231454583148194763302807215143490684688169020553342717295126212681858209430827559248177504118713588686769674056725472292241367643604890862480560394129659937188376433485437047368000764629124000059862517002350566406699383986858217683209659258269395714650205501908443769383250075977362702725484674951184161329277032119832597335314102195256393532420409762698490832834751990997154178347184509794293051581742789769559672109812096740441352651075099426087591009627027844006060640434555389564095194942234177844633163024143784634720788736986713496237997641668736261082567972925452567527990057963310868244312442757773182504062644044144129503620979612890715311217359930695088664419338072463464893968530110452839571179316309200286973770208763727138098964179504814258259636048440175281888950176616480968957466475805291233291120051995255628863665668146777735682026174665065742229590778356842804164137375932262032567930516783019051088400214711947575603886049342957017690371200937401125248671207407588211842157429354155853674114995039103947088913950418781302132589869216522684402273988641185695090275999616414079876201668289717586744433369668922295823827897827692048563317144646719243445949612026286435900505340664441200716014307947522128517877319917732756779698652009084563258233136115328582769578046593868168896065340520477479728602896029939289297635502782598089648768527555769172032511058749062064542727554418862136907570453149050796585795075089713640758353122960214926803247450847206382242718198741413510751334266063405848265006322556732841849544806678148585415564224598365709428633345440235991051248951045369412891422772189491207873732861496493889039375869695181502017706450217208003152162873587051814093167461482655699078927804804734457324912484991448207106816198790267856856922513606567372128741648474884172099396270582950993798315586816113562828517076339487482276671992688366902168115966815999921244530076991991382506388517371642440617688790221564573198568303356142745741524045724953285059017484733828863721102357506029297631539683018540663391583834660027687684171090474864484565633330958512910583613593199563821526976744479233078152877277716200465202082525945910460532240100482099200911460229722306311550683798569112230791025763300588558142269470634763286037484862340406923237781433744255446087866063655202685028062929037573520644989104339466977707978370970690957552418213427613021002062478309840405160992061097339104905653674261884415406291885368714286195376206559332453807861616316287325234308525141075330896514580267100199785595388580224108144412650684232627496644236949920981581530569976243647890265749592295768630650993297647761947528857227226439014635010569978133451886775399840366937666630593490362552860001467023399805183104025001565537151463677909429584026310177897418352613944836294225110859963868487678689571973218169946461221938512588245987827195993440952612338819899805484693136813874461145892502968982132445282995372550976956289319302618694924634950854537820229409632879124422197755563536083222067273858973266756834871538166661199352019896332858359083824946924232981203972128198215132148655420508068966633788529678184227817052695789387445843539003166763202598986475633909441879423696816660451145795554905446468968453935687345331203267148205144549503006035465209024652897896173917189984007841305781844270403894669840539915891441573146055965843686652300255607590278596727459193473902637406671665685667790749324430018881288469549163803560196779377042458655630498003822854738992671658518300591959317987346656388912804816147222575214031816394058090860244412328167973398688152023214810098216490134303305385542015282633133551822303822840485793923643300722590919414527055274320623768361789358273026716517011943270209338780580953905421876530275142546778982352329379529336789144388628927722595105859351355725698366950821840245768912367823736579343844798792966589455262219010568796502826784757026405310185036652710140786114680808553473260554855318053707342544065807188583374129713418330270700420395978883980740076596554650462981674422415765214971748966931688562071672745587247150083269698830182736746547660495059372249283179296377380373759323275698341253740828773412700420246231168348727473319778988540287547574184580676900913641869096339230894694119862863226014894516193714285807259273521130889981208617695792895232803672628701660343128221292508361310507789359180476389920269688721039414207873765748408633487323854782362425912246867653514332099917612450759254056276404555621667168614577762200817646820748159291260614548332683352688844969102248852493406527416306830237270287138705278995784733506111769651427210064650939650180406095939367106718025195868687782630595736026247804856588725487694373983662688277763567502676529795612486697257477872960239008790327502048076031486053780891193201876503785641610553385916897773599539341782302827504772478115582729114053309451789484720334554884147631245432146583115757484387119356548373250741361028286684828959654688138935780106686919687159892244631451679537049831661541746987239520677043804610396593804660122659802777059425794782196682207870356354467115367445540331491481089767473512061950210062320802069915277576853405756867324437190351846180667949429962281502184027925108114465408716818371018244625944085039036537613809025474616679488407597008214908333055107372248551671019620455337437212534844149455305559152562533679232136224817472292049864803772092758891055775349594786951727997987236606188641404360274196185360760581457002756878854835626906500101284759108993392472208324337577062714575226645735086089668177630306757395494592912615374162488665648454651778314776609438071994026850981876496200760811396636555986806854417588579442399991065554298175662987106864661511370451481961067066197369322245017977417877257597641516825433773536116914503414456652683573948192785690700466398071770623809372485173742684399713084546540632328634913254238690790193746365133338608828883793192207577078110226531139866314829635976167811356537373552666537550143145886793128150507231588274536939856078686742987751165567679289776143355614750059603309480133258730293315087051519510982894710762259748661474748634282014819705169016783688228049338569141210881458192232260796114393265858448047337906072261283335925486573820711942604789222529472092542001033293840828907801877852561758164351412964668877483302606559425244671423830341556080720239940662237721394013725193360173782162300042230784987828885509215592771700467531028846450518674416434032359175044166881847263863509052636114454337243456252623213265777160773213660373431923805139729306649688585217473265083716857136238105456576087782232189401710023672890942584389531075504543496443937961280519580584857338663316754968621083517934444313162364014772775837462405289720069356637206073504856923754312084412219761201516968362298797467551165730270576367852948033106558905462426259717096117502387587644756922289929923001291744563211725292772527323935200305800470144445501303829279187732352746903043966669448263607535251773132449796947360333371341414086876667824901839540720756877239162020847014812898014516969216353849965392324666771386950525888345686619814697610923230673133072986438547945996534070187005949730259437703706786301487888049013163874233886072158948053653437200644327102552264616451618351435690340563808225598997121834203361742527607034491542197120159217738047068370262269158995872052331249051925436624923641552260220382637404909242542735281745214056400701303861026549186173242018622959686487810946765419927330345403604943899310294115240050946937518951227656332509805624176109284260685181555169525444736767685696712326512642829753071228139843186729131265992408238564608883795633054674174571799196236195434103754237845844472020468053119561458572002480453378485344667137664405426016405854158919540024970963857086033241209181173816593044255253507747562142233337474846014454585036678484222388190259208347939783659455516241728964057936390055643211895549849316698854032833648386944733999338978410192488465058554558292271756314956941944164655123702063748503277982846684598363861629825028810279869195040995055088324754655619304555458295888635247639450203256131251762079860916913647698334179085755741685763518187051791686600514967657864798648969448732949068327196921141020228197522923565151421191689053469241959079133118604112854639379239505331065610819704797469739946411885058475448061632700822580087278220457479284423536296644983677279750392326490485929609029260167126893486709883484970297028155120164085021265281962884368870084553655353938121774591794804631710142834538709236746383379099290288774427604713884755694179288849140424127718297763272825685137950035978380282947345844554807302466014272379295305336059183814663334234361377698994459248014628314950458043738135146383622138697159147899222802131521573417655829928882932765848128361433869478327965415310174090108779857066254199500509940527519991726923677345596709509507404227930189345735857230434645625488863847400793844384908443970815080355400201585994584537748684815186454562987995931514358808413572658434458768028208657104179879627790044561320347935130050348580531046242844381214863333853471919244023281779735615109131966398394385696436369140521524840939790683856590604895678184976528241253442317137877104124096651183476916890908866126530959102132540588959438731870406091811734122773669385025101579024036170131506770604290659659962802414075848376312021810850148391517094289386122330843989357671330231784144871077159464605644765273107869542000339056722058299620523921404174993780139142305028235774781717378561001828434936845119203799694201320004953359062499200484856033734736293104363943661970001608213355281627706350460430259292927407677984164028645788537040712559289705310938593100072274460999668073399482499219690446124427589077683224482655013763039942988410688573883104875387621699169678555400004067535813871728291041835219762604566973991999962350001465186225056072648230754884057209792822762300392799108490991561881221449659261003776585991854378363030020957306211697350971575041741007490075037269229872642720058715275404931569149324727618278744041607471380750394068240517686233316378841000082010294195182905606911802304928092382868627097391389179675929327996511255533510512697867300573995132082446763677091438656966476939824413559647015844446459651426830478003992609701051234452623029193030176259338265993368693093622729415706547693766316753502234285228478271511622909936660398557068912804591201027988039070968786760335621083661633646580075410161999185192796949360042856594832236779546783976321736072834286155458005784948682491975800437343796415070821302435216795345729335711227979273027588803510797900424384441337228547817687924550613751380222063521600531474698408629970602272891412576440000553497486461806444537794450090647953565788087863633872136982521041053975029298338576776710696260030007876358790038212703753448638879376320359522168640787943724874157597558645979716863250811487610869539646967759197721542305156707953213210739160217868191162123603216147289756719945106981029502407877126421287941625626414123488962130755059579971764720154074114434228323911955333289218608171036426007497841242913976824454820666870733382349382124497432253414999580935943791427181955782020950876911224101510167668301646951354537945631348644127552093465750549828402874295929439853928830076742462741053963007711327409345958232962210934026270691175411139527865033718315191827525124930508315871447713459077595152474892047201103703032740233452084543878330729259986221174475931803256428195264544502191703165706353288686622273910186111763773489593120905437588395695105906591636470338312349006412544162853534758017435825724393361547653765242494617373392397925684128782434483310643759603224846048289060161770493316861221201180641848903747919554322845677750224403125118607840578355756736516796289150590259559320454599415883678317355244684976438457157442119176240232484025296089360248836354113977329103115449116910836269731935604503410168545438671409279022013359956772507602457137254929176541591491924070491637699299972911197773770760300730399531399434072707832186206048781341754289183021879776380428461797983813269837875910098780158825451398494442272420372674739756350057117264150755021315592492311460706368172283891466635114060492609708541945724343004370613036128816878740757407245135710997609095922273215242559956011527543047576316956891430362679467562768033701573879312330447400131036077636526021353721915347341734089368765290970954148702373900320461412434052435345812484446350360019130329279557435711894030856084837606344741835082429846520423138643391135303742437837289241659318503892622425791329823182356940085891826592141666683305113009797884579224931034901952903901957864997792650952451035407128593886490670636521060314462717541333496395194674738175601175923552275340985027449226145543654175420653081584387808235947723154520261147916072470304989874873422665045116015592155132201514962531857033255710537467057227179542862241250366421689913843166936777484898269650950685544065968057032791544330224772559089158950310855056028799211835543165678799429964710328268421519800319701228213922117574416779101197380829298394228260257936108740579376118668241974722676018209401572585150204903754944771265119819246562498915070884733251302659881199382181471548881242413157667007279009999376388056326226811414512289395725039124726188244918557893925222259331499320518039377063732916461937930021610555267013655835475696789160311466476415194639544352461143685120911371113234334997425229657513114149221784301695609498948118979645103293555418783418540894074885280889294837949720470639315846273730744367885486035957141486106011721541715859863604737678019363334675157812289315040952667441150694225494535309200078597056601011326832624980596111923953078864590116655382189417471870175897926684283974622956727625072500863321618872166729463534451980741290492706852541441794141801777607152191675559916312447051015095985865346544912293050345936374403205456839689574848697167409104433991610602084854441082874823541798533729316577330699305769401257277893812308896089701355561664014082161334747322690180773720770368257597320693942377383760319414393593406958311873432544611910417763799500578914445048231461231195653782225123440736766848585651086472733571313609459644561626285301632126252376641337287875063060034654463365094391095572715031110508931994171597338365247569596770099880441641039349891476317064295572127708730548996991600793178512258724035974278927564261084921520657271944256211513592639547789380969487534136076414012816642508027211417187923599049560952547962719860680259175813783123227597863066272312258500399815027401306938651538688480631671416964463507493863412258843764348260114372934011489876230027788964013821488624598307425698331557462110041927081508606927049643715584524318481698887432543813047992168389399942704556704261824583801490519182903756789690573706002466521733695578278568161850284395932865874855693148713761537066883443516703703204428720074267692342370126229141365154983340470767771827322259788966402747543427758537569173284105489112880129767530447795386620366814508671308307927390721382915407166285446100032470255594299221374586615233043755938508350898869877991176034205177472359095363994602936622722255541573209447301284267513008959410639722651650656282949671914526458192614529588844389995956968062814553536334172080189897365397977070372224547853587525397015606467462614826052355895501532199732760745623867141748223619830627676686326022918256260152278117982848652789162199079913141166873817207623111335577549599524959467588365011456920199021911533647572427041323704816136369345697564989522307431113909044549705210500310479666170986976649366360024063621508568086915540668814792607697692266958751609180788718373230294852499617565355449790529400709633276646828452343332211810888936732235079472659060475277650980191644076790589871238496429500522588114974918726611352945447607946612199858129012465444902395558266623148582667317779274226035330485593150161533045196189728685521302263659805419762895113273888347249804977935920212889226743203642536984115804649572475788115892734418381446934653460597850579952390059761628294558507071115538447760242160703611507200980252780496300820813079760532427267586368118040888479429145379139147082128116420716129891925486824614304782879226027392045053812239326160308694219116559561282131763456978820390932448691623416673178469983995897069719052471280596735374753795207131821460625002102561351924761687925394836202445609174907824924439097265785079491178688274276898543611127955962576844377820687890518019793677374475370450179224335938574793278627430551064580546037383788771250012482477130963504877125643446121885245786049800380698400952389549473334294193001147734618957697040584364397394192570265824830945496324994384429125276566291393420061331819764662240539029356141893306508081389682405120841027997982949982732869346482007648677211446469756286272089254137681979005273809036675685652785870671911830624572949395347954529498028727288233437877658166677109173754115742288643440587681733986885620797797140034142369394609353456433597822987787845251761383988858722521031134977123661670049259948519817023288315901279230456583750123696845549507763627697625273251152173783531517757506996562088833683515937733836828539873223298170116843863741694338019006535602514245907480817711281781285685440298125207203508296854630003645508081572987769665894305926662919253152714775100756675923118245859086883006100159245070646793425135427107063590028919384683194529157470632037120826946176452008476990655818952341298342667385295048827900673782867003569910958420087077803222216649407929814094866681085987931162650881379630093703696506208689863261154207267873406537427151776433689268143286075132889403913594776991061156223420432436501763161933128957625550863217202185959467306368684777013510322260987795593652911802686309837084527911540753530495690936126228431924391809711135930838633072822891166451082944632240165574376220011714281291653908222581571102060338607808737273138131027211305703847703069210932861711538672264548802452462421451539300591161873385762277455456706052855477332281194052988878669707551982109747154759353805827410116283247547143375462579343828060150092127932855432385839022572888571730568800987343451190123762088615579056308650176283441215055616984394219428447858446860820658393074623197529041364902388536478475901425297558122793560814770670368526424005092705951595980074608524361688769402463890425313713656677465324193502596282772181821449041681474376088035825116628854954287091990763990172134920123482096668018144286008815080512004666435849930833939955722884180922541889338202012268345305432663723858817615589468139294417133925620579308884865715629176687545062047920240271363481607543960476090545031725918288539256435363548063908538487894434680050019902106456193362460695769402611845616336656282390455409726626281110465051929516853971945560276533806227672257088727375692469157178089244841570434891242816156163708049745209556825260368863335061101731216456579898073134366439085863876002290886215710763354506049979747488754147055610069342584164709034246590057800746184177437697204561832096226417627435958784877257810802366408086017217674829936754422937782801529527829285307861838622321190776416527246564940994169665426334918418529296505114753151129174853320138545927013185380414661602565661550460180661502412122604401627057901528935893874851375485409929476318948833951460416775055014690825278670688708047469224411092447307349201707205171773805752083425791618484475818718290519730274804550060157483034651920415193197768191839140974723355609239012334902725143711370052404698010225951348108978039940896253780846533689713226474225304341321913746882873467029495935315716024594837012450191383436410812214708095343484004977772510077512081466438235423587159163318796571560938738296811731255220527914320609329958731895706327058515808468618866972209014546136801455293433986643127142203600913032269032969850699861605388130319866173098979379660132953969403553896969207067086242643535621611988607806769956115035794624260419897318177053219908491685187801543733298034145892872552689306841543674632531385811423114826740349481787891412900299748031546188601794100533931273252208296340683544546140792536797286531348978356166030890535652906575769347967872531421107279559615416500498231056743211982405817259413964374958423584986550978143611893360597791125365243129841565167952032083701047558045100476930514865509296908886956065569578108301551313590010228449237746838796029109371083728283166181819905899439687064466531433459598491340865359760112979152585691156117492585639470522489588496683136758278311624654007237368949210243909139826986461941067054794751982023030863550200235206000731615878691969581696596124389845793173908355568704845364217606375398785701980174667316806255493099533725011777734574782189644419600978961695122006421870708156079321077232067068475580026131577971463025278498944669623476494942516327749333779815278771677330835891901276124097390669522252229883027682314493424937387754946175619658740883917893559562237182679665759139927037961576635216014808613688147656919025422075909581384552807369685092573695740848494834523681368787055088380819942333844068292314391833457705395752915413568218233826116490406392464173522810528991383477614951151093418567587914211158428767257445918325861015350708334817952994740235692278865575429355004461021843423492363592901694133521105843719749945332143603419371777444076068013306539797326947440898884897321342911613325797465134462369448912058722123610226068751314400644731190699627341470121179658595545161570205645033720376791273890269387676673826889846422379761601442915836827483848453725493895053502897221186967759557045260193494854021813041844167541177055205726564624184137713623222725334375399131060363562404973345982479117286846078914433330296387724003793443804005358996050766050489661596405941319207114827872562587821508340257932385402584888623605554132911453240765894872605193279744654200375248549835703031935359184693578014040924746384280447555942388205650139908704434686438429557882467463761276081134375157706555686616220308228186096494325868013437699028706132384086027128874701479983517472095525888932372423391719989609119715560029348745643375376686475298977672938821027446716127395241462476946272694380837994615852770130537557420719367919000476547062798498641178201290288118676267049526854206266534203013687293179764188928131760556314355085730695297984938928702842454489175330883429344910733603117923641014064157382138112022574563519794366017576508363975590610602569724926038599316913362557706706026536779064624853573076817848670457401799119310218198798528881559757354770420887670874025948374804400499621707727101676475453716566202700487463215231255900210777482621128573719225327329597320844052264101231170837984291637021498691553963643537572186676482840395593872032566283019933560592547682705808927227468099315741545902863667905561527057818774447420964894637961312188345682099081588420165582080912172411198920575916936711850782736629538640200024412436549470780473688295291588496669262376726460103737939286228382171237640777001604306909274792659703980171435652499320027199314687738542777038869998178125569493643308408714671034544566808001241665313972184430119975314089206011241108992647866071565882569536913675939710742839384438074558693166162628913818950100781554323688330149208462657438891581133317564095426058672737478843443946449831490068524170138704325797384658352753410581597369840132789480445571997102130968122643749379225021610230573115368197145190834443097283376937274180079417639737128517747632107316811630515013981224475169843705693870826521515726257776957724714158271602070433835572952886602002308353076693580748970029337135677678679673559636956150769913545369401260860878592444273099164293295587415607502048797178507707513768316177826834112940896665565264115536230335361715765282520263595802057535210583178292036919186694419546500899094785804173309066853140083323746628363979074855550940577979923925595165048567270360299594621375851899822772329593783328181190081612280374279590619780872375465263373426835241231474464953588452505841764204856888662254115241208527379626536549260841904745604072979641629461809520113155020067142576332893389304307799431381233415994392685877518314278823388634826068792137413264063004331601604807863222378122565325328334069585606295487363280214267079961319097676781834249925480448562136825454579519626942000522972511389449978759890181228813647909976191958117367667116018384950076856684497841771967915685835770429083964843391519406431495368945807094779028571821134866542957777053961001027778460706349035485198935036089823660416405494775457522431968328411705575982136457886868771780352401496588755820045240882968531051433941290608355950649698876949473579699960158804570173710197109254189353478045786368293286943782602530663019517643864018135641471331649600915495307784953084648231614340619502751520504519820970990336282293129811248157010092708794548211018944124580027767296130137582183179415026342524979434552249438240301008986520672848874777988354019547042999797646250048007852976287560150122446954416400093287332200274873136306840556191964607748109373679403219300120721187579918374148356976611005981708241922961556755774845148924590551838636700994180885552961493849557943813425674861335627759023758859762449706534359255869229820272372655648447358783193553571165414666186999997331173037572437446195600862929241121093046720486804120794551931404296718043432300232416061496427307721978098683716495866862980832231324404370001243418414218037025767697238812080205902431063764426473120012763797672646803476724692816839130487497101553920486159154475913688074694993450800583204723408509330019289999014925957613001300265586235595484391968614948781329385696080348149595496354149049608983279012956367330422817996661743735110698053558536217778276327635192521388770883806773075000281922503015917041134107721765766375968164695831718286508077970302340035951521038914339119987266895029243836416499411781638623306788197781268847750430410374254953353299567202996936874538595668052713407178758532175535671430308027686725015072667139057032669325027135661105021925525324858183369073481056895007232362225709700757402788821406581251780630574083733565547601037746947839057245145223630403432774924256799630155982152965961502701513794710997719481271720915403115032784172437129757511758396692433053474898418173290743788961837703824747086884996702204553114554898250544177946028191142385204953742389428495562354011835432740058761125496151939032674584533289841929892407048488538629714041389786188407218980338772258620516962447576341319105006436203048786931274401079202529180475653337587549647013807671910556541742583445129549310526097845951456230432101144315985171715757615501301359039780514750526424950091852988433782786186729398511072105622225273252408494248048063941356036196725304510315864416304145199466372821756759997240618204442707860707916144582651138331910105899105791812596866771068731926041335548738690676664403639399093214210334955977262721923976643256905890125681502186231731412371422375731019764666656855827254563463908075552221651191679272844071736275312840465620593480474482090722013122590313832003537356199123222416206962139517142044656731718730856360966281968826149166453973576104287413672723068262866093575487852412317052696464448732978814426388179860029219834977196452883560376343092142756460415249045651404195726922037558131487476796443263578601986182915983152687627909540593712858084642238701553443061747574522476519496146198635522753667373279379392191930361525710301698742022491197865722381534314765077134076225633884516791894658950306639121405320588946983847868156391765172006695583174547032890925403030386206982113451049644633475384407940134123547293222468675442384524812388651608450979692136477638711438411892017366713598985958389903153312313207333014075220421616406140894558808664831781868533187004004412907085128945663582411437695045869663513221581815721672825856602189313807226979422267997759278184652769688842723048208665615178811060073897316527603927026766323472738589567249885712383405727200988487363720702237081911106938075498655149645840232174718479799303440874408260419808583773629060200572115453020958442956645655991365779367195399523686364216601535082142404173875966588593163227371121839125912852454465157548559557779094840877553293359504378265155623825326551986582808287865616693632862436574113549727749387273448123448480262061702936145907300368700687369575592114258376813989375627046714310806948271143245852737881964433649094649541416540154093633920603624389515886466243669821044915069863529498491499909048366185201739803284447990206685149392773279450470466578843646331733436925786078807425848758569287864927346418316754948771109736009660760018365640290122657517275076522820909515110155826360918429984924902746103086282371718140949718155596884666195930573953421802738082676481593486758139151594802205614667996854907770709998869443432201665997075436807917725336917310834265922083994714196069894745104311398877508211020991117403967032803104331051076642333042187840338125066741392721102243319765305099792127856057212428110951358309380159284363301261686855883857852126666304337647490004482867507506805765106762889485225662272488326804011446357411157469648650695149374938490135620465657380452472885679582667578171322691347656934662391916110974419134115908108600631538652693506044080142842012044536669164586193786252301000530781525973890237197259789857019051340017602018406382097902133092825467874718851533653178593317776082644072236901284314782973212770158714572209761629846694328870147816158935891313713152092717942368142296675669161690923350191841097999824240644071765767544275866187017132335928075165538077130380083067175741230384920138999704080569484494612519622077890083216879641417141650729191666870529779543168482712063090715860615712413376307756079158692071037091227101050849933511842105685881094101182662237130897412850324572699047215987036797643653130298952492418992959559650598761081332294856183641532897386925077255851069226812335578882052989293340392513985291355325869409467122029697155735769621758197952315758965558874288973398257992099297390866811880681826569682291046824873891483652846243256033346985419161323660146958532890296317393948256106498329140365625630687587520776196657636707298816111023105563787263096259790115220108729136609557337272459044072484091209762840487353376385379435875288804867693767862320783570650595218463891246212519417506641240636360185101495581705239690424475623766023034682945481678692874923958439647874660512590896461561255893815730154277280521358132826521357916819975307105527006578242709565775877910231547083873816714348659318774601467052020368364097595821287962289061547349935246275438757982215426171868932550075583282106287780638972657349866868560481496701201586601757535975566435641742639658511313608242516429673053918147712688924582374153104309772611263844190047423299364797225837113723540167310397166111142787962405431491396723741629589349173665755204436550717383119832643302476328522782611859821299677064005731833904566317614773768651349721331795835597610457896042848279696251742815480668272503788015394735677757201022956600553709735469353034295382250311320252186577578375077806843403762745437169572427692469035086882379118309345593657075184254076094118801211901717706480792489739680625859625091645913872999454347839270579742001160557481264173682619184527955158167280364170009437572341246197873986308859987307042782236136044847420755703299443574739590287685815042332927983397796563271419205585306365887887340182289230082810822492118699112958114937744561112382856204238009212464204198300565808327519177338714647444667436770846899666427740187388569559160110569426320586843419512721156457417503606573749106291022023193371356783474987408184047723986832055503021704539112923301135029787097291436401592313372359129054376356375346389187990229255713505347689737215551042686161835197843492881501194836870909533668363551345787725759345327198593363485961007562669446797584141343414080925286785746673167982390616365583335922216153459181183091076300023301004174944621089542279683183404994247923340377236024739596429276860519231033516342836694833323636750545661129524540580694082349689147825750633286070414268752400622351131639167892460090510309436101556544396301752404854201827691714664852140092406760432174030083377493049525801934662006082701573206566087329638684758631200538457582834951690515580345911821705607568725577049792186568674788458982261716888397809589030098584626381752024743128918133054422495348413744604002418840511520644524234234680969044946857267070049015841303476153456607697575274828496266868317016689609825445824957335651168844612087812072251814435672953750560980632500251879352685488854390154693250893182314572847263617576156089981002751135072246001067582854789342001983747721402851759090726487656864809897540176531565190350754586595810954717136881772829735359787235404385785726925089913433344436463901656880383047267665101605241151106597035766286574671698647108699042171548608269283940886961143954382418579703959815315123618073419298399977606156738320951411539380684588009375050005215679613762272227733022091232975160849680708426747287146187463978040801871422448537642237005610883971542949513757196570588106764822933492180561323505155298915146407330574132048472851025839635741323601495230328819781197303270244688483567049302597263492013533456795016663641632748807146179154869948379420990056882619924355940037486062515705561704592000881942382733481750160924601445213243901342948775394713619909414598995585675195790924875968920097107546080481656298165896475989174294719007796379679845202831003576020303741289528272324046843569759400340064030133376287043324547424281125737603062569632974402896763699118698817982861800645046075415616697889771284408137323158709953887816441869034831172108785648947642002381320546418542107839440928086032273649209038943329553813397864530484126933792939037950626600342638350635402670499250737068705909111650928872540320886565623036859642585446404280198004268682918211410344235327222857291286019632567306021342635471751332671379778977337777484019037892233763972561302308619695102138840817305393184782770915670002843471516457589977288018949282048468693589356651715261275003981670965389050754142004300721074612848981215167286188179493577404669852271188031091684091854680217997252496392499088685493399538473977545214070649612292439550282349886745766769338535506266444026939774525917557683537625552585097397838975667533130016867866572183002906661005131975755952846647678239669974415989798522644537263456739128747025715050785847913604748740592369130768620043011522823911014464517643609573536643067346771103274367765429329704512129632433547055321953240931069088038211794418796918460728358796869757017184178204902611550707192773893770715915220046753356611481861529268382220696107366078740107957773482970995497122013978868390301848802804683407652766820839580986093195516368336942665544128242008102011612531548916443358228310344508497105492736687094370269777045125366947360979588973321052555676355056641614086505023143066921662584581980187996371872015954803477126377167114221525590075082479603660527916268229531222135896864757397171915194696817716108019407450079562136485108718843553883610045263029291534035850236809909495324010617492534579550558979954898161119976733029696724202540336348896845649316914093698270069004489740137550085567816251558199316709037057184200690767609329323767552458891629062311161410752977221576801091620137733238140308712819123961545706500722852050235725630853218811111257168437842367757738698694149440724305681178711381118898888407349089639816684504584715437988762342327709570625715521049688842308425781845026280472869782111461771701899697576032376446865674265946670506981785306970845909937478676230030757742125584049948737305238010865660116125636749696049980904474807548996683964807932942606266915638872117864767648142277854960892819478998356045281308319902024438250542827154201613812094406076609634971014607947481299771518612811482554634529872848705485555064273520424148249344695510244104318412277735556652276351445190252462067093747250503985422388310456848046712486934805707830522001334147491142930753728493275241150142865069022514763765610249185888495701224628082404898556879615906560202284963073103196113963696917088779626722822017247714534210507958550301091232603237029591576662523215022514161193007482646244047681510650210687772205551280812811297666716994118679273523933417157448974707452501743167958263274433321483018597656461729495277175741036433526603459649223982583090661020830110434924513474319779546551671833088476886387115504135625516162830082328342726374037520060612632799843014945587796154284644822379440498165012031891610697496488095291833764628759233833804475494647024744161748412226284266442133827067061005782444179451392642044234310724330473952771535194818685343390046409355624547438044365586098849276359443981301365871279951356218229254592206571777617464360066687939121404912232776307160375736108765969188535126723747406528547409139714350822166533637933737236667063942771397238287302902385743675424989535122868507261549544618274830162397059732166003187384094994937216512467042798129867280571199972331761612294462098607288624200136641850816286819129797838321120906544414357884690452571698226830321518750780933236138029121412937204573392489542789233022071805654247916003662677231052261333108393720230044212673052635419683413942771857249688068147077754324730845537531708286658840756805895262059957857317487426961939657032739303193470926302619533409396056895986127484953287679351945117508892058975050080723822962428651361505688983653814865611810970593671119344435038833003940912353191070458415713087019658264851539284647765292255746061603508864720474489360628475361271328659982748375652604849516648193356618710501952650773017693740916223676160369868820111379382174355708964852380383017677588087973494683889500650165332419835969714782510837913451767508084404222787695156940113331135587537122742049041980103170663780927583200311706541686969802084206410495308367910268637889283842436726005257421324215727304580303580607361292424042191470053001033877874491200176429573118254802163238127787372384423673529745233267764107986255287920643743068750921393135310054680317554207934348181194556053511757439289123190477904232903877687116449094951049040412167370666789129998258616576525213638737738840416132713055752513177565128696822206540494585654765060064170122126131721821580317316931630139851953317727527533781766578974347428035097088234438180430251505148376724661594540806011999907649292352162158608216920581205692136976466793342361824712686856534959295526413349249278036332022659851805498898166488092286128192533892588509697266574819632329361662337204589265926008026355898028750229311559901226926010283127288164581140890361982335849874263865406829204485501694627213400936332935019546543245777022563277012964644722635847852860050291842406369991310057413014989179458130893260113757130029583744689990173064557820119022238040224411173317128970391576986239727804790015942217699190841334711179682674116265321008535810383266452880513062735342239380393779776334310541134196166145281215174858135140388986979469547290783715166428215155478309259209198873762992683404645754071024535403011261306055996955480939077603295196699609204197568189854831287096338438061474242472478808614138235810443701579755697868537218064815680272656101145108924461138455160827569491866871409712210834316265343860574132805043647719130645312221905202504432321651041237001950363053769338880827763273220319592784468697571781308360097800231945787747613227606634597760146792759574806540863684347009984666877771378433966811534829403949352784878409428152206004698156764545721177002838365812781605542468702073309016339375856075685966067699797428517691773142497182067566957011105931077745687002899794994878195806511869105979408900632534988126579983822480118760125955307235546224154198958475873610419617966554497698909173363591510369537713026762398350791134557223007703922973787199535879604430894401439948443127554596927641832375763129237523941496600896297094437681811447597059619802887978454733693440990220237927518559029376400196058077476577665666291892194380539738458231032148136381618301157662417058755221897285707675745568797947490547322319972977195590373673457494550027666675570551243417067372618669807971960769244906170469552795540721029478496360576323610946038856790362746872435509702195632069454392493610739553091163846059462313395145204844792015788390498655825852227366366014851581368717944591722791238856178478877191094973028564154914685439284880197658955150815413952857878750286179297143961286377392925162688096869161957600702725815867963615968026634228151631341564282294084535272471614071988543004284749506429701912099398826328310686225741787718769720380453642155668116566539042828859464712687718568643392480376690850016965830459484075466496432876782892885872234969001924578165091072493440774729345058855536417614150547785045833842869442869610030660209157728706175333871897380799744838606043276742058778006367800402303096976797647939928722811635328078099119278681476595117727848350896356568299941890245064509506140913036636055797428332109151527015963439479704011191946783453531567478844564625861245434731603505533129291230558920719529993086616829512486225191349533302931993064903387417875216421419732754073437225820074843546374101813497067218061191836435067696710960348635630598694514739368805799597866327741458091640924163336621630579905764812976523125953963953626677076451308153283257819303390655651061811889941409307877895239505013500164399924964684030168456326894027185178088405110830990335364575857153727911169320495022127498720223047078479599149042894169947339075574637884809911639902864826458511429600034282012578090796295155922043409569852165784654565474878011823533285345106771694435773766346117078390292842083528949422594283353648546988205405065200525664117138204282948194141091270080387899476335959800191330764440577605418713652593296262228597704771688264845359075543541697195181941130338617158537942546467199674187773724867133193217647494056811508243205623641656387359716016097779992562028209109921303488979816524409724303906788050419086962649845779315525272728482581185601906885973295760803908825313172792852609395347788506494804045655761336767848661851807242278626290530992010596506968836340990822576368020034968398780744190788321229270787011257989728959509707859401924081503939510572971360565071135881078906943337714205120303930242175360267176931116266923848609952277255337491961571988741455578375510925625345852613829069402705724954649479620658093936833400875621637417495355688751062891062615047243054935785333875297743917963601979282908043450517989212445395959238145547622420704457458158299348432389538114328473149053415156607429459536185773560774823516844386981997178593264319819517476256080490870219992458003799520855593073605348527491596925868119156994387576613818640601177426141522591391396858113986859664735963442402677561705897437943848420810982756922291765813623095052375428071769496729105922726439784235532525224924282548993236980184358910315874515037702678736838833120138997947312472556965743502820002844867434237880786199969913136806077489658438449671896211322905671721453968526052139186410997929096618546278681799118475416006286887620261387958056997394467537739437788553003554031962996420466892089060493067757588484994126933863018056536289437480613697149279263187507192656984563448316083007191119403043394476999110314419566313339846610808441466342928160974684339104586757755142145951648221312763410592810578297717604925746055537128170447427671015872856580559997735937845993389025598457792138487475069009928407313927783389039268270997697444554015765403463885632331270034707343280243971646783732554877638008728803114647362373393081315472742478091900160643986803563055719626516318019121652370830302344117024992092065597066073623364043562624304555316565616953661872806140911459582812604951613097607334764093341432320737968835002514286597103459232624147601541357214588114665445860049210290247448458347775985460452056180916774462913800632658280288910435639105185521015622741298881675854059318707923649148023139601753606073706966985929873231529101767942368303038475090004860717972154830297147633724835291405382136767214136804676665151703990494446155595430120393924121859083548686062247214363064991872150564715962393732318232286571810275946371486247217218150408569318191016340423761363487189450311870901598816418762429059051968970520330885019049190763709007996020341374962790968349947382645774114440984655649000799704036014430577117414244009720792115656372985287410619644785230838919271094872846498818102367358832710267001463897022057169568223865968837693154911768663257916183396558618599592033379074776189493321775649743768708364518643729905614746041647755845565657451923012813575421992759287159777153695742102187349807082746581470199529303243931020905732881409035380448191354622482586460817129249869676163645589565444345476512481808893618387953704301567202638588727400769965703826674588875416650027583531848467443306828719090585874452274929139267843485210620898707721005076758183922873267551260507986855515953197692347319047228277963758461809233105030508642677721060542351090785049842203349054163986313140027988409159021490595176226078232912953089398375882780614077842766936280723431684171363475396253579689774527293708788316557804336626956427726005874391917134289198954414493471727644255828298901748241395865032932743898018203636210820624818332525096369484561470196687187373446709189697813266808021349404248157945106330599516054355637939098369567283311322010917389487021202935665769567645950688295452543414478283954254798453398834555584495563712461548622473090768681671630123320899087891219848268358007310807729944374192810034948431499496400035285674943816767805618879747761707821872460128257536554874042496743058230832637799290458527428757368472258955569153156573399491994352992728601888181304758677809904969500616393768288766271551965288343213964811521558486798165766066069368682119063046352243670834764353382485712522900309408753969402862425562995045027555960194055158233193230453593383960748401220291683599987236133862744498355734114892653503767457746108246117552944552172939295961769803316360277823829164617780591770966538732637173227379450102175760805078691693166421197648081366001999575516708355671841330255587972257705412379495906243531923482898402140203473078624847380563563355717315704709404219427416668168602292076201506805111268552102555503845723765938739953903232542474131155123180267894486278579792193054276400703666578875399895603662610588727750271829274907267941558430518222004997174317602172899651344041684643485362666014057933937604462345041682743872473805557033748186870997955979334981452752378248489322620683414568834839596013612473392968342681831614388889004960136572983511561678605632282799778752238245500273643357472063251958301916832035024958784065697926475036875260562967884865675966761796607203150079953309320824548786161956377976054189198238835970134337155784150463188006581642932546774913261375444045442467725125086309569183513794258291966388271713438860760216302059936677250526500836807077776507578809103774901520672456267274703817579139318748894177123994150992669602772455020958316677263143650088752661643570597548273915500496465398970815460769873118993432298187384809956724482062664248414904260482238327311440700516820111237134488310905529033302154992394998706085848880522367892526176947473227265812914552978494206687433337308336845193114542025884293515645711044287538991460997059274433075449808600694229638351974657627580562489080197398024836766290303484638754016657413398402583367873326271178178781860245854964981664761619441562837778145746329685596454941070109792877032061242494839426979576164996562039934217132458610716723637918116745135120782332839408186006408462894920856994076712179682511177062743244690153483761131983093571048931084461816759797927108642943112598974078995285148918594939529288235408281294176815588454521346167480380864820846249054291471806132402332340372994313556132900659861681871945488135780197585112598471386524387816659628122904027823331434484404723293614061169096744570486297284373449262712332802508203144887499255749735051450243383182984255432894560315805183587164887282960594811982725107404024326517589406490712890020624626938092120520821966362681452525114495986888457030929783705687989111304314606532656369404008973872140548294814455681298637676834509708073750654856651691072733444668076357802267149759325698348150797072268331293830543207151673451351387785961677178734816469047073788823722989768206363705309771268534097027860555916065095396562112787937948548896765573913512860549916118968338909518669709202517973044888184436068580096005203522402165364520679493707554032827373549594176984542634557865886824463690628794758154540263690570590930822649454685639891053837166787108840167681623649539721926546074904580309637063804024757616544176396988675295369007750887616449990598545699043997839209989107135756112679746216552555896722116673898417869845972887231195956607088757466509498273671609927723526154672722363182469613786991263467392196832018176428261371623644964872453826223974468032971865352547150508448447494116798914762808649421073896147561809502239415099512664242004456662841943276031938703901873187922149878370757595771164013208388834024037904754063458208025579759075255532034218729934097077839831501068911635752078758268766875105765414100961851891749113714086087415075872187044552948995341575961403279364634541051376022886819867896030491451587280761896159131744097648078419144711941525719696886562081828187826418505383077308621583475538947420567189990792378970139823636614183817820963160581184481059108426362538835149242242930052107236128094056250669988678318595524703502135139336004490746201548735533633540910880812702407342525267217071392538660799577888073741673396269505801325970536722660242735962040443509554024086343646217567135031867392619609007280838175032591876100615269837885972095597574675618807689009988861155141340294416271004190999944632927450681105056750060429168899920926429510409878379541786927795350573018728405448156868444765910868759773547710274763845565273016652731124844075760752906920115121971089688026420202419470977783836387003289795398816231603768068240115498340016163622183259759196494791352046164791748829268390624873040750149467980081040997766726816831527186263602660770815772355818638994401241501926455937666943504033805834345522631328006912694661933651073423778417491575726888173365500312764605862783142995191605495376439049809868062178906504141742552265599911716772302543686235105171488924397847868668783559217824150475249932825766515931273339452134347822566277337726768673397800428289800008032372858066046182138774653034002087062448616994442608912882847433700633769471506437623506190843750634399079169743571771433062123449035757655749772412493545085590040256592939353668608333914572483498510633319942618688701561552709624658270691620601228318116392955521308351916632217056715548792646319100469118971063174485900276950900918275281343239887081342309132201758515233902517060812922550552544911264521229101403296434184280312706697903288621651717470185752664946320505244686129508628721196863560678902893546647134548246760505453571886446732762867932558622674831084349839628495913304778946320595939846609527355306135908398020496252314660798553976455665892522490573074249927390620190134477205458681188487860584854539415435974788511844378951457616618187363582791018432410905025582979586512522446448167287360784381624080318828074309193145540905176427381722596669608001391466473056284606047885691390226905727686406601210454576221995545317538959086998294487825138001199131038088695850249531666494242703038205715849655208864859816302037840384316708170294549142023189706774894462024288336554339193119917645779790305892649720035054185092282622322401618064176508126528075874225442615697624307097996747896756285182489184709775568218775504112345223274979252358308377268362222996889641813240330717754193085266227032765879467891559408133866409974076537651754173676841258643287148139612727191839510708949506067899109383779941964138741176910013578209727910840307404842834535524708877880228479863552231527304684762419449092243551555862175178626341554629335722495704751600605607394076103506668742602788221620672039821802279549409719460507303171234795250210905003732857457424247729314242915516224495736877294215711723186005008330272388616794188483586841215632657386289870143318704005403443126859328692651504093378526738255458225438698510384948957765728950563468790803196346447259198968178007757604613722681711051119980409111199405132831213404949364064722947941162050342120414769141717427909136250110314100321068848358822537444567029881940354713436728689796947476552522466550529473174340370402902761896495096787214565097048107149129495357372493247210771383383532019668679170005414328628559453719559458046742559253761453330513100262071494908930723664472034455690331576237446263017828530634133344162136781138273369854666981926822044997519284159339668634078403123114471978411205782521517009120296518012434413667874597311329374098792491759429385701804170091462589623292453667293825841341090375133940847775203795999820161297192267768300781321082362009321526707250516302358550934141729521674944775637665928365361696395163840421116754875406834239749997685042139597505599209767161502831403900340574171143417953142965004899139730012419510044701016447075879288634563751213418515938666606816093973613746483288962064218474408749938350731014272012190184427346025858103948041438833849360870813475047328470192519442092286715936183673911302604327450937733823128506948304844703616937938730812355881622715975443835378915154829910948754389351108456836831022152737104881405065450392582308620738839960477774651363212540602887393504857103113948544099197805406391909371379169378264192002513097200022613225887250937315079869970976183671896621758051362466582850394966326313197725475107770782310822522215123299237473464041806704958447399161769964632254328493407235790784002218059080303209928984266993385526016990859554986948745168522445080312340173183374449372159179710594331366947450577777650034661353373948056448181311612318792942298158505848525284110575874759973723827575959731170262458031303964864035071938634175016241087804481298401175720342821579890764713282055204248177851217660788289445036946077809191483455086420684370075419198157334282355401777101046013511358238592013495632712159272261239827414001130686618927071964454783918965236323981829374136389938578732820712153234449826826243522331950608750729038832302457517038107507169498431479074487803598722620812727348251837812780500705187459200915011078996122615983381477013617003800951948754662080796620225060966938591425110038639168249221643198772236255412640404601163494162390827016768812410207370364623081199530736622306187809789375798177230150673972699871106322919754401786033458470611192781250109411779020459176573098541842997002222110560513715474557376277246505788291863079231456665938400240385053665518725837164167653885646504064394313789984465534182190046108265294017585888359598430466146685935844001511814327578867458324648320123296965634748752574749825242694600753600327232041022777292292495615960645830166901987840968589458573479619014226454123640083287559135833050542521080290185932208843191606201689287434125448147277502204211624028270368472806244824521934086353590572311546147322689466072786000095992052920821799960700026916627721137797435996193603018115635908826520574642955428848052870547896753954171053043310436361048726819116271751757267176724891597364956344444873271338122171830424818087799783966673827760373225593459897509466952841579701481836840451215256693435956610013727889367994815586796416396192219313296575625555248075019557807697363925841689506435481286479956268701710685048968718536056640133679103904051888860289545499056993063719298099735994081601687569509957004386348147956441001200233233756715449791278446845966689388575475765045758684377962249130547987078017960305143651214999107084776239181947283970764671372573454208819180382899001437214101391255298708525081497874562979486573727009788443528748209238579021065107900241747705670033631926985593910886875547220303722059564417485618388518571782081569461294903693847524750191758164963524111190377108444436475809010900280790125890936501452302598299302921393786797632929328911785691759640079378695703058979966295805509132140645563292882626028892836920667516299784205169786657318031862703669202057630123755474482318136189733301522525897248738023476454944644848241852660989680245671932796336227176431207307747871220620177611584126802399077105321482943973861825446563317108143165275990102323603403916879555406476568531428456130558078197437564121129947678439975929489713127186317142890910164910504304498371938087082957493859471715135855845329956934398338578545340298984040797727461615032028444521305514535426664447918634397805858974839896243960618726070327805711710790866589720959266573195538579254955219247400478723507267153225230654456150284355742256357161908398791325831434314894830896376614985104022116454396276652817598300085292267896070141049919014359555539357745286064421700698097623251102209806461710043845673272919656572798118144499947474294076360296703733258282694610126913418224780257918902343575047664381655289349246102953004963315543044434832124590446815735916667301947104124356907641059897502699759292272209714826700818556618567152066568908475946205937259529667414539841962817906065855928668627344119811904664949301608725149704201053949598721790352223730811147221206128270270327423966175427986117340446401632408478596423563034331157278842864430860222417121404028801945954911976033444588165537806661296806443734836593849899960079143562293576726261335254228970745658919318832952610867889445593562691727300871934154776079248322648647453839275021223882366974710285229634745745010782292509994186879217759413005725419385156997784400876530628412707239735222105103222239359198959102675701850470562080372893165671240104311311049306322294227195455104066362586440696749558824913057695624662259082920765981239441891989576692931327552044818290653218989243064250788825605472516740287207854638274807878998564389387514882420868768986666698606078021978027082572367482696108469177064611484393806122323341988396555324981747590971526143948799423972554803333667471276694634288575953033724356217782190941758170853543081342464896240408425453500578777295789077474912646171167927288235756479176385959292448310796593412604616712766749872130549151261359374680995188187492309601856827467924528981323940932713841768898177498415893012793045578697290463334604091738104920826197813329463019038693781158247077653676480733119758360742149110348947364549871675126530934614002841980761981949149017487718678992310516808194746505327434071277396708508640472573137636261690897557714885668667275202318557522731140244542383672439716300349395903925682348256051059268214803558510607381627201553173208845966260853361227092910655251959008538955006885867870178090241196077324343999437218709724582345814913807101851403718867626126512827415933707308765877669025922292871708184499587879347886583669405294251325871643369692935627253371243996568587464354226326709488390785111460167451311407348272586321920041346641402912605906231288994479449594813012199301246575175303419189392398308739294079170748837532059084595456019456787295508737887202334250279889639568817330886565801482682206169787728168471223172976811256287494589481164268336873328852916775261685930397708717561514819284867091428527018980025363207548526117559753544040269162619668911450621890063929548709611348193694495602102405797848286989101866852480879440401518241308770826217634271418190871358061881098268864597119838441273819746414735555282068441354491399694117964585746605867237791491231656711092649207362570729697394114351460936541207081834783963757627084085249195405264523532025433615421027712007911540516914954672428876025093124660412486677208700279465911916329808485798696023650635071699321086854516554465202436024233660179918539118079842373064286684459480863522386617241022289772455551267904567365877557096184738510999376932829600514687741880066695577973721563890188636427572734936921523520323376815370446283889587652228240247267354985148144448824075458890482317287064697909704805041554754610292447970414544991763688386210583733217255421267664968609434858295082034641456388623125947263572991365736024570547481165619231453301187791565614468761390468671201359972890749230724102339312593593530360941509392295578179443211355568157728261287967064788116693364648535762893116537992479320677730241820912974411409331251363723407735135573382580479871020383198301559525092039876032913411030050713413796143785560059059684802711907301214291127382907460391337323851001101454871615399338955818884102705301245756938884180879664515094533278571320668472057925100447566786387760772545577382375607105937129160906421182785645876445089987223616777875451477649992154933362885027321256951201947866234398581181151332093597098993125612848510558536091079763841691620222007081586529554584098422209919452031544209481116109617177965149165605577701677130878906718530595179287281352401055465960650677691586870002648358313193319221363937416173895187761297650617518482478783684260728799147748524358334558271077301926201325976959041611741765170435372555843027011180451195255286369294271646411537167370246304568937929552977018869227539759329956888101145431685525108908736203929846341353961384326212193101209118051118193018120135303801779347583631598821812210397854767187249530015426561176598193994339773043039842435506679127458463651703450154364524365798176057876197341661354194933265637679989154535247350084877128363154047629053101726636764375105466524548217336410553029623183313230915056292176830244922790092793654958539913864523716367714135943700324858634430050437236393151766299008966271821982842545434324139518783056048295162063779226713270982817921643693996437474024874775144088191305816832144557069515136708896265048387550899579244038650925676321065489173577089520029196221337638758720310601281084868998662577243626508001426500375715307663999649025321610126759454462039918664379371521111218355813934108927229530379125347127770458748602379789145436663726475496242535027920714883012988377703586258982454991733334659219553716382944506265918673284031363859260643839703801319629806998345727221188329051067031738475619915427545812410259545064198218856926113882901476477175468008949953717361491293464553374282220137770535013320310744814686606439900008398225422517364255247685850298661344899267132899022321032665748730563290502490609935047508414919072150308902810545029529502184598950250962785986870439777588541812926052592244693307490846420300698891696108629869067871330651150572613039360020639288097759047199428465237191098257391270505266210692348592215804761856636169245620167308050621722948813686701174235256671074339735028515552357330914855437180105603926716024166204795041737501694684769726501257139226906501145622745415248967448381146270363730730924260101839124369098998729056170791066945001365498678573031035661699274836211730920856711040692284912992166711563119086952518054434906783953350816779047646730457868169747193308395201137299879514540565985424402864873608227871876623651395750250513370454626763745182166583198697539918010343057560491479033386476956702094324740573353556223146093965681940764613091902045350864875617097981308519024252769362717872354649821540778903855512497081120528890829172473292046108400332590400657388484968900893312804911461665209579478525444048009924290459058319964618598084338052671709876284821807712767305560714241217716658124564557356272840857896658254953262527427492460784824029155564418170214513300939112218313179558854412144588275111495395285187609969652997039399380444984586647067248884563193499940087995761130907308089144354178652940530474992301932710868551127176365196090879312759370954189493168140518285512672787735429889091515431362264998925879949409976419929021278577516628694777291200510668654326513400605579961787255470422680447278298499076054430317323443185951230822768259776134668636265205022001757551545041431832064713583298537286995167064664873870484557039902616340030113583941441118939067848252856673102739897556910430004210733474604104539185351221714387068914940333868204716134181537553082175582664550789298087925884886791325703271068918288149985501763651285472169737468773443880476402531786247467384693412524483090503456458738647694486702342743551924784529266360892177005394217080298817273352375526155187487684785243198704775781106586546493738023354758392482659315102788870304555488433904781094975483421930668977908724244107071880570628685415339131309279656223455315389526026229383016027787259565959123862607207605661317895559966447294786398708262588308485922315330079019518477349157260948092855109729780088344815313580028840326546255361080230332610377525801660131831754326932370211619963254314013401316733088934388238059385948895531489548836703891792808184928410047994024536363336346907007679070893743894575896573591098375925076081229942921960011314482429374894976861415546571358824098491256989551127959977614134868551140681363433435748616484135017304972737653631970642883394840169557030595606481114190603359917483208154757584408458836119590485137406159415681762800553335112482146611713868571334864134617019263721666512392036193026823670849637794819839654635092527999452789140013407588355062254936698695331611190381723147881804272649982573495825500377596742623135835729239387594534244498565790514635419856961793497065542114594986866572074839846257107763188460313186355764623203416696599973038545504453536988106135354713430521669857475228580907020763243426687650484968846156424872612877100864027859257841602768073590447187796257492973561600277179400776871760441719071157084056962437453109788056216861009129568806371739431691691729368482717757872718945138379751626909534657850505192338047454894515519557860188398546336278631496293777434446495074534235386913497872040627427265590407619414430377178922594534549081294826974870525424291387949734630273296598355055103311704957533175027306199109939543999791057667718645272374868906508436805874120844453209374116597846995010799489197355404797239195538737506299317684892600439795423155320326153925957713592782514451877032873542299674458435618401631451715893852687900501067527654686380926590293565422221864094406888876300772647247630556005292445701961110093696400861713938896159081279721624705906392596754465042861162075250992539372366230701885262304433526610512318696374826415001598476016850817938908634361672962422314574595081048886039123050551592618864369095795190650923153757056790017616258361737750296538430165162702633605873266432452254532316333995162068321942499567393181642474504780118654103954318019612176558790593680578833598781255710502036857050597624315117859950289542336149139559933809811799431024667997063594246778273732160867999305766280355816381325225955345834234969499482200048426901919756272353307195454850686893994066887324388008944815120558985466745924782085751223862080632095582157517376109959033018699147830283436871081507779606480809685467733834207935463026485161677245240448617002126807497522150931684267639897266574468323413084697109702270654776866648688635944719817268829798318638927318580540910930311745470325784125006553494140570840864977883564491535178850786688250952080910212673998807791102454878775777847582612450466646299398017715153127278188860622671981643980710561012730805676248774273297002273276314976232048918532712344440862655540436786772091347766374926513140012194321950070413579365307267158510177629649090100986390860889243019835033922559232780112010030674036592448910474673627507293132265599921743220822526100306026995533061124157453437159591004115008007503273147069051227109800633297198892449410028988415060751411141864707304727579982482557932987016175505734257375244559070148619495677401020924985996895907717745514925338235110674345661732209243390087938365981099902353708578821180823101942830376662725038606672832381981832095817877624472193892945848095817686574118852838995149608094213946643616676994239529699939449626570429843144596891212033853903432226048206045534746367408917243612130594778346812465125928112053382082198782552135560338188202157395962893016371885421711890025489147083105563301565211368716514208415848585314614239336248573290142989232272769361999945450733023495969101600148434022734198912792101374897427965866500723991763869522133567848204813209208900260199793237090539838482436578655704009026940103228296134286701202936269819556534359410081317278051339509533591011284279916327431966593276087621943314536530942939787412710934473639298548855024331093967851439559763400718870201671662813297315906674609772246021979031378176059983352439580742680577942781831711640726947687492137826241891232776881483873814289102938145010386491217945040594852109139894214867698997496209624094063135872718102601165278641264324490885204001527151917135088586682444867998554198657049014427755773352420254532715944964470445573638205777104319281564587129630514840537345385508137920392196368504439498304840610124925735895315932115205936633242240305501755715824031419895091427649996704816237336699084523173227299127143144873793748721496867055011683393161039996198724702484675715387812001134475792063467144831779199883055079621312225873114214077274078480312276454522221176318257948970114595027447510685790531033883790459527822200546976015641149206096007280181868234947048650506346719547821852263134996240365696902974740928275580046023460944012191025905229665974418337240002991714835629124963667039933459231328300979196685633392530265606003120344314566569488243598171571164676549346102415867245086075321469720675355490859476334627036022509870485439784763368681176391214007150144973393685555095108625806016452594630515004594283734164245839037796801780074432993651320917419470056646975673478021826054863020279060392543105193485578951976785555193386802375023882162398439724950500495037254144531226806353737309316882609078938516100983422961631571191507579193364784116909458687411193029069343127562579971524267603256233282638570877206628456985828835039797828352093676524472036548930479271851909416044515377181049084745162968409388333171114455689852141674085575092895743374369952077218980191291277719058866591399741352785809557256878326308061754959499376815735472044984430954175138238301298717385168880550155671339351900417845422229234603158647474009978763037238048419491329975818518990557252222240812405874296421923533594670753950360948947564124019227150082821335945475741330498245912860870038403054562853268434720924609258412820131170470572577754957034302934969801541015025366248278375884757277435078140280838043353348960310167768035296110108094112061603337342091039771181971543571077348406031127282358544207750304242129364268158775628353538722961964285408663119422687137177947720595287908990179679991150261025207253443204426327998787759364843002180238848148531143424167072205444057450717265634977314360285759677407323189617598952651105351808452753367259914614822452381552773136458110498383254242344637650620713919153513485506129845792574718577043843848863303983672635059107081599725879561914777048100291808866464686354497095038745770323073202427741383477706588573678782114011262724489091244582326803457009362050456396109241765408676408358837947839260401089610552843550792182343378719413186582588475670691380251422265555048647518346855965698710246691882864400275681986947533322487606455660237573050637531628206100671821427229338517186929453906687910522352912248220041966018900290977463065110699426892330975954648477000405443390382482764085379127880584384281393109652523715618554030953539453269200315506546617468830986316674869376975751649244399854269980890107525390729577561008254292007803902838417830723347717090117280116923880383109738198567371575546979816231866929004682185684168277834061936759770023777438887867235939667361689714072384146077659915507202700579316962148178092542640081981836815077705302994508582662956006131178988351482780564124809612631520520733340568191873133179537311477407374035246170138943351672956897161715948909864668008284375160886331641582291469827994822242074708551135219777503679536398694961635589673924438779327015059824620973878099693637329446629452889050883868640451877759203687173096569562630698231225956787840984718369890915334369679820246738846045667254443959619549548034489301496590004591961557528884870510781536355506629934973048210005496803977787985343513035089619758290272682309818689646099728404282684768874240543476918111143845441233756464600775010180900907303076485174286779573318415334673263703926816961738637599359214543976804593014345182168326642373757853663739771682509761286745759292045453715588803653139935332766131966633368584768430694937868289339436672676779386752396705177919310043671412664846044946851209585633264898383424542053762872936806330446878572146263725949462092963693498666491045289315046793533512089376787344322902138975190542752649833360122243110415752591269659851930179877304904874829930559286770732905487301713435838835688374610013625895151900021366248456544091848913320711331984898884512970439911729619820657885709884228716962631504113524836471394646690621530424824737196983969239560571064699526238056226438598828836681350065373173584270527787595469225932324016351442561299289295373502347715854938174217094644412108388752318097412445778262493874195046959411599406850377229977205081749997215506691131554067426542431681030243912649547683562617539216558912463719268387381434173458646752936396624009750386527168877899493840515994342414729346123624109739354577621388741301351379876455890815880264098504896187410473616965955348448788801989783561934281577035884162046304667027725948702427199673671897674597448994927665883832650435836747552612255132455739441327577740548454644284834519614282384401798289782840266334675656428202859755021332379637123137390292012354724165133374098036452615256771691796460511401765948980225659684195952260643313123419257432804934740789141253050613660282714587411828592878610063738246416968527971829328850169741784907077791590019132350951434040700237279315237804299645626279683709171855670793505760958433323503477529446227760143220508973788915851032466531153539590735755469685054629466434807168517304831555974264795151665649836590968458590164448313446121596726328721996009146883489646287997663718249010701003249785077502841597531162372677482213297112578233240214337602905355479577882387759533498228262014240264809514899325320854004497894150443142950946526845366025160108743857420857203333330497300815448988691950374330512242144634559565342336302665942247710710939273969441960914183007998716082688928389106057439621770091108323191168573943513636485222454904769104598434496099343118487499022565292210082279463668378792600920042964363240826432608690350090555322573356788850791216479751401242438012558425231090753553860120413722269162183921895900036067628987732709014278489997260313154200474384017945590518606169234833376676434008787064407456904665728857705514473718220500022291704600651926533753607348097206448919758965954968696859315955077596784562796633988333420786209517223310657856486531861697185047958943674083604642531199466400316941927417588315704830030749432968076152194381883648800508584250798215496064485100716602886481632804241605597133659131941792814942999878787951947451382515597447010875245542761937862906892449548857153924158305030568680402247895083191496803945809744724865471509006943562850216271090939174085175587157752994112280694860668410539627481680427407025181713473367369625737411023411637872897255339672132038844178024437627635695356124222685156552970833001455610829100573642470762021327586583728188810060754241114737618050310439737934930365710058315047585623783184816538942907819179741870483949544354607335590029076494630198309300074497221435799167543408513460197517846381974983718173240093302990207984584141793982627426052785180381884456994007571817200748963759409989900505218568171129581515924985227079867394244821347626806290315826190256323981042575780499316401411059643827888120450947137510225287587716131467287012994986476654075093210164521037365700355774154680854070974630895432542020171725172973872117809545101138786446584395259479877094791083720155055095211724618588606908050612114423087933106882537535473703367624501226121081233936341939666979448867576293663735431904020742435230182806185125392298717265950680384599654997488607813667202590154955985694702036574525388115369957295452814784470906570555029550270654270296317356088120539166844031435008928732391558388692210279009034155561022090464533566841814336742154871103755759622058874209194700385918652203510019342846864978056588672552713786351294188031926803600213558146189544691411097716928533849482946162808832599193801252780719269906107867612162441843212088238235714749854403483450196479208658978143915543675931804535555699028940761243346063312343759039403787881188185693247330792687990431709096068038711396171486051551260383209613805419562397829923989469259360931793802022551203395573306669391274906710699396013826513747300018536687155701061096362720939026606992583410492035885809149755890942904852513886539931275987640142276227193255222675814712662812687800275549689133215535358795814357556460800681300452302866568819641154121331003755277387297238649492869077344792625460898585542492256813526699747197860428771089572080156409148112993103790473737856206048405992087643193267459537920436997123172356075657989136830440000158876132518461940735896284735664711066502359255285460002367121405962898250321009626305675676936921984321541116469924731852699982524048819330708827276256569141381699431672044280168078252047784652544667046856559607517156355639422068733970642464294528702562908639874419047877029364160461175113728694292759102108272757247811233142618885599207419607812874695189240146065962606810514335686226572135389349334088688887471727353388875094233737545720199038680891657868251682420202554379869626828834215661000885420288818757536890004088918973139598343243900288515683384788862445367840553662758246854792678630690798556843532982005721947161599945689381032660757707747046534339874338567782714951028895436965894489526850321502743846214322326943206934502100722289763600271643875033342712410993477795137874384066203742704344861407049433785353299144662127147666605673370697637320319576639201065131878905029166211530138148495659192279384165669144505201465462681799572655934643743217020808520937777532144653472525146912614527442874125290934298153394103742511424067818347881103900071470248542844845043084556417997869345283434806001351272464311359463677954518755998213742016685582717767150148776700973421932831476662981597183637909640771150923773349025668805537988407951388098476660084080549757714381305771352516537854955432616841769280983284813348215663920671556968221184708675814364937969224697076189223730184480007639431834164174677734910738668753250046500731884217064683311341259763217179174604548165176274006413496340255062021634684440000626249536856510164578689758728137065775896598784024724613067982885409368830002820537945870667224411595173861870000596085368295695045381557525929486609948646605181832637754455946532878233556141946986054142888307788658402428828715960227359199750162439379829806325053993414817572509825471887454429503502108336721131628653939474059174697734958262682443938116406653253508536578775955770292723427442598435347997545475211690060223286290603924122989474584472321236672472314162557120087780742328896344079215056328007664654909762292997023100297151269324852744928210719391239362389069540602365967824941090477021809107591216440388687505193219110763304403133185650579054261613754319353738979280304109680125871165462816143379295876069481903257716626146951978523105104824580666539515927937583415137371554155106185138786550055632609128583158056292095888838782253547190906872555395115376967362773920453310921849865989332827977694512578349528897535027372335362301188951716556440852518030465589096971419555762936146361470828718149128404488346495257360010499021912547687670704839732513234891672985142599569508055553395327384757275032996470213198251377495001649825382246084443798920893229690621811515716926711750123798235877059981624142963519703568613092316844533612944290105690097782852098549704764116229269367283196902082693616439834851039802121112125725289243212218010948828102174107001905133677827379945312901017746868840492547591558940315103940519550658098369925147448109557123967917122816924847215486139829518172124874904523274189039047449375678061285660689950470800073639722560766960541208621090140122892212989981942999188247021243142341809204430728597926369910369523400809472716857087811823786009167068953074663203420163029649927388361856432040038745674697707371559581213918111792045172499518261655631973669658994064622884690252678363636678479706228570165271930098658868092896626153572121593583336825274969924954674901171764958912989231557777599445219175480304910357871217211803783256520331626363550869883348897457734472034042330530690637012108842350345224432312336995947693217392099301196898915458324187263131522144083984787471176896881932006370209936861975272019353430884350373508670645904636100287426066826409983420489657878447157650634744610446307148743837997085116916143485041988678294702061671277273426653277211521779442437328522408350820455097900919755752558544791893372868549836110570145445772164621741380217310439176115967270063118434478849028253359717860630774879996208884583754350528326080828443158407814272668671622008100461469760307327447666986735067217590058194628596912278385818498626690148073764840752030502154965406900780723879551090307249548399067549419018464575257662460426027142646222487349133558665215155518155807492205320719501214007387532267666446679871725238037076377735271681947961932514372366773847786045096849715883480408317276009426169515168256717544440822036522594473612892233205064611083126530668520860275951507500573950308530680669719507867295476330003035377846954156238239154874451804280707536043975478858826836197616961745639041422333007902289214450527770057186258003502097676699255799843325365839991185017723186169515151281077702664012137097398223930223666419621492506644324623603988984947597636590379089099485772519957434949081649032442872794088149399607571945126434301900093930771923791430208484709024652700865078867718825618216434729261064809268305263886627581984485157880933782140183607728060780362025150667517486353608749252235078122542239555426668372472835134745147605057331854851988036186169059691609073300495519683408734991502411796328377537816015925502571988549102436791846477412004020001320583597997497020128566204206294009548924550854055233347387292155774369536282839218075469316342107023506980925721676404868450745283343977107177173229392533664368399106819284521711964745681594829799989825771522436316955749977551922421697806149022460932265160464181393105321132789712957909062475156873794879168595114411828454702080745050623524347014337931864425149417645864498748832807906406675136525590842840211281234865482232604649836310290671178428728080623413903394125592381467874934365201947326498469442694083712709911070220343218900438986164989109103074693572634393295439353547649333262124532503681982793830320918297072257983702719399955265634931488122303377553864754475934127800014496927730631694874703130668210199906720839729471431303765940777818277658306345302628619012174058788423775326136281058780443535527473992635197267791555320298708935419927163527059985470992330002259765119363175780825752935781246464822641143504235599890111196824446435206519043994499280929983396527030442624026125704988342422242066718341851391592042822469421274740376814419574018079506256427760007603542263590934274110654739863155901940524656182472212654928358141814140207447967520365853132226788452025603464809111422987340413400600642155581452440076806365442363178759688920317788856509153129055373465149808088842797119946922793428660388156217387394010137177198290930936788444016524414390178601723425882454396695406220313534239771513815627086797820212217089236721432825446049601438535000633296882059092071426531261510978344740157519224287360726351421071101227310797065435109123995029727275083394895579817442892603665680007488000958083239556100117174788290043573297255702395075614102577894109402846065772780588157226671425286792687128130704319082269359269211237944081869369100490343377033931963812440850357106620453841578495805869156175034500284139224302100734970467551852338658183695807795044920054905218364109480629457596809944447466082670809391902725338797526385584585992528519334304206305790445943027831058793311487188939408494565518347624659239746377705990534400200041661879209606747653275543348665944077898852618754749373146501135325914635630203233127113455052813879389036538398422075684434038550746061481101619220909456645057685133894264473538312142162067580018645042859692992456771584648348779740634178319127104628704485208850067414061731027155297143126562225815956251938468160064135064202671691910430475880993939471077842282420010952698855924706194677275126366603471646902106991925046152936651521884214912884951250177843183084356359970816760628477525713918002399053090805812777948509864834210660244035242437579606918360856691727594245836748873911191788361508844789500935125790611096060980566588268906741111327961828085828800130135901242455739261882906473580256483582347656331029212488275678073061620652277166899958508403546042558609905267870473758635532115132315887686604943190210819641105003868780589709963308223911987367430079423728691267569973013449985520123669046687826130471331388994124419387813830393852369282013613325628425295403213266429922672716203941348979115351511112740381650358370161199658970790552545982669120775523765017813815636849457779334057432802883915819966048450141203549330354718739696409040332946238720069293042743724875602512373954801532203219970877228417843619861779900735246419355593457070877409051610205106015117547050187905401529134879500404945809900691327584572652834372773547611685260861936357101712724557357946665084499717636404418657904413675768229074222883924427806802765352323975225254192487556204362310001848258498702984877166988124189398053340504371622338093067138431909167826426449605909012224160689330475644099338131515546663098047889804481543717935222458592922896112793126814893998182133404693547228080522463877360530606054532729724982589145350958206219847752217922524743785314036035860310055250025959968750998734218525485073679181800806297394912388274175280160457172909257037832345122914721415528387728469036574031421675279057327988242055005132894697934580955294260845349589523879387678246964738871958385333810218605976385239118949889163746186694313205067170105558752507956357112053833583561403045635217428817497198927962441791357028191949653374038582047473789485143134078161692079552697288705708825833519358975598317096864764402832285478247748947788887073257219277036733229218420884427992731374323018503764161296293621831141716936690265158154125901806178962483224274951226876145894334857597023912665697651569647582856600427024691121494669034442999063325859437788895569743001806608108414183524152699714667597881025724217599056010187976819909800666466725427525564414807339482335608246730942493440234203903402317740051699414768565970001489419939016997504878226683664152584055430566236264844839093838427146569823044164221857656504685242249529990876460185213691754970345619123016474582125339472196929739293268837664715171175130114476762979882869454508186544438784180534263706714168286343368727995946779410413526942632995356512919064474989236509536662858759506373696414895105230716514171551953425456743213605029692915284560579552734670286490552093790823041318409791009909295329118794275759767684814379310099816652330092061659475054267007568573469521328671708587301822998818295920035017888963666433549900682901015378168827136179302674895866255396059942527430296385655863722060538835002897349112177156574123490139504521670434375210255383095334078680936973257395415612447216547219782302319762946054339645675817667348775719230672563629294758619767962690339411420652028713558086692984463714369368447860027178894738926641742723324323013533460515798700281066399116085273805627292144268259540763773004830867596836074000754285545432265727279137133230448256053342716198588865153621169380778562865593197267966408043630697421871913818525540721459057769155030335191269468950921127167581326799621184248117433922740807077056423435292290404215316277415030203069157166904582523719099050301548525834148851117992312562511109317134755452107192815997624726648777188343111758758886463793309527909268951546411856001376405801930384576526345874977486094362121888244486374268889193095466943278692247071613680719254427738333345148357784860837594268231776560822103591888600377549458517561256918982924518675127189736508030064604687245647718641793879467067708669450375548819804044492598127777809928165681526058277396431591922835142136765032575067355916726302396027514555064317926131165960403034959635979096454807318586511622522158769549747478127733561182302005849474766102162007979574263047496935700374116656939639570157856643763484524793908463430225486468128217792136779133274930957185126962352236029473988925013576481556470035954653047394535034319803414650319090724703869313585503451511162432838213471254269062254912684125477363178486421323914943379927653905604037612595457398533142539048401550536741659431565277406995739141176477357350408292981266652664393090506985730270989812386802275740279858433421800868994683749815146772163267840179990552890373321586934093363897825775658084953153434078937972957512665626712666006378374337975021026225629157972421951813070109213149413698120252953028338344437927106236752250948048704371064490379242383998360458631887221722188418145881011311811852737831928602389114503504687777533228195880516925187536999270414221006183218139288292870264313697070095851670250049617536754253504255913809172667936404639409573804751027879428126597069624507225926437775053560637790878310371543591450348492183300448612835644683420508314386360321354992986239848739402596846735057183885909707197213760777484119598886929781010462535676119884042658569450157322570780260204202170678307828143609803374879710625751378171864189802508456649471641199205071563701411692989047500540717256478822528091713144168048671463697391262275434585966686081767809255354530085247891241712755865648561549532491677794027539361517429936159007426938249865319403513766994420462171012143170772167422827831755427457175647998501649462663634652698890192905871799275813966076815891912895860585063656146531092746571251271275547722713720004712747393619928906456041496413381371587822149152028168051413797606087213930269986536530974049266783988157499289623658024276724250803344158773839151575246989509740753049799951559997101424275352071575067477768422739208411721856249796387100295792341516442669778255843247694828396415204893454755877238055814480694498108073714736461129882758268872873591940137503082602778766366544228029338123316873384186454936548057131771063842579686563650846701532216766757991348753072347440624972851831127142757759790333224708169732084374347036821150967392118809858578566365807706473508083884259111376781547030602309449852545976854526892142035536339766831028888147234150578321856657915027287942892196029655775704916417800971574214540155447634543999411501534981252744060164541682306739972593034788807085893749051338838066300922885473151014197843836464895196462104235419843916779354899241109556742407978135817414440135133201065678453329792780874595171564871834373573952553706470720027817221156161601485057200144515804326991474395511976819041542599529267214246389813068175588945277748608399759754963724253592436258042735066175939105416621370952369703396443949618628389359917483828867303452302614804224994856771602827182528662289134756029916321344766426431219355512890388866884265709279850837248040038396105957387967230438120085778835472147313900967838704549654391859660765224042288121485613401045563054503112652405418003718391955314580851032124289458090866607278208279707638202912482345132660260609223573639752907104803380407195448102714482922130618441161933989989178255766821308207886399782513669857408503536501188426231171399162045484517730710762496652216450513050924896501178537517376449053521514412563199168083053376823225869019990248635481861159312367648558126884279747712864936076847709741209832366115339568492400419924729257409539585985240775860182456259308760250755157293086371940999557970238288804047988403504494056709671344455632637532985031960923501238494417056062368628023946780107828150090236177905691359048535334599624800986082211748780632416291814505331425069810491245184295649227472370580512398005774017514456686725074049062948161028343631732100614846843513590143068359487159628136195309929087754755356882309536296771397053674338176843081043011468373243308443944088251167472066335415702888283025220866410488638365125456903538244437262076292405058587647319523999915382307473298074544292399330712823196434919932147818230256654801924490787710901787918565206818595221261100559174006873981393953990355680380423173043109296220827313917119949956948747431378408904824764425143711515651780245947711724673171773862438762713465403501400253339546212462392605732037191073204909000934034427540599791706117919307488210495625864117551126523229693017795593652905449765484899619152514339849704290116014694876460191178063385885645125232286279100051673918904247726774602803095197193631659624807336666408408819270963536516175040780490293801350228015354023673955260068615390503857287523430854922811480225266996842540510884169986473610363186066122915382266315940665895973919863886105469838632559959015667406190441591669461893432666373760572585745383523482851870684799494780457804341702198566376441920940882041572395298203184593809160955805011539759894245429379741854290020810551750226113023957638547164211443646706920375342213712575368098844253252907462135868746498604622864751753603813818500957633224555143247411697592729156205555395103173833740276488035694929599118376307575803196258727547958289434545721597379410297238396020068469710168486881833676278817716723049064146855485440126108897118326947528858469877035666711149525423944161163091333445277449243458014523429624391136370043104438189358429613629832497066390374272439388019408547302893554198390985147396812894433442264905196133848892075140340015099134629082538413840580733052003001339212828937511732927283416929235036519281909569302610274378690992011113571198753876530524908454886669404202614865254946402624137148172021190557922236126724098876307400395734961968262697867770638702941423546029562539959804922184268313164667444347131782864955550445473591904362946853330302535379609288552484619157337302980320256810832805105530301912806741022829714874436812324492060936390350888176593067519940130627078563898187741077757058878110632062890468121802131850040226542425869968678977514192369520753160112733922100541679549346742419586388198142392150161012334550148483719211747612421095055415562131124091118469432786918897118269384871579754011054433127615318995119280820536936501052146734929583518491670229774984965678000173869483221375423502230184651031334047546825406294055740838136568004735697651067167117119120306597897856053582120908419249838914865424381316358711685285708283452008369123391508012961088965238616535330773762983865734405456322303939618523207399130961505799191420632485653271667792184168104405173380464197600609900845782174129125134809703065417203328255200943525779060293266248685535931642477876547837441180367538132667367199525093238801599562367454243038215987287460272363394296039797974200587284160739201291975252365978440377293651802883046808115672633186543159492770114352650504668658164195720507600613358549924792656297372492756462764790255409194124712731273352232222208511616349572205731732055472235784273359553723601911704249126102077627125929862872549641549196078370531404011512832544061341177939636720908153299923901135734088111611717693972429212863721073924531105935534230234349269811828493636081523816356541348342638482420698682715076609263025421592222984389140325385066200953320527788310398349946877811650697591979516294910523125306830125448024302846812193877906523798462317806009998607661937341197106305902346572420032480559751399039363590883202766447876337524826201289196770298384873474662609203846816715067137999281149069549557586057170279637305434779089598629188017810312722107988513811432800316942583413810858738649628348845479859303616943341368393280280237391002013145057061920683917018438719056396590986082940381576836722444699221629727019608376502481735105105363522137398039109114638374899373114711566460333339868252511631893417336186798709979666864651950786810292662059335982505007253274936659659852414887281896161839742304891017379121650964076099810287857913992404027061778204009785810736440312947314757699935655277831563565937114515353887258856653227402065744388655521584340836148411987853133222744733093264443932993058196408104067551883366623315639896547969190167936623074923840420702876034995343515946559052387758559487211444174268093824142949792526929017597154396041270552774695824898000898159922660984599232555931573792697642625211972206798137017480433036919847519588878175152961968959367153868997236762487054714248429361254679075480098566317329027795077030183316017847435501407235900803570315726605077574818264520691848951189409302966972607136395893505448271102945383973163187186719755145222216685342202576672200732200216174501963836075707953896099268866058157411176512369659211750800350379688549289019912471927441129591467010443628126123871939282759433829096654221450598636997364870573741642708288008635304922295721052783474794471283915358187074153972210165211771671557931091364464531865608782675896230591734462619912792402270682314699918082293071782902502926477338071270995278856855836555256106186892061329682693005299878472035119874360793771540145363767568128052482270732963625588044544708071574697468557188765858664220288870583257102804799774018602125243145500938193198608546155500518706386510876891356500031421558774979736853081300975713014412898606566467835916162314869505117310473704681704503053106047757780767554893113518236895384992868812915819172976806613522751993242355071793917690539844300710156822522669632115780477957519911336520816953817594264102502827807684866598047960551364231237543669652385487421241708589881115403123801404569432641994523481999127402455679000866419612161456587078353365040624234173216289090640049097455509522027476619898017382901342766644237073837092785222255681728308475728517758325243626385712936942699597419020840353857753835427426514524093803893688099418851426215648249242761874331138830815907814107647878386805600666463531841545105175231519073986461254378132639638175019510396890511183131043154803786676695168805762243587775605027279162267519604864537356800618768013791183678925413166068145125112453749871572163597333056090136107793753144841000647631676727492832483407001671519944418636323629998631567492628633334374188807524902602775717915097492594196026834252759140622924168999365352255195004479920467783568428489606230146858236805084638141298966861451498354367700648165424709014097686228218979589723306103636909715510986810968228915479965308805934489290891294627070921577883201912977644753250974663123709112139205734648370254868221913962106598552756654572997180027159354559851263570180336265829071649785228507697567221135687442658249068626540078497572252604797562212257888037198630202153365659386307190517826120280406459862225365437453744731803384854432530170248327962872663037091377245651673005426815945079787206946269355282541679577442945345811870722003577502741865942828177785087057552018346661357439912118916343395513718094945710002239567746214708042101984335150569925105669719642927220700162510700807515739357712759545805593289668918204270880026009285074876544596695174090538589961830156998560207788188017300827428476695095270820944299253410398064206065103862337458545911261455116817388714577689049431332983839182061119311193612157163082346571646663718578503476469275405389955073784032182348022295125526168877172274300214075894253798973831730690590925074425124848602385686853785094549817842422870706275163177652671902081087944419545387647832397213445704255132360448815607020305276939708949361148444115224506354527149871738041845053306793176334255178065611977908074452904378711542905075805874395949258529976081257325483410018038695464706543617247357634209685498741003031688464943033907134531961202697066183029266485729626329084236072501583764853432344612694320356468737710391156005857155579474673864715304000704963255759569682848882195421877386182072386391384237444497840643426305280287606532525695243039817305581259958670236972894557470945988846832888214012557843585786179250994076639642409828297858059854863126400719459294552933400533978202125126921208775028928325050732653809450768523953201243695210155818851089478348333488690913222206055909716439496405728242042543470358414537087559089413439834596151150959555970310364693442717230087094577048556629070592660407647861894201865328563304160009730967818930602247068950172316074415917494868013646954949194722032250106620101457920944219929945520496133833586025888970836102612300272487701326492737678028065037686221457095503142675166387426633830708310217948298264900309104613583853016979320683857557108268768704814338088652370723033023252177787833830774396236562386160882618582467002783381155595458891668256695379187708269805413641654500673748605920977800145584566095884348642118157208033666828675932342518918688091359750747478744280653255044717355302260446106167545201060083347806173345155584471766772950889797020726134891413640053576699038854738742907416281724416269490933770160943339475471635916293831942891401532559310039772215255219442108336164422841727240678620028893309296667748671489634117069329244876124644567367301864256393618308008338352498084245923893290664038280635031722030236750205159668685851180410912522278080956612827782264845521353033943586484201985396326464717437184260448807220308317150866064418003210548847863030150440220393710257180392496941884186599455204611304794960177372776664598908639260558722841648322017738571942752840989244000521171542146115011388572738323216696960394867994756150273422401520463118111295312754642149605443830202105117304225982995582218024828189045077171055661373383492221682423013036097338469547188796599285188798405751770916845406860629671322757484465670385360649021571393138616833094713352428851437517060620692556485283065527857414752517234741308657264057468451708030429903400891004777169613568591420558902506469267592722702373870099332369667198685653225358871129043659272740944184940445576709155040573656680349212279898885701641105635429940317774631764792018838765378364587346149197739791532596260211002311712849275437064442434353270038358338002301577540065701743447358726627085533137405872176344860121768386162713679182837662105826441001465631174715816427276588338145199246350718000443513930317964083092757155328654157302376653731532822711275599834846600313988154065607702875171993006876941002597322164646752587137087904846112733994429108961671093398171801970666207055231861442814478582186510718084160268200807804496890490796507324123359814570820623145575271824485894642090429412569244993103733048512018544231484320184520164473969781397280047632955914657381146540189263107056221554592830376739637717905948003120039837828605293705479044010774611825753352826514968131141324706173548388386760547516806998716519410973151127810678626058400327680547067739254995877344794221147094551701448185079744181050513625389532582375433221064025333861787473771741221463616114252707011815912250513557453100573173521398500461688129329776109243205876276575547674930679774103796068191807794273483717461875953160567007388964616857004166093442439523990728362291246571666722472599894946596133959704860989784768968065843405126425809797775971020992045827235315093939904137917880949280567415814190730805329526093057084190223048901547126677405326238155998134504520570774024831630653840655931093468110795074951345679043006899268166584133676473568497478094298735826817904992663602838306068184743726986077246164868814947593189573529155040475849957884629121389258169294397762815055394885089154559219639636716948128630470253127647028664513320320290136290465345612289292220087380713094241466733286842075615564312969574590378960624214524157930260330073036940484732910142807582256070394640795151231911086175001655049427960829024151560377390633281216117485499554068513930454552913974103963540833504305798481107177294413233535622343739618595718078134149335747112266119411724209394211420680455877629930252012245482974940671636378166581155144726496758416715526462659103655438764922580868882724455151986223289141541305331134228262066423162737447412868299220642211815404087318166073683666162283354339180863794642349552617932391224230025046895340479031264222403446101262048982037487629159246042148344891737639464356179616302073362897465610025412099606243147093748937394621303546792899761280196719982468807897490901594432237875194843301259161643725047119492168595910339711847453512375127928217814655896303446738250776558337957474428993222039100237443302324668346482214447598864829315646367701944490323246759563064809003581710804371582470996696189100352621455217598531694668906867592061677742731676431931654928734396595113098350309549135236896740368885796861099482445383713027697787634609861746539232340810527387689394707084197438356921485617130538063262013250186850714556782888320529950779196360907448948877299339180351644894261668645741726073422020352358152724007245514383968992679620118010164571271184982683229970745337773697398477066041922044463938742523660157955618411177291081606681065484198373060701930206644001588142959012994089603303185605956458352174252386586523849735334608982162848078655401327979830888438735027725983734260520328021516890467434909112940145515005483748841850499671470383967360293791776563594338812733038258744525045549629893174601539738671891974043451370325286465456795647932509748548077289462331523184653926918233456045938294401189477224200779164178775755405845932498929086290034909334930461257240560260319901530670766267742992775570309146915652837923615372082468455913638284797377167969649901168731760564724185016473549414389380054388087395420654576111705817046477311582759570296272606189494093956286768451168847523786118840531484401305317061940911556064803270673001812951439062618799725759572179499026169873258366523029440910821120102353349280345305262923583487102215794354191386401653586930294736778054278542933374397382352496513805075426938445654963408210051582559775763478372262122191719128441222288107861055137527932299206485174594914694542830185126686423546560083861240929497642272072501075661360138399806088641721472538410121642969499981234322154416796370720150657882768278221604361695970756180605439845449860023508020826956956645474133236770543301011727682070437193640978466231348060085781953010045296778923317328041117445772132189905722196683232762199564611800084918052269004874625957665707381478045336832448323455503027426563313896718251210066226743260590342379704625437387132465458551567563225431983849848107567703306854615697894731654695574859643678165355202344353230481748981425307328623837179552398091056816587606036480121613554469712515578752379651130559505304779099678871668512961591793153046702365254741575057014050266490856198139123052970428683258517141365811927563326501608965837216848965748253868403519157695163690074992391932230578264289244600386393538767427383584913146380952186406362870878235429882411181731961877481934931123146621486362239684689793804479498975744122759225271251802437142725612154656131682954832992131099878018703974210277434430357565512572460906112470660192214250480368467825856230479259629842050028694113139188176798132300835709888724716523403041286294044307869664865748193607488317413934622806325620745910742388901829744203250188588376608220740352716576856421535233225527635551895697427405579586961066137358751757312627345311108311475059378178781380603698980048664725211887016125461573476832952556977951646058023127539259629751115787609587557356782669153957809431966997593160513260549896278116211421097606906224410989943379229965886843576629906608561257896554429993887490214895525639898933460531181679666903492996752062153876551497602606471003797300223738513925317982472686769036951816781144648573927050128903820621792608592313492607844483437801330372139891285294957833177864447770625214434597310055952679711584077596291984493348068124255771791504776933597154057791546909590266310394379870322005784469976345660505185202419649922608975719540160195012537275793418860730554396499186379787592632079034685887395398994031748674128608651267095216514651605586352246404372154106185422780905573703125901610832008854666720125627396607023390414202699145431070002337145967517908299118410417870935077431305456633178718894461976105247829755759071939515655778429955773339243307624976110734163411748552748395382028331979049057228485781442694800671374130441558502261365092556434945463626543722054466502732246381135551836399267184015734260049983074328889404081003087226881809382548656304724792879007342743400459798233919032982769349823756654781775095568868408359693921495563849853003977459528520790533923244453152287868136326935312180433256025029931437208954706632173074488001395372091465965390078688441008461620764424317242036575944481099149271752210585847138425589404121082663227472026759331868792335022923880292935442579092652276279461838012547621080306113915025969128500893615285903930866132446514223536627947369991845396482197063405840754202018489948704320411844407407251082004546240887377669003175480723474574887456782929797101173960768379996895341076339332518497464243620438124663988813309465629294018596344722235919687448650568883806317304443589429300602261836253185771798981939016374016155290172893834927024149592686103005725646707633637472827825776435200450025473164041973975162937542622789967373709358734536330452360528626903179006480788480151273056942432813249571155454240098952575934632941447072405749311857908669261904711282551478664641732106395733004501065756052368210806431391994400136574411995216207941350604452989927329203749701353146024190368522723282072146656788169239830522234552755768777169327294650926928523714323137513859055949575166992231480442444811398656563059816025027332534533975159373760347605214085079818506270667666834198616573720263049403345335122801196638339141605211526517420876860113420153912969885256510294175518166302013888534733512711583494372489935902971705028055004575553565637251163634717975615767424879544144507155373393427155011849246379651055244513880591327512473102291232056704074700732273623508986786174501513623619874026790397244260192806031471717405053522529623873197137421578004773294594284502335126015664650963169825655789867557605019536830176338581988894837440076443816932938897044438250927602930470053516977658594861972156427543438632670014060600240456234276452648002344275994894259694001270825072486029687784215580873525132954168816920996358158924351156505844735760876374190205589618123550567018327554738779840081779162338413626549601886041663982359595625129440718835837028121981587993471200651997227321088091902368426933466888820146906518473859880629406853923944724249468221553726730161184444031854951779279559561448386952172809384088687258515616196179210304220060949680729187769481741785192149684315606205286890792933797609918945779532942108387257656013126848694305374295866155739781187789844931499522174970199543414412841177929186688524602364113933619629863404022721936286348797512555693140408143662140933352504499756091444196599429110823378367302494766951800262237567983593893730725866440727643929450378649511754620740164342379808829979365027068335127534738361269101254276300452388377619523568121783567926340758364023704243311444709286574491729088058107376087540923463822734277721917783936666095886485257869578324629127915778171398367173277602333767844946980590599801171440352732165247286852396080840990179963862512329313785569948328060929711557897914662982876936218640425606352265068470592733080543932799946529528772219516242612348165499301464409094528036138562733543670488342318340578492621555729424443348602742190170191871118577607099907671501153552679682361728862545381888566598056935393711754242966245503760703731252727353345719870661434826290941070472191017947282014775706673183486709916146680756324404715218305480924754612824262907748678961627170543811692122668616471198574961018681212419079311765570357103402697178986911180842007651589454800341820872619563353348999434698361716049622674081338910368595809488156934078302873009295532414590664104459080645792140434580768641913061803597057740106809885381229953006322195214092029699294845938003721141332179512773706080620949926731009132339676238994969704522778838278351207881129680825666604789178871127781788107566853021816452603558069166978454078575429359136890695111745394063839777124797831484729871161389123982839597064339460313708791605636902472917575163786274157506530458257165308485122052341069754353355704190105841043589474249407830420585864982712826033093569364780217409337448707033635768876588177659149101698365736988363018624966462022828047549174155618168598832787508058461212439821295573424250742775583772844672339413406632962155429058404736035547350840109892768888092037985078564163298934896407171081473546579975895718473558854201125703001805133211010430420981600470913515169897675375744572205460720935865531357188915529887749538943875290368210316965764259173922682082656798787663065608766560310884544986182996931125465914447947147082390665923941955860722181148014192084917860515484995343096616286686662707441753985860000203156952654879268308736025962749521950647869806426185761239602787814714035973200923806424436706782518442251563599355019171816384624178418737662320956179418830335066808338746230090633482293732296634351607679509214222798894917538969037733427782308858645297076744059738598794292039866960013283193164414946035880409081753636649734864323398967123714796397034372468407488596276142825141677454890710529959291855616351328593913203726890284497266972847255867041030112010477381640881713038571266280774590890496913492868808058171020820081575947023048238020820681495472307236870699887123531895616653643029936951846457307338942514366687225138929619203944379822734527969242897141463399314040332065245410385798956934336431486629445223203275796616695706643990412816893236281617538790323091581692633451873768637734562801387880625556862219600668272265329577553019366105791374020806224114395190401036377827224614483122023266745254792224220008469721999987053454669086138311948473666720623116965877082495110214787025522809484385935166241600593098322052153321573432330280251452645468828518758053259311439322312423947833719379431568345160575095065462700796736678147838397794780755366043730124023664223654785102756339012232351844054375859130238254699244998299344467472137349376128654245062388202882667580818260608060458178232058783121238241458603732198482446208280684160268208946913082147493343360212176088647492037126494187106701462192514774332001221192858161369972002792448468311087375535650134715404622541601837302941811518116267431757837290587881969697196607804416651415404779985753536834851631778736961865821810872922774258711830806423188514945315901273657683952539446107017935789915507105868536065628422251497500038083744445891976238611728178817955389007808597732037451901655167859805648422542524434465019452323802205301095611485739995897200303301531603994995888920224048083318374604444475289432458769650441440599521213144652438124897568294324284844485314936262955789040319942115688811839795742054462365004505101509250391381003379781610709132108599546627984311404559657036858788336621207711544649562433222584105835608947832027787363011650849982346064546678607921198312063799647637782134445563920356574750289565767667811199119332068591910753459342361215980232015963393742646071104099596462473332834786401748845540763108850635585235002832178221480086173309690891234363438357594436730459091282290580221951469424034406900931543709434007890634474006603391987850705200096035413659183583720973451043811162807447045214563488682270653382761742197273790944397472484292003507342990495355969520282396872151975164439557473502391017438620986422147155415143350443732817530818779288549253322646039940295754279447848715064641887479779094122476709786006900555146473296193745962665713082431385739932406430637397486071762350494754704564174019839862417248926675570257594981640670259798572861071997161202542129009030127666990987660329559947950875148788478984228143806160900250291439272500332631995349311868275214475025387007902751938506789091402142251489547309955962465820767134014287107105016652720457627898963395964267548052742094608714147049825885449299180928260061446089778374985392448493046988433182200773424125460026044235778163845153764590283687943193661115496050428788289887801000034039591305780711187939354554510141655729679219131970126370183198942404536935996836104626371444417544901931867011938865294406403401729391325752208108928812761769832952074669919968281593344131932170917491502620419905245859318761944300322959921678878260273830192844049071141734811477783500258021329401101351660258088111347654864832911908335176445911092718885320567823358161155714442218645315152643342288132958556222584299832199477672120174653355439455013828647402448758058442128387832828911131084916726181405850598295866521482801979453688559393079907128668129112992949338166841338954704551427686317842304787140778544987839760627273821662597129961909469569429840470877182071593270870043989591847137760760550671002667070741107176323660759222540691567762693784702029073999299671485478190334509905936824922194512487788396466725233743328960913508044247714005656435795396366558632662931454221857529013672719431748106508467705955371252156544368846547919036376180046381855514641197890954845987539716731372930426110737099677126327939404587546419325292364990789823740816747350621875537343115855253397728117970635027021744373937424601144182871221113431144101972432186218694259513924549388843052250452018390135202985947881327298007726940674595279706389688799874774754566879276776800474006940704174682088129460170409671077118956819058780167373623116287132380347069748771165106860869133068839484019257294306343049517095562749994216439463089332647137272127032835310991994737436227266073085632405416962268235005453498954034698861977696482715941326235286458288834347696643082738094498840503172276377913131135572642555521234252365552493854207388273327630039095071401714076722209377384139686341643882474210118582535041060281070098259353393874854010362006292488219639578235213001070349998160239348426338195880821113079960293301878957036771658224210833104580423755320156506328836634651888958053948127370931615206615005171554399210976279970540857162571308414563314090343065219269998155323129390374728420316028628089032258883517761389265088050563463344659106700104884752781925022971582761693603392485135748328638797762730848626080455444219805606940044784352827708782240457881668313264615003853824443676228465724295289904077199278334989603828181760648818049591619719494051960784925435415830190603122779845569570589520654670220594907693649375842141447803561115124628907924570358519058855135690775493699279795539549327570888327949452256636653933950910584048161252365530805221018842752441246895227860151986478029240982246821079672053941860321493782642839816446442170440415350906011280991117204525310439843666492435557463392459664258375749552464333847880825686041353131313814196353909477772520741370954799258773128312034251541553911708432063466658779730388577057679244144984956632957350283248245723435686124969921437158110825380811584238037278051300308410721315560925835792873766161176206978373555858137523831418593744666678611634670964064358464640797752484839598353115867022189739265969587266600038881425782135614180758941641067838370980536902653808952129922751930839866785465443581813938879903410795545513567692670496821752060076323862526828900244218535062954034541731371926119459016473568891599497977150027436146388000855913695045190419607450258842515378842659452810007581428092474897899055816871934324937895786656618234804552341022215722561677455316125053727747871019228935805433198189379716307693363015893625375828374415808163342819217746014534252320903766440103642971177447492557809863684298434705102178584082725587480903359384377856648116707512250831774116851476034232026515660613096595766744294213932391625243765983905471243114259840670189857961162318834078729485913549708097877729423268343148519761208219630446234818067666055112362057549303307345244694463607430550468178885262241929278390916201712614058360388339264521157359568536636448235577560664678628679604959565617454592588310869661766958414013191284720577706959163537799995173761156783719185999629708465384151811912364422072883537646787684011258409065112467203852926899151051939491787537042951964373362331498148585226713959932273361556770973154925828539301033483945340604766617994610983786322697960075516582252239996959746957443851742540282362412141424048809085769017694547794612945514534749969810447029288212740763393899472010787771413043753029492386639650117185406342383304241852762593551411659188300280169605912663973471776640941006948627446149362019345385223870301005657921782385774336179256815862977875104015170278714628528606272878200837015289518450022597402750779848322000664235289718871409471746175731813887487744228347239207381832126688538990968475529302590868126724357663450052788917361939138276782878904105980254302995535941937835956186438387596777046340034955457470729573879729186918544493876006286267272867166600159165609535376092668942063087812522212365883208978130877930643403416416906492482006802925983524769600238379330409160781266648215874965086722347751326619279567238386054238773382908591005204888732954588689264019098650514213372696470985134864372532374071077361273097470424087506733206575138137135078126409765384648856833538490675846651785596469696909030500407114074390970141479113230247986072239332223196455352358361908651568734834988076442180619916054658968958736290755601324503668241421194633710281443802009064640917867465323667568318193497899096535006673628897730930316876042231503325725480654119045401531879646086506598425132873216861785339902666902992080750579475902965661370043964121291901100313935189255864234112848870352005452453676992445831024689985946181063777197817957856735813160176120470786981083869589941730592117010599318402000471222749460494832353941950822606396875565905781321324689964429961892161116469636684931330267636048638600327666570776084908524530459589650297341961643748935230620766353631511726243616641361426731962298698503174953460148844388525985810462820232783329670334470860427714600290939711795331960182357662728358996775707324871632997065205160378074547134536135498603674223933242450156042448062652089391576834582208322049034187650803009537911304987278060649255756688069175436774292690363553098037838574362818829425063424232794619798620274672068356853013985754042965904820388159518806860587989533087430795872181641467911072879892720587792196277047208479791246520498604078991224195457571590211428686958865737881067653307203888143945900622608813182735541943864186545285231630772396592361382733291665401185559159175703480009517485822037079388896084096515215030382292737481025209201784369471868302606141231052555814938877501063542673002068793178472483644323949964694362939525611426420047987497907332685706031046290164741128427088032997289052994875898855297117269404518652180928880116928321099833547024062913369783222971252771362703855195967724987809171717727559596520287080664436347321227500001890308995631605696824873931577119229742131242557074912430015442903208984062013760800188408193487950733043986286879604718800657966464648031580693842140122601167961389710947059323274004711949991071355054180800705030706683824994904038009296005008663354565270628210712206617674261356467820130845628173561103314794591607467979053810538056941643667241520576507055752835318329842608894438251513325181660749655074362649923932542330948477450455887709454527235794391595257719300463261462415161022709981988441521255460677937899710828996799248907690261816677892511645840886314284623259445933812287295577888866358069080600924777479520846715317535776196973745518256986771177653002799617044880169840330553772532505585040362509494557781080348711829020927276322367382860009899345195029359649179332988392427188228576118767069040248852810378682882741167555855091150021807239121975295554692163272735321149356299533548952704324620199402010783717513067455799686146247371681907530952136032226138733900093397541830809222483122131357281173333548917523898581963720092791080028982037951067339821572784304298150618721015658869697977523006543143689342266739462839514702026364882101026281085102415884477489080879864557386514837222759744655651600063581131991308373128541112112526035832117889791118027612492668387127756128471302591688155781309973095971494824905817018317610408642906134736093425489548825565373357475638152604038549490078388709242722158812941342092638035245269865792647430781478239528240765637020528130088065181516672047098381420338648226604175696750440647017680474622272937143402937800522439319693317042140933980035874014668008913514110808389633271788548085526494714365237599901366924250001492881750336441972459113210403478759068963307558004338772719001899062610325843865830601452401087130864877678418316888577019136950005900496722175644685481417222549613197367421094092987413670124968212839783159569417236164538992428216731274551652258894654236919608053696880514895775728215893784439649053221901687310794754488281416545229782457898677527655215742151147599874445248739054639185266606778218894609153587235556770313878282517463098957015133841214930896982744216019780055093325108302497996719340275896404980558683799477498364851179167744306847367535829069924188742128811302102633357292659222715501633528940369583331198458199441756718079460377382728829093942535005550566277525390245163927707027601862731928998161201075111347719495127399384415151426018581945884207502091270665899512357999149833717141809851312945238785199974378325715099357877375008454934897569722655078589123398722567433436076970721011791923467812798301800930543670851447897622502132595357812873982184021384365870755200303749910367920823248333186030002050209533823211505203524854328616244803355589687171748236914944209444614371594372411090156724460455924086750951789776053396864747227499814094288811174107516221153586767430339195857624035449381554679704364445379700556852376206298204367458826606372966607262548003949494804937471937168605933360388698387204349900221542002761586420982431349490419235538278881978157780498252951276069690616801490010995404020463703606770119917844560654169846605871598351316170883992202373665544904563507206675004252794298006161517034587952416972490979677645451733994832650987552178439787807884431828260742194348604547256965347125315164497572007710696808464484830848314759699312987974128750458882180098299168227298581719740152588631804992645927200544819405868314854925841265824981944700873773156268610199674498566128525241474124146680297694343609864911130104100940017212262654664128932279345418541740493481857168542830703619189874036450980227167112152646962122644897729703483652521660896323606778806699458212381143043338785628499532318478306194908996906181097295768746223174823592672625324305464460687999234335031379903553176885257965251852335952042286382492864823707143612387470631788003215474590607933846132230665742348579684846884336188565381915485092862346773176897975711673378009542507404340084929163797399508656154258125077108635184391506512562206155786204941236183818068540591093120382302313013443370520704894366673718813431932543026589237629474267089074256051648718468078487160114481477672996236627923366238481631712035370507622932745859245836057580020349509856419381618786649096709883048313833579945857534299959160776039840357458293881423086612204185105772249975437228351307937605478540815324840849105069220593313378756068587515049534702312729210426821695242416966436624629699040143227445759253779557281107470732832099824160334488772609117899913722397209328356734143656280973694717687699922255786870643320232233515154453741836957830695389981335268980420234098439728326949950788182607091804584860414603707079660489007928982516652934015766490824868803784911406820388999240608973226723743215249705946053457866000662946265247697930222911759940352310432486601564102281093235749018163021696661371384315654843922541158203776040245069428186102820518648888460207885087717426933121653000245387335803261005919628102347039843433183926566603200243762157556214113638862975652235792707643308315840747425182990117538501894253395005185849643162653681855232854871519023981645533982467495058496992932982906398186435932762840685194962783947945111770434007876662360943857200340516851070472929569283411127293372807878407230177134532895509692552029228245816864127374160048122663961943200830129682981577532545791527041984390414015948683852175187974320310895587998042259348929940132237829684515416525678474719866532183653763205754094478199013047256903293080227176045763687805965708504171793375014113954437634636687782285223492250557951321537291439825442210512672032696991926169792938596622646183162636772357203236526448022144673055390790478848913858784525315886388749766227811770249616909260852598865701964451742769043091283341564870477704093466321511960615225891902481278386431517165435550988953797703933521813652364379246511434780894819909713594032230133201408658212228832894424366466252949890966688322467935770330525990519420052386957264926699987950505620069070826921231865766929731661606522802465411746631572101206786155352828786524502200850501598276251625170414895932903632904540262826639728272470128832212109625691157756909395818364284925045869498057106264201637830221561975063224338956597317496853666734531764203019332887545828415969976179925910325768608898739381628995556889792494994101142133014505089016297617815055284193715063569783367361493364270509597835879151827623367219950491333575560550507768275888490394060901406285562052260432904286526856430866011772933945164021458782131058808521573474035393916713414906294741739643743461212745623738476002260993487586720138234959353141757352080705787389751454910943167445534803277661474983356799100792283802899019611769700471144844994138688239436835001865993203313390715977988697944864878317675019127666134656145576270487949200480696085020391652297485388112753847439269087760008087291628691353891418386099300776654941492683186883540960128097250062311518608025555897373287856194479584654864478775968818904769848992155803533161522239000906798439520268744629014538131066214460234342651782299682327993571291018740941373830084204819932403556318845345808202393081419415795208882985440094319713680200717537731620570300124132331035086331077692695462148146218538651550690081269042098481113150521033896072064411508597432245617821515780533362465154888181948112617977884665996915642067957322711382578764961845964510297535536161749454077500565468635852742545409976120486140821370679057347522461225094078285077972114770371236563450925045422112445737749867685793644289119978092829430114881991013973522262075201102076544101346688539981916854126889499134200872384007776906223069941590744956065219436902228581601612395830017302593941327936825500429335342281888418891982184585999997915270256789083674530662202561773187315230247928191653156789035681553756594473012431957745751957956407828733610902673533520228021308656338400375856379260759359152274299038542468649011418616620463289433617826602785741527669596835111723242579877825896141341888266414880270014875628430370029755284962902539292499868521195858272322808927416452791324384570291696674272229539060020465256031550217342798458754444113101284351362706377549411629298144275860591772693902751349556860085697423985860099579381554790912270217871597097884301990063392582503140547514301877901212290077207556228542692737422392467467071330824500378610458246379532653823982905273042393344102802420154626101285267858412884274948934224605053933950919082496070084360461141307053269091983985978554964177310619535922334937485205277923576030965869603149782975419411418355977792731685879642486681756108477561737376292760017607711918006914999569770123212396385273463073893300504293500436115846699652912145242414733316317073924135338832075344969903383531439347789749431252698282576131937830312626772086512866499425301090577199887463740242118869534218357379709097545462965282400540380037740467865099211511620937161521231525099587966449859966738027909060708745606171213636378534927743116207454473972386288027581894321213328824648844042273489704008479724816832186121233428331641164270149255267269106936409522837717414084460776931529299511876221940738678819611022510567514264964080956975956342408253811328103243301065636709902534340915400981105423537667310169040908173064376642947614192484812134475870649115916692267291889464327364755469552754777124057676194785903400191011202884820709349402306647981832676509200487769610184237081674826729564229792020825659128991074419936775185302746367949824609322099882220179919337753078169168385686822700463235544900456634377635206278895119040767109097055323068351168736469986305041989319985829982419323391593750790382469474514186888643377942182394166241971206763432447533701902893599088030992665252354148269049372227162644927356542825064489530547997449146789833944825854817144897351848997048123620767311758247789073361610581622626984729922972815606841438231881912704114311952851378587230927707486441388669413180416898807636751193492803825326331774799824806273063573753544671505681698782150032241177659216498772863317546531193216448130620876519049090409964017307147773100895483767455242407904965133492030290166532227042812286813253861621418496300087444138560302547175937987181949463027009328756309549943038609067809083350876505273429690381720554196159679311035747938322066694831274130386190147854886946044625136782704040981275798212627657259886945747716175921226099875020746502690920048621550134283165999954989150854825191643769234668053789702013689758224165534435099682632888765269491817360522672551804917473840950907245825632072535686657517780930530551638585295717609243837438571475685617392529695180016057052536704806893986858638111259676099133984480743546138766972577405673050626618810265422496613304675617933933417846428955321528171751711331333700466636625485490945792752952440329290046261178690683463617905461107237818340381540541027144194420931564605564365029048467781101821569035933740035848565061608356414822456603735302782656459429470045662832925406377220676109860330450326706572392139786103433156083950750318023670406974450129315516772961531142898625289418317906658389975595745230105737178376930875688267132225958658483680193639510911801183313125078324258082415971214308357880442480464117535010090868733578210709586777654234745654704895727641419251014836176012360106470323078402579306808304372682698488370457521588603256355688288792507781191558117043165365404730476673544182165026607838885197397043380882882958299180359207517733816955817914900397613339016111830877917818711966785467905078535109632910743369574043452188872321342834076005879496838799576783553140231758308087646010996892664058822713850091301564587605429760839240444689411506388857725509206518846622106322147302140987449930178226174146381239694901933636981312882700556791192978781709636812782818879879304064144910150442796742795918343538063564038427632473908985760714474777615526637615654398711136715731432841558823816708846625774375642405379922601510641509412942408668497298750142552566895632768051116107147938790298664616313008324408641449854553976901161135152589482385253113900732938078184580737843911333679026913068605513492338826182521916010128099694035221232796090324163290056166906019975287894487850214380961926289677160391570471430597540444929275682329657416087854949752689189278443948006128602453975819636291045595719346654685166390197906738182944896121691549968354575247978353445126741795940825751527052166921960720955187430862840442527198605383243207364782128026390252088828261114846968499561906026164352723076250093140791493618558411344917976314074556448004685351345376994243211228159605166604478941642182703828770103571763142639635587404159462303674433212370562381187485763327512587637742555683210235843659519989015632901571754002729060077738868382659071284136480213011765196487507922932026084507199373104817128687731304506349424387450182711113008722558856769821279111108074477604275876827890913416509837257298042356861474302692003150062789123380621651863434300859334113520251153926948469129748069531387221220076760937386201375249286913587112353021465210106734054965561255923560212128269632303573247859593892712516764803199354621847383802308637958495685049430941356040805335650538169626042654765423585482642260891502854596750812229029703284775018152581959705922088822842714241277057646084200042859728885036055863643396392866882194070676672078735537737948133812740459867137207465680508882036631777642088022879128991615942732074587833264709021511978112261445862738163128346222137011936049006947252421670853476287399997768691672532638533406508423492014624704332627188735144504001682077152424083223631490955753647860313837999076653202038331375478734112226676049883119489802115345613708106579351201580232639138854076532076889787286260728037522223054981864788897689333902205779873458369500169709247716262107602634288763429654473929966674160502358376275695322723380959094390832048771547240691148756537320359221184047814677521995521284581545166342022201234343413176195016330860066435358972488731245696331902646327672981939044294053307917952228856434210461944434601347025656499549986731242954511041261486185878208752253817481514148996743048973600007788563434273556863107150371644163873707608957196035050774655370096613514490448945646125994225809170962744870047410099609472722101173561923850508944933855889103905749779022462317869506836322979136789808421952577003111151023331174328948721989135479831752656325530288827998648423049563077967059837298319470409250811271170747047102664824707019013010108577731428378248054927483255151093930908018061788520001593088888806591083753995400932886577316927658520699558716761152222991039096379134398155645734679307199844092801500755765656579211685541777205313137329330733144384990433390941819515951846524152164049999225325530881842740757120583308182220792509375508453794642016333979924956356994497066062902363667395980533793102126332112530772236242541009681595639922808044366298540847099693252742177344038840309113289426986915814024922274435865441957396460385853958042576786306943974920897536910496443045450095889159218092767365302814949190915695154432336127147475733340856823209470463176839937870119317216974561238798904333280284854373310829205279867552670639650584982340295473140149641986262547295888863491604604192777148963647540371339586215234505360612837284337161872246670420720133832264719217373699027637531635218770410054716664633882876771273673681740220645416190517965894845739040639074993265023412652744579933923479088078102310462127336978947643438678157810209902049237757686792227457340627150949701846028092902041108723804972350533355116789317022477707886736310804938343423288161575776419893855089968457590299487325427344206945646833282805427595913257619527723676596723067415833526886848192264710873183719445428984529069745416147830710040366861235374798052181740995706453893770562187253832155519145881114501526895930865495433114821480323570744979767183442591136192577098859050229193483756455569197929064967819305046212905600004922977805394893799962753676479407745451407998154024124392281966290175493945914329950799230452063299512417604817861020902445719622995659922608470939245834456416017551651358067797556678026369799513498586964513525441231617491298491107954144577796729061573596311389230775569273769920190048231953457063803071281520891697739401201178181903013739458006909696778384703689025630170350990354840084554459696243221446570034704480890843599609181349812226837625927763227032375009112234441220710639204905199664383857674401691922089559079029420945052351089357852057138640765539991456976200514290562754693951268703157785207257665496821127268144212895206466437161672495898687268317294440483352367719598758723993917095721296737926465822292952965023351986383461048326858027842700485376175599915079521400244483707931812716250807297724799071667633940580429465633298830757520425690968356083735090951889885850538940235087738056840746038895419363282011149317073831257955150600370811744888982476660778844507839818091326647118350996848760810392247556937598783912979842012051312961107816227954727526142533890550611524951431019475024715452886206834347401411949832584964392964118906051439105952917977400960642513887220809037108490159164740658376437236461192647682667125025793590100996240656268982935903152241956945735689109709177740806003855572206244605286265044872382851161502857838698451084466618665324090328077302402072034261770666655500243279711501491179161747983923466224205030392752853337853470908504340206544367233311321168387823006045834098332968047172869360119373376039955158611674002711338303033496813095113447299874596366403574033218731328194762495231483881509513472951222584285067063216657686747941237474377918083086344734055459275721607509476458865224591950237701780505544886020921370843338208544515545438010407330257617326342303534154032391919358933665190078241076218625313018755500224265614197152399935115032880833237124929351322731371387003567702713544166429031840814202615396256606535096455946584381986721924077739080748847833845603072364550961550180223267467129812822718145383570297741532003735747679029517680782958488336845618618102007401453923366785845499681408846490457562731253387483785840593743190946252419236225663926723634050775311397276583195264383755072881622621440316768708989246716464852765094816958833027761011983184737865191704479908246820296711136847215775345287612129122842853980153088377702857112176245947110820600363058056517173712985939108232521364433183398696806275335443031440826995113689549317490348748623017285976227369371077592314375456419863422784867715632886043981492557435086599021143646997888850248718666484189821780621844351213406971597187311388064349443243120272866395698465980940056874340068522144845846605154695209837845675650171194378675149056928136973495566288178737953664086005844645562262776595335851866583229342720596185317214624588263678199972431578647592099847562406979536652752541798518716237297622451639634100309363720535911997034816478237253584775756260494773025479398055188970682888395062519530082452289099622727320231630815761267393915399510925156683487213462793661684683441531502269249238910399108023328500230292309184894720338538661311973105733955299483095971562528235753441983029841290413182342461587595710529710786590451345748280754989052713045141380779273382521873087871767537916482548109915323656871898971910691369833075020121501114528401483596873944672857031580359905063317603147709697969236736242516832368863827344117580739229057648606877479592765009466605963206195710177140529040506473077490025132197141485882049873381123580546700706550469235657569779673532838586441477470366606294425225972160192141113865409692239456515509398296153569750471445657471006385457003301477528102489480956581642847570925731969202729026956968024485034666414253223926783608560877127830730685248106098659679694871027215240218127770841441017147353637812384495614998788809838281825860377989011985201032725543667952596622827275841623182773265577372194982449225822929056914069450965744226485897223255341517214689715291674799798073800061425724615379680634772758450422176211603464294692623775722680651783545673771685293996460020847028556608441166412347975062829608121970208923260606729195451458765825013884815658280279867033020804567457674775350095663788879317924332431633019438905757057271921672492713806828678430601330151795262752214773700385054572097612298222048845411675148470832520014622159973346263767756011186430259172667563839286155459096954175158172137900090601930703468116323427813621999274658190505646831324707090487353956831334257370500198053480464513691691858490813297493971843299341544862522541096720885799077414992054915984676613695897327433095669967082461208530571670442865361342994379649138024372954705269604621523148249515297451607728648363773779518342080204438090287934881354431026199764250449951575358253388023579563592886346782502538750041257161722431904883697896698407491006287120841453485339377526816189429812064833485838488190052405269552048971275895912299732243658061179183864423164538837210918477816141101354884938611132027406148795659039835918776839388896584555666006755200988595418061256376615124941683271581582152444477289342470942779318118757126486852083007532049443172530269630346650250730541163229283999511022931630622089432287860185221490687814577164804498349800808326809491289830107757262099264213501360703318098305314149020313606179033040380335481060710741360550665096975103070827672040745979051879916915635603198152781956573739188010217051514404161073318049159043904829563613572122789969451899075982201865217017337827348071063474170394474583518094517299384023528755124124894620637410981509865711885781985614359139248057726451046709008716171038619408066809506928088980474176826481045443891773322552058759385821600909518178975226822963746542605012983795048148744036209598840833003255976446209219933537912031350132593166944481509603565063724929692953504777421908344562898602592011908241272710204127004244549924046892565632756813970642693745640979172738474721938451106930458332992043057906926675237605575045728754542355357778379772695859592516400966139769377224023413917994875306973699927727800503664096942174810536116013537691401130694361903694602171094009157300967206347917383331335986118017510750796585033122462280118302017595252110382677094657516647704356846974720129249366857880189750211904167919269649490507220098989085198207773297561170627680266051293962341942686229671223069539137432227244937159488785886989077133073607210688804438228278013644064515191445321405258764499574381957124742727510856583459503892585495600053410605282088807973439212107409694372417691074534171938462434911063641054339284382515623293213775286347280292160040526918067721604630739572884927673603790531925530543829433588775341087460266686917232070048733881205922967015828842330388486627225946104092341008439653103246547885038794866872709774988980857316166664658342025272329066514461373868861992728101138293034157899505057806987762786250718904740510038664523586252786583209573666860116040013928556764716212615492649044532182083652192665574109603829929468193613602758344603044297193031490136336138556251037023364460233363239822275538539872524257970456556688031594706801621316611596395114247054770592765098130439342388136944024705419938069448775553343887625410314183695082505757587360071377066045904148372608029109040667806001148489549480559852045099269895344460141275007829521340908705001169407884046111233910569534136355862191908905634508829274543428141139757221268749106139328856119204221085267176743464105237358000520660204668960524461267353220990756404521086021583494871964997031849101269932025376664440359586928220603754085458224325327567483412405023233341860894839350327940448545359370562753055530263895616273702793141410552178472068260940840703210731353244398397342505520558259033939724334285564736748742103887579712374666482252748544029202423288811325662520423062627203587274598394497264393147701733140634386715431671334309843271510658385372353798710024152177136068659037343266600437516644509764002191413528570360166832725764535538776084318420868411249713237162383432597204885448891275609775188754330141417018176873395354625946853460105401977738128924880335880417354775349539551794785538213923261030841770338153683889434087677145940835407624775335259533926673667895327532056802409598587579913085689803068487838194778133536352690854813145499723819078468347813641184799041846237954490503380409753433389231725323835107035363519968538452815433321055818361782148115436442104870210003017048537696632983411561915201995482755510377792954647906930733522772094384978514487578239435936879676283963355545692297767339845079571846917428152014369327366112574142345995331229754527652841244328082969832710155824201811944587914690186930606013550951972125289655882149979893697862208789134820722593022338830626826063786763895946284393580615640004476589053127484756823506307988928738299240117006999434234259731003839370216500952804308766282896804478166159421109232313405676498886293005960779293641647417625945399422026279393902491092592435608451965895799485507901160532017333197606327249408886916280266365950190736881423079362974690412834477202605815813380826103732695129022495985620725677305579263897361592972172732892312909526635895511128435840665305210257337175288565811256973182460238109516475077685105310667092645427845614259744204423646965469418694281415498116061449578049634562686218389851611017151945119200285252906400337713594013176266311901777698137577731846339177494493442419765346541145768995548406323502124869761767536792851237136407936216252991130222154097545491805555985825898836437271200427790659987459489955403321018059922467788562178460541408524173712781811236077062888429009206203974561541633075218718764680895586524313322067643061386825875547687763074916801980644525294436423314631941613965115668868607592191843214352391314064676829015634067409485249462186770836885113919342390766719945937486229946312904853528170940444594188081331556684554937842865618669145661878401767462167732552764300778712415924817448711786148793304487026455454298207242625351480878959052738450655616870294374478119565104702460681593778781590871868026562502660031877513246695481316828052545775693823098708934090600599577076736730904824688579135170712199725267666735828490364435251189755680235767502074291798393673387323997344137693534511569570600385880486584947876964790776699117526609417955658618997447590387752009712513967365739412741665467399601351326003861050730725444935155818799569959827678678260753603498804945146216599360031141613570396499453060131904454256258472698868509881089564811181835269520770539163815921658897584317015394830977822177028724675050508004047065951890322263087577309489829427966050692693926454247204298472901350130708813239263253180660190713512874946342429713795873916607314749126472598828764632833030457640413144125734993895582337063286883770173645101492535314384545889444789365525094786089315836294210363160724384892926641423540962510329790310666258162115512345449252762615188146964668881182686380725743944292691669493193370806528442718797035574394252967298144551928557892281397450851955664696871413239175803526453982257288474787751152670684010735996035876122113457580676854904620964742659600293887883907859216819549476869299600947601437089380904907765248880321524942266428994955862117578665108178444118163300698569130731659527984289338893173031128292216531121951970185799794474881542156676343788463849349112019824431064989410868648419065647289215133941674689580893632774670283516981709659595596564455864086783892986661372432095450297028839544983847639897559478643629373365108030564733086865275414517370668345857034720695516994410499569123650674179417426689257877947230816048931555144936481884993719544779336995005136155722803450805761021041439033883045703048557795906097146557668042908170595949148186630435553982673748217385195076307485060270224581553359799825100577540706838361023389722987311756585279100044354073674940921375661699461046493466646767179250418193463332082045984777986321475534881921587524421557337616798621347361635715771847726794357726495595359312607876508491434042532230660422547004092902177900331400164258781211810879804933265324315120630527306587725940871480106562567444324211705396133317906841223487921586207606676350519990369565069353679748596447864505876702311670623817257694262954602650993247924309458898729693722275345681442165855674718747212252233134155787205224955073569258570785300674274623264967524192227850931790194911811882066023483541839921760073964770309015761309410277186885810818968721709565699020047684185859793331974342167910919460683805332321405259384240609179473359858992175784456868758392407489374428481242473097878627602404565300117647195640389949969108909662780064684719901206495482181874992150441263528553092115915864271460797606485814611963063025829133953155444110066679437632803260994398106349720957828107052144390633485398684640981546841875043458988888872633368453197317958951343015356970944643510842866099863716911210900101021992528618176153512487041106673114937751713887464260522963438427698374472579707874640584671884376987521385163812482389715839143413365244116056220221027190537395401882008789656815427575249020369414818357082444799441098701337902454176152509646311960548882968687674618615842618308360710821009624309075820208194243291176159527676966591110650467737119775717962572371770539172745443636427252828613325721780582956614644284081538909705431724430759745233832992017113750319376846444071377046882724688556832749976418526793245387891099494198154560275656442711819789890297443925377086910718627414297755545040461080918396802955757458353344245037352767091880399486487081781972352904171706185056606016638024765594892848750400832984324305607477846335471727065778473885208889111412875097704242489441504465355343450485253881365695519035690276638194455843582662856568416988272164137299868329390644856065224273630459822180359894765615971137388935484765470063398048018512867050521430570308943611654201671251070665654139906319315465388663042504649109976776269354054582380389782238918740560368150294932591011963859798168342118028603226321288591036038801056233148030735231628109243569318259624357096250049447908222122378847902598599156028083424164677790982069757427137927928301753058744418327216094456570226947995200488531215829017917623673510644815378994333500960628470212704694850391829793019504847487487584313621135071008704586164002660184332111483725814444277130182782504425080727885845591624147231134615841968964112269956868966523183046023117902818969499951986634479958188554708014311394914207434068633463703662130291731751708359503542603190490716036116733925969812314203108936477545696804342349927258227293039832149344000048247211644990870132848689483700649748405195232681707889783976002094813689794092427070352644901405796898562604187959156634666885792288765254538203399970823062515381830799451885134710388734157360965687752410673158687178398917170162778686136671379296004740474603121110326851405811555488773908157353264464282390811353795651528938718164801881949954441866128117338068370697086109027742915723273934940049940608074932170285788660530288271463765621879000598686917846336130902905455339876306170116731275097223504548690066669379751333363871478687672860609964867552873454855497777180170799823363993109162570233444697084351709597595053742771288899861431468006799248639189770811820419555052726808263164239540981878860818810026720571566753367399399855824264884269415209775010408268010686803324578417508385329673827092492608563517955701430850258395425298568066096776941372718697385432905463809370029061789657046367520490712450652247903185425441101713042516205082723341525988256398086104879842696969708005921654491621338801729635366190238470870992413044303561263848557058525596618824056320707480254896668498538771584157354370442185555161494480108897270076796202408916608768703076654021290388129305359124311423106130686983409319076731321993664145724981953981629348153077490807354267465827462934372277582717783082745008013288485521136118080510899341305213912997057426201334424432202920139607165117767815668762678554543966320153052424968212809355972517882602407374764683456682622087045282739458231688976958265581599493731404354816465563475935016151278588058704668324635498184806512473227463594207456134968048946587664129462349750906785877496666913877613140499224737367607395425041170935216231112716258359966575100100791993343576464012770285928696878742162179441742658120709879558423760701227745978026538571289856199162736136883218578686681193749925248285903704975163496997373029741254602582517945884094606698603445776358294882457835330234278036490747659479925470708536871298227520896080374872343412739637426791974994242654946953811549867048990412740128371296599779406318371797577355435567543107026754609316800959074062055936012580150338045037533311042733381021580064497257270930438552052218464130183482405623427613863515101137123902396071888041646214075446527161299864873028574100297187572700243719254887143558759726576743123908749979957065137325976309642138291319337408785919462838080922765657268794733719227919098598706827878308228642811146156258226341344488767655879628836769793567256859163283039792380873070578773498336513537680687054495356427340803515604359234498600412721213238249608080774157568233081061424348174535018025259902959235077362369372835644371945035821311798244657828826728871461861597932134159219388983370327686126763623001072274165273442368982449329644546186556603264300520011743931064359977837353106671190124095726298187672645025478175501623035921631506386369007070166209410294329877208572677221087557644255010704654759661355699025426705279474591296575883239906898548035733545691525071139104674391164078963594607051330517093949564968496116289171654621034188758056987210972504220248077726965460707063665320087789884200076086032574299474573599557755122890018613991409271399024624239760077458756609749762457760240363716032887973625427597556735468028396290814845991005231502990415675440030209614048348128680724478098551020992765004631658083088183702208442662207556886297433515011996817602149261094032220898489433776380306179034680631699809747886915975399674460725718962562572979719852854684114112297071208546991746047294639318948611909139622524323443882440579263759975378765297290352427941066558607885961302756753509170722732044226882247920431504478115045776861503721629277361542219405837412451426918786774128664409279530674414659463921923064519697992491825989904030370566550396478152698807431733269787044517173017749058793765108880032700962034408006269347176546598747158492867365323044635877767056434211520821076000132069709509791814144094037992540546061061374383329558985056073257021151459617956576081995233209367139568890166897469756544093062537449634246083337342065218799195291560311216383214809001950777007368018517384361637866573935298715339829611042834246239402388306552112878633401547270324358490385038616969022658333854466807174595633907800351245088114652657828979320781689665213853849922977474189168151348997103525597770829305928795260376973191682845352709974776600805037833752633051248769605210528998114761159516214905389511485290831606864959134368182456039994364896597584132759353737609086079096929552149477470350885581508525891116279202202830688306144948981108070521082139429379932087517055737239464002803604037730833953804417082138784670649065023714058544830400010808693413783749221879046349774927846356193509488893005861122814389709844166074865687870335079625350510600790536143079333159213871420847284855481975358067322985263511574678326753275200517866691746209846668336305910758673219796289028269646492001700100258231654865361053726611751549385885464760496911921564308657164460343759170823879244701087590939119270192780451769300587586264573658755500786515815875052439635620527736637360768214254739363738974921500574483545943109052250289563213308911342388461719257180069140122150714517792439506456964107747068805772960471642934683421429631262572907235057617731147775051051196170882673551756115516193370407542320699757615427603467674217372531255506750329131555486338325163131440738224256907979629860426559076309411314108479130374125447835810506014734028298511011915679397785889171541730185166528646198373725153477252512675677802893730567834775121241423958821662072806796188279204376323956739263282445039242734900973534249755497788313288407165062535656529801545977054982280124600702151477916652407218133394899917319173241145979968556170442943232116321482945215139723926731872223364537883777802067737016525854585887336284970454898927102298712193069880353053456516585764459657921916964276050196927306093515097125736726179006673382281471825506620006689518623531751935499392273784815361316125775213766809693505494141380759065106582849662925041717344485913339615602103916585750908587841262375143772538326586979440903196234574508278177140092016413190671099051366628190080516069742051599376381930157272832978605599705442831991543855599773909462557212175595686101841094666175831731415866588339127321748909246352847349214937262499940193358289137173761787440174491120122599378270197828250683322996064008203923370144035338613693773885705719566721187865257785795258382314955572551842489958078971280860412802645917050232896071026391811311778708776209368828391143089680658299428402359894537186133697418130466932659087617441026110428841297375666069928374073330297317681631597277689153823466613215816379415062221904785222983065725611862243646771151064879294364814877587664486362129242170652325746017568510932357266963154353178712144723577654479165759268056732770150792965241073569169670400610987565244993923194482204682584946126182930818939121783106415181266869866994186901142116133688468659114258069585845818402624613158530646793104119049578275918027335775890839013028440493880303168500072028178572890241700683208619613120384872882850971368787175260118889941741395263688147871788156192901429742934181609235407112601861436938389914945870493875425824228561763579057047790666594312513876025292774076110184351389349668253212546695876397910105512605992730224687777585865332901838212981699709982252936756456060432768995228807994418869031866258927377796104471382204300117171419882121524246117381761035818857458441337908708081657180430093534450627425130046250757454022998102982882752132105578852568621791943202527801281013928686856984376647477164010314558682912505615755818936918328405397150389374434216861422474512502588838333139008169499958116963595329827782689175980637205293724820913339971201077332738426928934750217814957079543212731865208272548737232657788683837277323270844966683412232842366033400224120509209591083314673926392259106248855817196269680317991667969640847291402387303625769737737669931262135998669411337042820421346467620041843479178546267785726602319406182215659407046615411139573912063086183311021013020465472609700517195572124826536450358712164440371368325126397903189489514489521140874206390131763875936508195582123097053378110198447499646883950525931876805648649836346958246421917241199863895890150205830443386975171295660362567611869879532954383594181395553173541581638595968688172654965960131310402573814407912031667197135344720363289704898686270623512807579487206392971905699122005509746827493783571581279483038623962027056748755861728738267762653514872022745411094769424731883044674603515421579666991443552633251913563455832833782127596477456786406929851913504310511483358959033347336801297210218272383308268924413121007789076795137488995420711463840625306773845953445144543932397699646361101005674316718954611334865424135131659388033022887433536684106606657595982494849862558903607179323549549789669292912578775327457625919013227131974249105777147354512632924732561362709294255563153235391257255851531024299658244658005155327989362299280666176946150577288903593798022046643657051066544218750262641111674557080764294043699455139181298783431410635287281358368753692035331566810463987506788844679900931010254295826854712347110584971946386356467094176548200182521389400350148304469487078253026595039429060964533641990989022421527301131729607782206228883132218556242601997325326471748812314522031397529911086064399594274581737222553264718524427565658450453779484960752029570558716838682634757354981037311266376260754596323724201349848473804801136861060555701553435006507667772129998133725539310198669013774738662918693705224654699955444444257572512868346457192015374209305522299123289954588666720597691461440163296091166382837664036370645106108990045310315318408569762926498001563627222310767740126509072763959250804920584782203961746993979092238430216740280039531866154826798235656786847868810624273424017831661378718566138909419832372045384037501770842349986193531516876089940404681240758334131507940029511136187745366005187642638913316508251564812199960586900132641028326458271798906005238388575263520537787910019469185335547321822728433732549947846760219376779658603234524257793793004135367865373999219498740824956844312439309089691403092728732282430991290514556071135684364870579718180242143596458357474883592601788501205356572247686891196881435528987681537499952571677745982231902800337405277028071856269151628515195082280242641445971421182333407705669495038041668585223278742296145509762162120528506477659611485208253129127189884335202063731613514967000527367542171126221733308911276698952895873089338654697948725492642731090903625968558242891296523185851640224123833378144690644068462226344910487340809011280811303769125490965753226325523901768212250546173391229246540540651584169405233199843400518181022852705929470851722974113737546399932081940972191229659598066512247992229261164057518841909459896379589806388361238290974800210197341862392236966832285806264578697970719502299316425203359033570336516292047602675005014650079674087083358596406894638230477100427803370868646373527788792935025565193184660461789336102162087146678880668300794637698078751978708218303068609661575874077565506511425882685632407783102616163652202986645004949626984288590914231380463774061871563438946110563859772376561034637336292400864056969659896023304138795963336929980373974687279957769481462153948373229203228270139784167967629688140000642750907466830837845079919359771465770413699383993470254130865042031908271534184495624975524902563846492590832260846243216922969243039351752778167685971302047541125832473749246970403756287533533788990272630032271265517145481082872192735587133983438205581911626120694003702048582821172849567797127038344509703454234918083786028668035392736681925378549950170943761525341255275768513804061545952698399020975420113107556529156519508378988230781591809516813094183576593947201094105808956830345791686678624406620945105553880162186544125228631487668782553002024535333616964589874763333070135431895559631719901062361963967998826941899107236209580859234548401575548829652229697993793676866971106606588716448244723997178128594493086839198119711634149266989281747681212029769088664338535092599004332091851497969875818552590801163412553620261744804301944668004341593685428105904792573963278567440063957099624697994414278831037887469865299981557569748003776150808703441729348777590306176649460003337707312532015006706568734111644838362046194543849940878981741561805891679021357680796327936694912332650074261065032254811933693685951005689864508268784805868122417542026419674056501421423324646057979725512597289314885001556968756901780206886209291455297900508198336189766694295015135606376950644253893013101442070753946590550068259811835015823024574743673410811816543674734659358360102670324054168978080019096467691272984422663577947899930116695702375299315422040588909009430584085502251788235378865755012993452281571175316358635993651322690024118462899403387990255035971871836724868943035573079316651451647598467191747030197153247119809714290935997816652661825908231977623983677972969645632882040516389518677529662107825501290418705101821666005185193601427960464360232471761328179740220743857060476618079933463385103619440255828429026388410917241191287141530071729911959842931579337296468792012782694657239847531996137812113811819566157217056774877478293830305857271652076904881644623844451618032203574717892563823586461281755379449940251185037240308285308108994558276315595603277274398928544870533654646411056030155175903481428201479860857507885732551058558884529043083126027304890590612031097957117348558715987619199553905276812681723249855695836694230658707584429085561698313599911211994559715229034447841315582257407607257916197922088673304647986311989939483694458650485204802474630301186980434890680055996301108755430921774733392734107725178852421954513647440261445001690164365005521151305390448931085573371635643898768974665862706860124690198709941262675666691998661567451695224174904113557250385284757717338578295735303349503953983639515124447727793331901468171591707373933411676252786958915632347801150912843656795184610801634432353138475047486502750736879501412406890860145168519972685421009654949898103907105311711489804176008667620172524514547933479677522709065071163376405609427655580035843564272077752571637827971381301771109003540845886444651099312557639694263479103539164281813692598146750785786852691303071534865582130072838078922132309201793183471426171194677413162392779812077951088157740135734763845577711607276184825342580286821549804218842392851232799397917405497087894955253495264418768809326716039061125112459883087287839214824444976232899126423644810770130611281106317472281608654442360264465274951371243074601070667481885643388194221488119682876889942888612947654712104236292682060537277625873461195521137018348995980046565290037097633610238583667257721126356901620312494257314038602978938454645969381697479736315679632310005811008728757225619822608720346673545742515015210472045663635968655831599438360009116494800922964726269921619768197764045044565927816127224390320598925565713574621885553154320939567749051048384842465692215186243529795074216455675635140355888113118643964233286956441189560531138946041853168183793492431130959479404267450426421059160076347910223778660858384339676445205533710700727283745196452435499297503286586090573651030091209787888934588714960569848411786954522902425713387209518006937767404788874304006862553805993548358786286335389976154393802628837754503901457039123812089115009257688287488829900755933047618869965228052450004551261772711880296051134869757293716605735669280453063293342831593329482274032879413471111639823625507286270233342433482663797426912638074837376235483745988501007659113926909685002184699994958244755528062717102342941736208567589756546770972744504387928153461774674392624096712461152487034186417063531610381939673920576904373298397574154805566655305017817058458323134323294138750563279667371694917200866622386755918472505048696455445194306520211443727515349248278329785628641269799317990982316530134142928488656339420389408492489872169880852187382975379839689219594778303137618744813294653411725029838795483982055216462352488197177164968697529087252083956530471508652660448600283267003117515719585101941015014809284821160481349712032863158975995277524551044366375503862946364469055679572387232243916256381489319874466067884769068937138998927483297811766506210665861154921608018790771761026459301357056724598880144998435912442210530820363944636466858957047333629411475275862481827494326561623598867684759253870933572469950749935447779204051756449506356394980580975110970251789440262860122635337935172927156732629592851791825054441127619958085735698038635417242031371806773864643195016309609772409899843270588848039234386266502634144926145448124208584926868109612979866474234213715556577915489174358927890247016965481182627391278890367270088749549015063335457449647778690835109702191220300405994548966219788606377646191165289409205478847423848443913707051784108247229540478496739352416120783133328134842896679827392944632218588701239969336689137649498566077046766685876911476387611714165648280851652242683450023569739228701558370200961475231013536443189633107514705309689189408103368885962141542471342638257750274328469177508680548268386203823993021572524409283506038749402879166342833409589676300695424441954898189850674011822639060861453604337844983854438860574890709877167081963032438859329912710947371897168782570203909964305988440326895711556026701174117016429622291732927726589049006190648354885530435092607995185905001052365690762214126463077486724345811098650114416248887290280103474904453707057317877447273601921495632171843843060172744225439266425716717724623004068422975003681612242833421733341349505418799565426305516884492367055401365206569270097457036807248848564165431738324771182716676319766617012704200065737902872736086617120352052564225592905332214592223832920599926683181348331067767196492119263491048801042625981950795665009161213740460470287190114838850279090632683635498988379799415084839006477345928478753578661763241580216766506386042212031854590446910144538847306707113358887883453204399853074777689040029569231726408931899349446539360949349086008186348748442191704168663544880436693544785933144591202832221025227612125299103999951753642751881004734156341318448616989548453054940996370074127943586954955420209348244198590395343847027700732690048264808059896626379268445643417549690089467159619468681393854131052174533206108065970114736755210544080007846444891854551013397906948468391918127438110835340314059239361257465110137133780354343771016982962074318506858573886258322142110964564066270834181887694236398519698485780027768997129832793034106999442915279460113842988081082148877287088611087962572411565367701114465793209898948242840046741929817918353918768859597119263665568541397152728906652137213084042506387914186357339345266207629318832211728115318387864291278992596009193724939303541538287525310589805463503837315380881632613434951891219351998956550021839044295813684085916290390532115703467425491659386770607430589844944484022252410185175534960499504321204235269043393124989921175120887822117249176346754863108911720129569833333851556613976726405514367387711819492282150045051364499828037426273283977214969689554593913299171061547081578194501994134167951369950650549951980567905146083822309471504501175476459762086055794631994011292104544825056770660918755063070458892896020951092982646168314988166001670600834603706307812568986936963145878987437434487941898301246327101211632874460821867141613805996751472307517819669906584358671718349989505490144494511759913411661314256996866698924670700565357479006462282414797831341219145331892518238442232028131741656744200251562947539563302589386098284517777206585801305342075455015216509207961154845642143859838710594595085144783715250777033880481609476670932894047663119010759688687214083953395574581487212131343423132364900278760006220304252115720221006683937191811274097554802988212109893684525348162614413237194898420756303201493801180950231669671423420540049901083409041823261440707522150282484382926518952255939158374994999783872694052816795230295978552280891677742858286754445589078827829492176344441415779646000883032057634882684600619110639530087556615377802074206697369859043427718335932260119486757022034760307009346086630402184128964858042638811567140716376761303295874293405588765384264689696776315035252683055557130615146426122213086265259978285447151759454889079990781863521249734050889647701270806057179339016892512034740887153936501759560176385830930810902977380700016421840214175110912843014932090724710108282882131231962816689400540042687149172862550272900666861775382873528583851231544929375728476976860175474498383935027421796986632203139670067785728704592576231881483791790226423872152811973677380847786181849850827708519818630254413749316238130417953704771194545824817268055487203939928588705809710483555526101407696704009330860739828264894480180324249846458341505518190065170485575339702108057473370688849814008150798119311932186453020533445003604059444595125728635798429237465564260208842864701511772943364763886341631153810769665808581489434278481682622099172020604839065241481644214264394539824804792858703021314249384570698522789865265446858399099528036867136242824523775920902999337422935906787444807458339293033496230229472888234936395397164601979400703146856663917946702984903468986219563362391047702197490496232297594449948503584962035027015074424587110814700426157558536832505899233595831942474508935653833294037909555825357520614995108071964494568465436998472253729001053954958031659108903290024626281817388470304229335336925289383928915736020574273755987831788578992119497804401031390676115687052526112762536093689471859300840059263594491974120643890592783305904345319174564623607403121770313996324397818839276758391379769166689968227733257859363857836309227527262537336026586327877501876098464176295502733066200837333966703502053920905562534942157564816540878400078187767238689519567672240672284454610736934992704021820893776021281406622274540592069546006395867329499527099696584727762006865687704201964573572200706863951645136435935871980907834999020845475861534466984493634884338919277669587433910717921243601659237924299414286898530683093269963618163645090087108401088086775588870898864222705297544884446768219814992043753489902088230437655718091591758665781522426109342118804257871139729474973004864191417340073632142936442171721535321638215421591791366230997802277271501063040869604078528540286235805875034204332810043854686438491279965652617691443249204933150875371880944395117684745385130085959082590034196824681067593302417897886530584407412151017036794637668125958633115646526259556794138361462783417153039418595182851479928253625519571988232863325451549130858806851320322032637191676942426036009870950745859395331976894627391914225913219282961830176938600467329194370617723476329467705223823447987850763646865738669427840634656538408794848333354416829861441317213205468640640736012822716142329386724109726266292887250868247952376086382694512181187192058877776401416836681265567098781042158986347173766096410019862936728126006167976186915667159570939579391825922707646112997254345536407602761902501942295440505807195154294114347425477872256077536138798928846325128850872360746776456741238705330148597818843564094224014330241712154918747888053899975284916848367611145334284746892821858461341212266875917842327238125465477485409205236315298666921437998538464450304528850437141511752710199580733688156079639031413106373394043999174235058678278481308021906827303333494413885914033696917530585838117714298881425655793088685644481508491131312754400319354214050399318822338980479523762056863259872611477160317421933247689174139000824173972134623776637138232738119801150037096075439928128552243550419461474661212445668854839032012619906488159648176080403793259858279242413236074107534820277536472046672779993241696907722159295532026010345363442946561120767379830538573352284906989165745274215501639468986865149953482050924338187604661414094811831596398505561851970290147185997342129925136128798236418609418683084001418835261454942890631012203654567803589726513576344669280321031188119042621134006495927488347858353428278764604141569614919795227614954705072685754865453982661294707721404339478676727511566970962540776135227421842740120642232692324243024305466986855358538775524496383513001509770229038211126811863907464172531905914815293321742116358798766660105411217584613677399467104506958559875733156673258329945568242486949763982817441073548061517087677212815521899957429216206670802883829526240571098306566307095260124700468540214368103916207654717182070026284855169991877631117243518502565344056330897542242570503650052257904837349213741518010296679009171299717405135991698832440959051077358166795897724784571950267375342096127415636738310983604075611935953544320073691295067544766956309833901789419740849343110311040836750681494521222608834754543593444144149004684020757194297966115841924566175385365675584392640810810119634726198381908507819652328412157830140903890584600635646243962544782923542787033884218925217900317271050129137222890123153338494600465713575346922611306738316865143287697986403036977571339931118680325357377634191839512446009220519580128321515256166633158153336573413360553087414383938473113234836178305965911033694474533023098628052591227314173115117008584034552240972451943287470225842030095988937203912767808861009624596328698197220516502233273417289464403450851059179691990037343059219325419348090547680378047225924777130035248406582555268303026323833776573883342773915056215676511251124789466439777204531548529266190007933304125059918806776869258933582963158852822372899138294829672002400102891145234794892593077100991896445458957819419039456465503345638781850245863016510308339133150750080543996447378374039264241675313648263395129438821996390328195356475512206659490556790506435503699945065936188644937094149235533419494042223882903438163638328782908365067646354845465185907655761132437876256641694247901608021096183555765718496100109688423549344030847013227595669017324219303018813805222047572740775624478814659641253336902264577075880670753889274366628033617578236250041356529185598899238888615081379199861749652371631167516998865174550442211179832130582446664601094477631836134215445786359972869527197231582161863760465095015661712072024178823081536079703201251294352207640949148333324170181350875746532130697055969484971446584161621126685979259633265141841859706989694372418037193930333978431011573002114545722870687334337892640510793739129496267292881245553873323612479118692632097758445565859547929586516440788165232394155349851666068401441776166934256180903264469591534382024571812101073669688216229727307941452337568032513582488901150710500661920895281940194281440620966113811849114860945243550374380640888790317663360599774600009421046983441622905086564786308686590821558895034265683377872853625021761553328626034212982875667825474604727750360912034708256509830332635875877594819888221287125214448652686873655429536143876103001061737800479368899557522352497605458126212882333872430408005881813896907602388224465041317808433439128955543068868646080561107547181222674143674113176494161915893917293620226559033601574797950374198530753663006367769803828504862148649234799579565050777667897464659366279009384270978390317204812428439628696604588016292124626116608572693316803896645512376048545576089553151437490957001231623892238031984923540503456709590105874432618394854324840028999992412446692700724197017145858102845881318388385501891379450174669724830741798919933520689970693875117372250170348152018908639454163624755950720053734163677545767650221070673007801196522427463036083632043245815794593400878508494918921661616148848600577384833815869509532672000893984502197610416694742386696207106973771059840263206674387658735958412158944411617044644947697916083695601155113655848467829746093208641748349782383641824093334882209686856099323283805337939288890071409209246680443176371446751414874244689357483930151287050530283525204830022899277175569629339335164537175049694404338749668882855654436661955330539724212755320049350576669224267053981945195612342474752673767554912263070957551968448902365666905235803098598852513835482625532684825002940344887689463244371135710817590204205570198544191210204785796096242439241775104417567053684939394475244157055238534716798734395585946410605396797355424345816035572675817042120881395886303461679050900239001290240488521303140109270371070807682057595195745682865307884334289340008574468011839918131213933224669075514015541257084681940291592720123481243551794392314867575481117755888596336214825943820326852339695102241757778839852174019198212746602953993947227709778584992454258286384297530043737778837515969453880499178750940577464731298042975145448468990482916643965807559705937578177327273928565675980209748676861811067182595336687887349870394608674943185505364371323225035526094438056919175069296937991681945179216396850314666279732853214529697845578031996002934578365658106589223063384975174392355649520345621689148516819572235964513426216967771859335712995273581819020751310647052216345337222942284687010282518277636024491753453628042068743404670862097539097365156165681954873329035825585490799011053727049298103327408485568422576314164735930737849521833187266680269968075979307117745304086484555354523298511956974810912604863012233471111648720496571300094417362534215536685017770201870128502783644123194116528917042174074441847860812615403714022148226576137070127738228961596814765325164100769834668322110572688739058647113289163026338324411788423407379135183785141860875692733136068788786800605792371963031261589503226457929655438290982322542378296865410906601342066480463077399554104844732593127917013948742707572048746622753231254960205281045240553846085541824216494355875095010332097530779441228942751063722453288819549919178263164663491071606148788636111638316858598538067680020517694881433788423553352878676864405538422922906147546044053173325999799323664531774782674550162737764499987763490805225725410933148894450990094234022889468654418056472607209484242779642992333439708344292970251962757543428483597267074380850317541404011534996847095169154146657919438462349478733360424388070878799348246489309184012408824458427477889612135927826884422681105473183605621671620060570104448343973656435792201498251681861065935931067879892449114907435709943608845173146420898614515773441158279198110336404577758449475336873853587483248045964977930943420029259452164040480520766501601447287580282495618674382204331153690789810169123829125876103070946651029220515675801563069827570113149196542887436443573315090712624792843239013475625520884820985313972330550120936837149984338727393394787456797665129267092588095672560995253848972192399838164854568103355172074000105417117489706663784211694909520762743357696995155430277089616077146246043878761211824320885031575763133154502969681236845985960372538279467523611313396261778555653883100160155087047740201511384022815722932993080309619879046430794158308862065532843127889091314177897442189697103392750339813935922126780371538287481168845402874827957404659502525998576778244412419218059949739448419324525050909658747022506389027366798459285797822794408628317091913604767410075684061327433910394476041909801180868352481075917600925227682137594503636543767709865452025287983176886658978253990964579828074035988189542765676448511450640544617598947726946895514873617721063831829083074171913407087019077553771293324413005365103308695957873972516280350386553943662119903427523864684175671228340603588282258812434056708900990703990667188313846589213135864560516501506354479479693571394219537839557088345835147472858268717638121966743514032821908810810586463482457940278990634480611948643608947635228347479251999839437892394033139539038264701620681602748413895218116817303334333136286590256654629336606995968156579078970671201469639194704192358828595838289671781922399270245280735994615195830180679609661526349097709925150518683630730698820275009926730866847943016287093011220151510671951753527569604850141991697958777637125822806847550998126993368880748225641304001703688740238773470848968222747534146723953433159178956974589687371371013961768313235041578449272488759447915368255971592006057082294771542494271923548649270635275662411510819835470363491026499881671781851319966327254782320709325288491243584699342130836656010816657607025406422065447519350329063332499985509857893736390535037899429765892431258836484669787544827629532529183745086865675043775466471916498378399248425664267090552396570334826643802672519656999024887655132806915583109203149043559644138011708101498733040567914808184560073746231564624170472818089588620769892304789313428543734030991574524096353886531293189193441407359497234312693857919180878727461639864487450994890427305184328858339307490121655888501110717279147733960332485511447696307519147100770796869579065446721238592819887565048669887651310011446205588337773803482796097014542578101656011607928174730340641585449925815021809100182794138550762338567089793455146044492628771901848020631764791026645245388183954551889285316650141190469795010571178409250135221199518327641804963266143288757489929597807196777227622493744822252274115548755515805086680269338268132836746394129313178656196301864711729765978972738114030723423484606877135854146831764576063011447170977316940301154976207403645265305575763751157481875205836745964321375732391588283406882641786585052605093932204784660680535840074660800162751809871408189297977879691942710079285303178696363949569575823740143523660217232018192445923489077923229423792244534933771723907293019951083390847178388986571440460237137190255654970527758502928301916297482218157685602825916525986777138157145555351276752263630867737024655783722620383359523178135768814310867555626703437244262743848666890095427701609978315054595425948478271275277696315740311517598238236194171122856721016656644128842881244501940864387243693825991874773751033243175026337688363094147560785660212233754698288330644853377681874521029940756017707849277983454341222026853591278205523844260155694089986344688998845738069132341024595581174198626646264450408748755671549885094080293207828300994753994405911832007374385145131884782812969005014431934003542312576905602044580631130055011023658800531608084762913281917741075763336562685759306153491536782603688978302155037360212010735425894955734283040063528593759934565248459403234788315807936718791523662842262531126569811884905871499840085050707891402050343269308846691183160054983787270468285634009722906676157812328715601084286243222576611773835588368466872721170126070463904553868506291481356854543036231003771365740217470402914856108172715050878271924150100034367996565533586695435454232051657253889442842648268461743291881142274548141001701366226458740892109209590257560740717120115853961333512051761909505923089702594780194996471215831759329268948899255218858336667176661392502919457000560766965079238724054998052001271685806358311275104370141947492265239433913471277951761254813736609699662481224773259012875295564373583520534903676599806574696942940917602778399906719846381126973225840422874936793312653775464636635804547023447092223354251430689605900471810813346816848189774149495890411953705856990603171500609368142141297180534539648438125707236863479529718279168120013705108079978020841584706091312487909863899892933321383485497820038414310608750234580697496154896908480051662272660161918885095841463176871780013498980512681400097860299916263696067061424302348791164062291313841956436794755017502522468648839016461467854807699900337469518497260005750135753007269112546257429402848571730530843479433777485283229479355654359539790832395916862676461352857684029303110090357267649351973814037288043102023830307609227770782237255627162513198904791003066010695641659878211315868697556295352411829801026166074635721370056968504762954845591557576901501194698757713078922347138168693755054527128252055546989790584429897239896416154407013863724664713480876664756115879525704432835553801515255278842045356796204906774004218590373936683302780312287136036314063662183340366841149173503562062723929322521531319419032610274786141845020169931912545653569212001315549459478192832927445863356652901822087325747189799069822745454234442375092612980881855143121403030747393202803402535363084753191604746260506246070702974330965158645614222674611660022468464542878533373148061193772563662437410230446720506770388410144482358917116403230349559287532315519047424577161822416027624826648020022422070872293553066075472059941072005609156863728669808537587664138668583915933543621298566622035389878360975379967813507632969626701741107307474625564021251216955366113512103932698274608682162551811911756232110902796202883299272058596113100152425843049029182073675129687334490701126239761530151695361792856720647547174148896230067415714386048886332254806108331627691663582578716657438171387956545528040205820629782588890226988272526402908216747635207217946997542645824932427704533941495284366773468928252290042804529908566539712924546561273359293703119927235968853149675237446474643147039069653369357211517103817570136736753570306379345108968384203296603942307664940738511878543280370322654728745921819497391692240183119061090757737011058806469575929737992780247923874606776109319644501188644035000373208082759314144842219356670675935801772989650069471496591649502535600519707117900327962636107121618635821714379490355467950387076398476966501234189726779204320169517992138330753532284878849412764347028148105535335756112234672087160606415156634212536124438667929575450317144092728552877537806656499024115781666727581475008486168048441424128266424279759337355016839276239374037116025631731002161338257695069438040027274083068819917052531454758700679023426146685761427322557855227596533482942330556423739879611124663270866893518599732209494445766831470081258273296617000573308618767781579611721078084681529243622437483153849777410304451194421381931424173408255954174493761106263867268117203376892913728713567845312837580054254658139382331523171898051192334343396081300234758767453847962987993490810467234050865635920794797489429371912269229910537279111214166386345148412031901248034101987767268978136421111508633181661005478181383969881254141708955682952805337284547960946500962576135243789106839064306752916393504696663772356492469242368182661371225444297018905525160659915773241098145252035084678903514086056112099126289395285801187712963355368219258725288761392380434064338302943453612473080418695617602482948589810844726265902470796293255078083360767437951300102373111268770697385645538138696209479003822496532875181125267120360493453386302669872896331256031037916074636942565916295554301851622583918053515666752281342281615173075562320804543005630785558192075565970157145223530481212938662133630356474195483907062086076400690611648571486380297915492020761508608306071350672420352422307871269556389094492366706199398333251005199150917399101157984897503753726774920546621148290438839821664956121025645919961902442357033262868753165779591398184435319623895400863114565093629725623648379299609144631683789521659055145224230730873138959333523741334643438691014081183902547671193208277710382839955397404221297672955378832569187700435751616719830690161025599762405983918417118976120922537297147253724863020541004564617889888726745947434890269447545316782780754115490690326296537924529753661554124300129155541756186787466147442645047373058150035936040710450985719939895115783218626865278459308352836114540854073976085787424248971047151201904598957780952652117721877985486262583903178232275835215518883798044794160223239311287199319654136259646947954461937836736514583005663249034830412449927481588301059132409237678886746951113299607634366586664373458413379620951787756573244276357351256323161335709978505760348905143494308909800443841997198115252479542488072730222595348755451472869733923049569054852407864376916311335383586189705027975505076891725479522023362357782423025926866400233026413270523312613230209484247249513978017753442644229240440249255977408460357144767821986480204693962284169813861339015057125859436282263873390083602680322724648536756203326699246689939562316125522855190652111716033693588271504040885686315401663811447205936183233554218116130149271111913930000315611384122388083673682572610467662520817648065445044960706619328320784959920969092317847757082883790333227533144238012738995654341996371108741482257615968602951410639206926089770018666354020629901362352464923442779126097166233389514772192083269493113450831552806016724511409409525859242114168017947854998081830497923202789969820583520698509940885741307480849796022183797207542700074014902023480637594041933221312988963305340187071238135321081453546017482907737362694801889152073274229479153822071204454148878671527516640948896388573535171539296892275362429023710618771443827097661855628346143544199579737229803254162045521059962727319372398753213118095216631580925396196109501243153312582801816706977327527931507032324899303448675489541442230017299831813462016401230558150503815993472034439997200198690904909684847518740168587274061514471047085346456475771954092490338387616019881209115450982705754911979136635935592909125444694593545246420369268023745307888384636615452686701491165736391116407469720870675562635233059405674114695075666850923742899210232275639064683053421098694770492328704183222954828517618828115360664313630187744190523144614791023456108939322497125734605306532109950405878723283497905462925491997422309018307642056671616516917931287858317148959293407263297579628117045157754448958444207492522715891628197380187770257540370169134899468403140414548934898351133773377163427378715222639026357385916412724497139662546386270800326061614094871937905321058476629397221228815299842154644862931914640974044378455802354044468995096695372547595255147911370117384464786673518300426708876354614143415845380223416601183149180602865433540893678264374701776783409315150322270022260475039328986680739465106195993283199359247899333155704665438699134848512030966239719103046104328258372240614294881639745483859604822945655456352043518092917272812635497677130498640121755796218255549874521868175493459748844763162556017912835445980000846592098474641097763324931695380707285491750703383351997678987934903456239898815202715096569244559924101564901256086362113631957066800586414363038030374983971031402241576332213015659343094825838320031831219339808658793634701664870723492687967039014268676928323911550965804501333609949384522139473785864885764434521456892618194829580791182396376598192346419357431265459416541415660714361871151254694178094703759135652989053407870665673454977394915353130022673510114138361730774578353665030861420406127368266646537539158851909144232244707454734590719048516740065348997341283193859797883566438353178438597991921591986847948107928734891077121414647403401023250083471490070075953822695352584638110477123577025692510994614904566818176696757250080016419539570686855913096444047467001874788758595845376402509591312028018107738052226560894244192697956415461139034059828888343252291524951964911016315098923315742373307152450437652749981664393911930875163243054374160480339222758896636739178940862688177683771633558949697166309194273440590960198626251090830314207504514978635529247998243501314247428562769277994710679323756320790067491527709660214113418379527396687791877559519328376900340267842303481932066702555930881766009008543059776894147523692441885119929567268549283605026707490284074897117868781097803927431156062710877855063463073801358469685097659533976724613233694962651657287989844198191881910098696572913371454568286221395390694182156440843679790678964727493442920136625735290923781635590611558082862113760184384920132506321151831819836803162571930334269740691281202713942408049148750666470830913935132564811996762056857559170280982014045856686637402964071576717817424347670976157968311168565668021550500085170549019427417714403101903375866260820852354921249616632056725996703422514561935709532219236676057293043944835340008698267161983719001490186312946001405914570307959244817352136311704533409625163383308880927039203941178569394523688241500604855283085233604464476929631652275337310690546576341592220426794721759203365283593287637579297087235025345121243513105556439607822404136035184126133156521631932457373987766526297982660910220405552725952043752998731179622492643718015655383296619818850508383917087523092816819723831072441532235709581080145759282906142531370174291821936234150367168119483565182914026505682983646064855678004939144535741755401676578963290228209096411095125089804775687506498408820710246931890149128673068819906951578804922296801000875094160162588391472626075481362267508550012176187890709768094316051735560201514572933529030750164146086064950251005089159042921576158728658100932825187853207899723814239283764837500015814739119142201350487506826375863804628847479965157055541996035488742369512079912598836344089577739528254854601609925158005570501853654686528137059756768879541146579046070235156479691209394135107011430792039137947312159003195700409916743918076840544487174173902795687933139963044155144342330729490380225242433686766744023299553073943060157991965799847949754825686057752651026945721930525804486661833963485744619298245995296147390011777619895300802772922557980267324764070704845920887011386917103123768282991040092283282602934158228338530003922815544753697749279784381802169342773597653535754784066912332176664138808520296480685103988009766408321495740647260850657661046570175632592669524163454188047568609173905642528799936927927272921506724626831388589294936146775838009524228823273729589081674061230158417285323703955196393344326540831359675263660194386017062998478261296591056868229214828966696229614646241384463147114120022078765820938530057134687777194842975455648009251636559117850002707418102004263595127808191782253537449636840851398142694789157413976834166139352108968124919268808368451289628602866237360387726524662687337557996646001306066468801230341657386740340506722614549115434561494885691887607818868762790461415133140394450031866914687086827770389851630773430095492241975740876972783579188314646810711618198217924389546263171441697632648734486833542405610381930235395712046250623305881059775973760862847360615393860796186561992247953015846508955701960892119346973413392696271526046242985423977941903692903545810997342038167422182899764822554006053713438690953998315938300008692699459035159338094866705223046325354989038315516331708211295791409661606938023270300132377901045202295675055680224473149799999415493574604997414926094979628841985320567320408815446188191073036483841416326812807351991450286596917798550883580346677154233256570086674649912632141824818635427896507988557624650950732415559871188877743054856105098817343898376224930609062491503864441692017588561990779444415117971016981608636909721168869482136179929019898800354056064649163298710657582166303668479227602724693793036920155800058386644325258314966048142987924594532463315550578580452900521973405731426805521710407257660062803996764712141483501128339321643493550804879357599291148353899907766044406610715720672627748007720030090284802239918423582552497714638234102963387803446144057039768413049172301667976386528019458649941064786820773394169308269900049907196017363185960600017569134759535328310774851183732780217182076893404661113347992492324541593190326225927196180205691174042540989500481557365039344280070780364906211248020616644089526643100017424330234525033856120714332476800706814192048562074627142920723710121480433522489858746587098573833928376726429003036782558132658848715233908375302586058178711258884978452596557730088805891171024204666147213636724569928886354178851722968672400619432561293235335096235206386621614351476142921714053560508426835170649874420535103367499067343255409044518144634567974857985953123071597569332689323908813880347185496368531821564077586988506280291845410428712702692055408884054284688819894126232264782977819783481334259773991090665369272822034650981127331665311135075923512903486958260276118701434131771892813028631908535613708383349549615413695809483408084042724614625950182314578807693694776946453762563957511656286490986112725872900542163148584178099761358182438016063495388988192057397656575718732076018740969934708218644570808725043617871940549753853723778754250304765788713843698457840631954175135459803939037058452726900023450987290772562882193961061651528314865925618190781272330167879002947138754308702411054824333594415958035812314501681290987444396803902294650776498636594635688446262081690033367553561192207244334221303214414513071730762320011592226854881291917521845508108868528575237471118036310898509940146433342722594701567012179429911015495117979830899698363664127584080408807444867669429194052174423360563305685118501288308005705961598356191126094771368797456978607402793784900151076377171716558212414738928940794938495890591890720523610390575819394648730908621124619616700149296023981301075842830175391433441630370464227823411476978128564972927741409450970439794548860656933117734500842360753722566522086085041565588233374153626221369757602238440276593471356586205726517089947989667172619750188638581517604126018177270299014632521103719125593306945151419173184777906259709818958796808567209439541127613491805952658952759532778451473682366519888180138963755374244932046448953409707446877325146916417886074480292563104254867264016520450583073634086073707128943990796412718290906986845285952417781952063443726416231165971594122100983636261463840463990598975948484437300323816214442551144560884760833663360737942925272716578395990816728056532782107575714509664940894345526597902250206932480671125503272644662061063286079830849502689368215175043948248267556620946683934004213002005325316839012739045296155547130138122409145358511149468034630736038273044485979137254137237405831592221174016653189408849415878657368407108112544589439108373908283526051028693689050355846204096371497324790304618560267024948628166771988158486250480590365426836713140203996220146994865918709160782296173085678619273510320143977533385507043414629167053065076233869450568102459098305971640895044381059870668417688513932886148114157014203922032937554309938786849834186617287842259577794674576735458808681344611402197664507043550340563968381781767961500082771610374414771856105970275082041166621772784534504587932271501304535145789319653285256417790145272528502254369184847898866339521082240633359813418623756017871631589073166140908406295731655129708326982317504432406414350917577797408512080465685033231834366147275847931210625980921522382098059081220747666016733810764250802346576989646276325086377119435903704364435922041092811201661821243018477915771683188771375977549416463393526592190969473919245771721955197258710432747249913054016827394781683669174020041504983847874731688513431519259014926028805481147814288707905962630932551955423375486535341674675131959807508551550344877851979891858148794005455509395685341754742144866832723259837443616276494494902842769626725346924969224849240809138096924587087230148310498938856805595273993281066145166749263627354831714260797907692087760201258490819816591557639539666798893142421750124984269899582673637779230971795099672866309852796323605683256357923630561202660474744962242229145932509377873715027660413216132772765108944072930694642173440527551400212127753187762101348398653874049093375053179833155057950939599427818784489812323130040960004605357635943688193900896322126910122980304602214818973188285931330225450398935586524974189098503102518889045549998784407409022180419120530555787576707336083580901265639317846486732534371584939054448724893045344722256637064499685263277925098808851143031568481207807792177885101761256233277757485333398569059568822187486029578646050934334182824886288695200788461498246168065438681105627870892973640413959899807614599566541783465883225260371836493254071778485784064442023609042694622087807592466185249878250489781208275612703813168285438097046523562410065300510585393547171648204594491377591992421264729668483502863786248575147037275587184652692410573219887263360867184743138640760213474277026293222421312683368885111982202807715454833491390658273497403694014374554951728691085201087297199318145333418434686405929744771666223872031947713813766765408148722244917810966206086044747636008385483158181165605250631332875502653779874156111541236319993370864388287312715283417070013986722671902170249564111121273088080524568824531494650533677965999306392969747790889348585133099808898891239413033236699426846865418454128790987772332561735142405768324017134083691793291993171265468149856791495722662189313903862260013921576529877912550974569742637191885271711250969510797121114287593079952422578859196034827156207127366728019381813510024433061491815418472292090444994027705424044678999189773544597433784590116788353976921231458098277380975583217403404043959898130175499114648088954567999094983631273048194336167316439078537961747687925181528600578949798703090699867321534902492836927710240592997584094053601396101219682141524043605356980359458242980132825007617101848158077283919213439339820252584488231222723470448270429762770696753467086744228398555864206442440278739721118541417320234021355253739034399714565407932113791633542827285366960513589326653051303191544913792427484063416630549202702903866925644823059659829197202340213744669301596349340735729242149581491307150228782511958269568307078603295107230009590577311980549724881537743133386544683698842349767588144217192658218326590347140671878866336183240743842997715150873097232794581685791652324330905713330202963477443330012992176556895867133885763319733410092726706929838347773140823941579086618421135616320404080149011693268337981428308471335206605248973496883199933485586360258110958338357525281189146776909135506672999264010686636864642426515173363391130898829863416329340584205328775657974114471720003655533711436239364516132021855016888807192286071672852544075119773973149852277197979918378598680222328866297541091922778458960421367008762316281694267415478459503499661290137446403370106977298542839766164391061210804723764369509074567244953803100954911600452299764158365229349013872787830936238203011325174727147007141291682107052707575247644621602581998060174666406977164860392010103575408129979796806930995845678350746918623071614711489326693972783651537377988422951074222873516058245531616250960758705732570121240888970225087906178206702057552653597802930529469322627012157303027738357853660535701836017429455962230436210704002522711558334392796024015652515829055230287010153811063252710593413462566089741167994480834304454076765343375052493705393173367318791999244691689973076713150385977698071994514196614395638971036995383338743630922757966101416233980226569067414959536939905449196796564539096630697261423738063411086937432961810905814695402700176040253614693666806421856729182677850398122667183486667992714057161198302369073835536843595006967119759465387789443217179391892529068035216835009296638613748480341608595727105169871535292367669818740752457115070589450683837007670311361625250998062723498167656285794127426588532024055342175031506285017969345314838579594808051423958809691201459673214526603409296472170672994213822959200296774346680560460496345287665261004037591074523327364408783228310710491994587913382490727367026640904952695677609268887509995777954960209850119314862799546246709251047424006766010891768535742535712578407505828471308183111795720447738831844541030453953299449493642219140636273050595136967972227728653887592324355425406600203257474064129722398159427050344826473948991932780812572434289493422349675425186509094933725364855202328233426591824362070074002639462505503329704804220654715241459675255800022323857632515263900071384399634848720453958120140417693606529461426622747993448369358148887955417813732915203341247335985376166840064660489784587622638335611800657930469119338176627736860297987974396409845561810109399471913014514910337404409431598481040848376099822156950757394231002122137443993088223561285978845023072734415565137868365539006175172101504349901684332885273715355150086674815769075893778689243238419727886999081817076292866039727460106324495982163224918819038717748040870431048326101364294764742360377755424633943086825930001158258345326195456635333893980108923303246274153923886837997846209879570232601754686241120414898891370716191472950692670157955775554848669003403176886697877898724388269894047261598877001187228914814193192334577270871986697528617476331011452717331689661700247793938272391072084404460823862223606377566976048310757743993171577304024042926353776146687807726156702567935489603622086957892666868414134727050632394583754493990726055776423898977700631703596128051694005151410616694825380117664893846597939330585254722080891274418356493219103725863518922749299503510330813607687867545605343127263760247745238286309999322898921622315156469153844222902700995747174505664569902916191163740828066192145666378840822970042519977682521557788799327429553823084988135106208426889369842236975928465101406646885023426547320307476949531969213267120608287962571974365361527400147796810589747683570843636150038450362636862249653937089232175551961444795277274255026385923638368763959631697261985107920538698217177255416077966564505257217494338116503266466039613131000489595676482396310725309645021941788884201599953301529494401724644638603172580467627857906417241251312829383445509895727889680777763284779441623243726301817279498736893226668128709754796973019244470582768115268834285946418721484798803898256647624588721696049344923791991603792739992970071815932342844635098379236378227877438363425702096953579135134936375964614161128514255717459833940742436746050469794425152540378628802403040454559583308874799559682907114949078281073583751772413686679837936806732749636473031954468408452544455230948715813439844776903540962314179759319612568001449351661655501563453774783673964489456032813040622767952540995219522249301647525126091890112366187222897023844454466302874844496030649914203256799858636857027562672230094460307410979023328228686254897624371799092165055363676023563951131518890224210105259597485508501722907733225249683416861935057010702127491212599562690333387769004886286092762333173174628114282838721164148587568733000005463993886063399092596430691327777915057246790995921932471095223671419487587934143682418036889372068623485708699577146756249522309113616216598419257604913375966435457105862714642321566385981790946063176547192582530409728943947076302147867298882091421774675927619025714676491581395841589593674929482100045911551399483023583841255674420741590262541432422493415874797620152390272224055571869527838127258135194270567486876339569264572120387475763857312064614084295993249206217386472851789221949796986265241704263202681423537948672157936392555480204785624324188672519279667611125666628701714520103222598031099206010729016062060862305652690503510936574457889808629975930535148038369306294599694548960018459390410588060821828978273878919948607790793107569203657410349983717921834587401950114481731853014337720621580121001439844455308080639520789266328017521831210297328873049987971431750462618616270708371827666077461923584659723711737713537890824557097467633940649595199070500415570904794261826154200856242521344819487825148565564330000651375707741680837810903692133461931324392581270465405352660250507409268544583839583635623008522128518482658119891044817358891571718546112466032815009040201920968957903624616955191408987343758536718071876708662872670117102246180394163762598283628259112411901141330779523974165775255998161707185010817068993968318252210408579592558780036643579135759408051262242099143710502138311657161694926559391317503491656729366950407130940156214668103182583923034784930185613010124139014393081074350665894168854507888318027909647592303264952079816547813017761145325846365720471837351286769716041382411469023156976855603308207949986236169326168336611404237722489406847615487681099001982854272283700297871828664633424896003273171855081035633949678364474635887596600448241939979513628234924318793131705531612264841926597083376811685233725657398580660802697418992204512330784214060972350150462995914118513868127237883137617059286024297826362426780023223045392890045955357423261513731643301583548391334438286501066000301222901491479658800010255041582574396747471377924031344792317511688422079048758705261299491070071750169464051256110986732072400845444934521176908766080263135194172267909623862098463401135417749747483371707737941748947380460433141702280784752198605486137891889147145654986690001571692398236651592871752894895437651530105426395179455887307358459767342708497051597715758073532478198905928392850380021213783370814010331401050853908781998399201627261856537021676623726425696210156663449299910509047045299800873767025274248283193890568996295307053026308323094575178160379948827313430485600427267404620163545512472268213150767417453867954549128377971108366497338580496219797422803292054478042636700912065272458564113444531566640909301546131123912592804054468248665397918053421758984343459902918439193908637305001147166562470381213189823847441926577540832831339567886891069875683476278208317590211336115146078289958830067282936439172835930586244333968859045903287324296739925952655154787682122010922678383205818634552779863801144309153418824328968400431062659025667465116003277222938569375780831540414941362955543384483402628319095786276895533485153246944885714039781843560914004984956479961680729617735996179897935991611890433179601020328466047034186135431717232107489636524732579090835904455805955734465308709950383471179492898307225719944848556365566898777706043499173067093287554233167660290421250554028800820599137874860944543824734486238060665867544174799758267529700739442955088615731352327623032358325289102045806239104134703417483601833862443963227934052665758615021871397484048462047233405309030221643919822290851394909462825499094055291594462241666788584727754086204722162402850034184465815660177476207833941423591219257780730626566861957028605202495928939072654844643316243340897606290979235905494384118249262133773393699924059922520621369813692195803983385879240245040199014157619019657328689216164395313831942070045563241295010333419253456906348199823461913713117264670506605212189956186015254791262703204076015572605221982330860955803013608179419404758607034817510478337502237258784882313147132841460824541233350652615498780248678490601650732143985829636247724734117705717284795347787107736074493450032549273003678731916738633761213838141444563345319963651042607035112044041670992442227557501934483246550994539268262713127287223194983805545415587970780693776538944259314347107066495564112567863494197168479354256763950393803114083479642361725287115547044963855238589926366226185219444269814017501007205490734354208191331744743591233806448253110243065577567732193880393584443444206288020362530914342705336564418926345696978145632168756017449043110733771450010917536414328813054280276234729110035182899831058547946688876571814673978136968414223670881508068578097662127471773547344738365994382754510763056724899784144770934745717511875543643678271282633547693815766413642503797536880409187861587135919994809702740450998411376693670851395374983028616570193873685847535843865241737023420790411537545506479788818351912906596266200711322078357149360651155563295017617497934826658739560733649318612163146148123431695038797383200401244728374298641716669418770666931861163100180519632446091116412749572770595240790053042803630307973952994925084196443955247552180369208857462209692724146898705992089741037231164117078183043460508049741305862903029024121374573618062020753438679584462487694707330007577955725023358962916162268307036026670956558166234025246673303211045508401997259759429770017819000803399053350444232375069532648158580580713496348888802441041973467794263559491614493321578103733637384026511509251353847062210933425215339423373078697305378259015799350916240031199243169826581266834712459096373224438913911447882233578205075024836582326795811952688526435092624885270658633958827411811679719485857978694127853446745074173887146975490232168885159385329859043229446289349475018173103813985981545209181912389811727337760763650992171942525565086267292262788036716246774374970867556760538410686321873966341877180902477627969200346840738859924291672082492931870732549470642170210736885523525264829316014889928049127741460467218711234700344302026293442880234881833768337313508895169219771101439753186755193879386257076942410619515124871508612579099235321191219048177270994546558301818014556305729165636521425271210856623264994174451784910439630912435465147986127573798023402845587066450944411793895975169635619802506386433808681164516107253000698256762861015560016571563316212397441901118365471575683539988264346503780640712873062454133625413347404331058763021613797333098147158887107796629840213040975989357068179963590843409080343085906238628576138693412125845105963999312725005402427926736010825135387526265397296509364028886545258263385839332179424592973647790768293527329687664382897692682821068832882701123117373386761429099812338764993245830492019626633330917302478871210623737236169924261650046573719055400745245131289460711516153354647042295580085044498649544523048435202794200211267227796614616120754957846987931295028083926537829554425013383147889412749719294502723946301194370418902590456675256624889327665795393856445905636751322711131431744823392978156422391364101739334401988763513429516881227226577688228418499943835777695546345755334976698418024081734124061996097774504159002816686334095480959279358450236462525960378504411221864779164842654043440721754897367450664622284770545202628724911364871099537717256205283185406325109778379880057078712013037454574663046407507665738498339444546000447268783871704625335465778386908662572991826885738500844519588392534343452591365555711966727071772773675664525798854114940851405497681070388612379040384229211854555681336430015061035282180280146607248772031317827235711731731752591294448773692319475587781656206502646460125991748088617862715496679639061424183979955334286211961289208635452357499010024991815165720574593836669865249925881825748660397628061185847887749017157821328683649050042523830304797456546536083289896983056821459411551674196410909818462820020397713998079033281008976901381720800416869424646372435636690209564014391251180895002107890618683347037221728100425623343556436706559332001654598544936328357868496901958925494781828510202353935174039720957462866037031017673343684935093192554592902387350377385314331757291252553245473103777855550914526312290205008820888071674513642961746013882659374595604021337486742997215090968086607251492755339162040429829979865437657902514279301054212455429362492841022689471569469975145194884519072927904373849855031538838872777308425800664116196526253585945039401476339410094412649646475031645027635844440130495787366903606010763165065974996208798713840300133969785265070518474657828888113216298293213587850947260694181813073950140171538570371019661732559073682712179660829323923860830216865389389852501788887744179425103445648645677345458998425892796335944136061434058624957920985515867930345349451571724279091616744855949482692258313866529227976521876502355635415397828156366589720625733487117895641151702650028083396129047265072317119261437164671838006563323784220442911227038894866180603705103840425898252176094747801118817810238903175263967755250484077210270779294200662236941568082428593157841381983282286414021305008994669882613879102800027599391145324715158685302733555660607140406003467985856977115623061688316391178800112629586938984295554467268410040646597908323960393254100022477633230318069456649169810427380728419906094601747534783589211810595909584881543601612371558673489115941622409970265968763566544088458884302766016739383712088115702808377395271440781059636044130391182204506584009338935540851134521286153851645824089601914254232493284975355640667559387145510770463594762881765510764687550206742044956204407059528756381352329238329668335461497809430724562320993951347734888117243654391783296351144001828720471797908587482622949857196404089767066224660749472635807950537119030092413417374542739932483551765876729307201115637719123925098378970626404933227426113810210086558280199251034400309233090096126743938046928596211901492310605265681772076772599345704189733136218325036607663124652363786501033076119272645445779622309510978917975819136099960343656404027688628557654821743547264563459565293412875112959637333351499788175118689850574733557033559534456348531107748763250745275747205712852340429175996268227898063378289081127950331871021654530296188833448667440668837083925488066005160643912805024710860697485126991017353715883925184042125396831210539523689683742457491848183912517668463123601352900690171286538599811601031658114329639233513042076091787944371304441919656919519649263309177379287518875341432717333718070399570156011766365749164152218245327591717305702303629727274733408389160515835950611563626348388224854758902033863561340841906665334554501885955404045043403720195754620871107482779081747160198868318895437219083701607059791774500031282202149057914384046938952966638619481690683864866393986992021018851580185520024702430598672409552293379966426029714269793888218999407778165386529569187341753932807028534112212910342306532375744982238498557829421406559246856620530588591048598035518507703766799141705253916004049002109374552729596870811939622498181605749987989982245216211693460844603643881597429059460696329109349665006607136447880255124347648767211742922301909431388276825945781596833528272559446897730187877206421783642303397403870277973776570651772300080160506571616935089122648915816432805187000867581924259869772649692298661380282276058546783147099745199395494773700009460035268305370678435455223762967827991551702308083402614333349900062598520762483168225738315183228999062981439647285092586216065699053608280035483625066762575421727331322311029902652399285180057835314898567692685833424414335871503640472406851512092946018721954562124522812971488372990540629689925378282285857818622812811922631627931928088113965125006680120278798617001724415710411328878032052959990335463981415303685805988554342500250890847930165742002802327060918428165952874987271458018237306356165964057289815362134391079670179847588844976229711336466567548047739910869878755338807046048882634324187575945464737677582303182796698784641530364639325840723866108021170691877764456442882080549481294753707216898374904644788874917484302322771662628487388549059389083442230571510592558288527457078407611603730287636331048695775147988161769537924189425446713916052460151862848030181662199473105344680697885503054262945600130111316025951481337033144124151910015467574131601700620881460342534766501130238075279389950496390313217996208371617203872488464276516202063642417445747607388131747947348233253868450634834847329361460711820339520949732778673674805963680932257874272372204049905819480130658623701532738294325397210620743759896075196154601705818947338488357556094793309247519668494651694033235095782681961999695486988619684010805950092105186520462980965048826422165514357971941715339248846382986345463932563838615088618115777116546345473844700034148096600644947335282817712582466898310250431749789697198539797426179337517563579649972494762436626861084836609089169834316565874256128326063699197804801648652440273585758310437901567813364090143314610319367591350433264520002557223780719106244368088715350720782780819542189095649701221146206037934015093383490514903716871610870338960382905182155072237382606146913527188551158028192212965723626750137255842063350630617480923533449822718351363743611682375045825341006167162820475990577176601723189307126108147714279401553791044989967535902139868068735761621470098266200145835169682976402937788130297299862981789569856211309128836957755194004328890974963908986311177862006425941303987571109703548511570021434313237306843006941128487242287421830332967367635470129496732985348579406390742078534949938087750102484172999614109063503803294836549304087287440832936991884624359005072444262752353677661022959962105911819569159483291328182356912374264133606478604569577255996134982500866728062549008508026939500640915058111185490977778037467232395474816826112910704611564847474903950455384444240373021891136723968197138887953953609704539231786219743842725108806136266166035899961195097320544774216843763106990639153890089128088536011941504076428062517904098225775231656981400609678939267325674316936362926034627858263966414535128914638269486060144401739243482404735220214968005204981370719878333146522346812389651244046792608209541552286146095580357853554851256731958289515471548268590199259406587689886867253404779512461937868462060749650244366196998391564258518928127517221134684444747183665186813628477252353927779691885757612145819481919076032753645219368742381172272751945967623469101810950674655216581075624725737904765546503910062433885538606857487139643757048549198352791792844781599971160129611157163832988141774623527553751265877192190661415034943399924501011622985642877502524797458204967894493499478996502282780626804936586683763454297037929929537138910845475682475190822248434906532365522279208373832639233459833522926673906406707646679400292996378131635045778462615252873404669362608475564248191828429868359836056897323996639077416225653948983511526525288750728266116014949043887684777665744466908355124850766450052025076259953135209042004414766513538307293555157776536665798400461441748539512533246858529062086483441370276548514290052499133341231971200640054575090992007478717045698775512539634436874751843022991757778885541673542966947107232489159838970179039770205941097706940222484264425640750265856280403494159028342317720886310855156306894968643541512303016195134619599233188144400032481242431369735522415446794099572392054631216969621391027573825797105817819066866466451276626126960412908513969229150713940310631234773301433802259352203387749479473896957459060331300351390099363681656958830467238177759054348434556485842609496161438096765074028277380330126930277044091227660315911899239074524236329761399240151261542909920463469980681117299471169196429667660625092221210965149560257604658050860633116031642693096429445252042225091562626589232836372729235743712119258606393954496328948852831184211221175806484269003123968456000311734231692117276954395968804509919809086452529010227272254133446568056385578132984300891193541493254636963681413920006181553149087393916260932620881064909954764079160132911130117757078446881860019380982129571623587731727891153979602892459393217370921648011068070360656999831942851448063520435321581389536831430447897098301341640698265948357479874336471729266217583344318810190275967163597422074519904332402377941972346294738504208311527693155505094359638852910723302008448824469413443343032794407980622151109242702875940046513499560117680416277072507895768190390569429833555168540376825304911331347478462247406518035124478644361495614874737673725208894483374326948511179912578171951140276427145170113029174716918786617430977199477800831096623549381400158574207830304854773399352509098945423909555865502190341873632384339303635177449351782543926165916361147189075082581084687300324432588400200676119040630792645652164736547125343980514088694557918960894468209672403853546716210238253708750889081471138273488718653614468821174764673433406529592804606952480623509011959511599061621916561465899950448571260482515843081324756064896942537485603860806103156286374404265919599735667232494643070785899763555136997448157979630367594358265797606591302427812184626507316443714949544886091563297484058474145015393396294091353691980324729572024706249530127669859933946593634925658389504930706992212069661383011986651767393946306762241536539737169853404785643402504280859276605930383938396352826135592221842902642522291454622332033220720775738295127227195719739660916101848840854382393756313726968441910420801225810543205779738775858025897917815107765724130048180869444575835521634933762386806041694546841529243990622299757976200155501913806824207065815374076815941691203537668769577416124675836528331717092428375218843624702731854295669540740986251853110275925395934415168341012680954768359246181899313418059974409813906690010555850243515750222724173595843452872573280254114599442101453181951863264804686605693733275093865353080130644570132959546253416785957249452621362536964942426511273410682151680160714567962014575735583660866452062538698503999058780130628775011153938497393205153980774016300094318923700437434702753472175299946024996676901688088235570767327605740114686552212542124787241613759239418881714754149897771528011302482963037391064758370196677982072714814077659778316879412305542630035739320645546657258374218041532200005535314654700325056782819730313360500826614939451224580080394371868220309128168031570538489442449379442156706590146415030315483715485911747720828910209554590331963393985379074761114983523148129707072742760993632591837899140442546195588904797040384385381688912026297253794049432286775182720751023056837284973042787812097731463282182626021282058239656837424366992892742993432719082032663559703105039515991241369497217117619043385448929640656778438630564520411212946282523286319599524938824125867603332896718453719872527394569418673043854498272460530707147491531959159887997422818525123872268638204439327661460703161639600168397925111245261989580942359765324419495792250779552099462761509624757762611185069379424501929226641512682254178313429298593005248315002357499866109993398721213283509223560359842958960138846290973342876292137900436578349215731013055697096947829769674829259826806084076518609659457595194830701343266023920442205717759066172147780242773453007181541541873789252710545385054311325148629621456590734395647917917515048912650665511523888182296698854239875168504084244586609812652462185894699094250631694735537056272797791087645911321889789170020914705041271893114858261673388956664776465064494584145641816240382647851442547209241584848762367924627312910571237668546762586866526362001788954598472160228741696548474028875908003770106954537660545072869449434324093215529601478285268040301674487343555461888234437971287256775062214161560417611629753658890367753682259253575711201118211734766600250138076411023511752781145830369846122039459157875039966719886564912491586581706970125534479695464609365088969437464711367225015603792601167617362764181662308217717901907208184855124398016581235619342722437322872497880928331063876369197141669304147610290551442210961920321797281601898893461304723152310036076167196024977406717888548693252130362096154828431758860659677255752312943333614218364845568288260981134217359585469360144777273050810062069153886176251519899956192286913192338618091491866262717013364071907346147725251482266170493487768852628360587788870638399600892156501959129663419110468912380980142191489072498557070587788744583189320106886631274892574726492618170419531631454085415861181686494678679426155692279780868752151795987385913122806468793762660883761954720798833521278878296008317254936980865783313125082954811414664632988392089291411222788042449233503621347844144047964475869293461990155770573836379108075259072842231307224937857394476820339471681970847495980004071703159051440188455737622489743636775352239426271327634219383337279143124804655821939418048798563418941267061981722389455075691981512293140447013231216935946837442021275419551563956226133213199850384883302530444714849480452995105155992030682097274165624556466855956357079169701324352653054927756507688308326746094983528506112104445430249682540171446017151361490732821279998300283458877867949624102932633947771470394663690977552153244525400237818633216471066503626358338024640340847776842120056495207275124114610466618346127101290171400197348762967964203727916590288963478786339970415463364063348169706107240799356775024319752671573096249785543730378227655003692047555151935442033059257553192708981913952435013907282217696248452438278416045495555358848973788157218370181660473795736132677242307052047767814805116437129989383638397501364295337327416153152325713386519897969414160039265631840316050175645144563187884917264479360558270053330950450241222617712897268225194125788389536169846537463463042304611093480881464954992395355749358958702243891077207597390443434614934999337520544625691596316661401634153143644679333515651217915589933480641002825490023055964801692997787771813602045067404785218128925184730858551683361364775188868673773590517503616665142817042860331027135026489332787425663771422158705739641982929635424626330681423976094133724672143529672817121921377850226577476163917666084932449708447955359074272194163758872453531957816467475009687232800533731025488630957566982890176303310316531708296850790616728479344813698185909165969538784171655462512695541971279481291158199785417762370503064064957949863271954393946323904690483224260359803150174144937216930319866422582424921319154761082692484034035322192758167053193332864053398222788550228278793066582300996238876946418937619421356776302936842417888254156460308005695916478316191274925348071198970666327455881223702866545831276468308785575222852342257118576518718297873537015765196315926377226086167227917325401708417194651101151148382130094131985670460371009753435068522600952634024831797278569941247872616259103011010332586395371035686067424565312535409479161706667679874957722790971228623433796910724991941399112782314514978867343705277000867356271224309931789173355755466492140556300316845873714944178380371518359135887779663629007970167310594500402306346949001455824403913223609983602168280096533803775127642339440702107118643921226494481256014835135572237436081769011742184233569041565089211655138218555737891947952492372743852817159994234910744060230687604971819742716010109250942601873064538954797541351095119510326535690892955072158427010697142407572412361114399818285158900251532920066759592585675972769372733425529133455997418453635653135669069149843992807825990025108915229171768016314488076545048148204977264308049929888520995062019228860772236918834372465252487833104727440230873482827188286891038108747396646331291159517903838155175606879482634045579293696201061676652172883067419931728392666887263908172020383100166368729396908854913431450607991074668510631707837499131360042145687718381868282400800833035975044972816101142890920068168648183830726555400619589707371908392329721023025750763829836838839422420491423124942610132423187626499625711628026497898597783494288509129925638556024408521114653835520163965416198136202943810894496850230631734230464241541622070277188486868094593393884592167441051703359310743847850621778612589414826148390295569947724064376842270223924470882995433212931001271620459849575436880027970562192004864514516250785239974260654737496596211004593736043352916919248315616974997084873975827661518949373741249249475850288357117762622473279989939730918272642338964621580390771073391402052700183597775413610975308821301951846765330001803526734424266434625411322144190124211031579459392493117292935014445303284936955515709917701247472171959310840243471263372029405342891035540427348478823858027075230160180984251627468391799175104364105795095846357018252410348670966302059345674313846980259916467405520982978956440781894821173844195113307711831795973834511355450043066119449392088638473972439761801427171144118568850857840345038515822761756120323259035528390969573153022940082276585150252553642563604769310517768972671531560900972117937438391961578891291339051522295516165920607520202237912950482327205474851646597254842403303552372714247088396760020603067699072117038248998988948987966358916526939222278235161041178143206025845595814993877992685580350619408901951500686930314348043390050941567486899498300780090816457772319643803401116365574758122334499819410767970634763335070392543596782595846320545704846071360387997400620797293241083067843033519776420442056009218733065095534672847341390059540155662745059328033206643987053666665458029572877669873408676432867907979584043219821606038084463747963372542318454124797694829162492278073447170162924598807015220250595980364069115776992572153877356329726575173960719691552024824304551475369334902593305618059418645899465554496825658787969393881689777241671955274258261472895089236251181842782474736604292621688905736964689059023835673693299549855912198827322579262848312310891153440795289733971927549328833333037274005460674230381131384001073681149051286193953045964653217139117427857608486449783831457991577619777963055420076484828155962272974661560725324416309745529227061442531966754470326158572032745524550465346452533511958231649828346924719308652899192582871541238408774695330687752282900729660728916633087885996886622779101035155043078113516113782861893794523615747142573233759347365690968291623252797506243821055223011905425327008493917854431634051246172452881176258097324034475335346951145599209233114110879016802073010864208513287646414430797908716593025389317223150690240295797297176055643797942801752964457738532489668327711924663848497103660655105583124957718729014001149737583859835946741032219235974811782897845679614515768193250928280544825007718093065285126493439539856293531642220420370266870520454520829162322641773163813197417833860105376071315732381805100898796489356335741863364456610925734631169587699443315639755882426362108181550314001576233081697844142509278593546966003224055735996563544556115628396520189778678977586750731823120074610064159287450860302740352188692457059052732197279125029423592770139226729304562607075589832374847601929386761329593509347878330381433357599956725279877237531306830829227746261383360693458563947035638221835205569094091530377053112973136026947880545056428598870219895027722445012065862225555254809127035167986910821097301127738667198071233801736682928301646486566412048834013372368265804523697381058765398873958116616082972791612992530529240724933783683977340764503210128201844308495063879053033557132645269140558820779201357265670277501495438379130364582937163178463128646464650480456651574430437086200723754538950864802434079997151549087218201877537742856227627221734062146565443583397156179613630011887637237573970913260666843573512431369201838682722211499940559309604188952395273378990640911052855980863190381699251480210960560114600006187586938639269991262130763228130865349082288728924253747505048395232153578927659457146554201181443560953019407889304211708541794205216355417143058526161712378346232011280297354575683318758154727822526544304162674160167599845485079317097915588800054429455734227812060579097495444736073695823004678015108324501277243362001742414644558245658778204144473694594072185688015939651868277456688476232753567213587771144420293373766224050135168490764241146987996115228956271906703173758820439711509922918407000239101140514888873570715431807153664453376886780145880578403711839876410685663778351332008316733391653413821631860702608715645619549019680646807717507844158494428206196512848290370315281865530285458921592738420932297463728545596724324063465910193868813691819817083998402152594541292944745476089184386800522694714375279250884799235082173099153193213741185744547377033462302249216170229742870127064475360529723603020720795651600195687117813848429290510265906679000876642824384037745279308223456709962291751022238921206089888574488280821407216444345243669730429508075137578356227696062531366965659335631605565051129496320746720842010985646362266912091799246742758960111656459550956904887251023017023192030782992771124153495195601123824991822005800996774753292590670332072864773165788563992955697910801676189589631311492061662908871830538183991697607996853850032660239191705716775329007465307965400856813201697540374388737079468212653623347544735778937799322092853434179798125258765935446699410395999192280779453997798145894794557638687010009623344829957492123806305005227130961388557760694492192445778183910205031560417927354800151463539054745159512229912760225931756644415991832613433427538545637645120704924965178897475697976367080241939934530432062862113140065673826585534674562371264767162468192284456722627500767197884958738689594770701783318668089382142820269491083601394512195553941762963897806065419903708004384920543443437413935664421511251701639256989520072053653879050219570821420314155592434776882814396854931683333895433610625851677076959028264023050910436135868185799709300724576763682137362354878052458116926825022940411215823266525617220856520284049585182660045914731606821246726216716555550078878555295522567678267459826315712051602982928859924847568432065431979745402186408911235986961057820381069621552841729280088992981926955384852584880246146676255903146193691514110856225139721876052341440814908393716361959400377596688231197188355986394944031502074071218888697349229783915197961949709236452178346369456182964387664284586596578247474819512424864422162901815109598024369031110670582775416189028487689726984135091919845015063148200790185767352918002005740200436481211226841860896690205760961100576518005919620031292179497718543455027355887552211470788646955996780821454199828674134587286427422202442457027436808795699853338476227049407961288144738391441151501448097024842268510431703596174478218292727955607367700514057270291401333488574143399834805472304999098266040175670130365603105903369810466369919605076781178805556773731898152044068964295569574084495689914343791524224596029233867248752667614256031219312598142622615553642814532200080014533772983101538594789133604809503698085532270505591723432756476826119778135253228112048903515946745078189462344245363865113166286099193733242751825142249037629538718573383754880152746531426030554316210344005698772320791084901493806016685359836156790170724709945987412076825464378552547779396133081279355677478226756672539841510104187242432438665128122248760745356011986584039054716283083331611676642337674992433998991935976063712416890715290238602343817931757741528709840912204603461111913666079854789666907712213667995188153309191229833252847111948280534110031044685771954295826515486214642622220020366496540623201457422137072128979305372099619449573525635835778592299611465222374700974816269804561622725135489798872683298254149701552737604911425682805078225772720212524988693588576645626909869208982411528874884643390269139790565125678118074661958190553198814707247393431293474293405687783375688972698256256731052936511720224228352886044963776212470939024643971989257263114031697337045138223489698295089906505893546239564400684171087955366853716047810197566006586159890695642228836922010669665655582902634818900483360513940939710609404706305375200505018465103488894043617049340257136579935426652798852072649131576475003658952524039237217109826296564827062060588507111095272627783415720140573014739620953379466317164903838164362127701690535438546233454229359389723651792247049507987840500193914112528027892523289987108804670394636405485006618772383551273091714391241351930839296148159233466355720576982402532842007622092158356225888196657259752247202621408660127395856269621703528367768596074982381147795737656815979953730425702434674463135451665573019472537401239574545434020379662339048368085213425783031392577712928894281299583888939501418835463840128236232834834138641316511318469213318119785660659570731953052479062154582163570578765003138672033504575802947553307025565598992994459743614712635455576953456233559393810682549661440895550191144211878976113892623988996287711863994725640934138990673270108282944753054676512881242507742864131176127375162219426652866481276205953831130494131093194546043571075572593547447298087520733304916319646434186175166428043045166624536433757719008276329474746258050478621560604476701363963286489888998700459417531723680753774329151049863501984294454280925847501831728942128374639651371070163845339151642331771844753327712690087242168747813488621978667487785530960310195221408157826493549120283696125932986691137996823627269796245335701516051529664182729360254877898649868045469078619758113064561002014127600379355643910816017645180030618222801407064719758126018627940956196103384154272813015208174441327002537663112013762299637809144524695258039937064502272041552362269648362746297407044037700657372862376188026589087300202301298251553479739277296839774572855099431304947442251546332253748163409514922597047556738457244113892118257605757870386791731052805836588276637133816449675034276149459347790038697754468421710352269781249720776990138347926461328987270626909819613489842261793070548592061728554158978312509098267669519124346980048533879447760701297070923400938192521299751000615288528537457377540248421713061429335729685723894640414085695030494424673459176857364470796395657770354362828671605707426733826256077656311584140646420948142714911690996235677175355076264443650261803319351892459982214287386610213902182606256205514660585806969803102780561137451162483445254340549663208482561540601137545477226559039214968266464677408247271741427523130786420518198358561173646440775359220692262704785319772334911229588508147972329860035627770367487811927671547695771661666470344337679982618652014719463942575606133085977019302382355493629261948921837177335742790473048329952358781107892005754295076099184343361126708792220149076730264061829223070395495327835351144598687787364366878158958346534277368127988292439018091091557342705186257326775789169320672967760899373520772686241176744035955866400387913527601147674591825105322119397391800417033401146986267017983356305560625031075540879997535561713663032135769406084837439134450215029107576976557524604205235647176416467148568058976640608263665116483036038532064604655190779683360860614827302935279338250833738929265533603003809504728696015707112210991762814080352323463676154948719373117874504452229604909415597569412777084032709163396134158813479934908922927520628464770510357212203811766477852721807680162761442397444395200318610286410113555826263733111249054998001245311183925715801456459748996335898768581034916122734547763008902922884216188022178941840906399761204804453674364465458580012782847580797887244643212529373536075564919185891121858145672312211960341811806214539920224042783394916678540892036671058029090696277035500119307862882394999483927465254798515499183844920207271598202595107987710152855620132799047662040168818578735719938133277372775521635404881758682856346577544904210189174380574708202078082120740845410676970675875925054389506863826779982094608515844955273859592323400979185392539464322639808351058268210950374331061537242729683069745196576099519822978155455454187109320409904338569498902504860881579892290387404539642308041682680599616283824677885908785870737465566999232247134651737641973068887051257782071454949848689160176888257462991761362092549048771063020027212335485979150910570863844471252936338432558996600938278118955220110535322772746736409230650600501888546261042356153621755863418941202970114586357340998580164269278978096609780406685833662939404496758029760604074424451848626773401451469277118917661944526724266662139135112850928112117060618744076345572635307862969567589036387911709449460753902111491069552977184541433466447858964300051140647358537508304214637575508011075748826611526239751588203581751039207667243172889146558048484304951081868465001922432163869167401757460411660008709822165826262117876733918227312021187386697693501448521069240577769111127115461211611082310355962152204550947584079873901215912189301336619190288463056100192082737180771515076580011883705444370857375193102411312447488165145938358031308347967231238041083229599798173573343907459801827502845492140301838097856457673031973393647873435115839516187214239169590868325310395271146084040207042836187310962081635240468035557686422193934713689343045450374826142168548878733151956721256459442871080292660552242038179326674230801194394204589349719364654518305325293352323724653673552796097625054100195559335111287596574215774810464587412781311324577890409019304872207062368037174973647791669124223125292989974169130665347884647569421700839653935011266858084392610013890494603428354782782481768333278588838416183560341415594519282757170271156254993902792550670560917515282052482235892461842955247558848414623929383729965505257351003363460957641226926846192036369806868235492176518980152454687118552087409047235671204806359213017751647716123676024017040096340241882408713189272822682785963198098723119281910949388431543300990194572653453716506870031238059899192257338579686040388698710895446511603277582261559982156914077715443956914665699833462849155715032035378408314399514086735604661863740062862693822705681651720479285242157829099121768356286038656899115753228488316133845547212184300222619700633138260633808575308499265862928599528055555213693764144884597197256185813339809670678226600318333254848847580815564194870212443005161724390814223605939844353085407900108801408508309559051834521476876816129379421911638714290196489794555733579064533125452664110152006897349674808878708242374232060732523971800783836560989369168640509797803750756132241719779319270365253316819063897625210947760594530928138709157887633304521938565552097832163929177964236581009505900105656886621388158817671262526481275455217419443619707269816428222173180837405354798931123966455224981326899792089625122622202403955240310746383859079180726423061987823100827642117141122954763957089706073039975727636105997314946749707844704169822752737683045156980543697888319447818431344243217538419769712152258002402236582931754303136437231372776143149791847343072030920234426732695681161183331947646073331290322231054981045806394932187631944358677121679488877790226572423281747513253402384192335044798820011334177193233965798168126466955068868168572046440683998432945990868676563551837896465557663208066066063030418701394004187080031160475977629575794060326268953449532601922391902945316965310577677404398871409293625520648190881050706308523341612026720527828224154514936544693847568931027505041476635914118148871198322694845407046406231138864220472050783249832773863222469508014531333151013266234080081664208859153230710906190778591144169693146347114384315365087939657504223274088428990930222549200430819718397632395972410766647278500208934911545990849017291569155668223065107606773423311400179966513699293724594407453795249675431707409695019018531031316061986642030972812587794962991743134877313390029509595043957293026976482388317307572233527002787335497693695551113346729781873637632427157608280103197381503807457245250450563827175061077950633537054954406718575197213599034430376181242142078211198861666862729022508718582654736197181463484316400129964353712910167760234133064871394156034000456980795904051022622154742064880488594085813660326564528798342826260048555364226372091073019154353174779616843671495193731480724055837273041689986883275988048576808865155655953433275294124331886812349123720439604914509027877975322079198961904579394833993111001367877376439542534293755537374677570978223192992999450961642532788031348038784023210042501206222204203477978630567626549015121965777102334597963025744217946786058553937278328769553718252528809171868709735171297814000044606490121950858605557701859255728145036338767330413727646103487099727120681036095276838258515280200032820472602266223668764604251893666010083110208222277528424980296292680739001241049079734619300338943510347644942092282351171020476770072696040328583509702875408082285949594385078231874433762976028054592610655858750764403705126919412912436904246361440034668896778913301350018863955432447573093252181857855069195136856505179527980823325735622384470170857162840591488052837910535595327923435315690308267560732360048138745560719561865725090380470168601569793074194521728153418176147427720837352743895365728178164365720713450542868918406534158387614914814752147279642012372020876723382400829346753229174815561874837989775250339971013839973565492040852955853818693647286013162603123266406433600394599710977189317355245890860817311199886548018266451403737773002627955462571216385334013725889361032578921263786954329949460273109765388826743769886685220241107679616865371020780675208332294944009489534906440788294271586329118656813169026744468803846590159271325865613026222452457557271602962349595659426715318737148596938039147533083776812004180253302803417728533170797578249774605299552135993134323893033934742173212181864833755237677844171070743668969726302083518023468985121812151245428140514802247647797835591458925290914816599472846092953320198883631878466834271817630156928638706829663282195497034841389847882700024557886068794572003698153996832882879449656773948950783220293704809877158884070564943842552876986136982497555684693687339485711796444724734974191861441469678109379105722569778486052132190968333454976005171519127592129667126235321966906975787824183794447765659924141111240670075935026219692166090986607481191201499692270536858152775030820300627496433231364843668280895424312937527538868292867856812662136469824478556418030447405032637937596157844962546051439619159362211240430988388326836094161343560271897697659788687341385443380127882139612800665972720436285961136022857231505165096125413286314460433690445160531501603464860301887493807761431827886062063935343718672138147029052451575040572141926036733873666062986595054267889511286315874166571412701108956600288835132624981091533178138140166626133339774633844279466372123091800356796424823187610464446316066067247645119488688379126079857758033846232368636701068944007065938932974087278036216048903388146475266420039123747406758421824372130030565810948991841443959902738956660769004835106490189620005430057908403624741040956969050089697388947137931114004205044397672292672462373820383588255997419344018598471918231062591253552883249177179554272838645444110484645259003467623379551874705437015638324124024097607378281550286739758354322217960354491588534620649265360388014664749509479082918725020963832005226286115926877317620341655621884208814839219987368832355872092252762568363306938893929775323924867960051581033844534842018752042162859535371687182321595382369062824495065890766528168853910142132824900185616315606082629360305190264754264838744920795916729754365828475308891471226859011828734560619342406770499405964051006956621322789633881801931546207660551324956180550945060734690528587070079429496198780748545445383576899317569307749756644499236445497663042793068391930909471666107684070264102005843675981230428788907772378441527043109057180301667353802425142800675575332297408227423612048393064897900827513162743204123989907154216525647078130718618876414912817068492538353011051344312984862539456737081803343603873871237954458302120253306432027685146857301486431280451929852389805443494651188024076701676499827944497974715373570664664739836042963486958241328868379125793920920243157796264523598430337708181709277031888459296315462541075141539565747009772175357968476270501519522051749309087329363980161593794228940208474631003493130540766003497626804218343051260408852668782767539294717950094932014402934421764684739323461109810046606722792897801050167879278058453633594105569304054567064617182341472019785720333050120241483883791908792436955897843964332206937193588799894254377000688438531583424967531814035754791720215965631914747058909242388575268928403616234307714307492404233777684932827021712948499007863476322254069952071179497850565154204398980794570248468161969115213538777155704950371817085124421453526408814822366154598245883086847303564265550781109458088790198318214406333948819946692037510867263251664924497446987716840318785941507518172731537863510985832890185227647441649367779155538186200764927682753160262652608739906787679404059341787394739541900422917721866773475288144219277044893198778769997684416378881786193028957919545542505238088123560059229531705222174489366195700589868253161652856292157531446189965376447828291310718673693894248295185546432822965622760181394835500839573874328716485625352414571951159596039524790123520104953137459461664209348711350012667782935006104913017883631101850112992303481369618970712456404251247371089701733888207182274632493743771468681494223016861226613719343569200908012955514297120205073385878508532943706351128453817391912802677457239802064648668642662286806262982120089472599847536541203455623658677848844215569333366123544124766017512019305734074402939139068359026030260558578711685238293115351556687848397953726518445807848093682062844802639749549392783938399700186625389963676029736116351088469577981439228908904194145938956773519693239624092638021742185160004003337759693531425607327893550415559955631897184200004112749745777250180461505011260593135682689546335182717108627545756859609845999102544707510799786265865731271503721236763102544078729073312223944475754307459564870795637649614281149895340138822085569853507477016883957930292148513770025264241417147033322569479708094279769674916242540419076769269440170568742568461548849636991696412111294562042925254814521126718878964733425742570918849219083834819526087335211832767959389514202224031776742249924722145436455387970807045109479739326346075634051595105330409039495557698547789063241089963854689928696583705723398131716203107324262482210875522719493779570368345547911618904839547518268466228644082105298261528918986260772179667436100531110207848716491501689220111137107864476489944052959217437176863900307038021620878331213728040531348005622080922156709790293671733687193801565795573937615030453962626167352737963341901404473234232807482199588144146581685033040121673113663002568283113738717769284775614355172267537360179557534093749092367046022573743990682035341352974311670230758943752695341649456678255294671876366763775560266063454597560278982207428811589587998979358189670784150739571797148490222074798740143546047793598505879219666258866070581155558964834125031681990997608803353702825528827290531411261042496647444047253257462428378418725883925581862617370792652249450198799737022696797942290580070993536332800865164623954970862766697014831535201582268150398348611508843150891346965583274492174862888090189783185893212301609009646533453372985723868346834484541049252016596866346755481929134755897645218986084038250108516576017815722717116346802879790266428072304273395541978358625709711936252270376654227583217015198981911580810442400764361290435899437042998749256185051755683625225004151785266368039716110200181337856755155299898768086057896078277114570606961903932348318253306937831842485853480238505836705147950401133020046534016342952939355513493109040407000422536695238970840092827198228979930949974037600568388407021140235558438620931312155090091763134091922888166855563971752124903936320071744915508584730859515763960897334408445524720450303034473146692461981888468543689883587884777446336076244034805564715833750879815323504629279003406114949936302131357259482722407611357383503020912237584260085422915907323474853388605751971698425866743361579438409221801096703286077248764952761135520798733226209908484929153110841077739904655505414822527780070535560783958801467533635317905959041412367386301318517246216791156757283957398078652677873595561891019020461448033612180083820747528215394042008738729661233965979049228816538968965277497072559498007769824181084821379066705036658503068119727999871860737479878962643908239137169616886426952783994497973356837994725666258597946685970163557951478594010536050878313831550114541120825129357217539345724567373038871487713238802089437437221561048627193007470572260343007519920576868809990927955576146372352205441633011334600915599367878024826641083349175365035945614358348260926341951258841755479637185024613662076795477394174813506170459038161039618392284156216306691614636665428258894291631927627417470036045255503480398801184186099225187537718625224305350232846272464835185010879867961622740169717809496516437511770149138776502151249986318679943759363817568273523309766128195662272607335050989076074308914405805121785053394622307489103797925761126203655168417566483123115929091519997822724277866491130221871962879104539369992311446392423195066803801532764033307511309059763375788341442824688079943175811407669816164466152269224923505911489422365035916947108232445039952840218025613090310796464346213594169818823761834413878813455177459908153568879906439292724778391719192924111222783747407299481220607976563545680783328222155046532642359631609944862250531099239452417969336102330073191828352202068792311954837141859838231559582363414557717286307166147823426113505533025813419846756030381666323630306853870358571377466335840131842060547178422459985996280017257239774850264633937576854328761699044269409112869523118750555293602371053140664784759499518637747069241545589906230372977031957978242157529364606268990295048982773242585643766801699208882291098572507161050644587876746194350534502250876325111864731741533630213943639824104341551087304652047468866995157654941727270528164961222375299074009088770232147465614678215853628809575412235950661622316797045211376381204234792809714462294878534580132948163515425090198134210483929514297040118639235568988198083251849701242217892027785876113995262922556606255557990432925149442599072301147245193307008713787674350802698235138040416862618120353579756587030287062285391055504116896125799908396628656316033168511242731575564800661463100504733203064942762325357350931587277104464697910119177589537595438017589437178919129059657030004574815472332197854030147676706121783402297840790801626074693066822418184573629604575507415220647737052643929450101446057422530274030329824220334177703404867309276722000356835046349418360872146932312978651570287982247804513689633613596235447020613324204843247151005026261401960809411077559319942779387608652331802611797635841335065859716841447277368843912234678229547050946143757050766894895530913031953360797679014115624343763865473317106079411936244693711947944295542169963019203154626512143624623215788264497816760969748629674320451361896044166084262742237921188571424786063045185288778101481538403498329078193007621578581329995567669061833110871225547063247409128775200575552692991051400402775419661197238289828614403929608506340023580281793290304430738028338631019600009229953014327753561057025017041814203328379128277567042098375026657207890714229954440943411006317042601515879743554407256206850404754943568856278123616616943838866159787992980305879758792779655938544031868512473349254864922529765639417993843224251528364619148919744765911286080339571748415807007326210598166534145470848612408403774970175413538143810817344141352499537227913379678776670812575140155594196276933327211817575239194172618088341676327776569873094327156667223081418098799126480500695420834447905183495956105299866243024589274377400836828404664669868223539329918670427543031688421043690134078781872555313768196903811422422660426002769486961606633562880334572204355919909123987490392581511175995648183666124780449438811873295228662519938415326502804553820419612086675437623827831868819868597183875928559033761564663974419526923004563365901317678746133387505271244828038283892409454684746154855652977922382722655341342760986367009845057877123267251251586313936369412588042805364247816993566268566802949790546105226578454814489276971407201758988173050224638275853153540079011969797137231113353836420299030480154586735337535716207257686362858637489521102688058430260067133771190476713576139502260367389481359969584532942584410899291561022207339998019778279856906851577292713422902326100259365523074194004591125959756175129701386713850413392169535783017630941858927941309368015842192673396195606435694625666374859371930944015713339328243388994219374765280712504829364444684952798717418165275122779868870171195368266854637471546604885849672057015841923097681468759214320700431798622629292245694318252634852860760395151957462440508935694254797417203860111036221171462112189322975317474857660210521491183316853348020294573840870163995934645583267802259177142381474233178474041133991862538133812523024261946375992049693379003325885067980379408772638727394945799929506922660235290721683278280687006550859321165164484847444798343340467632167368495007589086468245829197703657543494565924719312110968266093877918718198891609750005908043563702865143444831385141483755429393623819225786715504980630147681519501590759631658761341215499220321412988527226938257160736652232186036228591019594082282924473350811484428890035858623602247995259236234838547864506909040117265072056817142830582925167526161229894514229764516639695355930287279590186094200408281513303912002409231159185955470469715159941347067319429110090008403727295497896038294876560303748463620968202509422988103137102917591354484572831124167705562735765203310438954087145045303816362787397425579827528837856933499814043964917368429669899320809622275097972647940852450041543898284755005208565964987004978632785731479064971767308401892659452572601757483536409143946232752138018870303352981358911648865201980934179476803678794186974691444970549869064901705301139990237866723840936681761191546746901520725837886115385942036155305258637781780294409278577475553686852689832791635754303055007968452719605822954352571431234923927230933802903517538219795268968981585065683246737961000790034151206128419641148447749781794793217801004391509072218710319244918795116293262884928645967737087756981512381921148421813784521324402993408932669310045424641696658743039652170290062734496713839775944500333271767828078127159403555967481839998334960918852438609824926814681243754870256708679935521407807682269381920041561841463364851433562600484697084382257583436976863852475706168368036289798506920020928239478179917913625221726502401828476051167998382140359674356129975008450819308301533372645256320302425342508735191071863443303015140543763254450692519943063382903241186305499993575086374584574999644986472602857611961711616884928389139344578379794755443497453732537573383258501930909769145040442370965418115078895511484208924881138333911370702992511556628283724043866844029591132117604565881211908065899007758353528044043345426216859515239605908647078217081102771966548093450599999878186007047504911230739732672792937614422625896956683326116722488332603871281833562218707457079487276021250679186425410195913714574025076178881324131228551195349481973950219897993250109995019050356897991376029000129931671694837533035521778470608080285856566068579027764947403602496235824692309961162324767521321444169722604080786271793342323028581202304333466149690910631933546831842309273783690877108078449535854275004561368926449472520003432099798083210105590887865720554171829538647070397305417706616645667490114161487591783332542565027882407966804870229935135980136039668419716835510894684540204408594422101667798937660943309117807660011888074355947681338277400887235325989990536585077588452215915876911560108508377366514690651216454030521948338063151622326892484910778221442597114222643785186860880427015688356882091895647196296821215672556321439317808238363991390137109293393191379042626111695159887851001272307641644839424441339887066192773727509981153746023810244761125085165296461282321595578642402260501277958069034352089352886963148032053170222430486231655914112691112252459923905477308069399467772805570275680820932453446263656801091365543091596148206439458759580651926081503011829154292722027315964623343852133034289086180068884269686303775802491244978790944946831566007764706376003137223789297306355934704649974285263244808975970632521914021197136327101436481303257766096860195083826789021471659390905244942070964766476090301245453524574947786890089144171651119525828073030557931659983370082606088833747903462133979108781655609624220679073909776894188701470733670354779043236330130329096641706045438002839966383116675606684193419857794819564979599047972072359266762442027175060057111324502893923407704309455154136118048631095517618510362424851894527186655343120409165204847608865281415178081541623894345039566502330728938944052736998466663075944657587923475037814792986505703103445719263658821182594813127961176809108242207349186200583660154466786542507089389963463052623974901285675774398496192779954719839055228586062567893199687509528769424295925017374024725141499443929686322903465089190776572060514840463303710069561879500772172669168621014992467937373782032703577671537123287834730612049998950072457079197367665682418224008053113488160667443418146335530399877169470712103109146236131468912618520340168952500772538500806281685265097213191077010856431915544345574553492367700887432018277800611077598567711111856735777390935883781656411495328462920615955366698861157663976292369709382572047304039832355998750794585516054459998433751034017017406585278096797667077043699736798169999341927451903148551019834619740895081802249082343345086313751684637565915477264279359555255374554746152294155277872524857805944792683031591241686857850827554875845018079745823652366319300931263787035025733202791787366374072393784167389799060288649775605790856377078772275576418957053257740917708200361418685771236755623347348953885066450229783825713782390896226755571939474857239607754767811950100603578620133029253200355850226904791973315994037269950566964779286478153766417295179195803039062379672714078422278955538191480467528874307551416169611962145273969593562060292610306707632772883983604822306968968426641196908559910795722861124458561778216050970218804758990947582129937334833611673963834913976011282221602389729454435295957093939181843529594390283804491693255256611698691922258139131665467529285084445404144584144010778048448569459759713401653553807565094389740412176772999883569664182137139013663076093475095937261608200670425980289736429460623306872824534362511933360995174870210914526101745715263197831736651385094107909574649627020187195614456887455324973515404562776659210487962913790513832857904380508513521309843917599499499823505926031342084144433165680306101659286906471709099268074629654683989009518862168094888728043825873122828895053110293568748374241742275881109550105888346212558522080561525932451496089570425112027498852113637187594318934457642776050131014105739092041345452489658883327324955911221847704197394087993637424867179831648948619161694941078432813083851972200100061712667653437643201529115960061206961598436807595934486330999474320648075399928355661730147417422170276956747089384920454801186593509335742286868650316613086347246304092061084051463631194717920300526089484553972669172201255847853626395752870620527617476009331262047824943282508960991043890205747015057116860075598758071182608053447751939060816613966613631109772154221377716757054769106094808906447027364860422549987727597976232263108583688987423449433710772746435089008073230060933617525289548732697571889996028002657047557445349893425853511199889995580795765836240016456950215191586572819960444801791067574995199244651295631317063675084851886668951334213428178305955956931431118976581725647610621348670250527941594930437350362413746779862579181330119100807333670225367494547088161473383376452180091613354177846377174567932709327196825533007457154528431961061155546958469797643385018528238212652957764949506838513328086998184898320194933557707952027527828670245620626558256032544037353419379866535156866461199655264074583331997345652518061267691593958322111519009199906932513096577649631196302604812143354052476986742981072780514166957847410555632745984360112772997738588596360607268041268153816368825466360987122109262842503120925040656696000266968047279700677526926622640556000978767993821007120786970515542291190426379557781946656103962288657204751820838229463101220046434826008689215996327300405676595804691123216139608232388737874289705785692842739202451758483926231152380687001067652191626387721649176724593962794067984635532682214698685879169605642489328586812395491402535055069514604758692707499869248955031962983814663549647782287015962319528993073282299507663269225318875148238678869649172854378325001087287791539794443903225216437974346304626625635221966391285795384563011388694868367617277507690975398846362758951749263404243976825021053619639976763861039863585602893981036269274973157757768483053022985141840664594960694462294580299933661572237545469171961352671625704751662024968004686032841447523262583596889253721786345940657244929498153374369583388782168566275623280192767293552965618374445064945155067286638441568145128542129127051078063359722391551270691680726580610819698816554176372196008616336201271081470211848371787879872336564161191317288461033835628008302427387363855518178277582457110975880027131083521306297212739101785187232824818738491102325500127238580296080374376888857900181277139049040974196079587304950156751317227975321118510911690677684653844938620035233411048294846395414924017707550740606073282767176345011752716952443883566316669264756798801581500637218855078167332281030755429687358916001091360517133941509534457561204193335002386141627399394946819532590952070565504884925475654520857028199741855279081376617581654459902535627454520657648158171135696474763609481011169825007492007076618981414705479160728357726372081887157107117990320229638015422387680077460142209774896384796444248569545018532030648137823006803457489614193129496061456428185823904229940802563118556286170691099904925095232636759363317877525045203502035351739124148809680745674681620950514726269138854277543092648141374190496339136200033981225633954086802100915980035427728656482231348781253382891615334516804485627993579990786605293936971579816691564656516418728452832157762967090452265393341127764234134875780942105388300155766095144188567620138031222643903901407588006200377311592042200984240594632296281581507508977615649338572730177051494201488828500001093410481014796733943602792766419343885912489004334848807059214894726728250768632947397993689434780755508702147134183794061571980448682842051609422110738254751944368451647342185662176992138397359510522279544580627368049339918100869718610356710992900114794479458837654416327237143805330808333606178914862381335707603529790956975695376101183453938662386388254817019855680225922855752270829267911479873067433322632405326263946954951659588116535112443452359849654410184742430627890336558946756440081252259024443133534187371291138370931844046996643762886469338486092007208318518816324866382894789986478420397604898705042855405057625350464059623271783942312108751257928168245311776858722401864911396658571943019124521171992270745280982329263423904689063908707882871879339575977686017414352568387934711204880529674987446504274003715214258445290761304366493422240534495100139053573888990983697467217427735769133018166566587134738447849242076163534003431864228717955596486442838568654161573388532357396327399742094211912025698669010035406054428207072305531394032474881894302752847406950375578463343965867635338818321398284235717409392810158975273309515736914530619332361939876744724665265127403124924778050291670551202728639135977529979463189101185542643154968379714510677458334217507511351536819495413900562356582042336160529186812545552128603811262035891650207529670436963289445624296057288229889751870996949834869929490171386787381445769190287553509929606548494474574733482214714357309163840914585682962663372297985158725353327496061498635462237373527180898387723348429112441914079828359136874053411175109569920202675215418482431488127922116106114328136443565400950278218108370473969891711798308445688190125138317051704551440443419969297993110183361379211734178960364716307416981999759651442436502103410797492518512005630955191389140014044674097162852371344144221575102505753092132170154208868483610310998303696928326104946802717769512500127877099084491826430699006214640797275636473762906302584992513325286692112297329785996845028906363374463262175248597610178422464411461381368303993180308177231125307709613050666961927309231738745906463627842871770952624957207018354231137958294918157875854076607462915320090384862207897525914650135104649618756320013474696751809352312784223318994101447743226766227627900215005692398062113105043089796291590158449792429331588725038779239620853340548420786512676997344365303038444096276060222210393661325024378065556869377937286699949901985704272014572248977485722855349860871034194963605078144488936954856865346867351064025357480803924351329694327996309640260608543331260431834126589984559066992075042843461280836893977684510615550731163269793437366904201799404982642713404512453381547729045778007966085355742670308964783257881324834640110555940365208497680420009818313598294764886907045611950895435615281255575333679861379314619281903218578943090727398289748504066256369605183483655981525721932073978070462318460129601157269551152118546483811921015883399929522923995416216098101534354449293444485271976933745890822547404733144288799797262953971152587981171757624971358029555058076253283923051621074307056827726794956072628573369021876311320661453446107420659815732841893423462547648446858286509067716459109261554516974196352645190664672537579832116705265926025270274931373675500018786261348568453455491995515995331901605670307911935552080556611408076526323960448450204421884699930381109065712129698231160734712546383275774632718481734423046607713047884185408367904522792167666484177008736168554997758849453943561322453704182010658356395208485324967119526471805933257649699805104913379749599168467658818435738264981052586775984395109439048819233805248538028854428588578920923561690033594748015450987062351123063514842512869908321852199763590072953289054450898260321322733608572629273598525764164992075789740015110659753016479590922781351763939264346993101404630842653757234434614128016379002503364237935242706310121102221409626301003977165327726147329245648688186292705405415944378767463340964541490572924698214884803552878312994521461126584343999235276826385435948914409004812928934951159816341775754007663568698713115228279708385852967276851405507556902953443881196124492011306489200923942039229713022938727882305940885486306373385902824622567520720878711882337601979819887116852805759629485907735516258247274059290749939919404056044974768075313038234294284421418837801252624361438099224794941061449881779681958901924157831216178186180223551763946436295382590947997181365769376804398226410368014658370207313813262836815693497230648206363097484504781323576474638813648686803334173442043935101746751077830947964431147893493913836784085929720725285614328778690602715307272627474455210269490895532791298309279255805490472914069553972052349991502301298021357044827075794742155737049899301464173619879432522467928622596581714645259620234426057827561162299577976099160114283825656601928170902460675586573884194671481976675413708146048856379873356113823691395750580700254187100224687580268098177295105479685854795622423868412026613629350375509031108819226238500954010009973640559747592081665724736887095872307169347067294083854830691132211609778858067250677499300129148428433314330710537255310611917689925116359402927506856183700235458849124336204521384317006166638706374742106049810359629091121932815637384129650054112234745000078418967095711375904748596181860582457003008238165680519306649659315939740455162496299654217247257194382695301062178648759630550529810596413005377361215727898038250787239474179875620216820512574208923484363439646497166890574173071907967868270802617842056433629581116557460586821066257714814437934513525843580283389560854330055253554694964592283834292142153067437648219671402876744617845016442713829292766185200219424613812017926952166352721483209065215569429568274962349279180569833864831387643461204894055023826280247099266220935780991005896679052528844865097671801866421548488074786460231118795969065410222326540063503118774526330388773731932222510789845209119291440290208184243026470603900711944753445319576938108018584688645246248730222802134052938532217912822025446043145397223894492450288654670662396433615429205739311125687161431967983164759738830711696879945165376564504256846094405647316185706790388761964174325903247107395645111320695974970121868260219616300578534530861037934238167354910044372584880847977487449917684216525096364205559476679047960928748257088480741901912843176370208720622666185878907723302287250790959772184468446438607419881025143750383267247501317969983512103207807286571683383248077185967294043850522575733371802583576344366327315013140192266791363139546600917584798147322349554508501395800532290488756929618036690634214742738641797319810483345437695636606894410802542967293289480807741820724421297719253516272852717047903643016597648802318020615985514413757742130058097066757239310052135060082083952167059097755390820375597044460260599762342294496206098242892931556273726870547200395656649643949167235639071219882217079853510865893024069917826525495746889791616220873725541814048908566988189202005487408896804465134090199407279919964451628381696022737295945848751211340331800197123817323022995984639570702334110939546089487631291401854140241560061354554921432813546890904053320958502850208718121021451257676711672971420221555570716151351694439442004476689321796237231177825649371974734385755487417629239052551012240247969110842008460960536851869131180286458008370664313466630206194334957572753268147669199350668456027315415347516220377487884449192666844149167502441503676528786687973559352179480619102614114650413126176671891139383764082802135980215633352332440861511657795168972644436689972358653505370646980740164138258934770718260056496113073777445117884939800247943907157599484132390387722476314071871419331774301501826332065906087503944143805598093480850820110973622584153669088129205351144001254441809116282111142898668869151713670548572583919450949379800030918924865188734676218467073106202252555403579070689449003763747435353039341019716286446272110545020933021367050023671699215694783913739857643849998433308096447137647458304185146573609161019922836670871769030090888944426116241765920548932391254418779032986885774755352046197036438997129357584583060170233064342940163348036275172061938910782232035880844133817785942873640591639987215882187972791475271401259588799818387317055017938397516848997405847975499335728207984519816872124477221692338607622063212479921438545794299991264540746226794340372190005570344239011094989596498684423441786688447001001672325812808857415346664427006632213698897651957969379906670504585019865258645952883003029983171075141476794651461772829395803416578998497322337798238763029924483112099057643873961306188665890736561612905809959154144450235550675560712714911119438495616876934106336061314535908159851538449414606838265948001131792876902632697885781943050952837132162814446112685052071090247310544998527969828493608933074137178489399684142458173830948674922327774776907689660741831732675453954208278397133586115319928767919561164717995707365934687739581390126573068373793978554557229001054136818721099869485528207814293738572903067698200589698445735307462170786944567694059945109509457795699250765820972789048518957190300762351280487298410907634258030209219462059654873983826642909446210161832719133255978187539519249734993037521755918598424917829195739046438530865239715087209545326611869557912555190870174841961863606324990203903190321206173204441529197181601130475693797627644218098081905931241316298459543290332950651425718363967494989578531920808315955077694861539960676505114120681640175404936956427160007133125483754128643519064261609726317011784471720698877820385550766689162653563493225394509409457346482592093397216296711782660277357399328783717917110788827831853029176259606540820280964284358033030262385881332645444374712043925841858037802545629701597568356731659627319183430488564862291320403173254601013372645125450875094856505139559386014701317238485685237660458809291233203456400027827974886464326834661937532917557589644377345782358710012555269348038888418185727172600612778620209604717479257908477409004588866893158807802441907083908770046406462955613447444414518488671426549576040794897498615629919681362079391847796926040744887243442920704578123654439952801509124376603269189411581135321586485539156485872339442808662681608699233888626983693485928667620052309732553189248063229879679727040442973212864456617227368808888753692544557185259252694106661378307326920784665930768584968408944489631050702411615843306981639281063986376773447521685167296969868546459299450327657186448938056585370826706760269382386503800118351527952067767053017185232284062725919187014180941052061210688214173545414527813828182083881923085572940415130167226934049302572963392108395106909746373230783525443163368540602749405381643490226248902897749854502132865009822445152660737687642715580421188780531663602337789333498210830997837032409567994514841600451519606482845800264022928953198099222449831399522885159426603683736655815866521577153992214063913247066613628522299562078971584446300512851696137405601960163646729985258169338453106251337504633634801996837873041446589939852707637682623754250060429298277453194582951463433946982261918139561866964318845046117658854535764377355371451781628148576286531557136054249767129828567844865336701797145019285456150143416184149730372329428853902408446184167326458428314931917302521031424389286980399665757116769290326324813378928910408137437375496848722431700727572615396170214871874670065354596524501865998587102279789533064716671919622181922098962876204101071269566975851661105150894304009123723945627854567342931146590364333413412239987341601876782608331055518399743185659073739305163265054752575245365975319019362138404560276847893272320475049391208912836951577691384455113634611411803467521654911684008049769283858488582755434834216941565593832252493085806246219289128533250934387141229696321593374873524323122394590404927080249538517326535187624530363489243659985978304919589734714452732283353108589227862238685628920822864144115330782880271411347912366069025005388713026735786964389627799912171012752706485535171312153973296527223422652796121657423016148692957972405681873149669240918934637670830837073957165552364015844269898168432188636803451025911929480102559808068554996118048668111345404095356663482839655043694162289657325413318525181455708972346640238701792476049553521220008077965787323316373817918032406204949987021328371953242297150380429893023119276683500976319297289961717009265465808974055159388929453886441718485302659594497613453289739826187177544039845855906873892990355193021391710320523175828547490570399778397644319840735574575699973881900169471178262267957152906129075387615672873945409318190687780193039196814774036595782708000888319911155407406653937619693968202438270168803271831725709839322796910222773507037302821040087410109861444817437066203721610102305758123434147722043559416449966650001886719666797552047441976016821227972863561576150749821341859792795589702594460565674493484565534151892951509203798393492642424183140654724006583444791706284420955217396286711845776882978584867022399622904300025515973082090008308454148518909025864493025986931783613313537035301889820025290323619153560017802070972515582886599323228800960048221170447889986215988722995981344267188354092620230071585819480392640449237552957519147820048629081748116615158872654069378045826257135813363599218898039652815490925693640470648565323027905230477117102435145466865262255376148621840491744945438533260430727853242890466952512270416159533531814916335018726209917773307605195664840849358177784813130761683820401516011078781066438481225737977651221941747624092000343132414109401558265816982095244960554938081268563014540186374406821603720795760078282713529592661117419427512785355388864930449204421151321733970442629187379484857307237665821946862598928438823016847757673865402070439516381768258252611005192629647732205882542811984255301987839308520166715263141809096398176259995990449787153244062687921348246298123747227928640363001547953420388337420153892290691987723715600230152356699409641197290033040265164679111240720774650390471800628448951448594131507179604785637485523718832692135656902460122353773915590871986099950066203585244573546379404443947781980136105361977694367735570715854323540037219113491307217732376808194160282537775691425699311936549241563730697796643483734986537503764844461481060868196473297508486957359778863908371286880381432714700161520764835610255760135359547774699220828005592622009677867495689550097850573919180945164981119010626997038102770553038031836654560302674854063067290068952202370114639657774874711264312060389307727424972601565614228783630629347015985854181316660219676791216026238133668588220046495891125775103917285405016855602444662825521847923043336533136840019199643163341295516850084213072561175661628414995323306250622805109369511708094159580207853088265963255110997399590408910929338702436147540730146121397058303698916161808635560856421290166485824490383810344137137740602018957861949317976751406201059121260843765629474893075746702747484034257820733523978247598589663806222976973271081367617222517225179844288488020467626961251121948592860429035789436699792930146973167914238918809602561905043622861918482095747261860472872188406653903453111869621447867213488419468176860002084118418298690999280253057934893404517454789993751223253049148580636230615484859817794508904009662127141765937455740446450333557044536070671045333644349362320001528301026839038257508748145938183482222306459068943987724753831498913402521419505488052638056465981238264268707641528163349862074590731896848659353064367166644934242980103448823611031799684874043702333610435432784324060087501990534310587999625037282775418814187494721781378418378291799249696298939808253085213925136947172228009362316428905463360196390278803640317763144046535917565715593389471833621163793956405600166253099607698075026328567062964724067852906916644495793622020872328464202040495870574294069189255772925106678998987335116056199222336908836865199113517970720590321425847077778990920182116655059824862775709109932414492367870570549586796871167023750812513872444236165088295890596004685012408511286829678937091310750112114596650995283153566880395404237151688199987983800023286407502011129347654595209871462990269953481534264655711187070954445303094705514393018925932383283110026066465690133050529608068646811793564155905329910273074785453865129555159237050316761865888253861700435809659172264281796253110438097396455460727825536200561000874868847077000750463388468777671409491129112836315291259079468100140020106740946394063825927667465661706460421857415485601938825623611403444552885414870563825150860146598513901036026330071189769754097754542199975942678470363430699796669180152317232563128942543429186328526481910803400019487416128743103424988790491376765984736238518206127735159130922266205822371114666193464865038659766690508674331983766264286118442360714508091572925889878731542457100978707045398877825676547723625231456906340047450830601980362990665684452903661027456870718110852641343996080256718356982953505238298864836045770708432727772014582023320113816403880337641486466714531528289691647005738036989314808709200505921877890114686856584794570659028244627130731095764696560752149413890737604225620479643750295966635893775733462280840867001376327922818023516119296204120999712191927118449359457593987947874768467964046982574522322116054362681091525490258899016883950437967673942177975797569016081097554655866496771033463914396823058452588239088305628570465409980888310054707492455384601379796475180853688876132119686375452113890413099098653676022190863146685279627041949401827743751253269433078672329999932911670300892759516375450258399485767498981691142328756913061806287021687546271231673905867558953926596561082225074153086905364979844239831922212238568093015703779105471034416399323903948127444629943603013763217012942252994566929650340509220635934838851456500923544494943828294828161628244885910010466839156255341473201454612692639853720667434436445885859071460252445915118357449984728060600632710040597122054592948361029411682882303311488869596708296598970216786112292025513333055373154930840074390819316175608756686817823037971970896482514140700256685219954774615616780592059241393124140684675091452790461057163715905370944963030523644591716792331360149492114801400096309478557201110001275288142594891980919301891516483302621207656579103457966748917881448282498392189453273548333578889389543369887084608493442612312250673634977952005458502490680609110733203528078412861874336128568065347726747344430457200064237852824581857104249888400302321506197314123504548792464694749021773860265243162939400097102656206619286249964889745990370739897688908293008816804209495865935198051546494034782732102079360482774606437952309270688837579315393814119492915625435940271491757019254126074119121529998736221942959219877106356715202678060283698954788267239234370078694435505910611547746163503752488425867547916906043233384951689551365908228826070045304073023129439203868579441215834245250551932175438512493915347600372675821647685592986770282731900189620278680785452907041596619080088815004341579326066845588424045622158645531836624916594774428735707921049813475505187807867417745001229321397146111226952480580313101063843656913636123520726240223632132338582315595201450873454695543528580364215847248556500944863501153088161119789458134322957416088554707744009246117313661205727115365055052120297641742749001344751043111704126011609060461448648592418066267089518142575727547682336478997680582609035691092062078365394848191588504344815951957333210362591216190047725010639505678905543242571227386111676190911710978278002858972260095248587501272526168447928954076074530548222668050658873564914113787298924198700359402949505800718510185307103389246140235289699262942036596307656462703522121265574120976841358656021048120404317177372293017656032521766549484070649409504614955739510400035581412828719334099855557469977719787726362890100502472471333285269254616031849280578987923481651026436792908950505768058904161638861093015745040954672055260454741362144204846763706642238421758676301708434191333515007125403678250387698180585081956676157567148204835231146013404588827335587394573537929257662720862852230088097891120171802605710569078424249413320986592785198668328512877085113841931604277933374885885401172527578759512764712537153246697572168303043181932480279016755063333823909107496331413222554228556438161314930539626503666802250696776563079412195343813882735320110420872463013210728820815631803526361861924531459399963991494093747712390914351171279241109846090249285329039593424083901675370258510002516910915557020067835520151950566115361754766636727473265335562923193681431017899716130147191222094097420349136352668053469033365098721392941096412396836512931561522892075966923905063307648881813376588037000973834496295187997506825186328624615301414502883996194342410887565230210285309438206270018324685661568867562594441465495775402583744604696246677063823798061086775418898008222328487920767485617551886604671473404473321823590928671066599993961689188585961689354336530122448954475297787423352374861462420222989392196676658010341827701073598815463634350463798242621600498008770708136097399454410029043583258001310134970797321848744565588715706536479377985709076931652708856172818645949433300652032219041729066408112762919228361210371326418418399938669416055493621841320977906642139588206230729364953084692668862859940787054417652554538173462725354588706617327708014672650372126701413208424489524083364928897243901068877748070052106213500090418102228675683519658916079254149136394892630595900248341898247739646329878113049426415103096106711348542743431274409456984484278218160072747168344713454632531326002890497155870268867113945398814332541871374890279950879435836761354378534681027205913641068592000492685618516412399038351633668449480855003024589130285317062914482358993731424432783546379460652808778413819011569012668076980227406571694219439959737159976986035186053873020361650288706498306685350454393771297169395717647432330233194371710411098266487889124919358884351346859362612538768949608636411444784017537489298598899593850548935024980763732881532235559973639572275202802727740667734715658038788053386412313088294793042310175436394238299842524229500543845105206658285584805340614825795567104476650030463460353378802294352054361262583756995538456980466663227254782135517523028954620511189563174410512160056681390946638438389306743019016918997825983257111825303934983444500236274988471665164063403978339815266077213104813989942890608132197301349724518547075332191698621322789002167575025044209084121939292651856154375790293216619727115890472740287629785339019875578246723731964960164531623716568820820428630801918412478884251635102554807488571661429086746514747564274894282816299273024941738085905803479938508711258132311575437032476661577627110155839477298433408266717739671011754773938562738255178542333204186590252738689498205045836217536595791769878159279061583381927287931275061415710633770752454805892739598881200889853556556998922364430885974937615544182429442962305572543663302533025707239142082718293513818048136523160742863677054669302208563323904526446073028132857223318325984781234360084058470691308690980877593649635675978556997710205759027273490958688690762973996396912273534797090687038280905933576258349259041341043015807406175911718583142834214672677528149903981422099581085362926978252064971006542013891402067233692441491328645733581246231418859627419090182544892190349761640330431199266636371624784531278643571552588794963699993756502882092675725519743543989736671933107234692245844389693292068354510721304371941609800754943241642437910476946993447999641454624048211270735221149304750337924430316171196776820065547001669595489171487018505457184799585971047605834522692791577787476791112461710853520783306495167786786212492537622077869620751908872046980825238377267652783632776477701114820391901234559101197722421615920142959744555756704818951007820681834571908850210189196655973165364693290213679282187069566752161236567973463713621619389969507266995496277720215433060758086239507400570671238484260988369922877880002290645354396843203263320117787394598996598463044034463084941919577992918418634430719803320376084638353296411457455794271315689476456932473146648661432690980219421408593369632935496043169339358935333932057948210771711890003021550000875880434500392138434409757761671160383066194448161362132599544345392521273066721354595682969681236355222633698664791163015871690028111713197312520209233083992557629937156771764530924478510381457114949471717304112771058761560045253829015808257766132932875195293541387378063173335968959352560140486437172887381178761744353562465135025229942953370471355846166535017944795517896256573899009920911471699952701973451521370323009649950384039306912305429647657185711929499927990527944514602152272809434934455515488867405872144539329633558473574766103584570391106215059563029752901095762803264806722037942041574658466582376439244358600544521339490056800563469438916563917095395492123156412557301505536825546982167863636845202859660648349401687731274490089033288121871086047007474727006332876552291209056867820251027964897294371681760978450020454720040815911888649800097705314906219586476214988809898143916456121055192614645963211733449855416345371900275728927813469014488424126645113321518303621764353333743601369313062080519748672387020688573312336648991147055297426263010611933685877898472466366851544501467183084086421607924248540195212052081650574380868120168205542343303536917131190716182292387470094726518036388507151393078986550342576982966976339834471749944453275328725552977943976176457933484419103307553564367244023521186796886777801921765403508243544614037011951295203250648677639994527602470487345399809439256292627710055412264169865268099199153829412506792527163214802559251750484719563932679248171811994407388033070555203042947073201447785336618129713249508765591600917529528502477597934982303853156233391120725660648707098104628497720346749581374076400806045291957798428966518073484470074851388854981466097365857821462125458287622907507561500493039247987194537581118182075044533621358481368563822039742869372832136054479290052895638715308337925126159884004073337256677386757045231601642902901569972130227369396676069791243996845715369443010503023853198717142447933034201522321958822086310140140685590012521523828442879016032487814504316304303632549857300711341536395718407413922637632860038073815031072639740536902878443522063464340587249332668984420722230518720051968872041980430900945365203603045069828074667698581956599639677563977146401039062114074957118973285874708762944430473357978427078904740909181232990816114854588632339592377250973599459314601144189991100430288902066890602360745003664492072212549010755214256915170784800802200120309572074297838277329051073947354299708996729753893823721701929159880891989903260533565013807048817914037775968196496639202087085994003321478067816953242668774511743563788226679393677750282492779706784236071536316108723463422953217158876376822071329644100508085501444863753403367527855533639104428030010404616813378981949709516368168356445309880691029187155027001629551249336846233731122091215219191511787957681513145084788206217940698047680484395733452227619900902104724586137435313541072145538137354190249425174751147166122600724649593773123525126367315633577958133144463876441384112643552250827376859435652017754990334877307995945746889564434548804777141163579824021730625204953961660260538253091612346574495987070106519989560506704874839451623096687112331830707198847104305728761409883917706041269779841449923170581025753765489328460202533109861061786401821216859544171485291151672959887743786330896087755815693208864644236028349959849336320356347835524342568994697419823609585253351602785928056219672950609689157156477486457056977652450512664939063014678494237919996696606070815555354839974403988384702037661455817805883514093256016322642839663453847987999714996551947679548851535739066921320207148387033913690495692595204671464973369357912476735721799439758619328790727477673881238695900961515252631488787087190482133957480379337181584964773477047566398620876271847743722933157623831117607345034799418754022736145934252095009688256699666684771255096740789315144058855019105755079499028463543601820684956749674648364243601492991603258605112623022931226135569020826253049135593927366259221507029423670668041998564937317119682184172872352833756356241377055566226407729322920215796788223755064714738855769569874250626666421754833764413872060614555920459424123831908176422282310875881758323533229055066740374287619828390223546460505723624944999618301509992498499444985044301325590952188111594132357377409603353642015289710115389680514905481276349636453572446370029311212392991633367108437020363864947036006875779084065845943874167170019612013844491206634688245212068306406319110000603076084831485504390361612362453602633788463371895960434866461456626695686816620057339159378887175040003965403304143382573036957731010487410640545174568804541126986404328059251153796945575427839345163314753216584913435876308094586327641118205969603882151032103206017191423353431711949782425360622782525673380786275030126216650825774808176234341517251010861289200469524655964830094917775739890621011669883337498261454450400109230703551148918776504347797832706932210882056225741221736309763661352252977422721205254224589656748367450290562433796188089804486643531606673603825563778807099381882647781990535119878034984437216951965491385049438486141144443383258670042072522508697548301128208018378535147501146206608162412613955923012822228765062909687784361337983852570660259797919969045397532846877867516425927843258502227560890176743375386754117218125008513599819693092060825947530190922458307029922872785310753455360949029711466417897778538933947619460972953784690748271541549349696073725777903042806086635763940482712933207571078050527379896068306821232610581359314104704083708294031003363828936415446950853823235412577766175449062941077097517022877145051717567898865837762093914461880566490161678784130139594213813973084919838815690482989759770046110989545988421527189711289539065415913668822674078565774196598572994811259857140460190618345330831744466921471371960391551573575883654054187594131515811655116499008448174708091699455053398353915812239835073433598178896523599815426865080491834437378012892646480461142208410996441826630348058759774972023657582266196907195756419030855422483801871318061875082764244249476547082194689622732476342925242972289250424853108772222391976339252007143298817417270596711203235450231512684798837845928092774716447379738548229902746481492344705746028770081604015587569009376584599715812760008796073004096648093248059757688411888364147329299973313106122165646682603366052221650715407467137549305775249401304725240222807077201969080687589103164357147830079918228658584149704930689657101075045292590038217994131363013979878840579238146253087359123216359736231095293964458894880719504011407075992359311923496097415920973991488780360522856940004806429927635045970172138281324665592144446151076171697760859037097080353026989981765551973520614411273770704822260018336894209133041296916142732859638471535797594601281823804916341556115563866403252023624844932395436711032961909693369976093594506553953988185496488381377902463653484304736027522097333800545802660296898319396378555813936885540009787843598518239525127580960782083568824842813437404888594743290742001405143597321537754780085612606054078664858594939060611139379795381183039374621599663238341103028394220838634607471902615184171088484537268153801679973015774282210748610519846316998538201692885554066338151435848670546947720500486496683591614208720182353247000084840753930487094171351445294106560134305895653992068521619922206230095616744855743702908155459295116285145258516346762855974595800886039131463000842927290510497154553317130429661445553072503502036281302430702712677885486979390610368410788599622808198913036984822254164292444359630409653269410797010160658533304286181272591655338957361745434173983481437304910183048544687595056153691116461719634122410882114121192025457136398843510117087086851833835811243086485655700344995412672477073886730366394671699091326103354591490660745757686713584888657072687748701765979366307584760866136793357984778289700271684742330572969344743276283110476765748180962305885244577897931810016826504237759506429551924476690938307369486507688657962541985842886492025288081491888606083313697979924618013587254396156927610543067183925523171172364512387883704892814616592086356824331788144558112652844170331185724813069964142104617422351677811997474411787833704269840426765645384978183100091393297946648697796605616025141585749541259530718303487138530935755373867868567367741669323478612564833838736767500080281684717438067107403969599325690342864921693131030498563972537888422580328841270620327186372796410820651635118053467812489062170411447599902686139831517740377782609652928803369298009140039997880748877024379563716975359843628391950609784221306061460446573968859682388613640073092520004999743174498979290030641670442741666875014210647509009674108797947482657131020007042772505053929901287731687128829644056092575722444403781730955003970295314638430650655072770327736153456948335421928794046883551807939579609144862067423893535784857859972343876548270107393386824547306390471803050398464449154525401183460235858852279221469436195391292893734712062813347978242045172069162092973237771661308837859774039384881439551002554572531080956881002499222767569004824392027924745223466964144080188244925938628573813544864101065453652422576795727389817091126200667809431127805587369049864723479806447960068272056185290716426113341985687447316770715003441777654006626763099304430084848795981020226111886123932254820841766100861308217200720971407727900677214119513712161631531429747422902590099699524085912902353946191193240627393476687072520301507917949091358064111322557785160702921095062571063790298741607645370914901287989810513859450179687292506723592246435016939333017733746824632045737060394177144724946180971471028400398167141392162150387130777000087444685840216424060170237385356330198158677964421629211202931762093249148683984476953740468989973168410874939184665848530616109068438729687588344613224297635879524804736594290622067206663372043947698845120692116623504035833197061349826625085594405510417057442112572108058817001741768323599674881352018209719198587600008979172892638736305635316935157289330179422975495481578209910813876106030891644913462336533887897103441087520366384276842382384939164058531453266123844054518408867527302996381741328137188057586939401273431174192918119173819251974823920420310921162828816718560962520606974624362214238251078400935150987998005798638177741643693616066519942870635692341208555189623674614762728381283687088667378997485771847561169490553523402456226267842955021125911374721111643966429783302062029463072363475327462255255698008393299075450046892409111307838551217306863533123528574216795247320879841655688482598427111842928605126759500450807685178995430951444614506797669187056326167735139649113830934754375351870150438458765208817680198987796352699737097072395223072507630327230927872282340953306491889758807013544696731171191869951350616993091627728272282053872675496653897130985313191665432874531899557004608220249832969757079744723936621819281667604094007544810304629191972297410177861475131149506354936982977916047980266612138761879440031362564178944922026302168773251370799083464727010536057075679271303298595490690099305251916931747488465543400130416591522632412616429148595886831626225186944578502599482718299747693241249257183873328199852142185239660195964125330682898347071229230013412244531611798670208973634401743024465741845329847298667065875095889668989792250287382148129886258870798800075874712987979743516482095558170121498009335893226536095195899165958155073417861918637768329043331516386520797515338149277861035370151844777655019561622057031360929628826643435126744734634229752922516249275591409712349614521901103113422505362311188986767967464140811013870094902636104729077722835732483316680083543501024535093948061342259431924301823709409595950021478995627114228838118557812512564330019670383876274089158542256955795749602394260836957051965508194934864080220747759334437857232283884173649524071744615987949709022444280500341132225382705271890867415732050956710292633434468911788086362206109100544186471046107456888341996306808506608463008342378088189063965730396991337377318513211151129440512338463273872890343438887319076766231744471233126170765146775963580237330433288707834891655249949226580582274444235476442439157731460657093596586770031183459745068333710337355446463028406663880630224877900573373703632903877808919974356206495520564570631081610191910916858493408060817236827522673455401357059701633333057962538514958083067478112631944857588771769525720371027940839870916182480612513527753653861701634774437953974995857151543245256185524229701855894770816047598061237142825141760396167805294335619453578687769461874980686805999865465787404945779621468792421802505686347357604235822734832429367444780187120330358027537776274484736254708240885444523644096886129177884584597845309795376542459586263034813894055831491871563446769815686514098347638385050130913833357664871109016241903895267034080020023116480792082682757385839330129781546723101067675566150320198483167762076678426601956718624099415660693863573400894626686745197380566675481864171238244008353211875249425073449278919134041492932013924924821141075035482752346844444880835872326821158802672992273203617866923924693346260894106574127774517203121315594607966780815171395427065038900256634513341176758816869436463107105503121689836558712049344401517785132434355862421176866761250594232856989491199501330406511417737112066098091570491068650178608766660185323327559934940912093314861151857434717182147980434076448104491565300696349768524737666071341069753312108640300302597854816937907938356314189515503363385283326089594568520958897716153511665730239907336206069328599679118990942601997947569642338092497589295526960588831240582636630856034713142931875906358018004111169434125072999630868581210853400511880278930003323545314095897401411310651222615418074404927577725640806105041185395679308847754769463495979957382236477485629179140538626064653217880724558338472456071402300605253854045488006196773215773542783880250348054750761259649419734051982356827235403500334249426805236030339483938809617539673896584185837538175032442711308507598469115406636208588088683387543862481593310851357142696551291889130400059447260978040852627383575246006091896804749850680060738360969340526229742893395754050914923771841179858669178588681922597222635781148856044267880550945188097893033515945652241057690378264615777375768501940885354140386109125728971838062396836040281346689619125013596044190285784791780091149385661636448816156705666963320818880153935347326568162997600508932624749617618892986317910173322731609496450259725781451090435590880399571442917678605452267484097884656878197868142935605667782025122379055134362402767370738423811717682015955427872863838760198594546058992466091886375089348467410827810834426866274058299353163062365108958089038338300017403362864426654726721179484571323485177984512487853053483159930428699421104085537694386597952096783074229322059128325994733888737268344431710598206927621156097725121045849947426092998076213484450200931727394275348193047403391401656119191797034240869926254522256380683730186056938241692325452039950656947098254093259362869187948565129317760768800155649588401617463761415469284538419044493399364413720190745558877329097700262448528495655643401637337314729408478377776820553440896569802866038357355013610567491101647616808648672553884560462061076282411267175176361619072553958581563922636393973579244325068022455305182446859619870451050614807722006199712467574152251237063817418796353933265861417458387806820793437096668192609675835469572657625765143507230191962936181129975305637314709517131447616326498638825329742466853489517177093734420412817895286406671519909400924324702538193697880831429227654113071953828351745889564317562059979868071024487030089381964450983910203877176659433519352039922235166822681111326018899250728421047076751953433602809726378275583163182491258954753991797884987468230355025566515121693286960707880764801943748796325706658907325131993495822986514633508559214744453194038356537676200171258943105153089044427183805115071028208225712584923304935633929956528590986572256985115805093225758617611563231842529243583604875705735515375801640187789510114055477696910793457534379504884798036434964663149843543248662584147585983850946199982840610877401670285182360338677337737191846442611727758057629586582054717691552219628707867294435768228953168563956665686826642749534529394413120615018439601018429618777867710927794341457582722983215721315332162015158945298182089928943689236132681428524031187539231738365720377193460449009835037064283619601409294577404733319152388957033959936992316205809687077451745572860911038687602577773223102661119577207428086325540483216986596424943451809597367955058576289030318455742242464276664114885503622185431845075430437812925693406380262525041049394077991039515879309515027513698369234886967983868098421963628881397916295757473259259361290890867804556552504965799279861578368344872987266579471557533752728035208938395935245880459223805270281557799901075153943232577135554853146843754123435104742226608768277937814430993876162084816554878566611670910476015165719942276932303597467966527730495692536590017119702444604303894634455729400676008661028150258111759515425040194252846099350864262230871586840644610279665856933409659589817401511785520851761398960065868963190029729010380760938827695943787325801044638756937298254384004901084718907694092935134079796053712514667151969824518465537729456527037371502164178514139431648383026249783219126930955292850104497632999967197949760609742256106978469460186352197404088860790248779497108314476705440492429081290060559474035171002049804398893728209602380270707280878148179045989795297174212216090696721289310044943672870880397050989042916307220482205956798744269258952224853674655706762777176685819660751224715722569345440597488729911852304451124228271000072418349006874481913893014231137045695864100569600112168498536789420018603423102276232783303226093656181015722240263780933512699855580867367565883016738425832747180916341238478339133859797353225383603251972379887213555703345336193545899719768481142191077332600399897887921992873260424782315402556125961437241364368657239807626008737663107606881810107111286571221505600992851910838100554217909328659522036277949390261656508996101386789727987877007057319577200133087711849338363404974912519446244891925698902356338543154908617512458570966323767731971268288715655552043020248631312612133070401852249156106536352662358703966874067807888041770243441464831682617945035097525339630888490323403758186567629399954605554110809840559604714633872372251878825887292777996125322638430199749263519593799456945240650951036543676459893551324561210862597007783526251266502056565106844445563001953588343187263383304749663616026808066971369706245331524113877012487634546719596944217406961236124439850844293414760605516018392052977243259077815370398399736967472115066982137379377211007520666768875009182380076715397003578276554182702786297618443864773419816668953673406486290595309517414164665970876436536091761256477547555422477559682833754196650621918714048256864622036351905664419507585424560292773596198793226681624625585725277092719762693189268483916043509176490091842590619809842082647534851454640257327086028691260472029944665028160112836999386710895396831584032888546925805636238429824276716735688194938551095652289401204458010359229119400030883370906066227845809114911051337361069110592525886325189810260031864714788969412906475700855408933794587051926803845314647157735520935417598325456210913548827671728997064966662415057497580094481030351493821910651086343723086695073652875397979190149422623376603726002668728635310915976331000432214880896214900929344846504721878471177386868327950084958177944765929429453653707793307151715822457191037696497002489454035145505918336368512277732847128505635364205182318797147213935087674165875143093323645204962866591008741121076987280842769259425066774823597242626553374947876940529350428143668842367652305708471492002440975696421143812445934599970772874854440272546624341839343710945287419735701478373987449330874846278578452377725319666635469587111233340554519525381723772105619748491029327376624606369588270658828402216489228794598469788314205065161214844434606460352943427197712788319246065584912667792187221319094132915399474097203950236438933383816381048630412810513563502533267636396810527635366827833866518019425083344521617521965816141465815984993099604844274349867240551873678784751736675016934310792746720374943713930652671940198137746255575001563869637621203550520414177608954040608562786831806576642898503146590052345296272841333315251534057709032210560077262804652283563339846069760678857930688613224472836584553105272028748189137837998176453366354314636952994674353996460756677238222150905291890443646657348829372795949308528715474319117072112328323429165701703284243815757001506353685215954863831679856564590313880451694958803154235632272714734855385166469029585381513723546890175831198679548094916393576676483315855568738381284125058306763020404539975590418417439297783899570685439345078086148911442503013208098171312248422245167056435762204707052176513798961407901962507866912873438113289735359017571357680067734749035526256140506210870958582117513433065288456184530386879116976779379610800796372584255570643475434897540992006605887320117666610235029198584292252995671161940167426545211751093882111910657150578744518120061926350521470227158192347050983856116930858908662520714077939132528975930960347271408337545654389874352015371907013212432736900342448896993733708030138511840150115260596226841212307883090155903337288539200749266505419019000129661153476808654552884745061814826130268884818639509842597544402902896139921935794423689950694950558152496216964307179461746667739302583581796054994488228679758137037724622556181033150033660521740491513009755576959546728665846214934278765609393735378294712128053934795611264491589071622003807455776517273256170534322265210540677190807767604831673706223523812906466343563943026719906202945736854522159790425601102703046799311517622959404356605933118203546726437331369160224252299252638215650279878657021713567698113247908178582261372219433922684741607478931646063958421935862237835190220987036766996681724091527579039642776417485975495729063806244617596228109366914013360977785913649601252447711564518352453243636300461457965899980685734251177431239065167714536061567811083230585757278461532178318704109299519161976414924079507138340559958734866169491461980190144127508839880754353693694104601501033002650774739278960249241878209457762394857729660963320362496164297474490864800180000439042190797558599006126906197082347795154174145259640734783806410135757359557443104564935886936043422221938680870883348056607765239578618259074048507794241402652894395124435269312953386590458078652081966510905093683802346225066445488790143359988218371591318364809867103629697797631928801602511437208113581034705823240424062520380648828828041949440009475990418447488932542823157831734781937529339341690332560546445261502872336776641285925648840692461841677775325495328105199229798975077086513084550477245288068681971825908127095588957936612503795875010121047322611539955870828758921820532607303739218743873122390204404471506303541410784199671072967743262415172946286461376354130143242489349850250950346240884653145851121082341811772481969599818390934861922724561139261033105106903523793439897829380024213612736848420429875702399162858314770377003786190583417847720190125318926504919103889923258053125518739309679655635568609081165101497917021154720430749886364613731358075324810089445511504279982289477440394689329462582068970044760420072410305999689230482488335214084934583629376686007892545952809391590071722905434197232120674966653693704244974177914648034946181789457519398471388476083192947617226468835556367385581716511193774089103850020406548222506797202950037797976047774848356542633220231441875496162101871804438039975793139590994992652654554843977940118913794856278494353069282465910151502562858471688550773980898528670848640876858927107099100003081859740690681498419758687884059122838668956922926757030530331606779168289746642196652546030783804609277945915218024807403165427100842549376586772019009588776855058021909835433129312034764043267955957020632648191032113692811062783111801884746392871949718589831519553571630450405117478446941032548075057800516966708554618001741936413151506140112895134981839250545696998120249792712436144514498281229921317494314305143124412612172534426053191411378184464209370569581298927251613602391470460852441604708160100825498793485548057378462105603766547833484407174853317049675274221486552254266038099234254129159515243441733088940842128732136749268597376344079297951891107006766187071535800179140114659995790511327948031866981482374088398386904187759962096056520655896916883722385414610413901673000794129303812597593483814697417671171163133570804177471173802469535374526269086561769447857113008647256438065631480936312172719505022740104351954524820479422988745720682245196046984370641608947974975316763164126876738306442662324347383973379469715671010803763454915721635503093101674571138325925827280437631907881097727670980088519238449935909617758482516703866442604002166822565699345256947211635499510390234378442115341342346160076408551981388481452296983093146031423873114174792613241831735113966954833202155327391714419732581798998487325653229403033673256213892863573634032839700648614968290198661138395158890019210786598371271929294050429893252641178327620786443644919208875344926723914435676190419074474117453628859573994821335106828929390332102585618319072714216673650982251577932461502193887036800720905973460173113890407126115698005254652125919987278432603531673777258814683791723762751669754035047661518089013657366042558649950030524581543341977582387708869050285848612833422671482701309110144270800687904288124705872417114743323103881632626342440050999472848318168096736939859034437720681261028505919973071551539333375208867104241533249493326256631831792954986606317166815507850944080907413580038399365590180430847367900110906054642639049531632444144716779219109444877079818120159994773040783738067208421977688826458739718623416931861558367846847683502781481500031082579004918808581867608874150961196777327133077600258982776885852366012830917053778947465195344093468889370591722567587287487881783381799634546639887318358404375484215361274716760074235024391709238181984686497811338743511625824891570516382913425521320901401854320317758960438109936044320235305952733645074258405494326406231015358384412362166024844007000420853068319251472275979422574194457354744910740487010723338360027518496505030597472287507773258484469327094985334444934232048950889728828881632692597014109542949661809638873822627305751094739533083776499271148699137763471295264913060764102241193244788436519423868973689136600496805482078019465084765737414295007030248761898959166757291572090966097268181301915398252770940630582306349378417499094811279334788912997953046045480127324654581384646090698299024363745402977147478360993600812196708845475475122761350570398922617301457933140026893885740607201789209211664339994792137450855161156089284605498845073965521290598510521826727749008437484894589424511118106588020130076239801655033512722336474675193018176949432163001095376198498287398404585172638230875464003429276025301530575038033036227156119563851236500413073253419879333599333485645736480618340168104955166291819393964294463598322043996914441087431790966596719074406936965196998882041718195052763377604098258206950537575442722331766781633140882541932481624981821172636770436255707159281683041747323304648887946218524418851695217901101810041741038163105634155663252098525644553519906489752144431422075962202208992882588354173577138240635338932659120227083169714667685796347259122060456412499537486133317467497307343247038996887592570211271466257405539925508108374083756840684780385546354240932956817497178701977128614109063627925362542902095904813612481209807963228925322273804546365838307990870067845359948981629283624379498081498219091157004066345837469966749632330721741337374987242863317309751406875433574940480344617942693275325726440999339932211144193449644169039322884272412820517665086134955413086969581456281880235248178655910321466962169555401681028349785384273795684879563366875773577230056176039528514610926975075079450861809924445859704379068040140790103873452737215529969651744370961216690748418455680518692979875336509936462429463260559489541750496289296065387782585379020354856216349949045157949364336480779890957517969696527859909205305172680604973022795144885794153013829501967111193339910838095617582566696644603982066327655863595438082950790861619276791033121152871397753926678694112929562856416444402687225561006192306487938989468679412745618054380127470531968930248063950121956245440267919425948479153896888279335525743157296139278787903949655314800380824759333467586627387138653420479785408335320881490634766337993753611843586840988587897109016332692156379915446670162028463189041811074478983455895389465378161087359926978339818268821407030133405342582338471153564002227135681208549014990606589684422913215064981299260522016173784192386512806644358155749467563900783699877383499624907930629343226232151140114381754554775319889493471870382163702535263459290284420107131584151816052002879428592032841992782927396776361947618709994498642273654228212095606960116711863317306392494235630607508213628611528113525113111975276124540497620425742652477455095331847038752968974436011732807690862058978617671394703119369004144882385695536876119596742569684906211917655476996788357019657641242632752081612129316849458764920677254219684498947715913053854130705061766726190988116663665577494371347476269711746002328728537884381166201387768681401872855310117976216525074293587917238731984167629338581404923258610105994738906415030628128220189974031647024071586832412165155226156650652600411312349234176275371685861596589981213335680266921875346480650692056967001520779599386332848729732688359960734698823586917312998464790052404656355271197230450285564218155247134414869310520933218980069225971027617111374734730956133675606855584952609676115087888246096593492597086383660038794046080699703276948353745724506824084351317768360307843350808440010036249841276926886862564502272907019342283604401020383227271022752702027322468107499604014461661181220523111091758629621907430639745802752478968621678977484320413037961727317034984384400923747759514156453389840915582690279853544826866613903037838782759995769339458380269614318524712258949877617423384458503757405512147941952533936593437470563766809403379840278120566980789674227185956173252314479814101352163948593815414477574903634007092407809202613667560641017127445704537342005320782807775805379599751386011253931755785762561608524327379132797608480816115076783708185475765897673714127649637212580451287483861624847765645650652561091626848145039908714297029909691702230960815068905380135609469987033969313067242984795843078401673702760568583053034895344739632617615490958957448330607626528713236360445911283896925945270317912287333165261291987585605084787152777166816178590708302454881368587022292447777792076258513217717739901257345457487168719152204265680924992790251640276297381557083718362226582282975085998783500104673355565203473838988498006239317041736939572867881965408192593628345464554443629860276878438839536647977747130740328171487019141418916655692247819881752824411342870521260697859141462007399744949191598378493952352305286263426662385062539603163010284242656583687447065508943428169178586648466377519743285020734810607701933241003350085213997503712827464461901438054257524245711995824910659688133039329118544021824030161166271733942120584301567808373820145635110403069794570634352062143447867889912345968070420377751594087291453182597256129360732631548855963087286081687153638607025731522833697047259150792011663879217211086601988244908498269792716383245386597362297925492034442591149959369407792983638450068088436508430622195328886198334255444052146238596573676959623724748252941522929978581813132015937248359936840692059454779647819115775370902610789696054305527539467391262839251752973320349678099372965141936128752300641842647975010742405678205280660688440636631124022027343663861867743493161442898023660926855704005353591498724724304481013868796711891788240595394724380994684489633382108772404962532209759261172982286312230532466154104165434800851276313591526789842426878440946211955203464923886292813055256061266462523602619089949987643737792645228076399891802013656378306677498501032673414638226084809520201413715381628991919572560970966144165731347484620839042841619822002218604725619987540042278050071712406422645294559586794204508210336661183598186162454325245333812458873618075009163752306149822561995168945621439794152602447155025213110998211019624771396592471263484039585585846618026737789350942141978685154729929768934486757636819533959496523520796474781360884023303894174822827391303145979646440143747572393034405357138892381821275968480967524097490179079695012923541868459390027935247091589034557454440007727420301062639615770349564440310420028077779751231922520354093712419016779159070024668570990074741583432084741965051208589366747860760562090517225144998837948720514698060451777160060477972040147404541219250409157303689055277984394452641668794201350122112794075193028849624508912576551022315717702659839206647653423348194799311974679869052410099749149922889156209051536801707419189765093634398647122302478153522721316137250322235270195119554985311625112865401506813185815876180484159329740293982938219657150685137005658161956902216793625413010266944611828365294817655697945689165607900587045393912286369906226552764838232256928592833026612968070108927673208857085761883137562899358670319416460799130807617082587444891899470174415118774179717092243403608230092558468536662665075439319297970818400688110812047322047487488085807573021112011499147511474651713289770222326060956941256908388010143751184129940821475172705186400965294729544722823533945592046543322974430722708569776787488436918046823080699192196486957808422084736761430382166477377459833718109322381990824742992182009584497208244108541263837568557547159547267942611632993345487895811720027343728233725915002631522637111238980727226415194257864857950734316390466203496123813873618210527445341082448319607791107923610727971378035132933191294589930822374413336958279956130430729729471747253600413052142152069522552877107339216385015153159650702514704335471614621520824670769162834229324201812860907089308785252687233075017873690497255922680264215911646023341168142900846287558252865374016652334039309866417831676625084243153384041385141533996215955850012973543796922506968746436703565883172925943785044210273902185485754532997093541595348703557502714500945902735997539827802286353935767793488575079613947042815922452579814264544468539648457089337703465396481796829628162321667536733253241422154879082872827857274598162675829791503525160195910468677722517529949510460962118600740680215244178000825948351339937668520158835820440042771524565840856778722147067961964832784288323380410021123590787154765256146715513157880115607386899561140344458225183738301659250443695759188480152232266764275379776487432236237800155040002969187199265234225573767566152527947999564262682328439730655276247159291268765895353546220835885552569116830092252870838702158426566462770615800423726639573638684086225245568508024870499980483649065773824889536536346557016360402835761637795372439485648148821650557242471119590176302600832230932003341530686995564955215396604016609377950860008201197986828239648221193225158133372469053275436844342977470022083743696653931518904712620316898521979166398140182789441390459272925543550894251400309808242893823153139282557629230599801809482626991168602155116926238805594701720337982769969429422609928314333394711523525424361030066889316488215382089293169064214936033355043443998951783262553734058825428827804093700772926151851931344428004135046209950521085593919160541975149744851018000252507140051626905266462611932212193471760614112614106414561655935429295909841696457254918597139733072275389423352573619943775257902706234631636580920227248050459497696860540878717779903008508093187689480535830471476804822753110103499538829234533816756787544263325321330926048032348594342714998070152336013611154075066619357962874532587904066092651925162875783538565540478887883280797394734631990091829539231776554339920553841883118862004404640961227684823239522624835936857701280094907677337552468421813101509170193851020680979115136579824089650179634062788730106095544587447554091905634957302911023322691562696589196188621176434904899435341262487108902681954667117400914213442010119434693387769609047931307383590675166847485451974892975474064925182976121968428057321016369963043118149413003020597818434977972863468437006653803843476482244646031394126479348843657782707911591972217345657916349491771327118276321161334748214441340329878865308342664583596655285639023416630983016789541662218901992073447768253516154020141813156177483904309056425236982678798128767820651300452964095516030592145894662855037248958511623582406646574938955389551980234424878654240704343644051606063839350132785300615691787246881809167010498435362278978956027121771023813763528483466177857423385118802035374202663012177013648066454821948068446596192028320730174010668361498354411044413533912049994491961345896735153372097241712578768134457958911531495470668327254074376002967135057917808904260275466515759716539498561147046463701561300260308498124693161460306241261262657641511557727119403949750072607945234684107501376880369403966062286928429728951337157696952880773873130927824148990201356703620956000534307219565595450290518423734573051644182274161979059330058718988526780504605183795810203301583823825881845772346088023205515652676463310189129469556437558665937438845529749693794437047906102320469038729033356907481447229484038516967624482805358617092260922721189553330934290182327148929020678289990376810028167987042530193591484058578168506060127128545184809131377388373547900091116842215296786447987367998727003655844053020075941804503898555590698234349281237591181172313598070566471949096768249681062921371899818487307944678294985165412530451199760090093702473339429805821088986130564864366657222061457646664381559607874726213664480173739953833587115709170479181217591132767206533653559777789537184410435103833143177020710679028459255996072591061212541118543358477910984443472924963541091629849655849801329039770145322953396940382350907145063655463603335025235068672750716100288483966446868935873445577832642116165018078626027249401955934120340123972512923215219682111694727694127547809883721797901893764509845874323250427340158257671304052889264331061842389141036950992121199868134632658695967999198468938757365309069303148840075230552262653478543228186962866577953754988694998708377268829514496260714297728199984364368876076005219364821236422548567286179247752420358550168121176829402649269772122775370410834966010458015472683341834056241588029483686378222137145299223859165586030238706956485333713189496376311734513870559246356253346261264157138381583130828204101381015494589615193421180755100794161064109242175813122638522921807252214682100150706556159947152968644881317697260161258664185402566375447270525509009954607985243273565184222644764725464185919452404217598948867895414070741909521807284803786678416556562081668434915329951958428884991492144097424809893266593954679502156278105581723017568835118823466766827713011449870254541733010846076424696606435371141051770605216991117036193131784306860034552457346404543780191876717851089110638740616245494190636413246603028819440101025822931861212059257402041396255658300997628625308725124229284086052106266254340878849891736675163383572309041557249693482422606058553618226245699119422185465551349980424507445220494632272184411178455895829929544445706188035920360269568164023868747701844859245881332138440144906916918882469709695509506514895013182191743205431101440728908464859011891138076523346806459749568792574071280246468541281716216115356227230038572361047430950217742589104515008911226448258206131413204600039000557385239698411447051491117724372770452488786735775546271280376449158431414434081117238312131248421155379089681857874887871348142427503743837534893145744934783637353154703758909909365509051488014074232615673679999364177659030781386239533179785950676128063702713791143194561206600481789289074486980682554027115007330566677548172863490796691008877844904780047601798286002020255734638689159434616801329666819279590947742657869144792943023344867061384900366395512637361015859786410526806033190599772095018636939262551404836460088315167115719336491399739187450361159851923202228749547101871361399121556572656816333013763469084454316445120460581620703640862251123368583073664387364487272051026523300963540949230966329190897055487619802040110632583951505331410901349775003700361810939140061057870530162467028373337407794272607972517556525497892414291346994526871182003559235125134887942515817398562736796215416487984663883710695719276039096281395739569219337970275429113640346906005479079913704479336622602357720342156625679479459244105191015418789223888596265161506419247963158545318603592538868826684041811544474450683144020128843137775317995208776772225479116077089535445896595634456031818544865099894805889758630675561423330576943586587836190927994139264296402868529813562283793280865861458100745802044297645076977928998491989699091705523029727015767798547899853435742355148501730253083500830838021738699573709482161157663317171641924383361858922193293497585454817854869130041248872319259196006246539570587510358021237215047454966256381588616927258220357461417695017410087402377741749557066793683780830960646549818890213191175717367203415031065386642624674651131970702247458765076861037598889400566596734672152316871049909346917905734235274217568964931322817234083416568962838238848559293136299988721537219451717031023603654802400359364759869656914109928879404584496533762818174254401233800853321174234650598465156830562383597535738147799003304045105576592442308107009401517589116526537094920891834011300722576398249501698516961268728488225809629031411649184285999488714645133625420101997743780023796598644736887530505449915441598931270926717691315315571958487499533266154635762527202644625820102322009989610259087130781750224652210872321778588217851154696673331278843947136969784126316635857651330597639214912931439241604862422649735442802124918290157330176750627304008442685137547954537347729085657334111872593826994052735271324495741461654796244601321764799700306599884964739220070226378400874313536277712767008206787833795607384218734668107619314409737401875894270055038642501138496248898003575076681625672750530115263437725991515155405565653484608559892084351422399997156952715651856594993109225021885462705158566699282773144927023820145205610095135193285520043380553788363529631795528845712332572068497242617354070353701061761984224405666083132904237057456646405988284474080244429594118802794963776066700620163035435288642801827976253243519369346364367807109479126895405627966068999915248383185553252962461454657001007157582486088231788836609149584030971922741446648619940831869242715867768008990121735490035055456908938546467236159577238500683604006150710914031167478226991951712419920345721983423263695571665812377930235079640054666884401153262577650056924548131431633464520450878455548941432857231023083192324659351437388202709158608300327398258343777320995389807568340146595687743995502725912420098569249295106439309237188687112754153380099894827938068665893582242817852155571354359044590074479702587042368708736435618811414066984924597172428033787082979116126937101498719159603120766016963791256028655995515994374472949171687128210603818639108308750701296116529612226341167690512721278879959760940577278019950614077419324725593624706629137008122903235404629806862545678170684789890701973768711329159036711554865535015962979653265372376016096413547805372347069944202801415610582334397668495575823604481172960949172023472783483151975097441099535770666369910677432963093894623593925305829161049483919214377502440920828201766126733012078750937295970813824995555339347163587698178739933599661250040343637576813359478294506511507594545229832237393742678524635608910280846584692906197458620536337840893007029888022816384864630790204547617452200778491436122323317618401388326361872511901727358905304336177995894203305872421569786481071559791268225432271753116478250733718214141529873601849757291911408459135087321970731035113044937467179056909596101240277127774669461204105284216564077866394348551668372554731166773744132932622472401022979659211939562706316105822529172293120659451776625572610443081908755001123981279484999214929428254069050602529818373156261870221340355225894571398827387891731847649674740966936437588049983062282886665863733218648127066836277887618298356240937436481867962906334950780170064237048256657728468873981700017702193843691817400879826387173339276711261669875646989936812564014131134453209219999918553135579308617272477943003577712765451952139986918957788093531843546816596371612668501461616223320700450527188286454258383392892470476384673086505119779397325350465730908258263734976207094447665507829399857792727700893798904300330238852638509223209386814465008521783204556413866156863594574889342662717135367385543886196464573578607954390710800308417904696143918882339105999102402324606931305576857118910828927884392618375587380398161752891874959252229678660757142911988860553096050275735666244321000259073648117833659637115186526324737160347943892506533880885382927437716808469392694388683343929170609815743954552818885410146318650068910849660151395138383291174239632406228448636558630602691334800419977945936695482875797833319986792010822825941994671435201020977162554931967931693492747485999363056819265443759640616519091569984409574968231953005408782388232752663421610688099099279484035032088584823143129230882296936647199892373703676261092341401185150150980637823350052311789131148450953753609465525548277650556290203991951453885580356305118880994402566873519499718361355199306458976144376294197010212674388031663523293436387693265940859327747260312105296016419801500035742518339085177748237279409965302847811450717067421046452627427326480509043380504601071265250541522160460067805862506571425274035113350430287023059460262355801172844217257863232802085327280196470803012883386928896449567797506911427944484807762883140585313984181330317429570776225764804438825366219299622068608760334536422185073744935917611963355827685112705698524959264859945869274903036150066132938518475640064815729690823671213984547497167580924495831804032726327618225151430423958317644706389734042041180755068393310002768016080833765382642338530898377593412313508981586417522955630883044250658942029832165325292442858871778454659322112784429414831926886844726658628889621707539560586970402116302944405411962032276669507230869041320726821672440802835868778945739574557189369136436309653292284546137805154328414623247188688104432253902128550857278666892990213613924873599909708685163259689185154549156272037384308963688141600245558447873092395347246968593341173164111142994980227979245056177991800675714831518945187129832945722015237493548474398533468127553904846274616008968120299501910663888598180488412427912467101347409210202088682216996416409110385192156223720871342911598427420242989505452385369845568012700804118106478251431370893301521407420567318874756034906168319598847401572906962763253976025662122244902111733606945884385620168384374308196920115352989123262987601440694252909022723973559129447975478998879895402133626674893564679423293845896362037416571369858321380322965134957600536878396101421094588170956696195142221519053586981498352235772301938451414159202034804101404904608341511310562103026046046029720982949383479208439015955680478184571138111752684824426672551655134593300193112755177340184810458304335457215255848580386495735720673720688207603986134290862136922513428774729265614724856458307447809649771485507374311884013397382550220526764522202466610683228802912821223576874894848848589943234817954251534631989910799602438594491453313885856412527504280575422493189016470131038209750123401148177857545077688844700123491869445383160077652336929501764670811571243040033346068204354469509596759875578399734128156928177861134791583048122603415052787499717490631651646502324912043592620809152664370678560455882089166864453937008279364807700090960148583548915901612165141245226683282080909441358707864078073685247121248320988925587105174711385315855527153513569375381502696858620938091739514663020620731085431453425380545624746628979664286660668489765929318724860867305140887933366955291299999992964274645075022853881185322709329157429156631711512493568433971924209285383636008436901540960562873750343725706601497470662746554049463692971953424821312401472524027056640997830380491485091455813294534499384248456314572671397996168987466638526164265316415936771526950896298071041131864296671664003007060500667713391468052403957077309272272684531590121216060852928258936600179403827725416468370621240192781910031987507940519800623418907356915217011043356056831315258627418285681771450756783967169936712742306502487678224760811847625240079297926081835991676207694668848429887502506296966509639696070180547348959903164683132212986512771205987111457931435697670609658394211745266175853035621626992805336773020078416160359630407571995854019129177075751996130769728085026211074481516208012631772942136714677905428503608797863935670048172743672392906738905866528119139928939090969823028799356953902264036145999267510154106674790640408034686650882782739060881832671019366282858411258374608828707202363385966519356051384962109898558741893501441657111077611030724696329960908563008735208434534542915063944508344951384739339057583297404717813362179663419735080173746463737211493359847325542523273683163610789924987299964787804337848944862868408865893532185879611635223347939003986569026090531484645452067940346358376642058832080444953225588871303835747745417233599944278075144085270071722636772992196712205534712866428657616296404557365553685970587025098147964956217178388695615044085107982269488354950198140657800179607828549439175189179530681116496706556790636909546477773201590121247391213450729745749211476212146067842139216540452475403571470763971116665216009999039300250497308238117128946283000817835132168490051465934673766847770343437062601655669245573634249240431008536910365933151835102787117932454205138631782533767504610860502227155261304438533437583962490795907769921342708579121310893492114703840244816618135227624407901689548579940717614984282114710663564907918426880694120786301940779356635727626310014760662445611068128866110014378484062328511127785911764524159615600141500359418452073048522385710317845672697072647677619801015406074769808282564346574081389675322235880703741375853466198931678517210597356154994372070407358462878232689912092240068691541116892685951290757563292951865477550945244812413629214806698261415498026664904870310186079908948349349993765226592550133405916291259625651998005833221264720633780950601425544943437111402977204892699277031852002702744858654937202135713967134376121589710053492042936560728005707321354256961806932188548827022190705276765583439572677520321146613084945211312917080806412580414574962787063698179478430996776605650396350348257851451358065469105140784938684611446309394295891989946999400885522163697192497328936109800992101676632796897152210933968111316263229745618429995256693623525477366400644113197977394631739893181514421629464447560533220628731161627841683854025826848274842445651819754583620348518226150731352608650233159228843590137778028622966147999389802442925824236878289238700252022117345304297940359356745794637894059794900118252121546735757138020875956650890250773316581326438336262988650256337441629262369828112060877018910191417891082682265154254576308544331021783495658813047765809679973837449153342946664565009238936422432760989308226181388188409331866037810808899618806224975102856538677716920707062879436994114560060071259974415087963928822382255359740533116587363122102429135913850897589785096169873622448268003604554695030748746127547797118117541480127254672062707992776393348244815122191299327067515471551097707841154997620571977056062358745571753458190842858192120032143770732171595767153153115111352527444531282831822588341006315021736146726713460932036572285905727823316585584286877959519266929372809258136142342243391720330365827541302356327963644586422168391310511635179865610618842259565107191110004495150976415451035039088672247307521343824831716243695557084026308294317835397693489279516110758936650710767701640683634192285126006358239151224076796646416150773020866659052580661984914484236886069352771073042691700110694223762669133097130917188932830760423337484256091126976194121668169199161760463662876171110753718684269013996153867185589883878584435952234347732668499098368072380218520041281725712305520762841700757549685041892340628089357142536106544815995630503963278087119464091175074934018801289198349209585678788912788527312969335020577506720068660522942115189321867014510415627546214023670188340722841552235134683850555816124909109101530417106254033366719542571075491703032761653081983385351295672667837815028505465589171694422831521186777592332198962791084488274697614532361604961587296366614719026032101513869449944520785590521141263398310517060461100924025413730071377554637246936537414340273166378984844420980000744232535868453013981689333698374847799084592024006986905908794662387833858578909549040818953659097818211654160733965279083829593204418165561075479963004474948371882457539080538162388028993489918418645039186990487270104222407854276285906437718574852165106943270271020241946903911900339870342583628346968206241172203470726510451074736395428793546707957395117536516582500017682945564590682792593558408764131212140137842473458317062753265633458290008007857522761612777252803362621855834721967839978948101689489574837121800618140224594637551822596353098097809817170807388820051971058508640982924416186118836885391368210716502300448593419202382760340456626102300220390433924463096814769106388890772309431715060425247222646707416155395785661587264976431818844973268603716713780645181433895839470301176508913468056812195782060033532994915006217220663757676629851338183910048219518579550912325762803345091644400184506481816747735252904069030571794600986481497440228328403638939663278885249454423889752749414106659079392667309220722381455411590786454179267247733046013172648505687832038766424663734021125043426998441689220561912551235776575651561276930718948015591294673445938312263830912734860451222627888500117295854663721389958746347844459711184437423110331196516463928920378196791708563603853491976579409313022508350578788376643909384757055228384427228675286251157499844155208227528316640479235800562466120541064778824610099101561606738200011807177210175623791500638449565403899875822571208837823542372816050606038288522864452735308882385333685861024759684889607989221376587611074906315177719188410849784907547441732437470409828749130803081419716731818125035229812723175795559752736157321036047213959984070583173015550130326758543639025075322767647567944389505303736457511748770966156662784059864338802240342451096042004496872147173393086490292997208601057603557029501781546740766092185539642097405496438805736759867157461228494787158529189531706414516781689294186299780242604723098265198792694462318944766510357032560683659643760650444753695018917612286537700928825085411364010978024123809996179437883032600190783266115484963352602760644852286963516749107425103172993080197594183139553038873302920383258194956916953409304957098553635105763913054482590950486201760576804089661624321609839383778252533032878839437986369568630429135162072055844158810944219081294276258028977479013432552210840577365290234115239725425229365300824990525069449542521419754107752331098683393733825787886119612706146721495610861386008294272145387041799158401470956467693658946413363639613453399919140448278821399309417067334398553164909851400023657343211243142615596947559033156999816575183204493909582249089678709543200903129186709916547867841126511280206187586428897823200609476594806983812332834571971779729604113948025909284343375402102273112378921810884060766027241566857287170605477257310562858525640018297813966726417280259718969332954012454726994582885954545081617250562021539303718969306380595950031266312976780537181288342453934194581445478328796581321202282111300537960170165444155311741778331027746887279804233493324270575947590592110846340381176921862055211185865438696061135841805020057478399671488552158588352204642243506575610746306528564951940254867873320901216931182978045992155639965418930395595062623949821615588501429815715617084082051374810376745511636429951623101013621331678194971664464607197436887664175290139550518551093221419017027570176887824887480806829956246409490056614921703605422794892136089257353691753214303504165849093255964808403920016859597866950524507632409439163854768956774101557418260195954000515043107034606698008870148936972020595907163800774632810092011285854348978468725355479363048897701949480550995434152490913873947070815454380897464449699827878611941096152467540613948956601951654005859370998781322243059879814009400332196270920617089026329849936089138739126655752857650363311677391454200316702781552282499451499575913507941952190230537870870166257402735994793715254038386747244782240469984373279045939613150765471538471023554933517869611824558089879872091965893683572734911551457439385390500296903620513110619408170339543127539579020689079928334105496393652611803760568295791822429422882769001345609575591325489559793469136556296311540545462807356716097357910158364979011326351770333806160986404672640994250712351841936789127417877677698685205665441645790065256819542412086097882665930857169260205993225140334535954740271607716941397242071867384846814271528209720955922225382185071394513895621270647000320886428542256081300597023499745676817994599060515949331135315745110270604279424045422352647589056514365574551021444177474606670570489196963105137243437693621651733051978145029861505134101892393562940069938561004834013077626031810118898333917576484277060579386911345845928539103554222726458715238100337717843082948476447681566861007475192069405811513520071051977939835297695314196526659766808847644531197925008412348431895832495699207769591971443615641322061203603273695146318811307405712041147068029765377809757039330888381925539476130251259348355360964860745759360508508249140179656461309970271751202507174697444068085541100906041446143379850839261106655715651215807427456459854640965655760162592136344563308315023367021153617955086302749318529410594729239733311278291669752270862799167061337250527341570821923599564630699384493649873116611423680812222377951073503437537434262739570941402466047565622034733294908106757757517966477385740193237085086546010331444789203974403128198071910959032084107858677184031097339822265217206191383061186022714368701074928172226801774513002218137909529087276251931098858967486228478697605342787634203837658727831737585807875652193022217274179401202264391019855153498800734121621932308502363352581334365296590271266121579774757932868206187429483676369034228853762004215246386420295406424387746104280540188773919238749983374379217633396158934481282254472159487758925654897963554207774153993237343554178106507676866198227575141457001751026624924641726504977006426635751041979643582320867673949928524735192538063494016529618110725844961646045220668545978000436407907516753054309089166468207234362700341833278180469672799581298982845316564635921785956549949999663723024297835752959321680670518905467683845324339505449712956815991716345533814474099823242098127135741324051221333527167370796114511264945006470108469090128008141399072771305773136870997132233537893295350756035026022094914488489307867782574919729519634430754829512960875501061598840559404843671541413514833449499431370993958929441248759633145184480402769918296484707872578453435732636300522879450015961650053468567706072264468548720374138121027154687702084527164265603426445362927070713325096229063726307232339653765200491659295342390076109186553154097252193422883228950822252848155639294562400005102840797395556503326636708305401390044812518788484706847703448790455119617585506840692200166678181715072052843857358828353367408466853164207864146750715318501118124737443612254746867877798688535663525997906131481507075558127221869869720604711985915070040623284871126445217846175446312691489380513965399425137143960696331368967540459577485037340840444256983973281084550356028684116456146249828175437588887278265065322368174406306520953135915156823506719056436287100983790858824308541979919223665295887244042276833817005612424681831744405278635875289293405369863886186861153587554919530063278492108513968873821718644682778925372520558280407490157406021543648528950169976923869691662711200481863073476484333253755548280597580076745657378045842973752556705887368428698618195909928031945672075757589386765997265886704689460147618868581856511314977391413157771049633558313303264262063847780080518931604068597922342686690735789840041578267518549906467412375098584417156174093514824026574326998607637612011510956001259102917780590699096463508494244550617044708231663256539018381629542451587235025121712634139153286908257209245471419942728558820498506933728687237405648730542595948343571748954226266842953897729493821465061836724661890861898851940250145425510373495529931278193687483635264554896172766403029992204779292657568665358933355897265554422300235612201266606560386682349168894560150017368097370844112948766848461921329003588859202913739477021148707877539039104464534393994906618992674374444134751302990062966770715795363896876930576591489697847317241925047691248617213370737073114434497949442422233827558376575889814038349262389638803643343544703226628633039607825282796320307703074403619412742399199645809664321176255378180550692977872030568346825651049570617107656765029024959798406998107506582241539467272377689858638411965992944251494933711529278748803440283927100834100155252372611361562855549579118601584156867978785992053409074224448715382116189810976857335491290916602638925646977713168154160696220747030954690990362842169323202787780488508817196380666383331525458564812224336704193300677542659788386980222363486847221374832396859532212315321835167813882925654237523251377098379850155198222935264061990625436821591628494930491832687908650578852037605024454275189514898412155803291116954665546846752836447392907438234119301953929351683392426352674971238094694005753874448848638510995863486426343719364798044565392730649904866807277815145055971979877041729987914366153888867960201361630810051640575898312655575667344424769510634707726436729777062476342474411467995179071729577801271490214352704448732861830490878517599285063373212685558818152328537657555038783655622744277835176328454119737281527313887951966904041365324309213531611337642571593677027096887198367618144471726389840647333152231629712054751032970435597935201213408974089291337751425983844360510857841156456594267855658019852068906974484832443635184824785178888718653864937438202624955588361522157430319382298292496934167559868789725712951005232871866029734515061217454177056639325998555871472116954554934342541669822442227497856853274247283588139024701713489965173750148471963516071354091884525042756004148201150767322873882594259869293445304794148986296685376237654414658556445050715693868461618569199144220171745282244792954535561760938449244634068403518004210601094344667798254023390287767846973010993361224017177737524853784705169550329092384719590943099320908650974746946678284355351121525905946264027948265936508875353525751359712202758536688056244182006373540701617650650717644307814786692511750776272540797521470607968108918350422179077452856288418730229075843502450538237083535111617035190070310751406995853249972814597554674021789505181201811582327948511247188517043401588374304005375462226774131354933227343877512865152505529711323449900554576831332760891549057756331500349591969904789929572471905742296754285191438538376259568911314292644285427137637219835855392220052981538276486938806642884495189879338735452884609352025721584111282788572785986163614955521099503904756333194164735101466541654401052225544479040896823163106855821431526297454771088064986129474918518218064586459628219612936409689834418558817451774799904457367268157535694091049064161250639688942021271243134791951052193982087297789988644109560869750777255562517156405177624779012873445277188970774572705751876508289522638734466610422992821870166721428505338240517623582022795543851126141003423000447085587786284174271048051284813950130893698427408073716171534448349870993653210840150160096431378853499050490828776000812414594574354851483934596770423117708617268213325794865157557481862354612858729575336871014660923176683373167769159954598088468514710219847637079393117035810294688426730614079911744469960316832910335104481692773602484298299043684115679194927802507380370059931256518901130205946527076181078483651423126533907197533445827434790380130660391068218648335421805445720405047340004278133900873014288835904421168044402834924655089809232880557849342036752415317399765177309313102283575564334573426348103462303554388010306687043572759911024302309847057769532537070793583672695046090705288207468241884140750597563245660492186200275291421672930355575559827248380826791130124012999337988379878581867113430649875612449449094169086170699146771600445186946635400808356307983986059978623206773160559357283686163873877937670405036033613594841097800363981748750788635977689778229603969980206212659771539377051345564813066652134035252326025365152901475953963966494132834587780159003798989388640114328749181458596861604396889586872806494923675898435831744364401391309767868568083561025457733731317360342245470293273326054399514763481954580770191907850699769922633352534242370753747028402868090681947590711565844557133776096261908759188999921342188885011104440091298289010523812933589992789821892301416105080269099894070588559351695670163452038446774505110680714203871795005638587835243310678346784485474754970768078425862378409938978912167724898822728952354502035080835055594733320170074100713841149094214269071949719876277262014695583950528809552129322673937779872965847339024769276594943409979649915363019698032795120648591206501138533394088988054244366101259814863330079251592026494073803711073983319586049546629280027573908406492559891187880716755090023304632102780544887990027854425262968735138859496864080752926065383492806344680295295655789697325966085876604151522918734041666379987123174125893620893148335081278544494423519191866460585383626922075921200265838137498237303719429605143474423210197527729688016210869576480599869951964533153368311398568276260342653104923231512815954008999392085105110970008996636501408112253427457548589283396830648928746231837809181194042598538629603166674987712820181389103390455382119922736925638271089526423607919995100078107097382911556704269118765119548483240184156804388774376788494187316958977546733104089835829654284973421753094639949716073059481774314880530595403624026446670394100846412465375512009160732331201497603726597354011652773024188243577168922039434350025531005741713345372244470991873800183002176310054428734436721686644154946835986810789324223769857481229602556463753090553858063533687746329216178744228192125098182906010836757133000201143622878088726278085816224449832117644268480725150030267623695796824247919236365761350736121596090726728341637295857851215117792152158943508346728080228756735693816230703152599399481173627284273912426768972800286809928786194918570999220584758516066979979523827737385495950333493056396152723020540284405009123403951169362569661562447335210273292202059763882870876236748419237666689517384922423253609662757310853738693219145596790186072249964001292190298788495138501360400464725337737831635664691197074406408958671835057799262803514873416789030789891253911293426183772407736317657999098400813164855477937022707406360186043657753602455018412695522895540901971390118032491668574179214846614834960222013508046859761666539095907826978779703719051766099737225426942180435244049685902466100599397203956777161970752628890163604251772540284637122589214476861766459702306636161872199128053962208377244529119326094133796651478873976297390890266292801967582646938512791232208339395450635068638541018283402842921065840814911629108262486614064532048131732156915436576150939653588972386650283538620958197126558714956757386318878101630701797936846533595880260604991377338914496368149112990321919545583337389481535299184238113050077114886237100533653708969126115687572147822119130219692612738664427545603356360396149175508161490075596790451019481995036204728192394571285856970850538264727279842034531871893937481310028134294205609822158621942953094439050514197174209581673336210830056876501118460471911657733325064744354616233626861844694969656938303261421298721119988041310559600686990004910195737281307981807719662198404791482675208113814741561738446860841852948918305507357463468272680802189818812723164788198881134528005542604528799323029258245697392114048187214675249756991519785828726093786882647800820382707676312092158202032595594423080839528980118786806797844482057949245098202040343064949256795349867337355743481684112262855438283329987697248229735462374206252750420860221156541121615341768531822093616143688380886075103318772521817611327908236886566736518967405488647325819688647162201468317829567395738811908716321681059612471550002043996260607290025239165855999287501798913750198737426444371740082918757035449917643646416133208025196314113934685192329454444075449812908187065383279123086544623219781550930201644088607368239713636834509310840816952923135951896076259192269199280781281615051639469718340645513422726915770149884470476699689062307659192170610984977059474242611336645511345310198157745095517142136116990218728015532767192028808376802135128102300211395112262316666161598002448421150120480727014389303809085010260142634260483443277872121809450177437645647461548640318478697661127596661606187377559379569892513813778920123105926987282707024518817101534687104256318228112946379606069428531579159326512710850214330695403976591687430494390387504000641046209408724777171206963339832044558831378175639369198778780668732765410631771587394746308852201086123532035135102408802618504215591907340765915737459613949510787035333198081811386622928846617575084950048320877602187658268269653576311116111509653979587803656852487549928604380775074615452890457978231210732438670700795031783199153755965199337788070657044619716668633591540031530251646555251745501219603740281682016315823988547225479561726881512738429501195478762402365417551370543516456513198695897248115871028964921975378644690895203074013813527901600585868528393479670599553270867025515760476906363603635430609679229905525724906553442139121372163183750062877149762195901900616848873804752751200185792231866441485712433119453262465540879053779182210258968186838579519762165845757402945760737448339547382824926185607543606896049838164524504249828627091464285679757802216711334785419585445679376243872250715386096165072779931407428211223265146278387084716871018084552254287265467151845807482003083929849817034219753560741357352184255858401330340957073113768402909646650298294265015477779202147841788387037198080025826046022116790591623646213300917727673173750559473911709170472919221738016056594098274418296996800090130372925386364944278025693948365667217217556915474747080658814796748489045021789565449144758195364708014002002233932980623293447515944650693535282605308296225292092705331423255877505428980477514326725841401631220003617461891435682181072448808579271619213033748394391260669527787836045838996640601380516603366049014759296085152572387946629006208479587353218008718238902847235250098323126718689125440544404352384428416591745902852257124019843031005812150360474518285797524894235868342498545782433432984383237723879510873152485043817087901661075592518110522989104174115808666784704621495124673109493594081705155626304999733123138400861422034965594092005356130714373141569634435053828405142148153482462018404596913692839798259350611901772686929278182339874005812216499370850094245700826786700343283589412053677593464106052353083474318995378422547572850014165299377955626634912253603122630280144888339251190856135091464077750066356314071433184914685794368180236013443371704650178359455525474892930292803435310472317471106244704689750920485926649057619640482086458198537156411791130036685541419215445223348829724822112887657263159885771611714559641821772133799832740458085565423623367879971272667023636280806916713005325867247846583815397341550373554202749320615342552033591135167745260354880605261717837734618321018450461141844862455506843301081689623918998746536628619151517388729200388403743636404444871869950180605544444315259886617063972709476702279908439745720224381640916948120567712864604772723756870836177041512368711386720252478332929509639885976522872685507491594362749875313557564310644233285107066596041023825358447488920595844621290068717688785094773247783390174061579043111734626396986888533868235012671919244393348546416833045358379498820797372307568420217227465751174608329471644099780869739197122949251981827760615420369453288303862656226816431770672896773943246538639893675344106554658251719000220977585324146840449148780900220782924169619423638508548928110706561745369889937412885679213303999139860344787127725028663661610110536451579414466629764042969303128118741926219678332556017046961771039908437102485121187115958967718421006280025105469481306992428012753212438737954237971003933137404340843708474349706570853236699408200251287557820296240643501936095707117599892593566940205716820634110202630140440725918230203708057817860809967440409372432696932371177845706999591814082783932156399430594972780211828321167528152838299916924238745189236500933069366284021510584953021249602506988605496744411792982731390278233970158529735556380857390701230714088126702866311879483005096283158756474416619488374205822497467136386939658683915430825890494959129401804039705298217639161716563754192686182708785628178993937940680257875984877039834627489832657320502497769289585998608139449652417906410939657188768119107880191537872839229611791277902188908422804161231299935133535776442064426752479945546723992152248468239297778696732644859235002785168154101496678656344384834785400697846340579472474322524555922811702558036075113005571103572095830523853952293743743492840228495138805749026042619054338161428946125742112105092821703542553865990618053683683169228908927774422383635684656594740126401138277198698617404939566732756188592348210413210797890139843537272164092564624088373114900971131044904204116923806244027873044949790233684707865225224307091291398947153077073618569880688680169286171135595990005654173652142771337240967838927520209842359770920798563527320477031184924266559671222017395713890392462046324362838505259465302659310228140386084610949300089366680027606275258366649570825300311960537733527843725718816428301746273846052641803602736673903989813159234065767983607525301131498074978514120562414733235670037381857888323095500108896479622875885777169635399721392685976193197195247002494137974584430073544870526514004033792938816256632951601837375865654061019744861579725843713374839314147023446786896509139316190762996836714938767105195588820498547611812136135659378670245685962076476208894391190261846116728143229848567915861913637454247447983287308737881132370557106628639040899290056930966316937106947668585250855226676137812671508548905097079690467191459770658679690727005205219799552896906861941147718823566659853704680356540279991532535207905565599494625402514580325844200735539148563627918031722004418123090966488751274334300574999214445860502945126979926206789198098746852762677904173944825008267835254050835550041181252969946954490103739072061614265723212093225266339219612093332850351382532214775346801304475641035004244513922056198574220321219128892333010293700131290089478590514231170626149352767344220700936318472831007154715173227151695345740340895893498320492024754412189039589684737590604991186560105062684905425534964646890863156485705257890183819211160840291820944066645275755684767344290536268382340555553228937650356009120896262457712012123003197554068425654407552799582141287616348026463923839598360163462915816319052408631595116901087477015663708924060927506016215128718423976760298072617052516930777911707345633777764091527925396897588764473601067862773067838199160233565588485692563218609383400090899721835609373799568704018771319922236833701258697529597975851965517655841454618396718977190938445342514226832440165574614159819799467131966659839612824021945057165598308682400204096650749150564951799839188762867344401986448338836842165109214656544973403904770378743979583902357443036807783312603930567954688998471658810306433959012049131830258525000388208723619217862337922324851392583331358898971738908187958356287551100534354509027476626333580520037699169580457660241723401205070726036350738446234689983054998030932911030853639771514627845426835469724334190677883870278764191172258831840701824995020350925364312963259498397981524166342840662965513466928918360783250972558205983836764275327427744900530907078891055444729435115400276057103556752852966563569572718925644446948846872866418932056099427669540903082569881001904935083887054640152013012547995723723271225045219433916764360886390379491913204838974992668721832217723542153460894183054715728665722591868161522505415354776815877226105402443993100027690557444606618187151489835512545263501488090685977440956682604337828413298711502397450524005687828680899869019086569223506329267676309857087164318463756057590176289868478223919567326706525028005341698605362257722669527163951278365051420052629692944111562574755092716401162814887400746506622317729257731600889058862497356032156748841695830565708255653772098192115265817128090331120290760350522926389996859940940010063203445705290004839365996363053226257430810961308906755769903404100622764609308278557319553495800323354496092276585042623783463467485873898244380951196249302552186020432479930704831605915517589027716900970294936456078056614963635370758014911929509963158566041956379373287937977847860280774125841315611662167376252295035767998620041865954290654466937744770610718412544631784668005381984938390378561406345204023604922362264122998227916421170845288030472758956237294089075648441305505623342428760257937236819325179550423095782263790459351458371560593983471113654389213704283960936675965758929696974133905847757307316072706238705183177180477092528981127073896545297031905621145184577810630840729817446051844207997284645987297612115284077169498791228068472894335078622972649539544298561915395729927828647703673906541861754501096518794168488288093487809755414028421763832459761699402901378232642318849765470208199956602626770836674637769828187848429819076218661425856231773128758022260266329132665371247787494407919235626348674723903682505408578868004338493822799468967466793629203329304602165955430160697041338583900160071191044836199051606018963062302221110914824492114002909841326053118173699422373336638649766367355280162299961658528106427810496412459224190245401463372116609940240179007495373317665101786894735575428277072868242488289628459651195094291800491130028517330225123017126564945226492198153943181090671122814846034205814705897906420326972214722588821136073500410953758835748295184864291570640909663696506715922185893706675741245138550068493665572737516647773732100555448856927073288146024629838493862993551546366356669422669292194806134367908270443252722816578434983361271123692532068152579425503501220148300871440869716907257256347770561328124727387620988207167266434614002729544911188195030883243047936777732209884567804346316169631864580381722290862111233370257108535042143603333045225681273228672734342316144015497692114245878438676763808967230550689303073555071702433712788126770085192252425424848673650867824907834454888258400557850848713903120649874685412576664442262980846935980024996266459960401375952531256446176258722084836288726237172134052397855271471128206625185034681494350072368859446703155417938790100875915746252789105801464389174731349408213600915013716272264061127479055609517153185631246120977698123137756330469641148314961947380687997557433888738479555062258258858523748182140705114859396317273934574981219660241725158626068549807654755868115043819501938604562407201533292986093290378513494882909049608155031384967628462981849079525257075276601252821533901371883549016648636706022590247759664500071446200792595414466839017342409572120355301577758984501476034189967572508598153168025903637176975757354386538752956821781340151283897624471642440549171217713105510803619638387725864369492514762908569793797212728466060643071672160809478004221042261317419224887806543870198311155448820630490160917487330452959409647054786114861919751207347401301937602581240815394349853247124531172874209070242322660854122072118780872198508239414590630865791954243025813844429638494797599446485385180885791871016856128964428479934265436915254874318127715000070335558766159551201988840297886426873091946447992404759560456449277142993989842183830327351330177963888363757190379229332230513704785984881181129997651373651187123437363780583002072822195408378850276676563473329789729979355541321479935225444018322377089418092106964480925823544388489029470246779424742265874710635221388321734476721365382350753566458202999796646866365173477267101624103105292383144839313399443889188108362224798533303621749693503743899665909317633596637353143370678349663500770084697560689867458617092938823508642065209044794619004160700912573799766049406863497511144821207428036785441951627193431087051295917049989925941388582261471820221936571964540523212085736392990139621866103493287900619453993135854703504496489126941822708681985634829797866998838474258225967246136384758443352905158674912843205611143534319434603387355341334845322652579471979362774818642079681366125832237314300449798609869582636439425025323795567630308690559981742259584310206141504793315606795671275388402317722915427497579628717005641934478078541226259595412742656550030367135471254779171847206550257220313672932259354534623709590720792752066410035472723400605570711040494143014900331867308421744278831601397903653427277009167219249205123097484804480421394055805940851052414417362760004034026127500175632350275010433399293928041201109004670803612823236660524740409590511745588901717498800697186499617000439452226982379975379513254316979864925251259253967703843772219982013059097355859984094608544048414568184562092440154523059008198644701598517975030408201583738895951408063120533641714070042213869429455611383037943204298852460129383232585666385533481269556603030218754653878470526234888731997639405200423332234562520314504528677644091518699751459541659654560959595406243070173998699655409068844972342416971920948042487539893942012873376707173759660298011440093373530573152446360851145237439108280614720423069297874646019376692128203351326152183397713741477780824161474919831856699165053484207438550373796190363094752462403747432331654598796979707105218200320421713806322601631175234152703543559681076072658727740865199192805263533780503148319365847036009099809896530220039958422593417864504251955144975586269314383678847847740318294822421975523704548916935735750111438910493150512572112873682195467859635032868172099681513836303477078399985709614990179298096769312642166405631747314301887321273582515711290406911923725898412901353553781923223111576971235531241864731682591372668930045026223327351383614767299527019168044169081172760496809591128639971516337982120991467950033908482656335576066964197172571527792051254637160303241779671235530983710877270042138016002993614258924814034170032259617557200907883356137617037312710718443735523061158555282625329899204250698032382737006613186098420159382124308311163134666268718807224030756622266665011236489026930632120760755277197409548289589952617436348289781921527015848553415926358009996434951710981871691519493096881292250231084868325622213633338082079809114581002222131603812407480655141427124695151681824758052390195223926909979060465488425141712771377979617069364196253829235310186072863354453402852127399982834451099578202417685496398878421875107257676888169872217331397873527542396101770979627034651407007802036713377635862342905495865248456497932859613870919825726923968770227643066786362815137237871009294214792697569659710160898135018434637209156012169276198746524700104384377571631838207501506556703144350344054309125597133435251301772440010230232051455013807235779189704824791929650216794640801245198786743506246304401884098470508175672586095566656751546936853849998572137061321213761032544798170240430105434592733523979430947227054774342606854440400766175282436420008405872960980249080702859197399430942763477990465643037481026740886823319636779263324296274957239434675157285223675131376316754115612810964465671881768306420262457495943184062594157691370370777502573144028984928299253901517739034678096065696465729410144856423011333214431543166298874438956111005998024574770117134985866091039616916942939247691108941152899997687562884793800748987798293225449705857254989962161224891256456690429211884674518387701686402011016357545748313186889977447839961753291982759815012146930741970322311524671155408122095850808218190732357359729624636306403223396238179580876572550652282262381028567389584067000031097535788767874464157685303833062652638836729062162688114413251205547565254928033268594331359269786770632152430918182749365422398828841543218596251158319807560941314878828747788146959297118663865717528766275862712910313548802148105489852071620867094543323311209097546164110475858910148219242066558550087540613751480379576729300782632333421902504888130960824866080707811528120784170295446953161013997444357916382420006071399442342562786055434551864905175624452399772958721355724426471809592702923856791831948966091243377859023822068003763762965096301574194955725580120260902072351906231292978407379276578162476211677434951536994723666035048527828205547561035836230081821120424802047698813505032684097952432505307163675872559657896329260921950331681267179529006188361103371678430675408851524725869525905453837220074591278665559424932057751010246781744774951155556261947978920980971370752865675672050071748539682942947958129925704034199553465580378523675063656926469872541821174789323457114128787969715398127781084582666181633179123613020540174903274808011438088978647347182826581887576577645690969457740831953258754986547723535639973630356234361581623812829910345971811447479641483016902224362668766035890972171416253353415227218052516275347768919664186551209219219973467424817528369983907393081264607439076566556675562643103877385674499618522464792319325620147976746094516260928117640331569260860793703004501119794290151329972862752841560083568644297138967254246238593216362496066361596343431764041266365991576022063497730454342169539724703559897558997599567966959954593389376910754412132724950953013772208564365526093138680030309794285899351784565110876559102725840853516337446398155764927553652379467913434161857361913588447217150372590179949357496807596250658067603710631332073087057673345358394783230194356419393989509091583352577797324018062392973638133497699270249498171757910712966246219746764452609339275292322217843567957324806602970287408898183849132200294255451796127397946100997421791293701551306455929243678964409348556922798119946063106090355152856556680554834006358935245316496416210770486376270628028623749510407630277553332928169163766694515672283623116304280675567386021629183980482518885352657890890332502020698395224644338122799918797858434722402859487567735418412495145100342042312173102128215932542883617935102408122852442480533160903272104692554255486037690000671633989818358092680000296719545070983097302166797734899470467370940640672789660611808857951379753285037324366349508472519799958240791988488151144342801908838980619862790824840317833506284242584003019620602952012088508380513374246065708567304111926450551618929967746606059085151689036810262024509116627579016405685964445272777741057620692893558385649476671011527705452146027620770061778356371048646710234763294529638180987399203733818378404344989215260955558891820608476611948926375085480517716476121832866622045513273230735378977077762618286855483035669269870245214211666200692572651034160862465075797760690236023623731016677971356685175899234237955818429933828039059225713226470897443993600671011377980948250684324037929185386387579685188518985427669628546134044325348148904292959501077242138672434905336109080190065938849808251571331602235678424535147778450500936063744178593370492026371229341913745545039949871324486149165949489179812820818168466808281810300055362970307190785808419471087456415799098265115585636067576532942755560807313195364248181810564681263531497151930409132064660537670880042504384317336698590087782791866871845116657050329070866611053671720991018522221065735696776075904920982310203895000506051187065805861400012009302882997663592801101780269081401783783254464384317192723829955508178508039511940502883539824397400005234786768588031476997092535958623361348777347215471934023494853835457465743960292854377815921583835898530407957163305861719217322715956638909762854646580272797504044721168554521247608674175090373350272955780588100080948278428808827554277947693247846657831217136343613500365886813423012670382939509924080764294896085362457151563498544941496818020354539075059964162325333470373618652175266378774716457343376482808499760732395936415786913318382752641718390879051102116656633366598220553664641244942915178550572279803359710491935773866865993035095232342435182478785350314628398311562561491618189468510036274567782510585280155938686197163421938631944945629208757352061289587937841224461780448423651849564551313026577516470999829762096846372160236176958475252568718411794389232281603581789159898480761076600275133085847821945064839143861289286396378760422400457901337160672198251462625163465078450354609598208156444753575508585129547806540951715175144701911113208230526741918944778423731477561547428390143993705259171590407064598880913422050808157952927804477158704664128082740535198758039283334478924764760652172082682362030384019606801721429838550430083836707685569365733237480699848854578334246718413006921993539362967371164293033625551305227685753265492664343385138429621543607839920995325149011375426908686110036724383157815813490657191127552073478827710872217171676258792816977490276889632560129335480204673578131802890532153814712070082401283348766435141802080205068093244213339372648832192479190664391207393449965391002407172055569620755705308743324728304174451323652334721394083971052687929097599369725066978395619188243192444060531287188470423536597668407060151764773933947217714894381094431138469635215655018195402942356154585672039282726069072561942821281125632953475835257616635194646020424897435090808311915066955431826451416879229782042791881346945887253861580281103911064181188730434800709285886707595928450954992570717923402132829210509021046388025609607543041861859244680754143839429849170497683463290378985937757286383214732260446037329557415352212080775784739775840551880735070668639240596132653242690624810450512914130831978447998437046875148962152373090076360961966348772724989426128581717826864293468752145071162736779596522033277152975154149205712751812847595882479139232456208467337800958802741058009214518334153269067673049061184738132798420584450856081890595993363956799875687650496631258450560850291124379945482094737106754469301249921752229906409286030169188449591354045262562043456528249680339543336163481460184401055907528531364085586865841437784608188775680257864898474372926928360403175150310283015343827508396460716683128136649005750794096400891981464350499862589290789557537189790588461041271960636191918772425293475506942448454672056508681898306592357232594776106684890138013679905170203085114256691464669181626922650034476906265015373779139660339807736833723941635907900176179030259151090550702627786196610701229676679267471898133929229653749565103660661535848668292746055997956974286482918431086480560489473073865637763249255701467193422221917779582159410364997680629282908739392066852882971311391114889468496754062057639628579303363738821997620516283064415120354784570604563229450383131626758835994918112831788694614689508994173724973899240002229359259725793549089164312097708919515989114661803086968542486133259285796685632170574079639121073205453111504334744244650428792452114451373580847069417202937891720543121267385267059285167660834089569266443822238298414699813201101332274909358311219427512872853840281683289467001906234013176262597846709219516450063474750193397359240355305353154732131136776091822586822654532927719253603801181471206273821625362678123004779378491100599792967273624549544784866920418305578736565313676781839768390572615249360944864670429111758321589096455117726024365183322570509676783580097030925276418080688957150322006239337528346290258460441460055542538428665925776742645713993881280530198771459735035566229835929669970980342319071830629587299542277972775053016383146193558971831026593791391329282684168417457358366250985985132639628768363468089170735760684123692432885970257051679216472827531907417931546269718987096039146215552884431727026196441160928259097245121144563791425130141717801665389047477918274961919103249751138288685956416294569315261557455551087374155330701738680767581398837164215753495840156634411800298739303499971849249222119704027526297652659847924055197483012882291445913910627213089067172635463220567400415709809640202712117554408332238505785384711554942970125607315243653473119297408214715790682420234702271487504130106612761072727515926803575456969889998464755999250651020898152403825167484969306303480103472040299524784457732088364908019252773487676988245597793342718493376568151243646388679822663798467593812463104273586709388926205479182649439120832937167182069187961606160213536298168069476239463031928719377634082372625793128483920145827764338815973818533079380061332253366541454263275780952277952676120247245860626916513195422392348386081925049314273417391812973417342378793298490947163209758437328594578639629544636822561411560554232080352637857647054443086699384256122681624416248806964772956889306726252021643513554682149882343605110005685378635017498588509016227671109314001166055812908040278068976550592508148842954964880045930234004278109252285286163535328509538497111128157013475654511358487580351363618183007987319185890092880061196327249273172558397823887881070402890048539743950641120620969094473264899057499231323058385781011385596001066309786582722851061178697539887751510734999956184921947983830327352160209011485402646799115444963310619811737564543953123052733082284201324103811230370071829220574531734437733436443993805965731863659839950124789373830000778370813140074272871680625176788745562866703033554362022159463458124654031245747246063129646854700877777502733452541857036362593517948074799118434122256958389896633698409934998542441828117302563282421187640373455199615641526700867604703356624932024671274750920627465158224658503277103708358191330351458557415991786989307321481976580548993783698121447787789572055451021106171803306475443701682275375141233458306685169149363210048954410814522288690680392322417239537780259515430572069099136561860978398603714213155645111752581111759288689445505989480543343634095948500903732090632438153159672310149066376886983648491099817642878334270609539027874289553843591190873965395255872026932162941598152829143438866570176662381742334551339208755997560556665680418888241842130639911502310676303722930452401288050588055452772845254216378010830070761998592555841813807448115109637746730909154476306378924834670671340366573803832671795014637279406629945604571846563935546047600368951218428085169934551292968278603318030527731560770703202469878175873302179148784642454545621452114174428442301258737682445579295944258019474983640651923418406931378511039045402456995560124042745045586519617073073227100252728975609014607828711240708173573551512735386510083634694843685021895492297038639613564087969657128362803419059374442628851738276305810101694570194871529951585402944127062039407594901858037636579179223580293257363075754157200333662063566002006984972550768381622473110928036263863499213709394788881545134286389306255820039506280248696065507708305077816856392937860563126339119545500717500545968368963008505621107430166925183040176937397334444188960650423978066311847232297317612652429954664040201450993157646897677644851838745196429060707332651534973794982248185906720653919441920446437699112977772891761120026816971918782651303423860288480020958766250353430686887859886168072221336475429698926875937526140127682816891785447439378877864625037370836302871605302117413163473006704592401907043588084243670514083408669321887731376035170105459657864411645831374880530932274443583967306883235622965694132753269188321989359587024105037143545761407834959936004253749794818564188195647337403230095677165790935526409036531664957857190568840647819351143505375100669904459618734159480115971434428245230589953189689670339316540525794042233739825995959129795245819235812980536343490389915289275484622400188276814646630592795194441624793665907456294943541115184278801543166369242060631406410345951352488654753820230241540708119343312559809845611769561572786978859678377516759311032386725693650586910656518807500117704433168373658595081211000252059292486618310064174028961539212006386140082651742748567759918758340103022252434230320664509143343209226689807104293983077431347359753409619413218582731251595978397011884964457114709207506007975387153051634769626156292062537312063122683887704249600935919990686564418541706997586162107757522352655056020116252101231713352730603686260284427757051617077538100006109407895860664981955724517735683096712530284942408901048503445288284775850292526447975683619666089949801481626087102641453462763164658203465538114413887963085029508784089977959620082769616359145191618490439989389577721324961744316921531581434809326577073739211866865233878649889808417116890610201475658003777882090324330577998173584130320206773734181173545858388535352819023521396572079594969670727322295844608655829253601410138294264043964159454764326304805672462140834358118385814819717122877038461042099198061247740923109184980146579894905377837998651692336248595368976667517941191087986391988327878546684258919099753939594130475612512180723257939426899854441265418499042022085207037328430676148546286982943603550302783587315029029845866395031073887146219359625270491878161547593691758454901951872058338550903666450677990391495957455498899756976824807981455397327631527221937004179478528642123252318296069963658033429080490882482211155621368675888536761082618158140430717558034886856208422896036090048722359283183691358421936794326742770339467266689173479800634740668720637042122850848959924855817661649650928430663937595439443925422874693883718412954989922909187663571295920556590604953085935023438365927033874155705047254026481561330391983543917357060189429989110217844703073693583846547992709697341378130293816197433851227594594482356512462087830693316567329644601549561071458968197430962177047120003577551995259518531984815986123793929579338793472014977372404003557987344256707528798201842708318441985196900237504439916341828211815466957969420750448364016870905637501086772081659882436854022490685334172579920822613162750302036729977725904668658198772632400651609133110909996793106869830504823852084120350261060804416351665930435191122490150378734828978402432842850291430220500814136345307788707646598449170028963291224417128334208129204787893806085153773822683424818510636917267120015354448050069907479203396578439971164628140885748817431522991194141297457669635781508771932617139755481522955944425196683292442853849832877260210467716825663668012160177951662088284933363599932516546813591066475865885400006905437918689698449205730395134794330127745151838847032948909362392379325870512259721940779028247237934374741957163977622168499025811221309676309682499932595217427372272132948841560554558186250945887995868339715365647460742391171649677803870645254867371768101496490420650140976957855799373287251805466612097962646148846435918673426854184750642140586999430401353640509011413295115704140663900915797767448555710047031037295280684394247452034828385572708248579790394228423961910424342229488066339269250896158794570160871570867055075922132806207916903416932233000054648593662470893070213254458258656919275011955100522483258458856401615679640518897366511414917869071938909195032030551793645918100575564682980849874487844718336360487261756945651757354220428336293112124436317383648719055717702896250286816420964964489630271624795203803767817798184816618000858745665402459338521094364884940270359328441768928015341973647676060904208793556574330615576792620226434582372009786049162659422915542603664691214730096450676079486984958890887513810367648802371774271148406132506611760127459992861815253139966023932583267851026865643976905894318505442703101326740378966823494629233436630518979679855636733148597784133597929254403853049452940317711719679382514520697432576489253845091669864925600092607325800845714338791665661797216490719726745892292474510431226992832807175965941674581011585286402344154138381876013692348680830085466914616758298771926310509851209004411516370683270476694381889491817290764360291788891748487590955137138947543636917225231655675578612944276627606120033524431179795381634521779911482871281748284104715287601662174172237100666031403848905262888871865359792807167685850546503494503872532891290778572807731404510873535482392729988067397143303252418332038274888542911302353597773148082672286238132146052986692768600875247504150670851002918939997330597093520308429377904751096395299252373940688714642729649042622553419156992512904274178663467089606662909077756297029560849926919204412511427112458623757267479485995688743749739185055000182209603846636687437612949444447038666769294207665779755965390238966855073187463441211507461739080145905874972944518188357612223021323639397415374119389486530778348029902606924903123280984286611376616005181064370519408170812999271844427454894331560689511854386259384532110686406511666835980272912719481959726443215055927950435617643585252660084888495092442133710347055311886440626130586847713892751209996324697253364418267915187442124345333433876373763203233790029413741497621474955544866636895856523517179935141610380027411588901509672485795062639829335139546322875730830146652996023657421133478967930788148768160601225718948285642093146124216868634591246438382333175249454302613932300969713642545325865812478936595869859397776066061242788620387901771053639973637300981032976989632140505824996657774714723000732606247068207909346967978575161607181300781550053046754438817498649104755086693727716512419853484686324627696802903156515559122792570715856993802986576788974673063433952730454028995097224850230944029206470332847054167877700620576018123844029135069182475544953147919974057408734766381455399665466948847112534600492823434901246482217200801689585941728549865984791200363566900795742151337665292115250680138043439180312211707226354888210445946373582952900827510920451086224003938620940167801843787120075632737342401241803577413556721512064733136379590080658792081543484345365621208220833361574430167133375840535082003538045190478314920949080908429978892145228044961694375862643239510672700792591769536356418282496444285192657578062368465748461229501678050346266046559087202377908395452244322968625920745899518242522546234005344848274655527029095239430831348771246958919762654255282223817209665849809154408876836666493122924179811154148528841834474456125648723995532880745201426962438474441912019041534897592086766978835930678724283520707586106156059491577050867914730692865790124048881419327941978883688475779422068570895093865356923767519683758441264286226993489106418372256844405687951041546551679559562996573153074763997548971934413702289773560552781210249562810867232363272008073731261787860407728701684348634896756222244953182286640671590791560093459081098114753498996512660873540433114387131932207086841585268684952437195206274298429446235855879562496167224550636054520765419023719890329642824497555139318214777530545043544389704666785095167018263229253717641546174411043517794175741168414761476423079260129652102329334791865514100009662845742259344461245425721321230315408468343136402326370681011706900220656877414271935161296557318603426852855171326687395122587618270182305517640128903284043928885076280001922889922253130858387276787512517564247377625149109796303552389931587798117112426229904989026014410734522666790921690258506438791748391045185279979524262207347224822919469725571482672490869694153400467587128212096153739345512237522879153432691550167510341743091277242586481829928110473070563576473330993909385281197544026651094071157593070168882572611115297128195533793700082672486513107715758964183497600120187830989360647329081057542391335893877970156826429810459472588895813679937218041453856095379361105624064513303801245047209585484864484442112010714014145245977685919036148775197294661422729490992906301545782627157064109610608611065135379122253171574746685622048356045907254721265330046265977118605024133984970892487021277914304127867717861513850627352079715673987407749497744458784262003303337094961242321302962832205902439128710037764079091788115537388789096355370698264827263150217939121625344247817033730836053836885148381089978826385160143941478148887624411464312816689950312783812129906503557413450130530833065121149503880729621895703104224888487726704826984654561653968265860514516663805770969561900970374884013510844695629035908839525435485435568059035556979468899191766310211244655259718493875200273868641521350055550405705269460842067922133732462980973756038100563715055042348286912193782628474624469801597706873032186199090265392507748046272934963595604782345670447475559961617645429790567356767326023241849115825465843745889284311156893594257494979111635552422277948833968386674446435087975403230540734211271514078997271367012236860584473593435717108002507872603058082726647558558555908494000030589122998800012160288371344369929405295846026225202366312825319621450015843773555186906105339522816386943386760801438295671123302485259373765469027727298233359799139549505947201459523603118078345391451061299215259400260095455027750991249953489585201778363640324873261501348385826408917002402888265832821285220065591271442860942630061027644754669967775129803064023345807673016467970947219435493173843804121161358590074653281057652318987517080867439188467556964564355395566648780829785759050199029384448081800669689475759016252823354573470056458020188063331446435957761194261964491947425734837624059324070457548262446464491663770576843609473698587521312013359083623370554150366953692002602554137090104596971891005469515290433949287827719557228153633731308991355032033193162886906528774158105643597361709181916360623513282906338128107044906581945938373788512264518417398784713614742737675187824527396483610671085943539019345360305981103164070451534736482471006450857780920047543463040964355817609595236992063599839958791102459570855334919595908051119098854698331976610444912261357349269222057586962012812578697863848278666258659514122047209308826172491349580916756237378601177588617104436918521073568826309971364188551831289657584467840015667002624486132619181700938257495902466407740488772620010240157997908402747917216111976638898734000229982698649660346306778843217626716330428709794009332079285129662815575825164046548411302555348698101500189102766942283804128594655439578037698720911242838092223045735391562759553166723197791376427280859795348591782384104479348425468729772195615967596411175068726166493576766384552066445562794790501815907563355514114141353838533944252986968910206089553770845751409590204266867752955017503569774135019648433984012098886215500817422011353912079694802835121854323299355993050576853245065680194076711001695448317617117148917204979118152202107391184247867834443305828653070052107486975991322823202820154765362820578701448414932792631436514500255237013457674186829872015715895340804373248122884768904043490174588507841073533405431327526537819555591931082508520358229853420920397004999733767023550492822419443826603742867508766080546136123889070541036080876033043387298357351879321399599088008263645937578597367432688399951999032524810350827214250669618223899261177295643415542288898891752608384450477494673768056058095066485812748217098049926647081229945044190325713741137964332719337425895839770614382255520098418506804908794379446171932951282068908064304677516726250774449154661876875438710664795110233420937706391856470863261708414651447413009061051614838517231658105259145227022924162503103917722575620415768268654060339141982718320121782380952086359232524409027393122985162112185341627314713452000444180266471115607601481491826386547617932556208201721152896882597187516925963332270829668132705573827917146910607788722267375514745118498881774125162096322122521641762153177880444815995128734754240385692264331854856591788408201741990234039018556126277098237655384651525154251437140836725733520367487752593063782197523488923136783038608222155479276186538466769671984076602206105535572756543938926434784882033862755106906942485851310469062140240792774937251891025645111045275015489427439308203828159916732241770964673543201665435963555091678924538447954320562368280657713025202254494683849067612246412076856060852017764358269038812918928347031994079411542122188828871698644507018601029437898146731424593927885093492459924011569250791087582958729999221802167960544139980664060160290357459754060850791200593251912440992757998097565365306187642073693736095183958684414448592118106129690931832974974070006624445929778374702799607673749154518476661915889493385640884797985789181819302195688437526192324713808391007377179316886184756892138023316389653342258429516545111247000041025246575643095541985634817423865936496962289830610732588292562193234533106833759414428678237137082537618333376817826943791221425664886505265853434355646973395998850956373135197844462826050919283912762469876192057955168890532776437343803350096980221779721689437426259244376635015205303951010006153810455562490186785051840233817917929363824674982857728725048008466878535073941812971068561002050361398594582075080066670552594531099960054729017276685914035339853554076271475155898096876391005067066228900307174360360343032514948367765261938196932186089663853008293329813634485673733150475702573745998739915863967721769428158922833000674378696260005493097141678124177325316833733905440827960389344276414804850166181618307624047181626676640532209295993490665671005589900876538760894480405365510270114882305814921732909656792119742498688977374247804275765501995757243318991681658064162810808935713074806783889587540794713302688641576724113012950065562041499509751453580717341539416401029553624499132278582659166479238184164293724794106840611779848271232312317008955733567993367815248354588273515700546229291468580697173489640800796825196276451861039654915910429464243828559762273570476493538264880539083540957372564243439196166284620085278776517286945551543012090938112772199379384054685927794102283673247811693410339922863825109040647276505314350012583020551224941923477472789286069254930606657893257287832835984532595327351846029369828542531648904385464531624790103526496598236974876026545478145066863516310517623785911436448325122655914664970930590892210729450760122321496898594930755353912462390505690302123922387306044406707320400423412015197456085351031539109965927611075036721551547160432576585577032267741228203091747300630481597758830304060741368592308939468006685756427284191787750104636111615684119653578911728879374834676760155386526070776711876753880611950225435600219946481633336134767595908609242318133684562900237305897241789321975163442070983691910185985743756233881246025434968632911936993420232784148161387171990523101735668874920194736209002010469136359282091954700101535802624840160863964008768168956697702829785800861664948147697506663833194044561610102505791493397380964654764582490298613425644055974286912218846882108189140387297277243022304566424289011961965334556146156453121134179236817699329701302294240906953736364484084362387997047945298587495842343378334538577594609653531879171288316791570897490951831498392848599902515005473745879388778778512927191721923657281358913928185083954868287857972818296131546331669050231907385128255753287116950636596237361469769096583985221378201465241898948840051871591434118993194267258148539088404094210941196574015713796551359418189629679554082867682189578451182082465383823766965397947084599100021067254513427487353086332307690501098474818705100475247883289935730301132073083976260290960430846952993278959183690165017040974786314044675605450072723052312920902847118189743364185648141114227264261784447066984324167529009872910246226600839227874078518101110311135236445236370208484913946302974811558520071349321785777195982673313235872230208922088372562494905498729851029146393055026141695626504831468179079669210822978468446091461160790315228667308624391260511669279822742191608823337969167505532884647950412294870084461156964560085602783989705718582578468655134754104321278177157498497988232737720574022604015659072779718683203025263275018063836520134886281323428928737086981329980661108221593930589113876261683264660327068576250174275978510485511865804489674148644144140043410452021762923689552399807893835322279682515655736176960973769601116410315244700902954039554901224379304030197064951684089432261146665522344952665334977205787517252595876292691034931444799883849974738844229709199779122848421368992687921026357096544957823031110368781752242680316451800199034072514256563612591102046943922418601109338842167738540960121282520315015836453558809608761343798188204459799523051382655390662950317022765365781173419528197731096778721661817979300929499527129417229723840049047027981401591427638561036681092662253207235451459935686689767424905129491089388296892243513638148042155186394283623555005296517372763724312855287500530625461385578341615238210699816833213966092330216828196971619640617092213806616504373895686236020099751184370919689578421498419729429836669460834158249909547737141237864988081588823983976460916978334828833802681021109696502140149282155501492408431303934415167062687676419069841708956178060167672493296217135279099934510364920754008433459856304153135345888541811477947190515315366473322013574745539408611070611636993772317358996071432923601650517664261387509009591750214052115656454130729967932419508802795011557233052118090623658652282511396584362991849413838056127360093617376521139274531484954816589845980916028061011867296629920049505301584841693371238115380860622422185738435550774848901038664722569494121704566293091656331485910234014121439441054658254011548686071853733009090530226705938195930124606000721293869649042004992977787753550071657028682943072940136266424933242744682958582743556531449245318958652819220368353763596879800716048613731268296781132337164245499612669415516610469940174080279957337074099200226486354070985823721567187674851003759578979109619889647487530500288617736864709938388040527414693910328479883515761205484260056892560206337249151805477994861958957357362307487162748989773729355491299742888357419723741329617937042079280812658102427555479950221058096333444514606357439408929053174642989176407314294280976764795634720749403166536039130296604239231095138354321496868984893599175632816831167879458247288843107673762716444359547406324181716841119569856151287208798104818007249240716469451809826678771073989384763498201076090741413053158949443073433294123985322710723522130013031100896969060072705658866825248441498170792715872012396266269232848171211487353967208535677851306454984955000011464780429878855553201479898703007753642381173092485262393321089794509406781006769542372402797396126578896042935206729383995147641735887226292120815351433946709961597927894542677607770145724914155490290254974880324370583221626946030501368712692326702116130781155675029826292926520250570493103083964463071805224013571233183980721892592019449442648561713794715828656144945459272225604147261565081386503782238926511438338313760915739092835570427330024663379706236670633610847352927239913697318539604556785607476250331353222044032845138128821524342605691211328193490133092592225378088471377812574157109098414552090638735105695223542831356173447592438798824879779833763990582255763258857972235564774528283869783989637393223092661510869891205863131556653980631581748015408562380389444178386736431880727158469928547283446993382152766066372852491507931474441205918699222154532452482299371970818410161800274624840444829135173989164835104567571659750806058737428540121271014449649167561789260770663806571658607853277999581463432684559298134143469241240237485380313578990376350505787299747514856440253958183566191031542953895860816886698113380654716760915158387484138939471255890255711785128107624810943814187630381712033662951172722380358680116664852381826476479224132366574664148453101101456592414829825639130941047180970896418367647531746796927644662132620812419020152487367647057679834736132833975964934949040888742659299375507634169071256948126161249758146892274134224080627734046310115193738027773764370645345449502991713082864588436095440078328937860250906208355593225682730733099951233322479593107055539876407171226778952676884890047575028376988038887438828532031036974463606201041383130643249513928271915916644179063275718309925142225100022599720822063925863447744458400830833522615275648936351688444463896995901952676518771321728155680245151889820790636540359136732354882898111242616191929074059236722905056682632573909154935672429317440981636196509302872066134059306873232202085549221356411255898845355031106041580702470643522529616002875864674965648248117274206641855126028738847083770535889167725949882130841231191196316918100712068300804777322501075326604983757973908690270216306003903218260998341006360430700399221956493026647210538693693029714478604307278593800630614267553376942040620272499327234968068019552049173389445054723947269259615383328519748921045443790864117856556084558746046777089895210887620003260363501337756454774633843815698161861038582846525924088129547074157034647488912771520269985393757604928975237379965232178890520842385333589933474550045823173431742027465546288469816735712836638599796286469670449805915912793990982184026314564789725727110377715812026624914225352605146705085071905287971257557754688207997325605678656065368473748994635907169247086211064547022936223229584502899274781363277617094057476964845150519093149610258574529840293433227928780690689643869088043565440040714916237281320592311322609530269481536657811484161001839467044202798396589747509458180092108315878582580300878200771191034682435106649146578681633716169365790098369381173106081822808376561673408101810182727753206062835362104206290050509242225469047529801729453559761759299024699695598304882106549376375283746204107688748526642218216753171423160197755768201677653396759675060249530238078089178144837173197661194457523604883933689134007672877174167675609555332004812276598874997901633176348220507676882374996249069725452481473877534142730654727688998378261223125709552011136225839050440271689418814998240127996921287262433741000205934092860526408449739914403720258724650085178777600152927462622142903822519134981440780277173008264713861191122327744540230384077491478159206077662885726238987574683196419426569814712803800397464328095367806752446097025971802002789339942976675176168283292485913524371855389048477199534619103289011943277256177850359172194763690339660402650849548409321122590381425396758160994680968736009787858100193109810267401110726711632416084099389641924842337366509136204640602371899163487097543613433808005356488576835543176428331037965353972087431660324717253813398724974102369266132516487803821712629549920374118080411259095662364520872880062237634185999378784226238601409828132985115963812553862632638168630646071297511870156411824422252681753976397530981457316499456112640981802453637932781976083212563305000031585898058940495168698963209537817510563882415929568668813691843026463033902730877726368779768627196524283892486337054547812163975037039068850066448179450564595941884095084907510604188050091647689284141475529843890128235754038373544633426216085572216255457197689466411072296388702624417520849705676845175884438983905201597733415077166163408526622104937465799632071854598193932065160408917625240910175586724660559151024904752386921786180631466491789049953445215246689846378338865281354277167998623106819112446650851318436216998653138512394832133349598932427915806151093603595417038548093455200093496256791465563920022399548081314250792499134505081934333519844192498802864426608354362898362268407900688660987940749460790708851128092716807027273784290836412312146710979649370240331086484882692117136936695128300682776646054425869566595117294876281654733597411310226702600510091181153830907143525452126695375808099598176633309326555778202578379099849558578421556817409280296667779148972786049472828705598616644561853938717777356880505080849742420829151330017504455695003996378420857599558655612632509992585768085250874667505560619329073326035411057912603799194700149603517049825184532479247460843345678221743692975957638420090055860576934533569991124253161866405544622601703462443513687148092978259911945438449065376824146474635158840879865357905249693670224864073558443138493867228819762346205594854536073514686272830449100965564588579981517208122140199360602592764811312481045621981068736301017200871107929631018432717662170916152110543071463773846669301818396028425345820888053834555009635614748722945530320214054131926747712493646875361694591275955259329072414620090085344426386252828809191296570643491632044160608488633729128714742169666295920956056750253892133853369211451407725425867471897403425319109213807891988452105102474504194656354738895682743988722338922745576706416665421130189702025636582131638669026755433584317138989554350510675170787068429561437590664816624875345567836465435214738049159437314869611884043808253190013395982296970341740494931170766270649350738352147390927154393307619885133851301041587101253086193699630573345391550911286106232072148605633648291704048255197400375268213511283669250421919292379015511942111238378529594460703405503656400330434267683897637379016704776093571818029311958728949612958479817367623382306889936912460660335928486376119904520109603789579082402360061643952437357266238169762609769043379015579119627845033816543885223771943026867416175358676569745520876743514971292006919961343998005695850779562524474525492609837952628621603039329128579524604797753837949389960391883067026942328639819726473933414651020540202637279621217697527237775299862381819489961769401376177881366161079461887899243246954479043086498477282133091830213055339267250072306092029038875458556630950095428000162809495370293175659886953463625730162221218788547101052294232150401323371042661588520290580003486298221051951610281484787597964748361738760826077946596952959038409332431137124635003651273259835329461582037089768951769873181188446035188877508142826422838342157844169910652134736566474254715367450710612237302890219122281297852744387796772108718524235094967409585235595320193084416336372888760985334202335395293977031923651844596777116602980567795507113633800457817718545324057457704359626245104097072708850044677450152369231136621341273250780678552892046055777065522714720498266662709601620628759288549009004109342785190016194669724459382175696826833887769381778125194858393450022313335230981398172148320540619091342354459490271431955743593895561142903325988170084414622064960810658248794048462560145014708007278133228843441272980829462462206771772893486080220007426662398374020140502502877640006139121017121669331730372670990601901281574586924574853831567104887530589134705584809820815989310582626957611549327448242248231852050949342788589352860657557038740615955903425012632903179985977760853097290248095583260677040268481268767875654153829423638981341557238453523437431319041286427371900942133335846873386032218953406834628128935158197257470755337174061850851863004364452824099188400223635510508308714258472009778586207176318988343867072460378965703040247695482393595935241865941524215244252654753671745976310566973905063718646167551310213236161096253946008105090794696936467016844262048151816695031618241832479087448323516586612643082680760998635659855444460031914532799756733560192001712066108559990942524976170680748712831318281220051964360252510381690264103522222440887865277388827680793568136428827400649007752521444908847126547711725531884101398333318935577258605080653083260160009178708621482927308000101884642224476184139477990642894313759145333873600216118805623153959005897079253355730542394446585517822359675571801568256635469685262914674614991609970778636345875867109485242788439220532036751564164717329181349550187990545190193530416441549641521741307152350599945349736831587528764568099175620648748889342773057550407991307854787879911981195747391973987763213253863957921579133563963623546284438148032118348867377359491516221872067231678770607841310008301603051252397965452232987269907505628294995181450510282554404192807061516726856893954594884989170318045598988861353018350848018905537602317638249851114127221509601112485145468026153888155158881896901463835156347244551789319315244777125652643190332344016797257913401846539666453766686198380985637728117182469046729205835911271184198953004355022658150772600303199658293345430811712499065092144176082404298503817835431030435658933996088748119585189582551531355691765664168031994062332125444578882070779141518731875633240662837932391959869055334916192835881675784349373317582912300765164580378586493460979701085306089233949660778399617598472645119341964783823130410316062377630071710790633404274396445101328774722312706821605405192277302364774085988722392656795540331437056336048644010188977318630013877865907583280964014149903552792605154176225706637277328765690574082777096068655897968123319935759559408551295423956595274018997060647568922490878818124647708946157850612462824823713231515089004961329581862599903899721410079792740968226506137351948644102619009990034510013420760760478543597490069833261037316580290235866721430570352708959740818868081376460727648003127697930597704198156382675992376575627671617553525152846788237191473388988446485834494596740284626316003710815488676813975513627197735305177462936909720928732205065649441959186827356843700521544052009871873462034585348183672238833578788300533889692156599293921896753203906660547318596234301206433356810019928981039253474068552675511592208020444383716569389548643718453603106072051548327149483037570690077491461286685801705488932999153706329149619811984966173286683773489608158815918951504080261194338345379378398081288854667147361015994468639113139313123396461609163429973296848355523846872764357887424938415677613221342031877531488811768912059648485371954576698468511608502387158102957768471408038262064294023804412001424118914345258240045335076580472589661360872846290461315137637753714030141899396586763720372522882463516090380886247959793858135160677963769917923220448800505830369975127991988718933557835221091582283511009338042254482927898758292566208204565060475078998939748714587590719061084945612190836017820562107225339663683779577759191725265684787562304341757298552633317878862563875836606031960752760072305012906981493503174872159040247695630793386763328634454886781132636095963104719568018838920295823661576120646285360677512219787839345889353916673419774666693596125021346906668096414024161144703814614318908498220947567562782480349911114104610638532862017623564594130644252853934832221122092851107200399791128097032410461757696878236453580657887516209893071482799059780573696999110580149227852343421735352422831671195541915075416150657792689522620138325832083540831175236759162678597223282186423183519960304409094534782746450222227645950970018480819391012553623813222668777560435206919199278141028531313987935094634968958178375649679584741011765245738676606499719546772585107175618649486408189093260018986666610508533810084740867139644599063091883361861594205141809177358359101231705955876247281993904028867477788414803294855092978329075936728711772640423707974504808955258483266284855398160086861954123756301294383070007255837851388065353766292402567429958404443792437632627283891059706059078893467320297810457938989824834500904764295845250522617146997280868568368788374119443905101861442015079225139312172578652068293024556841234541966993683266024766406949389100296935550176873476068178180551335888365241241817900322678431656829610165873449187064039482973144131690577438463297962503576189649604468510920888329897095293650184848247229938357339127417427940311245761397436309854961567323132176298481180777634087541105528919417701759040140016343632475748201284940492708474930000685145465654859804426901041905299562355433616135141966276205043155778001047069804918626997386451464691108247173543661303250761282388156364831902938140108476581608095965517851244968412152747028153286097623144061094218970723853667379001382687910575382578960917699519877309114314981585118310166832150016989720813714485276095504913355136051256608483212297837056200169332371891083608733472605794690038978776629467178463315983932912132339233386889739138528405206433374118968993924151387657331575703578318127266037266469918906020056294387617926509412066022044670694963598561672791999186979533978810909867119875530563497041886863900613684709236456996699725521452735861260928244521117782599403036018459080755948569308192157827738477518925597359473918036756079280685702422659247243968472450136278591710957131412145885581039801388010861288646229926987465712746562564154353867680510241111643918677553882013960901886563800741913077892799794332865548503728100301696297730086006188480192499774232852247555192177758376418924001178904769773094713990876258490650383211258326250914848880105269540766002066495035959046705773946121775745449008820989906648358628610659575401741653275318857132623183570644397278690728057178652128760513157547026338170413854023509803841114247837212183003293451406216843144577945147088163551308769852005724287023442927940620321636311409503534356346486276775325649791842303454422086680083052102708329261542109823665562195647496614885277045578143691445236072708506156555907838853175599004017634451217540154869786527106990485272892472502198376901382172987749650526927279962945386725770700131611766697667827922387498844809654850108579033770828413149385160234259025360556961356518467751427268985255262296034293949467591775864261124854929208354959665769204585080254481330424365463419788122374649859653005860341650097933756641020566392204098788618719259170918677998020729142674327269521748421655373923471839812378312484480194808132115280922538541907511398242482504471357041446335616608258584011560822173123268809917595988349952243832207409945877456154601553414205835992575908794787981218555961059086867856233444419747489414168587272469341457659168615058571228246980663298053927191472446197014902990907709038579312093358866996827950642016715070372518441190985343574342241136966350331562929954489259810171468023367365817263307121834428213492155616012659334279481459910524398742132942886606169137965830539971183718875158958946358639493571671760637788382991340494076479625630571108636999934979895638418507977805733352976718606973126831804551324705597798569186491627493473265008602965870628914814564804247816374769165401754108818688632106666384801497790524027611172102050898313815774141828550222798529998047712288111891366729898295635264505848545328579218244009510774621817156321796960189393670487250945381504699992366899591874564574555578821999302080006799291232226204806157391895645959723108259325612959458223462584269420640175639768295042206414095483647902224598093973944675514639716488392603626408787055225880169048157543877285728267629588854322008838489156262559900640452658752808953375793010403650948402485931194496400180610844402307129041076671409112381094959591879237464325416115065934079002142736596547717144294040915821531961386206472844950144068624339413156623569900512330177779648300150661586225118051401188645009513431261757282363417168543265112150955371667840243660855145107177339436886410834434277954768245179783400116022224559633141505455658349751047325139003934142328875573677470835617335893508412470685073907737648782421790642722059832589697794789994763315476001195811680651612737947375769287377997733865223018446786856406279740823987593162036802863970880863999576387159205682448485240795651050221571989362696004980659008188201644175303712162316395105180896408422801152272875661285038153963647991792450055539524206703379042809085083004549818558782488013756976569175829940433107671027697795901212633614203009282497604104144423035917981218396717567364563151254564768716623551247950585886480411325482602806740158244739801271062892441634628911282011672951028429475942473781967168781953240674129364749594680835094805318207266595598947197348688843540577201065013934209159906162718755094748661088130465978051748299403423361638802382621267007945876448953272600661437836326576339762361182349404291654903526477884973744785714200229407098358980504895501513915332272593093622345880329194267029041098932532794969343749059352913015331068008450625629480246005141979418060692800461908911163751149621255866654830278298468852184433719114839459179276511302365161054707093186585770075653365923245308396060951975820608458814856452856885373036625093321224066628234896368318188052963013007530661057465934458482054779297623451490858278392971738045880218267861381098420595359653126727737521043690744455215759647003081347438987730994934024412320834315418145505917473344866238884179293138980178152504015925044182519494444310339772801970289729752765940968566979429684382952302963283346092140132088054618423712679427013724035182199177802302110263641469081150717942253832921026926872463012444497971245373304815670598554363062795482417980499465082453058508833123123980554758267785758288629656296616108630961955499200924455499979194890619492460629279472418321830712349935336214923291035481611009313155906221061819569596549624851228901742369232736494473621471756130989709972607002343968993896537788083920303169804701018571678630603389986657178447135891996570350437641263393212026309935496386665921433703850983194521242614818452416480729992252382086469109717530078014803698706005925145999266551743352629662826689780851232522173195807163435499357422072266401150010452318014716668086083814575115136507328670547201793315323527827189702057578343051995450553470595767491677023654843015487513225215894505234761271981890311633070710564158353821522695179475614762009668097184819116222890756318306771802159852825568068624481859037159306539142945554739187746057413869995855594788475437921803074255414700131307553454113957300031784291233175191192885474769634027862619445670710533120096987222296883805243243792578888541812597195896416369621266918909409745676619741050993131715837702145628191360808386380650929481680408134592624109166420292006721228524085413368661694259295132736696150170471490203821605042601845294827730237019330960227185924819905364755755004291300440217971079597352256116783986226477186580902649077828142223431610836129413063861912813396066922887249197937904216352714085531464262877316614083280842769641271312341807948009229374724865793410838315684722210954690989190206820864948878073932879836607925239594790465151311839166783843243152307088174384984099158780303753824270711748529405784776829119071401881381220867374099819863584616611152899060177027555959009485568060167269957099657468859406222840050617847992493815674897512738529675744981046974666904260904095835752013366232554489366954867738046139978321782673208659055418285329513194605917354608517001625431280132190751105125774118151336131869674045243853802365336813875417354919303333488530383926501553216075603598999810262765727950677198294696987398337276039841206264195524513884507284116376664977620249710970086434554094710299692267141218493203296957376876516365481309067136393341337112833004106956823007845778125023445427494823760607330388277528711221042962700376878110559021243887116756306353981234421896423191997477087370098201334188592927840075796247885214163314096182846657083595097376171305954948209397206758494912822808501041909001538257556995186516568375003003236933389511855984093040129669317714129515903291560786681374718133782235015223841489633188867037349927222387631925667472412664552163789266237680202119448181687830867631607568787564882503755314542136496159285616917859858148914818077869730427575536545725828834397027319574592356953736910413995353571533240905102143787539824439089041387742183951253912430072000067636197661065692373200776138265723091627924444592425135817999967902220367973045329445155292100187289660190237369079679943507616611790370735179497688631785771767892724661924174912703465397881049961130900887770713147790518646278242104564666276286113614184763953787719153326880277109066782476223763538929554069151131672845902493804968182816977435262235997928120032591816106678099713786484678720224089341966685307915704665642713980484767638387724874566999140490648094617101707226379110823337473752442333885549252518083407631315272676873176986358909454290561273772565452474184776702012807963455344824000624316008394581170551082377599423055811058791074989470388239718742925581142910620766804942561322644641453844292745465408752536460170732301900661718634878725781725097616252324092420129084160292808521597723176565964687610657327556475900559308304440598274904134562746253551464838408423327722848359642835426750487557560034086692956409522944980343086309657020358985620540541725295242305846527013744077056503539753468869172556460079241420498039332441053020804823694648208059145628930419780734554384298434970036566049916423418170992885193460875311532345734150242304154699870989571029876377243592736044868816887361737423965956963709153958738449031535100142467890219655478154607910819018300137631712979560944279866530375967610281510908661137140440972665485199944722479051176739651500901007252701068528338271149395260183477037822672350333491231350055171299193064169980330681320998932655489434516612891549546807304574395933843794037641822957202789513163283839436273039851650027113361076150275678703992876013511263123141845829674255496856940037685919283963231679231241032903331654923967226253099534831761386944002687556067619016022227441765158899288181358043542238133117102835591200926456371783852215250000845345172922445192993207653610111975756677652645669062081509051635026793710394217016121823185942551745610120864684261610318163369822686204008262937304139434801553751220049869889676426782794255480234084846558572872968039808496482077225238948511354147431338628237532566341431187325282822373895833039128562255860220146215467120490369146469955252967056056778279930170867947282572474258317226693301400716112262552308181738662237622086194281594875733286477450282542707823551578960904612945067947358164068065972828544992343077109279082382653033010643855333910820901826480456179786545422019537537568650577124923451211149015606680416731362312848893931352119708495540571968698047129844013251484170668335158357635331298329297867445253014645066205000493465297320336825893595108885722779188551568247306027867483855937254330221599029279901030602200894067591926633572848289816145030382203475150497994263034557373986332026189905585351850190724107364502527627767764296060015670646968466040301625624436742603041919909955645360728374249877847409133054465487584802046977698182601842338877889379522031755032351456550051715221809246018881260280924583284920300153312617501765303323225737798729685628188190326936523522066931540028170224159423315230834852941730062602100495611715366738898092059310778697149255449101610184481491131827772868508219927847902214978315740909783365055681861526944355832947140060709742107457255801761609375549390012659597499591096868917209876952027419626290434909289677551290779915241642991254144686368449940764630656204955086345852901378404422951435343132495575820423741180883581893659897850581522983857424115028733676577078181891005645248691710576549272228034535910661732722731640735369123832524860010041159001128932372018489145287101331805822897559787278068114154273256753490189317120670523092070773166474813672583347007054497614240740495218176758644398984222708744556589017094246838288904726512351692089734426652942137168583110816463718206948579310488073627394192894410559874381417143489535213069947967688413863516575136206167496486738677022068585796845880340499482747156918298058790027807908715048423941247970779466808911979695321641952007174642636988006494642883975212188747577785336285361485749363252250709766567878081634803160385278882880365400056983977756011681904632120274094983210246246529885167470964877195349481000260333489511249256309971317164582683468256267152568416234604570602413606276050940231018706055988933595442899003942431807836738854471679053140380045434053588748686199187428299071563624344945174151672374134405101653520021622448834912777740457462917515795132337229800480712082694943930917308508795507057072492141892297465072115427072594452211221262935763702177808711228513190541986724647949849263238281167310868322319967489221869147854618577754816536093766502663723419590461024117553049331892126393991821852340600100113973127581936480238416200293659739149535968284857702437759840776494492748176402157993965503639886518934886365889507839764144273946841134410596024694317461681224426253556653212070027318038953297121300265776454887838920333619618591831852999025866958250923463156956440570060212006905523942563073531310407723890535785373643412320107934317053003557166674894464307227659276872892431561672831379762317591428538554393986153362288839357435543700231582899314353950436550899410596401063741397055322942042235838763123162608999117938345411490377142522267191497309786404867179631938292396978345559556430639703118097512774250037659912426742149707720209362148636771580751065250042058453053222730584103090535400478539927681839237129425889329605252897728846430071992395384044471553303312243702384595454057819061256647675650572037592483807351829535403703794425110291907505254228589140962024591868281585009007672852529663513216121879670562761804335205236374433580803722593585205723211244847719094877934476984450182009221351215538550387061880755150620557654264226337622497951962366940088757416173604971778978126941664065390742710867325600148464383759112314782215688935634063118113693843037779111843111384268312344848830746886277019471998774136077065218200827993862612866279616194367009807016761667613890003206989631815126689741619117634383931190504284831573353002984025155481403435967161660210649226554518558059574922199497564491388787611516005204052000614631451343367119020170185029796663627730741738004568422648810001164405447147074612738208117965997349319689278822615125921749592790919388973342500225258820441486001501290431723858487312603039293162954203192925996717473723609909811545572445540604088357121594985876692176684046054037881616355398830411316183901962222178560517018955067297813337742690211211518576536666844213362360598716690234446420810445921331577611105380013556832302198440247911547362072467778864620237184791359443146254660212195018526303202674658275427913354136541989387996676440139755583755082749462583115024286478826618669619408243253526860525080102718262409677059488532201526496617669535069346701758589441766311323612249584399340420185720602705894240170022633574246384873148286393939675509629142883348680723043386058710727699103805227542038371304416069162552166753648944640094075760380934393071677939486061923671908067317369028951734390167805484848310697136580243542716036989690307537666956354373243078145528367644968716185880507352760628653612752189775091206977596153571844018252833013071810752070654619643836231633617995502537943154454685936254187588367633311895526558300221572435055431753577948291143989445253239346327120344630665837673414134552316145167280544789444732938322047737298954977466502836923535708800891566715610576674804841973796793640651018643416441871065598004640711417709610193371955281892835644944028604673690270827253425241425355337258336837038456140926339504071779978723132695955573829134192617619039727440201655516337838751702421445675643691677889981581083393393636357264356143506744271909806859543717442962155644555568443531077694543843616931933944604482364631119638958661809957211594868400266434755481491504227933593158953121766364618932028579738918281335116466267585922964989664513431257278949504278082374388586869515911067792663809145208546528883996270308960528665548053948426329664998432529093636645773997298481137873543900608716629672340672839484558368611231728866989751649626349418519731533969933273893620897567003519002333231603760683853757830484948562462418592881532903008653620556225074722519314454336770648788534798593421181143591295458190450623834543430822143786849566529339751045802045946792656061235734463957192892120228925427104877280576451425684863240995631031409115807442446017583219085593716594575309560816241878162320502649364273371396194029133890976657412892015035605355043481198355657716288037776740676171674507873408078802158092576757460437018133968542187566861607930797111879476039712737476477525042549659819463436210780683556610465285914937414241587209430403714048618804746575499028342217945336443338998362372637598830938345758304437728461054822392286645572642635014172187805904670490966390397881972927533537480276114828736641826079416841399086593290543000291908381016401040925500366811084500127202128273934171218700633019909828659269751399455711182019392792234292276206160615679496684190079643939264100388511940813742237009760663624671013020845018812402579948063980485510113992641118243737865960432678098136501730282399359260680583490025836483254206049512394220668833067548365411895996860921998617864848935368468377304311780004296444319907929339878261158363116925760810450650856865637888884139130733445970994536566201608278470518433006430295639580624383212309921246325701670648305890145289800421733515300305384387610242229006507493270422190380515823842070856878776991825644998931849367941748712923452127739793409979686189778157806726800326826402225929009171283409105019436883201121824973670417353072696258419894078035642144007717476679438053815239135598412763105355421975099609067471600902306506418495322584924029367916332518900845224081257488728777092611564946214081207013576375871217773696456942288725747018858911519715610047293909386084979723997792730066551864125560931311047395069904787680061520209271988459267691706019627876605369962190323927125329666858941748075720074325483787965682010943685033105459804812987334518212666290253083351977628643440714840079402835527254489936225188882384045041489362003468037223288648436619226876883375886009455491792432723246733613286074144191751048445450016740053910397682616210223678392941410048275340304757444499890511345593599212541613760144243311465326660504301036055676223859613565639715537025367931095448399232294172427480403445724741263687600475000422515034769710482000970188100582514773430972374313159426340417719027659395723787474739119596205241092654145480952163795403304927225816472912085004785664146829675162141310607158761595390992646866861217005402875208465281339499829425840688374072903635770153510656282841922111269002040338905228741328813660471593306987495370891505085394101169002533106482685863146758932802341781312997307531757746440994664152419019891404841728553783297085997298886651720278917185815218505615293090169944053678986793409219625400408933666403754651390450232970792537325707320803782377018268150415067005086255403170166416157757650116077783382300737223633856630634134443211009678877609842888159045086645376847991189354438963728428778717861145211700877448069797754350483852577449504607307727971619669707700936078789382510610693136367385742143685787694497296926550782434520624557089741558569578188400239463933155169822581307834871587012338618483721345656187050879724068207676754843788716891910048139493239915488195368014912796766158594256611660779413436682300027215434957329264454268263583712887482524975593026622997225766512372226891478309210844344890254070227783160247181410025950547800082569921816669459833790430839190933713073418400626761021117790313820932818288594992638421131135065534530230529006194449884029186324431182764618787867475006058476507782310576594677582065791070291097432704066155697627905854413180733133147980763385574276627394543658746837758085917201311736124320003559136231204685779368175474234083937400950293947853173324705069383642553175342403813610437262979066102336765007469017709665538491241654837688124913467960044125231725426941444835432655173780104672977996778428404588662069155842858878104458949736069583593354606842081394294394354528418895954336709676449352270031050392459097767621998727997163910080100853108170613606634345982381288632394680852478701788224680103299220101218403009327152242639103059564732212190841995502107337788833041059559525271573179111933746448455786155464201576851186184017985025558799141356921830913098156381308098643070314701732244967281010376779994339872197327494064485531445193536975252853760175927613920457689930395770737643154472626460866240392756599897399135195489785015140002248829391774229896245069651371164652232103647866224478534863751828057541067040654982454982576512725708834600566694410551182284837643745359907352212958919600016832600469176674697427314190502360774345873425036667240131155462269130847165173710115547651104540541044462026231450159130507408300344426545348857374798314104393656943975929846525055292669131099120743129212049996309879086750974847415551078198426080015297404973520658479267659565593521375050787409486393282414283034642681495783532447191861812332525773424825605105361314697839782045997464603736830418835104261378872187116955801236672745536625148663800053967718113678908998810456727907406365084159176765912492888294187673850469376401554792400127236764240535406297321637139400359418657082093338866378985758252443903849855578276499317411023317181295783126516069677758284739212878324413320315836585711954029824633336402381727309504699527989039464985941224153524096431060865312560674952057319414112064739472352282540864159937164543995309717897703358077301290054370377134811836763947298432421678226033834551979508100002296028036298980748294092688993245187409470896953614586454064484424743746255905969484431698993399370819470430697700989335205084512379112215631965645719077138604662774429190446162383602574906559463775304828537356417684678173279904705306932185564748077305271650849091290609474730949373693319395362083689320845121681390968740258076416706345170801564945194708898790640853197682803403498557869155811857685867773997771060399326070228707349696836089271367053251957365490351375089773482540786354569637226541710133553646999259961928328868003552254110422502009176030966242178155059259121438216160651314780909592995903380429084968626384354479123245252341322872055393414407253210567040078686677426627131997130651250574513501647811319966487994849221328693133088765215111397939023402386455145880694639303628451740229266444074755528649765806704514196258588338155524795297686932680459340403345248224020003553400803224903185244013337192900874399983547872204538461284288218703930322614941371510884766659152756330040007774198733226352723341425844466198889750925909528372744978151092773578973069990124933608445817504102663015019058480668022780958992164882567404140056019981920265376270146292930523467872682796496752058841189604453665728531387629701960474124098379472987520997727446029608608637376241820881916627825463358155150375510629165225458503300541462585676615859137447617299859071400933367709090090846006546942049327855391027643616742580587497114145622363880521145316834441787077167228156606399561130382637784873359088219668541148435100418510090658722196237566945707315728531021730820567033046530199612567978262257170672373817225110090420174273436017224905343716277398201695167372740501463201393132033358127276084521788226405610579384414027084187734584283867273287265982446366095070929640124759111867810892834684684905576191649588158596580293318145824572072613911311416980841928282559165617417788076017102831767522066867669789353246822158430313856426314464898593589137614175749749898102349950014268083999810386194187485020055057604463299878713816415492292623647840801078585511296722208485097847076364195446819807392302626481848361355925658702345556947951525033648123756656318651558041917280864251253603903466038645801948958216223920216692440639911096811236638614165967647046120544689697003730799195296372191991901922060074699710528285985450344327914822885069010321522421469842725508179706397906872107959178652492573114254432494535024952918777739617483330122261269878627605004698551772045694605317519934137859783303297520928494740930103367405605548741862550208695702660710437187860006516035654246336729039647126370029191356921833638158435146100913142633642647934444622978131491191427199306988222559966377996650976510144544582581943958188639717445043966258842679280817064439340544113029471025267903333831628541395822624115284519054832738443678559056473554017100165328577420682842187971491295478947838511002189859217216607541521045396704878630044114990795340970219938681941306664531253050054189304806517634456505930168703494068109033509389891200008659014073143400480384114382626126835868883568485287432454675524491877282616672213521417276979895941620346362085257313649450814885396501860058984361162108986696935172724257575496789046569008613447899917467215734540266033537899444512138325646793786167513581703288558395576830030785470778976693754628615723986788583127224159673462256317331375711458745788968705099684994734622840903157094948637471689211980139393384622062982136599769659640287763635419367010682607154778064529219726054425950815536819540393202457848558572780977516914056419158802335396953931818357845912102122706003880919385474789719206478569218099607457088367330539908728585150182413861314151703153392699502659579039602595354917830041637376445698127169828417370546571820933798596696330583880982284050031550893830392460446299173067395605517428076266933981387056236427623558481313667214749690374451178012252020951051584091642399777631095052784368213675903269349178839127303584055554320899838743211738699210952435091119540530893346327877980055584685449906509875306929441418810796377741280166800680302152059525200845908083004784167141551846452429574883923636432924837893410266273346907390306938903564739694844788749125668946634314443178189554115523657737273623088402424233363360038570899909181915078106383221873710200169059201991450423647905080581106757015327573004261651704836016487519783508452121331172096598705614397797986002972490363423640576165221676700021966251688973122538753166556486963722332524992189869402748966538063884224609527845189405465950028249963784799925224290256903267799343384504003582595517282275582247682733693348440287028373716712161973638868309396434541909572062607018354002962200316674946959045465564535983105514840363450562670198232139671582480219105764628871814234276251903542660850257680389858824621177549781543160256033136013305283014339324338762370193424182988864564746256442044222849200077166794591888808988539529466876850474945508990696152055513061517118016294660223565139249891170932822002847568474827571464232110302743188103679910280146429383404719415844916391349309108370314139968289195568479526068269817843012803302911985504566158776157711048631275965098238353371208582045843535589383855584242048832436300876585381821410908594859113445306671845793814318554938592070487398057942870276271755255823938006014939462136299761942873768514663101551930946215376012159446645699043780336474400013042792301108718667631497123415086956028062949800855618853141368390642569974284442863238660442989521508301380444523560079644042037472559023848154018139262541613073747989706447429344871321150582200800304247104513303631417047097629038155809804361463761133412494643801163123359815574868219167758494038941472315686721242062373196565048470016528224181155998602522310986673683028787028603302296571774667379723468830839405726361281178253714718854964005687572553891355834001560639331286480492568332156602432591657767642830706209007040744041390149812746657355823129031590313817430967560219612215589350019414139849902034873341009691893032902546430341154954014523762109727394500521384143447357428006265832284577959765872783634092961945848774993099731465470047617569452577104325896250481490049261867951030644581703118120200030987420520470281757555072474888780669371686676749662630728987130613139618297695625741166865408170547973799064665568333899001869078291115505761773192068204495189041119919459638155299252532650109050667567524351635755983627233080255375138617621009038281616987039972814065225754340966790626827803496923363577006272404190845869247049073244405094825953727744498579210811684049423187082353372108811536342076214489632218059035602637722534091226904399224589108365246510937037892208068876856119365800534875919538588947344230401109233762260852531464621589499834143987581456100839686498744584050858143150457763537836475638403093203479771798825367185218674341260820817360079267664331440988738406729920142978655057951295515281314771526965368728754823911524618842826281019427992244108253413989296568093933560434048674640308841073845376957882370035638329048077055477989472746960489693180876978217763530650527816535976020119379333859103513238034807525864170129570495975606035733952597447576606192758400125880208650372333637291812099555682105353812505168341854722489416993993342939864668769009533636446330379800174421938076177138715095058386124982700115840981975975660637033152574547442718324481028953236410147269725076398285817911591392212959166784709445353243084005246451731976199977323798348261235282958718184265421684620852520268672699200147869339678202741511748517755458546857935909786661709830928299836516360641610066416757137206160446035815923133267837363302217469243135839170377282744643905532111383458320766680179561120659699612459462419420073328144866519645037523767545571634223630183567309906804370220389223818865998556676388070679087219073862409695160052174692467215959791921441985292945977677102123787014118971076481285166410413102002678174010035015726596994143145323506094737783928813360086025505455069732620531284474211666134328763459937996885179001263571988494139169362746087099696618957303867030267140060360603496092568239588546536744928526520693454820626521750908353990703920944862555671684659768851923431658775903786873392427251584782887256060892299231058932429231989833214482665432744712162488006721561302967753530394737441698213874085227416073913803291754977978377920137626740210684342024901355976235268357309072386074255781088517323278174682173992768003509436382082789146515096241531961035987151791853418530758825509770266213367491842781419788944271716646462170656847610468368409554189507167953416154446473820241435045146639309386583948410817240839940446107063569816762781682525584459221393819625525086101900000271782844142408433497258565324378907803086235328675514776124833821380774530618454800524095692548193126617248910268006317431768370146730926188589379403187592045628857578368570051291964147617045318481373844802571703958757182657142708730301015837273537157875385266090861078988767478473252449189934673295262013594074497536708294727399412340802261025862896843994107485700356608168316203752223834660115951957577406915307474127791705433468873636650773429970071121194234771312646691579055629674851764860528544721884498571549109363916444404300687947798077226986606119439360066962141135767975945053195809667335068771551337450452615328918506243315075184853030512613684258997001643385343026203463889021398754977791177481427336614634995677192476880102393737306126679591269679078904800960086447526226137821896058672204283025515144944108555480906966767373746742168516863026394071563549672833046463232872577737011837776466120274199894343090545102020148989897536541642022472458508505353719619889666957484239700106611782817984812159049623479357682849694895085940379834233226922112042717742194596913149137896154775829224293157059486728721845661380731808207958831852827407658956685869734452666538485357318859130326153588382200806622911928401651736499648755857448076229532731462484864517959737644938333472515834328261606018012081256099592303613648217883430239757993153676490900919170611010228890470101016803151804260188899960357947063746986863097423749365207343147459840716305966472350674711096265381802373609123493845901715952166625419059361337081366688019286796244256068455660434605773648167659794912439627735833220984215122478230381795475694122116483972352869938369829014278863224405675573073838017229990443071933383076960410813534171576106743692344591753273503926394840681565891535306980433324991583304067006302929898897450966838354879090454195993097940513323314767480057775759220186960891350844192008138028350067556967241038101881678339309896497503654757798540854885641272390314837319318514263422957184274097086853529141233504848930458121042106532460149822525221353861043757904619725643798891106555193012992287259402916394375017817354772789819109211064996475670391282027097457758433206725285209618344190230748612891100584399275482924108581142004289402928875831200882581059179267555247131474285637169159181533385336525472063017173459329025767171236999588642997199176577583704188932055468474328774166335437295414326429333383545683319695409246116494594831318748163049240867623927332817151883317901525991687178744592268730065982294289135061456785958997114112155098926821858235657987173010928608920666114698206060504126136762188070428042638614488311774745187514077179013102732975960548381844914949898293088720244654560213573711557357871347491176009174976308541123566841212039330740244873835741651824902553217011399556480084092753504947331754529995063821642548553383809735388515842917491204142865079788403481706514961392672693694031609583677593816669114818099167511989108423948979394626946756236921975894775835431763439104246344059971088796499697868257789981970120432714399003778867459759821223630637930074892113796487413156138461551724125559453174599465430116342021757512276645641295838790079521871852075822147193265216161932341735629755452612526597807273919859871010338064999794239945047540386077048273044908747172183537555773244056841823658842715320898192571575284687411151208010561974447100251635209625849119937381936439506753679911717730160738060685794928001625843454556140267942600886924258116529758082178657611994176303550936734221585492843075760922407528764982235125512174161921911756275553542411061549113861878849209608343598410310198216485970992790551859402469421039855042428792264410047730153066089417180734991992853385491596286417529366839817379210351070483791537696534645580847997636161410885230988961873170046433628668452129193323390703928269132523152731246790481021500249965274937397539408485776914978742618710020900675358005606072693148296972531640573639838142205513455454245866224612313789502584352588863893339178019520165961836451442538122971189366923415779401815502942560133677680309119967749799737534297088359079156271919413999701463894299121863823166434296782876260949836506925273601815437354167487273380256738044379387822241341820932945337700052793074046406760490712992270637902277068433256579214125390897219911913098019631256287336401250106677947298233306274697696626301550318321938779462474424345681558450386060247711260800087219930029165760971734221171963429396842338179197415000727840708641067867814976637789448187732976166028946431880867611928507343140154430342433517963498786962223176647110303741416372017082402975462446897273201472129587201931316463963261494165673906159535680629238227231266289809515480617606549161649056949773693532659622423082618883562248626857753906466508554952807781039288608436428648898946541440513621732845429321027164995257576091914043979036709051785978596149440814590595640360441575685965750303403145880062322230578778005745961311659829565339530432373483521564244029614145002373402875521506310819551213043557759555060726673225679498937617041138042783897104180621959298236258727604020261742968614238078923714221935446898299813473355374893938263929179294691923317837298353941993011490261254594335140711651757804349477100488819841952651134725617041568175620719238951170643603457348667663045831365631357234626067201403775937899250150311550749165265241374334225010949211975405116955252289808769957265085021219400865902046288363974764801720167448729849130813871051721493182831941736236650293670613393787263406751201591717724371359571195850889538239046112392441134154863468817062977327567633291008267855700372491895781428018179144067679937954714149359918778500969618802803161302270587768998862543239359728932968129315370677492868533894338644290858357519442821183595239363908148783623376323237487608526977522255106479676200261654452750226863985755603862914511560295816255938318326572822157973233878294212222154787325730488268149164829728964320311082046867698489158781957818032639459900144410727827466793997830449175443567919563035802999746644407314329828646276631542602865281148358029741797335916438331252090938492536164555530172544625816160990819672763331467763356862958011188926750221027747802584120042446050683500376035498907532751515021627616149326108827560090173546194944483687449895546665535027270372691641312702944895306223789232268667490585137927798163139646501106539546243373805947600927961147806726255981344514511034255138395910772537692900671921132060475638884054766455768210228400546362628582330122309412691745238226395536848579540581543685581015057570347074543948809402039249086408288932150545112517330557044793667832825935961148520386972342329340985475758934953096337282423144027759453013368963963511638192816556115436827855178092808958330911581821983204055417290673360007895351080912173708501519319835087046799189637683683849418652857545082315063512384463576598071576192341339531540172359140266889795655126617800498600480602543036357724358439770102202998182727264776657493442680908837267938316541993915107845943877246311611367947542089619585625659216724672352891927585322170485685411225288436844487303411884652060435362563547149167425938626244527287356454467278713021525006602642075519591626657441919956816554996240326882790372617324273827304957630830830257949197673463414835875842038212134869717640412044140430542146361315676729516708524062176667876667875343608711287015215041050074294361501201227554814257150754674244418463623122556934783986527910661447419671445528546186314875570950885107868469020345278161270163034502895355192577106066580756100980434212178372071039467034947397135707719423127941161167375415888149359656541497359366084191308890482796288231944145263140249679107060848124052482235125479683993233097901421096467415432835530672625522285103487625096278459474540209499479815386046372488042579836197829346167443010874892720593863181943191728114097657689933285782955048259281782735205132196600140159717593083167681748779179991956146745449890877938656922154422274573938565859155940846821292075854522616803438156376953960077577413069717143827832687641130043739410143887403987027148329931520046677362363210864565016253867762759626807743511985313700593045665782023408386722533087652559507794503942402412807929105575623735602913694350351983580029483064352757837362727414671969079077505326941341553585716976597004473716760513992951654613139995618288512659039583625726585834303255952209033691358913683745624218625204568825740611669208867822884820564244610569475673817519747526604626594734980080222224852267474530752304457660329441865644137752105874025062681624284103657487293009068492103835296730907347000169662796850290603528898369469241920832781539014094121824220064906292978754871676158245707254093561869817808897184445536364333505970549669431192964159034010800893429977885959867283936719960592962281626942048291452328997534846930448966045418952589979409934432727471814998783417230689446035619771266454931639211528330159027793864173230031608040480401911486662272163420565817931913376186915164320836658462664607917477319981491826036963813498389342758826331037998958311866520625299490703819871634792816386510637543847001297735776905261017691529246916295661593995709647548456119283408584283598885175927956986993661587838129542267039940391207363116788446076917453736925122441719344659979054315160190899417940745765946421603427288758315451793193591445915823225499946388468023618307501808408965488537719026414679053533755389520638494880688188821130681794246603130114483049513564848882864643675073070405585148021691722862330786952392218518624135747717339249289471060161541260988104599734803054022763168708283939206001691602207783522484389212418311690662282978646264267438416731042854351614885477602471367898874049902969121246670120562525969506009516219722541577095585205551448835275508041366088799153746804044275984185799592275031715458001162836049075502233780331599754278256517948346748075007213391147534681428673689197970652643872149896363786472047303585935783710906945420571660821142732806118050873292581266198547169331135545375138142856966266186413067458574390428061047797543510373768224072060527025018500388035787411089033458274600503799675902583902493356752131880504541005652961067437835611217608424942823363093049316770007448457082467212938959085655490605384326113713010710375268610702424292259512997550457511608975899141049291307659543557045855527144656457147919286771885560105523398956100592495383719795797351801595454740825233397391094200114678587277261027064318387175074711530222565603805095725019213576245740159761842570152294515253926918047672244386613661811467751840153283097244870267606436269627191844886671672747695348259243837103413648051940732065194049632330357549497110109329797667037823145310893956426130980174703600234182131667926607811251869795102813820655085679455416290374062737911038300054051675718201595215326338577219977154942487126082849874983812226749949616119301177764092219551750235234006893523051109790135263254834230709064148884798145223848336127743530069100793616079912755686520256213799792060526021011492062504752967580707103891400914670699901636051564204677401543692766892428020872613252222983878756330794363413663327470820977433314143299094703315497807247887051919164557085476499890011657567582777396033088518773214420388057290595804071954377086237993647113982899628039303676676621289396346940873510413497392688404683469611766732907936056589001267437940893819498025264663260430206596799296713857817838155151779010444677361159050481249096164467444524101720609357733777500746910174382488001248862602229836904218332849057438715051658540315361747873994042295035618324706818639907776477558490546892929022456653647044001674661203408059539850696463219667371666365539752868242372070340554050031034618724433715981489233251857406740979235089728210859741748732294915506476680529031955861747790155328429920055006458867936681408370156486359234427112357307410230930709502691047646052254223519100582882148834059663060511930180771624807909776170552815939296075747064333425890051644943368268395870520352145355981834618393526058795673255518109457918581421103091278035292057175164124322810966640317368154586105639243969516714336341170062676757656283867691727681253382927158323655909534559523538300111663274432280025764197505798221471454673511527278201522064563073106266804310788541801549176584823368366746327595816461414540666536314571497556314203186295785103843226398710170614593934286275874657912330963781181169682607604922885973130223293863953802138395109157297310345782894480582399250942461483898864747202495281112142116985748646921637460015523451110022493274157138892897261125225867996293404549295669609129956759442151842234833051007831870630966044750515302411905011369786841635491480662383785055009861489223943595468715529734980348980903411132809434330468319208396060170942662114072631756967501056857678636137440042402386811317381875643733712162037396435856465158582186840048259351362261540298021818343529240047803599090926374713115296155148184311021601558635535352683813703692289613128390963189892270822518226315398773392206546181225341442845637485131977777157001888649819350005906925635289858730698281538461453626534126654754749567701895309746710744273475165426804097281373871883020491475864061928527728463923306466624466235234257830747561390228342488931098042808458217487943638193463666508536901275800425448098227497861119596139401243370179221939448176601472450555448844482223586752943870536015593331244621662652437824318521585897757854054337602936126368959445283062253437689928051410824595689586093370155060849012479962782844528954489749694426742134134818972782597846474057604487886555732718907033749369329582567336812271223512820930185661897894620154663406648560728728986122581412094518406470980926267264882417811283481859942151803143619073781905980554712828585355839857090910798854718622568007740489017893559859376634764122608086036879672052125835339697199381586332676671982034968169895572870336444661932228592662391772525053986501562242295182839916457336142665311058795238664817210422129588341633099697472319294138179696554217558635912792223037202333268524724486878074313573934968273411699719992257935671277785992386045479407122826869176754415652021235261118696171942998790034183302666350925283612947301596467838220256658996029137861689289647688551964318226201951022588137099007996081325763533158896454197051685038339014877137296363875082315609366016832100826094458409866413701144164294658636034921319292415632458522038790512893300056023050618127296201210571976425394730177123057959488934643116583447446199923414619330776494438143336398737242000225026120398972311108230723277463268360937550540087544844436487599323225715498108110072179196640883407738771853309953297498495801767948388866210276944609082617533754903668358753204807827695951171392369129798558502005209222938432334296389189022150136058528766688198920603915099413240748788929723465778266551797878695095088936420074552201700593666222615306179355410624636386532900349442486497457527578863765613314474008568321338950456081288959796728881152175772557654734974228849194222250168253788059114478258533199048462974335444842475352076971657046321145813905651090234649395344039832107933694714217738914771748365736530387068489217179849812273170437827938241406131572298210581449366123252631207182999905863500802795204183412683831350231615944920997284865147547663655004454697255641781566379849145048598618664491567420159102721770775303764111831299319218832592787887959864173385600932068741320472949444856671982778259569623431166077912405540565142614417922926218670504960446490737077557127604565994025095041581761488122859470939485055910191103858143667204443885414734486088627888469535464598501722844488309525518669438111415412555318681385659955604002471053406814309881655386722414174077716975085536772497900059573630996861703719783079286138429260922690788396977256308559462226896631796645927533333062387411402509423049260247343774851612034928508190915839638244702852280143070530390933974308471822219879188263096983148532554448590093171003752587938557761311290136708955364009182706270836646882317297501811588964210466414343075173413819099099059844098266422118804689017556897248440944882432727203444263519580890316660095624822797323175282705812117428094885882535443038065088201780684616242260506833368470511320048062084810675376655360653032537492807887772461224442730579578135977318205467013239398990711710034150835127875347117039424089624457572672997859577604504416978739146741569979830125573823470795530610564206597811873678848021420763770818832931194126181597284813528028251903815769993630341871567398341639058710481990102923775000854683322662540092708111299077906736233110038068130266019530357773843987675638036842244985462038137251245796848759751279948364735177801016098718577756776819257270795342663916402552373566151964223421351916834146393577971248482349175724432876953076699458535113800416685458883062943942718897223937775002737070309238333430697679720874799929628151820114755761238820300770300279514431466385910772035358639504662259699814767511138850336146390791615763918524112443091843270854767011670696568725135180790679572620410534334868065886919986792792764028804404523459888417111782796602731656013223549897740086686682548004546737764531958311099415377441803242853859989750445958091142494887073741646325038930186836364260989947932988680541501142012675643486224320203912727942122258915310124294147700294643381380075744656037919129813879584585945649919524609721686925574135345200805199649754960350098497298011381194265945260504190172265196147122542108715225069086768052009608699201698034695019684252509557720835390094798770714705940906583746471017712625413776110361695302036700098717685590808563743490084134168669833515866635179564191936984542107739113884244865742110974382079074937694892394668341608478187573858406940317498139777885027005485337461711365738056162687706914026720025458582553726832421635492459847241064320060660005908372162360291972573434823102725129929506771348103650973097696874666273804977748292500773921560975009470134500638988688841427099354054584401756491040911693932560393048121952236716202141647853554055463980628661578311882827704524768405216875078096292765582209146202998272923877754920996849446598968555733383219165296401009608224552810473093702458981804230858512880789411776875097480109605034138214872112172846438506432453699042795236628874652360388469233482587540160418699871618782399680487763316049397231613420103134911056188095372354090792557585921176881603730005524009108184575770905782285029799701212897912830999472619039100755624964433311485887612277909764970038805890275151113458235212220647453968694999930663470677318854681952092674800805940363455218056206969211560320597682313513926494199571368805468808976963339027503155332317711850702524589446849508533515363369165453553509964391021726997976109030840187435443738654962131030524952229164642853351622353539680923613030267246119309588180715045863740068743980224135889582971778948217754565528025141377510805114589049283396836143531467215055508263540529115358307421411758781125523018393076020128255087038640830060390271834820447420606932639102216650424874806840115648725353772409221059145984321087785524581581829316453867315030460742214731287252186521601372989819753719219870867048451755724609174790978994263664842354724559486022594799382502758354432599112718415190764713389326450148640943233307871827158521435369417431668164285261390516724712391165651743228227476996964861987515558562336344681314824037184256408555226663470736920387592366032837565807377715330616770820091796986446672225249120982248212897241803943497767786859033025051730131036551992958799737952488475389362902690545053355666681310287812669654759769396004935307701045566946282452689874549838652593769321150815438781634528230528350167365928431137749219961114522132740700200664224307730137764667823660189911536470630556732940045598258576440916613267133567069224744077681084275249338153206060318078985813796107017339108608183579777726123316656804513772728329924022216524511128988404194639739581580027337991146942847046688397904828684329777901042404879976134943370014152382853963731782149391824967620219150781458509936759856990652232542752249921013237531987113689563665899620275598257580857481679723894402370580046252349782391851845267257120473701235689679399549139446353195827099037059538167176590949725192448337937914786728266768357330688813676416108479958243001940761611184111375237625038990929196457505211043617242954065260927174097690137976108138249354718017537526580743334501403213509047375029744443703309799031206221455696831686849494153549190214523238065317388554894796941453252173883572832630397528016230942275235900447390115449120501188746387452027025353052342251662676118329642929568691710001023390584356590218029388733326382093817417632107426901668014795389737931763827562562433143023885957859810355661453340247740289050943288726613250392298871622356595852751145879718956090924798545870815767342285140862736833912225748147154650280514291149416895055331956023881212830700711326888003772834081670759748610706623643930955069033002859881959674665999399308659434589035853558320071548334307635946564297417634129574492670559920324624720271904863320568511744721512378518877449527699920182028733789334055491588333999910567478709929591128954606332886214673646119894967587566323168064775294210995755948020125353762632797793547495434359545484351545439467170749424867245294303347230649083377213033931796539465440118141377147471616883881158217155476570191901216594894500162359066240412406996754989994639803027147437080024104813472663931678334996684086741266439603372299356135457808797663382991389975985621141891791639889391129457515810563581568673980019206841519162278594090192827026091970028307361779854632447599541593031265687171503290033156364052845289042079012731120584683040361083903678782685999640674409549878665086148453454579067039308631114291697886480800039639621493854842705497512014509276194198446535390009295094031454222985304528285156244478245069966809549018220836439649208630299897167265488596225692173511143688921754113798164278057858761919744254207820651988126286252695478171180439311992600854567971878896223026035527940487507421391951299870492868858545135941498012880999753658834894842196529823877393280847091212239348598784222464008997869355047427558413651615880039706302262219043126011783574350322654125990088712722517575740136226367822133272722253757282832555796251787087564398878957250418530111698143227650817892311854195254518369751405885302118413983042901904751094476838715255145794521428938778967443924215046293730431595566983146613667440659205402811049371700147937598505696018424663400964197923300205756593933170518698617985435519062104398533924222273175420439309949279484581380329120293356224631525511612271493356874886988225881954987025861697213708470042410275568238794064491027841636513248007125068803968785038687613139354555557568009852465529720557614437536256438014066958110539689096563025893675937412133021523899701431286310896442891734240941782752860221767433427617459855235651709670395909039703238365136867525773425802666476535268437772832138308490113779107158406824690743460772721408980296705060888769369360274691819448704535146096867779191929484941896982349711546699665536318873776850450491471652674824941180338519101734329803179519597350361517278735269683614816036711238901579195675265367080464530847182851313374553863098688638705891853187491781298881890778935307144547481271386840974336018871643828572905662861684393305322913161118093260008480897168424115301075568464452520139062959423278297434364556757885926207641103736949076811231621819592644509283209493291219967698729552176076562395195331790797971034177902756963966690915458587780770831822204091856227343186158708855380793211024493219250522404476520700205652784787130433211460553211384217725113132384735065932367044589764664778178240696300675959732598521485011489730393739414263190638041980632019242613744082099698617175680312922766443247372330083226574904820318823018371795031382490869128116796286743857006323011734176663680568002240771247993977179290002380216947709710113437330283212169447469343409202935119001959872958093668542110519491021947324449414306453925665086464823569560241889344051081711478773906774383844483095155455823941247723633139036338345615646920545596792288692416128650265760037787074148872268877436258625734868357211837854986650839407443381946506279371982329642626996625804411117437449982574581063869662811796927942277010472304594719530733400631535205421084309001799146805399902636411684165386825384371254111916858254690167054966585274649072056727588931857944331163421408979203002140213226100619563111630328863703730179056251176396881176954255292205564892134967840431425624808121221970941177640557276480087043641986167276960321065450652141773463654843489797572887127033225279362138563752764008377119463012848540960721750975352800054156793684559007644881461744921143153549432733628637240256166323679643822483960890303384703519684769162582916551973965365192477313807973431945785635342508050472892327998086439949202104598179711157307687819549876246636742603784688920992783066578687907688415419725324329190503300796900419038289410489937547720181180072986642350996433399047931449019649889521891198243154988640658370689729514282483068044637426553272916974697665423713482017721285477481023118792427780467959597242499147893385861836967184939907911646034737113400212620455479579008038792113251778001579732531134273618542718790286730249609362020552900833804810796620146813512680543851668886621478616378782170278506928306517861757756955945690628604851995527928862266407727305165282025024977215453973197799104665866956678290247620401925706032000274947265427451104467434736223084947241473645922107626047600200607705532387652758749398214613041053694783045024102216043772618001689457753732122716586000301712522858149363834366999395436784304634895895100634577285178621256803040963953115173637407339035444257683423743314865404096281040234777393668122340302545737541639109426667019383345820527391738554659897881881287488999356397060315018319859653036406376338842544083004808080341862290108296266933303284881701697607717316510956780953826295137719345545018120052954207714316717001564933388286083728913346053166151848839037864458422694988096866679247223386507627771545606365530567270666634701635387063017818414216054403085398067697452774294784915113695775352941898216913816570664821085347626974435888818794619955599595743162517246547627230422948609828091198607512379938477367310639876431621976174396210196490511154127786295597966742639059757707178808688568650237396641457459065058999632891392044863025771610394892372054598040612167684476241604295877673566571839701771327972106318907733835451720262546110503834096342364163924217220057223469228317189733781693626776903049395174843550579869881080798495180091174890942896341615299459766641407369381603699532829709815644431569389082399566693964870367033276838431403394865159660476352784960891186011964688847716039694110939514734619672958506853070550310997860165706301865231308035371534684775649416293472476723005586740801899078634664123553978068545785206765159626063126958281256940363803911281103067907747126373064719241035865552722853560969210077888141399592509222563398882168334470941312729550677125672395011178475753910838615406914981208734575566004747176009230696139135720082140253720044901088064305125147635351170408402552209139835105264204406941597797517996090791091463067986007334857127669951654787552393686630839183483298096907908949292657971239662802590049662243359233203161982541212265646980769640472605199356759496140687292662378866126423628368056172631140273462250902915914646906628765310226924723222988791267590745821532479931241714477724285162489964243908839816467864676919764491767782185938147788349600774551670682691282949950977742365694156685494909412432496865678565174806102623597691262250833873088183325352066760401958234165894169266656172269488822729195356917231134246588852924878520418515078669163539343895524789839283164010749085573180188081040303244810073650285622623088083309166770151426489672134613983765330173824015614789821950330471721348706494801991389911202807142718356647457865702559181476787618765525904060851261001409798527251360333043678764190344128207547971127123416981713278142399606828511902304809470185093273479059725561791499461090050386016628533898150782419647428364801091094636338033947574961888952202907757285858962807129714314710294358448275794382036446335059208478366273839422004715799231506755690646008967698717743420763322211675342935423683197359702975385106635270057831009279138034871306675993063008693461884472586093829873358778653781832022461058716355325120299601119883421731907305859527122996076950566712279928952610993040881069409571780449052040394761561670700859193266792059347957793751039045248734971343404375279754226304041409851663147212121493389075434002064974236046439826167359594703758718893575513055250147451028826550701924925160197472681596377982491739810044056579055342606801290362053557544600320976523564071405314469289869415221724171468226439427988374970914032162786536829998608166486938563492754244588413548680272154140870140177739542169828665040273317811784952344593942787555494510138038478575873132620514349786702567438308938676477393374309234677800949952285411223538681048010944644402737412671823837714202205281179665967955533571924591729561449094001702545603152153119827443113125173610694292521720431906079818138801164587545499528906131802533170823354789309954259599093544570937705487496210644156819399853236189525827808055783252934399460379563308253242547200959740275126985811179764323562384655236737907892331870652090940253894028051608093448352748662487823944534106147252434771530159390063765131009524202750550784385368897724482258678595721075523791450134817356767825724742836652139209215030431841690769297957515895411873031850623165095225030535345847232131588294041857874036403062916759908819578090358385845053260813497195994676588753595072815586846572914789885858222089921134773261161267976640089721972189591409371529055658758969447221054914089688965624726923670904412134773170978153173125776355394017896664790273722100398854534903059907248228895159366927123490119426807856978484194528803996341762929528984828314386100120698077619844294250451365717020086365130406828241131337917419264074603585707008057832818226936888870282035204896867171694109059391403816830548597239021766831138696140380664477258738334341842126194165968503351930074994260602232575510804999371160590471023234537282264359090524578195203615284381041158617885701542872905896814411093132782665580894928360538257456419704147112746697513310503508397299957256022890031607314981373038414161539586905031332971608429500859567720166732666292031483823441111735910183421457008551037665503328626465365641875637108748677176069971723242579328478465184955267574152828557527691111624513440663454675682146478707745740305528090831961881437778524092718756878696076850101150394713981591217998656984178754441013188156902796639954135584575778638920967595491182041756158631528511314588597820369494930445595762770788286777469570702027670108612040946759495982245931903061818541779838173697241856576141662998736204864165932567764361584481687381505045911743376489907810304319653239504831067121687367869659181091435483125756665057076617860949776399942625750202138749227687871708101971880441571658432027087358645705616547799849445511437872265091781885779149284820170442797052145215003752302994687609851988724488954306767533747667391553725373096766399392823967790281534303228769043196084796765134857326846013867575461226145825187942290304510622096010560751638031343233695730248914879642931115968865320766564694447101665569765316191679872341360102927827630918504989161605370337019072711262774068444438480709352286922591967901486197110698689506248766349699972148211970003346666666603131419538506474047726179316626376010648105965959180136085657064445333533014256226200300324698672712390820312192931071597922181195317789636722579328056746034351693506549388757579564617287813811004256175213953483976361759127345321915213713899854391082689318641682751841087622110228372146982096485176666585275576759892958091171066610725769185814766820238100313687745208023879734886584943506135755780492604863649997689258948612055666622440649119974170793840124258355215712510444351628822318228105247728554302180565155836195684859092876126551994166189418025422440464649448857545447292004939882849935554149115848600996878399074802215013550877984516677456083304770607692542121712794537665005447318428618086975378890565574980733279577617343594410284484725247944030630953700654880397964893030270625985784538725520428523659497761312571298139721182137178265496680604213617313504805728871537265616721473961842650318874272915847497930281586205152027910634137650260152457520350938297728417888945034185782541081765462563406077377330831133288354484763855992471162749565540025677874974401647022998932367501135175396963627719610461531686923727158594742638384923575457898255283939317031190209869915244950250785338825486922188318066020570298911325930468943816524491700964590664330128947687462826771015463577152207266642290556796414446527373374163687172444399880627733128258251166394534819968155768012610369850476584337233071758441103767287669321347663589617188307266411741076225641578675178290706882888844037746905621244339006562708496713172623455377105157124156361537111298327142725693448215805717120002119009911167534078695126891619084169846864459015892418597810889556880584180750133432165344193564645575090745246975130537272007396016270215536937988935976164436092117561953209467933695525332767644461397205295762784220117846984646400899568583084594389540168767542330751613948685736270374952454341590720787600448675149018323996118794758262327524126837860887631324536921419108325284291653900027536243027893359690728291001110398955510452451157668825233964563469521734294502538001270313652171435885015513029869126938267690872299558227929209935074679116460419573306256730189775522624570127639113080621805396372278896571391489574460437410427643542104715316195695686788409683058199182640456115051444761554010426602402764155950616084712449604565581402562544531620220469082806539720162162694075700032944541488959908159525336695452903908207819254061108791719191678998542044794813353676763952560823404026224642676130520800512530493630717232685192396005421191966744429465546998128238965686826793871189968494748055057113908805135647709943990473643825967346644217192523001049542463110462378860174289099234190762034654919768003326328585019990660799721360482178214732001600131698683265945215778043150089793039711750665397516960852970310412687638674137320442862559507399230303600114070684053327181370657237645915592082240821595825156778171495541160624131614748713380225450881056230483251921437936997705148743528158215772540895570064791668697843343592862464667441599100122372420877145613578009477372100428582889209594381114899487363658802736368785364776398750304226957300253674724218278548453068194093924942663324929000130627297364033791049860693837741125298596186878770493168816908526903456859691273516654397114260043402468854023261108492756337098744585669171309250071183187464806437442734450284224423195663656554303302589646735841205427036578895704396471143220440464976740421011621705165781141051872454098066723852491895233301821053685550287697953008124903952642603382437066159158763984561458014054206975349222983041234905991247370049565990677536758569728368167018979730142930188522192566838740109364236737386834896752366224297555999601297531025148996622021558144959088062935523084811128271019346375705044655987231777687572622571188409621271774389181177514836400457810323204028614643355730027354025892807485961576305568383196464729908450226951684586605021034764152317872392062673660655141121334647577590899300399477089241573653479960199591430944464198185819376547527246119384924152017738560522529856442185679088889478711310046029318460033688159033500511516059481426553692420605019776656215414349920384308231449695787156692260325324104318217386991948322831638752176959261291623241513568161487336249731018595329011655445756600330704907795866026866538488624504483726920270576607478935273556493336575403953305900930593932263557966846337970947294166364685399322963295914122590780531632215359310513444951830239802062288503979305414854694694016025374738852162881192190741874000440293131880827062250034979993704604895633071186730118867420339884441811857264154859675708647474833006648795083038574599746299914569526210968922757951591208621538117429108013426551100388199401882933236648663670296644091453019704309790584523276813783405361086243103218778738795548080562828493217264691792433296640089218631837010755118921993787487355508696642488082753087776730383127850952041845116666896134880909573090963915910851659439629235141958664912658729927526114427882340362022435054076114941168830860816015843747057347016276511141991857767782395826598262824130017806845543579862299586672158399383356056117023201579539387492235046134848453281759265991006061339243574190040354696269192209836678769373061003457490355321281412037832377461289470449271455388377268383821843433937679836033662768989437204808433127029290438522812309180998239324826522886527735846133835464205647479530694163515060029104300521175979192656505215732301730459410547689957175864338059388472284942754077689755791645855174680687910182333006508230715762578854207760855151936834453226542075483807819801933241995337540868560523521339897121149945563125562755949893035935684573294488412663107233587866626472478306352472067335268126389710053263734615906122486479272475404185366668942078560449061823051968634777579774342770202456957908482639787701010351171375141098535101201726592493711559346906957172712273411104067354142383133032862043688159629802843729349102091282511551790095500329932647103948903939774142377750439663297516288160755608174361823002959001843286784393933592986163275877806728569627162511178759701281799394237924134505336794786666904261878423862425182978012407730326797919883500806666016760651653031465431845564043087399223128964591728201480965281705023111138152002346390090024466501350432657269092723038322380960408507302171337261200962519976312116360136780929190509471232404245206394425698102012472658778789537844791627364221457170738841307027924727554752090916027002986000072464271813299979280946654844274779870894053076363522333091794786920701651073010099282855787864834652941255139113454779037686629015777006299042800789011695504292496234695262624955530532300811771185838572516703143845224833211218577389707092404841774854559356422019392632995263682051230277453727766885361509557472251594820431210330292330098395479564360656721829142562762370050900442730124506125577295361643701645713674272754865095194954143534074852115399264573311259340014065063551460339532882134907772331594946925229554441462229102648637513606304891795142383487707625903795938161175689509985677340676419823798537048536931085374201564052803470600144290023830247603491012667144306602902021166173329717590365341667668146111402467126371853047522013430910576954342809385842217533143299562283808970149550383206212085584903423518947419203531626001602784345247700269130410593306052447475197677359340501915173456659107488044204593635172165460246033485632205040809996810732158727870871969242521549590633073371958153404748372453786180046705974926495583227747208946622213088801734748174081935462814081222459835329792741466968828877265884822129388278673541824630888035783918279891143156022603575491559722389030098139215770511552159606045457316746142841082834174768692939716502096506592269814766412019489962249300031434671682149430138522274106657509121885499128884440182058417426420441209351286390001625663606318048331314883921888954039693573460986194749144605964709561384030915820550523842788957905569100663234520314301301048544851057267908645078039610900028782193331458567389979614493821240464305989284693767242802583599186702378601246567390292981497946537890505138586974332768807863185088516272296461271180211350498916333685254071862241472222947832433889190049953678250222930763146874699706596289561812240916509317618093547241985108811038029262479809502347568808985964186203225281722113096894098491319719204187689233366612197776931245552153335840554414487718249325321138538471872801944602806712416383337967510841377951864343546032993710011096780701406096526619678274466757402087636166564854742731498400178052464841525222492101979574439257218344879370919586709086645763317355430540003985135036866411130777415282702457021247919196892683537508594464458831649881945478467316490386934090700140255220296460112711672042414262316535095918395153294419273450082304492054914005827889020973014558863040945148629529715987928942774272987846884062954477058608266316550710462484579416958005634519081825942323757668295075754480331561376388238785370415037112850640759469231525672922378457474637468452021159610140933766248579144145630006756279742050380407564125848258436841771688341350387890472771199701271236489377963632311622544756723008459918501930136674036992801911460736118827938917850656716345873521445444821003251421466384591782506222626389154763112959208417544908956571463972397056560299140376493165100888485607066248863660920963013938537980623164404407438133039799740211387004146459192637711060713149893335347068189419399776614847564187235177962643265002080793555859121203851839334658762389604821476411562764000027726937816390435740398794865126798228975538251953631991311859089237113774904173907975714557267160258331230924457129763739141901086736508608536313840401292328680742146523949750438744386935847157430838287758400684983151513701756339236029613562084331001177253022883637060730334559664428586248513627371539040918350802568192156905117557061939764918590069488425911059332320020233263088214190697837612966145305358073508699564407222798209687051129176966399138689953392511533546561953344282010705615153273774722530529905111302184938421014202715387796683295082270204312948462387397574696673600161465678964268314371420860610856126551681629585087491248443699218910714119950703677193948239884727399791702259141421564038962905314663968944987976483136272893160630643002222990719213212103890472090506555572808155310928210363012951522122761037344887235043301253730472561029238326519323440539324953574275110699582773569599905035484644497328995098552390918668720978814503565106897410108653916933658749224280079065768648784967510945906796381949311757929554456866266083032057518598154391134156422913105333081251029079191403523276571301624081937289856523395313076862801551802195286211236204300939255354088196378997703989585281225661007587474808754528993733444591562840422830664309630954061855935082414473768336718710138713592222005882016360790594283475843789375201275482219758187773661252123313410371878133438586990402738117288260947592318231527381620365797242159900546608190176433008361196099546481425578206793395728857475340636007921472664584508215648289265027428833216452012561954105568437837865646884395866616775749595971103297076480034395037132036234702468695424106470740734897024030773113821265325296475731904778082726957446761347890801771192818495074619877893552940985402488657298866448160107792676956982192409401520713728462631035367400334081077390605535252727042903124256182248049941234251225363719483714311486490217675997031666225545937092091019499438195500361300818940279049327940325731700882323287532353507200059992867452465900269711121523295525494449012185566049652716174908733841631602258754208870057076173773298674429489882338166734871415100933696364921633002303536395184942661669667441482881348420833597577195362721008523975194314505918933422287265165220039773727782252313367702772581963551421409882496053590728064269254183727272207756548355639401374039147892802459719583063039228610677290190031770450091222294399985348729226155188878260619570103686744728440261337565942630906322521805105342559735374781037116813695449087134221890108963834888809863154817657368515482702596362475515685213405916437142612342597551862234576923959829603524972780617758929202135331214180679099051502048041721180598303526025999316147642564608471620098951670037911841437868723356336964003956475187762658198244284849388370491175252331632051351883411291210535782968080939318189277365885599235906586632687702320296019333236264703869963810963536244867966738951055619560463438702391307956777132852111208834922744440898288356801333385915402986992983461204613314359324713535398233857521040362957795739319405643607268718557282962475410300384622157735630537830471662097291159120487915503150935359235330189844999126181519973711621222012597280303975034946137591399667763649466793319937639987222472182072435076555334166904569653125934849183542660708242970020510362562699227501648649492072646240269488027564685323470527304793083050745788917057949865366100547333715778950268261347260223487160221057088563505530280190479087976393473608203361861504926754246785297335035706064423051512371425933671643026615023170299845531107960234229948062968495828067039723373196470939466801800722024326227574740768772591114841992513590916808196543990509409238913948014951616975182933739531156169217554103542936519464749749193553492266474247432232718998411438383145928811772347960373582027838445868640583145914931927253033510601026237482568140307793234519151970969273296067099477981086844120854043450007759697118219192819991554204623229933213455357936820121331439708602273671838874472726964447947375891333081929539753432290663435733057063709699963783891394038255533901318436785684664143971749578665069420168587604324722415411847806349353917713119971485966523047281381431474596629897098685855202941592532236508896929782195228186258238682532855290050501490809830489796986347900901678447457315537823016741680696441416021874432603759822970909871235271803308954934545178537807076947634433935330155912848596515278672806727469028004798309085846949610442690159441139064686470112474494228677634271771232837647658346652092591455966963001981444440895605622868883899776644083602551264528413478312650934881641956304616321731663631662123338308145726278222439983881522803496079044640824254177500615729953282806867986952046871141755506329236354388463602269746656551708332273720396819674424904736684766140636474362177163723900047752856374064045164225605395958953796867396253076112108738612333495902907657763939614552329406460595007474041964535422906681651716509143420150190087202778916697283128360064355640434937585751984242399988231867152933252692194721326411737709355005509859009986063955141452251543686396374128130011568419919855778731572860913141678699174878817645862875686675495578124949858403882789031176779566377908731504643580748017269214238724019879394415830672028167491485496304730676274380173100996238091165522359241029567192589321626502356062902934764525307179991252643271318448165077709810858273688814522929758291228652087621499841807189882580505521091235201203818775517703881951365736430510268727013581390943507380235752864275445244241083561643020814284772196395978841083822027193754811193355397723883639277732955482955642568425979704504098261935740779959441215832176981506851128452338642546702847137021735621341408555694414066782838500344584125791459085779257592455277241620400365975090621237308769794891229323357793247082594145819768434537671521409674452460745485808026116382801018582206923570627076960270874062189026583501258844110708735538866185510180494131476365126613650661713023603949942291789195642232708561492447023711702294807367311197337282388492923163014461654141155665999487207123158067612007859668737662624375884842105817956715643534324364444380741805240540545955401470307179977262386124669781202276455428744495077155724418091458958010460150373859157430792908223295653104334851251772138671120061836148223667863163308927809312187111524889862953353300470181599221500212175126609180674836217311144387985913723493087694997965617369413794360043734318383673094165909787697620275739786632995683104136926690164884809817108812739773699476744111383725368465147422136782417609968607917276055443760566057573279278226552033325795646153042247611279434373946499551734865395508939998223020086992268303719374199950148921457038021070321910646227856689143369974079251765854682751372818606980904370742274946796317545887632681084903175603573324259034861882665524123676083249039293321350787434556391520471819117616200913760357738300374361895092324621622554896580657644595513203710875997816115999686344383320495753352761752696042475699856014258322264607418644206824962478160554339925463197186740222146812929136752940551937476814034321470620473498056826695089630736054256356790996882719673513359981658404500437564741720913203911154377161958789833290258643588600380159078021830275173086258496653496227915666665735114748931184966776530990677001256254827797397207357049830343840200285547896461173824415791897328310153208463301668471912525171152628875209506925737529266226170383324945436780424210717800417656753356983955470294744935381325716467315730603477616597980390599875578372966727501577654785066025160584599043761197507650674237824167460121644508731238415485262801454858082552749564366735411452803288863830525503846845140381340829438282714932282892590541667668473484738966170330317520188190287749444814274390387120537290416013608535276808898343713577043345566391598470969927640021069382631815908532147748888373416517304250143936303955645045055295385585147364905851645030466809940497833575548513486574933600570311636387933165010379262131197458830392282276964934378584970762487566175252804072750968811315789186093423249872558718445183607701314907680957516188397640651822665167921403728372774515845680101916381467109858783668703493187119274423874360679831436557578038367996277205913380361194307936844541272089013945114550348996853900321717396842077985597324424393051937153620283020403318142808930688132677788883451897394173419924725782991545619312200179013013529008599874090657296214659127682506659805604774359509328691803045827832115443913728843127525558680017484061649478254420196178884767723689777923069539300341273790624076806964362699448492129548873438023766047839416616722647626142695500478252992859849481944898970357340518787622657697578091922492121592403502972428094476664574618698127381194409982771059173677809667905942848503924955772004534830705193060066474511774136166017226215318375404365845413100711611218208536257929358633711242463111100675405282092912758588786374115467864262598565405823049432341445771272565219475920835548783164633860113202049241296618584712379527296365347759995273225221789195678567401332878713828318302480657790420753417647748379147467025635255550388724511633700876040353497000099250013929897501038441558827620229838359487022282508426719843012505732393626088985228513439281509178600682768017161550902563014532730396113629185584238796991477280323220430001553086430360910652564613074755857459386403792023309390998777052902385714745152046319642182478749100144728200768755172052711070087281897415547802587308742507273704607951334282203329953345165052822974449166811973548777193567060094571452692165168608026267584127163564498505017440892087180414195304034033753282258841838821059543934483680763963463751767468907049179754208858510531120619981614363358733463470480358707712290022762223853665609058825382892543777970542473235332165682897762194590984394253611452265844744853397013140699245613180814741378393364412587897232591952750586018004964871508029770263432466600661765117483817938656224012325781533931105073319473421858470485040644300508759123328852379038216907086115473664712710729411764079772658577390842147232158664105050508022420896356173559139016619682441845021154866683603178596526053550665880041118500391978617907318122113994044520338980311932688807529861513125871411974541626951502402791245997658232007183709506953273241694329955537435401072669204836340525663532364264985738809471031938374540592493005305351697481420499715745040733589129768525634134530758445635218778122115399569170205672290311385791637862533066377999082177060306574127826149644232016540463893820316842751334583664944277236032638894152060950863417018174253572577996723297697157247599649218001956440203659716792214140674723626514838128912621361431357457059267831525975860341362972175160253343319343111847211736834727621910260598428407249078268653015220319938094820853288102613614669389577312300872344075383765861532913884676414718359848745600604634737402136955971824953204984965308462996005647362345190918276434046640213389287810930932662897141244113305692764628732310756578931476302573976243644942887103187848286298107636646585889138585893877237984144736886115332092892710894498384953714647512194703692044449652977172455653999360052843280578428023562034733294818468114054193704068856917269259332261886379917737585997032451935103800042136537682150890630125924284229940143852176575296090527057826710053270283973912023272541101870030443169223900967290091259303519693289927433891890511053014906437525396569527125823279679683834414415767850783523542710312315529083596704429971524999751099914687360643208793452071094683693121650794468791733039691687440340070284882193053259267004709690559934439789316449402500487315663403335169276780325330017099526394572338398742066903848749119277052983880737796169673231966667065096906716549995662793907760696726664809546217679202442866531720370108795862729970856529355795662389099469418873702027548398764533553356242070834423634538603123106410861828123650079131680167261775782355605646090005342189401227757343000211731111276945244281674185240833351653293563151098404794054900427447567278547214162843706900356431374962156627923511613525667948608934277496212199755292721302365124886601295971708095814686211187296814741343605937569051064383437359749894041863001779893341791792951023445221991550684720490783629055294243812077592393394716295475820551772117989718877018518866670455256572810620673215652015694491807900641161309761748398363803355698257789883188465013435638268439577305618680171506758505011851117057529358184900584038978896272882843128617970524155105153513520123926045276119274207347634388776277040129977066807281359491998739930794545920335128491995737330120066968414428892662500003264992712154648837105720284701263573142673156609421154002405380730246989893896548700308774315695245860147581574136783738230576727191150968185957949738925793415879669315390009560678015979760674759896073648234825741311186219486990634268451930015912279545468756604915091191487295066709589957320710672974789812762722689428487936805291791829325635517743465408202845600594441316877506200672378294012726957007002159025583718107980916437721054767768123878706326335730448354293549146797867709753911843236475032444138675981637381294555512588473057893827606071815064294858783390901454720655772108639978550696243148712374062171482473905462992378258670289673913251004611470164694884613743478926326155387440434148402186490609966612088308931219655294118481550824269784641798228111824142291907646505625862364658290618573805981080364724683110269582914674379812060071294048908407149417536942472530166122041181321862666125347238589539056926836129383255773451320254438101081887250659945567073988069295532447911201627001355298237925435689219643307490042521549843836229313255222197875017728142382032442291856937295464118604696011930011518646681292453381281224209391638492611011565428682400662939421629501490923586850912583027895823010914051782757800225789748201079546965473140634097573630287293007950235475374779601091238492436563388813181630180901875641223878518186064773159541241668246322584616520357563383722395365060446265335733545956273849001425267765011466936402131539570998266006682465128579187739941287033488048818929030928993263491442175238656846358854978211587026768789017566391566639844575091563296156419113951880768577979920253872066832018749748528984753569639898534305712803357439600691728649294944563996721192438040901382828995677655502909822034899121410241325542682576516130409466472547456960858924614128743247396284632607746790148082358857130800112492268426373520390913028256542605680407737231454809389209979220000738450676666188167912249624471026756841210256552800684449406384164731128108947295693963800915258466172838514747268031973514885072750943650261713225595691255614960069803615927164509466438110547350117538399115702720263234272062815431002476508579519275451138590656578228916761222119616790365959340223469829351642121747652438938090211883850185604697030393442787592934267340660574751870143909832444244769686757871284777970331756233141608627913530509307570777969182947185918463140400759632672435989162045316529229894121165422030667784810880804580807791926376876498469928981211987841026624580509931606128225768230169763384646786639279004162352801854823815308776907731149663194836963816102283018777392576558906485132986861829082796498136538477061557685487072335282426411657514580240925744475167029659730812121731818511402090225467476332411116556422478153709936565100987917397960307431665674382982657922943626995336298243335605326004345761704437834564861142882821405968481196803541357976012126007938468918955245970154306517551008485005735986174988011231158850708938245976079720664836116232824566853292573350563669289957319639074254418596039630065540184555980386043590730391067812365525570163561305763236288996264213948439040838006782460944298246672924612076477356501084487446862194224306751925213731972277035009941836152042420598022635357818319732397871361550124517136650417388500585720234646354185767761503585073491955614293997966799133997233243979450701783600338268701905797898869979318808714379201527582358366036109637087834046177009060687188203160396713233098243596479583029329086008636228597553558196610660618076596619315152506381276876046349868391920678836821396466134771833984428883261062816446346072353083024303766879789983161885251627206509027825548233521664351335501040256832069187442709359923747655625497234304725238399587754607370646105305349489842127074028038399446041007641758005153328350106132785337621449640343992672777541903712102228030727711879344347113072710516655635773438241765346904600482873699145529493103239671678237847722112845477735889515453481211147815511469047980675960754229528469195720642964734528105702396000895979890552249350534536335592410193467741445420710140139384658021038209135769586469652206061969387522844113804256422237803062942835943011513470887455995060781733868166119870000849632088006158986700619517814430648482004693037076559957618808139061176533729057617917583705412411442357212325371208942451207844617674874326535908927206744052249975776265396497773259856389701859528753346171170338919966866484974212520336721667317267861455288666153948427639572052696970394677849478752366678503894644132627875115169423365793732523896666644426462223158525423959394478670004216605233423069551501756342366548102873291374615092337835342042050559000098720693081220713144641614682877948526994131254016232722222801816367430390839082324919517849966466410507099863957695616515159537279931569923897969311871917885298623268657931681841880641858187399567357243109559968846527435115961379089893915876997242818898117706081422103136526606076194796535298188211140168492107609658049917562679905234887726839393636746653351908979348852314673008213229940057107748117221759387971215656188115597041865181363173212534754762051906104071169310062288208013699008832256442963057640957063581817341919463522696094849876831530357702146130502266641360089232938095639768961297326897029520968271928524568464454529599360740097249860031946159453566593744293915638508515944558582967160504215577956706767294558501776409458720408801166415564126650624878339596025709220791031028003924086129421161265462498242975015176039683018625424652504262750135812368636739304709584261747507916734516138105319882660192387983132925668526568586395162089470293053347224692739942666544387579972681687689642874502919178318101114009410613190755047927500741516761670846416099213242546932660560278677458780232896277858753399873724908999706665394240938523066984629205889725284019838501605297244210540802895687613096478203255066604459573425984353952315725262518339521187451735839147204819425582496895612295632618886585651032322686591658393998656750583468105003259160979859219532709342169843487158956884090783749787581224636385941497604305828895473133333797951288114422457650451968552527220087824086888222058235357973703199784845553377314524275884236089427160068355835227401411318878118125214275597253296009028784759351785415706681076366919289628195235071143519550348894014886222181133118341808318595311889220821199185807675208655857238444527022129121505108469336842542032187492954836892780307785252986236083327365203753667423592920801612209007905608408652041305847011326522222260266241456524515638406214479099669589666957754336917532348979092726480060605902843894666649558646170688157278336847762962509411793752712409758596097307481916493207750517927660887884296064751792023380580299467619363257290363940205167836765909526981433939329492100092738928391865325243722402806540511737747704546803541178020276802596995836456058666427015477054896941338516535387985082351763256658422164229623942023395770738773565408742261540027814303367797965377443520214444682929280679819396659212887222832207338232689869152961116258418330406059578107937095051074523957545347039261309856506155686194225457990554580874124015578959515734710716918222840339191103674114624928227422071377782430562289480516998916949465193209595580977726202054349562333293939943198344039920256563550721054953499394102911578259081187373526840232546047907277225020049999085817361355666691451296962475930286558255182866737896846633841623448111307178388304917749551948250578370341840504795155716944422350273603398096656253012302623137839880951877279841299755500096809890859414641504120325294681946826571676175212504206391385989626905884097148907569384330765414406107001583989103535250764581297058453825496407180458546856482074551458380628346120881203802852675498456786912494734828198412758040848325895318389886976121505963874652634523637759148868862522860387851191899924959431719676980125542332903503695659947675353706354680651351406760064123041143682121267549093364837904785004897308810730773610282529449784804213913325512419534290677242685911243853403960030051543662586624103379441808912554659889965491944969059056836098434433842668123172738341908788106346189430609637402153081997067792063849258290842815441338739254282670389648418280576905949499416903355647514307034571897997736174911994531996097900588653886131564483284917749311703954670911648723947026209249184657245833434468479858133745494012026962668568546312078997440234580685835845427144039037035624282045441417600839108207483030195246252994404791266710324603657515746901408022141494521277370274623490666615646791811134839467332561444088747057950299646409047036545695234790951814445385800301865136467977939526989164811497244240055660600859471511588217548777352863910625114046408288836716699245029266333713202768832070327583568139784027979975161224836170060178019660574692193760207342868981376060745587237156884994168878009476272534394837287979157914368720683828824547361242502137103998217384988937443055013463857164130434549607303807241624348525384385689064035524253234419534825494767675387961167873016979381531817962984761342747203280388969147103749542612991990582694809146101739721718000820533689667964040339232671605869244915617138818361089681128829588659542361959934169578367018317511023727365274542430763553191690634729812636784516119980528144373811147086658260182073080139891977042346785364032867392218914812546037421218295427730915182373740748827033655613438226840115357032431791353816857284004102017628326094722337423529599473090753882212129873457446561182674055030449620417999176533258063667579167534282216603090438736821968137956983657196427226473799485866551507268487351246656184668339299590465239273948918730942028506907894508914896026213134510946701543478697002605589431174983780683479151995908712735417832551030179934736136689094193218839068834322499948431967297183468826233687629200647381180094486820639272444184101446925475250936151739745238872613902381583291988335419747584167019243329754600177772181951538939860591823338527819067009464718628169202669842625944975026178922661078497557664773810013209916365891231100711639009688269867693253719933645032385567685978803464335227975416278534757711934232001057688170684760023509619463650373072222012236027960029660347814689074775521083141729423057127187458136576113411851733450106031562142513588793936011760054417155178301714312432577462807139030057504250097873065971398509667408992006081081795898120937160563099528949544754560096137023500251848157326064759419768965743720255687328184183999166947994351370625649597563670195594556898949192422111146811118263250030338582632058430979386601830817566394413902950932797709442651774366257099114507537223727690131456382136288067418842131417438506935066916123470676415305775417131809181603170735269984261084109049758410841149118313356731077049730597545453738096986891098196534002603012441043282541089582930178972616725648290727423085576879353628017685003190493893775649438534688674937654977262274307851844208235966714192222384091349882463222749134487923504081650390468962588376458341854894274471041095549076314100974394505380816055305482143186017467116428996756461769495104036007701727118976960893434497129627909614983849769123318122991921359078107019825655754821257195721326977981468452431627796384585573955514841139621985473506526949514558071943904809609233780755452147411313612962445290284758408454226399951423994423652816989578102909049442100836262291685189685497062901208494087769039483569382840898303192861214075706660076810095157178483528493393096712262540683113132832050238886979581088048232909132491223402887842496770182400480614615199784208226361743131546070603908225108692154278655754746996590894094886285689463404197801426909326062496573696677493319187060695251001953175209716179112647451463938030975548966377223680478212110272760869746413194251234391848362466974108389764175334649776872256053774355970649608524586068881472310353652235643570622735142196410548426832852070875034138291530552893800383781845978509729563750357546643670585384530746615891057442257963343197204202326100862653566320509871137486002142274664322435084536232542469966348772784990490648122167237109337397391046453505834942115875696565563472665876261335126142545096314379885745664928445728704789929104319406496326424112650921685699751296180847531201768140154864171306980225623594096524111750814147792585910414970558078229140882912449227281597607194852958570230647121817600737179831564012322581764908574739959471209724719558990670611473034878857068601640890710279565669733742791646888214336075652196553454113547860924902426323173621241721881921194340806863943159840209271752506374797561470496562209123048951183156556055880340620064944781368378821124576693676036968066983752411023083735764170434490021599767645223968276420960880967035061053149998981512108327395752898767333263661580307808147303408848533670878070153612264277993318077081902244859937443881757922819901994675473192233328788456849854738959209186165600117325187626821418640950172081610640932447713176176649505579351591130392187147674620339459953486405563721301731826937115101332683696595231413280605761618242073804274555688608029615682605754045348243569713859428875721807060475899699542777170438497183765560578606360668275136400302025977992155848834630469705786895804709194776644412131562648395784660331483370255938442187342397748043334275405556835451391137163515799048470862918105237042126780965512640746769076015502056587233838494945462586737127844948539354398054516367184805285536831486962645083386961512991937676688823739143649566302988370860733812445559511420895965497973138463828445507728085038226541128708055186439344384918925238220555647505676308830541650639236698896777876487665726223225371090124330624797849529070276604310635355458531753754988461156682528789017419066743600433091764686719835342695476207266291864807656407236500472493782133645131475356093619478347953340522610837709238451139567793034053647358623498196334575574823196635938974472311399222996160407931109348406536666051321135624201625876684325036775584286140038443943452054017312348652276512670806619575407197691604734997567069014918752748102499700312694898030499946789581639729820515430042511281815364548345490206442478839545909463048281072240724843528050428937700484556948615707551842068139689358707342904171241954162291693142534941071475050540346063233330282403552320143335028594402966836847850666112233062991822421439425569457337545146647183895323044989540984158517370571023344993394295900198194564592047635717444548575686014522344057788157265006540230853319276199820313906833228496380067480464721225404313686377533511199447228237695002777589831006969749677604953574677166386419010398383056489762884888727214909997279538723045082422865446470455511707308803291450585713294161675419736828019046454062143646005170505909634161194105049257650620977059411846914195009464654842950504534491776670260914169686503298834777317385372708615086843671095499998630939256590851124209840744725465842587638744825273622825195257727338289674026762665286732788254143694062601034265355130072353958956981972241107827268523191609889094559745685153492029908209561471960279882063990291322191718211761373166708447090410698325256476990482364536829665136219622308770607662200394662915064672557028873560786519688068116306896527506971382404406272335584083051852237491536009810364080761879225424278942657829270754674791219481528845804555148404173823167867561434966338449931346649670440371301620811935344396450612446671279949443504470310949479964106766281013581460226842218745163024544972763578864471707013963441300460744465591968359646134777854741470482302103317327508705021592321049932540976722777064287581217702734433279768183904552330080898141007061117928283778988902838729898664933309477488575050492413380416392078662798352815895947627714221925744823368850305392550023217291478867480066713652062175882420186304551692504573178985084853009657086387630360372439819262524633846610075329824327867213864856174263135288262633425869206197181704560265022094892298407429807097351956763000440597738081394028288957056001895269549124933845707509958318534195942652067704709956786747145115071502340322748403569958153758468462689864632074115741268603462839015826648833027407534569276566495257504641559254338084648193007351454744834122460365595477228543645086219931176529482087595860055402777293081218190358655841134858899049282348887053152267464901437945963096477412712786216947929787737733984333603832120032548180144387425129185358756211679378504541799636868069888260904196150783781987227136359295046927304572637261271651932419978334634195589327384338886425042013867902951169233964865498231810063939932409928835252578601194372754236205832136081780599192690371196305777152045449479683365263223486089786928195913106660475831464070088567179141211325067499153633026272031147265368207315154599980431145575181473515606232864314992684737667032831248867376865724592671843628370196845317086629792428858137401387307562029234504763641920305818305749137919658106866669029803242895696241014115377372699520371613823643500930696101067370609543492771344450984592533963365085856771426134103018642446892294232970288165059439777198346949546631576561642881489700913313265832191151586459896382384901414302469217974239597529670640004827145450850733377375932598342295842887019720665991527292861762975607366303661767462390972871680876632413514907265814864173170976372922993918594976690083423211876617657278759311390203802406838190712733730478472050390086809148863955192415544962155105198593077811355033590968024088035791201833320940523960294072470063419179190339338582808995798467794095412286526011926286006901032669337927197855031466406903616212928038638710678870554025465775903653206679327111270263226199117629930785203990903517021330775881855733715774034066604417017841557789143240778120536714701467657122595173818159814340716552529903045654168947986558119778025764798860847460849889602027069138227721423875317406199765617014526321880014353745835039166924350753127280583278279606633958744241733374343418317587008556949759968251289918827890392104338004170967047506739398639950857268583018329441281148120900074504242448313958959567925793975324870355754676850641140540877636578426282857667989103951529119220984003587471006837029654685289437016397612064430017291962411335613631641280712147786380707786728529646841747331650679611595102684461559657228859478460509748379930830070315886664136515742339316090178649880967558114247025652629268609809328509354910898140600203878297285379481867138593381978374766189484062512596796456126409585594961491601994693538965933306652401727459409843488747549532500243028425898443880256275031580082640491600817497292481189854732580776623108012284050580743015898946820164197967117051346601130701155303941806536347390721124777861055772723648028691416519318735534889984795067443104949486779791301447148912849214355151012948857813247062783196465965741515024689304219669743716940236475932926368198827011687020658104626806845927830187768588242176959635448510314289305797406149827354752510867990115982924175039108265713704832791794743576259955141708518402061275221710155416561749304765294597882133903604113981581167606676141892200449371659230247590525296907262609170440520309011020704922317752163319864947209598169260501546200997390887419148000930013307396633660042383959816973079836104115868230879534176419009269696142479713167516126913491229296849582184503179409913927852555561364465655227171664838732679811634220682791146102084460641201565446256099387627426932895120800774173072012594151473359551966431881854677086529899482240638837311668567661877180640252013892449487870009229514667714291130976559183536366018613180073875944302721884005594126559095965163322823216914301661642539329557294618032939263807332574561671060697094368618203846307151138050956439905958846113350069301079049852659007825776651290435371635349077131863624871667030866768414995926563627723946163298580053818492947764831348312226931921036360888756368325324548132773373184828566902896054600852988168473690665554701697209661489739412840284573612467405275335503350724223992025274582903476398283917700928422311798511736928536954557965259672558243307988732910690021961342882179687620978044910886040449901300820570145813417896837872142616689974071464545245921751939140817472590351725364094480846025668629407699850523739090252068748809261155637318127287960948631933606852523134380945853207391818954763061297610043369220251806911397746770613882921808460703457232619337353673966261864763174776618198196304599839823564162837024913932975179156269921182235835159420925361212588991354516672083001735056351925584564299263122697644497769715217133195278101588846656083567310371390649940227020891028662692712940111612239531729173241004077027113067186144561320780777539274091217537053177551220444995150819876592861865530901594034971117158672759696069646623956508662700377825338219950449643694326094079094497894325495656796074655187098884479519871458685683137622952431393729003307888576462103345836398657839794220479582138094934329795728492120069545391855505558677844548337932559104375171361608345656132165758051642325450385911361819435200085078616505637160089943085595046760823958454338841175458087153853632199335754865314657688691374872678022788076640225265100565167448139240442179672075650728217829828069119527351836399420540590455734594438727453920513839794716766419575242107034137582936043862689170185497758771730270480477040540826079405177858601727216861737947979539057272391660628686326178280812811158320252125902892921869699241278711850395587619841655924274693734499959962068876042582866120234910752583950259858391189155702718872357929861686487347554348479789359083702402760272818575885621954728971649786020735167751495312161341865822643309600137313561290547533412345064073566512304372778876273792687453212691117811251920233499887842394429952060321009162188120952081687988485473683966627079433016547161053889248085072362760566652223544175846961799410035223060219209794505696019295307072928193648536625404072154970460455367469114043219765375319032255376450266363479893673933297472469986609794815928994553034806390992446533041462923831800022498883988784299294792788209213341343345001656362944417442079350723289639875216374047210508416868993144915587984329588763889666107474467321698708776652662379727328349265901247455222804344010677372459231951024014651917202985966527103760926171893437872700070021196697955457995546060263074802010851219858372598738327686607427772556440016986181959902562278876600815876674998240841959232663523019166580619625009488443600882716194886862529297851742636247882899368189358200357023635872288059355076658722056973361047317010634370838644354675561182979472796564898568489759163233189591918423401387066279849748371070796466786676766510530106201029957726408508814859842910158049509019321982934513860423826585201362692929549679459525478050507661907113386079293160690853643562226145703188013291530408465348902821534066386878030683539416144982862577729067360975440670490046209861238453579737409609824756342824565205808654675332928703679026326828481865270066359444975861730748924213585046434618862331432341045314826279932334797810915486434591719891750901296157129289734514022199088105946440718322910691176125394979941605564778419333585356917745328349164575981237300900328120576681654579352804076205297185608091326446988651849950759858622027469501080290715227538802127241524221971176076575497567978386251451678346412986063491309254269634092373013979766254572650058940885261931258595078447124112766918053704563404110559673849150350020255118410474058198867705228220189064641456722785380673040082557708414333072298488475438482593523719342435576028921895459100211488068385019464020976222567598945500526979706315544502758109209662927198799646188554420591839020985013463508548210263647884959152993803043806990870037000998186601639906677581556248930234209364025958259049237782236846013034587236852660862991699632852261439264627284663233284782437483636417185375706463550351703666374432885798176362965444422592309092063672932932009168036783552284522994412509863191336459050259888176250077655946281291285324405093539253166839764143140187768974587907827482959608946889787200219426087357889302423745673150708811147452587455113110089561620501002204510339930038252753293356577843806074438203074620523960781817316147598184728909498425939600554815131301570185243049535779846851038130139181591922164396730668123744460321965367453048790819451494518432930006376776122771319125270835839443409320037186832952757169344054944571066787381030453276792070137569108410706354910076217984218069928896464839657318647550979475444011145355115258869398321305707052359505784926667666247475416189661822434228189532341467277138198169827553636140923024180232791998898257927289354894498586862433294364998313448427804236147158462661961272385697720551356653340852534350814758511923848606212135699251614064026321041096603957533933374442736297931437934735514962256899433000716684418537383347946419403728384988671951854744931940329168728381183845744017882599473845971906969801675839955232473213768021902137470103481439481206532869255332266900362411869970138293725276913964592988061139079546807220708870610862385757760470091359004436245454541257313608073782654860878439261185217447778428830110942897359365833046630548321971415913636805021353871763526586872770913949758078896495276571787346114758916630201522207337344866415640421036806774789735991409561288977754956475294581621967418099347417134545852755472245021997233701969065890450157725410240476588496301148939977967957691647727867943178289871927510611273312566829329838293461763529062459541088370017824725744254774991055884473141076276105791213416595511095131013470671423005375890496902540889379996215941524849315286577450994520103300453548564756338469428721028078523760222019836220363459945237781236587077150219541262790976178313586434077854303906298826247157104380209258713494797554653397337251637608664933227465605356769517269646422666693087645025347080673197846599066373334099983743402795358276221598500080868706399862690168901264589704358746325359979666860690019236453108796064246889300037242654605491969940788233104386786763106843813032928774566572184571866901214841258537101477870535236279563922957474179717907024008087547733042848258534895805140276244636681412906369085061528364076532433462909286533747379873291240133740358339733608942137355898953264429726890833005917944480338329854054965722634727696085281120397068529467766000338061123083588051716764517410450326286758360167917549493305643966737679941257692191098133772697497817339038587648397148867636042125171846276839666839801751565545657911024046114935901216637572651597950502370423013099197070455016953409638762860331271924248833374192757629700807930284184252645593907893993534748412307163552670001639168279435146624946995612386589673263732620518451889250266731466877493178248483182632952883899930128338442030519067209641209404293727792110612048373960923337753272229741529775271474261915986289313275989383382781097009862322412725326163254177034301369553110136990064841020047337113567660741659315613303291104305402846290348354160409109479577969386498438895903457949061138995646474798489770035706447296374942257140510499935227034446898804484854832805804130990304404153885796938526932955921511501776078100873270516031664126186965827139699375326424816781919998254897620068412276510253444144093967737660406640149920867719812025903941677772132064667754236365028316792784356935001348827930617831864835246012753488399728147091901359866791764464876449124707977466257275373596829158421838691855338828048470762236474059185988634164029536314196334953720000035284284577466721017420810100523319919530443545371695230529363420278443609811697792546123784341936953171221290618386574141729430269113424849607949932075934466384752575243907889784284545218113166146538304202331702798908515403214499661410370238969570776629707921742129047104503642199496501989227573085738318425209354440841782566993972684221865194974479434467690455855943173487457541112117460127967086790463028747239507575004334870127686878085457286029213507267563877184039716834526445954990086476576465283938125578737777473813935745431642882469664155939965121553521968774422160819436481178091924480462040772046114177399523420819345200260183503384118225046988782831969593895049042781058457019923290278706325652668791528044677080666535780623305743860277493151013935776593321717594479877579209076780555157107359029124883395521252231226564402216326490767215796297721347109660115715989609156350508896255666411110393316655986563964463300290017497355818215798914683357475250804693093820383462217099289568975158241427398377861858982932352329364579910294844296282119637323878215495982941896768014863548515144446463772799216888738818015015034318053388171456629954363982323798640434498620915283669681951187029382193428709716788269565315742384118033134119030431174993246300448852297297668081317578897390556098072295112163079679816744860554597212707947287554867529567432476978220303100377655182262247570422266344813059793811211371439895886019260477439288658797985159980361070605292474753226054855830995622485958454479061902023733709988613957406449503134806784548286179892403838289927200508725244388236369542915686496842984764742219357649725015880809003419461235340810616897645859703279113207380712217029500462773363264026661055033895429292671688872543792579998135584569173152795993055474707475266581376677315133028323168000869747901148492054103005094134010172718851472089741943268690760809491485101065729556982281954463477469039220103610035961087954315799149806119057528740536274462533441262529768035685534167950889479335537770118732980390668169944318202258719819905394815295925689457342036280150847426157005050494037075026985428863679819168600853664831110977397030156115781433475745357556668667138361054780226291538792258448465987864150978671859048516822584460569661248271542000557315457310220138000056788523316908584027396521775263344929919363554375052696415673359810980710350806938060639421045928082682066637030387502829593553016183317635095812066748368164407014153697046658856839544090040024097410995829917405079594831286721482193417466046976869351352683156185904397484718219591713494171262696424667418677160641853881152827560388156906548744149132463983420571869248022624244916829993373332728911928243444021264875089855137748492955001825285251559358230973615270278910547643338758429453887125135113684797752844517657304816126649257699022306659218274791160000313798430913955612953970761108772872471636327911888030094217493707507866498591595737925616434138084261198781685291771024364710456300742690089673911746497948533419897218105754546627951117021816484187101067744101575619031490258180167357839165773459596364625038416106449039107879147462740077966755281344926879780899861968699903232246849984852244402957144295197765033270397335276704227504965826648041397358149335976495272782391384600261791745023349976900060414886370089823776722328229317425098551211587254453616178497575815251367310538309994287732497468047775141223951349297331504920044556176194529399896250638133514197491182757497877871193380788178877335809450226119361172686249346873914518677682469773341427232668831626421276022817982044075022270876372448904713157357926765478812348653778534108793369666224392928817018296096833411049733494570045709016495340901696323772733263687155483656910931724674030115384962772245708513785123324097771626613495606969116792466356362792685584276060836285029600767891533314502916826523589358170418332254497156341507478097897473860236057633051196225527544146941574793104145764710911784053567196309843730251070736827369478261460276980732010756996529457069844559065712376202187619165054253981380972517836407656750420905599470906278550910542467601118715073043875162010511371499979614993816263638329528452751530687204155776007752436586369622700780264146980576457063965568019385402414922894273641728757526668574743292887147124986231147427052345034116701366087145907309727058870500931079690954189668754315732350259975302730963199433382984713774505123312414458772480794092265840974673661353008941762572705361212315862319238978452932211512589897643630854290420726610516625809360098607293153246880019249907335329233265703293279886992392583192354900530953591753493307805755996331714270199920124291779111262310875753658812375126805911814735895415496109212681111992574441677793738653490113518789753565919864751382153280130444796747184510907677636474783077926318408481045925555928016451713910654298424170102890818228365122959336377596464402784805517159476204545635457692013944820671421580026305772929273107908135878345071115762810317224870178888144379417759830908542383644435335364910326254282265112617414401934165801662210736203956510193350435566292773043052921761251205028838816691763594173259523725664723015130351310972605173376820589489862969340246028877247093138980992030723568337032307921803633996409150516887552934709413267168666685088731125577830450671610889580636254862551351990286157161062310540997845242627284775769978017716244075388533134912954574884408079971605623010940707703497285177036728963059011904305486684101380276686788621367916233986945806840151740801113338980939145328038464935062939110833646613574340336554820074916064784075498862254063663235841132405093963233847680792168203478962442459933634121700509101465901321608236464846497309339034626772489256655302370111261636933237347057016869975865711964972941840471682705957018892374610944029265049889753149937318333927822787810038116535147715832920316202126567933768556719730514010818098076744230269552639304763582831828235879879450027120185663427869083716516580528017505319432745976120046118641235064265960012961397031502397394998648686433740047571409704950641133657851379093799703889812310786760564653036772131927220656895471994004989783660690365123725811835881465442938754677249402914128278400060098912971600396453302712805382268949901118521460407917694040731598802827822085541531243483540258982904425240120211562787225773403646247120035724140112863806906329700702551155325754765077614826705053045264454207016558474100544381667104912773820104415546766157833332349155392811089017095821236650533405894761067710021868813132898164671999185354878997268676567200266816329584146831095581177004000479002891637142681600045458686953887434158803912836843229601809694728700428113534453883081305522258047485031120172204660898920478385054905611294101077454007279232771984264567584393160613911353594747802311601557883460111691878006464187847944326527671987527265801462196143008673451698208613816829349458825793152566177495569669083249120327828559456956033539877347178568916226216205097811182467621211880906659102138106492918856486343101405363085476276585536317436523103266996835947981060496225657992902150377006605612268371084718750616407033485302678540175760920849991092371891852030640487759562308768425925830584341278800805598102395269392695739834385935835171024735383987577728078718996038775541679086555179614666229784755312284528299094801229515065950373171894551561909405442679726777082503222220722355140874626959425475653811503872901457521559590657643750756133064145218261205118632195208200848406831991634249098742267258876528605152723651570900576289700294097023481461450021574660984158686680766488347239623188606557503113603504476326074600579405337098596344641169985225519282087896509100420330680014701688096822968510492986240413733706256060240944468538188177265930581070579711419054754699913373484910727202884201067735277887219657081151778778850260100906191277130470392986847282191669158372869686257071636503552407248565193462513232879926453012351752793908194024132994871019487640300545774632275551796691781738602886427555742433886620629340493496854347724571632482623277799318184526772012123003499524257153310192546330966426661862398038947646049982284527829449257357696698531991819455901665615497259298111221381141347186106616441586848317637816660014174442241700273317260137299942825199837457755446551637290034363153591691928245352051172120189527120962407964954235125734461625369853813703248897636769377676705836455775808495089195756982166256527911124369923114549311272022375592664705641175586054881896891161197140514009933256805974640131369081967548321544403775478739303011526590437978401978141430437300376954397500940300301901662930842897934939869863741009774389007304132909341463407154968882414076428153478091221130125690464340704688688068402396212137091374617751253520652426241784400644845352025335061044462521840504084892633558993994602422698941703540320782240926615845974255316570900769626168611538657241027711552917379512120872333566647564750663025070448003088410420758938802138879060174700720338074592431881321522679127524211875171754522312160011591942981218793590213470044048957268462077193566222824537934743128686259055990224552385432163149541721180170871648079428492746840857640709464965199635312753326461901947372388929072851850004935191669055315657966561849320722577729994558861746069343127999551306225337353164456254769142276608550894947068003129535359908506219585245393036650018398893315261465409908504310695727416260892530645832266761953362728800080245066254358333612430556434312903235733637728554420089828585699927647213267745196045589391422800892601999655582812554680804539498224268566828168682691531726556441356221658523926662220516917848863953343309811811027182132046041430307660829401199051594260054455379373330125555628038114128380791572111141317122484512834250977545939775141242607649796103919031447286546958979713677155328452560290877563084555137007849950114752962896557181128182062025621228720480912570250460769578632918658717812484304280163744281707407588211322872567731795712175560692433290352426598896058703358799568341369420216530757633886270728575353167707971076885429340892292105288403593332661394531482878691689887214350492456376905504059790623730303810677579330936533825414533683414992381186738458971837233420598399376233915920630912161516962777534434184744369078903460943702133348774355081495750312920117611956048091128875506931953770899904069034814371957825588657564819884426595953340977972409849258107996205612272494903598784738649033143702733578323676419326811752059152992387935185323508961691862837754437108805997650455003414503102141220841970309289031534388535511854388295590549619987459483622214724010088915523221602241637908307228719943082523984317003597921120614537380337669981236617737553650084595334553209259335524847210493420159104960455311817972426213014887919512639590637293893201074243330788423905963556039669023238632477714045828209021990762595317693313098743944566862800622234638821051782741852000999360151550796843716021866825822403194511955457985134043064528713151752280763536364335469081023002196978700612241635104619438638885538005106044501592651925778794357084237547621160472185655944594130670233914313189537453609693207633029802867861859550156398948266538303690817023706927164823127542321207995892413925375554320990390005855034859932640325592967210675622329610281744957903642946847046617655036773800003990566743866113592264660471022348449075883841207110718513958133527470697013600983815095832633727444470362086334413267029531590646418992463123731049015766690904236589426007323922305773021955223423384418106483992271700698594174445165462651164430037153496256685788803445455413972736190527688127016979481318324700256462681070882903435389623941176975536441791277043005969067931882309104529532768985075353733480641573792651014200220112269567067199109375927600757352703324498681584650913546261055403107769479218062233137419312422702687505353981494717117436339990823646463087060731875753519186235894611452126891735261060035074867711551871026122865049199045847977561909996702680541236808623026117514933772740773472693222168351124512574044387561392217636674304153219257505642053695834885838891595853094233104452012676402173107303206930145803622773410520182574941934074923303637951686455843989311512343770092412007049742913651346517729740657177828088453169866424760344100011048190639496702083627732354689440494357482389897120657541249103414487073174148921349834157182133612814740242889332595929010821503730267503169098177132486410439235396290298641918685224953222561582564148292915361315202202999122961276544724415031339017086005035882259164359166999697209517590322193557298541507235819106509133555893587824508150688450580496816415392842926886161498047582060116679515325140953356766447961674778246853266065397701275443243318239300103212377542304882274518208181985401545120520103067628100627954794075550987642143566110436585524226965073980585636992017131588265855269362490398246744882594559056006499294437800607336829028014687561275214504388800452828456671074754319775844977390809912318216736041714073022705854721490378549503380747694467059950640139363756906113452888617877828119723861587110082049890961077623575549979847670684615095184184560957606779688445278909635825669557208038692326807763925509200894816283529396107166893016479356293489404005432770292584674692090826139201616539317041715494818433198608837135753659515363948854977246326561727994746231416827835902762269881379863939158575573099294761620867159646035589908859651346421502158195175857383298546771619251103340940488249271953713778335203605553112499237746023877623844118466474151507524860656439881492644583969600068156278207819328658083350805176918112732888155352664851580886418559763926654924491005089984967725789794810125564752648022328297401251714393920579980772029960796829052638616242764613221440326052543520379956925372491413879139612760156650166677326515436731716949623764123767861534793935819070922627006573234929351494521158539606232410456673555833886807352487499516441913718078301862618378216914309786827614340290541687965674944028178721171876880437225171126761140952000755326695227776580503025573168017263237156305824836346227184757253575265389725827178045072600883566662350639930458342477000466070091949721363594659700203814060173825919253010521247226857529748213520332805514655292283403038223156383848801024633624349834509135100633970901756525370022090344230437900553572637436294066873869611713159023038382833403729221578247467559679239320541378167868233883929030749569795710336791584182578899313770222587017375613310906808520263244155670848841813119254254695633887648112366966999546255246954440406590544305314334214472057630651709649150732791284651479832978830517705742839855698955540582190880333606625454073609153401241235571629620208267048199258834652605125670750746082064831727644803038854647365548387035718237128579313812364655841255303844992532024165249754556930020035327663823283427050452119308094072688701300382428442524163030233779758238182232634460722652600335687252957804782695023175808879830939823163499792108965439881020806197028114751586326030132031030935537561649458915229086426572812421878857319514133247471987226436814123079419850967085572980464410443222847850870617480602459716069956210603644136135800849961898764361120461953540407326216312093036723623001372488709815293308851602164929610554650080841219098295300573774227191475689490613100438074246164820551906530299659386275079160149735815618469359835392001427017336048741351365747492773886069781123180160807222526784686848137082247233555121194035830882088222618591143532616584471972734027578458094012956751547451056721200641866479127616202410046757010376486274480586895236235016950321734260345956393721560821833288528218873565900016402372244083286248429212868736741484302898397571210697088117357783289456179784231099862938630279106363945283867270844562603162197073143032462921610261529475546782969182493205869699558163483038784948696631935129096240655461041003142979399110746894260573142602494716359361287858361993719133264386365038956814276433159186677948510601858734501160631290955371704014021408781699515477854985064003480511660004208269888839461356522396472143533406745811583181090861663285623850005021427318755372702461621030150573870789257192052310166230475331666748428205012628907256895792125047080192707428885678069933903543306192342408144951264008589382226643824062467263732308670381256413536328572815901690041377656605703325630729709079592744670495811280959968556015019825482970381517915443678337589113619536471471891639524787143036521550476039802291667877835809719077082571974402802704326880849809890607242331883319484543089109629229723294177891271042332554612884352135463542129248625182393280198566992923005711501056172461697468313776634069937302261395794867410345095912783234987327052234818241259831825466321157966988962862461264348453099708416326244187856873471960396057111652056774234523923485037973693956457182852809186014292926922804191114576805183544236113079953512886017173368498538726834998890836595346084522571014566828147680935714512854338213912900386711756204168575005308259870989660980812758070870885273168965537323257170157690393589978449319979276285215288439832232811411532614319161970205814630279022213476821093588598812291749755579795959280349025588843218640658837633774762037925665699001170480117278105059157501606947455879629515307401958632127860771076827275303001639784760414174084761504920414817302756311219553272952335479198602013695273307112852086293454003551780479265506625158809184255615490718676365231390948216832978842753157104121108463319892979536217843994218067420399175337349409594630494887214403005239810614405849205925513833845555276672378120706982235257133287030800963964642209965806243374376262246313266025766163665382798385458070323599403428368568086357591351005400150249315638031212029264395750076442827908770053845397969278795405390012305835878766385978241454422460157215937219893585800735074942874728230849880671498668894465497057932971135986069375924496442467584751265821995149050864419646765457517098976607048565844036239748224160895594671588225699279850517030199914505013021843789725650108098536923454276398332950955348013712410355343331484005645549558168089576205074887766606279926337244659731553608812699868541612366509532972055001874534246350752942443486324624446206170134432973593219056464757170529488216104518794125420791517497196032217539085379239964488603965297253243624906988545172609505816724455066326696911348290843400442671863978040930566943602493772520260535310210841515734713384258140618701768404868135637685562068314118859344937922932294027218839369860979551453556280506813094214470030592762155566535061996280315044588051015063740080571258975357545302976396702958110604486672454929269553814782027704792252341440307466238622631451757757444253386798080798994280371712093850050989189349581870390217819986441968795158103153278591872368714528172442867665574168664698490517445798245461214009077145469151980243043484157784054850991326714259233746906473741986760909653402934623834934890683017732261186236038830960193114901993160595532559300966368843640361959525473780445401789116876371193902370851173534523630881941693241351517676232866760079510286813493675746268421106315822788896893394675481529645361138886860354245438027873741420333133232786872870021189050410018893048072170675564769410168793912360969047016567388206023595129643023379682936342153988821928587147213663767527171398332749676703261719919869641575820211322213115664584501938770368948811998689990845093601816378144175964229972956675002134124220148264595534651915309046140726686949854368733597036052200668148729630363476487888843093785447056494914484872245214251358948218129360157752620639327537046558998491967100752469969139286133494176156397822471808513974555075909329013199563937508750367229316891375840348589209075190648891987204058526177985415025019267759507704973064857632135642611478479108422228837250949249667925499026955371579518513142291471639918245605627226364569018798387378997352739129816663897736693446436042689021994059007200921041202763552965235074269447521709951961192742077341709227784335460716426432373222359142295954725671448262118147600493816839502842712319088026267148949742058276750946415707433847803638639451366281057799421793507262665418519883565047516123251815258970276537936674755900303379054810956450033328387957484722006945408893074132493004789879874041302593786553464919433649966710164834190608411475927305668125668925603950799426786566437638234506670816751649485067532602870467135950964579105965305986425081378464381292837018308638851770596003452518154642629718129958214938653108667789610201257617998098538253038097806313259880163972362402555691132385279037870365889741627312320520246548999724413968900167284022720862381787204303548489873515848828107908646946467536323512610536015181909500129048827263135698441604409348103402260609015836786602163822502111915638825645409317456984094516970808415919164205311076595201847444690200472902709994910605095899329522885675322173477079706826677611115295232033439154690495233205375988080065986275544216007459403370946714926017771592210562079761174129343680851208241274708521138082778437428131584180864108114010298811170698491604282229058057733433344464589121339227079943541195089732569396019585521725319470796559094848795496910155795528470872610204585084769126553059141441436985210662537961256265623961779793877957349282550785146145889425139330004464180287136898642636081213266446591206788829174141202362727556351060983156978821799927813079010657180338905026827544790363463860623437409207660217061522631770190233077315571970034608246198385866004731250985970831568816828255497475744229368553802428827986615476011782012006988956819739170216488103833233585000279749606428511357490974711664347218232289722885873874514359017550564059288913638523886250741122487809934173237045440960408399702343422468476556121466426187279391512971584866966119361906510714789894656387343353121659951573782499285725412142399299643294609214665592242816553465831672605950178041807262521278806456109363048889166710445699029629366995910161064199840175176307081834204634218135208164936619779562697132564868873801447634360793441990837894235387123315126937261982711358828173987481407759817431162415411623122534723909610814998995299444115446174568351706522786235913389631025317084319021724304514224423988609608505442091440069155652025563004388803375995848189604710706570549055005691196234977499326632058673927457138715618150655908470696081639079095772505339478356971854570369764073323983185705421633362812725701107680169910027775219653025803217883180189825815689650528385547462359095054736581108411348626481621928440895695813645636911699291332507123694227907582791961085624275021780355969271970126770533450054329572940078877022579925175978671140098485817482484400949077734891369593593323920078012409144293008432101783888280533313576720494466731550046011252987290883564779030575805350008570709798753990133474430148378998692620176158524197410885069006089499288128133884974768527572423219701373191903057783390039974704269794803099730479846312460495288744444432772611368529545260263938429040206936924169966436805763104845961043946517677950313227371572837720925638955907779508382125728940145458758037335183989477109658909613207907649377229957290423947625664029237218701750738201476030559903458218898265685409725048403664781654321153800658047369976650783356021626784893766047776243107835983825998883379729689930831421666413599104316303631078685931938835829570842797102081482202996039213373553513267520699428827837591845658794390886418604112152707006180033500467265450612496083211734409821052958836766714414526444502456589406427596845272951096116494888607760123956162216777597552104912382384712606337454432532464017145367125452542689195772058864021500979933410821376125738451922383872801606213328696941554473593963634088333737152549320329222647941228549119700824185630177653392229605190234393107809502246802085302648141375332872811898529547093592467307999837590516374992204822873299128511140929440739262201683802072753944302902058648929658758083985784568262528360528426099278838722795032088084400567488110968455574935992633314417229661271614242595685555374108869938533337553229158313812064027180765314031038234103518602932063811468446208214318679763451584763233056119129314196556612068782857000165358453088315309471629346660651864843671780113948934856047130649501728513413161984410572402629704887924102582801417247616719945859636798610509123001688774805083877869651388393254237033136214080663203224043183420145361885215483536810692644521463226208620278246870313749951566609245230006471043426931440085736452426675593456466660190361590541922563901134024243091107222844913142042372104368014527611585102834082736842493385261232867580234834151172778538205215072717547929335685867162262118699466533267990284135394263071204764325180538845249161866799260824355938089522182236268585100013855228604358136657201737137200137733167051405600922197099975247437971817316961929485808345638302247295516119133233979583679594438001829996302602114207678011486961762471774042749235336526547441257567430428457424688428298856963636692049486827826663997873239254885139534205406019687909732611681548363897669953082719952194308187344766065276841495205413482776367756244541283571682158839656867295886892826542572456826205741599317407769012524854849437721896852509581195881876128592330157115425943116996537259648579459601533967053255280205013267180778235025994404046217029302988355151905886863829631735700439132936384682635350499639672944944597664911359101690415062306471939660447721787673226551060407361949255503381359374048642576207853686141798988802426252765389024424873081129978461594671392133012075763968094400532794725442331665031798837671122698840915175395649674505745381037855082053937175984374325150192154401419155355920445597372272341311678558947552932723207006387460022040054549250862892435135101215403786501758350415990544171683139613414044111603510720464033005219312828197037663531449722112777989714924754084689504582432252529533307114799715992710631048949394379045912592647505562207354998224042066914200525491670217950126901847125373596495667541845094443931632968220943018141583595317043798045012571315175508973069052665570693149349253709460705287914234505235863728814591917767142194979499883381127874137761019044656187305728794833808421528833232960738857798328513424592690928115935492005611731413458261719468388797175583727711117765409236114686785294235161488856509088434228620234081594493193110467626829187360311556137140379202213297656521876332128820884230813927670842115163917455232635362047402058455841646527866619539540881655515421144297846751740458104889480144069931200945976583028280210243225792289632763679067763739354928822794997336480298087220929386177767006550766774803630304369912415513211167398816420997308575071179419943121552726488433625701433146718928800720073364666639863051107852571694338475427285268534504003192428555874059997778416594323471690788585007559479365528837004004785150460923767368343610308859200044410244108718637011419272325346743498986174569577651056400997581234552469352996774466869377340008501128962790595089713589400598721305725981306079115300785737738569786923077921843992146272679755560311738374174049147912667199574746452811978158132786742021449046808330437152299746179585498128477053656524637262836431936578480108355739201332434303595260189479157084598369363963732212913822121723430004159639719881169646816368184935001873943699588541652123319700334319116306084240484138349025056346184261411276610131730340915594963282323376109151059094079608606740082336760407095011968656410138536523337437592154842962732254905197597717118758961350109768422766760929992970353374804312770846061992600612181692529728983504113114141133741143347450089435272655881165806348061108906003274285989722550181950928991340871117273597824182393655935811602266699982489032404975398558404718419626116398979936267105641904107925051178621852113995280785473596215865449728634501133838349699182323394276834772239124401947508910438644009894708485072859374101792560879515476661862304871680423162938416397317635330684186537807792756750930407174139474735814513276255030302392996388989006194901357774063242039000610830662118276609977295451566259507602374456208872439432594334546052789932290892418469914833554835138965127101972975175557896788949464705173375194240001100053874752068522759586832646392031251444148885475337202765061607703572891137486857048481207031348307155124103443876484154675798423708100229550649640899796891980342143879146973461738602342724340929191269525846436804025681091760545551949390837118847861176640828659082222818948484041319277549122476464275431625276280571984281595133698799367326512856566876494176282833745319407331301553681948770304155755881349556146589216724510296318774377362505314808347509852829239533485430737299910038075899740761410874501293289895337365110852311634773638611921311937707624190244016744380956156101769464160639269839450614129461170425713698323107902904860665685418833806563545813244251113270543588607511495666550999969942219521619536060587401552555451121890811499053303847992699195974809322459639930000596391523504320010720451294863701243752413720275315254820442650508095326077511912188585539853167972265236919542377803543569555900705508561871198136400322312515279298270033168959223080902778946884736281085934044440788447887714603544043787643701136413381634116236100142200179001134658050885047694095459695235962524081677743080630425926147287506984622464611800885005061769483472959584622443421108691450390865746898047667498151366130512945245001841640525201346807490044841215790132955142216542142599060030674316427579662800365832481206969536301618084431212091711476485792513994758852916480808198393478405162950810326171922199442042602593345787949142630277517667754701458182182526902568623187846787007804095826613171747865257401103473877779978608305381023025445836288411190707026526137632459738632082533131224750762857730554967808252656824017392488720539420024972222641215981268220996440118795923266452660629416469072033361067031250170344149036079375239606386763660721848808698145428993476085895262820001166498170074840468136462677933968464636481973981148559563884365047219646254006179126914987778129618037548368293028323741591453835249902102653845413359642456772520407428448062076733366143391228633478496417744691022067172995015588058656806922366639928221965881352688646900525966772293170462271235166876504387999964041766986510696907011049652237320800223505834983030532791282778745640899607494715900302909005155644131376972773019145201705828852603833685296260706391890323736486138503555677407469162154059891145221388648207390758952545170733372796501847071677091862760111533642991036607377550482479589832672161490690712512707969441922164246458124363736743708181172907411335189364151327535156308107290792155120610071914662066305640971159810525836647168371250539683016888089284337151785243524401131867747532328422858857921255647540054414396750073893398003761608527422446589155142563515046874886059301621873661304358028460874189476364408124594239461174946567261059812280098613253919030725955371877783594747968931705222880848976957169804277096205658934506255766637813165782744975685406480975487158584717237571136684552271169607834771116318774335598172892251684470889348350368508439294488649748691263494899740908547416832485148621485373731634888704243947644409898223977369886372720160077762285176123452974781156423611796682897680792723167983699225546379326876927229616958344045725803542230738171689482343978503298448255486446366505006232037436022376250540762478114887564606121006219022890989078828500072393127490437022884104938561541931166309788445538253478133114489458146055309436052050454653145347611217633180718400562037457383715434833924246016908814285677665593734766767943088285575389794400939937262993186087509266097789859521902105715467930139363672826433558615110582298474839155056233851857240821773117715206223198645921572725901189658074954914967392640365828832945536442355436105620266888636334987822759877084420078971849578448780237186340571534459847348592233134800113805337216227100608979714372462734325922329337989914548809374047134092280279231596850935798160383042273002446091153294139263201307798859880314718495058459299203577850238726598871078760819228894382327807067866019689300846359561023487279204267401734411478760154563418700762117921617086681794076794432531396093469268775709669395641506257998565357483299826012190823631875564690447896479975737090363870220565472454904890844828954787762498683223535651780762458430676976554583477314452079865395263752276472774118693302706215171617461972704218849466298641781550690528802564334160104670461242389978998174866146438624417867580814105043624583453874179678660595513899391159670941843159982613582791087831864170463223327170045900463461519321334523526970542041889529998141196944303176314464050103864914088912819555023468755438722729334504224220475058942279910327236965892081581504117263424325205375130073767360927143162833017078503104476403188502271998374344819602766602747699787539821277433458149581330533424365595845776922211622662242692232417660089610702997270135048499623494942211662070356497388648241166785753767804367171248207711724898127125049000967446544433828360858235924622520035908606452456585056620474302781563487461549531654708008349150694045346770849287087667919230407130022256757348410487492466875848856969666480948013129623899330182976071782834785002016159415239989271428213663250744409922614053740569595937531116142974601411421577945307111349251893427389705200876476348857589702402818955673454909956045578134981995772921274779313295173596190111300650762498238765635571654165739091302251186897854288424434484242696975557587758037970294708180281997039511176852265225550812406519058158169858418109100561977793496246386191859785934908201377607199866895889100565595789808876761192555221765937318952090797039291931622312788185536977179217515285812963832741634074963139099310738944891496928037361194613417396466590485731939380303320177655610944969337145981882387359021065626619642036469884315172771190263001820335226170049193371824556538726453736681471835614788457656283945092333080213446693977852731819397251980250205137687270291052587514075820338141920539634324730890443753779208946473117765193229210582003446239060194844425126382866316896523448644388366056126275956039777418796739803472374190458392466585768764886224526537768386894918789283186691939745758917630247524464665667601160228329353036625865019768197004922121559963766995185030343463727815142470090715286593223717426970870785361720511798029116526583246555795649547488491735336691726098025334870419576940538797559210497271790101512547012533842685207250010586885620383256077052147090056972964830920315324588902267672536148855814320216811091006506517300515531246625598789103345970616603596522804064089703251913163158341173464790191708893439198022988246473890486040434281368763592014110868931243035106644798006183768351449298354046670671430005412001007817868249644033426526525218238372446688227834963063591279510646666400171796171127650371461046103790332783471566062023724887872762730367670455279101315717289522209401401130614695592217763614896224482255505941368418736948032795445402119439018456720622891999452697907619405611755515595166404342391093284502536872358726550021733495199085172415519753969969960939726918409892254915496623147348622318659709144199273674192633669221844844180552629245381430236574984554572018892441555066117626515321678156216857715378247474481555703428110497287005464862693361369139077603706543129579572609780860985421570484677756697159792575025965999749372035899706718916898871429808365718129338636800359479843660342239430256429264591403777880933824245948267112408215500491733291388411091294225447724882831307919707372119551850186950279722011470893555341112066630834255366760801301454222848940236769739264389203430766566386022399549049741520790135698824974257472274919827135887145361576637496191198073391264336163184620990911355253071233771519348421482948660525731397786991220170350961034999833537765333957605149186479791237477400487174880869681762459450399777549338980726901272832036841365967192155713067499390148889533581124924428893386089323998876552528064751142624167795153162477402593974908878394228704451729576433767522405212944113283400527226062679444901421680118750723477837396227557907694526500817633342311789212724156048702538510193908769380002150592958495854186935614282006356664538415567934711171445177914032439808416143475731328991383876328212641125853445840877992828964522368516945713264446589721592443787118444662459652265223981063380485653797097090238389958839859243285852235777077277922061083270807978064958617884938816718383325425982567040188865281954677117704778203083158256723738070812876469028131668133995214878045206788257624053136256988652242699390740485371426959526950838180375603679054499439474320076154763655640655728635509260285917604394616393724421832830442536698737438237046494393762069446522284768372312301986184432592786699573267917568760203373220614449279470397869508225198018654278905855975245746635213609368311331521958005342080846987943516944281071881576161555895339977332870086364357454781647236828045271387607518254276109534353151469304190628720658461371484642249096838141971969128818170386492720587857673656898837154262572822681670786749474371428856935032640935334148281685936746700922054825149363276589490379930008948982931493876711947127806357578528835915894134610013565275946092098078268084018254659902062545512398499240380665686412984124879175229695397526438512744681728828990586761364711565182072733256824283424667609408995509974412259523373055302637528494279310250874528116997656381513023245248717398353014337599587599652064809693415088672500347388833626970455380367251536168816863956961209599036801063002979288648611350327527587744272991408749534174705562620468171202531723744513864750651918577644357027938881042386692784618787690206893434853106845517647405297303571773083497126070347513055009868011407982839469820577130996117691188755559561888399498174893260486766970965786139551781495812758473374229832277100183145908314704233372561026558160862417952394019751063126904441581858523645612627994807013170341324864538838749480556514765782192158623638378545043432210977778325589927809477353052031597150446171737255651887409853045118194723190322309835504939880623407201510404252548501595445058843439667376212891410169446986670227295438681197334114521659940609733463663602419313807881692829151018200314417776110187915491968723664466569751422711233913798220228121474756674578732863480085032747104274018439399468480379565332542247978152563371426718208050213103033855012969997175366322031439687584216469343603507783511878507321632160015239756049464944709551596253828651235568897649193257319192375602698643756693352355994073507272853309197944862069047443612065414280128367346924865523466239421650471008809967803455486973674572327739709551435918280352966856917169995536647759828447263406009911341773403983126352030178855336869505713585467511836177461221364755110443238183563983539815425035396010977369153994552142208216344554480669176803385852089396586699813439885383822856793754204492977759913516713579772313210711808876933326499609038917028300867859252381366217965213309589181714244175650579188754760016314304815154789571995629600908697079247156799664247131439570617805319578889853551480716175849490129260530967597681158705338780357637889156767645452078141780205614806197297430856612196410415658637912965526201974944138717655783737304547243328004315211465107188260123613962009868874917025847064533964570159758814876311673139597269660314850189419450238484497285334088415604514636559728189730667526859469375652183250910980183665400096027771402639370185213038124962953117161450643031585918033959180758805554028086652874254494561698994605185153500817196709604803663938225323547182407539479027847701234233736302913691602067001443431863304567803908641997334014367886532277162901207342250645724398057071321521692574625530357114258024213020341270102176120440278954006213238186094825861140447843998087641048614177992239247506202853755191116647734133449756072508722483943444810928225748090421457799022880993263559450789750607634156613801774882236362533156926448631594057726371806540935880081290823454653001618296919427180514953171428466505781343208157166478234574481191844797479308275925723847195297758892165875924375364571933079243741502085473744529128624324303202279992027604147206344651832809449643006530036581388061133041092067564380223601790604370759456302094428921181428284350861497323040967423107437450424763464884178384296833700225445984596462254718408391754319228358245359173328489925521998251693930260413979800857836405627690673532734579523225530928927324071214969910207262639798837807875409163087661068076878979743751198872951103958827652432245229828491778571151989566012792953592102248786270910930419997339651941485191909964023451330914906268856892519400527885385248775416174820428373739015557167946975943421186783290966859812306892506658253907606435234455393958878311444755790423116961139893676578298701657507117221637938058324480708240381704316698271325503330326926308126818232727456685974151001666554927147145429219071094373004631329121846615853673474354617644916599569152468820388206079982287370946417418807342031438339872017164149649309564245219685405273199165739371313053770495821648612169282881243579528783023258251301695569362552157305217818868568417667303884280693435520418041374563866943353217084076452287529717620844398505598457054591263890001198698358738878508769081462659400806908869883422918353746878762454272578220709343719652862562438061991801452658183253321708548849569566669530246640146287696982607973048921200093140645435841310120968861883702197357160912633993005435242079502972681291778973230430433373243074500959121604452513250829531003648783512326414064333667015742275654329008925750966988115942383889908188963225210510002734443835698249677102275883473558143654084900386097582682015001600745150179756855187821891257557179055204746049221255212928003280137124550806418170937141621771460437542564812442329348815537418016115091893756419069347235309791917549525096027466672389795365054438483477997006158313434252815820423267281329017215530844458611973627016148222898068919924559081499605282735164701756874591321018745847367100904544803065281494512027695528326556080647510085033569297405575477036505666151059091748344377699695664830067361413870397786542939171864331810544605499029491505296142322066810024942385896449931745939889857501741976348767519847503470983577789297903628351586020141168405931301828460613842409995510466478488442458743180119186021719382375542865795793975826056787137112626828099988457078395703776264864431951204902345715160666834677255623621629483526282829312356977742220651119227717974379501106861358295223194288302223931808365335053500591736058477873618650042097461503510417218887574549172052232992842724758657028208560572073417027458196534372439467139993967044474029789477113981355488922595825764770190428166111563153271611057790198289258074373859710923850017886010189918311258988871894677721679415965182005288239084028745315413698532422304499757631104486566488213412474186375016008808543669604980488173772635279582448557787186490893546530847288571544984253780203481912134817930885425856687239474051843375927603894321919683180429538715245904374743200235908875921630755512794422625977783719527342851827845455385338534971063427378822538398136069615339287519746616578766213509307627642640264990093883159033094148842054316150388354086027553454729767850477259075311592530599185285411276550435798048387013857966390476863426126039792276335544343281147133142936767899382473751572454366364654095245117176233240305840086254100464660054087265337429180723409119628733253862505327722009959434135621730308499852611583750849196714443629719618871912596165047604721808973515701604059364389002989812926028310041616675233750436512467751181124168741144674366552200591565808096132646588554635680696960008654929387221364608793779795783795252277651133227675453919918733250929862134313442552444275975076468503736004669736476546684142296370708352058646790833804956029232555670431186220456719684686142923756568625396134769200251864846035732479495525312611445225914106202563870312051235801408205688138616649925341108782277615662843508922506237795030885906768220128284087360854545488699872316023894130729595412901468153202445679840098420543049630262418006368543356617390428373999678039579750139495906042902333019950595559568835724003139064477882114377702041212246803615738628085695554542089663884761788736408081995308809273895431502409768770382292185947548180832976545028030916312760505257353533467309028346867849472528338684969200381626925163300654169188699993556539607124843940034567066120834173372124106157087932214905744897694228437224186892884746347901902928436296852070452829673710622701426742292198883891947441888226134123513771695569773553891964881533937718394161371837650175290575494084042963278750823449605443591841388183991380743630645353209689422686833469478303792018728929372166597835347262355248074948706692327554274724987531775074304798068340554398927926281443819535336764497834469598027260818410253668499765407453725040972917801669670954959367793361454787756880321945111338707857409759531326689761944885291575155844887947529229739579673783353048467273731437482071495210099937742099367988257379254207273928017758097435556287630254691551152045661316116556004027071098252409562260434489465510120706604074118413519017977407012172215206537055928985434648738451412755279129564448528996051828579834910663935297290796681370691078333031870517969656681211036305337596291502031945278673147486701494714081056199932471664984236014523036784411315856391138549584552280468145739065622953005423663865282230105265039802444726805515360605548927987170115944959832023553009718227985841493079452151411728521239374467130147449137668909918590140121486065608805443090051040309354905356678885114524905743322939595665077350312775690248219177949264484507777597231009614265866332124957040232863808961943763302214727435664859922303242097840713187797287508930663770727785205434401662627839474176613436207047766747254026528243385720916172085999154656062222973472006291258282113371062334549280818062191041551954374506808000242027346347859247245216394261324389050884482162676141072121232535415793017269481841462850031656425711998314536585748375325583955143576857757523297548425681986468713959818847583965202726757421280298692320309076501408793397236393851453752093007983190940337211274692777220898897562159446960715604234829745391313834581543624648654945484353349713528687170821265253331031979617581351594763468374854024811429070658745248475683968823382170918415247447873476177715608466313228118732402165590832465102760822397954792887876098431379698292394867716616523605608861794617271262477043568460126618784907037784825994519979890519042136896078846496820034951176085622220810242990483058179519377076205576728283739387672226942487569611183280083833656354508948021032789790168010853884843519448095574409930577010339392588927923312762338753550736738830029123733902516239815837551400060603431855677236485977032528324810607900829170821916406472307032631995560732387092187218365596837125529758467868451564794994564780672216347378067459733355974025571986194631502689685981747979719518873767818890846226078707040216231855396600253858779486001074996575975952236341038627340355241190785761576170148358232470702664433834350737424414148036777012811945566631421601015464566129577707733862388701765282061466434607774287413653703240717942264201732449180886375293152330458615990405750969357703815718789012619514355724673436700738785539034828503230831384394548538751368086871017667647500949318453869194116866815030294782126065224788572372611371308656206447237291117381197413324883966647512834747886778881939518808492902502187897129239304220883883359846377670984601308523731012259941505698030170609364499067540875854329836848635902963442788291864510336008076366620505824698029216578831094787921150343427244460665041062969188473891337484520236391521017667396397815076883736845883685059133056930055389964978691304110580566402260526255415339624978435545098378945016260388372310234990878776500384147847959091152170532574905322060609258583984915621156256975341385011217118146766207883264380039465713391965630094912380611902905383670925602898199067217275122238853471367926189145998924978743138653632084000412337898616105596423772510710729805505296642967685511575606010364989620119006756607145942516975522963116271610042889414101084638881253443698917968139389398813304570912937545190454081609627478883111724344314840914655507997483432222728733524260873430516858711391652591329929156951730228140695224414580472637129869737793242516149464388105621866660135524389718106795925183588295190770124702944097492788817616793155450112045760772324404294286963266479009828442149980451092666920944006847385746535508417029560628324864443757745094344370486599251504479672122999740712258740131351421116875449415945365408744379069305141856779718235675397725374650155154419938425102371174771750941800749981861603630829168835289995590107297279565222881293307816372312740097445838546890749587365048908258654432168473222911586673554695663832246451246478047576557146162023092465154590435727739569372399578831288725605182492683185354313883887863561689696220312811805811374050548305953706018735085069795893247053121065012670906937509201385533657096357317818407632719468606207765882237676730149873264889723083616729359132418636930958228431322460341681983144926879521623932825137398899367288059356608106479619726303145900904651177810747177684451106982765019681736153323004120297321225147923562812280260460114579053769231019807974116119399857354334365271817242530414650958184916929117468652596756342027984514507904796476081509889583871993257326806503412868330532141076963353668977493537118304382378496037955580673841428726061802967193090742689106408673825219891218368597460425683164763541405395138308949545013118432800865816453675990274671955303152159538426416799440607232382134036752433973010154684460695066714330352925101731686525103039369738377619213911811962396606366456284977676915778248089308952148826926966511431320457657160923797695907648190473330221662696425019621714768029151393060634399109770641351411118723701801934017945418691160921709079198773086713514638723658989158638233093499141891132199655953250798396469799166581311608726170250846117623796248651258724415364344162223319888179801953398714996044255562984794694404610636280681328579956474944005630743869722645960398517709028161105299320422660591688898935437802060171427827407410270547829208229305344729505458994828795122645042779356949805807312575247641289418402220383538434653157936106785932405441611171918846836581871722799020356210289684385034326590065821373138392348369953233656389100166777010991695832809691282314288096662000382386388173281505515049354631676096700821927164644666179016651918562620705989188220923814556495858632731787586291671436076617809963311081793965945666895801910919033984851941692850032713177032423438849404022581084209904154584326548811946630227689942353053488314509668165379438641258887768818542459426411329538260378379678507966432803428250600774628940734230938522089704989247846226675331881900823178593830610939677134903464620341192476521190306891763549344608445430333867784719348645888828407417508680322807189958710324389505640402210476662682780794669563176777299382479980954515971336963022901301233241382382612611154977529818592439286700198015345218937881624743552846360884894922543234823968575731107343838719051957660424273666299683557213750987303239356812117147623798144112108947685542662670969039402761693834086652815263493871613024128738494341121892205274986379270231498087128820916351179189092151271710718172877510343577351905725013267041616938201302023767426077222659123709407750235976311265780982025277217091270087169994975551514629313447357724220439416508684748943369724395242615713110357782109668935276142083629706370244646552893201833503280432799452329230702274672616531584859167468807737835005729163429409321865148906341609225955299188560734452797734955893075644549800116248123549066207469017825731912934718514083218757371647073731540843003969579023043334140585771650966379608408702854907303535760559094019766846389132326995049976487418383835645359910275446931187729579692285879854789897949755169874397390096962901251703736689544191804002374912032189230893257067892772328795189856496972494651663663261830928993515276022472069963738004230156442084466628379662683754716880661605293213243462922134104868429154108477721223376989518306598119821017520779882579038537709911821381076880950188954416444951573535335403036609893731358362083809107717393461952394425939397834201471117593573894816571418278796948436125733682758381746696720547915048565782780082453241287358487133590226104917034448020560393668302627944961992949020214780628571194381056254633894820050195849079565707400017758567254420236398933659127004252276770383229436879981514325060096178233261807733277895288346188634754863301158891185081414393687552345715446211577758164416498130972236074882172608647052210465330630837659805287376510643001277261477487707785525342383883018074718037245618322064183746481474414553904185010748238745984421066377272055052230127180878489222174748588960544676665178854502441441471451959491986337692902316133741846156608167778347199379156459254739848545262567257706137117141497816688839083230655467502851657055897229304251358343072322939457649070768444767914667014467506474556698252452255525784683983380650144890103362283551177478682944721527801257642042453626047544659765216912877541531890814512648976416699659020043884249201032706962895894913539744758481339630323475279083342819924738850387169742102346051229702279223522129934063880129989593421149185845558326241190903376307437659717068927352198076084257872145620471900090264831643831565046637070717070871978896776904433863555586742812450582268767142344032514739279905480454410226304048552650855143654916526693128530240818777531576679544186627881305212068754614727219637084037963092451126377868692614615031941739236392754861609422735073197075155313076323415491991672984937932730891343334517741729560282483807423900572739649349016335622036185113891780547119570297732879506764543982871664398917602204334673944791854506229556171800007572304654835550330673699702546132217955129229074723655864192303776335823314503216617323385213987083172656883251464375578439401023150067368406511675368742267380600918563646396552758034787583614467888171366356531255214281651989441841572206601767461585422933922774354400944696485124898111616909955422702807648470600355038807709007321544770042734873316127063764936151023717095878694861815958013610254972384612316994577699483889960515450129778471040236330402607008806867770793504449835427025458522812570897408906524239519015116517675702995838071236719427722521056951670683837633442221868898149348265576328246268399261119080241220599146576119331593079438893219512550810201009879257868023363855816563036929721450330284139393845069443287068379599986438619061071988953019496232563930419061099296235188157593643663788349722009905908132333551806177934269602970544466290508373891124219636624688523205793765784244037111223914798850967548849533312093277161471466289474852381811256134062619507510994507865297633485767796174106700346461834215529956729258182376715767713334534359077281698497166947873856933652796253528794752137942533586683351070763883933418163771704684285094417163108474162819743430907598362342574365189261956323464636022060967919618550310519481968322141941488217468698659896029107145489572953556562424276713596278029625349906534568680012102143468475640833544143637132941765099979471709994968372164343638040001027428910490545178539922844332982131341021322265733442088650428359323940596705887557819879875684393384669508994846768193116711739601091938802919232598086366276692145237342209217792205431062453920479735268674056977246590427213922757757483000923336753800462567592048928230406801190105382907314447810565357791302455737575108149914448683087471675912712049467697939692948719195630946925082948306051342529098731337629471802789811352052461268152961029270433103198498563894316306048200106911196308078658970138923062233555933027524544245604990860123994171692729570084326366017882797692097606119325561000359115158704104074616979083135332373667242325937969895977830329864540426578069526166660961899568917894143755835129393706518852876021137080061537676804323564274735338447944653093468593242528865738072816478154260551416348129268010651946776028181616320305197199119586011342953925656028245011085707735203709242243479844236260081970740240543484514895519684589023410978944091957306431248386481701684988675079303434558170866636066219894687347940402930574279633595252763906987371332252588754463537826806563656617207670469955650824691806594431988708082819256990296486971805964352192209171714135134091539506712240354814489142366279711459461535179126574348750249288878940237789239852281378219440902514493470263541098721253240711204376891307109511320422740061123777965467213364675618730134203700258486187107780195107935220482292389107488956875236157714561203348090907104788222830813414263018618306888053190616440857034486323470389696896143235999570370107883765828110851340720433492731436598288151166316166355611862320948210529979142809761387246034038474605599707204354192071173300958186660026047712508208623105259472733633559600688630277751614704632669609689571359195126124924115446480362947903923557275085674434534416875042067154714168138418010423141721031675919407259717550064610737325752530908947434843155837925287933091359077257264465754064849552038100172987970288704672513292594341054687373035023603592289738411660377335882788241076430578925530536450513157637186284359818203007215698221834762362616078901829979323369840106334147553420876441972853420534915140744150560240335457452549608625404695861536437910832106243123095721653174714526108827807763060566934083917632036837622028424041899856607503805723978288765556932730522124298539230958740953907337237786749533788272771842442897069759279210214683486154852977429042167967140007023808427236443057484660680747325444161149522575420316478036493711078531117330711450776192786619001435416128251361046613975824034424143648727793247191721422310573490316517591254832454780349517868917858443214815668708728013260985436102131468337699585247710906273181146201962058353857834133787466578273935836063938630878079380042109778129712243723777520647458755566648070547761284263381059287397907350207295704562575199264952985242264552131734774172983241500004017301670646724846539784270024702643308064283237956274977480932476533584797898109278554092790271851903072086542736642023853208681473719832212497424487585145308843805599011527315307035130398840254667454764651607487823755018654300726266266244694524762544146059948654610620956555296423369752191604336163331106417953209483363042086659764811701288439182013992932600827054241142350569005140454113548493846215443303797976990043597001561099511685268357589827309587425312291634587408212728082123324198211051316166942067020607588082494814871285581323526753218553077884832041321774480213121783614683756206976987485977898751422140250155285582619536294212818590036296783837690961618508814951154060413634177848830352498930004814298608482481551948964389876108918757010312212400405900272300107140472025316577744597618526344343105807825386806597686141442879648545251139857581291178251487965345620596326734293899494068409870942874840187709005232562743930503960409805798385252967608653133674191386206191692231293176435385767412087486877713063139107818528319352433859272202204450158537918947797433991188524678347299395296449394539276062939610197250806534732047615604855543911037256642108064183696137154453997104365610311353261791641672101066291817907118644087950383043635846641964754627968991292768996296318001463420397792459435663291522235570449854338026871029274315817912019367358607159450063834343007351862106100601957579810634905272785582649874065507766578965401007131720503997990968971026094175141525847189012066379810146831422202947049974430159230785840725788412322748614741574289814196261307320136396257358423263004112569153175342697771799552448890797735550568993923226244677474415529401476548745118607373317559704993662096727321542289668583527704666493481988834153933574568683258338709764612271686442660838589824153293460328119577904038672761156423583176981897704637514399951176382792136112451468546695834333218637555533624037873362769944686054188260418146381255880784192406640003492216037295602231062620697475675499192051202087383323839942494758789469340578392520497810571147686350334214103785159195893281552088304578062651531085747427009340405904751308671675982355994869363333934829562127760822937774552924319047265056218070019387321657381090069367898230111115933627170427144736725031654799362286398249231535674355308643902308597408218494760055456863691268480833622284238959433800596739846171620669641234468149683489189926002703132403195406073220963253150947488543067400051240949544800598864853627324546943358036925819000460693263958710875256010887858636471298925078721668087371380568464323178484654517820403779490400689570964885949925034973428628162580167620944388998005617628116718733467793539504355325959429712015300664747152771705050974611219464480800878914083879313343917174421490110313734122112821119984377736283442682566167264639919877358503437994238752306816304543727915376597467615312729957605507185099549323273906852137722501117184181557086180063444780277310967569201131210301150077162813308166275203377740886490430628341873192223754175429870746317445489163958048850904760969727255335141274231672950727790223787697041155723361240585167276045266966459971413791208923253402178027952967122524430301530745954183886698225229509740831078477365052311091544256421266099245503769353777083580587056080540378239469513837289893920826680654408994735112946580067994708256001423472344754821755231932301503745341772015928997385984151287301230574248552395531644776733568253806461854667407510042357245140491423402724230429065562960495050650963118063686333073756044654264832998284870079406529399427739652577515537917329651055465238704112936373997290446334919228467374111727466497449640910691253667677848200589941971658518277731515243214597621179739004341779018669281879563490999873346761318616443699227621601699155046131647161958860495535251773136689707016802794682502183896818311897474232993618107126049310024647418503673611193982457685148867202915149980180389096960298013193081458632652461912092465830164966359093133438629852082173957087590683932270777771929025065298236331889044731305646904894521420771763884383342746329645874260991708216553912590669323231751334293385571056650995145023610321886183503915608908947236889057821446123562132037768060859171542578712501242555948897478636456037118756943044511291310581698095864752747013903450997534923385326346265610318506192532468349985863150490556190970521680278207108005368054253063471043003146853126577288075358294034046755633992600797738636237779622259129039750460989741251895215438520435950360666563107394617606014315534745340667690797020066852050217482694225682532605659584328640959209921717010141791638821296470403682720265347220988070422221066741238942082934673220412326591097207173238779580248191847901734006293913533829210421799656836133230092234506731613640290916651079218033842207887848667858983648655620653439051333256712345751100484249112013353290736661907890848267122302253686302856010123359574611171304605382025676493963226987487402023224397483128795711225966761773666793258020338265936152956362319843031043890133665651420487566306492882807689553857834275116177437984488407328307178050789003241726331117516979577980984035800821346710450101397621722124615870277873991287186682348786019541666205891299398469327461732212902322067821951817562022072871562196452659114236320094313698560508241812635836466950511663977124460269099208792258674565270324803880250721160179219421859269102491759020648074341671825063730404580477277854660513933664265203976720078687197079002053674913675100278075377406587979485582473260148842488181679686827432810239888039696162728037567899581818398247475715320272747972551211997058430372375470875567810811485065684837315553527472665874026272490335600491262021568963579724333360878949710902601556773379114727439836101303753493529535834717406193200039404175810247868860412698117164752598246354845515646031779701076640591302873302475243698220163038837077111787864288502569867280454193588766620578061325002383782129421339340058035835860412914812216985790524618729692662309166316082866570337009725824810471113213017607140797977408568622986178077843786616170669709217420278131431163437485824806592041297358969175962808767971917529886348264728460742063855007561959912079164335345992163354676551031187887220153466493347160651545640850077406905969410648088647957970409468772025326152323253801922101731071340024694459595824327175720476551101119041470177777076176223869591563806607690985314787036636070876701977073466801289809879142077623144373220250089597897996444244105104445825227585841459476905835082428415638330225806341593270631459088981475418574028476756346569600807085868313485604679864272378352654525272758845691610394195053546812110620890870328073352745119587571767822014955329427533268212571277894117239060667297860842469019035717621754457528435881126391681152253108195070025167318986570080275249595537039894298063006276606304567225100317866812833170534177317236796484550947381269035922674342212584288463777923070353041449817961664302014270978860754716537920246930820949248830615396142089692147622069527276785979034671317596050849544686543755972790695570784171880395978031685748794167701029645500251499632239981841354018295991475221712923661055389722286661844827020999415719188995946461670119200506228751945532450197624899856912641414275321400725585118825666111830302973219375285415780584286075961030147532977893342368389261584818361282530375873759711669294907684545431271311048056587405797938141139112528934926960935141937261509111202301871296887347668186095172711073644349633349840792291049950130302376844408677397644665709238185070004509195530100028879866071447011024243162676482682993817367537781830461609209967408716681446807717643790913851113099218089074109498157834372735755581521528695099866202395279712340262219546359432613141886276531447345085916264105971376546015233989525498403151597573598200391465766959342220551717092111237955774719494653520067817485814260565789359526741002740360519277548809718882272488487412482821083845659586376416231098943523772842731271868014504226189656632280061734696722432715518378621343370452988743509020532334975731644412036364940548515394649689558661528773991958326627803979580301579789736071637892174071980112878694724372681303255282898029011009940774065449177541898505082671365812839097312827798512941042871849256172628870281074574140983292222067561050778168580317663289158535563330443039837755286139394787981567624258780776656059325217539502361096793321866883970718772662995436076244263648022049778595648009764112131579841644805117292531687138167322241915104047240064961879432214156197115972171574122135651549570664693036738427823822583055345078535922392394203819126516704011499009707734842133359115539216883613767984080710767439406484721004542878356882651814898508406974376570879670544121192430091916012371390246022672211641236436438675660126828960243142312679331841263483748511565981462541161272185814113969473622749362032651883132734262379476300799851853862074648999488473764264917899045824503963576646619315132624114058934106076889997683347808533396551010939871116985213790501679025381185868697391511460666212463507920066819139522841681364371660758349092159728708539271648648871669219118349430158660647698495137079949758891164576647091049452382853118116770667140547924411732447356326951153306072335984030528515931459814955272109309553226125897654924306901515603436434035282143272805337057445803717489798457838844607274534842609535472084125189812452912667162894198545525716662590974840324525584021741847962693749049766946434651363564417897246480658400747046082682183697721174259141709962876712908815135716194528678590304406396659510297046458796524539240737072770232442484778872681579617404346173455827864123841902585448799418143371115650763702557429547905395499511736512358679679919178321571771721867834810776878926711730421450337113343594617435348395908399721224032731158476623290314451871691247907633237877073406016487518658842661192228392528984294460923531008323759286806403883442994529158111781478725974587582388439081747470900868044112180001167963887299518036812533735373922672848642301007227025511212303645321170072863093892374707389315208147473946936384242185990898414716684471831792650683099458030676051868186905063466150477774401162672880301053437361474532887799996131580521694106717558612607979197319152949447952635148591520664485876104486280449115941945518607316905650720740048544923889350951512206431499302435556826153007248563133513812579983477995458914166854198503335573630243562243868336290451282095089247516238095046351456646910656259741164043426742405759710750071926965901890429280172080625408411510351808964321459694422504923210491288315040732144036960921139247378008654700978817096475333580921312088813667811019253524590995486388969720597783822358668010259507438482776494230648941464990950743078598333994738025144537282303930914962759527693359563444913766069877281586637038322558193194944296918883335025473325182207638687396571824263012271936338827142103681067866588148649776943454758001209825133369354500625105186930469225777486133895240713042189974138470340305221863659714999813647623507209542676540719027109615729621859602662953335383532751119286102302533911352543116913035257756759683740462921114016952436210117206304936107286242208406879029585883719017826356495724936881293713075315088967191076615237459727367665993453239228078592434024754425665165783604575771858323261523225290698157120148263171408700747342317966777084350792911079586067449898143366930026462361487545881917275110412827551906900635302316105332184187930066671332853135318910672668103538483095793068058904002495626199456805444413005360215029373435064631470974275032812634834454485719274554555930090098272931449859081189416802078570356023305377247788474912241429179964769598407885495150866507298200866117259499193454686423986802110632673592544409706064458514155220842978398999385325320364751068197203583117633777865995617577445920870476590726629314652543114162635127437394254025451676191715850728449922556557878304873399422622399756854868267576720816512197809526384624906709775606636896212943957123413577335749770136806140193314275590820122060671753334185802465280178734865323994427412559735678385450007827338872021699101744678377876775093362963944924852682497420092780390443177182613317911943963296777062057370512464552661483813586083873960063512525043466630039506127883956322618290906518541493561294774395837926526764573881894171791214734682644940255316155998063761571524866551873986166951311618927010257223537246081761809558424886107538299753250337580034565967076204530282059021062455540668447486413627115447221920344842629489604704540782357579518666973394336879411200789117287942120179708441934191659581449522445102710732858050139874327116420506539091645572676004882146114541959712590096131391083479345114354164147607395029807167407034176728389154401255094966370867083686362142221386091122970482096662464746272064391860720722683709814775786842763253623154904391430783122316579624126280952192315473758584645742463137543130108607984416734158963484502119005650017987894568116068996809051528097533418776585779455748813807047623880390476390599610095539536518306376343050138030775133738781786692163947055025414129713315369202558928739713977021231425897249930167574123013515908637126450891777786100871986466692685429368371719027445458517863777698794411904132846174142700804198562561823494321715408565679525613332986402620306091788757220040608380806917246052531619944693658987396245687157268138465611173665271669059037303030523159144428215743938196536753180973970005407810308247974166896972299161511795285864448463595651219503883508712983692646744267635756991701079340867230772741317455053073083147505733551913092702108447434335070126258163959350369964461400402214630575992996906616640398181194309390527915974948008261600339004403564244962069302897944728552710470928743433710130655223224324238797424338236338694720987592240984654993628664418033240791325204030964461531772148372161996374752805393675057900335900156304298659817320069102310621939071903772110521322045765056992233917908929241608961538146994088297477720532310426302301196281129244285111334357004387146007615206405287243128392609553752901445403983408373284222675412190922097043426173159489533426415309854950618796819062043852407475612995875061561777093970225580501989247559016063747134579048802304765746684184716192783665650976510711512309918073513045671497247673948608725382909470766163754526440690272021661010718527124314542257729450149341191248816945099402686106245016968085658266244579759996067818454499758734258073956866007005511352953299798068583845674500526846902318818512719737025360342110229179757144942409393701453947122534704053851410777045750376146719934993476367339286995000604105206230054953631131100216416497378849832979321325646274883988704672812941157464003284944820152157471905003803726442735285980067310569770092480155459063220779125266876759247756081913669295534761264373394634184376541370033207594550980451321904090192024147130172182279506795574132463416306246025152760232670662975377052387593740388470881897987588301933688302911913084615406917318124196871958693485883408407379059106961501591149279545729833871037622502027166353390400908345026510355145793743236679288719596506114502899212327514400529113957806021841060065498019625743943740826762532874386626544046910398966816478752789934707982612644607777801178975964003350360876553109963526430892993800849481962358715127853604666081478545455443610600464305474475775549977437027881364494569382929998423498557114531715268131395130318941154662342008417507445694380815336661223090972751613176255007475097034403611474479268320515238504091029945306066982933179065774390031314748673033217785728632178044789614728253890759514954287864967067864356720199178124317992340741312185928859270726346678666598584983214270499462438751636141334165870320408234622806219123193779365618300170171955742814452607151295594781061626920769169111052071637817243181625134959785621549755265661798410918869623468307706647863343596905730687312580612820471966437011477196045346950740548359121689051719821800150839236111313026050417122890729482675030816736758544617185917095427830735560675938266184769234659205760134956343260353925035690253047515478228346223611677062397437660577440328191508849647602349322219451752956541381052298852998581035941677417042668649088575976528786956392040870112320004211089152710079773486302801184082127748935220624182201190537010007433726556380478993152747765189470970590514764387307207881594655849904326581259482918042829310375041265268202476779100790496403965490701000084730952230843944588724975379461782975589745659162202448140869046799000477731659466710776563175207558442882341730873660035071607701577495788822765255182780736496609715470476592316971504705711552020352836778994730395706278885301512870805128172898324201538802850130630897618905955632134009914659846407187240995975186266568177994061102327968292435789500200837457490118218345325691254405995392131821492380985348446270877741990920528123007738413618651276420363107923399544305410967612931717873267863009013462720344280729477506528614926572685052545306404499850421904846904639734179722021427570849300809408010937273291393663600110615886429654235863386843907755236382597461684231026828681552454591542743655652906005698585152137890031897068182458335583790008135178742519535580460900702588023055505456532218206882717050942828548901761735046605316726558744199690482530175368282224970481464102913775720769708144610730312467771778228936871481046974746724228285808206340415682901515505937781171864024380070261312223374761082592138556442063227048772967717692973248316890700424948696080497463162098740889309994880537398723863242433998062232486706366894104293532966245164588367834540214603815821522603343544463216365669095766813698803965408939283346312008687062673399001713096387632693546107659543794477281565305095355506284013061718778727585344616640130831463751130722813726476393519270936774640177620051181548216932636010052523870670901397142585735557207506413694411547286574263541264044406019850994516279111249433600675554032401960889884276063806258885969016592371624217785855068910992491932266989245961501375452242119271830197505091214549262218469299108631845794326535554179404434096349005025172057951009530853766819392005423037023544513068528763003257820297279873333397121142010242354578179990377674581275002903187687458817047217305534549281288909213674157258535181124915338539115408884235802975111487781363989244796293464833014086719886566081415666952001325045108945179017096757524692760699571328353147685493534667755918700282846421832429656073303831719316564233142498451439378855728389756294048302361852368005203612801522312503454912159501101734019833863287528971691268440895587048804756336639557310650254420857492610869246493019252788995307994137923790377265853661274848781706621206241465453005485925633293899124703894089987243766926527049773814734231398134815454814820770448446516759483874081420910022364136878798138349481338244240473409154062641169718078629721996646299543756875087720454504127538635918957191879684022925190164961378988831448148049074070932731449881791381747981901221637437198536883933416010163803081878189009976740704234656530712002171806331394370770248450502664212715124791564677400346116473950969766144248100875894976891793232078292260296564956388754129174047410149619246006003650362091780546244108780852880250952920298123135364056006859014997314727664710625422830137623326814468223286239514212110061882556514829142029196854054264816968627811635657101493422240901554971531770820450891112683642583181759630347790879627192884340772736370722945466613329675025670033870570095945546968305910996719765055250161256501833457915981004169569383060105889110646782302723595672142541512658499111137444691251775635795355710973337233364380263296502250210611359065315967722008684944567659135238085359356076978914868053544251455962701166759566849809119818698711553332481469277134540213797695954744873329353905777443460667959580356728814670475678667622011390873911341507212538900660638485911343108176459810480342129348432305937476112003962871593671864608025137676763856495505587106169979707377330342316864384477836613043409882284327227422562932121871262998021690896168035489912829358596951928462104498421429615276365642132756954285170343139287682846033846556167411058563030695452517656177668427693417306173270950829441087624606161358989226834965661367027030320291584606347760797394575634099411917368666453610953071618180311452911821783410464212522275715693145936103835757266994778605029595793957227673518281942891557283694799714207667441140429490975135195466209833249744756743357757321266114264941625721039967878330059825133309018454048751929405373508302916119078049979191594588392637214937194411824933313234587585500849371562845646810132379558120985892846490509421325992793144716270813321320170429627021103391158508017901299168300708891395300734451871577120356714965884148629702098303113332544919065810088544140986228980234625884553848969271443152521845364330200453843730747644593908451769836796032779072519275403643209091897836019634848097588730668368554732664948682826498748326950353025707209209871037805768001654603036937790862479847459666731089000617102884870669614789517295274941537074673779595497742045542409824774313472678761444654418382043880686228291814952270177066767449267184910432311736825363968086186469310662264709112674187664795227744127365527818652822480020628052791661438758099539797909659608332828347701967013497471522081257496993492744158787679252988360303318486041225408048271125820369970227331860350271791938741053966251917795148803346704183348290075068138261780863884071757246389165432792013180862390224964931179087904224909633243418421982981210609468429506330908667697530502057066134703083744077260640313150003742827477856429736875106969812519632335293018292241223906894681863602716578866832537243726593175389007767057610153885649506305965896447699553084357087965084942961540165017069545009907759149473517042232389613609035601835317755181828684009749013559433096171662120437763140979882646446072109421214869850815510272055544291902780890823253155595494693551293334320927577258397221685259512410737764977303888254543862923599292129701418658066907460996548360476435908486262038637758638851609675295404319207574480444275451756579387465553843865777187980026819250014774579689584966349847517180940702462210863794134484012562582538631041482202484141615587799459431942842048039268148296744049608102720627788821822593853348753324835267613750015476608485078961998150272046716085321871048402983000542661286237611319022196335013844263768989784090766897619049450654429309276880321751946107478472141930217882484610266902007950544418241343731945924515218502953491531128962018870640669392782432215068500041619208478571080239319179803162791612822942121296932602703337457402356328156131974479114696936411379022420753405984199027825260649839258645324185319735774835828801878124838588028455481103027222234066365451847673794189242374371872845938214642876289462397644024518119378833980995181066515155934331883685334860490908976803057811597025721868186672046140272304713115941583884510537111759939809812703776325569029420250665183431620304670910406623810306920083437432909439294644961853535486771064662895065900461026495958731590420189012248482386007056367619630248383634629413992125014701952124765994361360698366063555262642227146547216931675464486008674729693532925447430715070836590929565734079748481145665821700877887845039517566142590333484338207806578827801409056453963529744048397941415573212594960643722320284876283950336875858705185430134666465005232496792126463023029952006844617798877886542825635637327540343256841215007361268050049924833292238358560360339988047194407431417855402653934763478536230308880161996323856801112873441203683609172396143876739873924262226152607162736577104488630210697476656885092044964739818591283188386740177128320353859580158404815936685041650926101257440512211480315752363938223936362312152385417958179453963142994842944000048370526888560012841337995141172202145400433801613764810398737495244176731309009696750201928984766119144111069027248388847229862539084780419265191782745763898136140142826861223729027863463119808787870511940897592991763020101183111025820519678780055740808403599372874973972629489380875420984828246772823919893648709179945975682396531124898751779521542414165530825966148242074214059336596178514091138568632475713874022897325068566617462940643718010559310680657541166161259866288506150812368179250841231176444086422667024926829495752278801241514897932888493636459018679010284181252624292488135589273907039022667819499181052048088966567824924698224296295128845199031137694307157768148770993662075766849764631440849373787093774963290614823384667445964005667670685897347225290649914372956973191608231183594414417013749555152707642319360586029832938704854125540792149973398163487566713153739104947012786079081087286293669970555663037322220105131055132479461618071577791751200261041302094316449732918167057697290443673712774996007366382732435297707874655980419529638959909032697891822539117719742916226633172665379224373849681647909238724237220613364118357368936241318111875374789334430704419167212518806336129461226097413054567548991037282269671356290647299282004528022572686794203085638645097916519024142962563632357593246989825614673920982430623372152696625259436803965676191067708562084503756351734582050091985369277478171727627947545700432772246170690511105488123840008077054852035141002370900852254582368365302759795599574627683799064177973710427183146496844354523054556755979530327557500616727970573448891189188912584826590004988259611213869572158585001176042481498442435589816231319947700464378663237177695831536491874197969372575400927983034093854180104887507670714216570997390651097532097320779782656258776645459364551024260283225452538615981302380987175359917183766362065106922045055154274280532549903854958695284249297209404817818827318117041819112526970028543628636292790360107053993151268007263303550335963385421487478198100809747824232054217212977208294922284274949279837587820044064084090068743346640723554841881296916176440414505656107364063677817661337176493674233638377431104245368801086809112960360878817972695756643456153605901383600858518477331167049669562178461184122853366180390270431995896838666578233473694325060831697912818734696150442504034567980943153804800711033938780748105274549724781146686238353374709189921100642883543303974621673539579923146161717511241232613229237416141238919149287334202865480224251716721122925417943353872074294653210643224394081581452123478841630527682480258985766576230765382125579416140944772888611367702658025708164810214363927882745117705893544504147144549693327659186542753997870065479454493614376790984387464173316136338374711719097931422249044804712489449522238504919726119761937935545696345880645940669407489098325454138171523473988804428376423876994377421242935970883840470879738262099720379613926299804863250934743071410162826746082402405873163164136938710145318033970182421191980993171681474378832227092370410309507088454396226322405970878033269092847000411502573813528985767870805577160184477871186865227810838209728635103519588293858262967182088927919014940016497419427578535170177765066293602621892363069314418823691183630504640585981455931200509184643944094773755034004440683083260425885288736617248351667395701772712001882962629672010996294882960556363511108921591755668318516040979745245805499356963695034349873207920797850771614023828729724481629447821103542785500652073239069755154326460403783306126521719542161948727533000884274524027386588981157300938528666677976195136692764483322230595544388854579672715735842268920227065217485564622092874311736698182119732989292704497145220935912296374429818418683998623991110411628162221543846578591436008383675491188814657975241852466896523879836764821638989831334436331918802712468696139597598143424072274122005961773842034121458222148229987314375097162031610185511411998798086750006470339265414952273784614625578499314347704505777557092572748091299230359778546841577473672079818512230156768561479946880892049693400023961069084914601750178459731467479330142927427468137010495856768533259177574404707331674745672920980195240158524859362395799123766326892280155411626739751842949867190370284612245935648105105522287288340008733772408127171668772244922745268213219346115124721678404847346658014630785153106967600164479842534090481807408350659274178733430779548569412173464224428235701597572943626260849232444648225490043812859889618243364539187929876798805776528060163317170270427226145017405356318117167231170198282201756893345972384521752598780593288317219725294196159780014533670658627337213694348314519471060144071766263409263038686189350383799371760842253237867768232979299980773323219490262386812249866693156189266263035627776043210477116175099100542206387105435423545399115087103575680791235712654729677149986358937054596291009350087677387125419793360717786566491467437377278950252643724138916263312901849972556050033727354400146398915646458697517203966874937628942699587861789819697348017822176002573513552356013328737974234074684106150529721421663735340168342783996191463500469952115047974128843835684982286218532600916406009485336626022396388306733152513342071603551483451758009150610695691041926328566197263069897089663795226036181422428267207602986045959998227347545169269255483568628005624207443368656771114258067178719261455551121921518909923784874412832283067631198993172263391633033993151364780787316619645110428491882427696171726083863099537423513773858168209350756220671016507468994334938635897370921214714767472987862746531590653340272476050450865361987235492602358294980094408733676214688245802203179245664456543096390661179960570704675362489616833759531368998187341060984907938897232169052875863057883973837816985114743051932832654790462104901194379765569591404248830716034286832356112126168408397455073156523974785875741567609552054491292672624237231093066535625582524803571228491314282896944240054055208090548756803856914583024719945602374688648227671837524404754319093861728387918057709013852626324511513011453478637900372568547820584205598685006598367639018143204877120606743477162793086049589120814744858054189644202452653628794836518333442734464097938897427707067176153311318957230392384575260635519424483603489236561020561092524250241516000768579551416482492978558550037352702999656233380674490432813700299042412059881861110926366884969295566603308337565970530981666902764936319662408789702940969600568074326492034265655352525942384958372780240917493118485553620222066363793297094392425521402042693567055914763424270163572104685659707319617656085299950106504217798376894061166665864614813326845852746507469210247501561654056426915066614807888132642279716670741249551034436747045572287676088206745801771309382533318381415279791407868487991516154367003127601666437611948545237704398516774371102289931756275839753519558038886165988243672533473248352811732741021002268388925558354652326318385928570726465988659611123684054085342778756536879165814638368498160940643876354209629768004796729437331110577746755970653019036576204516447488017151691239536713262623863270201326548560720657135254993437610346355486293857665601424934202940234672665824561365199697943739103656800393713834751838512998840741678817271995612278225800001675475763459029912582432021153993268430440297091628655667474406001671789754548511147948760914669872845563170666993462455436403559215770365635209909850220092928061086044969297439748679393625610182501976057123245031064265458372493879499945511813627750612404837774419696734284657271956900160540502900851196232626561399753096640602265761819773985174875447850857869168886904817825808493778631183077340074713998572665206758563509544901881999925847357603379406374109708056680266710006629957097907450864207037390501637024656261934832580229898595448327018216010098510065540124948337480419312483342017168979964838590847701533611800931050111424228710262067525773633132638072699818597232930826301764217032482451079875068204792030739871827159419570730904701336122583978542901558916645348848292708519370531295999637609386732374488247148185707719018515330338102140525663495334771548353980543209678054461037104879350589929585919311952704987404193525462394993354013866635097700356824355048843060158529528477472520885979970305503771139231887477593746397433084411180626078056507414634914532401603579373141454518967199063583630265505831874333148244206441318428749578431580987074816115621543230145327348990611963493123490810125994961865251476626879815501824443184504775478532861949107407679972447024201796594098009089681604367381162908442435769636528649128251757317209210619152451816387624423762501296682848119084489526606602049192872006743989963775071331831297676204730001066676106984514331976066263752696401494432439219398492757332783690713549491243859704612112940498430937840523564021772449248099954293230513630689947068256209455116529440760484875865180526167385118445742131589831430262724845995547574461804474864031517394906142111052901459812333087690575954621950430329753531317838660129793046630353894701345428360313304261824914589219886931386971232709649614343700321146300957156145804054494122373401050551329166623255041014786673800852850100446508131564680479655032109961379045295618174271243997342584246588642982777780760706321918608870740336107761303136073929695579124885781080627868011668558892230266412524013248576568788736953900203676916870397649824400367620281129727930845965648026014751686185220333310454854506803040262030979300963189998545392494588645551887691279436855705340516909460571585594889624313515603481906297872648338521147962256524863428838905527594232065028464975309579821958962733864153269186443178817162332098850120122013712191568709515797554485714289347922337097348752200969897126108397603900033343374846678627731586229202561035516592294749630305808316734022723314490325568972465306129964427062425216497902817212290505051224667571893626432673784993080604695714214970292273399664462259961704000055644620392380589624457355964165807353670200213662304542173992560093814783908692965248175873551839544157342400657521044769910610202229500499339109102614416642151698316004627925909228292653817265429195110382384834464483045128143399772232669467477084807837158903785238281209929043477996470105933950911690149693913588759863260033046201429237160881869318802437267894907414827133868155169457455455052951675283993774996141412336011256550191485591991078028633577995653510123960276556758494907736441236737096144779297405728834618081043718477924760493265309506923123288179457794634510798590443807138417942512195737148389021176048106394003534637095722888092548530497375886943839182607569619135443752934496446852285722168459503153506858953152288054480258343477490278389489386178228380775980427714268486506605748476056162218921461152458600474759249163689447848374717788315455736002411666443075545997750001178032055870458147701552368897762646459471425945086564693906456971854448664571986175881852161816482373827835519678175105994900980346379435142279463367929236788249471861581912385836330803723882164371107941682883224842381522494060163409936230947742875265475224416734057347405938235155410492547656514399355483052773917480975197373363038638385094675366237711151650651286290147127230238371724080793479265157111136222224294156202209445000686183392077127942143117030645479350399001572748061390161873265916046799647367515759318712844574956704408244207836165778700130775846067983029778494647724047620178140734206311214301622067342597291846631366097802206611327239575633386435752032633813873104700935316583721511860866343132487127581607903147652733198646924430058850151880908427387568357114432691825899796541030552002000606264722769538926048157636230770767841145845847912961134321098738825514424824092722279767030079229220619775279713905718480212457606782513254963645452147740692943221308358489251064906809491500791993249912326356709730523224319594946502914943305541962208566510831602045463282648750897755624969693386456098070522533954570011677313214903946551163117458495064848413971641111288300737303893033427528874874082900498297574887541156171890649278760503595108621399676798035603873215656732348316105897516273600708841208040393311387437714951823775573986826338250108773693871678985827138809336925876914665628193255992438841378835600337446381544348679571522614623911691962980788761609485609999399636965621193975971701471443159776032609114917311512251883441783506358716083833135700498542863781981417511093707131895320992768077488821540453522122463582415292370156220251050908399417082535950065531369703685352806882732120115921910508129923766313690597271878401582805678696565636599073242276484618134077832649564170515490073520972721959940293542120353764186384103073827815697580829112614551716400298577551325036052614839168753777305000216090647799304060492568788554125204113876370370528513509067722641221760681870489573495429497093361066055047641808940259263937276635953527982181563632394343654744468988620837105287671304587392225476179006798670409117528840735989004680043224370397722207486699369550219957743716850286312727366645418612941203946542484883471976321577754597104770959693135982610790770443517410223487543536284987402930726041516934673066491115902350380407078451151474281225738182250833965829187774964620034949424213612311864557451034743722499096734026560739441467817267539295859644760062664131042455793568969790743139142382159028585690868409926760895569939694126167634850767344487832193553670842851945471969812351834722489225518854379390700562874075592683672068319642246406146466972220688844808949997926174246611487327471381636022437476659821284477391375619537073352977841082575794191431424892240229450712076192861130329280748963879406714454462819836666557177467718361685347323387659829020095609863965119930648520711761205187627723062131069757564581798613564028618553420633544095161599917646163591494490505515168784481750888502973445845949718073100245450574809041149800041946728558250373766106280571913713733660784553433202233119173778091268513723919274021102781952873805519918174842313044413382038109738413991256474245607950809213648527634010747727158099341050665496877940989007580332283799609880350013161340340042946241406131605012612670994682176085881102696805528483698727075754150097272604386306232459864675826168224295919816016915462719397179202635776865744963670426678662003638363120245714891281505894339456067260217956175282362934763664776408779896587298742713393261908202771915367372823721127396661515876877145022730007812544511814517191792397802851096691142722881989112655193615405577638606944544600310751998942327222332757483455570501766207664597049138922913669351819305765087026876655927769908253464717178499030834767387198262756856271524194445250264805087286044232438630499262852716494585738356365633525738530899494133530758597706963822982867289962350548724349046465155803042983937621098154522317798974721014140935705458807438123017402036009831189858554742796449894416342324457765610492467890764148455727405029987142125876189065979214994058640932368247343007376772658888663576267380436516165487301459895306501838626720190110609100792533015367815362462443632357010309336389926791243634662514526489559288793918389779861242738553150660570556208605821802620241406984575825846813782848474163579559435060344137066456161779281334714426674666854469498641992645395962756480754432394573533428042500133502372938558831574493521986067181176815309530669727225294825232401280295108654221016918154940056430854840845944317880001931551072695834362584675414623356277620241342890217157549847097134175972020700395303479299540639444411227626023399912771630675716273262046486899746132700862621617750386474591980327958370211994024871586570096136471405312614760619690478171565976022459861784426765552942881476883458998100455185271912209506562340077754308271607148117522766632943547847822042554699505250863202196654422542675291753804552004813549441997002022975328589804981618804203065836972815188746221771846750621290661135830194848052744376337840564236245015851938630093487547791244581468095856264525139287549009854992009764167424978449062728922587490630453566606298078466055616545988340066582773660217024595739840626920137814029304025719945698919856824892691812910073387446043679796120011520753235308372035926112023289679297865807572880997202533323842252559152620461745419165469837085891771161327426911784854043997547443008421865916814133832251360507230132190461128932676132616859786929750400493941604013109022448290871746119246910333953325572669132699208630933026952267617020465124415514305886799924024882014301741973196757330302699606178808582022085378778791070898049039863334466339241975728639907520049082156996338966673576465629971760174098744706945766628686744466784328392189490496419983163805180999196699766618485414715295962255186825789857811316561714149470045119525739738535962702953789685503580815707347881420688910759519442148272346069792243760835814970248906704241312868687655343240086243723219891118156322291441138629092979366505900147511992270142940156307295134545854549059511309562719718220083328717774649684310938273848269248103164042381293300076537829676930191580384067778138870004567405651482300726593157099312076886774826580469547721959884889723950259657871965748100208464918807109442343373819556110288998334083346698684703381312479426504424356923936273827936035746063575170021079326138690672996643831609847141413280934858792063579295265401848864829571006580396116335862774423169749894744318685202206900090862772343957441845558100076901366091373029847001727380759753621498729425060592289843161133813002799001811098023989244669263186257005812680769481184634340796917298330539451311513220908648611347229184832605690392371812431819558403708875913291643276047110699307243496895050316699585707362232833523192964871465266008747777078718874786325501927506892909640434263665057754772775798005780168209760693267080381496582318190544105912574731111888039670562138265523471448148047571417651966620564718256087941015289837566858222034679596481265403353590106373159099091423471046727748475195574772788333503421918909379204763763093313726807411685485496815864255580250872139469024583015168727922885254323684891789742694471163944476540559700724222441790653566958308588114205102131099690883513098603114767285478297819146657413488458950109839111031829409693469324934968177096359018246415861090446522290124694076830721509603942076353669360098439570334642397712433955152986076728083128386739782646758472478047214556964280531687427280686190172740724197170945486728919358589303128693509462318221072715925805236699711151403819774594683750086108499196145954669090095695261493976515133745126212737487117663553818030349888401240475445220535995524379574465504667797881838538710570312223883428871477256038037059974836779626040477684476502976343206561885931772134909504599527252027275746317543317469895790207811224416418598173022707435936734087012836287751530500861441524632768971842102460149281208579570720683861145471835496063092819734074657499226201174099356900458155239834873286027743256489845448103221645511113853867037509652029231833697679287801707199769022025011861847040104631280356439963235185711268326298782696177127387917311139731201176430118682946472498781579252570876653017025762514813817762514389362934735612710472130106961496186441973535137805371033419401846622921614108736676594955138920576904169713858598100164452323173525929646405465864957623624128495853930608728791243863217830446825512462984265392054354781146568196919307000702990736918107604985618359390309791838229008119779781619250907324821367370894578695664976338995586036961062894769498322442152778148256706507124738093476832843190212919490471335390982001695808554977843184114047225099281958458294953554442697449235725870205370795263064314196782202081981260446007815389583031687362913645504774290208054052501764419231454779296570371248378732854258693797555741212546565781360322304708027110922031672897085814566288976023210013599098568760233167165885641974281898591654348915391116346414497941762125494906069287944519163163484890445676375374339700570259916136878464655693244960231034100321837804215208557770254219287970120067258033507611473886140625263915724783760217873589389468411555947830784501409875631303242575365997403313127579490975209404670372978751096045570887311769213195346441611962949797200214982986219423554990592170316840908367443447566118446381038347510414230159205702329854163117579048015273184350125775249409561914022530107388544248301275742827914812923495258357117935263553630990435349301481563917533086479757214780981332935013599767535082528370710623913152413767390725083905039712180906489763208313488734729361744111532001616494567939043002238589993416795657764630263441148998912461487100325376549177219027635177469289854468790953739991427496737102044750798606517526064167138988942820230762359753344408613760748914862270722486731568896786217953820364137678807627805277681805239221652687693973525716005396691810221371775904555327712461334554231770160099072237403932736711222493501594295183114901628917481982988890997330800917820538861287064550753641734117288348352214657890268894662776144543416264816935567366158775827784398944663467120866685307987417828679357355170674624085706535349243327584547689410479051745079996559053879785078234574907541007509506861841721378967964017591798096259391714238999351560592286922033264865899265221477571002700087968513930411484227469780368974138172973656562207898292477020614623813500024343389623476553486966153660021095969281718151337120274207423242512445768663143827635676409107637955793973785772081762448302233027234298449797843856632176170507082819242627812061351419952289992788880085544939852287228902858910525188234857472380151040155229056256694326765831452379132181660538445733269847048753287221669596927869315069024281517508101373615406075064143028041582901848103251156381490896966178999378924164876185961463394544713500333341698590185101494104741213548418686183252405946726216656011570158756293502141576162572221261206973845735294417065487965015901842437237308815199440039562839383402576085750197191939238981890184705850622032345079742604341343383097753391519317067296676200562486579533685266353050254977866592111737322380986131537259168181335732223002675474046629971393822919294222779271270192902307835301081409848493222601048709220903854442647721741789816535359582425938635805729205187416207357710025614083554986883701379614288769061746066103950094172789939388197670991606089984047279319868118250810581795300558733706200618406221398942504590742972932692279046427445592441575271296469212332842205093391960762098898176014063184275536173798708565926933862314243500666260241935771257127657213000946565511626073904521804405378743779777337092275686607749222563441359105246418652570098374402587304551810008118090828334670247849282398202827697153114324981504730422363102391775850877586282430083034408455138175187767795823240347489302791238201429162737699941602201200014569201478312242316832249952020522200726040133723964536648960525197738113797864253508005259595283411308453859262848244663545068252105603254264719590275738729217883339981615044000945823190574559493970560914832084765397724223502073355532839744632330191228272794844846768100040987608512239556658662639925879657446077596524267679277926097462204846158310741661551147668795064133950304134949638185359085436023334156299871854195223976486450064787820661645015932512102793251424523219608112903474520912978499151939456221456072182460599357185873632746767920396004854583215859871947647330228538954282458012470044080179566161482376470300324780178178478946759614187588618866488267587119195864526292806810783069468530761734175395628870814087213199544414778566721286901643902008978166216534757896566102251897567131711747654561596380069413026031601844979773254735669225593292110467900471320633879085313743015556283121013862587516760731771428904596688911874486840749998943981229986503834800793407015136622588909475582733959342574076936559672517162690298502328132769267814179738759530295676824520716534777768840394106112180158940973425038075363727169519801637631204721631710769020099094866223413489855775911311755625346008597872188723011603783247014002662842219141869034710683169329345615236364794590723244761489583622076220071767804121862634828485407803843932298542584301915291649829094162226991307938765670372746393452863149349951014047954773702178812187611259854462319952357329546433920324444325008545970643925351443948078328885262129683281719743892132434779905158068995507812511127947247271539468859511688314783363646789214368386898494728255143965867047202273886284471218122033029585661650271805155376645952955848477956648615878668696644599408712392874456200554620457559263915247466685878560363692098802334391351691928956619255702096538746666201978670415013949673207550989233274807315000971426623525744740287440351899781656250521602052141618728626935381618836972874602440941831939170281243736131687477209671902757486395599901055035175604482178745714687359676225427432647744474751015181532753840348863605032157054117770782959316255338132015309331693557724824403113342385432915229588694062127161756814244697376705578233903480079692538659024456343651410911407227313798087218941431601408490359040385344852509740744670511483651843975912059475025233913906413939881134043146211120543682216566582239704556109258992460171771911456061801974378755162505676499010414694345612949049979590423451450846766782293735137475312228775566441722300302558434673492416683468278453231193433948322134418461452079329425188344431842444481809849299022645136347803559846659423017310769504633884376698492313522537942957175781074447085617046436391098402691205286186919813124257561743641774114873634112440779023593700136146103807303746231040049215552757749683538988568675622071184608733215087163561589492233903861407165016048814996986144607347421101728411006242834005198990611481925627220633527098852733766270725867125189908457474989745292190296511079124883924472481608512284323017399436330536605982825170373263827086543397535827151053459682393910378877786315667427826424544810077445554841431417566940886832776017425819203523336460551499314785126113672318261242086296276272342685781523740292813924078247827583803968678339016188188447689771544575298064733642091868154940108751040489168450738535246410507375644850976412145145149472975112177202864907071267433104210191404027112162284364595628345793703794916537907814630645694575055399204975729081183927512758447346440438461945327761372184761682228107501056342586631558724616520318427204964861225927008260235234219100905475507843237541505541027141305238096585841502010151372465751805114842201992485286351997168236201521505579148396935775438296890384128816112584283576823427201380451664841898617275419862288714021390204162791423906134687461129900554475742959446965948995559872420904860949085267132474971178204587078262117965057510661188690754498896351180195435138208072919416942246191036596885944258735871963052025830944172567081778890167458568369239321824455921532815092973259751004248334654568565611506742461579460424538786431736512373977983987108700255205009350763315224180051940994573177465411838150668976813192883212456277218972023431132533249845484782265332445195915413121451676879480291571636336488777700478471504325900036179913996179307646526992637511716156699764833742338735130992846402381772469194885652786159538247157141347592640247151416869332666643541592919479752830696307662709995596701673903046569911942825953618346354537480377953343737152855040039756460041849785999167930642844325423253805717831338131416341027662488545065471455105003422094807061279915247199481533432115005400917817727589409000634853573504963858244513690648590102877237552226333690407805885027579156341829536971253368858080141481742870070929801923454025391259387672843458668881536581770101852425573579326285787570286353472191855060327107863763126833471945656101493631893417124460951382752610175252330286802692895220728675693054839741391259745404522975921078515647713459986150600268693620773010223244402852258914663629896218693059105622262183556529368399729604338499070736227859233797580217458927922279277481597084687559146782315233493930237641049855778295990995461417408616898617372649295056160421181754109170160029982498324339844749137563593858755366993886987499789435267629111069898004085719430108140288962990154510256229112235872509823454237465452862022338451337169589718034333950115838884206382766155003781847212094246569522383741688370188337537187804234213049175260437719226554855906770902622652118969199099799513058300261201098236823299925598826117684850349128885849048170883956974025866288592780410609697181318473973578447423131803172908052353747485984543173919448174207536528414649859267281202338399764475074187203301459526082610858569649038419151362980370625262474305892931996944070837704649105097514901914486279267673524009988597028697822407479413026856019131667163524002740473417756917091676928608347393718364417963749301922494002531086929106956148990473152588964972764354329781316524172436642205662097250235882809888323432319217851912001636413916014928011732770469701906045420734963313817249184645156936324394549307925797569741969223578793034188996433974880704834740043568168371388235376817725804047218717402991913663077543274008361297121042715448781568192101611306449904856695723998240860370923926137420665853203271118904972611115971361458908313148008572025647630273742627002789654232410365467921238777547583368607751274975719618797097784338290731496822849106495796491645143793565439015360910681331870552676649562116766610661897077968966297900948032329950071853701285565541522818492410542867282738484747738843107144893868471824112955537970150102750973236016718664839345188688588704467780975306946656822966340087173133359531476652980870999430376679190307395021235193698268084119496253442643951044535378755526140378176844473495596096594317740152375031934766413466004776587367311759515666440969524720618454656773630290743253731985604609265702731823732396353272673388949341277833246291815298905763638706492102593465773588059966124860291203187921785475925043487241068783056170981302603061444231953957285403639640028653134770986365311610432180081607632931348458233790393544806211374159377347898683928790095910606236336473768762561599675415657266097254042337027294641217786775489030454038933490470134732362178451430334581169258159374008596496130569155065093950674467746369964491332069358715858946179159375389564570385638609044719249052116352797286656053590499150134862448451247280402312828412976692579176900028594831859767333894914691719021728408770222305745756811178943404754784146906002479008339048669649033408028447473215621190574497678478139707488501739443375541269292786922475063596175676091653200417689341976847065128413973161401267491602947936484197079260347074730622152869050223007831948233478435486100726114547175817854003246072052133404023270093739763071606647174951292593786222977202386379252698212876624445159047062688311950629648099188904628446965635181308598821514960364879921033042792874588317260827420882914049733857997442359127512404160957239318538671021227113338085685821459348447230399569826811962334688664150680261850740632550510883632840346769286371639841324675542551036282287544960845285428346427938302910730521507805387015597822809832978391240752250443762471643898196009019792992676630407681484017277782333849113593009436847346497223690251274482370675480994471918550650622739302671275119699750847846196193365737084974436563693526878379974209030602545614916767327987570028619213714635795248404550578411479666991605220324092709083430855114676233468330395369772757278783058305166305112810086657307935952370612052109272013738133883315388977726323213111772653227154782080612713101031005760183488666105988672961687652742673098975794487724574701434747391439486959813138796981873868451505430430877576660948326955357962776040284371673790058245304925008086690510144530986019315026122706838557253241170433485643790100357228383971391124294022039846190881913882024110705770624237864113666872516562949289364116597212454388228470754398115904732786113515158053043018592375438784326169890350224753650586327065361141456693629561117844894273311410685080733676663820817149527528873893305742696090625036381995633147735832921242867731960137243707175422789944685589572854084855016187355556289702243174276696146762301474856912663346294418075246751085999668520662182545695656459028680653824494482581898679279621971534702346329081530739698625500469685911229355715826951308782721511978993453472718410379456154979809305205669979932406491789823256083817195912521682523872679181981971237781011251766990704353197869155051321679584110781157108812615453978917061193070452141646317363492022454127166328294071451894011175388884250832448457828399031791656906673060061128167063624413288799786443261681232679748019122746259825198806427203063835146125023133446648308073928351821159619844880102349910001881783753218237713194443839233914647351499016589641703043496335699390102644498746746621046929201305572437158819368683595404561520129759290077189571617454421434161607308029768875941080751824891356354454232082239213247150430018798268559866551397827435373395256255704514672586214606429909257439938568587754166585051266816012691940061634910669343153793863837096800293515607949974694742897737217880831883851004960496832941345435445576885333373456638274563102242453930937208129271999214492869506591458818588415998974315062119553515247798126468945223124999340482045537170105871333231806693672630602977184225944692330758618268461515531172959976748399934723612152382344104126958785607953058685636601108833687287679417996820294196877145777422040266598754689384877443964086785062262322589343982902061165787915870155911512899097551144286050076227683976763855962577287870634191561928399808447401750996642549725044973257404517303598886432029460439378166541635471522275370178753567828319684423491649575743180803889544587311829845378311724920760301234046336308998139447503925044416093785634206325842960951734239836947685191628578944873470577032638733227867781283132172202953502478775219591588359419441448172701253427353791595755896679980112468620170228370510116622209209325136155305755663782177125642934724880019102024247513973620436649449312457763000063763302758611688995701765648627678470869029386683563777896572935700539535595223779474863138740296335776971735901428809192615558209249211326447295841114006469440641467307021128573593920119675574094691755759972102477265957697286614826017515071451033731037152634366096299691952310374666525991457883180887459324568955605658300345316449374231321257056342515860227723480609483365038645790802615168501647735927101217553934682611158194702543553668237264817855581980690257250448954193799105741912575471172454485913752453383918589389242878705003578698816819873849307402533875181463229541148799017102256324247188741985521021349945772768130572238015225072392945040902472944140835190502311265572619389167955375307012803943239669301855005334852917477083826804114128196798583930117483573322440189216011486201683177267685152766451539057883230183743069222869692720415940312253449760151770822034651850039098892300189439188562532546972685630594310930610556738187647717698737800395202058288770307875324498088013738270036196756815224308706036896150693182744819235020530036642573795367821180027464726417840651639755547685997969923539766149873642898703771739497102742363174384850995381851114815833590625174561502615270896833834480823485821347470300370336172999988798723632877065256465324926845473025307607684239363384799821655091706302332217499376468739109375681407816783772383111293364771196072922582771515419945915769270426492099842993639429961474940885493417407970738407219775301997951290820625596229027794040061262923691904540972117106818970050014328568267914784996551639361012959695147394443879106555457661563542564247463186174504452033477762708719073913814179407859263558872469650965440895775449825315948920171994982101325983651251809540504210357685505174781448819879585039776112468741416982508479020284597028645836204747803892651310454382365967087773645381502430588320521479578576178267745310063032187725290125024214400086833248307844791616347684338233335110908958469746525307761219618701046422630134088968774468699782547981685809010627284045683040565829905605501830202071983736232768021799947201791769700569997760811684717024370072367753480815095493000506796477801874476826667018354487083169374853483334041163500258549055874369228277132237688097388822355592617073495988796220454560880902541248988441614150776410933075168865142784636234769236123052006114253632131413649047247449521878251636267127921845714408410089487140338437548489309599833981922073393088158571132475404561893358615122401463212391978503891746122115953568251991890672325074799172871184122478949955324452614112644226697494852855240043759512349038693625884180501721414455776438484573042658457507320285195224679728267019734790166305150468898924821571456431283703770441471758216013371026302851024762632180201208394143932978310638396492567559991919087250192828638017405744607276573812233350785571396481872439507353753009738311834387351909887381681390455174815332807532497660057884509139054953508922690132051642352498094801747914762788080383348174236783170052111985667282418367091826665199156410097149376678038995383808252861302308775207176383632978258211162196949419477052532139430338583904235616575278892572580310401608452383163579879441603114388390606698136569831445866315058916469889100229236983840047899798459420147573491998238088409833933968926946250808776132603756218633855112149618768663503023745727776751028828246006623839820909792001812040463413084386405229393070621995372373653717148318646106929048947601883009963364770175576391866471987907688524336849687367825022802548190023633086188357186606269427199729671829588242796428378633591472534125469340644339756334915490042806239392062988597858836316542711869969818979232405351670811853313891497205959849137488008757655466970773623351885429747535328639294638619458264498319048406667717638202806654831931148103420384228463675413782598861944371407052397967155597614083277955874594292311378699086477864535779183116609034664805508934392837058067134001882532085128784196816211689909235885524360800415373232066117228345947879067010016442602614042178544161840279800937523127104239480326919699696959561756216605834373946279696737659056437620663384133179273715844970772554293362118421352724986213360215840653493035597330562628926482180161379448059421984348984577310221743685516538806767764127174230978961285487920980876279270126234473818882693243551521532674475979638339105214432989822955829934301101555397394545010004355990221571509815777985468699249361475190300957541736377210606133399596826192546625046878116519843167647855476066431865850984735727639713862676438093584383042445864458551928648983434963402133647094332243177621907754617618499892365226591192212947723484039904891733680729080902067137844697938443024112103408186664668589969120700190697346498442478734111167745915776005420705404986658642833407717923414859954160304400198810433747621403854125930196901524515111859018606634244271793278085081518959526103276296052664347118441233447858296521671014561056944882288495538250334120895173811015919483688159225812511422292978242554035459810151047912633693296272103204482780746975633855118082227136376689477357013088922612863390345725415510945410508701619909110554095855877036077761651472039874824037294539628701895759173037613294494449814241481885011291279213361811177339772181288968731313242195848108322581497555830806309453887409264876495743053109056392569425146578408477813268733403525687527328013498726112518169306130921538174865041419269959018268293021142555651849026737650150708672346541260692938396202968498438586409511337575940156890394665765522140394228447102667672568241233774123901017971329962108750462912118764540148542256547853611846894906564743149303493043178682284852813776276653679672118799331734276780390873067048949218930160887798897161782187325298348077411856662319158591370268163198721589714414058148533290747514240241295624827443891774797438462196197785524801597601955887245904470546689095232615379648766794427528902042587081887752927283588861565297741553721102769956543496302207837941382488305570556707688378319397776324027022448899898824325995030197611641196563278208139523466146120530428523125543178679178749055343724741527068867385740627183233592750874815158922108774813209367851898053220302260806814146343010884853896892199028898313849330332166083937969589808787624742534526058952535768531179929892643706042892991843054477408343368017836498949107586628188164053326930938519749123457323489535872925252544992368278717792409762537812210145644909905027362690983088132902293957165023089887261605068937234524403245495460466585638493162530964593824279701980228813702205141453009263394788474179433348533073090525901541229383551926580832905619790353251991556823532315152423616999558378724269308221464077198855246787922819830780622904398759596123234367448691424850014304134526970128351666727468620214250854757756341582337900747397529108910342195742034644292890739719139532865507031307793036086631333416706618602618505100257880887393225963293458737949575884265965342577871243113120694823743264854836499488534541376097157280180648162322281306372027677528933314058563785257259843815458688145574909725013542815023192393958199225390669438458640402408224052568710525042369040972032279222877312461170847325113615029895651235451590489195163992820165364379867620487538219567689403910326287294206177729463426496203250569313137294215289849659522598555995804304826297976511200538328157202537577556842747995784959040772665302901386012553058420526701801326914082035465261965114335631619130266409152655841650868924898515670115735302097419810374898586941683096559638697553604170014387351882483980989067111617221502602397401708982267311100265861504258554528475987403340656130788363892738206372737409704405521376972065899401406373399466977608227986865229636383310231482338995740103598546204132704822440836358753180758879632219216553115644308878967019732988896042574441296525173865305003840351317209845101789774641954486912393254905270420198477919649001214560550163350475314408052693634270000457322504513749809437882711253825349130721006998241432343827586756098950614994847403141194019542676786972687719790975629692621497220820559304688812866446944050434924656551733418949430168456316243098464450801341040227742380631103435428833632038595827485479789395525580613456090705067910492303863606115958505428229605634963221288297799511993996064174239861355516112573347264002532742000709580024365788283672887085009752787175602256405159827506741709623637215136597168335712577937169702027186540919440101102348253958659078102433972952219018458446992445130730688118285787826370805676196993629946741136214217727556805365328603433070713117356920694556056313088999162978290044011585488217293289801423717697456154870467603310587024830749141678079052217187420761383313380421958736930823435551302840751129100075410841970651547526563769124069632154439988442138339803262493808775773973880922083889900006837594993509223762918430707477342971445606744302562576745258396232591332013075826628323243448711667624861360217326909222122699746995371490391045961328027033964054341319055509088027176122168161527904557127088304454269131678536643297221941820385706823489982386569307101186103306386940447980900622876481965185509893224900733618185445835143577039986149953468197391482238988981531330646610342163004796425221004184067302777390900884688123722782662982951917438997747090288127811378424861727447050159800345267464671982673750677371228421481137299406300918355507200445228162228606871942938178381199161128033657086927695560151538491988466532555018215383452357383169660604620530243243730590384834338555408867301777270358692425134278880410617012932151135264413672462144363399707218742490975557347308850530298514190688320628159906952841386159207450411117428153467631131174247272592188747442058410078649521791150147997349441319828746323406024539631362633933717814894271435154961589502770302957198716694837169543805049389562986286863808791976113035541907043334635000943086494867928586645682359324545030442189834305189638345774422836676514394999249279766697467318953982148219661134536764119819467590590986305735581411155364007721084082906058497730783541755631135686793212583695275285522877735435940347943017768176074843794244547322110526413476229160088085462644337564960767215154207755792942151553811575931298988208796306999217054810880161163938703648593788491426536371888747368856953023151360564672110263165620573266819132825761385858810935973120620727762251056085597280840648311573237348702621551398238719829988787108386112597481582170818682058448814978784952516075245312106573159839258757196428408832947545964141969515033499162002813133699501908718957380045934093567567751279425437345527529109594561414252143744311083872429115018749426134273354504899748590122384449134043715847879992206411026660656339218364008435095875553513836312429559283316361362735818347690248781410830732194022285021834299959248232991620423699891053665418525704172869630346005594256987025291424498934418152873627179871926976356384860564510659528709492753852980882773459491292987765277445433160249092952909246899354250534852599617954711461616826402913556347632929717289811411749761061445395566527147789406210825620240556360205030430340133159330215862660425073618044158114075641026642573297788991123814852620450980620937216176779411234555864670773454106261037156457282500941629033078014324415141252436003790307175521746711429842312819883469639192559544493822058881971756643912425633337212940242218740800156303347489026333835693437444657324000058552258920908555536232226398053947873349719778840944917465235516166789623590912297770421696689477943347816633336401362049085967106278796996189592388841803860123280833924967346194992564492030117635206816864270651464394356397205617467185272402365127494341037355517224336082853656693583448595702080718178750205497321620412071286894739113381617080223588969802551188727910659146959045134269658032725426155608745546250202714972452424732139428188052920285764113958093358589956963628586150312377056419173496771538206408085464077480753144551635302596529970684294444338344449941520952707411401287491161289279730234512488593386151782379541828118262701562678779847009845558654489472979979712940400990174083691303487099195205321269387245170392059149495829069259015443244273440284570848549357979430201997037160541295968822286939148775203415875834906395772959411889816544833791494888394510855000438303133023653372540775961884854789893456061419831626428988812415767869127712408410262984490562958726448811260197546366935660232351321336916440659250734422256680793241382400742390290931047299541549118335863118944852170499834070676194588507449290118799163026465740719102579481045234643202728102098572834240748503952073975924826973104591178176121023492811694948221709601778721566441668541290472723889005733824328629593721251516575935583836421120415167898769452200225571126951672174566339543164356316954831976883976131645485029493323499244760982537857245080033347192303740224905408276853085932997852475935316911929586785244256526456906488337380811895655025786170755008458152142119274897351555838612142279624097671565933722744743536487154513568399737556456068479219165822886319831941775084535075213757989041252272053547574096154281734643864991087614011213127802743136967949589290421190340554476409543613025668579505250196254006858683193995110032145818878272763948587636492790768054729294438100512933429756754268262099672247248559872636985060265323414691264098513817523828587345698274292380292417581322319691113124797463687859816106654184880192847723027409027779440422962075884586926300579191870380845751363722951717976423015555555529621351830268683314740340291105557658325313042040831803597238451629863045486137896070061062781990102976894696908224682278668073173000871585461043423585306155083534519160419348989373240789444810831387643840027467605132639292962409185063962382065628653903437128959752263442428443310120530495708820152248307256802730845796444972364252617452336677286224678525249303002820298160304980444430434424400873400238037406003473681076603014409261308078828360209118039114734094757965931116767167399796623360691496822327012723460675627803285094382800464199392404626677935897459696912339162642900840937286157916782294116766609911852565998660144704716828746505339215987833336435195994464093490399151469203390591693989058117142540148855835234926407869710089170589689016939503483638018853533423657609839727059915728006543471060170830993571091476986604280542136380835197353755150163290541616603963697733859845367148619433814017049747604668175718093282253617401888504602518371824395348457536303772632108541553291492925402499700170006847870892068218157366551805972455779780630163468421611337227583687173040050624642150760034403966210571345096452866343491227711849750075363579888331690143857433818517174704198460711471448458448363516403950217270111003443093898016538780832844824971620114786911760212314043593320093904499104458997844990369524482549658573115249329751434636906376413993803203880885759277615357975242426386694597231130335399711724808519569806507304398843294208477801049323773453111312342963882799063134751414026310685224658848861539241685460354229388131836469356337397970961475363410549186231607728162530967615855754158084911726120337263137067747730541586759321751762398897205934565745790993454027213815778685601449861505642542616264907285947629756672592919087322163513042930986289457889669214175008953760329012288088291219709096112307767718443177720725542622672694796264236324874857536016616536972629974285344090676389021312981933106719702382112186161549743851937951947491625663956187413628423758522435817775411596660317290954314643748830275592811394047539915319302407038211320428875313332759193107830809297298371357314393453916161011006522217320084076678170407889847281838581072571820906419551731151689298718495404586035227091264398277899030110305549103974626686715633615150630087512768123245256145792093340980678079462423832308134915373272128272758792160922525464536539973152053879993220719547049631221164745365391911345565383564635739543134150064515580496732654821132992346764984954523847311503474383781746314002144047529885004694729176977753859559143357383847872949696371788378224353190555736150759485601201105258732002817111515890687669449142129494489057121053621820983687185659803682870619237464833780508780230145447399162238579047442640427209997483860437922946665702598263959774048650085845997559349532469628680217954615671850707565931332781868843419746072911594380941121436418544038873113157777107714314046606574524383652569193662532788087537141617430638900461760263716638268881859332620554911065332379258396950603631505590197759940925673157138985969354468548339919685696167113470677745430525390133251906288979955898550917600154742828172565459751240479748322674163293322058698128548257745609749456422910676364821375711422097923671594920492591011439868070105847999423806893442294969436301834996386956881264318914090256524631191298355537783925399200672495230556844192454874683047520896508780907809866530997717737762274273433263611232979573800483666178973638433892554030649348751314284405062976829880453166530821066547943479295792412951740548208442819230197037393907363661782890116295409211221239625644480342845068680599869599455065625060993524343917717130484603341412631364295057749574250447565920425825470329352937932578878312147123565960438183017761948147444769256181372980443766179293367559420314783080767092328983819215432142433073300411938523733939168784208108434114949354482867221320266544344305197216075210332663840693234298686510644505907804235808820467879617931108114279702848631839616181093103130047144711407802014573412144728846378172690086618843547571487822153002664326557320058045801089009774738728106831283759412649916145436986953804065236615736268323072155372473468724139266922485342239622110107634432364376860067498614386924307072261791981484416088807741230918984470828864278840048754131210863533197286959095855255161118685475785514822587686168775428065719021061376678978640906085546210714056545200635700778769398882486499768376075204528047006247523597864680440958777075839534820240705283743034726031853408807913847069219199386184867270142315405300645695740048134844326792025101109337823379825483641632721933599278304634578687925798704830129369811802422822659852253984509861851774970231113975412819253230137483551647067699629327663452486408097297477947893432416478095209667796921587285578609133392954213717766504251338686267089718990941143864797203046321408602007974849279646178739341361451609438774995033941598681559896696956513384170520385996580986633498311474916938476943216059190567275787803120531732089455661725866599013139057653014377519611800852440542945078868511793722699088236660317960517802186933008370714006713581132513217874774476827245449647054576985767613733100302934373878888567082410980153770965614849646195355379290639937332309511385305142713458075021217168773210605747747381179648967390065178237595248956466978330383364295347029296001677557885643973455318958014962509286360420223827075304077663147556303672459854679787606430196843874996796465366790309141284768834648688837282324153700970176813847168955338075589842824430935613681799899703912407245664634177996883359114487782840556996690852527662499836281037600683876632860642535722686748266545718183701489756536821049579458006313603265362413626609622154715799986133806359772109932830765848183756589881280325250162720592361927258665943804466918985081963722223937549969612200292635364058905999417398490057108331756315958358510397234279665503245490659126590185147158577107082947456171934192126790039842980991258782436885682438614684905633969321141057814415136780989759347724723721292141883944241476683117541430023777935969053953123858124814356703442197247448367775554604478606912507149151811050614811156163720897054632021472228855597326675666965529945692617100809389226370205648837797815393804347500297015758154118417283132013508996111437624495317062826781696715601186183127943962693205827029032826249365834190745877554283403296596001508327978435058623179639460357364518108892329549110403242179991135289718508774228769819258500219232216625938085408930473684949048520453990053729848802981748736965765522773316560074670719498140155301564256195321038164510526674347932910466562432591727713576546317221482457704880797183340000016093361652397116564370870276980364090634589233900979573901416945620381371192897546721503327829168502930876964476020583341210774167312961426261233779938809025410027360897042225777231554709022731302807318600285152170906426931836316518780599021465274027269663348793241900917709659583325090793978167489410234294768726516864570052726380768350797765994018760300617980547058346836403125491763061792289009224145020525673750112722365370065506899009331854551187191286523667073569574115620111470657046640891171665951100220303747989498477288402660339983942031797818053792852227104088648531640295246868927719210213223388204683003939107675148123322142706682692283979676829449981666566907039514417966094059857848590941075947421195702906551492464108598292203061737396969659493463299189392535683370173107874504924659814394100363629234531939200103841602562350294968679190768798971490156856663227549534579105957981744987956045349792480742902495670700029513717018103540926455350919810413559975055690020937677511019574036654039341006106870316823573023528492295986369822384829621086275303701132009667424017254602750693654383455012825843396333035871981686215809284152671721573727042475258772841484633788033824726882245362751994444861503693423521860675491318057660317466888219886930692669151963905949458670597550439896434155960240851857606442428374400790404470800385923624376417987848329263548939185665278833188117762387578260279795008239369110792779734130934956507498178521050260508487557348437681067508605352585819107925709391775240835712817718543259992067054933244891196483094310250087050254422979297393814408292096262356229004792506139949995594642301541731730916292844154803479081875112382000517700075897269558495931009466545117240333386541896354787226424201783864595999801094178469312247377645639664337912352991652232828299109664757704525090345034679149928114623203535787328243343197959722609255746757468065358695440044710385136871840277240462555489553814670105168425519705729495923327748595017586641964183129504020081033532646954238318714894047068274472566972864974661982801422620274079905858347040050611945179273934170145644019603088288558441313820501741836518043269678017733312381435100619257147251381415787680046310062781209355244989953017664420018004833579495945625057787539273534397510764150068506267406380363617559178875631264807253863379062494780639401035327313782756231326578513728961961908437375441703483636369829527463626254040924884948293842695390007891804341715006562888562846548220735086109098504912926093479873870001141805772216549851421161070263406968504358039706792255785654860921970989082027982641356429456941507605778763843518848095085130201030980226660509462358328295458296934600982226066331418656140446319286501037043258972771016326087295155725246604190070629853975206687622825305100409134029886763826605246693683048839711553375160680793640455681306813574955889134027670686550763864880234518017274945588214778253850753360424888180406574215106876467652698213134175408689234707954241852376551040767562586308137457948301777245497849988497520598623195672354791189803228937429686034538013606811660890650076362299897101766275303906983851123617143355556022901342161776886205816377196907710680106751061801349288861201480229581438923585400510205702747486992911588970604460813290148210217801484783474001092362903103441218969136087602783751389816657354135222857191298302945348066504869837106030240397133500958504320172689087002374666788761843599735223204841420701834512733093840328560900369887684084843166164267331963024882320232484414634709467810517063451190468134527576900450835699990638700442899558759951274089510533891838306896161605290919936088127607186878060818969251955678820056439571723054992002899396891261466603846760746713962460124577866755706559504058600377574786570694924486053003911027151231705767983616971584472252284379356751994445371466006660060062383857141185597310312474049634095589312030927863478922897844376565111917791470226470867621504558212184539293218874538137759615992143934311070015806689312779190487091849792562976455474800100203224427460933339458313023263154711604516026439806568641762792299792895687089511049396671619146609605382188669184999788590926273676396046745980631146101583557368650301046979776080432738196593782928811920462931425156641364401247608612839995816740527583586566817485286513048456697073161312004583683155444799282343885875973655056123794426954528399250945779433234111704749288136028080194026287089873706400514256472371887237156655811927925550111283878978877024855291711109768300254177396078741426202138875316444759787021821875890845536081107067588571940248410841544923750280950338258297916271203124856299744230496920976578146894851824170583401977601558819399753101036382646735117026976615299817241739408628978841601678064389988500023231455406600616655401011568092200023291566933871161484487230224605753827547948671340322157491513120710762780265897844635487041862462040953297950432943780055361997568968019323618442716503332823724192608682294158892655816107412830459301886642680706307929461339613179142566298641475620295378117250162567262813362437362078521237523370807911373162571963568332995795357862774178531668225701804281986703403314526359876305852219058253902027709020901826136372472030393492610063950058227524927216228341249369720993352469619487082559561959319211883665098749538881065318524928961796361926768782600013940056076723309994873253327811216131732679886436652232289125717058828639213787200959890157785974129440245969258528194630925191163982806492503521742233902951191875588493113315593479030752513290682838377053539395207939765354104200645871398338535606142950694578880240349197934245574736236311860069674944153047958902185445801975793062219652789414137016919370277836376177212733436809988053238718462436479626475987233725865408109035563922470301156693748396454901930766271913515851838629477735334819750796867774029018687550861180300611976872422701288749453319289016010377648594305500095748521017023581043851028470281523637854749875500896800732316146569565663210625859424722954694816254772866181693711379681973231404935815209577138361336141923579290486560973110462558211702725568098307084979435472813679334384798104108180500031842563845657406393039964941114172357015492276382734697614643694249559277157706063803895485492024198397893370454621925188502943225941489148604978296068166463976679765890864043792900062582722737368565672064537332873340104536982282832019872030778566557694062610925992512583847545107388961176381804506030644584858498431208737182571112596866801511267128452417361508515001400307802174089845059725545043105397149699885268093599399184370798815771446523708972792965576227566964127261004183149388467954545718668899840037336286513766204889603001760777915230788391679591965386209660614440757097279255613821928842046071476920861490827891102035675479627097644795339483697436450715136907922691890854268795107504352697290887581240807241738023846388532261662999845203146072627589561162024356626173570759001503451858178614608516807646533590623483816191144560930847582070141314936860399354280560100179187259722316605289400969001335681778737137342136345270248287056232164878965683264140400577053710056398769513088783992825142048325474796353024427955218584271346282410281962329921550775836808888392367690831359466568449053934027815124562879927940738258381618507784185499041270226781879791171264145581169196525119406550042426274204763084640842795243968827344957824552366347613425547344797027732853392902554313542582030555152679546398884115418595772232380562221416835446839469588426964433388727740201202971175283733060126773568042122879871453596325714176449852827482579181598983366810650841806963621850503336216290744352504359560801311107429709904242784620152545785373448695754899161069425765678303063604191129824422501990362186774053127153470103000043908321767484154106630130252786363710238593857619052783868441486635007191652795839386881331732814163947946949781740309106641277455467316148626799731292451484617132132174533548990029503679925978157382684570055319987685647450535697849821704566361401823167032576678364248126578120033974633888530382289217577404645394786408287850224922047009151490916362462488541863174167084671986036966995370737444207574585903335894170806329616293382142250857723874113353929395626151200857785383230410443926227044329706969084110243975587323578224083949941690313092217567071719312331644739490607364105784353404215342444529789459586762283629986287608824285771547015350438750215930151786867808341217157602863441698862114651640957090027503463807541934655359333330543419569646941726132093685526191452532697574442743432347261151700381497186943768059982329287049461119832448245291938474760995128139752131306570427436829992417661580466265329282587574461756773920866395284833792521708526216355918630527493403593322629959050504355808875662675803852290288354283726964722780163148878794338445483863049148633994768015849834260315081690818265874570228389821505616913357229598612687874942766374754040663544867248363736639451955283907186339030423462833877121535909231672750544139807837856184711772529306232595478370462596084258851150310573438289403793661906614054082192828313078502844378814419192118208034028958281589805300787801048265090578061829731438909646082058228064423419367343659823395411917638663002429231337121684088985577566492616883025348662214567915124204237538675417071174110058544346005920390487168090116828313170605557507481283915175886863093102393381185638888787275994250154902896305515530291777184487760153878854268272124365833069212381619943729475355875523161275683232005488786164280748325453782973560322000750724653319269031217139401881880598179142922220341668404541051788533742966101844473274285612349739012200776628925254971468522784562536552304885011466829702610140122073286362013398821107106134703538034304413134006637055398001677589639891364085539080702702968044060119242206248552551159466680903277909723741100478698630973271852879408684564058462964465601973026667603543796456226834457340686804103346265560676140380182625505428854552946319061864648173682899424965692126976300096083091980500767132479868569095578420244137050592867739151119243022020492306634451385731456384192276374056402302835816923993734290504444734623689514708221421091776316439025891859075557558608790552316184648690125061387787914933534483373096767838929214539732811911618686500212496727162075262276361686333220849720123583353309919657743335793185205320964584004466376414979709485941482455786072802608959704734123473014226114382546930864155591115224054843517116447912478292785126316355284366781129400994593494649923788889237606940846070859029041381233156527507692718149758883267705280178962241652417570569856054382303998239077632359850369057799838109531099514777726449448376108201496014612244402096310023915260876800167189429731838890192062582400117697946662262223750659959416062973341634506316233608993333181034740996257897282923643699549872041901371646869922632820331268529910773737489289388093170113181704031231799996849095760342959215039418025207746968780995884533777808407326636080887266097835323023689458728149880096589120809393632956677727227986541066057679638036978334680095526648543141753774530787795428248853886057595925977013426378412731412363021105443078446223664683526260100502591185547328724382787451080644151214107773515535071300452893016243563132961569734528940490702667491337098515342640456821896924361526829007922455805248309858950796716774444060743963810157447481199323599586541937823922190795989549797850314267124129114930535602448647802183459520916510059085322972489143349126781691953599394379310090588190803666316073072049092321891653262979534515244651971268451978911314601626323269267288443120393015208934531826907642104996972091193064262509637634405914352195893839149996027801717601451454021677416200571391283369619218466262737704161480517950305461350598890783285003261731496059370622224052394502183297984043321290404497675664883338426004329341151387531558377496041683452758347474022682242757028738511630316289918735346887334706236324417164407240133026308559031227324296243766566694487969338251993704632937074161921411464983377475761161115867875368020984184752239099946772678170219976471991089969583085301780786317682299281811258880326329017156393400763005015245475668005781442957160845175831320831013985261834477496277119226265238523235734093833902091849180653250323000804675832877254682795879200654077233245914685958507847053176008852570268960377424732217869161072002078950742485762251362324884584834060720622722098581022131972831140695427866043542512567700043204378038034071341005059129726453485949361808842062073748940401449632991119645291999203358012257898286873735890240936478764120040978627478528035379298072356189608154579254658574393339583504272972635825163967835985202792777138606169017581236770337533443478206530282934772753591655336071438402292989614129668564684690999723572742950337893867851058237239378462776361390153190724579668280514122701968403118731547779232550909071443491386704136436988425925285613700588417494678969971645891034565087833276095083602562386259407909872625982815807067359341232389725352608587546654108710526359096890791170205803003256952333590752301949683283247149446552568910724287383957371281414797142596954872795877382056200320987430439454742141958391058263218263772293286731969837324965496864367723302172060105740080278874506492097572336239013102063351345144425875629493987453474115225629108264392839021131557632602561996837407946553280159945530099236960566327829907871679798308198990374893553164878244469836139339936854658476148917170927450896876428760088803366040767477363697168809929923207458472669484006055554455289441318495930542439893273531747000552074005262314728716645443708705930799470918632614623591139754016975470009715228127697490940531445121044983250131393746204066241591723627691613317526480165978720542135804901646008339723861186113650423758626077720708441919058854139368116537022300814333395259592822810545418811941564191526061808149748587880077876278092778207480676502034639149814198089744654927551438822366416851572976439484729061058015134956226754657229961887297720497813271715258822958593499502006143776073505443286355207605559374132963789891528614034303905309784654128581761548537528568592756732846392158107110958141786356570283657316208252995614155120419434840899360557476516402033887982253183231639081671610665604652266148909002094047000992295044480393949885848506953535163636563350967518287736601468326921317267479904372961341443676111189925409323633728876764694019575224390799541032729901724216760706093181259619503757109042210073090102302088736027322885653636637742552183906996074854876572906309714393051491767994593352268571695904152592369815231513503451246808824174244486343312077176290192752220519685269182469133563277295991138859189856471544078579607653531353067057861120745157030256693845037320445404861086954410589656610727485505914274335406716250630733379887154353463539000725686528438944003653858335579584027563230573799805079552288275704021001813473604438862152335560459161806059592455564478214413222334384827044621864722290823109017122831899193632029453906435587594774376030863708625402302745707246313071896775986146700198736865775641090835021530057947761636226526511780728454851241398654531801452208538443848889965198107796685034240728618579367648368269836619347291545149639728318632058883664899635568112016813583496071668549921765085511275390443792800223938239174086230854570856451870761554807136335026875739471259483559446279639761291742170454668686340152107661622410023642090713772744665276604639914982287805736614203614848656869061962190996423670408357951375713531730841938730212769190210834845203980433436569334345872252828820897454068417208816859144011946670169610036522749812707051507321284395436008463933651479765860629598270777108085829601127622100310594941459339337688228054068177896285535628034677758768737740320616991866455965518318527703363958134111870269529819370526856726155649751044781291129774693279007440582484584647675861300241519884057028386836535096126183657859941618980115635130393915625387581136207118995244971917132043201684049419613016544534849924297406608311508338015215743570776010008062825595707895694881128765224822734690941929586764908311818918496660401738612356305991013630156571145281762145721808707664021413441575101735323964934874808439558479349089226670122528753645873975216486837217298799893785273845073200815969240800025254286609416457408659025207307586789414294196559002076573259439862216362020662092434559756000226414659009245453037685747875558861615670290673391686609386482752173848310047564793644059533724812028650000604435644848581079963928242553398593387866173290736562706105944130017188233109460336383225763465966645405616578668294924832551312506056677553984839922804724794407554239010148303074303229921196685062932726576900309624201573880920339364048862640323737804560039876022918524488163332274902368354787667666960467923432640446584965334733792888175498378858429866103771457249687344056413520759097184468205297685357251817196950398987444392198601044457778476646172873943122543661432909012007557141616032419798795069881167481559417902726862214302510768227907039596257713573671080983807936894573374726025049647132832226543300680369661381450298286776208956784088290469580555304040659207218873647715270837919194068268869934570402273857976619214274280308844158042698038272163921983808287426649262598432017275042903511483775566681319013576833061561711561478133704452137051735667485861149205783868433309707276440443062985817544025289662185787207213714802549626238119566811002433627767500036808688391120899138517746194943332586734266453827569752135415081990675866779886941538734299725703749566359580165106391937305814110452307489251350622096276819673156270034683624644464723157367699585600597586300114103117260510994892440277748565765304852149642065772412805566033036165075484692614197108360239113395888353717746309523382168865275603508479725017712561763769966905812856503298934577931570439896245507323198004138246799720839285728254638867300347676837308854060054636472272772827203634763241431158047731475227493809679363440242220827173325924323475683880218113975400094871753068748814734485645118139458112939330858834912174803462002286487398282110637829357576084575241231437658732177807815382153402255312112537574164275135148806117683148779125196530765996651780868314354283511731981854509160460162339807580298163119927028651164503767942130228727623235867853286232758970724484613784447189305460994679123012289648429583729056966186229013039154216776925537625311888112823089650394412354718221884319528372306519488643697371953316958532675260620097649678867495801426064939727057944330071678940178509561383882980128718858703859335099852459401790741827116963903643324436998165927600777578582772806799910919682338142075353271190575322282196808593927605662034666412044656252254030430602818931191444974147181653314005341343114058182937635096209235900904427738911932511616044650188490044166037583546082802202618159323372058894412267549441611414306625152012884948110085221331449738636986420569076282424756487622851681249176665592690080955566144605037309774385267746024762163628318122934425200637680590426879001094180343805055505256666346007327995128354161099845524321100513162167726981398135868140834939431520828219265909927053829127175819976800444948340790171326798649687194134761428381774234406934489577631964574151865073627570651413715685124272076858967303719421293333010501249830670851058118809503607259065040139191093113807558608165850988795818886138201692209793000688474075399522284494567209973529432801536839853626843326114322107992587810965071140652431701396636072147443096206119973565198753780016780441072452393824241013358499798136206328356017480551995475758484596753937442508962155428220832761139775894605189280088884019282437765961041873244302273341672962971110488247198964906214631483985599157314490483584441118770657858774084553135192694214788756680190770862711275680929254090513744395875554490517192495913375759423724546823548503678794408291162697762417917412275041871390703028805546902831778688244917890170725992500334353083793835297835775701344580267021989856444948732459132505595994668787103411511583929001842320404963496065995717195545315218034753402637340374083912705709759046220151117960005553162807919939930264516712230727210897287364820181105227209402631774886026153840411164596579851281395613917085056974906019398366688694312762240480127724211481323284469100607324630359596868267639553900924216757452489006558112840437418170209484221694187483903969090902777704735591688029640121268749567554583127065711274559870246638093691180108375809542431876403601891186409027404171957349214757158670894485801234230079643209049287779140482433793187422585953071580737146864322351439259483402204022602922930419832353214496597110470611911293995372897381780792251857694382043013360028946224563632070523033576748791792093286326708075231494159018850284012494870593595274242449982621062144474932202355016038015221994074226418186835652453206519392415701033862220176604886941443092124388532359940011538317778581571031310538857707668802002653594839762311019307943072129526513603223187439878940468528633533188995287648158876584483391665805547136433771699009811592195694798502414013658601752064071016849992180382729680601852223572773490508565892169882882893683318244283519322069383574466559079317962986168378644038339380636899918408987229001121857066293552069497050798735454206090615482688640690216703252837781737353708166462127683546398524840990136341198873297931785036387676411502141407070833856877535846301379457134788111087219133143479545894962413924756828214307639494689265817923647030727066982986356432505203546080854133066368545378000791186944959397750667302195878328123578365505189882840263193128003580825149861640940848954525073405000564559017286257721665884268414478051606608590087113854276080112990563436603929258600178596884037097502653565108903328153123299925146668614357337814580450903285447763741677975216583181486053376993714719518515515773141975881837026923165623291096690078667704532755205299177313471734011092707655345277161662233002815479408079717716212998181492124919278356370853843470586422586049932772698978361296090451273539074681327453377025415550413179963840756205600061269672915330172330509663797943842567301003841542141653024613720492992481076964027623003453373166070782597363723925214874865587716538843796500774258396829799882919814087358444490344551227431658599511930527636437753203269778301792049717436334280663649915532531176272936306857905795823196071848772445416166542542953983785850641330542508653210492372247656307824092783913499591273520338992743404602951113361164618904547346599574517726932945080228595158070838869100610375457362910187741566807764736646962037617749124743531864174832470354220359995064863593889180970596498088374443382693288234730856598138053383974023455018065020665146068904107763584301748303711113399761822216475249721143912794050164315223327003279700414914076240625852750114758006974019956134206137761237346592892350343070392877020921745459128791482954374618728495407824103827109106594282733085358228640625470153674140421811616142173824457300005299391713960562971163518396675089711722590344372718471009638215374913264216238106989742365763694485386527826791150426401816795672881765056516057789229829057671232378379242241271303016173298755534905719299350663156422736333543815993933760620227149217340902208475952157858865633299235334998687281228887169138844189782375250914204098240305980452985524199074252311574864144381674274317451357429801258839477509300564042807440207881137493864624688109114397776128113545476040301296895803849433802284091403530079054371812402433679346151166956210914214609708101353307077951671175548813083902652196097847918024920409466436734308329772910445673674203027461938765670370555189180599445007993844522979582790182778176124400633439063179573430885639052937504545115543428032688595955583407988982489395568497114602450302894000601944136049761307760323899603500527604406063420300462292109215197025485456683327816507214532649338583126260383334993853877968578737127022209591044144882536742825092272568391563627673811432590958656594504355471811205950007746350755485746223549133111023176097845606387082511371229204000911794284751710251945464737993032014028846240667199511252597590243280123215895899507920034066344305040807675976974759270876400083377212652017653784741681883216151419524909447139221284610223925168511261905573317362717454741658263544894576247637534316311086998356493769208917904460996368519887940582190575266268450020566857972302137858839963119256767875276315474037433231998336950944539208201158098749241412624934989386015269513400414931236406973890827734224569627045978429303140576937602800692547830747035081907675919223910342814877396209407702747356651409341550744960548536581923377982745117932629294847334219854503133804014374785827228686545955520376140260195610884044916477021727885516504781888034393533943994582167683578117434202887847165066230642701571475160692667428573654204902362967955637766613475961317456705479404441424716739407975340923696308283180509310438352823476949533399359254503853038790669060337907967036377112702042594726590454280294258440407473007527236925572744603425391448189551776178760482543857684987034255201839704978671698817548268545483021701961596344334532867066703317062045173304466173670847036670224847493584838889413932198952055305957805724923551560578633187418274716043180280253936097907383168703235235345330743949028157185102114855702996961714283696429653376410772294425668009407278662302153871264522834741429838270269254862120484992139985804695044812104340120456714288633507175723227435384551364352663395034045799912247925009488027237123810722339411462788289463986810818911765220715886051519997621738415442661201927159312036625822316664938704808659059090912084846683319808009050388113329688248223203448437637503680838626582156485928844796714430427242888047436912810247658788432428971007340748389818243978380072816658495039291344945638069124097501240575028695380819004147822710675848793413038439389978769838726313143952078297542474158721727456924853199523377454413299900433348475529409018585304152538596546934702914899048606276821622134141315942519926517392897155355580087816126186094879844165946186143318673638971870696335192023230913449090201783956811020434395379169343704415758182308196164886487568093306942166917990493431939043075388180307120457098951473652621526978661032934443297329634808148228999905626166511447723722399052451324497098237936107480782806493468937907745124172689319032241335487746593645426581208554966125965090557106664037737997274068921101655695018410487991680172952089218730289772600234460189591029084892995311120639947022853029247949301291873619158351873540273925884308008276671812900623280114619013218383961728795026883984716524937910460322588268101199584034369739509075896590576623692829286542865581830385784828480355300532857545533400087553925481270397192649111296362468721748630764703412236923928115934396839329439996805887671192496535414580986461860471214184435032038390483951245458465389034443040612757838705937763183257234624312556666995481178709837582334253019289572470640321213411891874950135452531031975437696109120945711542701078621867728525620922765045937891578184482883111633326005708372565408157525191255702820256072886550529565437550125493243714875828929968062955070771329621220983188431871792467586180170524864157015967135157909282024155184273061856005076801032842381820555155916202701541583995052450910001877213142823024522000792413946104172881760930963633034110473382997046505938236270412507624540535340155964643447667876443668803139338404763587130694338285348039232657928129870893513866119777653241042729906105781186713184667745379086509243506737412146373108630287772916651512478890128801221124164925892232548526707122827724670902289302270917340068336132372356399758416406287396809401950774363429332733667186979002680378056088054104064277733655390608900138115824234932542355652998416479375416005037482149433930906076422307693007065507733833140365258954872043149186018887279097887858121668469670937110827652606743473905198892337676177679421164920359706454419070456720761312343713658429694765085468666534806930909251566832493738829951195078241627054877588463629317822814554968687275840495850523322718212997553044486152834431379928558460527945806814807751425502798812807125973951715159881221399089967143559278008844405297608109229275220817401750320274860194917874034604780599073863693695470304346677088531918383233713097990438801076460398352402222220500558537957108295814258131956417519700576971216991053016364954637243326992822109386699884111250910821192366035226679146518154219308187224338859492406257642988008611719332393589226075412826526940180489505100217543241081658018791953373508187407210292961895481638462616018448064720861678218136684548735896701918288766325161758401423846399297878524588553797926304929307842130136886756361499765288404317146839492963792619230936416819075052484689901537030381332095311044662112682174573096484546147228771056657048237985983019273537795165664010989462352410312065335186161544528319656053562140488814571392670985325959607426188333667369734679435539290040290392532102751918446599544453794229662355568559002569341238324311733661490356932363727030247461281697361562531075473318153755062248625159679990857332306583533909187999709444906820446838685412239262648484435499663608653255228279644604182368464663603913639569234733438785530954239206620235374875958395327852717108597921592674251104355436669278703151914531015717792146366896459612252602755053175958732842247751002803384983849502637105938623093323943027047612171068799711690936560864106232338945187871589393173235732026457242216548564007897064127853179833044681006256856880585844667305161909103751613609399342238237027902464034716904274789944964572472255833002240274991896887805584082825696395929373317164903341263220308357422606345463330141822653187872431817772968275449519801100870966622653642110567035187794732793206664102235065608422974525859921030256162439019400207860888990365314933062252139642405470547439078090972650180999626461985332553605433682559385440558385123960393305458338572476790888987118091725958044262369652997445563807983880963448570902797250375986487644547746822308723941058640980989772013480954534403221031592287735051445757787163244401812429797043453773389754701476477842864008366704000769771194879491040479849945638966433863731690701122077274807349264226782871921671044361449512681088414354912734380917731021088668121845799982678536218910965773235838063429506215503066724675767410772021668898647284115494112211975304590456649046491503866816115910260026519821323347411794147508242579466602230067714743910995346892280098295424333129852506800703239827674687128288020039353329243357309917238022211436473192665887571440924424561875218401463858366223654542915366268129533857388632456781907543273522360646169860714221780940602771775013231317187709314378002683009395273811106099410697675897353693343440720389225709111951139243436975084647553135530837523047046262529679368632309864922746872389486295856940449719635734682783789315291812555604244903175223993757040918221615099262678056531516724889335818703362718161870993165549207569933898506121965621417125355640133629105860006383832098440043649568950526893977420527827189954735618318695193587209463361911434629390570353864857176893095720792973058538217405455560619219216672924325015160488009856324448630175136586675741742802070146757218606322036143418401265228680588131569697316177690348633997655410709803744344821051724077971522062318493044245686823860719775520390047238744262471362571362289127302941448279642853010813968921725474158971601640205773278298663280922253045381646692100135737024082750768304217536782762852598956080145959884193994131455989761765785585226079425754461825654025358554600284006274596454263802177544106641444235184588041013110638420185364693456743395642397161305805824229617614437450950870838585964133498248124600526066034357198717369916951118189466412883676523552059545186198193509233875877140002584123809616190453972070182750305520535657754441265729810333834873988663884767995229099563767146907631742098190494581492184740576115812348460724309837892630810037661775706739585211605503623189598410777479435361200837868773621580672049469940968031733963616152561977437578090762154136794437009792630458074104741213785369909263518428524855765791052163344972526135660517056227710742316351281195468911777568906090342382721102536631966007583200366346347735220720862402215519419334163249610631822431684370649718717626780370528707898701089953690066022457927022146054329532469273888075401430442614982986783781779878147229942285690860016299491410851238983957372904221765375362903022563606915481212074870763199732639949095614616472718136896141633661383128101592148727643817103423279708257097630508345516453829895892275768661948572797113086084295568241252664199303923853610752214649114564158282958733067109552907563879074225244654720417823404056399444154901245708177924398216584434722835330359158012823304131631517604470781867673773079847885833601035656193614398680650042909902098362517714971046189656194785675864640601754568951302339221656298720205949190208580866226208024675967685286181864755653070718440578935000786906936658048425119601563142233265681915390388781932757768369712830046844152191368136207983415129901854907614572607897722791135686974291652682992939040929396340527111158390940654451584756714333834234308779818180375210321362062512797424163716438946901720098068863252699035396561489427929476670618299141791437807271309463874092980898220408136562633247873014068291672491077787042540466118434953230807871230117958173989369233007935806038695392318826062045073071786358754922913328367830622788612062480207386221262181943294361381689665672060142418838271885068067350569534190695238807689501758654515850610638956595184318564374198602661150198479561107872956942812165710200197943303534890481824782725785137376377005367147577897158769619102167775769454595509017698723621552249656609885531561268685660089497380195244511582349350401083110995379529339831837341886033978998150334245044645912427108433146155442814735211076000537103767602897988926402546046816578126578822762152805046108433512721999447721815821108283539889696579876941678188765289909688795691678925985034216693773742512172927823838188076465520273080783972335236262744471655908503097446121810200607847807137722042510617595640476203758925832313184149943155040484599265705871489526428545848189425037754655606965253324514828455785070597466883313455672664068278390736322280817384507793448060204008159675676794848818709219007475258110235238506568586593116869356405828642931524528994493051401375487628241361620384252533946001358405725271090258916395830558059487500667169655692647408240766390997901901655066393338777308840728308127363574330037552625378848240736124834914510890900247676040189420386424618380469855954897403467850887397118291025602160225714510509083724373083571832472269415747387549307578493215935987202438863411276444323099546408746672009702529439653593129528540553507695914562725923538749116935900962987599501591243168429732140249202116829037943732891802528147107776944537568133885901385405343301806161441890863038442439111180335535504505867725218591048732565049707866007855218402016525306267268867002401412474776621556614188411169523557864554206762653249082516904280402958239038948269883798600215907770657603519729985156013292213960929083035648464231951055179611542827167263636722646629426494819055252005797542320323774827546964118207784133921294809287550319395384953064318955309799288106433682526039247035469652077363326172420938738000115359193144867238170215876883188626642623753565482634596138600988263137833169701911274652077740755475500140402704367816886687782465967650072828248058588905653247057357578107332126420147907496014223883751000188641230396656608992148747975595483771255358319041829848860558212490873397391877344044289146758428040580938593609558489287832755569703331928941835291223558878678510916660294915282236805770012444755056239232522150123159637984743103957183707813088705425505388822466598294135400703878556462983676424481853721769558855113441588664716080734276305173647373002547047088322816566405971198848146651182940123049578231789737228546160339094375822765924192666891494978043006589264242894677094845395949293487764078096195489771020134268769982266368221751687567859416759945247507264299005855923820541220395865363737395475881531138640733389062887999125287445630658084923274979916214051291620760695510584585576507075172465849808195607426604366304191411957974144733465905149993024483251799241486588664251908733964846945532860225535534455808675077392459147604937540576066159842130368592447289728401940877439929110418953021705280620703839618166040156918655284922287970683781507062913141646356541995793437888045838769783360221297287965272993404971731235714756144951592195689804920193361897927672486542558717490648026858167904636222560035846255858107116838509301261069476843793406394035932046982962986010825195683423194213819057758012562486396688489877217941344254897937695926732038028593617782824736913824242480094022021235351254095531909675253247623303383683075914715098698505238334319509511809476552253701189269392366451846608698321274095821650793736825505112783132529262811168990300535672640133720379803384682745307428260154306848330904491965252520508363339689479527438519125053539043635721964769767981927763654288373317655892848465667656359299356999048855290789647400001818797710521426342270482919204020090116458593298467905465761735001603984125197161418781138155107619079049379320832626474012124832895636631160271794288423610004862234827724345051196757379540528176471074355302815048717542491641308421111613796991486247407179725974125959255276919167910405541526669695423062587993749995083855396482840295798832447654885134103048456029283277309631565480045592617334115966882650294399401517528460080002861824909345692943710070393380707285525267792104039482519667725323789418336872761593625202651863360709425001373757909491550792575753484793983151799620228498707772185987216179844035974671040485969843573559568602007188716234014734693684749917620028870952876342011476527184199137742061707784647692499880500395041782412634880422008329867394553297656874549422824291780967196233740864086040958579184757120183654555280616094753972490664924851836907890858689672696588298257816669979133078120955924964691899785166831593123470301002261199850735154581163930346285388962474313166369642649690344976824331192777238526526638807954552400217775820880336505103363341311092816942904892800700855685743424712392829656217611277191097426586283479651179227656530503647077612215189612441445840228367170268211475127205221508792926904498904996455303783199124585699566609856363249028866629224473610548250172833678108044554187456199735832887939849019159386888473760093648792210676578022081080542095664447085561665094841036950441202845862849160142156342366095452125035525319318201898729545084596829613281177000151560607355991209204569956227585295571805773204365725432796711810926370101277700292005258020857114854141902289628389488288738370164558798929742955898663023293648966969096013112645216678140343810977565405468329685472639900329049568933480070921671797002539860014383577807979753142040256626622149744729172690545684158198594110014574792003569333674478558560011695855873890980346341664838791618511994712711239372596754509909940251053834829819418737610790863102525493963125222251299755961320005621170774042626408167515780116123628130652833816777160223334880533471801798351012847998125034337463611784848856610360926556566680755379155015096048333018885937881504405370261901234807659956411615686014468124614311201752584695997679796835798768869662996828246726987878627908803916766535652400679317323197143474110280805046680150638300332905154250254727962934914485399622782080163604176018510490560589297537674919862807061242352729189951102015481673706317788292294918490033092527507465749372786773435379075417441211426557465316146563442795923918690165326437726243504157994478614717545665200032273974573350568501807437498558650578909894278078730835505374117947090949661330297174856884976026231729688446515067061902722714876045086653101017854427301327041886864669401474462095851856497842333545280545173526093604461635404867096500276728836791758149328544747059454454824206751912245926091384949204782447281690519494966508803067778709857359796132735679401259460952037243197726469082732919489293882335530723388183515178685782953752709000546850379238213750042783446947800559070792589202578880142763845578129666500916447022913799225130142754258635114026463444678752319368195042622586761827603539846117381610993159480595739235124520745493006658831352538373449824098507133369896554551249235877141593858386388027477159833131935220742611721599802153019356196216093308895346392235073598402015045699915406147551151123680931763593879631803908217895471250302070013766410067303957126116007820951048371764738366093320260184082779498833177658022694359924685085383977748320423936522915394454294795905323604211410218106763320097628434768331382111459399936081617543723791276675138024009912258309218782135745827926124150910772628789916351280539169046845794636496778261990334458639102132583721438086777976516270255718535765095651578304935627878695765739928839826125224950912847304455885969548884704524103119866863828497716844977534571878118253112983974554435785487113655484717919473032744184648021796282955212514688719226842430980018852716534624528125354301983723474479825243897332299996459967966552915028684098734024999136909786466025983574655390582672331310967835729181738568493840134848028700635525487607601137832538994571298838464578719843489376681926317788949479833575786758376841117191053375273603533635750533152833342808471665084025161868347085261896351297699812542791189896967871652976196412556115468291930696112415218157823727197604702726719863506086956365396870147042346995600470158513995508096457648696516071039725083476305717884466729116277499212588486936503833449343981642713062748681621750785515099345886803442979281886810590597303005351750127049395645421113139574522682773796937990409273624031677674185688768681239298005408356607117093398400885534526697112213438948391430586347989081405810782712118799395759960907263427560593903244306617427194527238403421718011542159735059148169952476355278756512914965486099152569991418002952769074417951448553231358296857342035929194280285050706811765282683344736753247560834365843251808657083873002247922036559735104069006291641184731652542920770248536308074991696953946502279393274922535090225351743746406891455697316767013931810022399858847563372824874250875227467975183515196139464192784325241768184488595038102498859644671313339454540183260063714363885145774507246656499830924534172882503320986803649352137338839424773218576420900510470401745061761233523638498540440933494049876343986665753771590207305671092380362273809953986137857493969506248197048510306404002648507797107467297736739653817830674326506455574496616276159331705452012757674797892920476624313263678146427533827059009062122100893770499559833784176544927520240892224787571535562260326513225700020900146851872949803877862171903546537844206553547506600447415648222851250158637059062134374251778308552512191773301789995367313130939238053213458366594220855340113202763819113455239159077753795167369737348301694797020848610604200784737965170800588320340885029204195089028341298157173852538117980657413179200326999871160496673057016316803849419900293241891667385309489145784027925107359823089948360053121472162741571596299709339489338417456250501367150590056967341712593883112491602484285903791510224712660165565115872154450041517194746711195784792097283514975397537497071470617863043584093007074192688611514806423693102905187647634289520959828610029528695406432879700147387748172931319655582525619920167480784518656332448741816791235148603502050442047278145112525147902504325360034514940088006834903333587836311395861126701444149098380122772182508548436237316294196593927715179043945442194041324592553873824063701494264029166771396081819301536863260031457075381334502923198487927713300950257439582847702724595972264302368772599095454837177874176295707950947695898408895830988793409601052564867970580115480517364888746307239890451403781436914922409621750219449485893622598476626979614231483840702856377457407469587419232445852446644929207395117336757931248686414849573256889534617844215260947628617220615549974573503169194416541235407629755313308025384399346154418232947721471977233212151834020841076258118790991453422644328448492770352335311286205382932265381029126270943684088217687630988672465517546310010874170420505502811606703859354476395112937120247953777282675290962448571220784276940051433562061574065696520705573925420171630713495826144400003024015889297703070049708939832632398635663468732529711244600522909704549646072302502694824085406587777055728808186975482299905238557394426376353357701628915233177786025061282340609284635520950205706834149649798341382385741772615782925703544314221842192525435723339669688849054566492968348814097521826472770200296327928950412401569408398048866080096259580843592724259076397207129618019849742660499928257450581790792913967445260326168006836682400149843960217818716446875546231424774686899304100858225482889520844849037325770114123523034639550052833907331349477889046247234280555644300041571758545361975914261006042278075892707218280408661567740612544508533894502278054535901094540049350888366082083104563196812872109483230506345723569412821655400113225538873194042643056292575361027849300928365136431199211155602685492226814351921251753042006553611610458464056826817042474670106562565172847597804093423822543928027244072235195011018052682914962133615907896282429981658258819084285807479416368301037777322242502716862773377617959544357832957215028011060325990585368907564754360362676398764291466581114261395242776051202684375677592522961427936222429931274485780040316606238241923675465726192164664195889303064133920086779206174168311140857043011412784932021757546437392507458953522435724906301625179840703530434747265405694411200849677981210351389611738698340872858794398250981270171546200805443828106391915212202507769590883168027111565355512453086610619190292676849645338956827708955848234559756772759319256997361423233860773139836030501444766534800129817804095896660048560631464203056717892218341859523435157829288521582439085318268131924292500876969188061454042294656826195188916612978551477127174751721754815868758449508766155911026877572983199892722173050133807484052728071565717066825025689249558093947798806708999962836161223944265811665706577522274938603690056937228587678979219718522881915352165144860244153668218233301889508412432958845601411523183302699331487259718987237359885665515316935370533562248688731273086742829551471003923345951153314029670154425272040143791261913511393764277573862978549510176192557172302100627481749914514412353649409996109070642672449623603490093386186232145515193607200468650524987313437778060776476054027759016753091814113155917966026495244097932370305842914693905938776577624840678535632267347481518651398149114100460922348569944142649600292822348873882739457186798029103520681110246104874636593970207994618244480486069953885918390223722435962036254272321440529919503883566315558143531824151719713408125069723813945943069572316160037254349618053099821626603822502090632453493695031068439309145338204642907119013896847688706779949387505230729043838464610321832398610704143980147354054989587718587203440406466799426651479341403628945645341231709489701990266042151370890976559389580514507355785579090126393765982636889421043195875273497494328126210048998907987580331643371716452330546426276538612361982619832232206583797298512888260439202670686727454399741804058865622335175811454741410454897094278983232167811522329478702082167444041773609032807570380932294102146856930559588119442856854519613909907503685808106956085728732610467179911643929001889916932752672522738538210421956909955110837170430284193897343114544725907702854221248549190610273500653044692354206444129003352443121605088251526698249882351908070000586075351691628463455289586182036166482574584541399196254259891665721791971899790095706514188719292076380295708705252608005607462524479287345915598800230612027014150247858104520457555692956725318129934234093636581104857225622419213247292773670189381999680647337389498114519879372812023958064941914500784686457238325611079895630552319586053859030137314165366305646273023674438586154904226031370540073465976157598473560845914344995267606550313075097485749740566018026411683915986931272020595554855887509412671855035776388600683993655636417543632081811651267359769809279814703993846236998285567125933253487500851128938494814559500098955881250416633175543221688107363242771535582273537007570703966421864711179329521886360063276364321925902644392895837597207992778919834446125090754912273916420805941186827785520279491592769493309362709404702254052729700202775293941066845130825797549700794988560642452230021622791271643880922750561509575998970547225901221345383547372863125651053362482930839907229191997580611951117439302675706576487775653565621139293292979875575470447837480115442630702725563586578526074084211451793558502642935474509189960524825040617135286911857822411024259661443565007877901108071162370343556943078247777985092811569291665210360937144319602414986715736286398156340610917860028059835879480546239684863318713953762290372150154070233937476541185547247955190626748197917428887510053424555350128089524415334337657446108245641265468161942190948625288069716612817440921297761936692566904133775670558604158317398654288381940924842604705951783777123312587537602481637200912552453355999982196261277485307706286634551852639907791888609007368995496491589749779048119225978941867033605685645176897716935908512283962686483264835567797036689961783656224937077155747957022588637778434188794099561956830802002174844513406734990515765300592115072394274862171013151471583924322677801455196875200608185091392681637485115615821270455450222505986029724015545184449290874228115423291062585054925474412163822874602234803929944835545971300238262490365675153970622622451443512879115060569240509079527103327005709545396903374086654562404025921673823906506700396935815815227397557806132602026385097403060579762614574098726884769953228012822540863444596080557015080832585452024543992332107087145587353421187177469907886477325621153477948837951209643850283432109565553185259704550512310725188917645413802569086891276317114498547685986172563046216212107402069978672378265504716846355998789949752518546415894311220356787271985643202315145851590582745731485625583071428429525968676836073410406156279502941159942322274459385508970289449662213176558568944698796424211849308229256048786125680325691383191948621233556654323559800841549128986228466381903559598667401481599436147698341357224326802827667490956274603730926600559369092575165762875689260127983621057170397349539019026945847581037787684467033170462164115468544623885389512735029214004766630394420553007132140626800564240906987249212001820243133517499929415453142624446905767489152540261584836886522711601180864478609404000596166003271447728841650824705355061805714363095309479023094774437112578659610152259598304736445495508140298565809657917291313862022168772200946126672009035462552866201061246061313852668135486391282623557350786583202228993082560791127614101852248549040750815434354572998818372260203913228722233007032468381894587170429082923337199451839231093123572482180598068048750066068684426006568244363936748834988988400620831593316315187073017050461830487630161408028448340806014040086428393235231594087852403584242359302446470729589162360291364189022072913368125760673213592445333718146595971028576706314063690151256745178466785919768939222476247443200381136059661270298307535117294673440737438379599186307385455058953641050052825253973719113553911311543144464881016812692701622188405536270627303388866148437641515625382182918255326883401063082183419059588652204706435446037325819683529028754597977133428531930918530480478750360446684689536591993251677450676912282290352498952371085051990657326675378933725670831438837366529889118842816952394461639298735983634055310847288014901655723716000004240008103415007794762506343319709122727118319150482505663035297096996992550452140533720420005991214412456880808493718665840501294561924366306459289706902386150572014746698984267005456500673622249546277084145812579700818192534329243073213858672914201655739050869464908838006716089221491646279237591788230931809984372525279100581126303927878254756082722182084175506086446428965424514009049110555687724022264426430203747396110675728456043708318961253310159289510836147655369567409239233745399161940967434838930844215372955655946372600410080133418320430089109297023964371643345019144113794524132599693826960895139622029921272742501767556303909463589765826375438202683067341173916321657551701706790327747978789421611780383187773529497825840931805208960968170652361420589020811625355693497703370165117980871857059540951003133852646588863554524347623528006210263864998162807922632643467066831010511291184204847062034174789308136147887648644690219193634383573445830070973454490561940057790813960751551379064419502207171364872173717111367008676288011633614282990390382726211479976217730383229462952294966559537577960863223181408772590030846642994708767518940462395676478740413445022360116167531460331991140940545623495126605677870816600518051169515461815626973883290265192761124930558421389016644885384089274015178335694600626512593174343351434865923631971377044747260347238356564423540637712600189844189891154878379408512355597995195743573000052887098037092925286297255673503641599696368205116635550104103466752494483331574933647797083994776230433326645204739021266986120934972555643282252215398113339179846013518794498164980965304646083223292659243813137470727110730039261761141142031953965206153712685737670142117101829123323405369678857942539894776099177400757239287254461492139848831088788554945312417453606298845919295096350299721087850295887786999714452830409228824638668026233699509656880713050076824488312663259392239954551767654353905700723777465787885367642028488653801247559659171923357680439460491560999692307310738402535003507614779701547329470419905559014010379474748231816087453304898462887117105995393060142783301980043096041051620130032935913707505314652180328123007500213023543377621488893630420533880582981585966148760453071292531814297752249417503006982262368010778562793132423566381893047763990365224905146190434247505017336899685691940078859546339147961967399404636262889912045016925934761005026331967411742946506695186365142119942875682707467333829811618180642987858939170979266065682106887111300057522731147951158253745569994502016862101366657601256079141386292434468756347360244590662422639584678267322769823890470012157610350061582570225841689215312849563133530772041408363692985255395636760884603121981625314711428147586881943007712650361204514044836918555181045430740325207380673684909520342493924288767280440856512371298784423534409331544371158121353932318954284088917992892218166319405139546722991916465489017046659733017997741140947042294681038927263191102931641960241273666297258348444811742352132934687390826979406543244866559395698853893334722766664035936639361778998813271482734023248538852269110783608061722431671124235508696298445090409130639042270973621704981681282349334552269877805418241373200740762401832360563242828797070046289800346582998817322024033415739997914374615925489818383603160959021051993529052964919136921821932636562788330221600277957804291743019651548227299599236178240033375791731208713670772994653753808996118046907316896281581681996128214623738775814523421375408581941975122713283617859536325653544418445972211936459961908860963125886337879974422929927005094335118557127396779013864486950835177139906416716847555524522587343814644263430677467088051423668136123893776660183468452365177714956831236602269408837029235847789405757940148947785859386326903833049018471237392619936106851347981719878400642773172641166841209093262385852052163905159867216166026604456886571078243361609120525180254094636681342938492458751183347438832533274820822234464876333088358624511239732212347916846055954123559411195298988877024847861885413003637155003319371916856477000734377367499019576730599843374830290066842102575494002022851217761281391840227089935865113069836174806814964015228193447589744757340918322960848109367015814912684718772536450162413824316984786296956736572507649314170186326100505293599230840564331581305234805132569356299809767050145306552527161443893580556984312401487908379071610060417944103772023539784603252951728356052905788222453158987903565709770423213435498615582224583763037102986788936663440829506228165771657025611879759573319860210663203673784965502610864534934259568274644549431127349009973403010394758944882257838979653964761051434664225181794173714474404674478676246464601653777708774841688536126529907483732658612030353485974967770088186453581910669471018269136440859135596470475966705814726820706438560326868971696897586421935742058754316834460799520651711907967304268844879027818603614302014696547390013965275718697294341818449652020420969494236882838919204193673738343371178503703301680997432004342741050927490271208338123153743961074112695871203022737763415533273704610520792978732919788420883991395728733104525917586416922601639723627218032097644162148529990714001058809309700796942286454103710442565231657724201318856445429063839925225187208683046970652479344261954576469359501808531628611238440658310645949971600330865281575461431371604946912065327037304985259741487587879278494978452529804284764604517469863637609684540363447614203793857612021479592666438486509269333787762018098750736379988560036987481652179801203858004821892632833195497473950562680657834087034376121358499032997911877685844177863290022646339130625419128827437455982812392078259699320265137365968364927020603925593865134528254324199607808948456374434224017466174141646275137860892447959944109849195869301366008327688192575576674955047506648683711658674298175220737982810408541237221852906754094943912350023984962119845951093064545735165856218848022340893443075380374051188192069977812697431484952590716168038087378579075028981262664543274806150598018876510746811344837899686584119976936644399361051193468092402385428830251733190931210367019123334798905507779953276917744519984304087014880572059779080255132357608527767778715022195693449095045407981193403592199269376369730579706254385771363507627096811530102712814706925992028306668351353414435127725869547947872082286969563999608848446550504325266183720032859904297694485678437000304672193974131837754143870528771751013003592387437419384020785390467298518232872863399490583392377279858462243000603880273825455734973761643596701074916768341234221466059678900490305866651610237464778444864592448087974901055735131940997058007933482955987956602688576872884968033733344130698420475918706075008632947993123993476639681843385168633482935597639681202670052083015162381035264451281185651744943697796771751909391017433169680215892669604195613611289252898466802549541441751468467089599341579810624822525149948278677338743060522404839294307934424034760974023092335408946530463749091558130064424616525597448852094917767083421225277896379439381079771195890408301690146921981646506757496414880871541353393935660209414208316769041957118780676930930033527813645772029878881956442324917497036250047985031704234743400728287440537588343679371307717763580083333244086401919588927993209661974027341888404110695491253884453057081538633071015163773530174621312314493098402417554954431428710817848285638743659466522447584797831346741053841885079450749838092274862639913115945717106212600835786288534660705020995187455074940262346315050782810677892862082862566068521327668024322085388992522142624591709010109540571168276768216132516281693958921170320533283620639095806638316747185969284692708736668664257288481858576428121512054870691498956647678715357100882379920309636525173835525477225420550103253388858473082592566544431487350658270745264225816586903311060253692840553840717185235459451704634694112746105266966743845726378179930637858214800625810634345931310104645933919207582197397028842115639688965278522875992813016517070286603090036485536796773140488489887069130398191261677984478358306274117149546773794496458072186942726193688390795206161803717612549399428261004883622973220141311384566409541481669019934460311918163943628396616175966147336784022512400640925834562222684601064128828444497949619804607200391674081820565673873612137592561749404677077146122274601624189469222703959737107354963611101705902721398052925696633367655559891789029507479575673695249947882346179077656467709344664388465595110783005077096832359876499379834478876723533798256370239100825313632110715348118412452456391922422509918412456804170594977586921929045632632042226534198953521273878191588256573051967195824081249520329625286998663883177037938451503370038035899231534312665897608017786138385767084371929070230939728627796535026002329489412996059748924773363799627860546950456097258236198072643494013303137245651538291551833258885259905470574753137849173157880915111409317002763344493832041713467681064240116447266467190650795183422235889199850595145866287676210516667842802750448826141766611327760141680908258018403942754870614076907534484398973027256868356932442588134532688127664802965919864325699989158312209722200024695702426569231841645916572802657805899771552564835534601321353406396051260199263773684364184956841567665431982694383060325296940976054196328488822467913596889930131885635216977810357956683778162122284045871729032799159048847700823011250827181863727071236388774167224753813599510710947113195485385263566242310642565056608194348225698520373101334047857387157751292433966102120441179702143785449380955956682037533989425919584381424360366698699064315674469885808145015569491642937169728559927843258655519360226785301532669339256558546059839385213925907957932685588497312886787322376326160619267931938966407275131354853779657085725953194615163060992720561945440528565159512631830240372597665994433422919818771358698297386391844986237084384062578366917554780933572749644860810963543526261714054323096391482505223516462458867453942655331782557403676732070740558664321751175084767917802155800651438048189704546300172508068997332815040032868789079512249082386967049132906818902609864390030417350537385491281052483277698426017295343805230729574355599656723738277132836133151277119374108735219680164691488205098456339056432403882139718853223633740730645427035219798172761684716466972727060382867866076898195650209776151357503040940044550546911501434065394667427508453504571552659559315072801772906976667735625671324227737153463059835464917857404982345456357680341854441095429976934604434210869877345179413699061669969709098862386890047888297303975530333950127683471073282406500965558328877741661652017684415362128589157899856952356476202024918089069391577938970087963264511836295772020317943961922535010739795572859806683773488181420974164520957081403106403798283518077913906073775719298154407892258351120430625094891230200802709285689076752731779804429148200665931792324825317063411814271196963865235961857395160297392342100108963774953187049420419631187404029957464661184199553307592876709821229888878737127917013372392012306135436297825176311523570956758861846414114151879650961638387025116556755232120075609095512344051247164879633881337609907556957319576204228159826638583008780677388575987881166140617634885818677307617371777826130036250615331024468784258310086318406300155743404708357825138793635471733188603943829964541808281590278234665899716003727467624289734036854049411209543453581050044054651498894815633602592576043808479758484431049900223018183424164578536060472799306738861523695981786655345274879613349571331496685051956125106941505917110681321860186764975304697148144245246159084785860779579231524023681522355009767767541391169713715895961728380797854954326772655795886879738571066830295902048461232512565951609808170915890305620224580177154732852937159037709579440451530276218203835517308595256451164655924174370126041481612192389696051483269321040543462992043639705596910947398284600676532295932571713931295632754830052466671814932359862275354853418899260891021630343825487208402823587641537015250725509016775501275987268701475810473889685828517269581070935151236612365945282564697500897143641367077560674984386766002861023450356338338257908613248470572952354692080400426791031413866140182679293423497776201649849908797363013334390432474269087194077505862815922971767210687247979895047534979708803613658922343400196040868620830848014720673914510481210260121638997047619142026883542784997902030083362146119845872164343483305873921048470606208261608060248968673580112883967398459468403547698181676474631375422649370537016777847493846883060513056196375568967909160395440741657235142697251733736286474346207453926507047171803454162873852263683059567038579077173868827345666710007027503504923951164212188257555639211956802527775277034376947457464970098813383702357228287798687296013620466054233273009881066151087471839519729727382277439889497508040248477521939477771289718369770554184132786992555158630346190826834533402868230696531825499975953635149023228341075860347545260171344826345682376228576377220104925064241008468066745774375151231321117526359584723450181554795513783025193380505025950555613833198738362154570807064970204494433366974558036153436907351353614528461486434166473332578539760802466737034565521865687741425042644617522380180690460899702932640841012279417813381619490071761476884908310989926541451005745872795817072007682806711385018009813233077718375614027768757463894384167649231019907307726816325171380649056404214357419156185562039566217634970234326451565176997096835964737029075148197418574669764697167406999368850529918715567673663918314468428743801198606872041711133357306230827674769212228729644900339761523095452894424867165906861936297452217397965822143793394332144957664513671936739087806335865206647956832338389202252500567025547343475968481865998035785629459034157149651633644512394888947346487243917904810281614749837686160438384381354489566734426647981681393695378412260136757073241578658799670799574542198483223036972278680932316663733496360385364560988297071443869052003093697060381863455723367494658865181407022690977157011896267765488750136573057651711070386511950494329407790990881667478167680432012747324651228677464696412108591721914545207764230471472481512879397516981879687970321246609793385878168485371960490003522082310019988898223165288587948844983553188104580754188987920689964417245844222628735513205618933187664790980653662242728253098161013911768095149558337961809023541174998046390657531705959670607841155116062357936960853340465842886815983539773410417718278076725722159229441282098956197632479919844485294266008646429285694248042116145137737659368598726337214115063585071884173990398034161332817160988018062530762941115802940105909492244513436314390937140856877635252762224119507478751686699511762356005024868059101424226335102758091494057384945327587053627466917962949263935948657794935914984937808062992924065208088117708075705024302599519094559661018509480797545403364981309230272713051751997376519366018237409087002649655833491275249781164791955266431577874539366141029001072209313927942052828442137349865336517982960626092507677917343254429312468738276427241361389656622860171611503420147951200175077976676877997322773528652079239249631775934790913758922572927135865043045522234797140855248390213986209392967078381096955465513815570440190686865292992562663672365206498374296643620000480673625346362097913912766971585970862581363344424824044214302648911410464549698835019460267929364007980760713555970337631397095194919768204958532931959845629197942057345367136398544368364897023993924819884632851113530104596808182435536811140941615082804042182195905676948096499797161272001255698767264864535857340912529933856576247625421564760156116793816657124156512599647400113380471775558896463500789804288853215486868608297652974257555504721056406335141155171247796209979007226378045388752541117961091021426057444509233560854259678928358846767422814686764512554635754171648193916402705557446862446387409935362219192176492075343034989336514403474895969311002435117417588650080787731154463897222916632512550662156369224531388214249592783956616088555201874721301993732974734262905478947475393114340270847337884331225493814940333711804940490530637648745516301388244319420112404847097361994618569864784612237674769932577522998144473243035015744161546468660894915542031792178906992189868857253702890174742025845096147346887009228446230922264983249724759239403490334995342971593905582820647914615300950797784448911009382661349393970595408605390984575453687517311676544387526747810665497660200641242160418062214009840465690888109286638863698601993184536499548282958887737283608772928524702310076776248306545246831615759068878766560226971832795240722945561938756107153334009562854531601245738896530404770048482579672383576335316433800930459884670167575168834685818177773336644182157205285757299665103103118366047637254560948163633916225544571890972756544613073535231564694050985288501191258394518265032578681649257587243632325469963128977659065015943665404239880787331346715390922623687591654644088925103188328045827403521870526813750620979361270161506813404268207924933188201947268093423342967941658747801896354928464369568478301497317973913819062262366915710637556581404391819698303539799679416307646444847390501164289615845062402122500955704981947769170831869669369793491860321792901029953055745209599981216889655878920364225396193476863362139592452342354650579921068513584173227001041804237371308444960005777120842362383622398414927817852404452009984953761886866772349714481244715876053045159224752607429027332424600318636333655783580218651934742556436644739176519045673254945615997362271322266375403527324015405890340876084436404311912240035135300457089555628415434164722567174442547075627791150158996769645600686740199655219066138740322422545596452461066175296944653151741891165177435542048908739408740655397729842262381232302368712170007686722117303237685735781584104754392664413488000661456216681438649848619059199723262699489987844116159134170124133890850636789578033472138272639352888110818410936786800995079944972106237594884847712860570601417634558405999413922108288786609315398291052158517400473313925312250271935028176682015378925623365382778316492725681811257854830676038417755259148970198693524051569250572823942816904705291405985165330216423993543423829383083710983324249956879038703486110647876826599381123267405148601636984878947884253085168966402313549004772331981415997713712685084987080151813774503108124039691392960154446796545856692145862928504606131976202118845491344023983698661515435072624318519341647633702005300843575175560291375651109121911675275398047040227401168054860567960956394379914950390628632938921814860395326016093382785503732897337989402342127002033829258436641573757669986256332436775424753098914241793528075337981074118370335481602632872694348397047909456428386042537865402319378821001368116989391913990061150742934690485490898056127526095315787820621355056579420699068905705628806233038098670426939368227039311254136262286080599923655494482401867414483765196799333120618248383635711206628335103980307977438942455745789602598137877697174932640220187907509218343010280993527531247166405930005348270922559714333543375455383887464918696332952514619512391494421043446721961527835103231744334216880814490323560162506775407385274532112212116466239333909104197095140442791045216324602961008318451842814014603292264232657958364310903542567982670558172834703697530345885515820653160896416336738561568169193526136040387897299855093901199613248375881366806769201130909551174059044801456520373027071852785820459595991886670749111890060783704587516896331682252074137242505594734605938480405974135188798308695560357632055196208773506708494944831285514595850008284058240038158144423605176307162141074702066330953670756263194003067361047734990401240141173194220390334369719983093617245059494194557653436352527715436177884506441831156279309645450233271206143597229292127610519691864284351921173387739126916327674816808031980783226854179000849058117986645967210108807664027136927938553743582464382652990479154402096531125540710344503503310586840896364134034188065499942043240020949390304022673652446023174624351108404003976488552227790647553325022425938068632867101330886420028464910565419209970958723071857324680765266174976296178042705920506876703424486119917177779274838688695381481669244187270283941760322086670342486588840844502401062202668988815148771910342750698285323722541518722115357663993200915315261841185581537484118441540304229981372804279432533922723238002876082828529046392291798953382839436736974494928889753279707078296510308011364495490693793142777193682420605230366917536956971412121988556275077327513003526969060767561994845637606063320121657265879579776211701289992553702374580935278518990253241524919424802036699418639077179537952117229107442801062268687379255211576808300923857964654189685936492184710203476635731388126914116983529347228744569621425782718933647315718751443417561428970253362235661660048960577740378872554017873950190808793130630324833033177660001375488882556281129731318744774651471081894583493956211404475168325116310052113591793644040476767386614212058039014028960163484478652441183410717523424317337908544949870827900764700979486323115306111903558082580699148229265304210629766807865900513534228613838059480086969028913660517063640064204473229109751343005467043230660874369201284155098107100366138418024248817336001538290672202903640568174124644813330389194487450679392519030580846611530611256269814253498736893199048982802262090419965192361090995528505408199801012758064949947275037642390758450090700044102702849807234653213099279196919376845305244356775948628447670957834334922454666887072387779045354516731306139875234175505330768456640277869882836598861384681413297505093715354830931677436593070910464050140960335006297293167736999854073826372197087660915470969178765711307236857281734637633584411447992561525657446445246613950837687321074385559909816028419339051594617263377179563818016904647633495973204485065457763403274486037251774912685924843979806545010659516291331928663356102310422070913010175874272275297857736871719477756991869884497738449706351423576553144295841403126883653539723874689020380702585923528626319216515898070215914053431956943279623581799779875763752396759813198129189481400662816089856354765662453830109605724210232645295324479858336516096380259100929104805036302260242154767654762707870151071235990692190316851936114888660197486731548131436010658439411494234087083235969173829228053471114318732521355094634317676990834805234806539307684139162897002867677493243371590994135268134131080665916592497878117509202973449852694226545057688462834691019760002738265828146083196870684984908927892374907718291639456630824747943585015065998752055592126840221230409973324046310247397503048406972084745643947235856498541626174372697853171779942384833978116752239515871696871542906827277853640183072738470745045095420913329549776579750043252221461165117800895881591558376807207677137587137979023249566431481684930336182878450033273255178499845764443786190533641944659998427345194833279280158631654397144442779166719225325518175080034952028756297701464921659132184864012766861016288648469044469557622204439666272739254887653725705590494938179730500042959260038740636412155611455897018255561190852967034169906273233952635372930675903599242751956744896562637555536521046439696757123841511723412035733133216691833602464721030616215589534208056766351206081408801701717215924018036953099219643459065409111764086584794466609992177403497998451565665085388711246215400258954581705257097713082424548434568855402720041835509785447537614608328883879688501460734562551546550552434826661007449616540471333342325384761974628884148713378043435773359955957333353688697872679944980644891984352338662360783938889267154663312296612726067961497164772369471272757694948854210912234248761957361796828388820028191504001413882664030589627313152727717993892608464390725351663339204365240994425523507786558086914384656700256480374227557189124793134397441888704431612119016797731369062370861571818706106440666897190396529713954281684692379993568790466455370357538096226582318280942389623379590632558248107173250433328333613468176420113563807466723165089535569116883973173334907636636469220051602454628163500457273606733676492672797629187501142170368733132580876585120168184421663024061075028986854108541611378783149175007922116507911377398783716305967950535520752734434999746440812657918117432734329271934063562384836635471961877664228935764558873295398133725365588522193766426639779979364810702979684840431244193756604314827872637800062164918507369802981578521294763498427417587417076015788753479295553897696918329283388547116434754584417027467527472766689537340089522648404388787650230130133238902578536280277190360181522493163843009601877482262158494185368704395460867801080962030329122771413233370136970755423579213828098378006406138117352168211159819476862419400403695836767558206449128473573746100320396667219608875268320806333791726868869343748355795210705834521286573018693360262155943600205239376047335087212226838639288526757969476309483781410985830273701827281763086434089148733931675809772408151850559220231158818880533222519415286327577579418932406494158572992189892280927585142532193281070952355866036133780057329338928643908781536335629582123723863113011439393874012565585718541197399528348280152678451284725375001344042273987699227281499614258943174007151832461157975825412199347939684686824484047485072100755052169731415788855981367784381600941734370812910173915554627933885243794273515433372796303733337371592992404537288852378970070487241353048825353663202584335426733872581164649224245316929802866917063517067946753837893790636914894007975378643816967818424685117258136341866276303983185180613974390857805489416844405271438406418771751285228018815838478616894620064720444290774134203697725461086091988987966201853133455504671951604677826322608255300441791045953327980492921216276563768154685655917664695160193193143975540904596623978315901847805318989083228799430644292912030355469248770243122155475967252828390398379645477308833460342456646875136356143069419073764967549141123062691417077694608697335919333385842784540017269498224996000781499577089404892082000945804427148661208847061205350704356589515218510294397734034426211082153556456293216377262716447065132259276192362457742950050546429913654399425227357464633536892612756364472498917201436256069841898713471176780717840955006753744913063914339404193183620133310788738111886272292189151978456116347584558536602256227469391316790323172004209496535946361209099899819319133344128453869449296035452610688610581276229073479961256471380160481231539065512851808859299028330108818984449063685918287278140915987265072557554295748430368723814889958784183098271787698001547654227108413865173491728239973500111592629292492520725923042430254951555244293720777191355696440722122992059907601444377925621732770101146858767584825790480445151674176314342927653799559019626096457503916094161482495617117617460794826550326279882944911476537195594549259531550024188101026380483570484591426206446060908355776920269659036681843087904715380541546979089819673349084427995522357116234645511699112016115926380558833912110530913375424194686789301094163974081401569591589163129541219755474980324914390731366158119524693609390965279198768234590260461959554050897823698826527495621286872939228989925695520379658250598651572458556563043593996597073971887799521887511489314391531308478412403187678468677087088870915622796290048510079159323206326667019798226378767414907675213693695483376349162375926367436508271301249650844962620653854698682259316170585443918964503813184230547520555083470023289078424232888852407921528567620414343053360888444811155848872600632578855290669994718764631251480213740028121642546405931180381205214867120361863397446509228942311445984429714577586267914105441059653430670399836266265603399027624826634699146975208087532599843445124155687246908948769140194326788720627939069948541317794025757261807933058107388317258290351474997930762683236622937066925431471415857795500307720544653625795246149483035398856328473507921591194919024928182732874677658475322575918966490629882804982087632122394923067147961444072713859672966479915413489319300673255695253659056960681117536605498053176221049652533372026264869255358512399492936910887477921805630389135969674352941777022725080720261202673315579678717277120554221972048198941872618587907431670400384018331047797247540601471985488287423018143812686773221437449381300675974640956550200482114531634719073876136289185871922349357406039928135922495378600607950781724906938736946633079186590489763324944698832680970144680447358120387515314896567116009990627531032727728599276655720467725223011816922995172334010246191163980305166619694867495203771592950469651431452025042900018681557433614992888850465391805396995371377156985799196217381658579385873755680475867035874195255661074147402142897792757599066889172993330471102494903411276985436501915703300962405874154098372443250255420043121308117136670497372971073352866489177949481033178221404587373143809319779007398142311855312047696585113260917078029776896115812856853793546705909159413159855355694427866141939224112119513039622644727852179621537998730936243840990179599574982120170543032279736602055530942622797530847873492965855850757302704827286724650312565621332448068164085445542960015722274300625434750832679492953256621077594026163447539640254972586825665998325739061826896940225179674190811670299163293757696089678058298663426909009371418517922047575186749815453796383132156756893917816494549492074343760105598054201956233207255020800876096717791558508700175569014783711293814091839931313637770009760329274694805675529105531831554224236495470918150735958335084306074945523045169835650263959825534531494180436803660511261927991637778611099058430017557629421057234825715522943210856146224141324667638891245919150329296824662515014470540685664667110691131213757201622730374212391358935543191048437732001416256304431144238369620292009653054109505674400199439865452567287516709787161420291258854261491789411801304417822378280693195898154259979506453911979355495940192313559225452012231426694863696511497242821456182968065057713385609560477414198006284452727045537583071017709595206025903641534307016864366823341469917299418860086601949409251234431640736974610347052434901857741548727672934271646723889499416303264716056964875704633205705982167301454286422839628000344377080609842726473228668387261182423848428641368222967295764634899133437994690003560329653608886163376694557368179000311553754964056361929067377086017225438953750294668430383475435098612761661954220200454901866793084257303828364060473855221422006403528816355633458444160558497803865220708526245407093627475081497760522036788268688872047981704210024664884477254440213738191654382505730300762956721293973563751463464530844633331372597112360438814688513658381463006652505092265433420316171606875251908628730914775508486270424275715194281836847830786551791673669810225180865025234428990555874182320569652012914832242792118162506231788657628391668122775107007183959324742148206346877782284882605828902691023395297914458789988869963617702189832304817477076258456832444704145531877782898032030913083418835165454550956121011382894026779374237027444508364713886244963236363389416533851386189714511929319921263663414368873933750723538288808398975896998113914037200755931962295247749348170258664758017008409319097378976940575668101467386308821244839993013822353690348305403653616583500021363574226207493114110976740501860399974561800596142610351074631371940306783364997371874847712901018962927349315416856308804866474325606775313035234059086724757734546086572345339468304974049418129652795720783315096977627886172177115856558882805440493864296804017157267291290476094251548180421187946463076609337672361883895830878545835119014616641844095125468256078453884806737142846460144961570145281403256715823975196736680679699434680360000763176645200160735553175984387626042409359890779020757788845406648345435494084273273490223131793712093955266258921913130155125192464096644189839837008116354973574487614234279911867227254777056511131501773504151308564296203859802885129619706054872924425282968395416087586464411201116670101723570583929788182086752932620950496650076974654077528153331205045920122521592317936581681827687591578144793928828391686190800336637272042949786168981047278995076717091603632399341196882677926828379760073893660215440675239823344108218109566048578124353387283920620096588617171757582249311637473971226395846737864107037377007446916031115424545226015305788251291290341075946350873459368888395116051149516892281913447894468978906745097074250804327483646358418336058463846011644170873287346857284369330662545964455273313361711205371374986980697621701394647272967174644023227250712424112688559134061468285751507382485415091531796395396160318895875953297471608747685270630991347757991883038936588055041451874442078707196459915927549863004482983765808134049136529368777295378943066502523172544507282442418848217853628844066995720673956320597621644725715452850042214983421132928491632776706145286000256616434608745256999834656750384300604045802681392763397720693782664546463347605555142439307532004494127040141434193305118520127829249232152912010617400026080384382084243461100518472618584627728478057100716728404078281899277150763882164172503233040956539590456367600115510329532457915008634092530442062482924948727738869813200190177382139686072853661635998980105183183786755556422355040614022548488387737780848711438217448354667406394468208878970951727804665764518101829522774107027130085029162147200609683583032261666473249776161863203939283478500579824566084817510259290199428403467980535780825635492607901339721821942167382893496498399589593501293941067774391629754033608309214090165496734754475886957303378465442731433401616451567743222293330148852517362797748453289721773179769600439372623876586159839865887183817979887677372743568781090072654709164943831634337562612929792622352989393896163636647417385970576106492326479557326473815405506872909474808038836276790691208703411058677448339976122639595791625006467993431185689411368514842335887277823414224888555791246039657695561835243268112556058274299523132706281684373298789223950991047875217004584275510543620083616673961849127988201871398918106176498393107365706225749189506118979321203876832513935875257172600701836163671678833999218913403838228900396576114963162120445342198796392692907353088806535386990460872748052784448112301270670486790854668676399605015847247150705834999716917603586031865461539186758120081013683558457426996205025285333431330786322374686231805354265690327349659043099782596352768129861528874693184447324168399532520586570162980093463333423384113497105160900077418036036191999043714412596757484180744310723770475292627389048676528912026628307433865100852616481529791561009088795455465043395294162164556818448827563239131341027863090674606159517766034057393080866922707029854060654857523652027490551738956900112440551225816312215569962810833451128667301258729447005517383961659570127366313140727940184976390823631052235389825231413246503207383527229469289191493863014740732130473920607396557948020719359553587374197898964945148539156229447777870013404986456010596726660281153283433184128870963761872858586421244123125903413924719878676719321029730287059753712079527802979667382502092136981019489222690904767194542147456606266303079117915598804672688826684059283300312811430100073569772510076488628681305070610931546772988321643057741767487532508446403266194041074645234036721876049061499427913397323394616840045915092668335510713230060635820378242775636280970803670685717891905086930723646666378448479062290455483358163268606376183974636936372274821447004499933519215488421477164640699107706566315700592298405120133318719063640634476539001571559944288248185756288904453724478545698652258611821807685214253243370358140139168931523898563658975711769916962411160202579686367969954159453334442007955021484298385632619749239312989030807372168752274019542922636424760116302562015067616204874419084299466111156983082058241282574647868249427854806555580521258276319767000381151444217353604582461947343279802816248989607201633071170556093152220152861203513415040649164284547697539910144248124563802007187854196908193477676139786975470837753661458383420158005952067825132670763163002931506451597862567815917754390564273219361231956095977325117494660545110272045196389857833507930440504461843440734804249522734254282738765342995451170945265836866408827377367404843081744415557090581812589713237105495653496165036814751218458684357319200033644151262734195068081367313077518492953136818915652997500004387909381515749635862010423925110797903261345940608408687307445022969797278053497391361553361625563837244303428051726043760802870795124435052323104332419100915798833053801250502658805001996919936607482291815567032881619212248348651052070428583708411542747554715484353896045377057458637790450790208095471434288379835024696528222070606459263975034221736479055315289612784847660134753140244596734364866545908150723153263426382410829384900332981406191002735252643333382960931867361827804431399896479981751685910262662003029197973833239158853685946195054752132601194080716181419648110361714442029229830241012495656949893764835402758503658635068340164369582309280354727141148460256594820244987617841260921377313147954835670718987921230504604634765796784986100082139323486811585512890067239402063164878810857438649205674344370665639233390136209083366330514985830846701035656000577986529054137434860586800781952194454187410464534094492153918279836285266218517483010169562278243573059483902214266351887104447597418511003390469768109857052529734839790630969941879375159168094918325194518876378516383221963644476637051472043987237805790030374336942444531044931193515479839050949436658440052155693012125847668293089205137018698216617491960834707960495369825418438843634171874215086996549560195560865870118526540682382318153344256558883180379324173411080879497389101435257544352988110723871598004665066351706856388881023676818371513194379611152457706896908298441006680203721965980252989302106642650828097209429802375327294948530183671378293588840928176229743817982032598129792179853891931649186494595870684896328235319264090173295523257529765831526033359575503903144224786230262352365052216827536860752369580089187463841920977855637957467394836491571598244987023398357579135470320295505584716757958261615525487600267811177120320745336857148596415226042705132215003721977354686922088014375580603800582329761794470320392162213898389323579052652776546186960975582402569759525439194436769037665880188726710938689560423438098066786313681676695111389501948865702061198747628552339587252507109421012687625768994451822163569786435915923793326593936484895340356872359219853817953696244324503501825068267180762489910924556621781425418017487632649620928199790539686369032808864376811973326179617503301994985171142816456757181825841243545546844883338236197829726216248027150887859646589701985846127758954018697174338899488952239375281265079912616206194234601176217017917075572544292590510020320124598593514007822355583260507510676820713664023626119096195271808576145575594142932065469705651520684450602935329690305239560191796516506763159241347736084916767018602366598801490894584897672839202087308922835173880026667667760219085315106773248683831446426258609369050298331169490395546004413002493877840891450441157863888946532369661833156200478991419247716883568290811666341990540872680059747161350624197253522698431158904527347760515131225217099490901909214140774152571900941448180232207193789284093713026997663107027039333341723429244373100727023508942217481671216712208982821039286920459686200881035590225367201844992421711599638179235831870126934105243023199906924489378933556365538288458644578426091242901429219699138555632465395795856088233657567140659814044268625107695441632652338230882872671932445829346850549987111965225294279223421010492591089375692077092722950478818715398865470423305999813347603457921587224841066233414127306757419461158833297245420877921455335622325300499522404693809499616583570988552441440636896982744297417654760002313374163060365729386899328154707138962862251453652472245656516720309790179748330411118273833855645786771256242736668729974981082916634402485820368525045368313773180455124776269300471954248347082523843519756590682513430181010438753232592020454175531980644215930983216661926239657867253484664582144935941623388016103790472945562526111096292695229551042519324874375211108588654603824790923845081881350799326465280906263015253312558501824826795267445377054667585063295139551906849750587852256187879577057808906633802963899091292736653560278852732652799373779707753237324272937796722344912786803435892875235657135191341556612678675849573261457442275851275512544441589528242113649475270453360944494464548540914973843739065722837413607008786677933484548910195707738686987792525941495954509046559309800268122832848890684823449129105840455374926512562172695201339682823194605988027753018909004728193168368846922239029610335750052476208633918284469451437534643730318875437333728009690316345067576263825469956609170118625968660093334974889990396895511813306609929799669992005134330072030888950035357304898932452175776962653553432093515320627976796288593009922611052169526061364315173261098673470359454615398860407833332272925038372905239560813054269451625061357137202533278154516510094151736566731987045439754448852015349548794826360550805557475689980282008822358255588779441304947387442830785169302403507917240211204357623931426771905986927239428128983820639103240801531908043421874809891766424185013020732123615276308843149999558673615510286668757687450048510167902849353103548796652316844949316850178593520330893079203132629775511766638885561989275056235132236513602058476956136441657359444450884330410518845589477977775531839940665562365901911055779477235028342457834166365141992094398740333514965902673547187896715259304021556966453337050359148698499598947763926067400657171829094795975627703158368879580784611973643615013584069968174188718250239240151309175432173422918231088245224883581190425241251252104577317726065976009757474672746965180871321431030943096950239302122689187541500746543943376390609453685309254066249597156842384158620644539096001703957442929680619686241566182346223355731242375513147502624663887342902388376290500595607895120099631145308647604941479690427685665709085419629204152673031054944395186515847399632049486775765104566408118048007727178475413701199299918010000853886280336211369987749746944802431475630092739351417289843968414960556824321053815671696698297941414707786101713998382189087030922820683083080967267845790665223668764332631979842721658167754648109209757070971777689019101603027619590918002400455490508009876214916064887651031229469148581381419942284872276307440367547492157769918961093916967422474456149253950461038322651918416135925158053055389042060044983269588917899006772083191532091510929591096970478624548842937523061570022306735436377866899981736797700497102523857942965169683049472067184161877867825405595883703237984880678659803012059935725103329391151939000816395612112518903653362393392580096186764150621244330242615884857988416777885614832668331696946775625287910553732434124976688264766437900505785110251988517021389574835416185572492098130823792918058816704959810711710501680121606185019184075468790663206210138349914711878110795468060879904870803803402182561345339632398820100813077598792307121957132219651500706647259037495346518651386357069708154348453669696404425876208510247834384498333694123775693870301230501799704971653970787953072704989389373993691235026863507141252617901557603655671406546736746900401991034396881727567356012399817714434962957552384880256281635271361212079703289782185578727625444730952451279126795616110164311113474653410441119904132278073719075425305806855283067381517796155838377118927515109066005064445053978739031204804204950571302262007297678986818351150187975113458236754320097256121337667449582798546293064250465036577393894665202837398867750790309973211517509683862954907720257647826381196839345505945264383671499204088658736737432153586322776785942450114002918966475801955797898821588773671365580212837410852384385192893716619938968286485367171630242440068727520989870017755729429988934118248685593610106737332153380781202784689324765043247452508822208429231657665034073054613016553658464458228613339679581790649112103304613613703221999656353635851290908527445043103872501910433546949679797478354087153617903232306968720036547140220262565686684982120290541655292329692904511202306866881452382270347652774063676275721472146976899888794661838645239000762414756742201422144957689283187890394881607289818649543603572752291977238866523445709168150062805353202678873106425060895234853306069289997194958577304447977863912128376669472529142949066467174310413595128920742473533570287208076913122329224151590856612613374924606434280653528305204588261919619860192159571983368540499783845431886964074054556247970613007792921402246183220045861576509553588602434726163969591319074388038251464029315474535587670441089890487142750537799081574173740306782989516963135344016772081027999248306362022017230935726613485849286574159002233754317413133645899010498197099571902631445264411908070841140189043183416654686491937025322341357067198399735899558462325488724956446210677534842659695970310100197830850918578101146790471913522347814009019452138969388118245657448108510418624077859301042686734860589373524735305927264822996652789524330184214593147723450928702799553370566926028649954002999386500060891085253340457779249307191352160969459818046295882638179041208548482135868312909407063681801223509170059911196270879707756364056450937579230482715900014497796311435715046924241819529573015040870341388125477298764018999057882439184062607232169993117526378621543842294688569943788400770403623126588001476453576941076374169476342716760523455217807750319211437482474832281006206286030920151928732218287170252321738622834484377019386447368353051890359008121347324548419813485262748796393301196875994284674175575735952184416500380970014892822930563068422324033370997757352927142050972851488981494750086871375066827334119796266046888173621440235021785969791441588739260133316651421074218581515157492558730457166556449556035985959634136069064374553308108774476620192367028419229405181965371197157624608809061514706360026534132400096548761544239282496792648524081788181946437027704853125782905741880500832382573511144083130913583340305996563004133386418995479650432269832084891964864291682024812440908381168464544078472899490260447425439705035117614160398070395857354494855028767874081637918461236233145760933294780029557353312328287747341524034935306965628388520559919118275408909296074761068994462870818821685876819145777661219000364829297897002015773219678679459899174717700826380457997073930878557744351791279217538237548273813819463855179873896932729918848071963430939615574206878847208977159891263503889481275647618705519186621750836504077932356075733412939797338234978784719206850675196701305316563037127853720454943600603927163736403590695103265397179062668277387708942047992739631387174651146383417040027162333314719711126193318154038773508585870308913397161082526769762423460769513596665878917403502729225784847337135053942991651554346419372084735211120234018704087544211322738306641395065302528080188258790697547503723992033524917747306085293294449876123132823841326568187496216646451603719423476703293212335762559717602900563498197901041710987953767325151166233670806461968446305452118336596524537240544443301440452432981576522085990811841564936794202959846665026711430797094922704453635424498269875355968469863683678348714059082383206145073856832646293497012785808635013335052376392262019093083900734944226632222614776415377249260707527542442000990320723956343942289239660502148995307552173076287772966369237069999324199523187675837884728383253791443467664902250556707849268252675067739756606181784477032891745459838215596397763730461021160084421976149767363312588933548040606986068244906684038038025248961212579771462390248512170271986046409800768095228425778313903276089025856582491811314880747289088639557490680015405122729242072977372339160249823293649894378733815648093018596504870687011920941330264574971559724574525783625942290440937098877303903962322484684021626736604341865703793197897265500750376573469267352171591272711319538427521245681640293496051639391922881326162746733770421996943423831885594857193821541785366792709358209707829526108565673926308717946492206559910731282471881755748575860161680253277499239915097001312837713405906791982376632705599541082700925108221887699339998971257219842933482333790289041815033703545595907887519737937798791791287028734042669160273517163994591665199986881808686888498022836472154748037260534086864954559863323783008034825438171900552008748872372629154603956033352567220952284749239963009506401957929143454912971929771251308029295262803619070303951787584720737318406197631672213834200101771823305809218913303803474848632257093798175658771809125809318465489609812530118448412357365870132574020760387780679723010169448681613291334841663970938578326996477108665088311199424509787700903855755878763220343881032188566006443520627833953609637222204363676719993179215080057160390679495804878183112637651341434472574010628259939283237745537746303763007920979069211939284020951243618556483052439927955984650398519110787782833945834087476713095922034530201295690157867835776782277384287790314325732366524205606693732591209602144874915080264944633722307819099415626493437091115098187027358581752485158383138632964377906528834646371795587899502024720270133803683464335978979564871399230196630622991642780466205273594789832325124473948854473442700831515317173783627547192591249883870724071300510145421924320504499048033739796180156283386931669906936149574422847968211825000334077062071652738525681522017566452062866326791166554476153182122404928990396071191223037070545930923748094287611142777839659687806757956526665996956901967071656977669329466814180772407922720417325872978303853731028475466377902036485211007481890810294104073500221734991049011849551643640944426789739572772671928552604502918942727461650569579945784984620522540517282617623657801448726953851945839949675239270483379144018315673496692105292546662122306248577475548271903020777889675416860772160734724113347840458251362917282240563387546415405286273010189702818128043886959451740701245755997989014863620326183409362252561873349472267164636522418681308339827413340740647983021892971712978739783265456432229736422467952804918621061410831748948552098096104999871684793180089968536100271744576134823223830010267089386026414246349861114269590332262605908143584440224976691564763159855373428632214909235098990820224948375293062529973069847244203389276095021125737976445064736779490512559833356179183309711343546822917167676566228574104362005888357031156207711216556028337674075600315239837699844420364524326288042551593778975718824896318744645212696381686407715952474598503718749225188279703481804904444630030927008988823411785744587340010054967034838762123772380723356202190465093584572977188673372164071053192575876282729879153639961473257580807019353300225355370217897367358358051355481511281834546264525947830540624901294213711849284940086144398582800447403838508355272603809353771458134229449435440452979156199801738588930866701197005517444066530792588670962843780945423763364074307259784680753979870415169026266056991622444844181139934252496169651645774208030554649069272916074752343141918830098101633693483534716027803432646857500824774152735822254909343393731406307077210047041386172863538555276047477423207801657041690047900073998731144357566898138310988944109525154142123390637509985604711490399857623253024492826846186161882364781047578120108026662836732733940209054793596985662104016321376644413461879435460408408994170004588986523142828989313880415834372654786695128587459015394762024317425319742228077376888761902242476966374598578063358454902246470869751458331164636510031999151881953820211820031719562632769856842867181698356094894935445558013420949584527916903994079018995325062174314025560135533118501392059991537846637913106790759841628212560157055461306301515361767876638662517998328300735260189180311728534696391818921623068859722351389996994425267207863294233410627942682229083663056918650021840880806875380585128227494868939735492434568450894071904089154658101042538015365438961056015884126286533148723028193305911904496454287741617116892690477304645050538527841951312225847736944377904433385513531340032626111178501651276395071628202605565143701790848656530752064674920893855410184063453123721185757745750889811131928417264056114035485850429729442976340204128679048327264198894382163880113310101476248964197501922188818253953342066479116616111799948231441992926733849248062005620290022217683941037988626389082328777508749089552164029992083456119739508018955841400638960613213098776452993663109838852919477492133338857784716789754780226899620982939076669978836589043189777984065018581071766006689949012130408324487463273636501584255309549031414299387014859526030901012039502205699746040627510702093009299079486196016146492008481084907566777071751145925825864708099589532302136570116263327077381215200845281166384947851692275310955795828682463310601685952737364446078318355109170446791458843225569760535287648600439006731205378739904310660362817322129910158413093491288149615541870321239936421296574724715267233817787280857989508182644342684693693345279144889859607802416057678684446374977296971430130941869366204045959668462464818552002702481713317181778245391775350315905293619003555378366685129432729395996663932219600732183536780050652199465951934672620091457603943918854844552275563002786128162233576479945556999354235086700856106543959550498700535343786911025979723944172326295721435880428802290395306154803155198626491431394271622500887703365484025815455151758950941911320121481312381330346826446752421276885222091295211726279275532206311251050958024992110153269832386243717493588203517027762406932881766981954783375045838078098108543539002908616149629074632539421659749927893652594042856983795481809961790710182971648134804342867307247669609617081848023587821739972484082593203636281199907883358303356824448062619488216078766724900900022984476920046255225592817939719972632134671853570832157311943547912680822712713244003742056849650563494079485034885388944567317802792868837319603438743370568685860431644404157446874900421093058240704127009319121344473967683363289288074265301471435565527195132468002482092854221219681047933461500454393162204563766440493704224120015758754443534690774554539068173708384568090539755244428023948686373008425274086128543256517482223641295879188512357235816465614618725950748067181070883084272142778273472700166448436608938051075828609272381888310498104853412606187820303763755120779078535662672874383378212745012889626201590957574261682912987031548257349757328998829532621607666001278191454554411883715539333362109367714181638654225504725090006718136396515452422822137667018630676630384626349684815212787950778638858220924563699168214818567951546027346808682664615622357888762486287025987813803983446527740329025874504531490855639043087573273305953679414312660239571285225237572858281582370031705580468035732420846699673219809401127623013378299324491326972264975248209715235492124021985956370202843208019300458787198865266372168173863327978728763718761967503393131668917797528207831392828694067368253874354487156107427322589446153586259262379928342882336417052002300313778296970199534960347815554977132940293412538091468326286340643102412103224260086900372410726767053273390790031190958822152478241115035084406883139880250912486298125614428375282634282356236218764464032666848847513462021324488261811878617131501454645191882327665351042387682046926096840490518918401090556709695181548586688264352798008218500293125503434929972631029539774588032991947195386448064611259318034694581826048486466249505949263241178332954524518363906741643887366527444896315652917782403208861879712132911309851305177683452648040551013760555924970206359718273708006617253769342963638484293722113235287381664369060019526423960071165696373887013080002264972741391942115828451149149222363825973394093040699774692349259913616513845590780937291256071494641459931494427413699520672878533683965607748779766641003396172118689438503933810110616564239474561233572236405489692597358355893734725126051109117555810222397163297110891103239176906908794694634445709206393039095858559412911797860515905774836912085968531539773786529049730685156148260004559415952898584321733152754330800294792076645181686758138716080357486848024107835858480975972312878111345678935761644241428980610593155336354770458459983742299066901445501510926472442190947240904107009001519416754277770438133415428050915724803684740846911766434047082396181645665690136914915779986246469851256122019033108030891622858728493469300912355686045624434626956512675399138651336090638270326382303545850187780988639539937686115061192538812100659808880642765320437701051064704391150610255317306758309279522453598876482486161342607732629778963831634647481391489415968780043697994290297530445720172218808976531997083375864688741948090827435354587416206566525595769452661789656587349101661810184834735337277310110756311807582740200649958608958995398187750657476199807373269250279735447010489479980216532353550441448991563015614560180480229236989586711379616995664519603228353069725183839988647667222174835727122580011449994231740637985027142069461484552245761804263143777562718785189066499722860108402834805131855955810844097953356796893328931106236570732853218247319338033941157549867941698879481679706978489325610136118008562504872744509377418914968288382279684569976506778236692889659865688068254996743910919343917152829654113523166929911589205829500900658642993153221750237196443848925918274374152159913509564989438860077522562428627477577404286435532132871300483316926041602590184472549707465730957152039057281644793413165450917152276215539646989148149176751034221165851364720202809755711608465659257209492361882719098652867724286312215733848249909567112502610501062865543401055640926574821378730727547023459624686343915945330813941810578192678332645210119662817167986003657204324066928906299229297881376428160358977946345341382308382470430694708770588515950173228209454451607102384223381683911154131553700809493434326602600143748162057814824945217717114749115377143942224721676884674239882615335379908197350382293228614959116365268393941511135349281224303683717849627582857940528101602358588085386935110568561589674300142460084991171306109778310982627978559969503521966291060103310981895154035209627072804948420336627223311111092855181987126476386341586814892697377609065780758742123236655783987548637752980725707007400499121179904243094380191167149752176170624706730296576826407840411572347444145429130286363441003909178275458123132906674240306971996464170620742058158019850427327206400395391340533562919179151027390463331476207253046604972215418673539685305996737202952955445407949770482553001855699829900121716280348397450881306668905851827806566234400368917233668054674541552355101011637911323378563416952358526237693333323157095755493512496632667394231011651060890352470412444007251406170725443377113582093746510625777603139023403552538776572811038155439715872081265990543704500985493113121857208332352455077659713930773967037756516335755255642159370364059722912862972297799085776751775234057788681585694035636570311813996874654564900868472794884126735727356243163948460027653436967224242109087262278782530714287725667730104810954846872437594164278030798188819678147577276414531667582286669415494537805330219736782047958120307759028617682773726875707208732714163117967303128749826068368359840977259118184642120565157688649833646484799830211681755934840682685008646898354149763693406957657577012566400357697530395412841885919901899175085297233189788536765585085083857063037173054228043006639824624378484334685079969925937967945429338409205227595558398946318101934051435766099201824767648100076191606342872168617110600045051228650580237001521208886182783891491461036611326926594518119287932304217447524765354947609169312002438068855777550402146305323100871829991941091074009074500025580869561614365720550348202350954348117570323416947175476565606543547473863686242036908063158150852088565591512389875147403658710576219763601694968799665396324498887787912489012210968012938730586290547694842275568475828152965720427419354585325062937508822353586308230945999052276553711826800626559705412432911706394723209907590382569341383384586103436799311527566377232854630746226346202728360550797241288624939685853030280617344833181060220863393107204670809529494085185739741319574926377854693485859172330887092883691886095799907815719435691931612529434860406423512317199566277874811783473465151683488160582066246099525917491560975040870346925162543582727351073902585263432393144820197201145453270710377800824954206712707300726509700613003087562120636200277517154830967928504429967989153472427892155874853742983353879923152060882043587435743447034339484576299244732470626503677062479880451089446881297148970039353636915329294141488305795749834748240071080490642061579196902291505845497309025572257172011487307189118962629085643396291819492770954592092197188851076966608559049701560424599960404233015844866267861449708452566322902623855790213008038413475023049063928775433979417525869940679040798819215689319815236462163901494898079625933368267349400624193273003017762066945472403132861870462216011421036790287464415157004500669809348852398002087182526080405186303637765687273428689120448762765603413578502879558306561178272696700965950746928569963241871244529781697975733688538183513852191341914631758971362766302515589050946654118497755558151320736958751512154984485021365867753179240926049474899443083033519007276956188245463626233069010478051617326394428035159313691395586152168706138768031123522627579654050761791988245989287835234615143893876781053525676358394361717114823252861847414592364667817092815647448597254637465794108573248916108573891220396098745709503727053026539926170879455869843318154941474430652445091340697907732209882058169680159070826390132452162398306343105240550679551399072212534397936325306598213503801477572460422983890917820854375093662464629429800513719027600788680629789489708466537681049714157652426806621749501675418576610160092611930455441938455169576395273378168375419285066305794348893679219235391006045424772208984383004182120108521863400712911327193785715621129851268665709174284372322403841045192227683638328718730326460733365015656850403651958813814686752960248826976103529731885125397995115793676958825841238922023097716001570152505813601332972708817317225478351396352375215204746520999275470264070238423209908210828391144965680167073603957026348954771804996550298051248861083883653101813135120968938692872862299635557526078724694248546171370382590370305469145709639026772009123027122209296532720977688889255730278947486699633638295922095494687044037526499304943707445614110541686612054862040199538016112105672341702309786356323792412034488872876243058252823073215879131351394178448030205103640570144766114171831282933748949433795488998714310785526144051729945239330781679487988414092505145421515640772338721063600302701865057180634560803434366022274678946301749322034077344238054184249346709507968910922773766895245495940220527124408608180369353897999267865318817532887757101020382572442361634433861038588718461124197491474197638101928017715716827268303413762142323897037344844761706206198411592119309269530004841368343386303210398777695628983074427117526459993584218286569406792032625252644868942336545242036146122732045888147192516112046871632033770073817952686929226872802514710504872621370533165515349075296915433735845060151974344933449771685853025839084629260200600233045776058625838852692972375306697127490905828800644567062002544418924834948609985880760154103925287577695930203453569289461547738673153950162617243947602314459775930721797307362223414695243753575136154841147902953816796340246706215386670042415864168850425164377382518232771383039190144941094139831662274859370431243738217950679601891418870396864024067066426125948969404155500724453098236620855075096686186506450372129169435886368986157372237300432359016846665035110633395875158956376077194193804039306241751976907020538713943084221941575122301063481066899150941674222566993316015327019408078607054971296627374091000042297885382053442213969433294428169245663867327162772745987816793751760049033026813268297051663706852874669150076358522414399930371362961398194395693946579442971938546473977823691035450306048369297418122391186974341334383778170520791902689495203912776732766881066199323800474268554393784101080711900503832957955621394366026926570321837893328620137086001624181449901734855066114228491680459013719316723365031262688586581449486626707732554186392901321690054806966353064185804705717331629007902684181448586179082965791388120771605750956501934000421094050164797266959286096506835478686042832624946347237091863813129564714132261780453231546721489023929121736996383664034501895583974693023790416739611748484575531627892529686975842447135168741838034121612224159636229369197412097949575627699307714741375861515645456189511259231882037055463027515131308273518172549421364163804553923851156414338671892417783905626300291303545872415183879666197538100857388319044449713437504152565041810844976945113443118240616292825147193479489592835995162119693133967675259534730495478734062317397425625054574364096458252142610345969402152658690198109145111502837671487990573794173785723197595225972325271206251005019608405898625543339417318166030300310045313025621766038113959051860520239144425092452851667900050807707509187787762461294550229557404177153711533329418753347137305606247227534576803334140250602776887975605950132906566515603824687265716766798274859511891922955279766792027698536542674743862600201384312300658907094730829852576682504038320629924826295542819919193900561968786909266470940630371828536221493517454114817783970569656058414894907167314789042084815013887606414807164858099506192546655254981112558610249048397081799855468282928092522222339070395202855806842288978451612154302079995000880742572066266984782812079174843161617772285397328765957162168074673614404261712017792417046238527398118918017464275440103508851201420164713812325915667989863022054649395501932500208136149255602211547106447613559475643125899584249465653474105728537849340280115864227227293988617867781483629213596533831443284961999497517984579718225077947833536404719997736524479403299644822453431086592581761719927672222498371642686226739369505938216191404946067102100408676229557759001871405109178357024959518651328212016772212340556991051529660241089229939553902267836768604676819283719026008495540918501247067136881736565416638688813790613876732272381646277416339191705406153783006976212275923297685384917014175670696909289639404953496838903908189440096639395957432150270800129191208829606541848540566292047989939895048103188098044802369046534037348507880084615563224520470534695966995256347031743550530435475775525376845123683004288407803060883272032484210359159015222786883910464450230046216006834416938086923757556577813642692440964056342646460329749060084613142191038552853186447124447892894178487148457713500704399478291693979725456234350443631686717558078171914509287741625590331754529568563038357351930103938051391535782869545821384016352592802245261446811627768292799733525008065390852730567596250016922071212826404711134339195866362601270229322983995497118822167259964067187319187019222995070862265383469876580965105295984115063181246408988194236684409980658140537711326188617718922687173549912169804654765768910352649097197134764781082332085527974066988202267022789206740441168233931452726982206585442300538726966560501960469030807522133321772481331953712642477451986711575727676909533801228433328764005324014260057994704475716294024136013883126678383271601470133089172492982543020743556310379574399072084203813819218886876877368117029001899913629160952872632019783658514927403406445593178240356487461922742696590233976053512616802522136396270615291137948615879604261520855331329594468297874149472573858620834125216610505504477814576752306665141553954537232930484444749002233421673140984115477073771105955302489225171436553976123328937510541258328617401034704937771076119419035727599563123256915824165283832477258694458141162470328505890106153980824787469837438202759601756415413568047790811097538745137171855005260539973501193125233024665298056267747511279250665142264709455019314879258595285946326720253071388687031446724696262629824804141494469946175185131777554457500585375433140059529394242101522616858015848597281168936927228514224845780874211921876592038577488250241596062317633061712902067631998025158800738058668124840867841578897977514651860707680478074124201676591311708722905650795062339343262977694679163581769711864338795665817101671848498276399091306244415179606311698061482759536428881560998737716055627942750847801445801845134350363909634705070783420670161662162574266229871300686560548944449413915450592905688546432666812747519263385662981141104081908953405102029386000825073519263905847275511440826119363249285551561520697571331644187537791197541317935323983679352564904997877195657919912279943845639408874218992431772665739840604692018572626109031760137897098846668250470236886769774821784389788589001173991433699328076991963038424014987258883938177020943758276864006730404467279037369666424724878363762402527016509209797523181815543296664807680774495152328069324223522292453501737391668817630657289924902578203290933823317961535551720071326282663747570937528419017936295017425238975271485499932789561714852865903183617893210336712292066436187542873366074354160431732280291282081291567081829153726650148245370991135473889777553149880383192189874917555993496515247556311463487135627874740392779745878108125877838796027431646450395072071913392560319509482635324058460944986888907513427370425673306228981118895262320831492209258407735629601728414534551424178702246235135743153507153249313300396048221370177533375772108131040700072630640322219633515642360634854930016968406075806505703749123780581045496643026408677337095585837729396259925330517700991878409363477838137507035954646416134636377551252456624710201618877563039410137452980079361131435849927363051121459368912562294811359158542811846648114193008364128699783074579750507555081554147301025887436357988084518414130059552026283675732161644135582589234499599510495365550276582738402931782835601493645242889395458351910269756742854150151313259040759850344453383867629781592856658691725449438827711474750205097670427666564172927231705917331071738346195965013709658297189775889038004352546891791477647863922924284101679524261207849412740598250582295903998934928400826935838765919125454694053122969901795805042047525684761799439951064937660184845480626076407584184138022791654770744919800301304508023434089428735934150840226520874697311179788916921401608527075883505307155883393394185344918068588707156162613982436950789647983372021487526819441371763561690111446983465157735736988172853648996655295327138495720237459132193436969091875880251585212540920942857348211537452970809514463335176509558159092677055139725566268024361751598085577821309084996548445599500847027748377115058601777640057956673902707817846008058661672891979530243199954029703424439573097121881450627729549024831286020207326894756461436475688727822211654911498102168215619672719090574069899651903493596985065377094029394782252379741358953510480079955267122988906700264988391978518674738218681405426227659400610907358407033631233058430543843705605595636952059474016917362313940391037927752933644415304819958760908330738581419041107646066927562733181324981534305251350164301116190366987106217731639951134928408313547572831595156048362697000740850938061087043579856240691503372333139400676650700058010000577891567062075846668305687861799296643739810689798234769347242636150990084412077769010637091407904549202651251049769899719685479079574138937475724695342447835116206540864705158415472207316190715242271495414517003164086949737814178332285659473714446622076545115451821364334534956591708162692392271690370538579835222774080872086980414891482220973107722833956961363182132407083325340522701952015626726453921276632628059711705416149746430703305538749321169251289003111811772025515637238514916037213060899027411924807434319372434823242295964682723333976537861275514889230712623804405135639105667259003951935017672931002566974155331017373910561490577396221238382640413569192796697963647061858808718495640045531494106728450403282039058964834494096895130776576949803866474413921026912537158918794986786145976481756467905407857651419902375935287222604286712942688137923683623649885355759150740810721408156234107538896971333214516137871971276608512782536677916649513667065305087260144693925413485668648065282057023690273897361079007992097298926865612192655581782779292819280611753054235029308262336836309738662204475914563969803014668404487857104461410575211482231553129214248724127086626171199559316602318695027801099599798080372829518037227984363620699757511987231573964646282784015727263262194445612947874102932347070283357484076964073907325639811037966471315229549201455354797027321018035435614239037124706150174362572008328076788445627088888934615716915854028696967672878942521028752180670916846232576311190221852631181350825345262983313777592282542652999515487375157868004981067172935366378504591990453959287833525886840948002821346789558545215740699142083245764914681691411617751718321773935031592047961925163272736845113503084222507775133422405513575563586564994642974597704211387637355715905527048650471394052413203755803568102324093705731515550917158357194246428812618676246365738272231909192217464744059449950414699279953628904723877080513013456534684715399570252010719222045846818022803926630496432202962212515854588384640543654502320662620987048853326152829725182860332332713163321131869810721027359011001055536092612871673462168085932441907965323639256751171385266527726035243654675222516102986552720501701897456450143706894952737460222434135815219243750341980548183898476418869055207178161505889099572949622879528610465890557861012615646060068119705877891284796727874427803514838043968400571146511703864962473729807636349679002581567313414012945377776171353600779389239666093953054070808305084862829726430999656854677441744901293541557244444950893118945680186231246148564488787527034435124570440309612092789673127572325973079534655844077442115421450756956920834982642876445784420992747043963737365944856211088271264677049689314655023033411194292523494180595382101677790104446695265600968026608237325278727183724796691563098660463696491383168595482672130528977642768943323367877085821518953881386666604382640727739982107092047608113204998289506902854877756706185922714822283870305436270057035464122553590150539784405941532131704265139317371720415343959422719480477137316294130266075595744501915696447392511244477856815165850972113591771689846132302967121946140061569717812599311001623620714018398750709485811826295457946510875955892501342067796082608382525517979324990748672202475635386087137163085653124357548615241602107041304568158768377397533343450167549797161695672075930555264114728018913770402485224983546250415828078922466196298572095327034822264844263021561699366473803649992458783807227496471802287909722644607002424177588539094609423619384086480510124996036615452442861216888386359943094446375498865839066016224768563940926634861448969920437427106725825965562213624815147171145418512502830527084460173052067831137949708763004828475240538678331772557395145822345736957401736842630765570821413198834768284771270311614020947349160254499404982819706001138979806950741693412467130594007100561672577039259741910594176187275392755745201395176003026734886470667880271272892766746555169313396991177760425771741483111314241324439268603529424975515539559766070522155549774667104742331835889894424924836810141455608232379045381689479130028319892079683809368372431018289737648488166195969529539017743263290041404639529574565578756691038445214188537764154212043737109404708397880305602681003283305795094407780517134956193219029449054440881117696589667122363286881943110458487136900153318429774863550767121060383424867211616421435394096871103629098969458844704467575305454170599558952923890426228035692919013503251051464377524483380571962369040777932848254294140174806393104342561038940034567307247315551989357723108092417905658365769861370125191987030007426893378558451384081348029253341129914728357970827979147759601977223388539774442049478718093061533955624828965447096992640864801054489230692655223146704504941267419306159583720871978212866784688557069266856872779003261662810290481299864621625788755875880478334650469063424849394739559324905009411787346512852662774744549210829303891868582601653114557646199480197056604276977949201415082037683753935161669738015499912595403044616412402166247427099746009294889877987028195942556933262168501322271195536899258280530264069407469128511239073948092037830726567666000041134309537275271344045416111094258193726035707468735632665087793765311237224872262827389388426857104611723176040464208455488291372295383475167285068292688806536432032788645581864015662796702233480101720631069975124747735409426082970190174767720884364662544233296030996293827833005087565800387720873163130979622641300614609245875535192770293019744505394659884502057599529487210854846236413530517173618506363965595280267316780194741769771450037020931752561541539934879242749120621683515141921245343435875825847706070255991413316437253322404518233292774118526140220845133218982352749013682752204090946157963455389053348770700456865542158282329909388882580782179685452452021233121943513369078625519167645773892550233669401313578116123944869734645964246301770342215392859865395196560116753008771278400616009216486265669450694644493989995988543542311612517660119024264339593316404642351726924876019843685452246468511048353560178680891702375811689432310651249259349971621376755871092276985724665991632124900766717576539554260027841955317471919761676475947200532315446213817776409119077152683384447297235850804681866880677057387776333511887756530792450825193015094358066949635377729359516468853717108000814926783386294571613404338326641508177613751247054202049343288386272583953870288017877737702780866438420628454164142305071893763587872141970974272411831543337830870922902146220375011997193969672803439203708907095812827563230057158674009216912133168891362381858678978936351246876052788943334930607812273214391463802853973616980703880181733666103913684931387343478101952327035453954582216239681672474147410722813407460239774202450118580067753338952742489771651702968206743948310082093731106592006005701508981372518599096557778749948945891478517141866501885190270212723959570224447186353792340605123192424472535597955684890641555673219803392416229070075348227034627143742349678547336057582133065438022622135781159517676901614990028894434853525498350168267819687914924845716199373520142076922779513655764314534420904423442608008024154248377286704821870572543021745907792666743182825253054672899133742864136733222560663304178750155148905649313663341126155863168816030698740771710617969083137612692060377246979872446601852848627063515127511763582735865322338473280870174927054240504831300582570443768669167824821529284798090748425633067381176855844635581805799341829508771529338164691468977910927778814155274405950433260777301759564319765972226909597488336278736688439923634856294581236931828549386197187243332530029750088361478364790247831618176682993694811027034057949415935307607902893895114996395056187823983995790327610519390889669536213967456050655312999928863436530113188416046088879826791722519374402602626170148196596748472539816919689290974265545139966434974183968853728696270660838935057825562577083637458547251562520374559301945890502689701282471279750145588662722589449590804816466944388418677181172942328861408393370602711677334551073004090515701139017596376772401273846674034119566564622144506528781453941241570996585743830377247452140110028969943829566058068168295055917578681740947273788884833692138770746469284363007075240475441607932214456224549491176026719810759552173542609887670351266770594321284301026260579908226728403251622725247162987536044197951797686371543777005994984530679533251488749087445312168461204146874997981559114399197352131730913146003737084504188138917785116850737621184428737942673012310308842370544289328278717525455827643792337088995653213134939343767970943032446224131327597571418901880987903852701151285884529766198311750628994511585719450811189768313972946180358259366923283894224771426797800908906349574414199634333199154682031349996816686914939968734749635404760518643584627834116343870828664042736947346133991746069957374535626546387329195964552842839738534081973952986482925107950514271702992088157268006559920910712876854410677550478627409840468896717881112244343183586957204384853024793709398719763733247807595567143112840650502395189988878135419477865765415345442413152673960066684404658589272790627232380141093121184489216477758671102341124865216315930062866765183061796731303189973303830455020668681554894165151561917105377508591493972555687263884666072864516657462342392487637792910755633763269853931334214406030724287234491681971046266659358195415582050687185071161509201031488513552750297611705114096476606886554685530345230989587604139312485879998924552439022416777043491912224341945371473046834374876557539801883002649883884108469314746218431168026545454913613327454718331524818238038911871546348352129052285985537476196651726095315143428948883567520056165914462259710617841617515234877346898057900373463255491615370391056466676462081348976431500906911417153267487204149483078485728667322728822789046133354291214003193553541082819852916238387292399393682461278791286851570727392530965884749410123532616165454630396675954817195179635519130849213297791573532496186336192874929261545414638552040204389217905238285289447868225219436784862597876017068856598309643273142388387702258076692136689555421235563515212114182169680776939168380564225337593337998268784672759304138604748590005261816278355011526537140570765383094567825817607299203009153469446697105266343221513526845256060005681558636735353036172382705654380384983692382317728705160477580755404652700005744311804665774937099995099147350702429182619882975553784662613599003823362287933538126419588055425574232963014166271266556023199255251462340140436115771058016519895332104724175922359329815577759127291821246440043619087484420559914309765575576252237033647945918594396273877945087219693578609668752684800421598765229332928055295563313143639591203917950041000820751903752273366301294779071655489416343627378024093971618878033144717044998197728277146629545942391031656451937362131243656577668890190082678042780286407281499018405363940282232006270805072349048811416220738323037157324008591331861435101600945965968366519388502795375377466105467543374468477120033488592409813927616973391972782847768884202126534320015349443832622295405513353136364267603507289101591223315415794518579366077419165073525386035370565259766772738259078472404963883933046836207231011253877261680787016600817254049721994604760902866734951957344984387704208086491131542927888045133884390596276805853402065600147718549565506907460824188384548590888182236825980427750912672314193699416193460005346446190249691730026868392578267598821185216162100332934250716260701745998271035004876221658997904735807931356031962862204768524256248641093965562580793216723444433694296127847609305477472934444021666007617228218069399969907063436238805003868950757117100851138032288266576333208598140311277206402877400058241220337178875806207985754593975192479689457485262537461296964177120226700963980065975762440528967763501651482598739136252631226269423742329218172545551821701049643493234159301670049093341964912678997695728792496054168525240451300793979213236968004651568626228020906449684532271625700622586241329802041767596241675658420617702367339082363225882136072356489374141905131203663664063920834019357373404813040189990615691057942740784176523940355840521229716124212632674305616418939816073392221653351391837088355798198281779418549881032872258318364178427188948118340474888750923662461577470597866373255244747596650129153061284805160931804617998200432699577641863795865008590903547233091936575147470544780129972309468375906116868371388226706393162255417583806090195220513617979754492877229950977106831975311691237053064904518416472284337524850365257133642532027196858946289107823443922697405916799892925740915183347737470047860386432154073039077839654159740081446379943132978268763289394583811710200596483190417978525910005492627344966226136264181487391205269262967994889436932178862480986845030043429051631735039283773147228216098108852778837324815355485069548374430023756440559315837609032981554994193344344010180183033375845746500384580262801569151008986384164809130142022857388082346010688571438971871531122463782371674312509038390834427173319525867964844741963469293115302531639768284649074170305939007648558029654853893763099189741828615926005694548166306627033105668157786019021223956815938301904497393502391656766778139240528726569932284159742208784551815323910688174160044135391365675109501931695655054501873813078266148017404820386961166802665275041254727942045013670348751021214025154631304043510527280606203805879730336714822163685018444479140684793465402672832681884661787693396728440761644598096589917651013340593550109707649850774243798343693846982636990603703966923640363473600169515138080366950239334034821120426270542359680305541807814910790254670842507090857573199492317084435250854584777489173329989588232138174612826219653221173194713217446980159275993444112145929844194558456754989719624159905464759521973970883268077491535854010650494289292470655440433074314262769121834746193072350821450462391288460323769963301998855668823953101616183355318566487955062655312331301456426143943975730479311116696333392201291053485372321814127832436181049491323172731593993036942195344273650669819802376934231137091744270048135468786780173829484924047430313365968584532485215339267633907377780519171018027885043928764697002498609225811343104261316876804398758997604166152042257476959683764360485801565883096166754383825350106837451523766648551884753417956923330212145306533835664402419460281812112510454282685318175471250281373928963009284687585565364674037597310804174762459046592549648043077243885762494612448836208474714075701101533303231021120203321406229955079825033709379391180027012751773201995830936819505723098523007008570406344680961778392304269107616241651479592857935222378988857127223087675227553829632972672986106084093991118962713874910664417694498724492058681994858569042443813691415602282450570759852657899103263218299155666433874380346329967248055308376499156419237901844772553153757884101521931376724045090854333584095173034477912686374368139720699131591524475574858828861014555583997905807351406231996471950780431377371204345606560741305821591954854718843358780263744623117691593948604252183264075161923955718337452648288704123732958088485964868010717921648452370167531142832812253564933401518171465647083127348301818317002387568603583493288216081306804056726765951013264497604037255381537906236762218712529651726432349474910298127609949601565905168503941207338645461831442871959368377362610504992080595440097968141286586256681874643349863254629684369646751603907712403686518690697237530536498143521108357476262023607387917030020298141206969318483222253679617506619435219225097007457750427874674590455118223796866545712745245385784766993483323260714513161581068887703443351875949812244738150424279606366923752216059736416370243018203122088558309846618609986951006174787041778240906052534336768036117505386880355720070785560071101109963426171045951294557511974598728952725644144930361134366782272996116953360139184772837786996734250092296947660146967351761106583352557877338139804919322082653629073823991692868877836326331114336689437799391461881803216092097363595951696915495563973192333657944650974981650960554016440012312238224511207249710322151325544233735097740185050040810517527398078288078552786648240766063999237487409943143855016306366904650270099153871261595966949574414266546799684729591511254198210743013385909400224572328006700701303331874040588080456905208238867175508549474881272496669995855657410963457029247860221432561833390140374967979289443232656492247723239171066093417937401514482506712736351229887331534850394276592171893983798804199181409239176320484925921859365201701087169802771096173480396536559988182226038699060306925939315064510267716877242033684128811043651940826418409886129770765178040102208372275105428594460123314336786397763449281656074511082769083939128856092664375007438429888209042971593047591114938684414405467588174505955626478778392316099069962409834410182769560249953010767192059357593531776644700187755781526324308536138801328051988043466721336316793485014746127949493894367539561705759175912228437520688181167083060941892420675933892509948623336324432361429866794556441428614482587348716853057541807555222138576007261844354732436789301041420943145435895840524023042052386258070508502990093027423433122170499982701737118219851329624140069848856285663268186185930206790774445375114635063414999167890260027891049758512730209436628714727152567550874081570480983458599852595913971520443092360224364133535239215099514889300554999077326517727861514072772462702722419933114022211920455987025412986346803422954488410080853848228144461405953370528814921243275258819385170373003802169710577074855016478482903671803768102667061035580214394570396240635940874741821486509029919493953400340653890505232052139041310402471376203248284930905652983804133278711713498046261426792291842196710786833748682700382955358177741762108621414207127730540195880232063200413048002148835951018634714397992563747433899026872600300487141733866875420784866459638690885824847929277930903967626114196700312326427547856149565233221364371130711902288554548891160424358324138729494366538693676972846452990023444553929020774300182833485273961495230551397664322618318892294786631898276992234092428429851522724255605065534883473638326850053856382397791942417898984416790922585932412672151188334990697598593761493401882621845968990148425690962563092498412730484609329684424551491771588998115384358196649415129222122679831859093855389101956752580534405113510074745331211361213702405297247908459404636120121944785808725563551843770345663948868139678300804035032906645258434222032169344998525957349377584418132304440512437002158371089582616478220251658455297567744605398566042228095991131241773368537044190268420398725770508378859243769908956924900766300668534889799596714016512208039225584149506966991024537198725242282668293034266050657014361667400962758213446566602532772237462852119328115791519108280347153644714736724191253849205735868257234942987543856715286308798117113563921685782330021308209987347236334926503275025028566244916044572580854128737000548630112263412602375539078727931075391722892552904228398365006782638707792428768290187139175332955338011239839811265866073866510148360851211492257229597657438820648331746621781746319930768008327471026724813626520868181582704518923872556251139502190656494042632639412639580990328329997437693168592548385851730878188659129632232044217256235867169952388608404218790319874571157947672324821482607178296390903232192226476444894271598226277238542557785982536393191143036906442808872733328653750484268569610362790735014475277331318697107179789965744029667407880037965832457947176682125446087445636521061326184219400148659513183325130849823843198536068817741671109801485690670270737859639533090315650235764334441887160678825914237719090349197468906390078704724669850728166618586542251998635684821363218460155457762716064632572727541606391396102760904299696193849218766223874362726129648371476634293950547796984873503336206800913222234000487653724976274319667002574446673383670441599954970827707846719516610969498189875322081322369014081039999860884549179126192542542771835841858875060665163395723208077760536338813085914758262690095057440398273516550139577123731337823074731356794567930925028934468678721947704392150094707358558614738700455801110415145248349995029709131279802444259055760744866141482966164696109512334685461929965432925374747090664033443393452203251445523921194952472624668644679518888349447988338603852969297553531776642508646457120626711070193081233624765371516720504029492587521534164242243625924543613445943560815466248783872875724460220379245613200779958669001038712551810229336334031880528934994575562548754991349985038615735804629773738883644285468401220084944361448979354950782235715636536986554948588845417267168923445800331396316369598186222114420732683583911689190953593624115098043600600027675320097770465752424990811274620931965696640632175927099057495554915794103909833437163306877395470847762181913930784450411636605121882012943767082214181114432234218325830238487167976551661834866647121062389534498513621696429136525602448191896063786683202539586924304594120259788942331805060995547920902190341640761650721677805125514258084860001125606886649437539105192407689525695709171120177320242123815382625709850583132047965930481704885375373059706796848997571072510612893769871247394397200229283784125827594453775703574759718650166203769145994451263875616749247614057316839456859286765523833855903883502367758646561955276631479792692901985940145161122985525431347333250438785668869103104996330272082682739875776735909591847663399995448472879032346828080939812185292747269390488397450815337865554774703554389968236204740837859212848721090086196597789038571241489439764971801303463291360895399522543976455649842807510009389909740097140062473316137737850061407870928409706972099944505943153622440839529863338724930767134790750620082845271370427944331775402043333434785757884801072112742046464639439578143881994356251448616945341840192852343886624004063178027731318597352883038236410913509817187524651860549389944014806930576458083684143652800156637336959480295197643558156919724627268023986726389901381262044127438004504402815719324152649696892763159685149222862401863104469897960999495931262913571332030389747189450305197433719482054888001783880724171110390534909609521306993982774991753754982051904999614208614971148406016929826157846554538378688309854295383844130862073844530784601060839403740345216605756603934577198646926087587673456161321251997755137763685886968679446590876888269988931917779192695064319742312455826775509679038092381051644771030577129809245807800308025126311152753927898675557514940174929989224016110173177551810010220155017637472293283036257691727805342971265064522251348905709955497080095812905903573477952823579693417176419563105628717632246079935274019688592644092964492449626345800211039115497387612246757946526786862564584701842898416392469302237209311161493312029702836293874996352250644963623439941828402334541232823925507373697966877562909795630929096467186786816227559542971283136936613380097851413155073896795303561607319500040927716862607742379954225848943062050234298436632717939391628015913558512124879779900521116424920262650427288498181605248244511119326490282989567540945789425524315136496960847324101938725968711687007017239309598170272924956446306890840884036025217192902188279014686642506767120788241764797423138728932986462588764125622073320672039936382980529890865373370374808517300443412010760355877722476715457616160509531706748506258721303639679872234738485602427616152600924755131289652083320127506442967186029764702819036769860043650991577628574412377572938199804902389176401775267351405359607077517429383781495332477008093345594930209347515470256464415196580535497490260051809063969559766294652564327986716347032478421217598229589475143299556416765685760042090797043104515681222894712263323922701220332848375651079951013575024981666950814804793330465644672868355913388207739233961409787739978596926916199864642356272547535524136270318088240375641744135906300308585313043893717644269278546937965576460665595434235334809811103570543127940292314518154874536914068272810017039358718066648361815727294577748103261710861503923436052207723478133043785775985598488588870059857521247515320003150145607772748089967631795130634630478546976769859568446547647138976932253197582478140351512276981845697712148501297297905089611771119511270698599826805476317462680457682433367535884170829336124047601913450922714441162011438481829551071425570987561458089847122918039400718737266855444139292109447593529125092060944545575636186903307136118248719240242736423345346985939151913260604580056237128691373824724960537040841012729037225873085029239821870423921952367538819056994680594233989646326506562570632722382685036121843969174650943156252606389834687881982983867298860897763733073617034256102532154262191772204002612753360009525238340364494973639707655001007510870685434719088258765239874025044803046805440966342116962065734655139405537879101897798384757005467643052224446080678905045487490638855100985672161251133014868933960524440181847652946064767438135044282862255123781557923100529372279052170029404468832091158417399022821372133423759029124231847761484907090201277293474181552549587777738906477489654573620501472125343778396695010344598500813371501357188747116167309905652108675100348083017404321612131739109736435798883649136780799227437513089375689752013835922519781202729394711590218876002850725065442430510877343872872507411942001670126459240348923473031232172560248419529781719128272937308827692951813464663168362283518561965118749555359038440104085439756036928822068308429324505653068726845678954925728029697192317070357468401505375133465388986555774155670926461910479628003886732248459405342431494991040397892921700354316562347391178724171210087060885277848891179674170562864609016171674376846968857689231098914734594380418680492286492535965889218204021713598110936433502663115601657465348787784545826735528583997977867893241597835534101743502460622863908691838963578924576228488419696595610267814940598376742108930128761686307659132572926939635915048332656813727623187894950359193924590895426229091825284006201878379750043479733281990896359340591364018802705573148274954304527515247257554302238313519368306838628005382197164476402780370626142873595689037296745253645171091471515244227598193474088517069283583813341170200155486599606172314171743545806070644188920562757438826059574333549246226693188141261286913135124417818104709092159338929735062282029302907656508267652162293475012542117888095151119502334303932061775392637511598611899272074710627730232579683393856458392802992947118116770168640188340822840210723947717663054502991830469397970063043510712585852306820143611326285816058154504328900963672629152378853493984631125588829643672629122376644375824793747518074299876949815302272514743207915556658771989393337492886489256805792957351794954243617267702888199894828033244265692326677451676126712422246988316386022373288826779121974225791256282721586871353914808014556300291712092935446550682795888012768616798027223025435794514933872204875032512012195033590396102993245697835434489194432538094574900198045247432100203145372843344823615162198521147261608357937473902612047150778649786869035472860669252334680007456418709492349521910943166818469060187156122841845204201978253498248544286909971395958669404551850892590090286542673070926472522835526899059518069031103230230667717990375230986088825888772909078665271734653253739262444872246308881206092009509703533717541881063929173085439938741980896586922321519218063056898916810912674968313281392489974189177908520082802484582331772964261288713847193125180800459271719267183729737429671948316814451357539471769512817106717720301655058419925932668382061116391555211150577984945207865417885645885751495375246855162993044889031351044172976277368270721600484828445333572508525710306665212653887210351561097985703764271083843460597343311462688146884663292822592021737492866368660145521207019520119054327576903799248174277241507036380108492025049054260288644957857137787252451889629027484516231399488213901511628559979983497848889969629741143854658397222962118710485380583676160339431301568244765433689389954339403855968470364682091246224546695396820270197953342188816965856375695404902354974916210829341851001938018219353241295477823511438849852771414801907979589952482952023200584111347779707920621050324752983765744560925477853696786702112222399338387597534448015669363089158451384624035182081793953086125263324616880334243298215265870080039587869247878358186404962142270125549973417544594333878733149234316952985313834983064126008782955180661216244878637901068987040127738853150085569156616800357456297032737742437521994609546234231415846847916001484709759346101512784175125227985481911275496616277831862857470174685924486041835211773157273610065757143722346801158424261445747598595315176385250577847391166911829189034035751644397467686505867172175599217308797056713781878341471385852017143608625421300471932087684756616937577128805681699970353366563839914308525972886353914532162998262405747546912114343387059610679114698698312312957502748243188839076911989040132023819757982996979143537308333358726871753449710397659971299209061846286269654058513457184310699277429724362138576813621611962928766057416625901142346886860856709306359798233445282986851696270101335537749517914993587127816743522235411529898149792707305847782515779659826216681351639130411604820947249216501358460870718574467655552165475760082449230691516723987090860549851159526386993389563193539778167182902411879956753015022502364710846752036921616989225528020522144050478195464804615878262714228590238754400386973892508181719777689673163775729803759206644354178757863542968107526045257693638203149975592400324289425893599986153125872520818014396940814305428931278947171778531973056873766070120223230069004005870607863941035389842558797071118980110172776133455133323602572479665368763009872750709390764816237419960625724955097172138927896890777152048213619435992313431704745554487882334432344164442047729175420091635265341847216185686907208273966296507520477117023925816200415398696142189960769052330820239061399157468870956824531543642144950822181152873293077917511759473680898574541871994536619236668931477659660799522380047187034102484067750017411276515868267622269799268929458420670765117634287074348625695718234741922460091714261209500581689037610699977763127241221581722873692630349453254448160238952215658019887814725388214023546556636725208107302822985938432653599240870771979489942800432831786376822749165973421076607639560466424913801328719898957743774633747849909080019730587577166626666728670193108277836203627710016978020251432746257669438108053219982971202191440957366439047213031281687957507087134176544914111341377409169523303327532562884769412009909944830820016711142335325383212435572887145800196367458964150882308095322644809102519566993102742133512499989530190841502112994815244485589693367280522083233628672741017458578368871232442359961818161131190657669477147148480131814111361895981345772867319489600582199313419250132987596358997600218139620813037123373347845630824544919430651890628989678311085315625650083344196515994821622770685030138013237002579396317586160486703717944808146172733674766259609456258163474105628600559253935202600301678868232877754876579360708167923985087455774556269804845314636900706796882842340678100518454561951794813952023579689449319180556760015029158389933722640591331798794431475396901974108426747485814082147415500952514014457545497677752318742214277237285168322307873533419614777298009160673380058372012216678958088923731334008663129936783353408827199170560051481670590604462668734720316893064842204116812609938163021365422051180063157053136808737031631423200399856648997246255277378965093059205694514903129017500451381660954004299522143598121406760553485292229648424861942149536826013844938851614059220199725151888094612967833631088157475916518895525240038877785240754496399827544410384073208224409506810109520531794503793020328238958259864276051469330066658040810514386470576227518069945886809481220768661832294525606561835164537896720226100513826267842072259370907753118811563515890978376228321257199304002535654614547357619074110169566309584944371237132312907940395592461259846267811098164703257179325936215535829771979040594286051374995746776328597679648891511649862551800332851092456532424563057951592147056071872223541734080604248168831995752988805374496591933346565411143965761314600978542522924028346496286300911035017692502606005657902089676411071090814241682114507922242640463663427922777439460873117203742774888997624467054755986121357225781983027394034273923357548388123183692677273543236463101074733518011573328341206318942949916602160959340509110395882447197376328312570917741219479576317922615607702150123218082364390303377149088616196753001447926460994577868684891952541656665945973927040456823808571140574093756690445112159604434849843913034463304742406649383282365783043937382289556534215944136466401657336719496853952362943929112779278691613275306605585533912691020147743670885206641156917256178115746253489450630276967437123908697173981730465977971197086691552140552962882537339239133548757375028107708666335088105892028543192293169906708051008856716592282924744932638327423792074237109445069509135863962109618386092790389590576349075757239158278105552431570285942655613355497754607328533286835543048091177862874033197685862158313455561223790945094906277106467211223327236384123349095807205188281270911953539829176335018662357796649716395690700123458799073485194601811594315874044713032978945084346939484156993741547557918043085140949036031446515087579748634744942514136040828325504717055904738436605701545998644181814435775513839681395973872838679521431227738179535364684898229854566455174699495358021763490033426401174344105013619048212886352805289656792559459732215481051057007119277109849444258933764845790413456559422987850888419081384135129986779087965746383119504592139316762755923406946375199269694513854232939792563870425544158302733467333994489434572233005938962968191130579141699093475656336918862190314717235930987963468390320928133425358338667829666791501158651713808660087219540137519135763359934938067032701704407345783345459811413238874543788140177748401869525479262671909479331569296470449462310621751019934260671027328133771684064306573166415324056722845514654427598243082794246875748740211239853640294521745327379357041272872916940653001973372212234953237668694813385334325632917359051542181042269810106279454206046069964666111104996776948791923788307044829556606938688272087805527645311883199193060712271672554140433150197344509182570100968254314420133947061596223971583345777955543377429625376650192221320320782510160227634481079440965639433752394175112804208345574093265163460517476635558631017707145926936095378312622585522502926671082370498293031017226301250247411273947965492164402760217659116134650444630633844397146068827282659593563693465964667413503015426963661851996346672906977958768931881899104102218569542745254087381278533638491194178747097111336741536329473581176521134446328510302912334437055189712577310458342499035981360157361298890159263253532168907253534347379477184454704693865966822426622159516824796017369167220310574280378629296356514460260550231953760152866774095948405640299778463734128632399226088313455978328033600395475188374788481492465279517091925015891834614184614414388725642648242639502064695484724671198094512470489559287184365841227054740025363027460096