PREME/G/MU771011
0123914409596936756884556818684629880168713326718242050700043358064791524966277883516912973879358064021205995928083554874911927773916117306272732080455609324744856808525328155557225540041760181669957315651962878159115518891489068761773127046900054627080782138619521830224616106819838641816981695972550355948674320624244649398076065070200333675155312753893719853509346569396344389685597714179665108071412259152047105052676799825723166888275625300225808721804855643365569838179808236810558908025042055475956366979939485886330868392458602629992401408782882110687253383978742290416115503949534433198642583283792509001624985119535121136510388653048084251952758471198969680161187208818580974858709441228955437890709682350406471331238537668487286139956780759455626840265979378067674759613282350558928848230092821535394678539827244120617484427276899997823800105393214611239917510448078173636589858957076035767662265086163396132249965031822966077820009213699562317942394927264270818087062229297149439348723254978723010194363511431594505165894189713982101630546974873322235489458481657772063789886771547988461189456030916253860390123705585314370690757100461500659299036532507854545997062705504811442960819233581109251505493836884884502053188915855460422739240086315192569122623680820803316356693589969319292050519593072037477996086894500060498925286539835108739926835551010397085305381124402696509001270581144383642657582113639520493405414620601944517883600808936731170601595614891061132519611473419171629159665780613644483223066307152303682745193540320351410075641613794986326307066548284018279139613217708513391270232247841623353387729253298638517047499637701980120018104924615265576512332288553603407999445567473080422741774026443941765993882502194986764115639094863173673768239311989300448926800993162009934105971279825524573857340429116698866535826891754614381273736373478208199909347720423601894257519909300329166079917389645140438428598319522546028922650287425451339187053257230936022703131649904747951121138087148500751055372251960494665962882046653055481456687986148737941668840687516222554046906995639441917576067275612656731645458512490640452728610382386847489581954865675971361319620546517498223444058269070955403853185588598580541665903553310187177611007859912816048211315426204107915199041669058342112785602485795651887102886247492959804859586269096641228716260537356695370189840095947007265447596771251036622650723770512945470086541210570676566719189279886106715611244093880574533018676657827348798941756138394831184857070546910922334621350975244264099452937583109476211728344184823644925241460745191741173789370530429177749773945185189081744637915851658688291726623285927198310630759375714149570370682274235632875649649457622033744709220038346130003903769498203372727968389173039239244652124961445204726656816963324538739166720288156899246010933665860373431051484853373248166072116462618455154357387578043554607465687733188323035028684938438673592647822134689408030072552889149354791113474729664554718659118811097598373531287447415264050067444342250251598526457946002794746501305144316013501438578156945939832929239448261782758129264384366720892620356594828931061469072402763370499431423512836190563957460958531828943866745298781944303043170010026977434248824281715810214498717977945314300140729429550437982010309080742595167463504545767438105097826442278175453265376799772114244062673751122101183281100095863377843350593038045861191827680302772708628860063392276429003938102564373353200340081341464826430093460950618270630081909799666014489022843545820003582327576907325647698601115225386301763573530178271178275125004107846155751986237129950870924968638534345039826312394530120518114122078521270092960075841997025282237742619506397499385673762317584991109239464218407110527258534865696144630729611681259726614372071828605751419539062359238027052867733536707069461231451006491909984176695502974727605290877398412862443945537822671438998345361936534827930041014003350255623806897843997438627757382051071251827335482734173984052320709739333691297806394213864052442840921729679467248783611011437485161115908897601296374322374531227406145531681115368452332132641511691378756617195665714065283592883471359159149900099398393598848822279461625419651475214552712744642981463735254085426280006037706106092594987628206522135619172313791602959569563851595585586583799811450780319684774839903143523041003265622279849105169467416056156795710069503953975293690613169415920142110936538090404681179745208472834410340648121841942533690087826413908546999568886331898591213608172803617626203113748608446035850832053524478540454746056131616331173487500665873247406963042244977968399733850875036491544138754168292089595055173384776718677887738541089528540847819061762971888323363531374991107369922317159522793241253260250021086270434135591002473776875967203886329289411575877593798841289519214197070426749489380430045929045419572797815751643118281502719371256428262577722773022612182103646888923246562808439381641650790137232715949423106590043584900223509646456666224669441947324319196833492131036052898271781967639574644099451030088146925087884782634380745646608876908246005265331333558334048711634447127118314379219618852012375624540558866501769839574913682132246213072480997777434685650494790261166293192663662096121774928299182487211561929125453366799329621937496163492545746334472362200232668523791987390825140817167234807635054254522767475445365323968956635170440161583061346703872955670632297036770455566495027305259873278028370670358366482985885452371329122060019507100765423441407967409337913724849489933155415181561285651349354257418316154012474458220456438436830753302004682154318081057461594531309810682542472945699090007707768899509730980829642153918373423630324360105657019360792849918018548877459230185208877430669813820115461986650368047649958870456041033616031041374382112824878853075196229015815162418509263111209035983373138450128639236466173388077813465324564412161563973338901125001678745071937362241652796909710178019900009384439393178074810663655712066348761315567144627915601735251839609086557472419368299436450835585592440352573289248259491719403295141734707250256964828167800711686160963693170799084102747756436017444763200152727199988918210323116276052811860890927248393894618459595535624847420501963160596063471717349661505400274373234692623430863738211484820590888288912185699992339366396195594947731004709327635680999594456727738804891135749407058997865722157400996568306559048994144825815976522599074406280884509596302698761135060625776175619982636347187823495958217700209587851105012515412889575645578230987637420783520644609640111905809438058932914518582283656069742913515664496601572260955120473768367101432421236489933325807284285540855031552321570443843021308126314430402768408043439395055413391877854661774565520077471241123011401270424594875517413176600827391019562515502970933643939596626882471611798732889836665518846773680692910577551178223799250428266390124040860479195496222988357870697788077470875212197211503923323042187566980406291737438381353664257924510433533032315765765950802508334045863841327228276154427556044792118065900115883612181176305389156153596262335382871230884767600804274143979444984111441745543987654258448415524196523772053217796957218480290755649905376823963639679383371398838244450964796138808831482101700800790510171602439034072887058197179104096780898083151515465339185235890666617335803938244209379608035750218170147531413338954376117531305693316415115053125194129781730372978540190443999414582084748769107992047081297399493203632557542664758808813463914560333779283270000100642815723207608535750173405192631307897858603933521195528418041732811018598291753042334088161456365046146098833044888941395839496295335779523246471317798984723858281830029226312597272982439170304764773385286198982636058633465070798562746214306544052081588878187507004381847138906234030687339284442600877060498608074264058645367314730107938758674074278745428119951801410143352772754952174934538081826005329690865969784629374786865981101541506992373339439006982827786848849998365730450477635168257037044859863104240077607021328717737821782475222677287802947631061958705488029436568717857689073694985696159489824711591091308431643325256472280736754592521739841785462714970169600675710101590386381402849483555334721343962842176204746984586770912006012858120190871533115028397950191619886786469639580307130988991696342971630227985667431765278008952576176876323891288717375487580357422562548336403050836517740648432029389057359331982255360052770764804431597195279002897309220106412427075992226687596009059572078357636380905448952911553239500579607421757590327177408229696202596311046338227801754295608037722456040981476824925389134100727123085949870220321687136129308270781785531780183265756750546936911283411195420607438642590544549739702546343613615179642301848945672130468500089397249567809967870991960064338435533631484898319921319910426004462616295909360957259769450968229891003672924230860093917889415003384965319852535035579907550783568283254060391495267853128110395843004558583570397689994380038381743556195628660613040402821218782321223220302151270768688041661897940159625423479786125354382045216598267468945455307541125738380535304242404230982385334565945720339631284333375373728721999730591410566474387921777783415831679109363182047125247710730545896063865700277564462721368893954602036284466081362114284952013639215162962221829097126337337715158667537170397474871600917798986271672350991313159293019243258995534253263676162877650935611778654646728690089581073212298578450639544661726969085905068099041308872039546125647615419564857529836427087454663250778021905482724970553232049004140391334171467097965794613291497982947174634527559139510749819321962365747689897444459400373629641092454541930637097306190382601593949682755869597657132681890468910463150045552808960780962991097248471383948945306818603165734412510948606521343654506973709183532254956330249126071939999097082228642675428563222597036922005995802065803370641670868464118870004415441767926011361047087303686430670692991969506889001872039602961921932903762599164936190147696410739206851682511897670685749128668400260928518740124287232638315573995207105783676652384186918626406700208451222799772267557127117420119185846874778669400985140730135401935806486665479161420766801108146275264725856054239444736243521681383866571336511149761251710059700248216781709454695995848990128236187125478319782028202015433729181725506937257551296504627167823338671931251904996372630934829298735648659834043687936040539932402044812594540808329166899278658748899343686313051058325493535947752116105121879971200809791036235268781899990624124112858316913143853246713904191277123517966044556483147559929455998996406148956682516017907810590676011232737261245091122667795053633235560052385733033275172936024976138909808558182042015234940428662276118128286687867064409920717334714549577490247367120371611729235913420592672722864243497790565752058228922273415789248880969915116672678953328374074066320792969070074081306681768173906963523681548558425693711675502259184905602293044465950552047775714880076112371189555728767498690706846773529629036287345428770744654035060710434214280116058458818233596656685100054497116672857062824075907537762850505876420150044823892231801793192875848631345063103762088540235532434151614286360159874579909722670852993049748557427239371344775726299458110017359283463756551037561681095447016865596688931255023522338666785018477529434469694737625987077713044608222642988175568491821801759016922846677275928030240909783981524569235643997669937422376095166079492100291748023414362036567921217270578375132903604799417026227214056650283766544031985581792351808516324262541750030414090475496695599454579505090353432697332475627271206725684932538598876748072839346099751067462502210224480989182843927771243797327878371187983672720959317350438049142072732834621512144987236609456520730543324957967015600659796704901501455605652813679529432187382862098766182736113056080866443076589955836267743109414646158031959131783654510538439938079853608305216072641413565824435856894014120814805903169811268588034824658682162736161100207475971806289671297500356586634764490278232438376910465578594733158894411713244202116722953674866663751197470131279702570629440884127104755240320722977349183730664288462929961959715530770284555021974690225693624216849467594918084846911128073469708583512912949850135385295277611405334631108544594941480504325438389945122167408017810009266686978494433429801337139875453446322965515203520216541402488891318607520048635022036005595514398049508151071733866282562361752343670645763915816110220983542106742601263188496994381770607114807351682312664798049069535249183187972942989575322808268668980635625170643584614001233813339810726067926791348332770895642307486113151021456266340319682790882411414625252640827257328686270477286111888707706356902373117728529712202763028858312951660581594451386661337588904023064664436840868858735542655397625041685967056304754109261438756988395880269258966472138190126527788589534754288942545498239146897941175631367660864808434011481408756040373140422539682878117442826937481793385344652365946315076174697098442499652582948643671512217098042023896025309587854829415233957076929872325940113246467574769276955138877959186474444284808852530437110060603699387336147851406903822628141004675483582832634292729905793046896672777128777498465504946228724018311791475976319435875575886202188982677701740516888691137156777308571031961332649892605932578070316554752602573209411070140913489755715650076788739848834307738429601793190326321933463475241697485326725671039938992878200934090380963121156202244525624357871297999382005197358849633281369397218987521049442370391092345895387484039348622559811281945517875919277891766891013422280359649082595246431999156742167678057338704822451500740209435524503730203181517909067070207640317170558285461725447452228364592141972243229580189192019496256440945848296482181455503742605415373649168505355637895876579943090915826905745825122063562932620102533030289313730223389609827036494245945920624632289346768490011249937522188490319030627729637048961659840015603119711636384436127061818364552807675222835914086162417046321103258597040831407431253054565655890482193602198487873961337321446091117457474355013981309648272029242193432068173330365277291015323137726369929933863664847482421892638640073905379753335933920146924347862931114867655561421767703633853956683488811907046179802224510440651252388588691366314362388748205138661075973523923299406870763650616313415943453819912171426773761140309116608617804960832090105943565781007786624818848775133282357881519318721497931285454743674528403100478515355427379619348536598466580084222991198851826088937837233848607909014271906314575955023588919281123908684172384767861705295125557577958910711789210347813935371687083967314800945701978608392662038506397184329164453461917160617967193324593627588300162705783362867169669592105165310714913189001856597022604146083891306478136232881675603891205664050119245461281134177817131594424453565173009627067277471274289616110995481398695942261855751515601834636752556433306416869919060694175805445117258824853471984483576081497941230021779258741247055720299172655559093271560602164814607494402718470937877984947427867606975087552793855929358099880020724590877545135975050943894937579117858774221823680016647756478873932312397880070885957231892674176358137957738379816570752448579775905374517428329040291600465718854903695485247256710748513352853582602538278105840533919472396592155048886956457344926190421691178719494548092965655826477295088218152822192523046953221981527839548896660132180322078941482243451397226253277746116998016991303795010759625554055401302082453195783202135281944140204495051826983099860928360086941240009310147585111833711645800144163526766514459636758824336875436492866043298639000676595055823959799605392845784944826379817560330913213270271555338206531569563358141854521818759699502896180640742560882460086142781114372880318846605804277761475613009181045921948721351359827464414990468433979520835987520493448920586187313850616891017362565253955565946858493190750089571725642026303403582154686995133069806126041706191207893231779958210803162168788020775191481429183526283591584909425068245386086685712980619043217667752491768732291938331254322484764192707343922437293765479177202313868691639454637112672430719735096498428234758128443339933772057698192740505914978887178009691269792861783187015295797860272166866169916553796466146550639571773583268964174543634927689948736720399408974226873141133555948177387141782747443316507793100387108812496794196644264626595851829958618188408698324304800877875365475762747730708201140080728255921016650492904943569375019892740705453755049064808339163841381623210210527670384277341275005691681108179253244800382896854137418286779219813959008799973847259654611730543606896264130095048234605002195408832924012985856908562324069403124839385291092713525646434131659487207590491208582621670110103624562032960506680180598933039193512535308261250874392487391577178945232656915053578810906466106678176409134883434726453761874240644635276532243250543542719991877475584211947312763942170786317622499022170679510229328848010689653541875929229428873782374896698885117723059598890916371154792178422238916557269497282213824952985823252420173979270352933578969083065505996619698455711409915300752858256288844280698392117615180918934054275392828456623266318497000543535113579235786311491582926741043251230697203650300052003294069740802713293592403054398722038571240804146321204454988784665923718407413658613096266781082177340010798672659324923583488590738262983955870395614468420359460780622924879403006797897409910662266315722932484483462172200875699381399965719941488250627872716134849097771965498685163484595756390801778587254957396252368668986376329941375634975581174571741820993241395152233841752561494078544557195584594794886935245389965139131960194738313665936364021512666282431475999917745463514936059133612737895283797268588623535300688762098129968310224816458613314356594192404273902327911345195983034764846575382828214056798218388933336789868022295371178859270216699478296806722938830034362115195363637821053244356444601705385780490682017127664590511987268598238320980753684426340491217703665733250022630939412914393183385606323131686474252683981948053823477229371092491041050128959711314311804433337259724809602983593971604370598022446331654416525786440149357925128408670724283406066363040037011860463949005598538271153894232506658899348929422418479746473465085125021288976419632940729021964470068716679674082288247078205443477332524324497215634875041660105284808924054206443046607178822591313659562347619380946379056201945014326892832485995706712274655167233545545045366503049776312806365914430664691399396065855265898545808065390175301453666136974624878820512523530659346929812106388146146395271129021112388709622634541283176711806491240884049137977954834819415236048183074146633362759916819455854705125059230797523366447964098104522777976067664869314566650732990412341972399569620520177073993065905414071881649896788884956362503446537195328310281499774006610665050633577834707784839126188085146426909791386718631357479117221262525158195401455066660213603671082860931333594082112096559172144765260159697194659190580590190530908187731908711851790618672567977949167617268584539359272082127823808556173836661637518281168709061162428061843640818363069603796366191702784326901701990614416699436194195458949390951032603967109813805588795578764731498946343302680143132094919256436184691853463167913973061899746674398277714273720856481219175125619255263131399808636861224160044656750293642963928839608700748036243132348775581612933189331693331829443908130493378902165048507242337045490411607919044037767772717947717235190873825397118646300946938530615831166240522370398377002742833172993981798854624714216852457681607234572576766304030336717011068816881774827023550930626140516681347417834200735767507859255558416259664673336647310623196289837984134463129233449760120557436901455643100186817831414814122427477871023750722561414889511172159791962744378772465740145332918880350034468357802918422827003174536157738334641926448795546496265759771169538930856096180064176805649635556294536014571379726232509884312114890936924030945747915031066787011507607890194133867153952941172619103978773000905912666535925423653665345014735969697320288435478623341026661638437614176913573318332342438777304917560318879248417821520787972695049683656796868508906174278689896059485675630065656646011452514133285040936640854239826924501362660849536207878772510373491283805064374391876327421357409986383445269115969159735844857130253989045243107914174005991359278880025401070569576724850525895425084889949522659859663022466940319803395087622829134305945324870986561802598643004667004921325379588909427967003095243703171647905549438424795314336119876484672432463559812063818754661502320860160263618753110152838219795365247107770992244115785683568119843121556899872635233770898020294335770096669490900315545787281807774796554074234554437996652320442727204962144635851412659020958742036108781369629473523855380821196954019781448411778550248925116967884423547857097774559234606044013429304949092622839566592252894928439393054754974169139526170599304040001634494700608441453880784457835528326786421115331640906062700522638316327676732491199392655308300399004187260962998934549258153772842432957703086766936502392825550107709883500664162969826002430328045304261009651284548870813719550199875992583251878122148651837985404628918161515982841734483267193476119029926954547435819690857785682889578557532462123201677667349746265360046078443440588387556712514345036875758240261362225133183336054262744947251332207211747642002208844712396891715795234837446699243898461917755163191349235188800286894496725419243742486597682150239677062573448137695166542776421524516312491500062342057116561903923113617997586293777577851284047366052807491466982515444331846286046848625332912871577924252256217180872605505272677753715253185900651301190211477496320567900390821668816385784650788318845394150713710618873332113225096175762246928375181386205709001363986093439584713493895647434324943677097101762321947098292180223301242798016773230877687382478158401734655726869653978618792247528910969288950515303155891039305150115999242584495527445130039658426705662530696903710114780002331260133029622825363444320097152619465806065939848581755610730218191234876045454378018560672296122895349438938262948449522140138572333600602173689839579726330168444908121538941708377909000786547625512043122988287172635613091442335300170386033822996707550164937704997594155386730270628610656390070696415020391311856133386942795865178007684467379263916729020838908686947523443523397395239992844406486633492153902915518706916714249400004943115508818328894655223207760435718275230627330256522890072060340223270177550713024143836813899522929170356192072449723568422353271074311998526885580719676210892987594440963259318231931525071538561145418367287412646222605776192880883134349693260250739460405609625404505732003528043762979045762139384744005345892063351763686085582759533135915501192003251826225163845257306379514101617822228798977912628739972652834721200948022196536882164914442004787842370768277002306200785700192901398459258810514467266264803091935285588891174955252728891801051297396328186786553268581336619505111491777149895945293266523472942248182253163400046755362983878990052508411868628932704441205371022986105517110368162554153140891242419678659236925361225184952845396975818630114216402917685096748557828413456965142949903658343674059599555564060587923082702859264067450743839339471634041194373524844975914952704511491277897047941139226964515449921491811623355842207600814446552180187448882330217821548065448931344812902664642413817348590964409628312111649496196849176830058674028005100101324420448793871796795110026602364835165758299756547899531685538437405778175371724419609448980682373425420169146753348898224283999475730340044339961719721372661446129292234996210235407680952085611037075040309216153196604382218352649928174872628471645684131383105883065064581955621930844100291908173912778019294731359395832757870624926179427134467405471074932734745144402002268408692729452345264038619940719216955756577139381883519993936833901341189112018356867869990029259446319248324088715481512162596926719849905278510626733421955488862377911229517957199537960007029133114325587117340422246469243293618562435678167490034729346457293000141924430049725903297240106731926271415559030090482295068822708866554715928738212355399267957514373923698469041144854205241385431894630958167701458963571120938742542145591840237779807837482137885510721414933173360077048672379485844372945229645714992546699110739122866332701301891909661553369845240073710983929825181635543487002343165598892268817099008889037393602754951495631082805582040358441200165699580142136723297840171873302890385893820975630499867398859476973178031246285214210987816114514604219564023027921379641436771582795312496844647465447944819033261905747841581994413393433430039317049176354526152482289554454691660499491433697397071088394014046882373555432541370274835526816992015403489690999890488948621676448549918485229009748462800852009052296979195410277633733703799701261521056377476283399762254204976457412607069978877337832211267975928799641445525130081055118080023952493437023621831498698170353536617819782281431804152067305703494711056747856157987834830513221203642668729735063644762686968824352866677421830665322910413981909072374582620683530115131546303278258415035204782432940155465138532378881085809776335306226148863628770851474256970931603138980228564928420105272416885819732963257003708442585813574924468069231239429704868256242810469442377832519042026398866332485251872444253195075700960199523127145236091268753957086193321325817360263431272620890635071027274734319781250496027989158950791550040361541335276795364800690794191804343256295748309345865424984520779966801757593084257196078370983842750805300124471907322813448791625807984410795959278489935647768475168527339980440194117791669216937441874378126721184347324286404362343199601354580994889928452997968062874778243513196282946499610998444149594703115340196672766706089364657081775908052753894567848876546831773516967452573427422339496717198505041004395548849404883186700611981580078816301655975691630374475972294607722357211752590415864807143528930900154451074341790951084580386045532070010611112673754064843231488418523748408098128904730591073158935278587501629115994963441492390648808595102964348064649778636293106671816608032635684212692355027868586007339389277573735073810273533261150966495065046428424481338659799350737661014447580916264984137754207972316100198450955524474678144839169684293169805042176269644711380142559777202789735025615115847168688704007278430973092483363592241836198727798543902269462777135282150062820669994332244437782820727275705650398169263069825954780549448080892567326414540019690994274905692744971743163462956556050513912562041544521131245890616534442823948991428275483154297588934591842712050233358162040077843556847624231182264371979574785739578168940649989980166039125273140162576748537491788949558347852784034189114858579481861367814211947161360238866824573820378102254363408940603565940479087448323859247498298093756922637358603209628301513307178130094109720801207148410356957619429417118692123070919073063021980182803409400049165306406448005971230875564526262218913689760475672251368215262757629211129273472830966578346419910976951881912807734260949806181172111381565989992438108822614387502472007917658295616932981452525710230865851362487313394355415978797144428618361837653368838754376673215221795800927453037921308520993864184499826440218676449855596075910981573940259594197123591832050067266017593887367359461381358406878210773999950245927523397766462906260467926540476488868996477963496495829336122359298316023239762695290653377810585583728060344445365703783066819562061880479934156315329187908172990826711272896865460734281722321852849530973582806861811066151097887810697113179220419937677870174902921405967959241908042889197531078821594087355068701650369367130205729492511896487723128459392363129773359789844774738499979036659700003138424943978143100888338229968483745300060420392699624218020725196040279746919894398063537048988364294107874456647996346149224195017065739291453095849996407297275317436224031879577316446194789221938352563944032170925085884717558200740005048846553891048277485400905737340606954695938517572198500389457986908451086462469630375239489560861579192591969703834380303467188259864202696522342867819940882420811289684641729303590104826347513898497517548552065901622651946086987330900177810489185217331587301395809072922210104229936374791970454565984069533113582048440906126267410858712599357990232987605990170563371365330968539753097463080783177527487802566839971858503121760513529638828712240404795664101481847170616360933225163579345317310195256249353237147929833696186059276188894320509381514047187384863505639018138098230213134083292279207613321915764039490298709316191498198970144641520124055704906036640329611646428811285911082001124342503105920410977627409880085038818884437388627572446554493676219014515305792046294574220241779816453731608400685668768318940366248298575869586355420123725102550235770566991138946024033272861646460468245256653397389015312627569270079101837937235943314041904867989875666288559609760885594624073460715531212007902541759795425781865180628068454978816975379284906241958798140161863215739586719048692481257512631782793316944569903066909477710458096917214127391480719299192094421956844320678994340677278125932700597925326608732075936392160540197417276730167486975783087669734067758223986331622489771709294673120545455305246093866282957688518676211627708833529235331261602264217697078357567850324957471513001631349312984139292905702390459080814371969722687371529858798407187674192546543866569673907347374272648602560735741635152366414184642112906033038918479583317404099648640407865152614549805926818744162287536779325208431393631152498065965596034783406147970669739924839196452442768441736635597849559854373613785325107598846819450642755670878112039903635731710948853404293498235858249356627195178304605638522558058664250674505164118367043890844925492694407741185940093060573984457341285868492859288992501141347226568861618618626249934233410363142581418175396652316791010272919703915352120237174668537895271653037538611698719284264726226338266356329562449598865994219042742814336325394260010650582157540006338325431403089934761636457349612635585831808559852135507831142753379982656906683467862691716549208448669302715779585128759355976905824831231778052823828440228795505070544379501923061599799168905372117671354496523818686777549870097705577724247616605862360861708740383895328864211362350719411972824234849132263325165163753302643618296325393903791764218134914581068759640561060352907247700031189238366276448096456136158213836816896672586315735830729368480339565512083733973032663236077895750275678083509324071057786774304362212554355850265590956589488844172535330306489805088681746097004217770484930004744654051377784516661219230289788029984126055961030891627511430917287046400334542453316514525915358666353135919826950911087394120697684901576138256283750889981663382686497153118038213806940145576136019209700055202594235314938004410171423302476228784730084650201583512658333152322311698477961470177100811552868957578527101805792692278218194237813414615225821384496636047305977903352097083291256141136329631618962428231722578194207716746920742747595423655631124538001518799804869513192739905298516769777089802915611378511038472675805048012948340349432715118987705418489185683815543820590103009846295405427969497172052877216053974334524739828039124857149357225218325957686095423865734148473993463177204124266476651113856831556116407831955595210077444340627099236763007601564705096880462009776013581739910576627934258711026905530573047317988586787468672630769183422824890930231206942395275290837747730917823042531964588833050860121332277438771158699824523806313704912890456850883828613554219947100688027418486187982091048259089386226858844239955994657662953877193409973902769489868527892872987481042460205849032066819477730574482256538443440645117865378581165839611420775815264681643114331253461702686734658863514693307790195821668872584155623942819467840290357193093763520084614800251673956391373181100778980195238520771201542967708685692136221139036606147942438230833629753149948511090316676901029942286782745984797331963900149411068721145601733872776841628785790120918414380600311741594984805476850335383065384039401093120961314013296940251865149726774101983619022371721356192081066705593279248759292825825649421336227629007376545375029694590767315842076896514095739888703061444295012799621805740079792666805310746980317954517411232751129073379436573368087369152052834360275883449190099403786007091960978413701450732489184577078929090722534313089136832398225853359097996093469959801704409416405605741429285160977485324043231864151807128566166251520860100584805380074205794085425692737616637104435352322830900851592000299546543387232079831423743481427377739247715114123021394872675099885047121685527325703683378119764844558378114437469767519236233085263650695748458418422234336990273034171333908697420926838327467657129551790066269952951356458981137997088655703470101800328135131312857769197883960741201601360739192931522246623164120227866935858658973951733979149892188231855801358988488144925482682856484604566460615667574330536473059963210747892234671345872102199709337586172365567469848363571052769394817867758941376294079065890544447214014689288435167208641510552471238987467708964028311912534344118570138356553776231719190651551928747850439358279300883683597658610695769175827944338692433359709802007133393747134739300374461778933843379104919336968751380827305075308226023392099458044426044373795391878552387093268037464002304213457472887129447258414605342306844506963766146250721760253300245988619971168646070783867823279210307098878911940514951001244339906464755902669417406736782067057605261416978209451615061725026101884316228664976055929805502247875013555843985668257582316243131118794636823023798944639235708421149719648576614833128953952533997446044399910697150253519052014801125443840109139085866449008433525062757664591276975714827429426581898063836911442620549358520885841236063764438848237905845776496848951499639811647445344540654586589618489745830489142096352991015698891919990043478829887318844765584145665509278086120561805548026782282080171270336372835412325595604609952723783071478167817378480217403037833469951668002693382747719385303386511150084624020887699520868596106153006873931302802279793198318680411914266833586815405882275055532137218869234357824488184167138783943707151411651729583761560026847539568980450149031487557669570081621222873340326780352995929252671923428760686794711542025124473637338852108495573579863617069525194087495122782653269860767537357469483812123304394994295574227013350338875379156331892998587530748298413371889038267017028550200848480571753606091210590202615232074134641901242025538485025381909361627463744099119563551693806130254176578351026565290514012020302058945150596878598568373069457863803904025900731876699997075288293786034023868433641479028459307093785834376199878987064200821534746011278664509358520013138051711718942658282497794638898554470654360352169892205676355935078757187655035708778786772780436407231194704576050244720359725084079266609452285049591049474147517973823264341216220090951108130505776404043133799553761984587535549288147774800192043856032752324888075036077360174142532702358589606421010222834854976155217993392129751242102775141514072137825429248624607169710198018110063933173610985300981332330034490969820486669838422735748959688669738514044100993431581517217356617686180095876797757573002897158424909762301600859537910412966943257751215618465866666173523126411201946083805772779159397811354598230886494615804051474988857254785328370863554618116247776623802016961736773563675898376598515427535537323693404737666383665988535843702404481618698724977230848800306407482125033904772079085500959773016857426948472482785846965949995563593813379152525531334298925264475723676882227309076121686874759080215147609088176519330108667870506422551123408891031416916091456344934273659701437840823156784952248052743710555790531015898349179242158280365808271750088056590089752266668241939963782047757489905752054432677190525671452653393603891748075116264866385820683587429250892090432814317388042906873725586799088467261177226606637434360462882515397168890794997915001335173403851190082302902524947620942926230582905925765008245587646915597685042290180341699331335607193779060899552785989820830790307007905413877839633034505835836590603601973041142392694990016615270211286836320887899630237276771966796132987501123541080822312432572795059504429213649304164802344671817524079719672223685376306268072913829514932687562938267313117333994272887889363031523989792045502900676000157448046621993654759659892832329097093522039771537344591553463390975799588602374507578376625840839198297013630289873689836663828898404097977040328015460304756112539821492867783289629717372210617229204371765275948540944166863350709178976600028450021653450949001122172428645349449966386767628484497892709985140588948305676661382170591260420945479414784879027631833984513171240223286624374723965115857799296101761490621702945722007087753170972419267087455264348074788531709396245227965719604759001804846514682137744091269460116567264511422759157255744832757341326396809989270453656481755550080589203164275170020427554604205078724115556300342187544243950002841870064877911241397985485262659254013608377377694556738413907627015440794496612892897711309319955315359565039018931788773271156700274130318110133022674369200892506770919054512894835562834718287720208528621208441361276850823681539386560855399070291582071909122193118368455628045036199555573785172441813798153285757928252866386251989802836611502720111935704332325709608217724972280627424253180792843480190918749509973948480895183892251164628642574077850616310508793001161584374017476302508498194557616799458861530439506692149173431727836036808934773081093109016978867466010205645005523915959408744381834777514415681326275295920512454754816208891922358616759108117625206414462761081726808539563513750456732462598007312674956606828649410723857741381656437709802707567741537177169933200511091837819873264816308495295993899637288345499683143675225494379827199605194783761767403144725328819971008687169443793569031888332109332164928827500841673787239604873269554742994049228522275607117810728620009427252542704989108060059628702278722243687350425997928452789920983488430483519685053667630730076909446225909955386336739339324278983425490932453143716474137116177046156908258932930038259677135599927963220322025591754119144006210933300485789079639252884854783692383945567578601393060646796860963579872925135500074782706599572067790841111020360725197461733312653511745133898341971177884531675100856427415815366921471549115166722485639955061277925104960271784978762665244524362464614125100371286016619287992059643545081581305173043028227419812748332134839305718016583374804160093418552037827378703808768710170473620235092830140279034436497104575345697210823458412536565248004098287535921806424710956265798898544723983505100988349823319461047481838400099291240160282994916012746205229570505297346171945582242718959100030348211676627957955846302895457785193398327000241459603555641069006965880830310869340271909185725779575278531879071404240433232192120086159293068803697911071673871682471382723627979222641873639359653116905241543929282928272849189862907221639012396170471033822440915040967593566644553027808659419965332069735029179354692392912786622602600717884129415853378164648572351053595885850850491804577253629759908158824077610947652348552418228287024639401737796721542600404969026600175840081260868874319602874945622017811608457334985230269007350492507918085941609823803891537887060887121899205270149798510186625265745171636775445789399240357661522626205007283211128327788255051650685991222446801126211826371554853410885366037008592706064652277978311484537413362630046560740329422654656090315398659214542242817173147285157400717553794695031576585007768054194342213037858690669129047942583904004181791375790560059504368429117404178029606599526622820281940558269385590119632718284833779270946345996389540750105007967794563964792001242912361260912360101879104030387708459963075601588892823195856847308874086088441247026050986564148779449426074806388226049498882147113226246288621918844111099946268412933213933796475415560412362506820777284626655546370639170687786234274475934994152172657539280783033479767602103491390922866064734072866266334236084589119433917261224857654594814035829420414752852415169417916861966830335875215845614588918054015473021097710204280831884672772869201265594036166990679091920198789966855882897882903218053367391122681849680496618457611928930645854938931664663664352192548339241233146372054208488802207635049504710580141412474806371943070226823317013614743604736876555290339040260242466904596060420051271106979229294524667998671949448555939425652441316258522942842565998510598168747585257834722138001648227905598207394559617430358826250563016258707026328813283819375769655641627141205415333872890591007190909440396293108684780641288041059645952909797796880416346068955226551109523091019861805653802415802858936285396565536661669593746691934173019935984376315718081370060786261504350313883548641765938287786695205508038666947914103219292411378251352780475460629911491788569422442119293746205198090328304326476217294399838830225546645716160341339841140461312972793831306258197799008570473516501007802791601312355542400404348585072922486059743586251518986835154394371100584883393478128279183191020744410802537086919706457178382639242904467628840654560189312853847053944736386847235374688914306273426581276346401532900564262615862250209412869019060562476500034010486817273613944605192802433224129948916750988212852992017053618963362953142748019203217622842212563322976322836072588993104043907302336996044286725014285625799835260460006527177094128827193723799744186942322992641979116030133692195398439476539009566867530616955917954547573465070468318065190801974196366954602070778445952426412000835639699369708422247723113212094244399771452741286184695106543590661193450526391882740755823764368426399976784024143736074092873474040341055075788362824792717374618227892114967135407220276601862180271083899635342773483748356106223788650462322660999872906715326612597000777670533475399966005060667010742117633247393053107044883694911898621771782498105850817732230323150558072717240254087150819550307206603505474157372518638923221464895387088995687812941664484981705086596808919026850094721080629419224047842803276908351434742578753259437240560588165103317963785709616070333558997753273722746065193269119881087703485163299397588677688029504747756608165796916999179448390270771188944409699521589250773978128533664415583174714731073330893585886565305801002267807749331894506908702133576619837928511288073946950007431206030032415071080430718027862131490124381810206100650364854120295907422123433500845606070128815706489879758755589684863725792039826433560425923794533713999939495187308572757914160675940924514002659439941124513638395440313069537888634164381425986747507585558959065655873531888898480621213787663078257140322254504596001735104903222738048977070882097121836509735763298151249795251097677119463720641074572740521512464456190155860095136684155545578858764206432354493028896197734446626762766959597178613211291071121607575775541313856254068111418315099904186036130339914557823276179737877276075490472176049448915930213870323659584689463667144186263476141238018374807921295130007224588143493677724742382079479387709987317761426026436613891698427314363630689302473193392967152593917208032900565093359974586739844000504206312459784268677525247001286077773906575903215567892187857050991947386003280025070938651846312716512569033078732476243557958153326503331146466252413000531160922805886733474902986567096725821239286258649320827071823399411569498226131185705793213520617301913702116214899355624317416343856377114369629966820041868040737082542624017017687333277726695707611090601015338667035885821850488389827326058595584106102025855152143333735394758804425606469358093122435993473541391120227281426363915158278635838243538702275332798228555576778905212048361275266708765132776912210955068425299873335142476389362958939475719637155367644080189421685245737374648916016366079909522933647113282500611622949094007975636055527656087493403500520804696895598062804703766484872783853293548866990109645545036976823247019335773502041719282640038827308743524130238026604809227437184219624758142312794251684712766872769521810766262263325412860304127437526727582556515334182111698530973767237798707332364121551134265709517425587633415220697885699979047941951098778987017995838661241652369883982316714909669940056675163618769128648521472101775946921419425672881777310895929390902502428956642598728975090075001643261565018574950577525014380491654548403337067208476441101231635977445546152026423942965457329690739990730584465154764902898627611906414109990566272028777850028388482579254362360284333634364752892128047330628749128903955600238990365478586222747498373490447857813629776342981131157886725377495123840056507833485423991900827870268227373042093069149128132995876644003276674138105995471603145329079871543024827551371186395622857856725716026262056720118467062976022833589801450496600733084376702004772513308233605287864012971432763858987970028382393914830458151264698822889153998076638169691644563026691912812087283240904368518469121951387078006835902791409842525724357299058787964313123850789909069013891114224494741698733634057574806243162633967354291300402889910341534997076068009055872237196071161315658974547270813947692925684212536447764630601953629115188968216094139846414961207006199312412065707540719672195350010383638395075073947288085215685432499324764830950836364342808032951019354990241572798756484728298547200763109277713249965837110278262101444732640750220388426507185549096371498453870229665621524012820154345229261829566650753792465835335669772737775701672255801144495227279621682292056975674437987540806643901064000351317313865086567132727671285307243875550421859235206855736004712757505399713899255270344076166018783320010793779558391823232850078048015336817937015859956245738854786286904909266879127625867249914995947015590926925322939913518203644651577657658528766759179333836139707300477551907758339380494284454280671049432945398957575476331050585517143359938063187755462091045449698588377287068072480960399002160135166584164016192338866484373638551196192658897837309483917954246316639104199823357180877006846787044681493013541155371813385917792179452371974461502846527088178464938813173078946881513537909721738498177322416383485669085515780398731059198603014004024115978162182561180167805391930653862831496359185302529637715210705202436725659673587560988920526578159402197062819095793198901462424560337618566840382687737056519402236948009288866240133146671712080679310960223582565982093801426706646716677438100608615925223227260525566922256897504339423987417827384252941379448922215032207874428504661172768102478810506652749531423182646844863510585192158910717022871896350612555936512693521805441809009778334072427060321552135887133411049840474469173624788880587895555095669604298161234133148302498478753719266582953950535762816246832812963222920591974455693559135177331699568076593316623744531079884542510491471411033523468468923498249714025561449670094393321075214259788069273254945376639305686537978782556000448030120686587490979020151373846252389656007888643695719618962037327339956431027390961526965304254136596258288506818364713407017276744987071343766608986750377993200084653652880961923340055231127978575375956199639884190004118563677666928623151234477725649639260932719872893675900480581482360894691408630524334284509142970839661204868929277336455891687884471142410900044355379717364210285290142703792964158333854848246610644954928502654940582775494266047427289433306587285353281391894436573914862919516013485039546558843484428798597200413471289323596043776042905155327370594769580934433720201187164698564575669957656746927910706499713264020510610165505820740903244761390015773529479999358880547265973485673848107215763087456234560001476391691362666274364161580120743195689533049747264178422745376851023365018897540722096234291708866092147836923691242332231167345862949401083376993099740927400854871131316315009869952626520899740812522037564899522097282607822560335008520026447623618610194876592189759973628484461555315127392485667340306831155825461294836357283682584470723532640291701463929809387313872866378557294132233581997964720562968027072821768093328027418618528842100503884393811160366267103011724573856258461481392690963276313190881667246715942232467470322554151639682786956490501580802109398933539067765212870689860953081677469315025815063754820034559645407034035041941657356013524369081437236868120744369580837466630783827072338206139132006121621709379236916241831690279786483851909557732374758850109361718853650336751956050212998050596012320886336153613042884870474037625841603234362994193551727213913104699751250665216373285933515296687570450314559073027801254289281622467133403223441269463119348631389597202772087739081423391269287014746616131237950940428736794139926624453563238288608353906002444253239222441117370341578811689181994224210748810484567499901169748097409564544995604863927207270661961510091516973823244632360173324764154975266535162924777430316564131184928720931283518662627069251836317061798194931675594504431063958305092713495769005215512198893840434306850396696035363074792304283311310727704424224438073901007628350429894223806995887887638136022970411048219685020906033398754489099028435029933460688884186233809592609889548295168810804615727132460275831859688451713755081174924425535950519357113903872177248579170717137698454186972396811828026402851459763253885164834651571011561150671684065109836004963115266954224302653506528832740679259367866080590997520387442160036465550913052917869705994811284965342856295367685188924051918921694792696368912472629325065397308597992588236788990456219044860202860250191657894540385563769931992037366032077326123954612619904827436246488638136155052319590172663738676872827708116910785726643332705897266826352983470522416167009666172792971345682466614362787118137202550936389937694800541082453765665629400641901338904761878966301084630543873669632391745697422088929740831945924891175729286177774221561890242806820114168258096358125450952985027288398327772160378834915651878550045293200553379048395590411786740374327941576142035386374964591028784583153214922211411551111923969449899269422140813649627250400724612012691049576250523257431844663686748665915210752236844568378027176438836570277750871562107950929269518044278725909326358083823289015982630443697029500931336128050462061881016214952436386436575484494459520926408696919637624289640631388517902137556200433986585057712087818645738839053057660786629551148462057744291540380264678346474869393884864899038993687204925217634757221236451105519481163815544643991764880692183072072739997277394306202432835392021784213390563557228130156880607234471656398536191430495638489267252053790313583946600565086624858804183899305546767955765700871946024329091037055555801794950902521610500773132038894806771578713509402090943879200454732314807481133335015239963052533546918260286900019779825126263404477516461426148248194985133705354175227904015054160765754378081574426049919812682810008381003342497659756469355145283596885879090839125813418317361606892586419064856363131751788072531436810853680720735474031628261036885369989939977499553626167047777025734439358953999149268494105874782528980173185692556485594362157182406359363064896970330306646876368954935996052716989890739545026683289825120432705177287880749345933090436912201833246350385120391891926561006478563896381999599545282331727321379383500719689404948242612178262044639132396836942395754384292041903319830269854579716415257970945755240180812337907499100941392791980615831210186860393222145746351413126782065303976609008772720513219814971944173108420013558119542201881389268995618740568511715045507518385762311942495474446199264568730299288992902103717462428644714501835463490364781221414642362308795843795710275176023874836973331985419736722795117793534441741610507414289117792871534550947906694848614181951488877045641498712706223261888716033751787992224727377040946106586563020040189793606185148334407175197528606739229886480134859355060099464608053890846904760036198124333564428056233719527274100381308873700043689338987401516481317259293899316494655084531344586130584160003560089328413750734122449773618732177155100422803784962239388301157941496756512053518385712716873579425472917653969262426069103964576461776580867574357378452013619653073091896656719163998983354315438473674108485568996112830828916236663168985653801977262248374004840261924066006246693963088213962267772584038287886172974532414664532146770663415287265089856265131710584114209845848549746609851380451912311429982788882456928361178120686015868815303627233076273139959401462968690298111137963003009332282109352561559676024617806140060316726182031024004759088757126826066606642598876683768209659751910931664626264455571624779461254761424831227873769604034550615152996412796410391078437211343716065627642055746693120200180002259653524304325420324643490184477986361987349972064595292197353159354274350002888769879798686077007548185720031972111698861258540859188219052245947668138485781054762901595326157301602757280111307158117170631032398484665636585025670294521112673489843158359923350562467205737729578940153293175643193904968766503995366382980977879112989767127585651869061444124044356395530811964351014628338079249509696184051741426342950345631843943754871011983134744762441540936756870751510497531977818249277164589783620840202597160256386212878230473930772263353958005022436001240700013409286613559573319598909343240054619153836427729353038712344751480503778534846755896360873158771151624439425869086053635710490106088087074175561806228006198358661109921173280316599389604785860097126668734044857190414085574335558059664769003141179759961014051479551698313999924248427234050202325185886812884222051869639576422459105516062002763550368457423965696796269892259016340760362589285865040786020541981056783315090320233128249621907067917724112821436662327637488872175538924140729206112494613050295400262224656927509965272996059020891500070180411676100718730708163642256444265048892733096449703476172864271719549176516188068630052541836850109218590336157988209204688233239084072870814425758168772394812219843616473390730507568446270570648308763723883906604010446913236238979427543116454150065935657626084300074181173419918969660909775615700817549193022455897136649975988222486283238048398083414316767477491571433567304485170688916118937030495261483973781071537959316959315362925847762385165401211796622078252657248941924190852119116230041644399922247549985642720090717601863190063604270970646515623696336390256476112955887301328222999644560921233578470860726542120856796129496436294141413167963875711538123751611380507374599788061230568693129604903838052244256474550421966654161238685182083804625715791894316054384610512596920702548430296500273073138077023951971157622138340206192823304158230725172363963616448780867388600398730610875894895714955567037701439851142538725935066624465420391861801142446968254960105281260787702707095966362039464901226532122536165730752780587002188437816818313242146717588159512673030238034957139830342656414593459486396922527157401634684394735522863988776534018253742681285911439516166753764634791009975355438474395814497153088960503473246760448366142562809455941821186396828250454367207008114723962078691487031834077543148733827540894540831754085794490609994433417754119105440058667420597125228655576648934380683697525152761201637152858455964318263768814274620287145506815526550826903487856889132059966384253374825974247285736300651545128961408731050026750566133257984879245986716168348238841028882952907780893273943961378648766424633113233961560116761388306098372855143351657440634699203934766541258267581264537101212448404031491125228853125495593187941658880596966221928546652418730399752266961854811866841861820617993841013122811556649676727924724079223081591536437549336613566788331402325660252352645817582155947343596309296633891626569805443201049961621530673722324323307488634432956490782955049736126590194720424105797602487211355909498209931833318773341878331659786375386482069211537358432154069018662455939020638330868980684772764274053117140591925324739719487906573999578197164264810346753773483419031553393431986339284357033488100866215565598119778918510605630385883139470943802397606222646128661153512549906960421390536372725767340265435865941681617809659098126451247025843452110664758361427745331893746110213160433739652547331659311861942253132319462378203657860472136748444018516207807661381032748098670524179538715887766986291089324771929435451590528479851567085298381638481513358520730248456229591013860841799705311646028435582831565497670637729139787508430298534862460838790177680179363881232672300987183014624494073910923780983438499623957114440946808610294252613843243630421816403044813747858950713228849217185546668995695818876273996716491284442501973544258330444113400838990735855965131207445794984785617793785599148181146587083742028365661473954253908648965528336323047258256592138496893133787963273112035106128759404461056850300327317157200946812977555120057191445755713085762469922401891700027701110691508356773896948716024345312011130799096614953760212791981873877429475701242002349210795771267537509299761302530891298563333012966553340221124672976703256239363192252481901584758078720576823198454746539923526415049878246717397428032091907034722146974118643548152162754727845035829474365220820889581282534828068673387977375258777178130783853717593768107635714639233506540342862634439884379468794196387756059680358872622043606384861247439328039409086288063451142741029577304454361169394389071419120076191808824973597117958218104801833230899504816455950466556622381387827327371578588116065420039612626694509174589703392176288315517516005952924587887127735215106898617360031232331327542922620350992128489618688613561406543377063218399058074847760260368060489653895735793695855302384161308844171715082169920188637418920164252638485843305070509099466994425194796692156890347235544120634929265264035088337441981218540700535917571278933294094923376589635765305033891345239158465560859115021351373635437996990505290109536982704597829163821626656940159961348333174843185155488009339967245305785186864556042680789468917622279238243783816916126180420967233377490661530534519504484952474149070898472915357145034551234343544729363637420587572935092935505114638059323237411021984205313500305947844708055680022891216022316109188947509879700975334803537212308165612961150029174368862036589742203753379655548461182261071851629234996654279804449034984735759561485702610988942812178632645511938553661384886701083303777998464077613802476099719453942758121601133020371405100495153663296878942965249626017301252403350638047579126276302634849490957227447520198090237884600053551854892030837042438350231862854988952928494690273839849397383984042855354636679227923426803088797794056489174271934097302300168977536200113238276853218352976608737645480530464891076232620966456418719959394823780884918250064796646479695324856551805387708787727935353849032934441837920985543413551821429639746058615703018254986150841594473793548551964284141711969721830920315124042128073511274294939113106434028617429666530387414519864218574853303282877013783746477780104150288462047249208043048503696947298795364885963194346509640788218158312266748770916144316781029872574863370728879762021099246065146902818175474376220394591485911700039419516838984916236108621620084572353619901186149735073454110916480785903385716227563127952131438836747666301410786270282772747642583452580633910599678401937222320292400915362033960857662730582394505849045526561633971990787845874254536644907437501176726491346197527855813428066495809055828373798377877534020544244571201103977427968524250435980180421161297071754961411739629941879086588867695204568054230075613207023261343578711916077804818402615564531071148783145451034192978167151147978242116158192160695695373306444287619660950209491221159438760568943996883393669532753115299657288077055835651695367282974681351297186759519218808926427533159362954115097965278356320757615117686819785385635790751862958609276877609355596659755919503365242821757218496491698093013741292560046068675701220452589284687880779683555971533603018183228789055953178463790762702224678658381514368137341436380110529043067653499956371766848460242272579695701669462317751697601643263247233373825137240294437374380740957009243456579374840566338235497876551608143168793253160624756593963959331016428411901869693283418833402318967816775652059873065977380693786568143053223803368514546877281688858010418452374420762611781916286562496024637122529769238603883105838915692532880617391556917098673598537014954309544822028909971942479918544287888266852142725196689037012082500866954649374514853633341380443336292291619952339955133978271791442256722793949915342866605329777142375228617124968098772139964778795952396706410772113674386476830143811724773626574281346563659273700952660437808601936529979218761420896310704490684744580364312989898120465015036456592492769895272012505654609691724385717292555833192264844332247778500989527871044376819806059988902238049747743507295067260965317407596261887527261528319047997405387743319509596535026381091700635761556324976249229924404280443006267867418187744831167539666198885058634679358820637651597135628492794695468466239296461479945654478722525328313327215310257286537520870605823441910071411034372666501910948952508152084604024859879449755961283560075693162050947762604703959050906607307962295355106329071206682594772356788105172559261476488718537802809889404892975868569195921743715082794877298118697134346099820348410746334476582296745084132936144009463094392964802851815546903747270485210038623403656210883697313727360131682138108117492920133418008147400170062483142332481690436486097496663849648716198946557166245876381579340557946203154728378911318122882614302608507025004715910848887827590754886297989425052116704755943038543736605257009476744442085254773032582893605895330490760256586214401675827445296536123079806580242320273875149372361316462392337026924877498830974193846067356395530291881556329368004596753680014044092274683836943896571320134480892966135574534504964103557659835090082798856266115367694684471972070176345517755525602217205553245079906480225832632026419573760661955714669648236710891599569585022014298431521254340731904691036064808047302193790636815232769237858368936397688814485857648812841220026718985538017925561922311732998295180471526488725216719383909402423792686240335010084214349722710219943844456060908037446347578984703061465599344069134760080150408968587501346924511831549284305464854721738203018304026213802346234812948775087954051481511878398178187627688793656721800619379494460036138859326684958312269325893461951930737956481527555144747667218359796510795531438983878204773909311016816981998655446761728809942078293938652427222264244782218921687952060234757285462916816613842186635138146879954425655281463028471302103662669159801255597623060905270037840886330862939666707979711090388425702366488577401781184238896119752661764450445174825800174707080887299828078245019163418363451255132078372751562631085218196912377589791644384607428003304623601160892877567194461760192630374647936878206236066033807658890050494394339460276959469653614620503640876866635047040012162420792871344468885404247504913424396533821845608350733898926285306709349644209898956148844319893542574134960833947661908019087371639521976060771411212258177498444722346231526039889216341079516810346070090135910549376629653378890380360381169951545575996775555619779170430955448532314912081669439756379268870609763358955896255111874972293995782843448392109360957382103663888329817769291327150532710185043542394564576390787308895695068689298953245704802869831476951862013751353788509415697918294761614210414728025937123045057057086473669837755059017112369354600531076728939154498423517332333373094350744999270814659087606728742777107054562192394834882042744742905002153229050696560814611316234158867120192403401313354544625891171926814510879160802909544017837806901651222947487663164295147511472837256964824384515456604888916902008268067437812432844422419001959209688531451005318846600630526582693366687207278751677459910029868644640273438450866190913998914891663436095096097406212532921322427933854676105730545293091440243388220673536050489672085789801063859426012059688885472416667322358479596589086764835070969605820565094155158163965427884514724599730851927049337800060949727996068603436942704662182536904997376861985301511562396497244747048226128615008820896063872972070774068957645028872834802292190413461340957381052038539676666256710578718313940982937515161301505204475343748516736972509461824828098646191762414256656552641643645634429355786758841240039853500646101730984295192578244719517862634449881175705317812141210760740222105498467158929605563391344798738568637512669956556101487757515549825113410007676970366399507074594783466225930295841284963065939407128781745411419613874429481311892168618178229679858181211203960989882230539902369581715396512011469422692646629563457142602652076402748788538233492233182677479275050245314637181163532458058904105584643785411266058388631015091981019187495945256757675161405988047996333813747844884877959466109044047479114228132660445853961275932854212240884850120322735874894723957869423290658601314331655574983112103773195752865198791334329009727531571420586938140729448895622367296304461722027389764226445659817210202882066287337700928072522415656163395013339911375719241279816564297472304884206916145431458466381067892980767975810620778360955266802238566257719068816827340668366007870790392447583790352742943447047565748516602927247521533516256941732331484858701645100332736007026354589801737736365436321893415295234557424418836384113904036563162368621296065333674708307207932651817674159173346247924446113428420938657533555395366830111541553986739286227175198868888206483241801496896438770857069178938082126370732195241401935018166215654569128559675921621041218916041738688696535850363097796862014583651176028937977780428050973615204619293762218049012003155588715818770267266343058000301582782794172174521903881453284515995618215693560193975062808281528910067957180703219606894320008188771806344231036410908145529964538634780524981407590235701743450085148115967307126193005117304338018701576370050140587448157187796853567200089822832834278329784016571485436248075517166918003626147735749048629841295560847162082967392401215286433878646533161352555783680957215927401412568984242711579718094736160363804792535728268279125683496036287276732793893565902886952190997868836649534757641314329955048243580450844751879750986052912917827108693031331767485336685956504826580824234812493819638392005685017492159785423700073750160495848064861348656669862024085886525349757249170808346655892262822009800850065761695314570698874891767586151384512963778771136380865664994900373945237204336905353408694362405872763285711778688297130274134698819867815430742557136059177357498424926000522347804997262287280376481904490233450553525166239480758170201878150327798490082513473696457252560498387246364948503343106449654283940465089260638893717140349190305862268848380394398886649196894111937580824191235320017511575407950085093015889664116974008083896493209617521267605637319999067532618286077546572662293619150141746894003649772456786050915633924146246019844835373364748327747287147789150634063977870174644453786184388315169387987302075178041652833000538552913933365297973604790934573742362327015841982733465075108002197686997382739469460128894560810494469888320989004365749210470632698859681765469983086706641601941517509058350510380570408226171655458439025530967649983362577697174481435840950345493831809600551034045552744646667965658158884560618198257058347908092438972855572291160395403797613791831079352233719785986081670834492010549167499622436209101007417086796266943622775175988914079304552734171842456297724362246080400148023584672447386443022739263293760068930023846232364528627753811092483668371994510550081159885159863265510026362850626110406079675885493064758298467178335676345701527101897199679783828348357083163915801124016634382138262973146520993315155656613661654089021295610053161794836776533485592968054027154884710052729000733134317732872260160033866321031492996778428485142550805067429603275653780374082811723609639851609433164308301853260420859484484042627041664280267861532263149161860017214119035846172158755210962720961925387952288401040181997672430703882351069911219127642425501312576515617194138982008343412784979105706688008642483391470911276078653841318889492716101052019329270373857986536568584050992041415639964770374369822032630269241995061735857043773003881910904925659750420566802440472411613556849190803969565947913347944468726228635945695234929519586475179637680891245164692039686179827079921438874708775057129747404242540783145750060059708338485283525561142722512177801563480152768946561734884627325595218046351963968030310490276798233508694150897050720732173303259300439519454181273205534810213136704319968394994374152867934306159362097373235099533757207258671001037539890202712769772184145173144088742945022837230319893193702871463788635580940411291217764926088168004985618495403631397822965709076758917866088503610689576577400269577736141587794151286514877913362203749709075309345603402233187731219375680961492531901621243051386661335190697257116175119221951210845669733349337641899428802963612799535552890856544460848915756152697476277719426126618613717061899196977089930922859679267483509483981706537444512778286812063341459090543549243449075792855950799749401354586101829677961988588638845397041294947301627498453630624360049848457001057089966494407514137203519896409383236835409985277020127040938771056653037000465874764199233792427969224185380374755534493302141111664236986059941161011180686880696634205591900035401556346348988131833168031785088151002158721849256400193150138401741894556508452576937261070815223961646046100193146204454657258506487694137112840310963419637551875178717533567081107313358556856347266128520965321418067395715888769801607217880786091624585478402310941557518745152599258345173884081194344223431752258327986854471794349647172570620632452178962395696112871519751328008771926830280403769809304907938216949377901933462410334396402779653068955041601787521386847845961108259420432845024527446990582856785073496675166547258433839161582050923124021280256161214924325460764788058565343256016776875252154777004485373237679899550037339460926790801816193606010569156798488983821957978222916931964579230925093329833501801202798991542307230547775060294067854637175171165547135016768048900059556507390267525115529089626869015967321787860319627631201293495901891239435872912078341572888333062734453143433952689531271263280680718845970304029040054093804640627792763010639487708812865542043882794944266049371104600748230105121699669794128089868333794825495269517527481367327919914714566518299238407279277555091486861251055248645205931191147594499866476495364479481810358521219833440830017499857826344585150037514821315172498582074172619642250357915691158515824617998716599441450739607424598904973470786085723708652571654721625141396499778284237705026337122578072013824958307164000916564532693024388121183074638728699837152902880408563591823743002310477030787949319909117684112790263318750864959679398077585111364598067023532029097817757935913676945694927903397531981926499236874353364869007553464359516370792990015514275204740733335143179159495545908390448879564769878062747680972099642293232847659203838585410316316680925305353225372942890889922550771218077375515761939614833626061483621651879018290694049266506126208128621880932434777355848773224768032675550413222428666945584898529346635257636094302939194158912274810134121312782343597241705070996134025169884900443217050558826591945117369347340200449422696561960338713957162196229180813004157743788186458400694474691775800752456159348147778487763313312248111321499468831824416978920468757884492543365202303462263592517424482761038748365836045905132941198179053446787688177482656619398826095982904400368910973676782270988147939133070965936854046011047674990693804263703322741761702874972814197954724847095960028478512835891961115914332356333602143594780639345653710082398281695601926996535754510926525873930232178817933983288346274593811473120810422902917817571480092197832376136769777303501946101535797488246199974570238308984691709875936008622948444257028205587390753138291904363963869418531783096982805180064198139414146771680065006223419348018855853853899185619781293235867399025597148482830492732583670798991027040052757305098918196984063265497978241000553783907814618258996265074662310765497855860724826264793322935631094860974149847236723020489979438188731732992522018891649074667716401081969394842804498415925992659329991537815394917327575874755859869623298144530619931608602716774136103692137648793400458312406540593252064354471511433997111072997431954628185335118622086784271533814552109939048804903740578574713074064180581172596393639031921068939523687171020343379735994436282559517251702096261682849546144720179332838209373368410926135230269449990373488281420464030239733041132309228688673159350507985629842874211979723915922715743599415705687408268537247985870398944430507744944651202351991912842916768058069403595154365067955641276563356463288534458503939417392347617514980494943669716518654546793635072878900376823095567125069418385182547574915625121258984229506361702089623448549720648301179106692704850159335814191278397061158250803381251593186185744091676279744802575186848347419510258648204794438579088782157926503696799504883294903147289569739724049221962073027208163859462558835361644679344341295429235647056521731868260514934426409517118638479211443043836836611476864601391480174220317018984794346952807793687953143173958629998582341367605337375828221615289400279598911335810072949746710716263828786844650171427974737641993647656388927321151656798347101524324858312673909606227110474834417534230370363212073332866466075703057092055712219369179676802117398473811729264983301545969546238896442910517074931273388612649914961805614174541974015692842835305691807727721255414197789673010572780185820935795127867830128479575885972373572522961656877857866520575915787076139819633788725937328108621644134327152097837192131308446751037162003019789273550771814335110814176652845086379713079409145902564782659922940670379366414454460400438136686332299871672060565102546793714876004247853908488396908122051697801147896268567819860391394534002848538807127131119142008455812637004850971426345441277659047801064662004310249252693051250875027517366686722600318284225669262108611293188049523382426613540193628650345253889609571396057748390445531521377354381600504804874272463313086276090464744561647347091261011656302112065094362844926488598557879172881624105752714137486521442069495240845510641774771854542381356357229447917107458046712608739328945402969416269188432155041492148401333397626538350202121640312809352874317649731002314755005832062966777842284642850423600131069979430697097281915041895931083627111196356261498584743045325752970798135130168732292942446375776608978871628852292240277406604807212924708837635992818725073161641081776588147501548786993467287002804796138639523527485275124470778173574259732388533127650573063743777662010881000228216075583923079132871827706748540481240839467613654860241959484688500330509063658676306769784234419646890326835891329287241788060992153002686234783076903233224554083230103723778150874048393150057446684076663251808186035841854764135978614802328171336454135574755964281142542675262926099563701939763679971518273043880357677542758722228592550008781900197114215110210702998492114388382091195845760278049977769413240907206883838999229030461923641289625457538069572085011897281259912542704015534241200757805249774226493511628463335375504312164760602037983385093660216301936535333056438796802732926755584892380804085700300790811983311464498053154331591405197329301917849167143989260545220314628273397132452444535801042565088113504731863582973229466519731198532749611371153683395008297590409865515395003463650328610341096324193043953934179268375519391118820721255771026684682281541347697784994248850780005224640274283096054982405161117027022791524271625139456353948001357833770497754756616574006270204545446251790712026887901403821282587084228027711859256646355125873761440415738345200065080610175178651210509407786720694635777957845668294174686670266377058381371313848691928579988074984856467749520890688240206627919536357298972571053142552838925614008141564352059157998103111584226993876564601371223740329179124444635988652786177558517873191517083167615260078156282116763637004218546812595449422293870012744874981963518992755491487313884938251144039366924538885916209456445757175087617609684938265369863787880334792946918849516904284894406667303978014306665821942166779435749935180213948965880462710604983903073800984360631754865327672808959098434917598445564194576104348350722387015734028693831183397926875836089120303088438067992673907131793905310582960300542862199155112709421372538850397571214379670438489975103588138352705618035976144727289436014803919946568470383344575958875577942906433478806065732235801195399146876721982268999494522778183272762622969615774891873239941089598315047071063439010866916732460113374996254460981196663495812807044215043002234268816254842013786580748302092294588151184760803858172332527485612967460280189950280071607472373648019087940899805863587073885333735588027549669696512384202995584842983558887155347148030879633691459410380498233947330594779103941353795043096186355453928785272282005906935697486817396704528207769731568292994526440031219522996411381427326596371269161494014252125961255005150052634557207404787963117684195215142336576692439861524052625279435135766355656364308379755296440391238646517225503675071414875246088621356103040747457516252892050029130002310147156163671682742283563584372769119023229296780786437817557375941612158163281153013336673807504538367220460132583300957466326015284997114634718795248323611678961956480828792614029148755020541979253258347108478299246082189054768636127415587923882723606045198054002670741597738801146840356812497154012190061141302786694465163939738881790163552106543969523754033940383397208043955771468251672577364639281614122920881480589993166472919201250038736187442648825653145827446765465260927783570989804689887365899398797429215657447001539883674295928703701830446547136957084445784305601720013937750630189533372398196578090252271324223428425019409442080061453991489722533939914365710249660574165058984795499983656688169122085740885918695947761558551930249757625008784129286814640713423278885107861817362629745376335802321702267003737839418557651331110502490682085134771603239606436369053925709772469909620483610741909354059017635323333066502173423643968437089479672112519055849460731994546980036065690191434812074658001384335565887669810130245607839150830188767795176641720775064046806975396116107891340206104232369000172863008794381931244430128358173682271761832607269833585403899486384007920011581097395408430543741302012686787714129599819840479557992491823004706838446950211996790794598730583863950341282726945682437170602954923279131188398308218470626697611645174144950455219206037301396030626222830701337400673184873718919248688848891141293582494633784177672433770565136571531260756384733226078410546473919540079402161826933616163053048097150865692935982042595552935307973073445359635970439991221365883855975759458352655086376323819431649566950224820967045679326186865795185886956285789975023169325462285023091794389899182759817547203645359116882836280362636825248665465470694118094257535579711268620763430826762115671806019179750733246891044137212480686282011434684566488180712977055675063881905917581951710366814061681356251681802762811938762932268712404000329355022086495709053494254487145434822613218938109032969493372796841785108919725208182141081044588009491416975589376147061957549850078490772731361742084194315476274474617870467044285872840433810772166938600651310468974563152907023091637657048598339608612587076110650889889918670712428903617674969998050057955752082566893034771967573552798997159011995199416198707762173538745086478373900381406352005425860697768396381165254135802094178007356549036818056864580514884820807749238540901603005322726998750766149937911671802110979965811862652784920027716593708191522830255538660697176732118408486551960957577368867941945817982075695890762449236824212306911086120777988279462120672463204133050433040170563494168061061281251447898661953128093595591368310762995461858519182880501492421887613558122360496313143196950264820213180711056910921820140799315081809896956475389922793627539239184835188731348020045233670601807845243467252554247559308311257428442946781261524257116796560674901360533961867788084951052895675503628685375773500348162658041542848519712958626047358273970209055832671242703731111558122518920036365609402350571745628509021706862803898234964711398380831532990994033851036183962900937877828087645992560466548334210356648686601991165659848167334341486457296911677765769986384719641627035159268086503039493287110771021892495094061817793172217425070262626265192095168311341953976212817434937824689004923730329716240934408105991154357568929804119017960733425669035684888390921109992370738413150133556926574428253604703557908139249827218309844476260926249449827981325759601036918504933905074207347919773551840397838664370051506833849752795696220052762709740048578251233015508462918869350699116678172639146076460839485883371395014248247955487486589912240781653610550395456317733762997834356670567528779542583946852220329950727217661533346157473765649418202700848879558055774108492346228660124633597828874761551551564171891640884678348675658334443212408627584059720343578742360341013852829409388102332344771090805751344223613334981086876460355859174062354370149365140803511098207360018740021181116077281224768858217322890983363769931861291776382309359962096271292878181844050779613675583115124298846951998271083722694523609258052554879008595075061502694659061594982076645082712785209952436347446118562260822687451339013808528002301130449456801678170426001610799443833370348256822741969077638769833930428799600159463963563703725516680500739264949099560053428142389031172695805732469035740128926859372811444169318970502064823745751845599319928866105617288518152073703616107456933236521572281817952558385415538172286418255537568233276268080038106305129069773395877419036312291399675692516221608415559963439489503656979777101180097620665981142940082944219984210587298445611971429025316506141654491903270312483296997525977090293558944356068779798930154099370482377050673936289288121556815370829976081470332832191212076810461703184774268932041823778620422200633840852084379233939222938070443985593550392200894279633081100226635477246839889202680817026035946630428568018480404302345259390152503222295809406591143964272353119007966977679883878903285635323998356736788865140516897972947607085744818814150441848443256367553460529549333696017036527170944652456367734023158526997604035345929718010059805827409748234363860418989542341148728198295726307632865776470300334794599433869637566797344651849571667969418360605536364700154458870020809621482388608285474761480665988490820813989293543340101352700086229655342107034765495135800737756383870510233903329509253243047182455485122812595250716403566589936980608204842840415196982023812360232699562465096799028497013531084489038087185071330471484570601044559222397513903935881874832706127027302379417228564703687447173160153380141697913308361128222470379933836159266817565458479766875651707618228821832694576266434021272058226446023899624655620388341533638186722862175521318769921638018435853983816404618751168022092042407165480816614349352639149597681446891837455500505482597967652471992922025999895914098741702327679374879699757902734669211081374912458191062011005706379034768202394068113486049194968935090143349484935866844563700612756358152042500264185022028039139147281937046550440914945366312375024579909121257789013747191880244484658543596475296843639573461744393861557343054608496831054088480602976760714450062901066566300432203354384000673853881413950322979238323998625056061371138859821774083508843411369648885679707941996969545530707237435291987186885067438264022988157989162218427522107696388340959547448828726142263209115119116939297000371849498441572153762807442005253619394114810042420339803543864500383407374925124343617073529070769313764309981788473384498557409530152086666466589223863474132725330378688579449708304229974591650068981293555540836426671340658519829132170082622114623310696202117877801647509592525000359032588058130894068765655154350241419345471023045660075963803017781971560993059732571265487464478614756939399977765425814017277415791081312294500177272828418292153313957781642196729773030618391740811749064696883991193728170165398401347370913130156835408644814367288097820444527489732209018794241156623448860138143866082862281661346688967923539189037933397058919941763235462330130687214081793187312117939681870889271222932408355437303292262226788372400114496464287826783337455286022160538570600212053700903986302844746022826481065702624191609267226345732605050430350393978986693532106396129497210400097297172777579204311984060145544052583899508117429313885128127388075324698186827500197010027930746489637010183148442352038236955212414775871654250682683511886825642870849378964193173795653568073738696779071081770485047999144630644056353238061525899923546384752199969470222223027340325619343001413763066087367949223049563851655083650210225353907311111064185409856521026607578789690044711525207306297819171732487160246839960885330934699046404137895864429785691476059617881051876236541875026784168518667133559483774140077149534726990782877817300075462266993738462375246885786467901450829287036732076560305148431443690160341815632284076311527838431821753931054180231497946810458359063390712067267706396259538623756705978973938560948887933449948931245114042936613338638159391019443355013576272710618650513904181372599534616804665787312895897159228327008436442243664566895361263494402018210745684453610783805854453789290859517675603411348577676571005590130763733751787396872015372433077568894511006520864549592742253767985467273735506191058797149994270619748939618659022155590892892686176415397354423599169162934407396311736737155776838371793239503289621912061619347088002055285293147746178728939230802770124197453364243998099317119846086326061635438505070019584952320893746879986957214278527226650632002750219329019040744321422538654215495336487364043835243592828140307223386462205327773155140247075599404328260410751750757224210898404446249449599517083267916082796621920655590432531783878453806336297894087096445383045741881399074360158180947549520924309673247593537270942207366966350123942026742289304967969267894211850984747894200611655570535009593567418310961524884909005700079216922436169853890665700124475798080965508366832150086913166297342558052400801740007167026944482938430643484230226300298887935585880314751379794570830919098594072091517908764804509928369822493051015891590284790620737917392529562560697856329447720800289389281407440564419810216494114012301467415905884093304901344776930014101252216734814267256266735639669519257831503770570823643129855014554703281566162273451712962448750997034602796271512092176467261244348789302506866544198648794860727614369982532267910798213607518342895345088865267338395744615647922264773609172047546615005422131737284496626605055522187728137933466217965717573809857715054717353857958037030771661862180033591702094317487176641805348898394851380651603857000485158476488348077943380214859961625849544467062493008569406245263226541109314250086838939205586047913445418851497311953258008010532205666119263467443152080626621280775954888287017981641929846982996735992396018697398830264361534087219516140300381172860135770184395121288332348242577461938272454023536745488045333890232105393692466847310927473055380917083581231414519310386564792090066755252497867238445332709276442982238315960852986012165880549947624368998961957952283992324836701289260292824416073371448675528397541136533573704852406093731253397941009303294251913304683658744896253734467773662773273294109298882725880723224549146362587575852434276149782283274945522630326308317295590757915539886835126165836095910603747879014926897927800826327168026544471804227939127724847625212299362034556966139835999704113854840491991154304551577083940511876537296320402914675312821194979885823903469244847586317678918163333861303987737022993322120287322947171919253530574710651788882607899946668480009907213420470743981536417298683485730994761980217759821034451178486011027675430963362499065235332511236276133172392931565761445498923714986480346171180767964865455239642867457719057751451930351095613893938316972046699188713419025681367926483248189599038022965851071566130661249164212104839178906496801174179582983215445449343144000226929886844773644886977838883759207909220706686798769104547518519802597510066581439326501785841813315593221760318812345569684417899781867344152558928611262112078010171286508351857580823666477973350616183195746403986468904538721196382938344643691517207110458154997583544326076970290145232245887284679577495053484781665762716479177947690425837588282676668805024399768561111940817881572809352882554780103957612497537307103023452898203990985147494630243528517131326782858318955497763143714232381977301511807895907197662149852104319324714333451568682675270665766794789199568995813206485169622956795143051753077356587733734549452350065074379881401346808318553007953888808801986280277668499939516238606373716092796036872452697208869911580710196081034022312163753473578072008977133523273921894071590928797042060889620335145097324607406531442334702066114556760372108185474674118244258662458462533891882973475688667830305941638854270015228278246116551566591914949276978410624437349997095253662830788047109020456604277821196852124805445715085493528215465106481433753450915385019927002810165636219291029547548335471015275315036427488401362680446473951905085989074946285704645954882670309377832269245315793981694896559307401560878827256236878255000791360518347210193724749452344716136972347632759705896707809750483827965492726426658346089782960437056396063007697524287528932235716640892990269936880341979767842286656869881122885783846762341602452318902305700465439111700050816459210391298503674575555951012927275332607239006149109651226082630877987294614084426012444071755696635064078057452298480116002519545030670732516176337810890112342721263175945953580602712505816465113647630631498119985641891269606752923425863991616630821475347167698391946790129964691819041696375898770450245323936552541015002431766833831404727693631235906211623124849207198015110011373885230930337786310302965932543927243304822142952845101813654322253001048845326305346648555200923595213315643110029494155613272111449631386417350136361804563723374384184322519854547401302288002114160676763655314653343668303180221238158171547959966439988192675849164369573745913688947987111348011937771323761656041395648866017848997455304892567021777043854456014701648354651754916065203810917296787841826566097273560156562543758625875369772649600113111519228393793223193084771165512190708073388909251837556725292586223362146639415969809421547986429518119285496205927635078630478810420208970507534874824198285458471878107437019836236232858501550146285749314866179175241027722493950761933169039749148850549945642983686375508038189287178264220069078139668165578768809545566038701744778044253268479260983485898100562935620367055721772044660505890001624031887972659741701779781508125562463869570517795033729220746153150327535599365968662686457564543293223859239853938974347397842633999627500432145817917112449986753963235735545710146577130932173700377470075560064334992349819927434897798684280387638579456580340379176803971434518802040883959345516974990890563039825731195068357228020477983146247492221638803834291476156589499321629803255958476972829849916231589545240199854810508851147413321842267712745099899636827081170250957223145887100456233431144018814348436553282465440945440433958592015881492656240813149514439160098127874269701955195074046010837515243539039660938956254215576691851262631717064100125801622757642245195002205654662280835590575856918361398596349795842413854215003560465061687188450448522789190584047753058288697619322783056723778119544655780870252321479546912515451107690946944604810161094428050710609705053647950583453835813612474850407248493838366830554821446745208909161445402024319257734900014216764533775017945637075522684642583725962885390355126468993443449595470090028775474286095954639188212160187577307296491652696969587542249870629990385927470462930593488672797417841698146678530655120124971018530383079015525430499381232881661342992286220937309773093404178963276451420616653592877915079560150153098635666630817738394548868905431479885359521077537749102357860945323527182064734986231023702976807666332495969921347337071993141589292283809371611777757312071635263213552270409908777854037008903540658581826406402222697887736173328666960729000951722371482005417240090092070567613983599941384135244436939592815028924283968243822684363952343785461725832550093567432837233450498339762860821887567518398339677605837606817278256701207482033883040674907310644856181161469730793082996871694841895317175885180973971055905785797747443124572775759080573275921984845572839210274637208241569846766151905191832757557092266667939401258593455959421865492437727570291961747553607514666616554017113118955396629236286094748020322907667295884411498398890746979456742249076440872880302590298124960453908197696817237859661989125103686518737582479419364310312379077194430131191003221425202423232039053944280031022879426326216726448006077740671724056661368794341681904588903868423038724694710011006111002763173109111639854543292754384266040004519703756820698628514654255250248715269957753440387891943550409192933805865965356946584625719954969505074537340337389628011379770595696404402946634669220449481030116161434015525817083087747355547684192369216766369785637374473072423914414228576467457339884399139482707551587749406740416097452832466578721106130890097801973045278893191730945244921888571726977870004240776633704199565887018409437787385691305304301289817358243899579272136980656057421002974058114300945913190180422048169261622774057296565353771028639941735478468157387204992302871323459647199813624244639737508556476490095329550477655938646800165879471906636362973400196200989575561407222942340415994710295518389796361854764863290419666130003220606374639593440453092828195857495596103482137908963615687462152771111847265903980422214530131341152090695389694370304697904332929571317239931502637827160815712897444352154490356918632191408856940426786629847986352191348437063409237673236766056656735694026115392986000692156997160498649682672724598963403453574835513657904383586225916989945157235791035998348613965024131337551911726865964038615333939202162209705729881123475667321592203633813587211835297231470391928333983254955900877581743262414352573991423418824539137340044727206305911878872433822449256055836380748232492622960170640513720244303502810154696534901849388113470154019824047074563125170152709088605225092328803301860319935463557276079367792663600409879752013255779002919088349804381152516511118745799958760080619323633670127025144731092442226281795716750401147337875736224848519746183100514839314369288923476523562387771745438979282010890637195020705776660043234397940413656606631548172811070525677268864594819370885446804405423760247683868962499157492532578843145286534275336798322866078623306206575170270411384797946980309517449689419253859395717759071600227866079691732026699446347374431999855129014513707593330433090930904644461170242204108502863899273968400600425875929542698292404224280022577843647462703975355787260981084467060221767996448445929103343672224155315881629846992247813895468886941634069444842658768753141829388580472634783605620287981136285806828103322156698517474971870245316334504586313590147596706419770589981516579645387390414503655981617613223882218795740944109377040437763254642775214265827182719580532439027364384620801162846019393462402316924816114395897693106241891134542453566645033505587901135310504519284466963417915083219987678553794657761198178762811396969566584395807760213297562504669914152352264715843700080876860525443356606853836900099600192096431795493605093764665785120372673417197887840918998287595549340287719684244033293024386297268022018144042469942119199108969596535108855993235993259561097813989153732696022258369476741621640317835124804839455830428706964392932630304291701385476753787079441911295847203557583705960517816874553680089039490184966216890747680479699013045256355019010803229296205699941633376884156218619910654311834698622542048067435244285595819236710201148866719645404476283266361085856086281372256121080879975958881436752594550817488292856794539020949701619534390269943852016593915527463290905267840733982448363475884999648474075874507924351366758439969782193611018267251450958619212187056159933012090617580037545229589789861290705494207989485742033135108315813808446389237905897941271229431496581900385866747260418559288744242536926132883906454998941917416041134779983647321796732016392977325220636848025390064057858046399249277859469625388181472109951793065072324001531367594240362070888343589260586797530584491106206950171154814460436334369346998878745653339841079146204259271589905190601796960583044414366070685473800846837119529448181779936798827078657671778765019541534839307825505045416437059085655058103097998617515543774245125006423522922457568949641285684031983531701264441040619918306333631035374808404883089669882278996192742876335420282077625715718643245772693708986414927479740320217641114644379692868633793283485273999630272050607373830260853701754447816650015501881559447446128748652228582269535759599252897255573199298690877905242433640851603238576650547355814983419209842730752058231335711760318326806901798307926945013385221079632372965944735218912486095660733662396115904199373432105388626183978536843860355921502666710474876945629428137870024251075388307399545752381293356674089198728496473031987146747773807666700548281886267145823865958741343159356570374377883044805898197140945742350027251797409517701607210796012717366005017779236984296655479357110128234915933102808991622767623170715932501849206647881316301575149543441474938326413250059044215359226806166043378388103455058146171335491345271953274555249651708474123144183552014799033924729132994256649075339392046050679682536036862023671704224107304202154576779878410644348707107997917725775918797460305001469222235236308283240929868891627986659998436644587204848231135328425933965647263197516311703220136193055004800807780291078491101664486654566887315580681652712622053291775767826489139542944974544088852279309934654446641990181943635711035528958464373805781849139107939396250536992362944266213495988627008261086031748577308806969749929859581670494938225989278005507173936903736097884654920733369185266188202259504860475510743378857831204160706120599483523598672043596680902992806350633818816727768136697450319316551652325520953920250624177405991927129884694638230606032402678885941850516043862273194790673461997204715273871397392251365648803721922558004445145572832066790190782694712141651924535282529197959305041108292537453663271532877797918728174889990572087938850960127243932699268393861620353547966575403160230257651772107027595348036622026277068141242849095583288438684440363752806676808472620297897926998571170050552187370585532792194165455407008025436915217371668204476843654372018623787845203759382356124912919910284944461839919746038753617049493824456309519069726723990271146972905007877053715649073033387225362795419823670977632386979185853821947225558531188729878736070470111333077673348831553770453952179902993548634167447709787217815430511113469395064076254192116296423510630811000141910586142646882971316874846143651980158187363193804138485270858619293131342541680056022433734739058941408467319284897688594120740463224918633218630417411999599313977525761268620108744650099660641416981366240412479530770753713258691052111320882915516362299305466038488380962962603665572334573668698181459235673529374828039068527017430498619801185108810919696968314523350059488678319969297633937550127885814369543120827516199538919523851271591535386261247364134823711005609458583924597042079402075119313409675060343848213175738887808451013059966772811649480120026600072861891686157285300541363854179584942286306709427702284978534941629556229260486106442489644104848723297235020310366241861287206515916148734796870620397383240920165176861791790241418549966193738675623689701077785316806797792222077215719901095405305860357959507691938440773084641361525071751662867729556935519488518846672060595925809379744237640597898371723026101375778526968260557689020910116498681483152320044118419078148099460866192438045719620649253034791488549713100855469992098403473390653140982485229831475881486815346407948844117442564262837915236573104679969311098032481862750545195063138148104483774087867483217371351580547130487625098240340054668551858807858914563292146652082282579005519875202535516425760781034397751733510673668785562162876644297093567376110918458466824299165586250965598043578699812925606719743346476001059922425602478772239068784409150515187921282789611662635992474195071440010128999740596412668713974993040825565876312735971475536053997762476456980794013084614726061500025916163082603583554889846104781800800454355820239818764412745224968436388511058986219628029719342095731857249695629251051758351725401124424646535587195653832833998434137135398572495715530244012333535484921204632741370388875087538988745027498687091173284668414481132849444914785923902367000193771138526933039830888620903690130516150480651817042602858258936145897725162532011722840124453868477398152368343542905781571626415659636796745065543220870036993684016794234332800284692863365192543790054182114270808284826380557383273665088428984526368352704925168958507022921454259899737220040077139960860997784221848450819654013291721863919362434759460705635169420694558151774529890050024793963172147754920488696895833464122968238892834489413597785862642861137203848245790522390358386246077060955951392660472474260578607372413568286057733182346160842514100305237683760707611286775807084556956124207952044617932550640614536516354039518172576921021696980265570923098765110860341602580097461457482523267223137004639181697477362118048164187053859732660266078457205790637922083692520095802065535221073107712572813051406682129376973278053994337829222129508743469212866184703188086744624374430994872282838409025548326280546150473442384604827371378518811102146028582700158652282965734824819640330029120941753810369651565240928747550546159078864703506455631406639478023170741187987471732532565364872734977326013352906801577765893449209619668557162121537303048683385798726962658192302069422498346087292134273784341705527369713068766551484437896230701928045410234940840158084987039794573991087044457976528425781640603911234313475014611475650441353226294993837479538121023769115401487649841992881209135335716243366656227861403810854283023873094165792670657043612190616626429796776873826795936826922557665134195139367979763970013930964373428966597946273752536275483046147233679162232778647708528857666967402818448265981768713652696973920261359896620492458219976946807240979404974482194595464926984160975376682254006699616364812212611522552646460220871600743160533643195398218932046563083666258383142533359386996405187214232911694235165332333819435202021292509949192913601514572568297779031772582176700956083107367723312389006710538940861706031786044566586538553580129391726318186466908219071957701673848525102712123063631272701056367942322185877369849421512010431656536500745271776834439829632858973441316243131927561381275948228109541143014704944392832969209735646362342645394615591854134126163859820754547094775323209189546373082622463201799396189584761995213225266707299278468119238662146816194684058373137955512216315299142074637079856284158570605207399466217427441182299767778103718507580076731316747544619715220222036353746482625438963222617606125935995961292405708753149729369491474002970871349306433835748678017029715845155840180367889157212179840440830238541556194972430020569827122364274060568209808187694737647027352851663634121628708505894639359045800193822294092032996252964834109678552454523452996280459179308594845800066770601563970404187799846856005132228096556319363285062809879185844779070826593038089054832489848622497347108548010195228416831730172960117000106751136857909808300586394001508437870573812451048290127661136095777713976850134525301532231382005810150432356303007682071511010625711134995061786559826365200847986756576052851809317019650991627766851443781668995057800259606312585463720040343116289593332893559609949952053755137461143658773698109051669337916036651346867815738451540442872693817128531992435915333503253889103729780719677707686035363192361256936076033119488506178553022399015983614779059457023119473213834547496054419023057773976693604268907228164043406557524308836511197927511071030778577882452011720372744357852685752364220557577816237083195472890256040634900035341420668615437369101501398900799524646609667184697027513980166855701432989887448550015214690327858698352460705076332599608943916492937584876599886633277813844147087868929570260196881248238002555475401104014567237946517209960427151697564382218290478220557749994855335952608610859560176827389762818163362314340412236020922279592186222826178465547782104180251818125015274110991064468115895176446823023723198504710464784530315315244787399271644500279527756436271438188799620611869419782560973302901971402815807848979678685414678826884836223801127694352878810413423216865498085975379655779640935086923218402657713194530617245089757274326600994430626271048082447575415297742732793158374440296583296138609753288648762141554371424775135280608123643088890120093549454830819257536756892829380290083348024971087118955144862566570752196369975381831205072734238311992115985876758157771847323464605268512108564392097158416854145248481490817140549642554337909083657413724145694436180869808664738690620818618035855965200963165131954509234145665914080412892705317402734992178194265870545528688493828052132725769765855535101469484974787708345115952081973991148802085032906964364190029980165359379148077150557542472766847410240198668635734727405668975685193366917131404059526262159484592066067923975899980565028325894831666030223626461081183407782120941941094573184731560917836512547928418707140043727048754615905240018001758152335371434087476267511921850961461050130839798739828282658538540925923491785774571112217620923115254208751161438161347444541065660020813910810250425599112180632998286706591003555681660794675828120444422541669130099342967467058410899340575676717905141523507536229952621251335448164085459848776575471708312170633714292645003891629505810351088715616261166134838503509928619335500545340085040146737944964918829744976894824605231788259881128066066693312516928918718477449060995138089240842578556967639175135645487610542499125566214033696245312019479844697943682488189070916348983032988803406306262738955656102856025665166025093893697880614698271104262537052079243237812492857915392813764489634349058241280895389265309516430368986177731735212741797891989069296220430521646268284321943076133935321833580390431461236359703778594128856942150837131782813751618288414782332059638526965014690390971169602758884347206574896243844673250523510261519985941011406474887209363975434463191714372415967272872872259719902293322458131394330286418762623557095771368783781326969903721562469341779037919137454755418862992290465853712721936789932519274390888039411904130944400480668633428602491157924321030611131897604124663065056118500056046307642610114869254210039497042969472159606767712034889997423422558248522941317584317766850924629418923122364417646568264462199901874577524762845489924262894542349876905415924224333822705869084910470364425788266724959931228603311523873433102984482230535144333325181855901041601901773230644606709931940217574130600688627417717611323842132665747944754169417120060881053196621421294444271416048928412552929885394701059733914900513365649094324773931745359729693843145578053383012122881913902693524842559679428325972937778899443192076329269342170121927723331667880544259368811266613249718141240834074739205267025063417791533253435761989873560405567405985361307099468341318043008218580275081584641185590797385878936436056233500934639887310654040229124112319369482083851421829141108170880079893629652240603886714495307115715346576022961462364829226430167292359298374122902250622342380338317546264584961152781996551147771120874221564563261856168146906530355748855329153215320223394096761232712261802171894094329180484274095505321237424032694973499372652584668730265524659023286144751396812571397442417646538985316644506413188389754826667534507722918538191383771246814691879943738280612200556529129436556672177016154983974754123284328344276931791756968100497604299761032367083782388424937619634433809572929647292110457646035817287156124316990511023215393862911163612995975610727117799074532162993106616166398811842821467091439383304651518033930529404280168571287320149763890782775388942416313677844089874345359807554342123247435067802741628627254837420903114663018007176727291106928148963297861245756612867298794837845617655685054266919760054655004710751960712945610204754387920039842513904929231502241559136868592708855437341250033997197829477511610233422905545658623740757738784071053754917552342867878021200870848918359726724785814977350270067007859265183076766835453406831061401949285455148849664321647384230984668016002505891371128679793797983870310768507604506789122158879939785598465394775277860356430275500409934973010625127407858301147234647894445801251422850735723259197517014386248710990415865765265050205485535461101601639842972923840014450886728325125062112550118353870010543417166595466325559476102965777930520011685448863072575580396153911125053573042597787169152133269981605068540018076729875993930081594793570902995582589079094488308409887786113615777738377808380388583049864243813425458156543116348259206803660383519562502093010319206279413393997818815775401680593082722804835148709556750168120022048118292798983370820388628884184382550359502306700240627023355559121652227974356761618421134536691747362653198343027809805017520366731281343080826101965888793334291440333736362776089352258326354481075465154997925078428714733732517803094957195449972641735868611372459116188283791251943631685989166300222589437648229902519625388086565839593835470797451090587828633887686176297937190621353450008231037895575429439161432110626944048902423278816026290625094891486348180841294361505065538889568326164996364615888028134835221799910870897844457744002515832996813301065071067020408095334363036464163027944962781587714025091551325307916727073172099904743907583885621090301084245531169869572692734184635995368709632888235097145923754021991749126353012218130112917744634852299800732758922667778223940095096070670030898102004284445001132093694188928320737148222704241784034123357318787980847263311665509163647280628650643171165388773548063483302787619164030335059055644443892305113461383386481475381985904623762422248094981372748040062223183431539765020820009323804364213152248589823988363488541421536715244929283261149919018668462578415750937298308047456288274130844035527111181326992409409993042553849759204293888226870380018142427440739505544875502951566675864306108436372545572922856411298244598378748478631239143751451691440182871305892971110359963657354355598926875577035963386731145119325069299264545980545065960020657365088178948938833110086359726999532120846433208097765008951425346007709574613037567560438979143163030942385697429238962542662435545083276719395288625169948289987617687176756940668490509115144993579009773735192485816623626093634376925620494217022832687291871789961487300409788019309026634769270942352612425522397274890009627060293384843150871076299846541095374411247785009070271459132023674693399870033116692937435356509729407602737304562207086613581191231212998862889867893498511994271186498288252443661540591294300394782018259894487814860671618114935839120647631194987706360021325407635018462522379215124056327912704270489435764217614299669726861489004905165902150557043550629945525235405837352759456572603877688896901953830856670248728583147938192435508765549725134762370344756872584267576573911063744939806716039242645232943245325420014817965441976516991392614752913331284417113384513189641503015923366329080017622160564380122925085885080015994105355908300758373647962113679098792833604018751264045618935530972338664861502370214055593367555992925604482576614780599958569442666146177713635139707765060115025283463513883881029852977178788586611409754834698704130456782365499718333328601623247792849651045029438118787565328260349680228658409989465366721049847665721015748189663593240152759229171575601065549185706547401696613475313691137536569542111726061808900134943193759577420775537083688202293065514864344232638233224684489615919199854005720203737940600919023492253306385446992046844499262855095456114914521275486366530448494385430178018402589492627696291752825249578873384780811607604163026244721010074898838452031248750420347285911057898501794768055016430643962727646542133947836919303777953579894055757495200441448534804802886282548978210842372686963582003809852752634268757924356046646815989343106284295231648875112162383771327487634713574743154236105731586053168074033966832190160773318167395209843923579745625495995789852220429018861499801602555720056002427358961589536318367523407081328797163359390915778536854907689460266180153869782923006006782731560417101405062467387965521987670427489750040428313641206406108822576046568907588701173410135072998063251879255766846915802129395913104442288463639390813971951474344767309733098149522554424279203938010956921364036112404238584325477724030323622934308811843898639941680460976942005882336902470037054966347953582220284561223051082161993623990022098865854102628600263677462314888479107282427392346967481508287839199113971621332547730254483354766401621748169887595676514052739186377014543052371677045142262763043247500507861632449176427659214590277371431501876469465019655750869374604481173310471923623884912380357304653631979810257115816561380099268440197981351606305115873403889197849861302400117705526067037250419045854307439389128866372962593572035690631498155353095552159706883372290726585315307629822881183715189845445098529006682917784524383478964782762137134344076243913870926107806541025260797126932426086855619268712251464819067809651091252689403188999745341822816545921179531633939405263427083504744254847818557544221248389933119917112338234529237044002635893033914171193914234088129551844347024660408116370554501177487108871114513290944609280583424983208641869950928967748661649374808109869379167164232740173153162873199495893771023455150968770960907812682527433707260530376983928792726102446692612907613540309946477898796155914133765694057335482501650959086300408188452696903627016617381308050092864012818525984730292997151711286579486288153309094505555026682395804636836046764716167210968709557951608214595045051297495525089590031071549498541582014054136201644487138982120225299742749291381629296190941116122838489630836708174719074994833213975621214113998813535253604348228360434657822968347520616827656852683970798785135399992036145149953942934334583586329289407972966426264973954817449142646569014887730948657513292252892793316484523592350993498447202949039067364380983773108978880517825113688335628001951569303904601396512622791542963316378510606938180437146848471757396382794653985294902707284214583000129308848615644251621794631288072806195175208341642761855830122385547113102572213336714008024101299899931476663561971756750208495408048301265973143580940196672043308496616088947086474050665527904568474052250223262760967277708313021138742486658581030429139025342703974719252404261958361155512744875336864907011931340154851907769839454203266006072945306142185144643995956049734695750566692520464211164931214798459915189848160950488650706622481984591613351807700384405329572171142424784294945942486759309400300915330497472899713762483582718296344143908024858147245708261236203556740236599233027618969084067406329101289027047436137840025842483822350955521453760924543398285244019284021930234761810333787620250662983658139796363727888059238683572408607117940592890954823386959035270145156429013126373905976926275144920348186371001551469641982136686636741705805905507945811688130489459138674146692243028620756802036414390128904934396898051217730612539977728594230769334503980291331058538050633223168750969261484509629963548776082241385004992774021145074878007443891203576501562068978449524999519521748621779856672729180127544046520338934035998316878173421697945258542183290253007028405497817261011378938512714811670399016603874071804888790656247499811567948646411302497712801529943308773713491994511586555567789389317074085901997408470352319796816481362134537580411318043532867553940848938985497299047785642845296025080252787477558468922643418569874664212102901290533989676713506584360559314668364438937065829996862488635465493469308466285368333474386088994921551088631344508082650870787915147408789590460473676363443767323236701725034319234653612111579104827716044404271804016601726440871114968286125968895884030156290493569541404080240460545069763643513807470045381819402926239356992518937013699076589560106026460388842281228396329555595708156188932298836169784934970315500875801997447207341063140315341332774241804836659506202712005051975518302297108239191327794318946859294936369113027030409497708401197514881447508669157795958619921433248448333294407397894842730339864701746580258207948289692890849687181863086464061856420655187801080606632666370352126367792096035630737647374228182151544976582848123343542948602610713607320681071860017630377821788067498859453313141635878112434611310694953815453981969394848693616063860742152238190435016528224286520844189083830383589221721483300359383885268664419730530290785806388520643769001182628915438666445635744529806632807780511448151081947009514879477835584715715534420946848926930473258631365031910489599952848130792470071669242988595752214622696695403257567868400671898530154268419764805474149343269974291403582073984393488442820049312188956869559677700060764733616778464884246598812718983466252294870483551868514797939220973795208563024907170343041216747961838672059328260329909868243784039487257583573575215797098516451851167466747759674430616120585486470173296225966875172675586152660782399875594895439428042822955392321726739229816879769253738376184813420782859304067118173798530064325701754921292054869823519678975541418489977988860335276787498769381162108394051985064981832707764421514459843676389790273838220596224790334493279566562790796754361909679120284457007714431239499373832643414811273079676548458624683580624232017529986204743633238421754516794439737463027869897482821137449077754141712716674918588681839983753638949912854038524608821409384965990266477621102932565799178194974937258308474913152917019297838445008928449217203745115322634087733353080594810445894746601778738685168494919442858439697228241557181873159653065431394981962088000991424407959474059542582457630334006378500796925472574010262519601323082199258468682001605638797847338369480816393218310557086271724603348903479093522049043128023734690281952381118136269164461764467065395422665815912029500269983359073436031455894670350532970457659396044918572208909837822110214461122009489326343060339141270364768604664695063749587222256324012180639926630615387655866346069333564517888336259513451463798256758128465482260947243760858654568910700769976073679683515829165003379174300237501432156552549828228495856150624512522511602923750222895050115912564804747163534439757953869494981013036747089183812781416661280980242085891553840034036763381113368986472735993657026479118511647014010590120203116190187132715818044665057457951229031801920830843874444477487527573666913863773682588170226373796677940301730221703171024711009194879869300675233936880525105443563973003108126197459712781233011573392161971249190941490920198576256930259025627234841283251379506221977879408934807642078685656546131853724874054096421651666930281622876214142285003752928006561740120925753195472456161924160444555810319889360843676426378539704133715786715103659910406952828356823453657237893439667342041259894624815845922136344388444523415852447728633385368312013202736911460897423425748594107304863763694123674013738116497136076141072251122627041775449906645426184702411313337562887789736669388446233518966651123517462220427181242715948362680180789195372600739081132112174481710730743003617808440669768598198833937747590460764362543731740910992327133933138451129377538378665654686954580680631137045366172210972083073593293400492376259494498091143076900552034992647546619428621335026111613794522344193395601821523755444033961169498077043867127110106698032944458950226024844582346181342526533134655621405763840301066203158222983771140275049736751046990626323066445729665580036459512621877411549200869587733525369629130921426647238148361173442311406313981416084259039741135518297467325830616048401117834834743598214897939263646983129728533829098890194140872114441445231700474569646477243824308784496857157206317406582114754103758140959465627082596111162939196626097834913211530132723917025795255208110466078044814698350194705181623048388311996262223858680239311144945461930448337064771753212884982656804960061341768744806128979115531519342805629502243421368285957689207826284966135350851938391095502654628537418859115651725980825744882839751277743730096889785980299495914518099045819292566480485427714985212060779337826234496070851617804792151460928634310395033653477318428737377747459179192809218142336725347880114665389872766619216883820028906791180919822234437753672736102034663776769454161621135513029881371788323231783651224030812225587417518513802838543141701034940992343962538611814267488779009044237391371293355477075511924514066681571856744747348964220953734999121055626894872974499084510513421432273633530200288694548748949240172841825871405862264892268595841656506068740860844666049117473272375046210295287592488130479972652744091014256136783952104169077951689927321242045914467040719487646302600147627775527388767032008871265853838001708780639795594408446152627012514362503119928272665149772855056986296164805152846757114017494313716083268327043339080919274462911696436517234297861052942664855743237943057160693554594980442763610327631411683848283639165495863570370760959339628831069469909260825242302818270275005918032481943717322888005589946979221094622814478387427359304891221743787311990857959253683902023512197357856552738686989464375360861381405969951459196729457964758629743091379001764829867754674344332717859597825241298506273742385102767586610768199229717610732869324401799630396261518063543653123797982691802601521764018029300891062770689964835428061065341096488507050382428831458871459215199153995767862577694004693157003112194385540128499174418873159579788174811394463001549825099023610888280459788407788031828805535857157829285154174276645074259179509609049344669432746954573516547757976550996341731384128604663040263365888231873451752197795347496479281937693817964825961652216083884975138916171279866708594217153792073807583381805563461827180805117913884691539669051377447178339299531675034543675641397752321224050770784836192338199269729098292947846095123852783968109856837334512307326228459488113895631720640853283536890801917140905062086759029975823210667109740768073382825300045793549974781389735786270378377032774440725262443930918790191431377225596008827668070429260164369085668029726368818858025394213989924953616745864029681617934897932727911257416401266480862698307809738238692838276977238474460777320745000937338858634466352711329045443094203118101006363820061097887938170346933259306722293465611672611530423879863621590195505900236793340419379963961019974179924276753965825952736348654265519966893434998096615817211063418500348840937657467354551758896091275799737882940414593048868843919066053637468180352852693522333872662555643427981938037667736123187057448715870210513299219064207161506703661921337350636245009917486808000632728341156482934301879029110230357874441102465527283236631963272369016540491951997365654136694236619777555962955184662847149948517983020597291836207326656400532376243730908790975297535749020720609446099684667508663731879783718775306425834109396993900707760956695983614639732166235218002575192752177213534883179751457315167597486035541480066919073140193296322149022905100151601035502525025849990811956948831090024064298211035375498776368372365334488963709056340607664263235272047952874263091484376363820157020000461360674842198322376041638043604741634618776603927795505715055384282991650772427308773504903655725842380747510142772093631733831626721258645026296353026938176899707794128835911124472477467649132463138904839245941241849069591589306662439240092912785210968250461768243275764285995540779197603558385697149439887474228726789397906855762079342181264473124954769523685655323296548931248468370509310820573032494783160918920493946647508223478389663797605549419845917149428766882426352404975327764250372137817439729229781312297564786031416945231644919971806660853773285816156601655167428199394059126183258368882015243746374087704141419253581997025898010065588542780593142982861206469001051772141751356224139585426670950040571992788468552777509152866396905301422786577736378504207070950587941169440500809866702007946846745634330272869232552200626908228789942466194042518295988574168618388705511888430026474726501753257524125830350583203806019988162616245442846768813153181699037062417543747818493034602728152642601898937333480753310469787766264305743098244762955224695455111435912386710898723338465070416820715356785169992768979741365004159692157931766887296387320726194243059894500240092628016010189400824182159401948423824255561472529013851524704054752622094731706061424791169700887444630163754059207247883250644598419530953418302206620413723567299013969735589214375540191507406476601677237837288790782273010392390555611299493815437950458306768150048737867534316249317847239177802426488926438501961037268834146009342973465083693393919926439463723067327430761479389025354007996581622884138390163466386718141683736851311883057347291294392596206987540306491207084169910470402907209291816983435358760013238032418838806269237438448336677801335510645117773532840760526691208726905742218047302468049916749285753212335522236229253132638388242271641013125063948011154946775005470440753598849691063218275305197211020320590557123175715230241373476459071364865458401135761756704640180534681125254595198611085858729487832878698726227047811175057806406826793920442751384519964457714690452617942072430972038636904854618651811858458886818257773405196647142180909447972793833656381999917905585880132988728587711145546479766033681492395536154412487061493744160770594022875106851868847326692025537895874419788014602790001702533978249552987349294739674975792760521648420207791754288859925154161637444527929078400838478235717342968519093308219344742718423574346677751436477929140356180977626983359671270049746852615097669134130994428825503571883225681442133927391517577138016787307653422559235614158524673159605165948710104416125294438192474462897463052648976540678895875255329167668785267123095765518147954272470118852976798134482120389735023087538314810843863661879177153425283577069245601007730879972998587899519778291579346240196768398003913178324779435088360064465150852133619043555916926173498440629784161875458983924153561218513606561674316400209120331350803774510762672830170112728320868548654739253175074480006208904853992389151131105569156249890075810324351107359693738681094744006563473828691907134823709624311732143975934331905260155780580713741497460498428141725706064427284352087233189308768946161385141358629948706023450184330489915184010988160782095216336239333515400010387660822964100778506302734426167600308441472565018352690462868969219132706290803309479825843466562587923318444423931629146429724561011335263703194193528848025268587167553525000514673958306093905682281483048873331339336922750732617651980816109524428476173828386874805480796620924052179314015581777832937802047042946207165864030056391917620682975497316879033949898185304516099580892647892205474073364339560180298457092236595180419953963968693694430985603694191440339473363826625726661740063141064312610749620511649389258881697945834604879433597031751571792607198241000488955560822041264357767634178317717532733688240299748041110057529466442387697061731790806813977554164059024101937019121509834313948012028938623802736941170278327572842720315283051094369059770698351377410065936740330472150821805013780287705256611010093206819498398123362076930535566906336794249177207513098575324845634200351411985111569410159370698013222618099232817366679068919204035790182446857979580680050358355707880552767490232764797084572282288951113979715595678127815581681061289577844512546523335442122687283118893518465412553284449750301924911854830289578984335871913753428805899634776678976516173741510893312775473182919981107501953657322562717705812893924099176138454560567287260392024221676163947626851255908609753690935962433803169043894732443100253315645877006077763568286417995562111888365960594683409635801648507396078599999252638326215301554669055944555719565578229427014026205333402885055735803202891492144097542472641831366041468590333654340201043732589664124254153559274864388004360928295170927374124117165433714758491919642556587276000790106619665249270846768622120975755931747337634782028555410542098170452667688295773876228513913201042505600918212388116687434813050411726937259864340201948569265270461362565646512630138160989333710016579966477157511781259018345200566649647889220983402803482444268237340385228333152913883001752483364721284366014526291383073448048593212308952075996166319507820657065084112124155444433564232473501200679878441780009551707479316557650073969124826605690760151197944311081737324129430118083926378321050515031445392578668184694649582773728850953625589411438078179212392685172771291102971873475010868754438986451557955997393582369610796363139237979632728848933329063531936921224920571756672473640148022205314473186498244845127687594705108651885626807355605847217942249195262146401433990578267917624731613100226902488368480718262897972484808209320953619689821086649356838858717942213918082884722126832939550604184735394981807879821692283958748996159619515301657900391520865131069765413613281092663648528513878286548925543288371812823303700667398410491718931448758425115156422340252887314767364881781851626348740006717234074600424650836591943389505883458363871866710030375307741256645959652925391548545768750220926784532814201548017549147650964847817548253219770981587492168254289327711769207730915042706451576902891225384966247297107722131592359909926932154397011721170515728505233132666408623662543427022279292341649573669364820494636808609174942879653831008357336384386893185874618694903498310705085576622961381023450247970971669521257743290564004157397681113258404571610078611745280973820951988503968036661064788181829521207061170964154538732324014043064274433937173896898199264679771830771785138607983113384911280641202413973407701488879997337725157849210113091641081003148122478311856089665716346381937601953966203920535025535967756493375076029932882103975986005578638436843899618611099373137779658968491426721300826522567080332263317298923402455447106691071999734705268538621437764531377142592273623526264165862706465653466595740573869418233175409087364711156715609628064679445602406994631567989123703245928904988820609847934822108690832610821690639215678316740898807416544477350293960018225381347861039477410474383554679489499260059326331034368289346758808919443579903682384759858387353375920686867340129617951212058795413964609982262023979967550234030379158455254164438662408597572318917605801035596584419570588112817462431789399700534105853811707569301724063280103308652346842027722214904269796931241695652441903870587444385784474202340418275254148832459753671459447457340053651398038422783687508896210451182009573990783427338319498462032726097949046480637131692221353183794593701207866905495314177489182989120565509108367958744342032995843714043936718797395249900366606824501762102956558105782616153564476207831987791385089851865771046534726554735680197908475835010720054110512089783039843637027655316262673424147952974878753319135638988982319665937760019441176845798224593051227409543433104661383726617250468323464105892791338108537074534755626675609197019214604683062097741660063178448483315555065765659843950275657094626024631563680568992909750981000229354613715046011069898354540297620177024963596232477595688513840115904278674265738550476708833315964879561745904682573055473679102780435724684137656349423443925408276016167525821203959112761773314661442892421657006982765877251982082744004476531350747843363887339620328622430827931161105707057093035568648488463081979680053365409927574741317458612856728563202462347523373590953051553990806840042744324861405759843531415914239553051251816319521919544046804757162206983288533629668532816744567793500548700317828653463482830329283947882411840556301288229937698328423924755787683861599372790810867271646518952674788354178514206827351659471936607446887871345172889561564552981085619978689132664766427283285522242608505624494446533806794237594868026446433612438408540776217313828388889564064556642170472911058304473758504557129440205685457459778142148943742724788145252312354765625451384958938232307507169193841120195239591885080613507938744088977868459093509797734877466764148864685346373444621428811256989075159942138762571681562015444535171218991739102008131333772771033493050858639558395160159426590423558284052786716897587682015220254659064761862274501195772291751241418763093875367000380053267475397333635856509573904072913080534330599642388744147973968668061641473344078427637859718933850737295037563005629439311577355123069432059529411153557623076207258318637763865748508563527825762477217192841020592987521357058616642427839766528507776849399167841372004574901679211841534117707479547454705925382426584848169063437124932070104080471526589698633130629291653917200064660088538024925626133238155942107850449992882704874216396905692714648482184980512899428078366098303118054841459526390974611660158961383054515344219916018366243097393922099882553043780241473522167385427605986476968183794149722711828279689249963958666035784719846317847105842900576481887376183502639878928332306390028358814629276400522090976531186184656646736975493238127251708955154127132531753099797384900606743618880624471243936821424379871236130284282610558275154992008087503263757948949011137571988273416887869104370580294035911920287944778301377471762952221400678817364143586644541683254938606687017921743381599780272582390288454889986161588019781547109886431030387137155016466537770589862402312854852919706235232495831175058194481099324881140597577296916674928341851506133590464378778000880392109623480877248840904547004785750607132642261260607814619346088428485959062395896937345598484880947776425755317709907781055827313702473756121032077992021443852693403032103984728773065163673032927128033475479967151523950844727565228639969556964415266499742550011415046966615025682556724888754383445663784181998725772173350905619907464507199569227760290021655795159917576338841079628992448161601816344166054183974383976799337909733525383713609653798201943297713583855888847648275003258013453380744792702246244131302435766024349254144182803581523866377722708618958307065071836308997428724578455621331800843618085827613687404760618888521256900329061151328990778654349405292870582531575282861172876290414995530881550768917328666259492186569006019458985783784416469183933479903067599912077567403217436072684702984003199882909067773801621142190477028034606577838226943415015692125806127157136235955344368219991410903485535526037365704304180186053539348842713969385933462286375788845544259048440066695296702841183166860030285354088115420213291315318151623564272513419701817765715474866292218197191806884137549813996993435358220922740044214410009012504414540712463689162592048328943719352737443037647066469035593441893472075291859352043924904928680627138156552980176812735013144756292677554176277179299753654914335979759853792776471550307412307616222398360256278176079129285354720987210397466879199378303266231629636059204000616486564811671929271814040931593812415937232943490264084020684534305612714633088584685767839512309116374442880830611218105347176422777979320788630156222433255337681866692470623015257405325732801930002939831038295709576011046471313012822392939228546643590933411590009118666087065721698463534260440523126242962870516578911060077656592855704295088267179336305847696390690851642642451464983406456706669725643678902483646402304822265256096339971557745516453699448460214523899274238232572826911982093062343878702366461007036787013219156057355979804492473796278876512318709907322214762793620872785560903596243264024628829779032081718571520420130814066790718587382114672814030204334456335637646208155830911092258038459585763322606862603398506468157209160460231449203108887804070271336934843972365241056409623814191346651677806750929518289436798915086062182838491984096233892591539250353039635538244356776186032585289127700975532187143609580879317589130536968251892116316671672045278842183434170654728049888666527671748046861351829943833329984951086382017069325025908722249640819771916742180843184628832500627485818008805726283364529537363216540369292178013406079132254291261750717671423884340878377746569450453932078319099309433814785210726687000048190379108471711987114779316814257727841599287808651754359785344188942031087046399697389617075620659568178303050242906784762002180529922917545500010966446616560780817687369180343548435627718350165465910850143064871131570663857767325945020026796205176283678143272031350779490236727468792554931776051743447693753858671656099345790935147554065925379465344182131929685418847281167386920518814604136014971248725139933461815637358998799500097340046328250695760190931968024565526624105126909993839988512274532044665917183352461388695581518272520936072935501786687337669384942852755492588331080648786298400146837422548140531634310104977138040531925915855437025749439024821223421722855825267969521935963155462494925487455840070412691793552523592683046066487470999711218140177004583005126349378860495497340442950118902841234151607658080148531255917442906389748581187064702312344802113861692062055259179035573474531258970572341960629961667910784997408325199818679478629612525704361595675996953609305047406133947707934097904595675534208826836266459264641983907490918006399293493690817494798870332150894158369311016015880531793592986493032993712164549663644425537428828401632574450997103364868665253291689695976303495121590024119274256105812963309640168463365923531045950396779527962093426256936659967285448447189361271738114665414709895564007612213796352398530115745388528046433208397350529472801973382048427705586104262358246939374811631046166381152462180923987232445022505479629434171369954464653878063469973018276713336667841749111204219726433765210466027988322534986688597064387166156353701022574562146814932574942628852875675147138762351912821268994947047188271559622420539056266849172774511698853230852692674316484725123132557336426141869032943373355341163755132750726976340181708847375069169084347203557114287395339018834341253255389906151039498879387851733986609379321245190405664914869570383572432074245658354286207681121694267506032427844908799348545019292861241653328879954874789724368558504010862262642628775327666848243443802291623513124550477640358761952660347238523767061484794054806283160435401799638076210700951046992939276229115724774579923286751732609658108598874534539783414144491570605994295863864012313048102493799541047590913542250374472841326397832258503155387300572779839835808611536280481842576472721242932457994694694233979222564511630252891528160313236315532247782429776705972468866667315230649382504137895557230354795507174522568830332118301964681138545050644369790516585674753781013524921860178160445741094296036760041249863259729349650617444327333244045711276096337019775147666749960688184955636411939055106320870563029262660955896841177242496135845851342645388298077232020329774545277860130447177960924304315377599526670600538981265119252576690044766385875953633879983535901965474190477059802449697108182489298990700467782448224131078783421126427562729271592966413280965236389234937053428188180841791890416611892862915971010724891461074499762561919733373033583196801504548547857130609046471692525017836164008310757386809602677745771099275847814390997020172307222889577365350809160192696674273027847367403866102417538615170663703574511706210630694031042139732055726979652877085504703844524873502116945273540409239939579247797566851761725879031324823924335418765456876833650581591309101672595568737510381978051873256304882630998338528678919259636492539056227306793415633551008237645788812680017658684177678466182915722067602705965819744608819300165670296397928533937695949156616862970099323957859258777310472222954454993793139354183233219377710157613063675334340844463373476957138420328126851313815475007010495183833231497825771219003546640817710162723122047757221640398705692701922506454102673601331941394341431521089687035039792718729558254411718970694047034138354517646223939099238406466637496816523730949501404417364091856698871007815857648568187311463359452861013435065783588645726116440819486606783206773389415860361682359936815113185701787382720160879907423903588235061840841063851328052855940033333672970212184989496228242243434196578940721706303228369100311464460198815152126681638685754715078369118527722992599990558434437152905197714429253259556472595078062420975899074875708302682245471739974724086526796093784979818677891703926169545530139091050108118158588907051623612746506355434203147245993407107499695748747382684844058245855717114872818336576175386632632157057472260148021063896397781763124404076371767248348477762029443124738468302424489239939901391129182613939905041010627575562125782414964228924788563675587670489298080613878926478335171516669899545216064549995349284801093458083071951067066282941935737023442353852530573888205377391039807397029617927472165622697359491566591312980533436731043420418623782330367425504820674815563412597291211685439855997046708196633239690648024566895463329340211285255444059490202275496257534983767913162042997077792915792027300219485117451811643320304941176890744250725557409124706831231295269363734507958645946678192468150257936539580257599181402636650649332808625446924767894879771874608011639422624731738587815344482466129703883497272901235847523124682341425473451093779617048700421308614478417251372180835165543634712986893810910009323133721506973703144603017539544737530479357298105562336756805948671243967160414764248116837068290121030164745113000196176313379104168309342038791605836905686784121405252042251289307138776245363307854796209093170916115005075328840838697949198172665192560926925764720743049662423012935442979680969520551970501025828619552141151456356890851124894302509879262873837600788917557420878546941670378864537743988147673140950879526471167690041867749105598484244353131142140722365340831877773603113279751834731905391295928348899240572633525994844581917010991703542765502898640892756393707632143126016934596363018612781855326685576358302286088783909264355980088086009099472312959557897519029259359585491652525029653109743744800023559311030244427941819560389256515503492364171859671308102959222584526212481663133824923400588915483349790640410621542414770856280780243367617240218448858805419893351745472233275328469968069142697059059985900824194332274898009163793004439055628853365477520991886942865877739471174590498622501258920174084076342968029332738873934858406488089976867919231330981304268550528655002539341256463816658671864785891803658147270295412723635542625632198307323924005462634112536356340258810011126960000449691595146894232905443024989900060321343046126841790518594799678419684460076147158308068900787520831711582529037609960163755598831801064410793289260631853936293308699962811201129558709118117349203641522124691939483943709244764879698453760423073316015468296370920020093319460191565769018815948192462388188589738290492811425120610443678839544087516381536649666391777946670933866083494145029641325479188804915405359396853749984987398986584900286877756149959995330728920999793848442149212448408578365217046075938965165639926747828782863481704210280040841336201097233354851401348695220278546992465960207332519772233865676661469671201363164693345055301304640763530541058415588774915941418612351637299953026225630111041358859888779064788668498975790806301876894455290115579762930335518387968858857926518667122299021935421817481698776013514456425458953864408634694454115823860569534950080998670855595022835905699346136374774651241196088576400157554254097008329114448813657721645497842515289708067333214928721409547641793468028434433893140481066374871085124977165313824542501469440583545546597479383534676324345327551655584351095134194192598303988825741511312096212713987007091558681752459416710110969230040416369086929489568756310658715968290816321231625107749505770742801186258939824940535212297879081007765931128659177014742466629830383244664243960051910059571647439635836084394124996895698657242481510063995727453526127675157075109098917785214867294504014372852667328520202955029624937969118923762852496507388720057978955933581638270032162108486867582581938102021154049606516069732449200227823225437380671442366016658439835418398416468834983214701019144711558606952336402693061693752862007952673813389156411203709165110789990008297308430209335895761101089926686107891722252535765822845416329368540006599172557774525899655274155270072721869055678858744984111386282287526889049091145075262182312466784386420052627396463868570910525527429293339346644150863676465091980205124278514883644566435501598223410580006365527349084240795806104643125750483352717515730933679818539412068015174978791567456551152808246246018746099661545324228790927234901980097500664024608877105293417680551933052035644803953642058887988031306365593043128631025643920594566647536556339118574723691921870709936362452511509769791354464727425364389697201533551394879611879457441853177364345746413129171492735119902888501369706369914459641080067587125374816040880022958626744236427852075116562505232457811646189246225229700018601348550991775713913904933033146334999020074900634704000987423523269451254255752198771604909794735802002308605394050291494289039485780631898641936469436022732047780652499834539366360579359496988277346386223217221871121086622207359533569342784281440531661292834898915448913074568068330255695429634614154558788548921591700459311424207603296148796086737207729359642088459666311088738312785244346758398190436356131701259259638463465526869541275611104303204667432650441413178423089832021774750102829256210718030063267147402137585122364633859980061270194616708771504946142192384611575599910980028011338026835055516916282383568549311442025144563776527824440699715684216641708542186608334482801754656516707128570515002217019783485388360304686482483689110142825404364738723283924797556916523284777547440984754797009334649037423431144991218408409629565822960530676727439356459858220540941607360151607147379199222881973967031913362845420208665979657654258997435159301540987226863832900200323032837738962547630347679227346541520011312233814251211783651067251509335788594371599334273023699282781646936836888929561444837614102752236232347672542386881161654735205137457240473407766033735858764302819625847567747527588272345379649231856390941663775031095271552237454658203823418359361756062181865107624572788844286724524333497730763897454466330979509308155423015448377057585377393427072936065850812619486718820201533080513748357753716299007056292051110375949539306117291802308682365102105589582300551568239792897072094893166932903817167689826289637119929121716132250695429816867771060066887471567267735399133513717208696971595239872222404179009161952106881236966290367236030291531520560108496153207047868526040875800526145453665349133837710659208854479685002365226124514841068855570950398184588051449232500635304661379040794446419612303933945005017642394253323272130133782013700737766923959748407238572535374021275887483808978040360470244184388933012598589530419746379900877779919594712162019118500939461725534527539143928844445999270113080773516198170097981584501244386235581711983254842330206405759250597057923526684379923918409938760505128076819280945973328006340011608409269816167577744195343739959842866927479522993654767483508255399409059242046495359051830068768856774140091971597315145518279380756187370622585207716648503285383106808239620593427382875275141764478882869177309957131243254932546446469728048725432291300793002293119609536966971472345888256163854614782386736921929762149976859521075162421593492950017326762142924134906235731058044645243394663417286806986183797913933374578289453763388092279462029064776549099934587739608368527709608291442639326596729578430356869830868022605409644892823109565583644435421596772923316087067185120932716163950154989652695970561289175926468977871741236098008368024525784878093646725050689490710852351988239914133009123044147990196781404089395410730165618304125538129383920652900276724749919086414384392345462237448274884271054264090869450453339650282160738805317111279382231823114000923163579341518488373084459125857296727653007746282575408641061222390006274147575655006499944420276981805141720973045102974345759031355838175993648480105196139939415587975679427611275371834644824683342359053582594330450887118066351431303637238854944171425843562111455377279320267309236898360863692989612107142944258410980803709597116305469528495789617755393963114319006984237807217096066597039184180612067142041786427820951127709416119716747764802063441385946821946818163369982005749046860588793020145009102688414634917888107815906135260353087468189079815530537193543069741409729115910551639454529344569947814001824005177173412753088284373902802781608422786039030444416406273764700207465261249983140315968840432222856471751990664874849581386491565974232213033459198564898766729127883346125424533979682230462807890773591612919723385244567976511518664400012446935428822678175547201181687932505197749444131233959386701880982126960994334945852260723578561322184380150697554196993555970667837154121264628144624102150334438598172590892846431434410720994569554015463070452185817826311907627694564973457362463223480284702414204951285681036479351277572220330161799042164228869348952238993678151362763881996759469379170042096098761554085663272752355868752657561194731608437644073456394154548281602916627669787754854166021084015017602985952555666847729194243279995444298406366699089609318147022969711386485863012960260329353897481648836907826002437423060936038451570651643697481371137572013347069423384834403476652311067714582780217256331584773226477593896981574942515589787801006452508942485630932507126142148914052806011507319792296604654607627322536884940108111448766812879158698408278437498570818191229257851307839925636583057448230335932825172791452955053606088156685907390044692880396654607005798064439304223774175050635130419660169897986957071965515770085464964882175418827852126826292783394321715758115268785229629516736613061083522145306930004355072183756478124887102334762975199390390381880505495894308699725397971395205658877990531912881337019366188897190633234677562162426322198189784490033143907274634004611039053221922552857127011525300571360557431009104865646570031942671922558362391927700534074558443010099534442957126143298406177885152349155157844298480617594850279969187913409373182666066434899583931484053412233055108566988973253834545926431411521313638932258629705164739294106731665386781690917242663132949525795624359398805361408655973056827286655187885454698924071007048473932619109267776354808325694654826468247319682285562408529550193992742071960042009687413392392180914810590839043208095101910537112017154910444227576045696238470033083533581407169548349547293269425362595261310293949734309643751029022596795808013237498254243434420821944763043345365537311640523896020292430039574159368803552955892808566257872789808177717532242777280962329519153408674343316349608394328552986894657380187868986895869364847417162657304058466505427260887516061001570360737618842601868490310613219195447685101218360726064609879665099626134011320974074047369752143856739652575387964756067477830484744872244171120907171128794007832703359808057048444228669801904971671269557286443422374524243144103347826810939477106622523025704510388377226290543138757762887342254747443812888194338940461008262793857763568542322987678944317927571255874834189132573922051263283682770699386873603422585188566124141667562058633181952334777851879832308695471930551223697089845224794556945221781849053959889405099715595652866237254531686378268641527110647771460440277387826984986032140437572825834511204245120940635133823679452692941525863813671363297422177809616797135549904564151325042201889028189950409740776697175306753134344787389176754223556489507745495125559867926678947721130266358936106700328402553855886206937852042170773320225884100710574216115723232321993402058940371074152398325192313601835268261956621350345839987702703533211835646467041607856460783900403280042457734399926633459930253970530885189009304131207885451099594032435370066203300371522098250904889240756972947697025082437972072708365188746133591924415949990301193053248626942091547569307851209581848442536400715262722804803395063044696999552110862920824848280575524852516863051933806612248592894467069147320554074252648301506059773061960940451825414697365450129334039072169284634598019298688456131652533396388873735804308814692281367711371838778639587497417380250430981822159719159567059163132849425315755449446113398492064584940310887048757124563010350825723585548139523201671748256383615053105576639239994139866926625405458502729985471570524778083438643650133236986940651731555717338300619254401432948758161364262959406415874240331065468363588510896351337237338082356834653526384395812241099140340708623306496634602201490916764196900207995700474847093178828756561575430694725132789577114733925509429000219697094030791335071278949495217851387823206473571791001154098175727669077975600020161279453204493267154150110924274369869598742731959590578827357123725867706115059288185041716814031615367974750371237457643467650308100811573893004093976403411135400346157512208423311556768974592130935483905564485335084972144735141685957156577975295325990603432178324196551209294644830507355808347758455200069782271108309876959603703072970832837560034184686255338944452932358101856583169183009885934777311060666998407618703611156936383957594591257859200560066993956108205095222142390186547016001168756279323195506433035007446405870580828856389747681642134641651454692090137664205165009091739249085476865423369450871059408779309747679596861361113832688018965220327658135422634425570373876537241675463362309082802339800315111791587015822435639809447628266190563979662918690474066665395360462041349738468810792845594335051063713918056078484588316063094718331777338067642932982168331852303098775858701552564333001505493466129239917732343892911127467254861927106680658391087910957096599406145341839719623074212474995093105753961773520354287692114244876441102062363609287748835212454530693811074403082394350884093728739153717600688492761666072521219157387132315167531104242330623546879571476498901567760263007136346260924067484262524804456944056871393557111995221535769187385549301932471828770472408799057677462941377035518688032205450910355855735476952473863449846636159449631153026822518423333174594108478066912071066754245635599678303515864145264121436657124542752488581841024107678698783887588262121519038901277899948658436112096900134589105608816596512223202234347040574776136843491688147124929868016873668693073224918599467455785679004118013082524444112280394286383134669588212875975414890731089649301037880786300361154862367534582742022650175463352119336669277785636056953602195484438300947862617497691504631830953463289785209800237145396262760635277598197397452184884272344609250016897828044337952803275689276031965385381531502669352109563134950556588561373864019368001573644259500900738844454349933892371678068150393789971763074935274059205590406074390829513650890189015130705664135327280140632177975402519759288442040325455865973451618444933477643508049974229371704044334767064882409816283096931707246270083416836649989611894126972982426871846953109317270441344346767198615686354565266544961071460559462707991459799622817691299811541856503639279951436849706609938009848864364477263726067632638523325257735830641624346746211305826623615865384563904989055817085316437322994569754507674028732695881065836416996325775371898558775281201695506181330983359812566690461972294038910661614864940615246456858891590755274372586064749029827376909967431335306673061914352493995009620860185029820351360955106230117049525704116563965280036669269367060967022994320844145323631975891626218021225710597177889692785708546711630579511345677007778426968167382003634876500294947553725591250513540874604368077534600210275394891841820426254397253630185371941056703473568800479355170402262081049841009676900685595853913369874552303476621253147020670214887024694128354916344322856096214844751803980605453065401015485946424924933457666840651221301469018242462543334790662360378830661086716858493863110663038697545669336608248658421216229128712000265724387374409472929778499977904926896508628502948185375752627947088114844368258209551533390405676906053170149297939003617602873232841642060020901815800325363894588472707140602442773885246227397674630118374627687208194522969369211321743246603363984085041676210744522674859248841585403529450790080422877536374144366549725953112795440102370172037806701046926196634431035405520145073131621746738303335188315836735587176486150970331313297182007911845286396169758059043267353937217325366463674070228412579633127158201315126875127002196601001764553377985582592197694577520702056977755424704338501281647284317975398695290983596551214765474638251389936190793553236164941579053659581137436055799221182845299707228115203702409663630189018254040886776822244994192653511657371574886685601847824749435240099616159410179596773320526855700256081386524117061911980307005851844077527972878717277072881668519190669355666248425715472726307351507585860656796966736275434045810882480134601398348102599569700891551091759488969735335860703507125957689388116678524440605453570490057582385319719433467040839008076694217642323851699580495262453901936988103359671067724089826836708906202994207167149351148115447811542692121762413869599192953960094072344089350070814780438065727223951146696565982663850169180358619208841319461398166337978117245814553527262876562685450961395162164202250339653343103247096627310340544473178767880787134020991264784409815194449303398171696286876845210301072378279188334603498114762888358926027264331731250478033619095962305138442395507596691184933111836916694461912434513856168935932785306708842246502462373733804369919815217734216758165789736752546292335854878867781937952890655644137504681060485187796660539494736493956628499165166427380984229135060184424967121798299411745897138755159262793568741238779782087843959704873549184413550261552891731222871894436987685543382623674703175019677178722333333397846507872246295555469590900016530923986479772536255155485495987009129182150870910742261803758339943785343140418310759227860955531247217608439306110196407234400991824221250268773094511337568605871717303553534213993375840357433006728013910507954370142209838860312995351937777028131293333810457350014374664089065738433045491931211699665041226984609731059385271468893808079416098743452698119616085419468745350624197613364792333099858920178861169431107830857422751410986973604876672008928562700297298277190215132758564693751094352534101255245471835790202763657262963758223967879252818579991342321093500718820315453694399936455389569762358819491534446292963931639121805885472358168487469820367039239268625105187403143139361955977946605959860014470717985487836710251974299845691017766164307244175535166406514799742942695665017837475778657802326162331683214804366854121491859553820177384660848893913137356549300557375566690635358612398053089528938573587879838513472085231684328480738571379465775337690649473236511360435104554651500725320661397806958276173613944528588174603264481189384544881227072958971885523245719924099640788154908363875654165304021114566220258263116252362390172686047111323393512253827325270218753447006467274707088398215593462137091202823722310796888327459605834199301952695308854918568106289021167992824144149657283742365593030566108825993592231233765233215324897507823800549119017004970020045326535563851330703731304017941429386873312927691576081285647474979842783129764808138161768105055708723372611367233230750764192208883098888528492510054873022789500036679690225828489229170047046265819802868364631766089118195711302053152828572264292237131272585708497148736293623104345918297217335435308641638197863122387946931390133497534098564569219592805432341904976927078980400497768515862561527622912309330989059963566910645354587306295863697311663286389744692258396916311029507146965592276154149672965383085216350234000743112912777930692112113204118290973295655632655747767470938327324679717214096229175392897614672190931439446536152546358016245034689252016345375334542378652282205219979737991028363581060500529512101278414955226743753983863755062245553242174746080450139462422912496559192434492514210448621917542521881241205179542087046651751936945279763989964958707828884513663399567539060907602932519084758257683655897656258410623719000005319934014246302570611786592571758226091851720262592827582387252516863807044438813965291210855769231609676255861291007935532385575654990458855799765901570692544257935431624114589957895971939088927023759882758129294474488404048380200620432761032185673473989163434740194333271307301701532981262268996249576068299309719574852105913876654286322330580701543923543162792414067679597505072315118841786445631169213818177115109869190423135982592867489644126500374563093396831362514990092324586774526180294504882406981249447370036756194242099464266159478238682955559591847922936692591843939828191483260801986749324356181293948538847713236578860337217069139411528739552676924336119290812742148228332199209075378897960948353960936016839479112998139658073346306221800435031471190606826300355402246722973815474321493084922465880066052047758696485943571729192970851656750493959775887374300146187143857095232381205852510369711280994882325775558776669716480927766542640511306330355950488493627629105815496662321280850176330347607549592176668596978755858956341681390578556670753611150045044078957354608891032013371552967445179908482896192856104297257951814748163050946138786266901441026912054659196904418332899959134844050756649350266349990289696245020579563039316834255117799165918558939064638593528704755211651238868451154067478752199337949710725023044597186099071420008533764322039808362893301666545507093772234254113924417558093494633253370016371405373883588466485981035228815774014912603156812465206881173768362927238577213104118554304997851795473119230944422635875580041526622428368452573502319364897189164067250385539987997483702606979545344403827080093055525093113809664498043329064772878915505043514967405859516672809537373793323511241637270101369214204112451913906170231412804529465309550397767968971499339951681598311603701580128299447394754161373012494201924345785790808029311420716137406910189971155783203574044155796812842061994596205855809058304805925140797751698386930786298873798285031209343966557062529144399552575262116087211751741083799657035713980263008614159444241391959836505856789522696347758252209354938010219874905707853475802562729728615336755794065873807988539910857552631300694191058976875005983337685582804870505438661553223787982686056214886066448793458141281022978210033275493252829828784289962418643706700872325145110085026818749749690647392509679355459181385958517361061274285289131430152482895938107090456833799953792915928570571980411377286509505608113841017016840968557603917675722672899705329684987322789786436964189269737972324396122825061876567455243611768459416220806440161511856544678582242158011957362292353789831446543598186548110950093827704717501717494259076640876819162206787471777507528545992679612408944719625474656602211691915906605901579285261220625647349983640634904646650292783046405624308925935281570556644708501425622269272351303253528010513599322088021116897202202238455242546100349679488439132325936506507702750369872425010641312632549362681523389848315771893246335850060658881218479942800597192465782484809551500744397803512011471852413050076609286136603097177734865397152437684171888306540617444368164550749037095637340692087423519314850340691103626224294587226113928680312984032718013054218317234125159675902599557210814086792053457294338021037027136574402587906449835804216353773182491570254032504399857103329768179726648730160267616262792403391353254804901068966167276680953260736706213133864598715778763796993161795819828448202637176042435615665252116822099733884329059990820980560515467456446724558496015153877000458548479700823090006977138470011599101965135242298727995101110094014302444970935975475951280854323494524289958713467692471702792541637121190267368644042443925898440017598167842078726206387021153826834045761666276716691226855386036487977671860946340584407343388239254908759258500111770534083180485412381443149764988546333538353633657018272010049609584947176218653323174893466126649257301585104539723002925570863225860483130976689166201680085820154206847882677563473410804947134142961552066781914418909686515983101434669572100951904710415049379293927252749966570501499164662803992079210427070270465530243853134743398778941290759107868586974573919582716627704172933336476330520981401038269455160669540923759127067271924218046511068252838829525683658543330774793419415853125710320049697720947195453492956283815005048784995572127809223669632471261639772052928760368334944861990613545479141091633579208085993805731830730280887583002454677518084157127222063076678566419843838031617966193782415364326981321827594903458102260839861464040369280398084745165620697145757443024554933756319454743201710346110967183528597790955847821991633667098795063667948142544312384852998399320826542848816374513812202890855600644358756698358533957870959267535689140677030065567033162616763718051269827939501467076744851250800859940478243334377556884286645426593494300620003663896602465132761966243342547786390390860463983031840175417353329408377626137443457166286137178032339192929069329621403731367321777447615666695245012947211573951490106446488400421406191537549237261056466600070687072456273117298260268156732958674219388686363380069260548793051398523754564585308409251764213361236601840217367879274025140891476402483898304375058008936235874482713194695936691672331595389702609661988424548617454794044200801168032305442570784101729940447125090032031061270274012427929748495711123206594090086401053218370876701572404786942358181414477515149250613992054805853905035494530428525805499602346653665942797911475965803604795394864416968692823139152129604581342468886398974559022338294458098458824894763537075159097352484332387549294871377880558279040148203763791940638081953257418486797781012962894374541554014267477734260933518742221971496923244240696243294646084116607203939427352912419438600070706090963478000743795241183225831699913161172746536210809113031342541055351355944682342678579404616553863895180641499427927548929268288690920552062967174526756427742468480526863096388270511780569154203414276882511764729445260457615198626180752884099323814578137219857753912178260909211232102583422440203733958619507539854728077145146750724988420228026853703026434759610973808072282616128009608459131471363446884067432415907358951988779185717393043094536122250454132973443663770124070388066209441114182760584881560662707312107455993634868973869710920848823616999152568686787238800983789865304910085525212333716157081118710360608810829442397227960036556804836692543165292305447177096468761199644976908945690643706952927483519314416308499688040464779077811229587343576308954725189665762235424592176624553272544406809057512942346453065337307154443345792408963976418195922154447683920647804142312679424044791633223211200752064001504096108779227928582712685652137311748421435240371297058443691737289091955177393056600687464941268848277866778771429365721125714695659433066831196390716806226183191555532330591617061414829061310660885055731890583927952676838078534277247049653611883486496786089873265514275923086385964924708822245818811982226570839616069317023367050041421502789821904938146495896017762625544082865605172290485479716729835121617742332539923717669931457996756220813718059785933531766652411079008588101330371408155288968698204668137372239367869216128838114129364436687095435344414487608976622654803651732943843153994511859621300397527933862918134193297437663833571463376351985700619841525734127884731433332525181543825423979905007011578030342041491119110793624576484111144018511228857740537636934541726579949370756765952918020838090233021538933857731148954893197633899504256331004378090951971017727719241828849727397089758466259284742347615115306155027299411688615028557665277833359595976766666180417047735788872222835928517982012308276320645106645123713736931695853327258705183090829192450528645243500137018957632890117652235511762782967643864955237767023803610076811322901570330724749508083091968322756638781965209143643296936585216286693527266381924690844784724444483571539543391674333040004522854381108975721849567381315056923792276068266369813051542374116908360033635225159215592987124102296232137782304533515176034641752781824674125591369237500350274069746168912285256486112055377725366951050570994642432094013134650141141386341671079046580175215365684536986770058130085429757685551257364829194915007154884495254700564426535815147604427629346462895704499150085366534534994361377767795995349760292252942878160128168231644633622429819507745864521496545878949002069400957222872815453574977376320508733624328773525364163646082251769758259919924399346798736640834631238034985822843927884780285872865932377003042203609036968509458013022658994655747084274072674506160917704638879506519187622832604441056775375121021262341681057427947029734021640351058928058998761315502750019730926445110992171148429113724601173476377329086749749242197762335072200274479756614549891050676602382267581354551239119077692969010137523033942184482897001402752625201328248044245797272861508591839712979603984359186186918060928150538681959723039223003385102497589038705206221973125337934344146692148639631539580228899269998696608234476238700140409171357673230990302900483389340822377399643349083323011637294239982376468995373769260342271425623498584332160099654050130745908502204225461553307794326092858358397157430070840211405814626574528267201193599210005722053935450162102651105713428693316397995310715671779051103470963827075968518447165039114046254968445005544917550828493132271717396307132337605702750962986939054964274549254778314036788648932900784889268349376835716417160940415202898412591148634937723482999107971001320695770350686849167362064581930674768863386147312674086466666270593606762380976008002924039100500426484248447267914491412556198844357586765925635636437637844631711186534927353951603166674517463012684100583982831500534427807850872585329390890118526811339180688560953159584958421399248880721178627580092205874376181623730961524298088868659238447935850404406785529248668434498901069358970039363188702387848909835476055646036941926152631404617095589556631547212574149657749548307440581195909429499920981491588326304773321666228861424194638347054126155866791773566155311897180893164448576209719157719915522538447329455709321146609198554565491340050533405014566458033116108437900736231378401118788789776786062277303569140755570934215193676062061201015353593848297750237442997780403904071473604993939437774804358795641650162409422877119585327612265441600049637444355486508320373236475168229867624973893854565308955261950550046774867756911252264314040154154163669761498048112447675811882396049702699966909221524761773101858520028747459109108377831936815130815622835824865577940927243271884385379348977872900714849796755517286110334603792503442981980756673586015718551031353434600627355763098406239157487924211076601472315882020028714587122045298454296222507793932410066703570823086599081032405734378196932824023358412905430803254451582429736076848762455478843991826383571829759975682870268403431558206875150902494107832138679013750642963023923587253255300793258850374852609562284510495899162565049942738141680868689618155018723770387347867253281817755111797097370946996132679902659986597452670182248377338973630975823450968530123815678548280129458429921867604208968925927716320305090466457640522411957023659573821053478959735063454907935668026441002884356123085726993604783704543616603173847302488464089399158324377440917355891279519410877139440630946382344630638033740107702893710546370337948351805626994248920012661699231060796539928537005959240309780993998843567969356316882593310931636145423500261402770658877062165993420122800522353676205861238934469715461667043055116584389920789434132897076958731939892954435942985763062636613132620384215379882679984506761476731286996044108369283979327070811180472155786974531817319046961263307142317478583018785448095710114174166990025869545194355896505488385125719940309640139695811590144866666932067908754605331447832679997595441402224907028952526844653542309554533684567070159904302669095469170145066145816181079416636049653526566211192969299294401714918225331895177340316581944308131450143653884850297249098130379070598499021601495810795473330783556504088545734691966461366550226230150025149537352625009077378240408544519489989510161173401790531043786013905407982803606695966290867743482689642314440727799530669842623830163173591903699853268083702948285911802814276597947977694952376357291251733455537962669912643793667852348916296394058680388846924857399229711940152541839306976258269001374359602017361675060262072011205943231247322315236366215876882350305573599998282660559877388438055788163265945744066157719658413911622607522689707809092028094622845345182390314346936174933847425089374723241808821398946467560233099221888987419804806354777557021773622088232305094143724643818153965421309558888885948697782357023555302482144300375738231062090029160609658009045044335992343961239143535518378897066411830300641791023600136844382469267097148310670687773136912944756213096879628085089620798185298444006356664281640825853178336826777462912121884659883502265354901975943736696905698155472752834960934265861493535557741412425458510825298706342998309209369800028309466643675178535326523632847964435522688362715962826880593444135468985274553821597975951151352623854883116312847554106493234146719984724403022659321093476710644255744993481316463408564996783174562774236081634220145775086660011185687196044797511285290757838721273365585299916861260610233797091359244885790120713991323530992805784554090297121432110152610614547731928988289814858959189109934273093107857535402346035599795273816351091461705804864567842880617654491089035531664386848248506309727200190707920205689426549013390786873231786804142008268717320255144847647357659267656399907554455562896654390496559751063249330360899732568624730673010120668999090523817437255274565093332359144074206587920928467513097536638757739314791373497578830016782266193345180895685284690276194397009749608373970096005653327191877546336836951736243723027263125279505164423017594107320584455232249057836463667068295889242100025664886591395196640200710375856642572560078694493892616763113753030788033255699031032306774651323099223953855034322138173811978845220737072668958770406933927861921940971025779847481745875621092734307002310986638078016948765608572872330477103776675758604570995739173690415846471198602717632423708994205767278771224070652410516156767468592121576084810223311527116925794915366478481636952812835936565525200186933513883277658768376218184601008424448910580911673003480371342767353931144468613446142388994901740475038972775639420707477215362628616317814097146058263924539664955552673697966105050116489247792020740421249149131958985574234117000333673529871490458443030943259134066902136724211387569776826258948637555279324707366229334864169738999551570186061792074207051334480799939947631926652073214399068649004412381523068172359246595629617041075672402712477665349875543865066502232586596757038970767311042459959892138626400994429757003074567628595668121299269961918440750506493858407566541261668217916916362124576314445269481409475839557822041311457870716203103875481431549414271661935699967014752772925275358459503563342052630406062800336527577366803884416543141132003671894935257785199222522135518097002036684810727689103835101236308591038357367697159983906128680877912895326153818301975491894835460810660541410911597945721248890241125018800856998909450924013152123229351056801928014596197390792348611497747204321296221027736753108369836595122123002116623449321105419048178908264238793584435904342373081532553584067386145852166551280108403730249855190797524301876644336048219041565850922462672859519837056366054328220038235419295697993289600691393064942964084959954092483941084939126943897893618855200347550419241614106370499589775335123218359728324020779329160859364622013095716436569299801895162681690446661299353777924047274981542328110678012622400886431668597964164749860265432985081608268973401188344960450506398587775775118131514548724725631078949729049613261724067653843215957682707600887926900283593098991962648368904656338446221514145100776689479525425264682857514228676553155653608565071694582243001164616009433154598221236904661243013605655991710572239540298874566657682385954291434592064957047946058226596214322135243874154162062525948472787580658542440178585488537391872312483047307115853599915138260285603001729969743093545160468643615060249850482002623728903420287724765842775002912433242531909924009481706933238022372856865338045953785845299849746770784575546794422646423815509972833441408433456115137462270142524570028573584265053768709683739586077797250111844996381239367441463756816843914106343309374642595500425216039353341468420904443451382560679280370609474748013974154917244311091162822721030210461069735484309224356473291233513065263150548123494315598746827394486674230680922110323827241770654327023371405059289690090600940503430228995138590456349309699128771732341366211861178572685497072897884430942237999141125705578715012170805670814881580908271135551977889026244124251219882762159501109430093854969657011918727462012730990932251050012253521772794205184037018651783497474789662819739852538676394716171336949951097437432502820414123138156661381592135046623977560414396359543566280157878135966257382652929118789949481478898181584282666852553577708185936265416275671301444979462184805110685372309229103853888857266939468490750563985242686358042157605121941978242098089422893306126834021571883340387074510029587427781805875534725055830813319189750887964989888539708219029046544682347332556803338433203467928144016356263888070855830608584404820757000937607343603379400184079182107584362096366958778872885569432415781421271459065762085054240791722365864349844611764981787200059952968840743969946385918731237094614699826658678044549223616540312618061964294365342003819028830084326199379652921257388004432467139771492146658080619793772629569077557191441751322099232994842474859615017202356562623757119735124274954806409550998442062318070964191123273936030163341693254026073620787566027387471817289989746782815164998948871430021566486027455313913869177307332313532995968402680999332806464351600168735061684068122007508062857434525132368802207643622545061600594531849153831398460368713000004753953175013211148838887212517985033414000995895316718203368254085482119616632644985846578248589036146408710000067685654859980123449440427181458058366160058714296191617023646608644202256487196457388143925442339684631321560407921779151077409615429585691306603581778430597552405662510673005231004559671228337565932004833933501277638142141830845865357328548424961167768161597143505763353660214501324495491376337918606891455799863932926941172144811678887876521280449473803731192424299607900860740983352334878784131450417146349068670556940364393766802265446964456132211240806396535495704811948049788497937854494286032669499596213743911238589770818861329960413604696400424409281277721298761945408247463756031510702861795785911957543208114221314083056403958050260730000688316746700449876889726880501711118900273363939589643497055979572037840933433349592029846706650557210781684498269563128049745699385938395808680303468041624386390483321348809312173491877200768577599034346505521623877336241702096896368330908385962866009665008111672822701834944198904827630342514500524040133985262673683679655358364634638252083113115405592267917237357932425436621787260841231092592463119024329650960353043084989549085884811717135578358252836284380433532156947905052737982286931401883295642472862943565451546814098917062931703197784150535238858685980143579974456808729649600074810098179778183641314148052210215781600417485728518517994986391292126836503774915821189695457725734573404942240474747413768974485772879995542857186124356098165259983680433861822051778469416226596330341232568130249230098037325930044643572812475960184357473925241034000473677120624754571195201280736656819081145115844235336825307138659793950305753518962834074099601187054779751351436188202102040668206039950916667805366195020741092523337830007458124204420202288828660391633475406581450327436798069609165508460532330369266200348939936678473600657001954992988351965895938515145566877512809221208774845184234881472846733161572689072849640370129843937569163953239797974881105188385508053536541865772896062376357776230680998123605267138237837947307305910358602041846326261327195320460244952714550088945196235394826508201726519103994272804351880803235468371983742500377825055388036912451177180132878419552990416596590865976935231713312866586256281891540733331142305316081932604534720842959341967061649535731816928856884251623729568814902556747899002288589368394125170367792280372981229765441160766182313777203485009110567908394309822259862677497571193231214638658201487362341771238709051062107763961947485237471137446979524511505824717691623155180156069418864423857477238461212708792350879451742995706905277090763148398448130190772942684290314867099385910804885598155278111009249506188683325297964776146589615124707208853091911182942635299680231978740512289596215954747937859863057461706802444161403131278936212662116958123121999925176051939880189966171103174293616045217996312042608569543958795849386019096054803709603946445354492319197218332271277941200917558474611677581671515318770986569110623561132855953451090372841403694772245736585867693493596365426740014385686820114670817774889816211028599874211360889626770279653668420110382694263009093721038217119578803798950767717813381570941577934024218392327409515370978650095307589283751458044575548656068120216436733519000565915566860197161559735613642477494467890347177990673359329034763775923563515576367433329154794358476135775842256219199385945122089003741358484703481373106542848860454689273822310620974804333689492084444485159469342362221948055372405153403792235452320429013868014671493095067286874560285053428093058134687101080513961033936457988166007238650619273958650263020252726035001664559325271136110570071190405375830661719207759225400074515256849915086541118572139350861375195669301578095670853251247130350053021674798023057849266560097843686263240473262160598991697155307031999792225663096350257339471849117404920837598101046189665896412986296684137631187450154604526493010051458888703083638906939673246166878494814733290668552211100488995804181463415079317822760758956733369075343131172994565108358515001836845951431086738901415902173256261926229621261390159958697970055204781457156103887425991501881009843759383413941714290251337346096241656753824906038975742137267366623216020430325663932844225380672116254313890986524414525986756528954715683929211878323887212768984653277170890057163772183106558311070316176713456954599868421291497799863041917549293618205501405442124300057981469749689740044528591700961060468243812950131787323290514818766769835789022226498693820064963259513610884509587708287703856614423745803516161549379344582356590359392350411944823075049161189506141203370252252547779579866091494398721695865007204080114579270186673623675983389974459152166896670040498128358545776643217544315574592059053615429972980611219422508810107452724382617396480175043843778873933010747029462532801159230376692867150638083229599282318905314774750915996242752823001306051558159461254461782838092152983337397458353271681859227269496510835885340580094047888536386416687321563463041794348181972222949030481914824810743025496844304804016623130124347187721238592981594409126708870013590788323719633439543589250225821081149475441624742486284403026151981958174656741632169849831980353822238955179496765083930463054080341487111473062189629491150755958554459820075761803048109724845615066471666618378803990829435512355160775450450842149497792430567087802576807537490985592521066935611899959593009945882360521458842048122272861366735738651309308391305751614126551750666319064243267472958598475957582627803094500782467608503564725751252430299545357553960732016685444222860460213173133849398219513722371067352013640180037432776366147682539649899069212439286484344135905074337053672494670431702818696359698120886603775802571212231093414334165006993109282596430957524022109080633471088654179533255791973709016361244334661454706744445237459152593494014339338039256283283824804874887201582910655946649801491885870902349865976423505106289498302485041762285088969918328673597787583270652918569427684296271982746620380648355077786903683520087862525872245799871086291976098443302359211047598111285489219359173703378827854566543612092883377953574186752566279484424837780900502968015912292582591627107077511891166251201584259160870256440048711500584750815037964811567621361900439855167715790976847551271448171057052600174679128661507202290874466230371629524413434554528342991695679520153279015671678917745635751948255090938955876703115136006476246711182890425177178279070508889916220865513433206163324580225238010672902857690174289743614135549422677894804233967407406511050123028414102017080487503297388144916371058176732196901533658440452379903832595355774758193192526142485301451168335821203529760651084541588703705954975571044765070056690964843711797953922619080687132543184899845649900386725808452258895507725385004479661022798244968517733236705137023671220031507849233861523348435428369174000124486941994389283669693318897072515197858998128077247656248057732627655490836230755010174499552693613784322760680020089503020563858193748834406594841385947657280748680683068959373286210813382621479502524794356730124971586920693435698535853584690038870028182197018077470484020320200747111769271818362127342664855432029538921991138761735042808889584689674092023560988498574489743337040901097508707813097269578990665866704000575838448900893945331782736540992633318821875382972989051796523690203097788373466161716918962897882881391129021443016092786530484841669111231764597326150993339398740987989397405837687377602938689522343738835854061283776765756229696501020297095017286172646152776113532528003829811093264619426396133042915367120604968639728014652398904346495814783488600669326637878602698034452991291403150851563302718437679955950429380991683159988397083426694244318085839726804557980305665608825351924698753179163559893529998689732110933054147796384975038598753300340818476922323636940369132080695158011386954554322532264644436658920408891025441159765821763205153519473950895156473350839504118612789185718519586874832406246774433857159509504425021983154080989334918630335876293376509724004162205690131759080498129058288421390940664667765321231935724008921192858271810697246010107614191243397060170076976353993589462475054498051944162937464704244650777060702421286848243066705591706840241953436232742905856382343395634889313135632900641321974493560408041412009359412336170353311889463384899443277934301641613174281049109414523593255825961205850082845641466124484922537852088094372061281185387131323184576248014899016502069266812590962000884993811298920846614612490134611836049334318360470907344043004927081590525229487918780548130451864296659932434596465320338778669814263043345113944903430984279618243443923725697245103413809790070327140023378083696742644566450126423313141040901664975179699693206116884348495433641408957593380713161167465682678463370253969187901490793537755375032080967687464730127025886377072443106531851821193669203190620174055116966271747238673915085307284741945245152873308539026440014425261600109090653339675946671917432288542850554862843962129288975011921722637664875044908848150482926724235222397561157728864180085496799961127244148182244470018026145179014650110172024018721406828623850790705968813945612954437832021273623176360857618641431526531730327353434624232777766060601832306373984203106731839129441199823687872285214079847716107106144090972915299610601415757299417847541548409965147789176096728014764296317236021803137608249840166011329999376468121648785489304405293042686311978261020291484632007391727464769887304290277418665213334173910813716874404953083169605964801571206852077433069759369835209875085085744503377466907544143955732825159075699829812462463389866129458224010794848127840756223939560827927455381892695321684264517441592438376113845346607670951855850750459181685437322541279574446940552279633765500500235002303872360226919815587625388203154126649814601328227840386948485528851476482341642915384443783505632344493951213232730268183556072595867647633926067104822314897047839255338083436339507362906807119307202525777360262766913654458080551596157475971814097774277206213910810097594042427080813289776088157890901421782927835283034560922027364062603492000467685305229612158308583200384527307355309889683395353422367003108274594664988350543087427968461330778312963888538029566508328933278435860315292272864321599848731159977613770491350516741540530690167033082162565744549094320004118131562616360130785813294292819934294613104881710491306045944623963660939804711416525316391603264905947672424989018832460228244381989760423308825777363561483318221334633877351731901531597866315145848028604134910521773206681108901170690915125412360876831390442451919675301138758258048944628455322608987442321682837501633019749433279058685850133596574715457686104216076474405674318874669483959904764403452884273876609400280643925604832598040228385814270083559825697004820586870608289091781629399666969109579937125301773736587045371831735287758985814969972748697149395702318426916949084754853453340780143300118162275667949450282056277708649944861209504599683531707753540294371228799616482242229229667907135630020009549069940147118560787523596681192808004327117174420410105556929547389262111926276273959139472563625303592867446404094439825156967756365761138784284623871448896680384861411048553504484148741710204311326553820583871428011883554067529190389729798165230494043207103576727439493028086938691059314992398693764000292435984006710850127002295656103981260741735807863527708804634622370091834855618080122927101440722746218653856479752731278873706900204124345632475140435087730473178371970512945548093620829011836879200691679374938406906071560835934087499939858910326854801490510247575005329870458815459723538109540823617086947817021181081197213022356807973947832223798764752868733118368467436347266366928605013584199378157801098612119383208045259411475592140399018981579114988490228406496643600083976056038013656232809268929371394199240004208279664891383904720663577271387046297832687732498078570842004013820223443048049580761359285297514477701004418512985120489619487530932350341321192093773854669771470553631626474314114058499896589918234933076740247225126746020993721261904934753670039904718167526557126704066206712057993865480902172034095176656724262282782888747473583172344966211092255028888468754940917324325980849660400802291565115739303690398552913710488073234909403000270006856729165430197392938459065733997869842470113982999435266258876092121944164156990682755989430974819189540499863656299537445655108402104528500453982222234990246219259243325651780590295363649773053275032287999833581816227769344801614910614210472749850620788020526333032763171273979180753535021874321369817134707128476117706443761778336425067506176216024445201543392946444589760592666247724214742575584235800760447866986478135629420780816892243896166814407447726867977423495715064078780821607234166177043560465502574344982803560632652387464585296135146054219883317785032012366992609947480970312048005914888794763736505836710719309009656658459242300224231007341005129232965790647145898512015722836351478563523722815934226868665725415526504692526241617447265940808535091887932481639282088883211910137241238168271641046642862312647255165602854425391322521777832698238183861902540911360328094632494758279005104810577628696213745836538495223654826295566460744987598599301045438413083052412533509784209039716111887493650123838215682503416477118682416905226275796572164302973422368095162093264236956147375151789239729366327387783596543799781354860944586323533720592887670036231845623144695624825535560615661803322501155556667630368906105860002366533357932031171938425884941744332223866051334252065836491565909841182404762978428805736153774905960147497885159671946457683222406393445618956560528180595946739351628772274517838868168327739683102580378207419839396228864892856768507931296122424460366568697701258149017656697774926921832430717832988106051083383750140348801127475404520681318831875698427645004780723776876203727873385119792743165318206074081921274369691794399793830889579187862439406043669951477627247531735809588961125719794299675210185934681973975824554608430430259103005803276509068975437178552118851062688719368935905252657471377197793662664309523542389835345946076317529325872243815137036051071461886098707942448411074197060334313835093653364307329718472663436042739108498953808012975346222895114997730741970945677336726069430730308917703224914782764544207737906546954220558842391639349999286557829852020684212391514516449605931784203580407268937104909705094139664469915245449867953633399452882208772016071109573876549951784718635714850143607384050815546371610279408250094041027971917163536512159351199479908605121955232789847757919301912078095999622807933682401782000888591858022018017040595567533333680511288300234162635404040435112472322380488458360141212372690826691756577264464518279988041007292562367411345751762458829412410976304940736175667898794513810216173218605335248458349182901708493995508532511707333427337224881091514453851849692400585742412277768640529209210678225345950431311653450823953377221565749242590003908062174482401433490655272777297033835110975500329054737376502836584717954539369218223182998594325265341467348603646204857352461028069249890449190791248152725347236262760074821698640701490577722747395839346518914810240993048619747300375279831810293537134246346616654007010978760586473800436633030225469204270234530230937684836336191860449466591256232880705684364514803796192370765308810634125219175291111098261353254749767697721963927807390806073092499000015828193981563519954746273372812256485216529283728418447786028842106304223051024833182046382333313910662000503755698584480791168211498421910192300362933776585566648926192933369016538652999206795572005709308904607339907979051869252686959241322630961684679255173382843358955609594241638146482562626801363262141261303021735315926355369967927299203838091260327700103855911711714143639082106661233945667377736246382908450411666589990869341909191487891818577382589842871702625495825455557229042060926084593164952747703948035090453241149576288888656688827013115555128838412806085589091376930688627755349861597266215528258558605602368222989887204261637965581695885687499194410078317685579015358210240761026916618050649703569953034582746069961238603465127476697105993307901678681091055800321847741035608675027312333783970029556756355375728378436240594850884577024221517354623760539703092486131890762748615712377326465448914431002184155619362874433631124908967112824420904552658492366831800206297292938652518346392968027871947457607157067213224610417133093810208203012828857083900496255454511366099693807278548855422275219485535216561172002656713430619834544044403528288481199865211847793532035549584538648894820064470487938024668971939111118416457926478301400720812420110803850524515843367724766761380345342565596847615877456151240870396380483176390516872122730830204763291294862019733256324165693478878438579928410091640987142105152840676300028332866219512063964805449039150341716973573892070110827199007976314987026439820358688500254202015735833962535908778834961857419106485882669992141354806273846979669662338113072403726404026910433384226653903146357014571945781010479924933967400328347684998391968463211591379917742469603736406119425262937480996087891723637167228202547208786262840880895746402781250216515911313558567640059411653743961307167319803784088841297660658686551921574265939101032461312380937009734463369037408693271799442219793411265335668108139079640687421783751145777735893741373648332167683744970814263149637500373483297147189629391175920024801177618602163906187287234607317955962071358839258328974729533000665680620058838875054113404175459541288478827840523595707402115761959503614133723266376807086541618971500524869648682356264583528360721464713220813559969874716371744288612665793495332784992982486373307019587608594891750372323023233004164563854458857538698086524400490259602877978648987366768811673075559182171849934614161553905302898718130653989357120216965065123416315893982962923520498118743641589939979254561136960227534709692746040974896004682698862581261683880936555715267684555482008471173160586059323855625951921444857656362277155320086320162138143980126106042908497620196491449108554631119283509400482364987461953778565287058229673739895622200710298303252587952452137884832384284986109862820602124015908634526799388206386882061646579012909639132591493750918063517549309201801171482253945540250806610360527300150332841311624209025492718767399435918175876594315463392453614333978320304390600123571699583156135618375353776649937684031793742533963035665864070049477463325881371268784029017779110554752147185066763439636796526676342481011359332619523782793939445123838890316073956634752784219061902762463157724886850854996339539142553579796441355548750903083578539181759911677924858183805203874762793774710545476032909056794138919261775166228731134044124146578303904920173278101893620757762028070447099185997607885197959531416568987233779378861487815239106032546327106945179861888575141473150847241397594329709566773894556772990368002187885000433748623711500316328544152878214957972158665962222881704141306752205199027388121207952690628655683147375113260270829057382699432404906611618250061199161529826179265669302489695314588077479934354591050828814257158540821724160716204881920622686176613272669227567658821009736438690978289963462731318156083181937931736478250998976114668191094146284512735053724196807847198837188643201674623300962169227503702015199115991848023476868349201727432063635743056969227092821059766189744569040003363774157717933253605444272331623124758009802377240019024516309023588437926248410615687850273573928961115865273871492785882088386318127136522015005382675584927261869234680909529306505680638443176478576369696484343351863571465540004216198153601408523745119729208144028914978301813815430963772288097191833562723104067936070572721993291486626429613222341617934360221328157933122612877953630587451811436031074792992155935284252120583636385098973326967052957270575935742053749730146568104065314522843172858993801581592668358399593362942384843069737383814511703454710516076489352672597222152978389622111042611638670845687091033115120080229040517430328975603282729895104160530348355238697109227408975072488225608810953235694440372450253731080093601492962592442475533473634339136110527589761347239249699678095137339278083206484347596698517310427576614873502161705649322950891481636980025971887720987414717093349312266145804669730023484918614111166390346372025664690791927425355167546120576619655214887709099618618105997601736017260394104985575595713595985941608710537271403082778450013285512099645621438308566818569710858100864278709382807393300136082435231649934567005153702790576387228851637720986078394870775686296070619368852550641201681345772316735596957217176312499627614396650681568135218664942052176700211674326307899329218518685835529840148878954698560713919357898977419033348437868279586833571010449659031250069413236182905551172590924420396612597833180390056782800016736110449124416916121457456915700960737262401758566005073704697472132584037958847485226920230952453759157193985043589296073389532179901099799523636548507673658437306691387831773208966530796886476205123529813209866324952986902164806941452693455761969179640456466071569839120846687356144435928871483002685842704449447024861110847404477392293893289378364452839235806325427546171278065202364606865060178812474244513201695136668780961990372034988455952941546607524990827632120208820828134926835381903321079464037739417358840527160781582610266311489252477308273731190886201922666507594441817347297611572374544761341947269271735290030265674223428154039853179442706472050322182404579486774529500277236390649152760827077184929607971957986024512515174495487685896435114232728938834690205745231294796186389412449112548211053647337398285165070656166870200989501323170902143116939891908131901406333007533337169296916573946353387737527797531445710120312790693382791913700185880778466161637809714733623784975136652268975837048882711005497302366673783888917398781026114777164604617084958617366942595945947618555583286032726422075826780134663822468814975897952110821812316341643473225828660709332148522275191949488824676859641957565555011367044117894012561682052138926892072085247273964488485858497839002057476941741122404850996314210830720158121776079578991094772455399577316299781488179179691663703334915307582405153277968376165110043474426236688482757400369087288562963025335530493115290370562689590834641338026627980011023854548418199281484654706628965444338476985855182551670826275076177512529168491668114297253701360720389264958725586446867507620610962863074291095935660029746997752510154956612215771326966171836412608419520888714322791825943538317146805186398608615007243708495096104875313216937712170414658628467563336476605072309522128707804468517587831166555805505296102469739002043410452217249179392779608808253013668246749538400528119257100807872041829488327109406335315294814379185852644583266195456904209698834663510306539538445528880259812436304128516061112737256512172784277479863054845204529442886257538677889289511790259279581720981568084217710732909389079342821292946706226306483605995430574098708316666537250692105729656481854201836450824667455987490565941018117161724624051035793215368196774354186965668692305920972666230911924611490787366054841504497333842345137203247802274860351239217254226579804490761955703211337752038738169470364588501702486103801830259085473835424575773516464883248124944776346444778847413946278247657811828155219294842598137159260878770331803543868127560739474511750808511837029962906908440094036061967144384931072435840680199553873650130842810103490192944263391032962021270532328015529936567796206659171288638879342565576980460743955708372883562420568097832965759141597757337042229580747526411046606887825284086751899051183472395982265573862023770923430814748331849061708672170755911173714233064282190443552703541150637568295168977475072601081336369816344963977176057863023023961727006022946988210756437573105013633075903677557377290381345752648381197416326299701624274176214971449846642062274496830031089212023044052233346029314575594460442685309669226836132195463907610365587911008993585100545262199218896410847961970196092898107038898953465337557153524777610088375239095511013745525826822767182809208885587050102315283701599864295433399906269227585144571441211941450096760966663318568192492744997985487444753803762818173122986431176815607905300546515498889831914625784516388875327320667266432558609592503918338663927294198589529886316109192794827375383289867790579774908860058174185342777510029607499309669111136519445950651723895230008908331397836178769269728297092355299611081884682985747531125007414920979211366240831040538927529328146440911082108115242037310255111086110906146844454240598223359010228238135541142407016600624756806405509141271393750444839415517599120690769956339519674104404862838773236932714415366430017619787205358657776790333252146661561594164601879850911674857284996930173130057156966877774292615816298446320048124664749567127352777307991639063768483228529804610490304814137043413203523300928163074032935985496217204081499544228698637880540790494985332589437076434852389547692546738268599416344451573530167463921006897208904850817723442322678837874625449489296953676420540835484490704891875951499455776391329996312889558061531958013656753643310072514786014571951620971653522858427927801313001421019500059276853250238632673221176128204665852371421423025132208834840105382847091823132588134685626809722545461519118640901828152169476151785526238291363678099864215803029203280654582303738751206503926915030901230617945426415510365072450525530992835671962652784351300416408281147982929382013024099502360444339034742864796964059119352326599350110003502064927306782498529215036475920806509112559506909448900506449075039941039419554535612783907325005273452173432833342936071875069943410043721807375488889925505439451459018486723671734696886196065622093288762690756441153971788848996484581030941566452183541267797077035199740650920604884111652856204157167812068295293991135384556103785302034246032942753119333260592993221416800423601810384297988939880011141800361537365927374387654722366956651187761009484664793114199826051802606406989626543313136594063540481767385354879469465268900910200662699772576289995785716740154221575306689041174404123124877063257574340654776066157164028886031780017648880884195801370521705812754708383429711120786627325197392948850654467079972659249324846259413229151665733842414868989690560062759986933732309346289151424197128360655793374500653382544476491777817506330153006024962703381700286076731750114053900262040083443128691080976662286965982980483607448792817468269620900294336990841678569457686833814469509268459900477125472028002943401724650784581172107796776051337976198522468870445994062385512160534315941666250228135005827509560744465371707750340788190149630960786739940710712656885591924808901304860467814400379616985551328082747483617234296630785634690188390620604688743534727968190375727309295556516466049217808872272149578297357235392501547486024192567324649305080702145993986515826217299948125338705435655845987771530215422181022193487629752784367738928149312976183409040683785817490036506293354409064813287514018450406105711493947743761963060225329480498357864939130634191135897931803488853208242689724668551203558094642727341045261494894170133683355490176422201640488365924177113928846628144664743707152292602829602753333551620225058255880295789811332000040487701872642138081518629897880833480664661586088580533067518732094998410966934023801233209380082563069483505330621937131119460170819242118005721488048986900382836700078800126408668811784126766811556998294579629479694677923252235238755309632060597553057910788969359496819351446656159635215014920414856268114926070472839856260560957151345139848056127507429927161080164187039937354292933951844403894806797659195228679149908992030594597552547464298626635124301348581999150891955086612055741251032164065396803237405931048366300799507923886416081326504580645315346176398373139490463931090412647444740513047688664336712149443947879757728535149200953007255280733161856562871406471151579990576426877506961061478261823329757130923519245556982326795183475896346240037556632651792112766099722245276231484975920313596484955347198150659813702458249562922379473325897023416416602527396389602979325258639004867425121201834587250259086774482230886459731050033482833965438847822587470666678712574280012645086830557557543845257499593306442563844456306460391958106556945924024121840307848295152245658498243158207965154181848701662126395625656911871477844415045428448601360302232367998110340299366088880571342078843713770385221630925390135621975672645630883964114543162963039302599497344993072383401077324027195984263761517501210081816301064541561431328722040392177190132413757743291954151165007231644530736796382347836534099787474217214305174451224621685768571995839948021009711193649968817816846614033079876283417208941546906559824056660137745738328367147538145697233233609541156989029969455355360805189970548711982417810596106710842296839260143984991406474200115842557466901286743930575282967652987847645386735679773190237013059788965787620742470772562812530935214894268750870639819254806642192696457562432769739092660121535827119093026998370731960200259063569435724976833936238280393032077667202985973356431317309292250707801850677805017102699162423142897512831680153116224293576786437388842876314473828863533498677071934886661936514436235113768761903575081086433789130776804917349077676297288639898775126984610847086505262761941177671912338515830993734168740591937445240804771216863285371960209843364773432063722050804764267646755694598588644452079193759898395397584675739715531003852021891630189792375409778299539657073190342526820634600679267986639264097979844146591122963984173816377122874137769131339927614627198246484297838703491482389716111415797511694966778283659760715057704132251530799283607331973123774386536332560260544837260696181855642752460942813727010788653545449092995731356622511918458242841413236491814122582044301826177731696146263321987406039152779263333366961682020695330271749326478810360223580437193293114032544186274264512445419407297330959079644680509143591727588410484716609272022385057408375211789833715569223433352663126393349957000152589786186073893807780995029899066546853666848119775492053410823938504579310835559027789758721213844563480311741913413068041778658246773088039609959798740420549594586822036955165412015565104176774618981803785580188187462499932289367933642539632449803013880838199347824656883157093139415979647666330622354673379193687083231318100517583688694848514504857092928850695949492597298997208301861751617921411790327655540048429858944104811766869054574757685513890185641648770932763489794543370009079191537939915890219405424454965614928910449848651160153044545928691202199106709133399079781812554951761800292811942437528736752331241223671571256753788469696033374217814979531982730812673239546211514182597909827299428091005427781403636792134440657663456665100792221557023021454494592088864615388061923567117225328212837551771633729752477120358187046047307473547476909370470400777174488279913624702488817118377047336461314928132806219801862279535406354026831297037545507668332460912641447955415911633146987259123665807305134345497907274133309157341143047314570919102378671222803175337676680420978683527819026440580812571205085783582599498010403489979279239413036627559588814981499599420339050947722058844361297485940680510345600880624088838654403049331857325533788203675871608159526307273017992764640751246224883396508982568167201053541586033659261553638093796842822888686383966659915205872077434868025223291908147656210801633877931134164996697880156261891698976351004558432757668536482906396325635139543599310297311052147966510291609982691924858327102516395609583278385073688509423502276884164948894355258324321603399634276003905203451104579605113584870541312511229095506826195386983426462845551850889008146290402975750604933124306297834226744460919343470601526736651555164633144508125119556118211866193558989553445853872303461992532483828484630416738459297834525283177136440722904823240513199222636150468525904094875618166274793560024135717782027179754863739552161610321887757371704784868755431318373956056152280902375538385398984584529025928230781995156653528511382888591348431062149360510983875055780847858080224445317445798333647200724363954634013418310251062548168343544015522529190240569990450116403588192276919170280648500403747339815120269260552560324612680999655404815300030919512654594897847151775307826836455939440168781927352102560837952989943470259600880691433636555642738915005978655124073504260716864642324860180994653293437794220096487708361013415363591686178512570499713417178078006988994536485033098324869228231158865284983170046426900885325116376974529017397220891532960291208137214931966027244253622653953983201041017078382477160336642833496317958963273736590290783619789074906182227245436009072667967049384993216630249044675241186762177915883904649114243265955709409943001840704969034018351230844903545004590086164572843496448503496649018032187459375155264564815196417732248737826432590846722232279317778782827681367385029139780125859960665366646321392352110759935519166528324660365838213199460590835068912265384871264362065823516310283604249809979249870135574765238095321078280948524476245801346078402972558725870604855204281293837967421908404830423079464058554209055997986778204020607857202583552509653863965454095785968118732543479116188471235244363954357319930458166462987799777777625281543834225705660226979608507357846120959032565074153882621620170515861899264473215760041012377576705826991627298401927932713928343809694879262967269559730556354268498484923461746347470651752205077883475032478127705534122973319170718209984408621670943439228322983302772711738063733968115965722322592629717697700541250168575209697965301518453755083059715002172276991885630247520467734935429700680176967792158125615986337324577512691054362371037188064901840208494210603245891985118183320648565088171292432862054452075632397531899005169337107849695369606678280395155657818220764381809071456182450134992501079062187000580607585893712367831055786877439599954758825844186117246379690152589164530569717208123167240164975507064227764733227638097765379535777800360584527752240100980889822561536600070945819105795705123840435325642693747794039001762521990378810490583298188235674828319520195164092867646675611003479518698316696279794624528273153301583673786385029736138661292418771727005895711111930585249932132203302916034457271073300782751471900585580132658009334159458259472586249658884806285072224048233502835380922495932526954970138496388680199584618674623863217033035919697231378387909588333816768306188955560263886568244824029829413319598092988759687098866858347000585408060489005217700376086586691234202886607197894924414839216702441789728691360374633376613244172564331032508011308780222338954621033362564858805756802878264596674140165569336149459422635299229013196166697277909705661321304845974047527892769221946939435187774237201019988016255374609329132501629020960157031375599621610117621388392912363523763473856417134454685336359470574259592391118197593634644087153626761283393940326561048687111634343432494207940018080247262902675934031855151210381362635364433408446632884320614556605696087158033066018709390801298705042281746404585410616114701071105657476350235944391403860112177912320567319763674908271846856095856508136272778969682047925790861247023958451638277989738474882230253798770170344275767307791801758705003766808018690694995418707717584819218839799922920315756037018442933013199437263432291368587796983179750690484879874318237699873901502783198804897332230803751461627464401113388667594753502082342830541775359391884266069437465943137565856727529565373480778493574661734996319568795742174801431167025667622086423848202899653862096511894912728410909730423630220324956131990843702901912599139972644788248111447335897143159045782599680729775858871217339519156603200000646986796079249622608869585127326071956185869052461887362420920824677530618087464088990205873258297256664764595242542915904553083328687178423284930031746846858691339040822308327284497710447718970179824950074210581358483990925245562369233144447406248793156887442392392666055753608654974226109180255125377482301281268040527375444972905606693630797847211710990451611720156570073391167614271409344369781553864085724195940574346394444191451642051945066529005387878096182911094529743860681671399941780313790305365212596413051192857118196991777229190875540509462917797167377823186672565465682864436112758183895280268088218542005496524659140602193553141931513513564543951861615077615996436054766481283801813184017785639744937718671682735811331167498449659007958539130837784378441626065584305277779967008994631358825476822826876601571397548893731417716385631779093438801771942836292591902569589432261306591262545486844781163212311526940725667569154069127187919610963810102956573927060649396201804360594631838923417917941474187782060044389722993874168395880632473798900897422232042338307469134816681054350002997721603966049767289089009710720967133238687866708895416773795026510505455788802556249598030804712984153489784146448020885244014814089318769344543534145826589902971008718423976748964074990951138886054475337678771464063526296425944548564583595750388441215804423983955778003373407154839436249479598266342762455270849406606982236266178567036411126288481383679387240262830575671726943547843748025794806300828294043889449134602685682185206504437654754456592437772277802043849937758277783694057189548859372685856185343956876665668746075004466139229198363178148028250934763546385896973285770346945235173404875481581375325876666740614130475644543938234034907214312326912056780909790718878147322263414291869024545495566076029257466794888983070278906068270595847163126447884656558922570200640698489006073860328564499877276995585060626644450707051354179608812912344208245776276725326196296489370404610738769611506893512001671149107233682660665444979364971542001854930183072915265563450413808607672428599857570888888966602176938339223738927158008507960456783694747103798303388084714475644763975189324381872228625623402722804196945931740800528365473638914423159669336877533495004374241579790123412820932769693243591843404965629148591082120084630317182107021274625129913589432682986619392850376639699431630657161207520432393756705590372759486239556054175525940048872222959248609101262414187632455517056448438992400177755526512718676972671908896009118564995494353303625806456233701137932796388285717618064145899258250810586616504169196277638172456405874678184205673695357478268229619974542742303203046205975021634553387313703415484798191553432097834964632111366181925939026157551713814590419357777989945273313036687882671506268322998463311503366261138257314752154037145378912448459819585771041799480721202534680505618504685082646490867741276527584511785735170541786793426250800502695402961133268650440400254422816933460626535128776080564195594275574892791906235425422622182294441375315275631742854651915795583560244464502245532907251208910591619362897173236136418902451136348716639173202371190600706348362981214601355315103315018809405106821626306815116402428840708519717311321634514250191761692445276677588698024604590519409143242864240711515574630910225640550238138155947163616325413657768786058907028117494539248899136903327375702343483089557077650259251526238966706730408111748281933838570334545788690297230400323984419380409239638531767395948911785208238097903416897647738974934851409470313412880379174230422710529827957497759351963970171839634493453985350960277928259146119937968963461960079946453897212321491717833000965958870284506508200678867947737813792269837148418728111754439433225363581650503608537631388485806543133618164140781440180802555346744670419552133677745753959813116081979618108826999356844053064950848027860038125169793433452089575778222547018104704998015216273448134693854682246201718967851561257802408470943236567596938783407729197234531499612788936635502806770593863151003605690884144610444728520216371010532420013001227511317025292039830098880678553075828589627949542677235334877309442737783084656387256010471949294968799447887208367156506965148066228703150287882946097423482492504672756999914204671383472474357722958615028827497815564451362236900063727142516318826217102066599001448768715100603291026952314013323160846256979619433214732329326867256406363876782893351477227848574720256018998565309725964696365604437139534866043078597240190164744580759873932071689666459332150780601551818082406342133488891292891162468285617210318090633518360625823637353650594043743530014618155104621240946732235406367695341110769622507826805948244788509429763497191525715758244389524806042645030651983604961885126479037487636128502780108959626260679267181085200584367698929976125821827413924290013913203987004551928746611191775297293902687837258904773814743958030559732354348196029521140351160451499360461170588445513311820204014330470589253993410311337023109419559820150556342431786013303499103059499757375403759374281868857501312199973679224119545198334129259164615775538635140421343202673366744011031125971363363699037227028247230208686625997160122951240759643369989907925310028245548616779356730303888349005557332872540420682241557317578097628638962810550009090338982036944106610441863637613651127740053873274330620127039766631483476936198097206616571569249307888864861767016733098745567145770782518395266291046000030545616303669046664373472750238112730974468270849938513992775217863980312280832367309097521516031033168284461861344951764289601164256879375067841860415488981807814225323152582880547625956477131931268743004044242469931605424679481077025707041686207569253900623450690979991116947887055153632679424479302439330299656436436786536219607993423676614454307280914844378950728475305319548472321803181845894916029749942666241045657741197746399737480894888057093394586315013561821741222433710385972776733869654933172931755039324899669571502785909458069811067029285167653344571216387692032112405928525445393532314295054771787445272482840881617260098108343452330175127843316864064075108000617201442068034516518431269475569252111393446663574205682086212614848754068179207668649974800546308211361250753777022185917555007216712940306070358346606544074214073436601448519929373319513820525264397644248267221800328301145532556152452515974071767449678901141141206965937739224037918622038192753199374352968406082457970554704726898550059676466220810713030641778286254358425376866012324937984673513120684790800709561102387086651634561305244139799891032404160967867711737918455142245247179033913366741456931188002539089948563536676393900215600233274135747391030580624001864604325145228975930985878278750058611791889190752007802377522195397594215803573632732824778970196123097131047797955480617087664855712853126849903037715137382300305557023906982545004995859227789256350284523143110631932202312086135623533238709823022372275512767615854162791888613459832017554656664177320453877976553972111767664942331094486638769857248125143761876809200806539155743071565633529798302761065758211933388723833605336012287825579870614814992855050553478365957042827224358833317769439463805661779299680702904469229771103385165825175094650694568272086302374663604926966789837891037494337433256354579825352265115698940805383703006154545928228869482130976132943966593516573511140090405707729985499429115890602802710319129167304809097782091115657211426926354649932969807167485004222763186345437506852618821711212273788173343712772656379244659572475082124631713931791621614722340087644705505788517572095278780173260579835003790652457762799763751215036915883179303520202117018623445971009093188740906535878918276505341032275540803554947841780174641718897602789069112357642997015479113023045598868174989953052304756461903169547872378130271412917890551514684457100178267224349092926293628834983182586252533544420286926655581346262405812287199727418985743594633130457609167761745731691494930912162889655095884104951837116548390181191320972151119197600353997922765280632592567620377109289682537406749066180511262544838501012781951122182548654174801364735032768408612670487474316862120987659249303863278105695973117356552881151343912669258779870684907747919697235678245145646364696695539179261112434523519425486356450497726505848139265032000573277093577612280126675409897392535819445933581514788285919826980361640702363627601394909191180027614488650311768554949075307137900155391165987066720603180828160286867871088808320219849346295357869388520617193232087966463235275295729262803180644454724910516937873550640571293690131338268095670739217034522088741120818222466326607199947355449865225934140935248221206985779814290142972240557498817761130046364271349450898726649303068793041883652304866180498049175318593015718209486401946977091254965988779307514645982317965414977606678904809822463343877911613650933745331056394707173090707714776106484523243832363564911592338317275885357753003032909426328468833739686601027188218604475547761884104016597563583596134007375861962895642988185660253141534288535266231687297978836591798479936259105783929792566451051461098176848837783423569825796239311536532343842139472884548419149141480033243809175287759193702209577580225322230191700883562127409285096896391855454457588723920774389870801538199889029320171366797071935025341264816283954833633510603601537688228875272253571990537416310237845692275443979816547836127859507291349902894876066635292704823622169912258075457504611705159211425197455484874198747098872894502173872842237951337609557420479930093781665620790616905495763051358015594347908049048819962240769544187142427184624748971633845884761112290777383198687193494199817468840043649867899816321801882200192187882736028662826803273649723423035697687926713647104445930945587210274717205118124033280571844377823733982322648625300498899816171423026229600495919743024831688756451824572622499873921890737331900666915133815190598164394154221084629410815990344762782366366913351653273499685819900462764908362893385302226356788084744399960092511707007766975570741987103212717317625869043508765079698988156201932750490557125385971248443481527721308546829535623017151209711753596198372459034618238254604430892509845214048123845767156304820084029626602854081039878085210015184946098467036085807480147280767586481267423644423958628729962931434414673595022524426502723619849703425817214269756358963540158270746649406263432814402142907794576090444504620718299298898752799320980789119773552826641510543587422591566829920745277064064929710893732364198953745803550325304736691507696092450893024170621084635352999640444771234944671678645523639749008032964011915204697717381218422974960456223328564257810810841189301764115284877577730551859419824723741112575002293695492499837161918687113501625153324436450242564337045184319211509701082460079637949314158683494036335854908448306401510208129056203997803955432992039257009176591607661991123102302926256516351125699403318511932070480344566315461281271649180871441022040565221607612250069558320116556213880610210051843149228831079551136269926099649569001614207185500568013211624380934806525935594363453975547589465132235224004362083995520115566284735376177627394944185413147156934295540026152140927006017632973534456236135564799669879256559492662480395469895862062385684658557057838807544242899119475245310835681249245035911486362289810790401119801123294715789561573858989746417565122924132537741476255277881692515648192926211388057437809171619433522388655429540815242059785173846395534510025943865364375433116825184002962663554093200194682646708417389748855595529160104020850157232963983953236264250901387070404551656974887507446777537970093873107564797323087247757088504442445919595619489524516340997404726594355605960502963292575433051480523586484432456951907457109421434394592913595594168058671993968080960505781397224189980417344966801036073960777077186913042475458723281181728144288313584780190311184012764517907840215766648241110151131789502889502479283911034235057572600503027654560119459569906262115076460748811460050736244439567234604667594495474832223745843478476376417215839829296129268938673910397164783603704871272713125462777692665285496908140881067826688736051823474236053247367543693119406433928959315011367401191249039449977976904261356204815989304888492277478859546297850789997827129283328721836124189513287145355668159445739972429618937306139860117501996314312012769197619261137102061593981000691693112965945130034821469093435556916722273202601741452934321599662886786146432844458417749956940630467661237201327607506997211807348612775412788322858925124202106195874206677056665087028245970303532628425058061152232128794854923069727812655768997207844127577502208174959807512602399823803808413940218220770208709936143404664037997294943723026535096175492149638080013751481038540234970715092526373374774135869259637623824410392770005932695289866411285702688299414076060326256207498580930716079615758700507300384077088965567495364010877362145675973470389045581512015394181352384474224922495119223484967402839030135224327894620705577662563781162417257746336397440303097799205257189610992054874597183735594370251868353029881559679479227236704106686126183349263544082962237051769289903323092167542691255743921402336773875511213587035444323493279452204169217382945225747486041812097969823587521471065614153297703284651505040932600410944334585682468435035845363295326350795446017688265145726853978479766452965228894874407057896367227471697990130655835449100004371618792299223065943296153565017191818792138623472018107285456065944903823782927268770316166568085504380538408015001687456566888599595562209467830840182047763271196288394962673201558196293940683604512458124065286832499470380195391429139467833697875379904909971220472289332664278197815774676940719227368829057177523903566941865029894592255450583399300776440136326028197279207577288180313183369759687837597744979802497381597871694594089379000405213630136341531354972024917206938653207478754331368020747215360791594049681189967926419818444904767810879296656375612226105827251900120273197347568392587158990040514181834868094283696741972036408091050717508913807535285971010486845373554174348988420084994691429942689490354061774961325853403911653481254133919213913118369620788658197520038674393081075312694562693685265225329658239959435040880478265240089138386472296931584364812083589283205088079330726325249934698104385749296376548357947357108745440514765225241715105474852113802303812567092848431645549222693449601201523880779277610847790134662193591857453801910213063586405940161971991035365723194673483857569549631466293538370903968413427116033555071086916930217176326162795691309933034990622599596579732350435152811485655124514862174662644852107736820194460298937987162365926459221734880790189794600367841121807035904983908203777557962446948446234498304178537474935018603960116443616319194140860903868382954712938209994940514149519573691378213547330204633072129129459702469532771611985656127369551602588188086244072619261598950724479695025043156460563801385295087417550823963184734235111897874780489944872996146454188355345239841071136631192917788203567966749347189127697214920972845754298960303604267115511212741202834954549052116422739175188387855216316114974565971168121295356275543924131941292523408230978314852517948749487824932761289297139548378466590082325995916171415072038427774845886978516975714172267539547024818442394656654721059217267555444867178823293660535298467730264311531618894631070708606616474946895295671763202680488244372204806671041296190809310572274058333382129785513608802211049019186817109882548237809146603489110906334919417489060491965955821616035945371970783366049563453434661955929404418195714032933066013655516114504829092392296881234950856774759177302402432430774515754833867329108064343015186431047452683984667225654014473812435346630870489548241027571299835420101142128082860532879092633590616084531485706508910449139509110252261358817404765268448112769699594480844206035035546484287889984841768409463175219064236889573367224509109339272188879429380967725084248751886160739166988430211431216847655651716352092907334627468764350740995776183038630614149629508942929270642660775128982608084895741893667206478715763189100205993474253509787335528381598168523435900376482357931183835307589402711972641774533327995268757643894670278649238710200045398813005017879505149656633602608805560843692753188041539472864286731703162192274907949287631540853736741328702707409302944517289383466727484875589109328120863152364095637822241819596617421675055342688584679754553542495042723873631645714088586986500773365010652334104941012559753486862437306063246958762791721447516545917060552562161269042576039475689905092579227593484578659020406829730882237486276132675774432941736251142468807842714191150901520605535008242968829649469174431886866027388813720869841922486310535939481109135002725749329173683559552675718792216992274372372343557195372273803834615113095355800208062841855916689376512003159768681958986184394524443142691339944976510195368998618848527401662414694483196528814227152321942819982298551476016888105750926716081316769034169623175611220604809849667098493354655672386626403531485851678135213535571765619128995903579253059201863882604634496037271104789356946428255545174992359504019713056431379374268451907708414539103843919771954432344112079451450032572727069842115600315341336610239663936882656125339873828593679947996807740455750668996812154734219082562414890387447835532148760358110084522761364981839109618993418024115365521563761601052285194816309675493105079328403765574811329229301347452869329280042279364564838797551321028779998911751056392274213105734848891531215936907426814972171982621871851844731177684909016157780807356724552377376009738258684362905382244715537318101044895885943793447861915811587632236938483512466774219215744160920644167432221798010938960249093017724709639197913098676027596224517869281373877561808192992299796489726792471406491552355700485404457991589225067089583888176588519075453437581103486251187503701110760343944001250908908204212265382939929746309029290586578946732544553311054967459491793311017137487584198968128903076428293693024398244509495389408207792407796096105656401819854756836056211682270179783671716408260218719248242683884072853261579665854602073886721367306622064002100991487837730670905595821581368118051922816920002503571990515826016615363259712076493036546834827854222579330682875400209913494217908177131306585764159729558156512787734680486940394895453267969559078854387569282927613542563978669677257928454364464052873097478751119554131685991505977035845035265378614013946386007370424985799645120520851020318467890870379164476298270365877575862681488113589513658451522182856915289627443982299475812706590438020528505584335281023799347481465491179456461596041182318532213980156815982220507052371954220471906610302395375990984915358165405409448994976699052460412023558478810571452212783601734341281732459185308335454455211293744147146232070187321977688663721658669876398839757598425352128816336632335695973710358179004110647934128512916358569025202743841050793599153562015010346671914367374040861165217832501889836783130503196421200826857581038522026308837481018422197421398554196609659437003706360731841079796010369923972342639426005176145441925144122810651050658710196906792060252135450157719127867471644326708699667966925592914823361811752522830430506805283799795376408095153168272743391493869914754931725959713630394471480613657674386862679060648645744448607646591777406257966061844904539461218127771514541131745963398179497800062126188916428688606878896378088957175982224935575506994250047411263543236303129057166295399825575120088123446564841491677425669597033642941266311210734405589278647334636981511283065472456051249343691647162618042522386098200941992350937548732646457015112826339774942691454670811856110209485137718299332077477208179719273349013510894461163873235246201483510067582175052407384842433772132070066706326727533910679392196590586684340165248294440112401467565697147653019110989106120212698579791549624034240546834895676186404246614716860412578220227663839194142166210682722804970444353497540269018101560053049866516632619049050842454377839294997792713634050273088165004229753683287717863247195502309013870175521304592477540535762998247689253017746952507482636144856486607186085242901947982353252850661001755058927514104915035668484582318343955531812159590407931899774348778683297858661219442062291078024069275121708605272449059359018551508493432633440819539090124801179084749054014619524557235083016448512148769830306144197447146064717902647909047175768955633639546392869034001033226878839412861410075945920918780233316061877604260447904416121066607998567019114341559239434550519286626163353744026018243459953630980566644882879353323103480816580624973158604457218068902415386837912185355311561118167605998647338537406361117213660531409061486147047228702573097670808558979502913397394655573889587783382789113525150994235180146691982405001996122984106079864898771078820762032659189235402475652914343414301900340843919525226982491712475473652177790435979440652047538186772213893590114508583193373126261302023957667948070886519135959590373523790396704111437769554095525324789764565320280566295404187623633316168591740178682841234396937612143007542284019019952625639351205145793410224279254455724582475755519720989496398795499444021571424444288856307187623360422636193643761940005418934962180901618472767081755481603004148069330257363651927490599879530273814005604775194894072008387862763230264431171280902952123002660655551954774930517287444893064569706343993148869609125241685576233772202864675023681468277882373913054525151239565409688714051672593330927301808359072724561390886433198090453396930713880775608309953948991560111469204028658090137878986031518759701299656232238749882146183293328352770706096832556773898366929638127926869416568099799048728281398144056604587216980512103842323419531572898788271518685087801208113113200960577885781893263529797854261948195453881006622403047777322238879841224772359409652774085600921559333122312510948268921531544477205713433956248035512438683478873829398081593406880602054958468112596917269642195046439874665361830258705383834197433877608859131951359984142025147064519991447496922260860210037243870850762110736311731799342545721212027822384469755963034701371024928315611461431430928787814071444832875126351121998104735204077861786484703378406123333318853624275755761134192790561577930906668741094308596763841408001009711856081051467615797249922378694862070415402834284557364022972901518435555938966370741938430647855999256379767660292203441994104006817021524195320754422245437558473799793290032129060687262050473510255837063830824966112845653213639485841144299717818948727805721570143664479856893594483403094509719621904033434868015814130040536523240848176324929414594361645270529372403338972602463083629434534925702603456996093035796370039124725704772061067871175458646748235833392383550599709683768228928311098691888310612249439754262796903534639616930625360191341022147393184449422084547978228527308648497210030253384983665969239113966968769215850254576436222387361129408832018315344601763169766524550027173647800578858820303764579872452702365001303480656397935645411702399864287538292348603233755551983427088940100598084321386010500168451893200774297060137394365947864262310839794669297845916481928034758432933849251564267353497073696691016440445769943214250566529330083752769190024230158569999820990992842485271938825846686127909870769037536417603745816539020684510209193791078633480274198617433559702508524200629083897694680182800808252866900882287604749807817712367457554607382890149325414713957565375066330433235883531032156011156569054935255327359713486553492016746840669318359140222597214816482018983209255735632166098299777535753948667744390088695513070455544769551636892114107486322039272241186413434661699057054513708726560745459952825478532719722220864603275415184173620771563894629086399874980660561649132648863778814899501603836961823007451439832374518154611052112612881325539977248050492506375138887704857284374229754702550717071159011257091179896581987814425213713180585969195178699433738114272492892195232217662298826180107899298518022586342820970179331463572916613637079139230320178740281479796258011481462837216101986592499342510944928381616125593744563616117536097023001190811994874355954569645647905046289885024585714188309713836641216740004356769476174152661665018685037416115954983355413004259378313291065903438886011326983899839420150876049869685116062471406200798867097493468683941555219662906383697812185461423957483884181688153429655254955532149092366824670008186132645942778343330489524977784548623190103640949207284103405156395530829324907318092528766687986663398272227531669247422662388377352969041538234640614717115842389711476462371371495566788326554021236901038314900234555037261807353965905845187998623412432580799638986411480523010425784689248435121195467032183026066060315224995615814154731113488609079207831061996091346038844107524713578592967122299868146081011965175570055650039205051022774432210076258385780553296945145402846222459295934290137852712711099140457117260947432959042195394719320640351985141632954296774384940843807152183369958750056763895632798900692117689834864523530770970026116644635822156846544460815532579054514675185321823461252129299512165236574150516218587104673998008945801392814905512147481229803557136726612817740643944622312594556803230842993575881301635703823942636447385414732747930279205979914915431165390052316139729939261388480542384815808008259618773115896835940808768391771682649019016385950069627904656593011580101539061490499153208027559728976734614238103226565367362297477086713357999082428734402889387029792140579688209657481409134429137646924177923258837880216350380491171973446847069804775542607302922508887561421552797512251293028740621668177013153603977183073732828020480390109684266105420752834308484920619175882945988792744029542029968302369374905561720265932578045952762034367151798076700009269696917130301075967226536194325324942825164326216817559082447358190103170332024682003752749547037859561500205671324535418486145882002128750472606777979258473808493292588136466126581785606477390760998998327430748510672988207491720444468364850005941583686074463435318753363035226034846956470393006150904563449252869762854392521959449003892036987796378734805871219213709946871422482312861207155465096249469537537213801119997371354017916898854831331169546976918409058079292577481207250349706574601027232826047215073748372154890038596815728719873649399986781517836331454015121444401681294276684032525977167195442050233610399473016283949868373301605767341407552991313975398372503844300364143194795697576243375684162274257851782974674476902737475843078050574242947434871197185680154151667122672212953163463549570223980950633886623409028245871289523238252595043976857599110062342949656794469015479195444816079168392048704583034520539185409186156385517191837560262040699986707768652932962991535375785278822797435998131260024269358305565885762653359617318471619949275347801280117647356630494164832562924747592450632500025635255895770433906549670865161183406022031958678083364917042444116759199203424616058287156240781844703710796155260483100428975932750907402113223956716552842539027571758381668889487618963660362747244980718160682737843936136075196189787639580501696070329719728625918038510730697762784938917333635875955100546129211961137377297329639572044212996620586502303892584343946732638015976815025185410443762091359451573780548725828972542252225438333204681584398973480292700410394538839076542477406138290356781285716556098822811727675204966966366245506863867844093558541157462757763776300302525511505186332146273780426452106069973341514595325052201003637867229020316291538849486767337397760726333442199371650071488072482725703946405415394862274915268373491765475639573903130596483404207299017295619751059128150682018616588879082109793856181652819580631093932309196961626918119467383908613349998852635796536649757185220424283470898564662587974137743564930263864086249124235700961189249788742308289892656965636491621611049032836900623433454580219430113640763191993355902196838619619626296331016736940135211770340713290953165359379499561481523961365873822720986308923407220946797228572522774074613622602352019319315282170682000141424046415273478858462407800253331899064540516141026221603145941161052991611247725990353727805459317525929004185596049111112067113267220934685860736154779038668740324611153379279743156967474805500784913968850024945584719261306085808625382148988680752690397851358090103361998070281604635733628062483059164313199250633787249887305942805056146998527445593024104254999105005351585393956297173448880382724679660834155255298477362043805584806134639941028487642488751429080924176428103164292938728140732567617335922047417990633514228627690045812682985402558521491211219838011622118552541892422508143347959550742513597454063127007364093412364456012214485186057580981906162594477491089455339944325762324669314156560099906436432245266014087946525726187383790241880074436224486433304879014430437758031572224209437498621213354064356734073750357505260783032733082325670356738976243056925684725385997548287439268128647540242562119229775891899876753327037406234963677460054134411430094048252914545595614645893060830066681388518716035975510060767552925922086014000456317762092000946501656934057258941145619276027979743221728807499850502173985771589059836782272608552532559963507414695238197642123983572190736941605311197742482542999575692598149245335509521348056623135424465663784219384822159738110823116756638398252502613739496051366381418888121828924851349237591124750431878017394368887273662512219133385736155060406444412790121685423510094245999734845009896837668864280963186287703142269339930161925763975400767405304474439841200249228381545646905245461015417522620001738992043102683261051077801551631075650166973231263346537058168108355515654234763988256338614110710679255198822334489418455252772616679849387711713327971604338830635126266016677681516868895358931672512332251409301615539759774668509671450693092205451009534071498933434162859377396890560144737982156117642678747015922087805749820368639386805958445728234923356600423483200122035630352143189778990685007521206209284851992156551376450369860396415686607618303616635661750857238334737441571477287188625084153605719080287582737580883110307399357743738694402720987765892846536685398230023213094724298840767645995103418403619844850091915321841622309361638013558121871151411066820205117887480368883167281763305312287092706752837412820002036784057634669497106882803734234199229856896960290811671334626219198307159812340489593335498573972340103592187499322624819531646434122574264956931761237527238045564515382576606871760011099012587738573800600087538571548667590894741015608979827360011218658438526685570268485819695939661055371054236276557637014756552735391696911598676128514584560495359723463988795424692702259143494501305149444110465782820784613939515618140252749631474994869425148233432839626577303884217547636884939899223998122840633820589389121806448167182555152389759895345896033244809633380562041019060461320950746449804297231775225652722732284860061994635187545175999978048741944551496985483809130123032264187977766790827699338776640715775572884301530225199776515892280092847079785888096523213894244998322809588953886960713815055818265593484616923530975552897617702256442406208153037140769968267641623556062742047301570424453645127590049626240137079001414583440864528387266248025076686009974244962513519478914729445466751391547918026624518119987870993246251888319430440514977846503288856022126155707528001547114668307852435189328908126468401409534567706814020220431199006191781848191183978202941111525609215111882683700101450198822524210504520420658321896559432163911936184284671871660011770667538387662375623928438949546783535384117203612580811946658231658978109373556149036125574426656277654546232749335006199512481412593790229920915978286897163307260216934174037263554788583991988556922639718161951024312547468635552677653048757753081016052858650203065432915084753092290238300349280915464671180301872764109996054466961496006837668768984336192658410615527457785428945844535729993209614883810174066866762672230524471658458682965643769845691913186714686084204662940231142824975042506501886118971618458443898127678447683440363199657427355603665596819142308056254955795200790868760031861392846062530310561175961864321344504294583056717075847044239409370450681437386636040368997171598884853182158861403298081585615411044563535698162496799480116951469572870469813842046561861272415268136832620458480595835679212098534831346852094841089127327588598926671977172713139662891728540823955405029182326074531226171533446235295029712719093970535749928602597243934756281169149330170474465426784955486460627660249825715534250222209688566219607466890593963745981669252891595719890067100554800731914583470373326282537885913396127735218725829347093323206820436781058191509563513910188421297418387728144657759419696853051268794906668420055477174315017926894971435359810365058583488125026678402516051488360602585248966874899919032096109202658546504445145386812485529197295002945725284410854248562739383566347453677317679013142397117575910241533654892585060678022688989340221908231477153419454050791725801005033700646002203456225343672309923841333732830043066063993812330009404231718787623569784343493894214855671282090396816790144459953408386818829770608566700090157595684070506781823951765374812832382415463664238322893823982710879223674519627841589131277018057625866845578108000214120863540159657241499656934876565773563892213113209139184395052480819320267301910748934873529621508108503189942688013076795431036412772420030718206968862434703408441170034618901427664479370055889538031684822902946886348791682787484120812366034676219709131946457213237641623268181175223116325800907287890660100121611658621671431741088324258675896514752458163591455415757451625723859226173621138966557318133774598227613704878915105477028316454613261372641101666576834961202125701914155680532648931020600934972285517062976321700514493387516906295556393044839835627272606502193646318712227077630608283250327814252551912384515955216479368303586638369967249637460355605413182854376356995436265657357718342349986298581400769256637143115016967085965363821754308471967822707478719285448708499716512137197302113161043038874417250890863228207083941059283374549816825292264620597461797813395114745542168520396267894767878039151056363959765750996300965183368568939400283786409275111596921948610927126220167060011397645775024049933138382871628538889853580192175754145878724033903434005111252650884124102900987533791867034350466186580313590726045747697142238112607198046810236942222638863789236029884688500173591007282416329092264108040959644151266092790867627552693962209108800275663899237014912385656113402835569235604267578078856633454263183469527142579682525278233777467631761720482375039027611276946461766275943960537520071331881796195980501996050319062244098275368265904850060204097007412539550417058114122582206267160253934300603546017881717301108335684473683141215757013978810508538826813017090045372238902159328331046813331768866454378173761702526755479849699964253123417490147466012765106060528210651139441133345983880459539724617062979850171520512220042084234566351296111753367993606278644206296985224040454743129161377092852157644593119086497819324319217583964367446567555709165189988944226360738033587023161729338986831612803125117427229221108274062017728628476177015715570916561582298221570379276245302178444972778323060489188723703952925219059848914041188709315348566615467149944357706729385402462829567563650869951895833979739305927891073542240980963160061905122982456070486809287453394621095648873810230510363145583432681575070418232325975496939252796826472281301648140843966594702648953087185710028643782162455371225989910577366510341866260824914338112087873716887302377512798252338305305848918193003920420032062873679184039792248960900774991948093788986069685814211819557345193920361404535669976629736111642548598934814754529053180872478588658233701206671924639492752461979868286764629298827568754997795742105826174749875075980213055069953449084471572078245498711945552855808321826665257428943199234684101510071675174770974810059677968440185851436042266714463877584703935557357497657188143130660125366008895271985866704669297438838412893513413795996331583234350033319551946725807032114979858195072109421361107951668171308452261468535406165752312236541508404668386486577733126245057161533914395480281157775633686857054147433701676917308208558070010365335142692654002055014692692119778919814555417774218732950872227964624085439391596080477928532157930684765091328157791489843015821782533125932036674515260789108187652564163557623599184565622028945094415568161823538160070983210959345158668785975286080775887309834410892967736103363172850368748397781335753602796772727597011184527668549036786007249378929393187473490907384042030195771849550690985083491242083547853814837830920802506338970599733651371734720407506875985263208789683734773498401103396963589687019355021652913274080931446697366656771212316739590253558934409892494159894170622353388275528051875644038989258352710676504087982833219003161574302013757203384426939485360098106304254154121255185001052816056961160804501795540382622423452576364675985422310316161458983051443006004179292879307080170075993935935605711501360386278230253985158027003936619282771941716847919730744362197232731023639537646382933853160637951634750676653815955221846706633114628162890889138445441820380874381870340905343005858201876299666675419003674827962001738823267879101379247643178438820036123772568217675993875123340285655034623070145411100637197784396013111430157986361675542533443850730357126272873676282866134896855951285962012694156481040132827888129902194142830417657549022038024544921589429547960770815393444952306126106493406595464763194742250584064800275557014837488161449103663767765732961025963297599824696999537869065725048515482161083955436030628014886579666246136687461890613034417384115477368292628177807393551242180343077462540930874368307954470447497533585852199516513971723062352432813277620125952288725273108149339266608995217268593508726964105229261814412625021927604575627992032254755372588326929421228759248567251115488929916044281203685669519953786915656340656260707747310097340391719997496257266167988799893120339445117640255869669717505495565987669940063677513253048558252364860648839314848242476924728321697617443047650351924121564042249219362884864059864763176801046185833207918752337121849824146854839956467886871738626901705900709029541273000922192648667941639466640543120976308937752390493161041052185402555845065675306044911582790151353539198011380118816473085281368013575136356150444470908009878484462841564436904695694901249296893229554618797898251825628825957264863471470673498294925268762639711018585572386971103086765100172806017044960157197866433181677496808050858057459850092482694910816543406132884268802139195367508573076437483966768040765430017606293679389410950814384836900104787535157608843400051081590377494906414281768794986039541198556050276132701992637420849857233738009504116242033570273736530952778090442741464938498068426011246000473453036367922762807251390520153815700262393251526235560696460123991178535223451997513917177390874916075937333605788353587844669183955193894929586295262659554252270015110441074867431123503988413931603738582370425981691113546057907191887513800125358490110379655101835179907897956396966734628591425895668878249913577562911238674396215065746296621299151897020664820830451613264902771807593081697415279179497400939808484395545840001864372620928762685403455590571212611840161133575873740267343846742649945597876930536888438626090297046535292795401045680201660039787570213207089422874905314903659689965807152244156005210106676497809382786345459586468554144278511014758125568027800543734287575165240926248619276855791744598729098185522238242238966430102512660623704993118198737181482439229748642906057875147731033152838911310381197932966454849900744540067734589160092771850849135816520007202903336623959171384182085330539524136060428870178220388976778773035073621515830128287988373133881287222770358778340622202679006580306394523722883106778670173982499916597770910222328263814770483171909988762018050436287987641410346516849211516196028188426939500823978540095411199998168398028460769594579342801241152449712684743944303249998430706883309995445119235669102433570695967132483895727350265492397142317601433469914291804438735741176685845554449012044326609561827227599328034893746418106005560617351850645680385380093135070884229742806504312776047712138617986331872685572480734700898391780689815987148946560749789955764538731453428680814896038299445697966375039965807825950451199982387969132174219559401325947307075176588625681372880724519472907664763950461323618740392042520806587822451513507479604134066164366547099141032831409102384367206767262241387268930441399885808666631002159307795086375325083584347954246918558465405775999539705360067274375367822960319100252727875898916053827589187257444492770849892462989124505823798118661160804435516104579853795218318874953052509512687516695674178584143398832077001808876163788960646813109284064838551370326493672323439792137804646057696435475132222956168543815552216673893953142753993814131225924181583887002433885626333880473027157692291046946521378047751293732296766082287648713706617066753590380221157138308515490366459241042577058573778766733060528968187730091436066493118091585029865889414178803977168318806085556977146733284101100455065592112481042187807698878034560016214074705528306651801919725096101995672135578337476956338495033114046544286230896763512350064305345635971386589830905851891366687335753561532942623238266446413622137293763572116420364379859686399490071220796295794744501630626086781227443133509903049586301951323096427819468489945859489450489553430220913614246342678412835436636732614738515542780453155830987158563825966154546293073848036666193302009488368796159002013327972297483920885363786929402312798969566942212391199395927839305611996421579669842143003249694645146591567888433541805954429269881773236320571409355676588358577087856291373337059435038311266275223364080601201472059714959738207632417742121652546938685747285970992510744881225607114251096582721138864477637398649464209160891723641843019182856884710924218544635348293160932628730048114814388498669379282259186016098080253123712014321652147289477232766200966171439055599710468913850561813452516884124673505244141476903563629368864200092962567160782672994646188024910074418778946266770491571500027933772845148923057126797908805276263285947075848795820864056127033623798318748906362622784574828232951831289229506816980315371292198109900156415889316214653545329458151315673756345571514826447595847404934489522273690026518704984912934828535175421904395486673454928566406122710517156379691152277359757087200524469820663331601758810634389066088015755522781427981238028163556382346711126623479215315783816056653239822323391789377881612790655775466799639186233339517308168357311500831716084733262570545203664847936479114115900244902040137374538310732038198926751427194627515404131941936462331278461480974289152205339719544146060088448170097554085894655475625827323577409218225584910327094057137532802475336377889857572700940740098257089711815969245684412600151987243487894866610893071771132963862314474929971414744083277009563386664097916123396049925451780703018696251915045761736311428011176238253522592342418408209504342522861186029643143214436708965562224506183802995421548249577802655754634004138206505747604821816539292888351736999968175775123403777120830408644444932413547744754199309765072534594201431605083592278527020137731223990865782327671054899745207105776833807200379071671215575937725071603182420556461787727521638645813340906068023755742825729134336078930720102541452245347479845597699831891482509068336974566970068034591827946173418058270519441214944613188805741384349244526402505303030929347507196005822918782709536356960163659024237527221641524366989404598093599011697672464488085231499052529042042615787981434364849422703497323215016177681591962387525455450770683275639104690428265394809974127211051289960813528344676978844297877610380908671716244567960303366528757165848747202961529810395598024535930845100325382465725247971147462723272596207473885890450118106041025004267183237885020964850988746912685453767034812691338352351848111000512163336531192338142599354428134015044808562666370349500353901858109222090709447488052654710465561320602092230541978671478366989712069706536153668491447546241037204499412383908414821879417043684358162133982378415832085045664294338923431589397293096548820659892050694419203641695874992130962178980186906643072332099043465824266970547859073266313792199789011685289997834562626193962042665915647734505160321155614739137028833359988987419242710278618685607684312652180113477785079118441509069043035565487061211854750272788309836814439650732267531944730711189132379241490685973857369946806657018093185619177282783348656185245189294045893544225769108590610351324998342196311635736164890820703615991137721178886400399781842567905677998726874049378707587949450147056719734890630392086058704513419485612551350319395524368719857981911392428824455698703437108356025124659231117126291248073748998803888541478800127866664657162994478861736592303602659192062456563687558501185420485282856524583605269491075304125435820295093415823898093948502145473852295980773830247121358393417382437623392382108280205484111151049953558628907893342392055780047339859576681672499100972281730876543914895446596937352348645905206855550218063362390560367249813753889785540897512551141198414968199523547919186224369703473920844958259234357701596302682131169806796414808212740365312888802517240060592304604598746578638600518099866129509390989315934570374571049748515854318251641863264825690417514490032894368713561219074994973021790610303228436078764547071797134689146231132025216181009653652499608900127979956786496041034909124911667798303427497313845389844420744238027617026144862504445523589512227665967914584709774795772703379531756292253445445106291106156704331199596101102203611475062826867522399709706916517616978042130123408627065701031938280140473452250970814232746741955419701292977270463977186955109553991300848317412172704959210978759045608490195914988262777695748386530402262819144533127004234650347881257192271376753740731778487312647302192158133543357054667333254279180023830588692576446908187980980001327916678202397387471901259408308266630499766746987851731213830887632350045925872061488843757458567184207362736491886564977855414873136386443419260847127887090227739072408051455075615531738302085831909005386372889274657523766505672065256081886072499164570533195713465994938863612797729653099498988050608212123994655381127797140486659217833637386605386454397535676351186238254414702888152976746263016544449473433286153242902914859620682872063629357898878010185931547880902258395693136190776708349282242283856453895611423469337596233257252785652751808956036295771267923352026814614669868212850478109780915194985874448744262439008009280593920340846323853368966064121452294220588741884054679502879334267195914460907247131746189850107998913743069921093786497754615003716275639034955989290634518897253762339071514125947056614276697949737191081003157340151602714993007852639953865846320377384840026812560219423430503711218716317826800257664891781274305030926887886486893949327558329434183650988188883434770556495339605924963414304074471871388355873646056584144812210666227836369449201411747822672789299829033172684377443193428052571198705267435965216972892376334739198944363378545915451544252921264478661666146073471733017417546074330394397112687530656361995025345136225076864954665912048618941791343853174625437970035667300837599550565927467327112567770754107713701525204044061834778456136072080106668995790128381539792278064681014379469307892380170482268575096017416694210369233678777328561618428841688871497853932213726324753992199145428328182523089121744538079727737296021981880269502646885371788248734298905011370058485593514106294773332995081414084389387460308783790366761315104674632634773433811578583080041335356791225306790589081560871649158120740028201962634396897963012491668833540136661045280443260847556246372078572281720574776613042653806360467132295255606163624607064339292563611081564597000006792761920800516886278900214479931296714294906774814043794333072661836482442171622852266736428332224191607883218426820434344748524373477870928371749352542610818108663482695940411940749828880093949089966542346511074827180756753312684342206881608933776563842624013648610335847725488296739081116979668570505701046767627523511029502392164337726381283307861563458782732606117511112400429565384056748580536811271715927030398617453085848461608385536263507377750011973047583501135823669166570209110845588144513508867795169129056626139876857947234478398197745539795834198552065374703472153401224868085681908845886745856988110786571864810420910275680995102107993639529335328421135477376533982352780629258624445513037037288879001025580188099190950099312127417975298449154510786048108579186390433903577689686865390199358650623163604703278214521233443836690163311666723588965114424159858400630870176618591920459324027143905147308440070308753500031481771987241433270275838300610830324769304524513054569027912500986638118474626264468387397325501291756240707464038398261152559163853105239476363516605067830656821691955643526808284731787627719729438118823102245254308534836314499589943425521941952375004142396086358856134263019612529421330651553310681409508219209970792050965739150480997362642042430227865553182220466327686713227710625657628723587349689342414827790108804756722021034229322899523327545331295763362153209126234704365840080651080823123487434336990575974312326005233413819484128742805093554585462216993763392647575521720007689931174688245275863032837161442066915311689921804581072214107229583867450256713564004489022455031811066678610830762929486403359822064241215702140600033187518463225416888403392834432352768387777230554342272602138054934396332967310141485566055629791592771376989740755537811855048046998223054903354523697272649576504396323718251951047324312427616115746240877202616201578173409594569460405646724211682294443985374226829482549365089606628839367693783257088766248721258248790750924075505490046410526447988204075228033660730815046929677681924421044909717657914229563242837782748382758231709319727572265672244943249448578527923254658824964502578059044659487074617240693351064357019929663524055401577838134477258232629919899645451592039321233775482782649357686643672064519145955140470774045158591647429993774532599531449011031737786825912376585961767535642949470015518099275804272747113971531125114004034945038553735902116889800034886892714610643632911874899482463892255304681355302097275840235596209931140576562660311974070355016235823332529649467239974806067994553420016141267786135284811440020451229803278825569678339448462620129161112415453350239483401224388456271748489095061169268437778008205848551732941895093793230557033658205614174821164641550207083422602084369877647956180146159233882642338631921655753363943383637973721099935279994149551989430742210112881498018851517603940029214564678195048407229681604685869583435746285922482344462540290655035679828044880727040639616009100482810993311126927790920221469609733578249877562663416988024130702427520744421329704510012694767167471699017600604153572349606341749717162961184582151271262648874383946801570414228702935330764470892871435043598560521823377938172959981818228355335369015147872068159108024694710854469710813721461725982069791456196927780260510744659225501856910330739361153179338410164032915410493217933466501517781046670149690230119291091838361792697997011586928473199481303453855489319312419080863531737021771684823180713870998648788179239712370324528825317569319907439334073070307706806180531179574452719704064491466747364415209281132447986518955591363264517961710478864893281844929297983871116947255800738131341438735961060184676150025827067568519601269182792418460885146675113618016795494999505772576895810748475633297165827765356176938704311351503848209792453434933160968307687546811565325199466935755429727827576820135557865510150893492247738499881415174957004587489156467603115233856811638988857834597521995083637932706895843173687466463478706265240492233992898158442116987988491316734760532804711919213265051298717464830834388881020465515218793997813612398679275560946259424716667634539401772728671144630961282543801896695873442908870465505090283915760580896199616104009183397407322271895524477154553956573477215937050559567092194257908734663852695470982316987872938151378017220815379290985715333591370259141616757852708612112612508245868890594037270123674306531498340488613306901902526462543447006137566334993153241688724649782547473212235130255298497173162177259675591892328779603534750254472205106328818255593931037167959939944840457809420141453069285696965115809345412145158359508154987060388608326683586547275391483106612646275755955723548169598698490988200920758852686923578213210082818036972758567430593013983372417822636401223131063040468132352558384579846524172922934242191739685812506371829439123537216635899007626082628087146836793805771457957953235275497248575631301773879473937697422533605509951004630696097931542608525341875522102310924915513751576267382680758327443496956265884240540544350852736977199666433178161441483871767952896783612086562290034917596699432555069858434606977425695995370035953679970103254614475186138356961424868556822457192531384643155833894310078909890415788509613329507372916233353881861971724907556308902398713881089387088354673346993832714412068971194133286700777653181705189600016812941819776854356959836696204947694814069913939697562212671830342830736522283774391219334004566787520752427935763549614909838480730116587594042446363165145335111882856101899681914872434624002475894292331303815547764887077863694150153659372217938077136152974304524310514759589070143453046062078602855773984558042405782449718827943717761672234244059054096537778510155406220220394778361298627389286026660383681035498201531496204426957966822930528155328488382539971199509677452706400090865770381196434188373062248138527008929509242938319266342356493891062584267374773819788327856959743494185465344798516836855558421324033475112079458327094108992718911296442815367863441181007489264566160793253341395813372473453331282363429802815803838306067399443425848736075125990377029556156759224370196028797791950242494061510081775659068516514423232576459612931551511158946920274904269225197554526502185040415365728433112334548171940394491044759838015688324453290574908761732776514451481293615486444515919311986783158243477531740481721229081509240159692152770252401619819270106973963687434050221400584524007571605800823529892726144074512120572520184002541392002251713784099021771323877964655172363972023829095243513280832799056297848149602369447298746148657585878378196145083900815317759396315581168125700444456789880305483510911203846031156206304915337892450527177252552225233149123221342569963590298677755032498449195471868887544059637737259298109332623422270424579222502386917644635268985154566926278057196504536388843018272740198439835560912540833455824166485261006912741653412591137201702555140473010418503089742736412064679133574995557449451590112376896170049326197446812587243548235539827744316216362394649268897845812959387440443077018434174079687531281909450613353308568767808609482542662107475308048291767629409349925669586155106108789173249365640255113279739763020317347351192632862646706782443045630313332112023528500910729503523461191253919026976457524425529983791348818798693581059724886514477032146583827323514249682416533982629727257840457190235830822902286868318410608671505464497661589832575593085537213485016906908525659795032663588406696339803330688618297200946673024419340694142624461045321480633540456285611402989185634270941401902787907496027303468080847336232974474996758342427318934243301268652105335268368557346627412948385999444821075294377559918085200570792640777169922218424368825329023031001367183493806522514034635247720464887507476526139066679616613984356128339128322795314708712750155301503813304876384388247489685176403979551538881987074041369205877254248646622502800265507997468047404583322311739531180746437463807343882368139947247880865480044882466367036236607315150532989527265299958547063178770855927766947102068412584361573729984245186070907471293478692391798212679992158028130672057202183906869699182857304497049158451557451731448464706231756062070887248589769871441663264233408216914960299242943677786626674239097311537490368010902088005638902371430860237928609695367011317667251212640925616060975330547633566471044556907718872253187966063785151791711965782053648824561898808942411650443632564045450030222577177016253189136727718759976852416167610630645399247348866871577576743821056029429867369913707592335954015157686683101894075956686646755910482479305228460140531437359542749665467541220942060912550511212522355831665060798443285802582621277729952351492778716435630053535028435154315789666838139405829812411247565853331822951594936133267023225735422387907222560961376596568948723867871320508243369059048090256276357057745574786989487868026620944391296544293070468758502540555881275905173717291914832729649520548670154944562951265087550020652434197021965950563881591231473522207847790479293742772073478741923929490519301965291459284536152996938372321043873718110849104106061467220932291369248293738781030578421989187496738594682566077499744248142361726316844125195892019403717604749376175884619620657938581636802093166135413240108434924840615852987055133124347928299323055054640931948759143158542533298452989784314736864591499042110486263782699641351932309716216339764283197002102409012109709695113367981410110448976706186817767869698863786554779382646395199138796307529749979822119468857595870405984170953890503302945536503726645802275219783245536020078252174426986278693749769712040832059658232441193589099380416084626350971517117806947986810991531424331562843437684562630299890679113328860427481855779099460472933921390666941291277801280323568651096127152818470402085554403679539953182671988189023617661936879787064496025579090063153975664910363189665718276165211656103277485769636015110580214867138722643320303420056555985678772990499564069462661924215491057949384386363708666837429948214450417060224039671263832092676716992529623636486788734476725170371881501699099675823399214644724981839696915910428340042598626367861154898167399570310670524157488643600425175974287017629429135539435698068570099931184584341554800920563270013121315712901440402081451717829791235266501712225397925979779868142260087009754910318162891216987603891932462797288946594744684349715787106534759021323062258408086981807053715597942653307108070506405672995796796104500539718647735142883802615710815174652193090390812090295623061113783106685234753823813733494477509016972317954437357985232078503910785468332294167604927799444805931697220963931032640736173046978312104725263346172540146252861964152910889243060819415518899263528982871257909240611090352388671998014629890787155611937590208412741295042419664873448970029958047465903876772943712542653629880611412555702397824630052535007091515474852388727385492361920901100658146714865392169001414868623917184013891783405752736463354477174646619923522590501923312021898968331610554666852377493285259130612950431074099277125957633739801131136569012740672828819983876078351550513898870282316565394059904502600998014026208024378897138115291878786994364140011627534396671905009082795278620637156124918121502449740975113897409159372611072447031348263544239766979176276972717445722865897650105427317292140938763430951181320053322755406964353339886906516029655437051443634415390887547045411930312983517423932398036763059553271823726040979113363449329123049175742846563173648088374787333254641644299289437189012391799392046457689192017420390388555945145244463402026848400902941179089609311777680694317153381874770102255604691328914870631558164057740468990680045700494311438508998389105332832688608051664335440112061023750079490582117680803268391503684166390725246212484982350092150584592471917042486028923611958310765756602243601009028735722624106707278095433605153287686473132542004761080298753965739891548001646596882370066554836766449236094847379307216188865000923167901255254137530160437757131600275829830245259188351245568004196120431993977842382866856158980616145246173512028555677668629697253983384305315729475942937242945179915960152178062456270050301733698073106766012828171019239370816573418896754801379945345579026983313685846170565380534051411935346727580217090921978801928995455546772457419145842791811591046432434383937035936752912735545124364718048621084874092333570133172630281345569393975628790161078496855033949452797601486184447384399206910448987849560132841897648836847643382860924330329623983286962546236784285998575736944767159590402386542573842623211888045310937054616478463812001986073337107588337476125334675383708152629944618228727571674309784123412770179924712769101074193989833675510757415023787145217598111429495107870489788348553458645772246037373588200676538668496979631079620130099040247854713967415934702029154394739853744165985557067151373435225383487020022205899023580801950395580108779990540312814706283193069224435429591304953420115696843251799509264085485023585992316637905896795975702826922677911847059919098441422940688704248320705072089066433835413072330250417104466478830838386648456046603985309801768810325678362884770392322324939872152447747384372779791622802221874427043812551070684204202662958721369420871221049148791610560961188292005378581659202629271309694861523867794346167481141920208805070202125889708792467805691911725194614191025335681305489743024095244676181486667199636934843155450835644664578054240957944132224428415489283711602887312485048298455926658436890231269071012694466914123302714841627782625874802631598586300298094437657612468166479124466213868897077546927921853938381695519143019346031575353199554897665596538592584514657900608382343670083476252626466318523433007996188804701930931644987577429224459192078317094959504480901796523501449243588273615102334293983628097754052805748246080788171427788587340058254042032106692993421564958936103263757998513470212739961951842194070766859203378374340909879244335918385810523639447541810709232244670566408135745272856770391574495866324671989177755803491722732530789408369401908254742707099949469784406544780635347365710483336529435775793253082059068945647311261560378601326583674243383416461880001342665617474276287938416375756442890401357797470036749877558295013873743863679465547026986384185123336030464366824862244664605311474453004256536129302552216375769189911901618323861806657354123051098405583535859010085640901578571612269867856967912976200849182390743511965550457488540889098650355056417027887191145554272697488674954930762349624914569158564908693472242522520830059920517262519073275914571775766296594259388737698058357166930380149229288066056079356026959516484376901125318086126082111812612294969469394101154145693253140595483930590173738892282032651200062708513476652277274287548139055947517925480552862306008179047835625377956188068708373678134722161958708499074084798563889751300795098457397686488700649609118968297143973485866868632486478286758769631961351265851486203163930309346027228499479163680444432766862771071671452995515833607911615932718207092194983302262216097518376052450607104004807039644798259408560917879950873806081133811133237167969042678817493350264312389944727783542450276211957547825448565327010010053570426952351751852390714953791111468650684957696238956333599878783586868230250117837348684238537920263675730069542349123208312958740215753986725895583589609500697975092481456674048374581573397719644126147037437530149626132986456803409866588718993444379150034932497146618275118111860184867547652152717623849352387438736702263642017972899857778718072868727007385367378555964517789048716476304114374344279089187294566605175895560446161740563998622680708177975489834667487666334518345652290478665786092482005165316522484629457630133081604163869514011935408946540690914166074074131048258899707093915454316247879011170338470326086353039564996646918083823589134012922534439630234622580697243322374402509975438551076732261013276805336441804731137942383190015643908781579795886519032969772932692651394569211769434200937193279256539563558267693238267273940203908552762325570348971232745943129105074262498925793131442336235246985327271752326370764331138213799201969624063531565216160676532757768870569197183187062625912165391028716868611145728357874472944469480377028525561366966204927589205674102277679801820787649461783309516515110787904696972891625511290042189985204887982111694609101483396150404497373615585540091549944631074364715668925546879253392373867515392773188661794756714933187133947083573776993711195914696946932804605921283363986152268917984824213683577565996719042011273466859540874785090879502027991859912911584446512760630049072356489597783899333344854602502577624709722238991899086978880828695693913536224218904483534747430426418031260913036404289042013731603611557516777576579661045253045664474536914857498603391373146954100827028107967946398943991388142005629573384342964362062345641230947661909720808110066721751980202439207618923903849503667756443843865972959075881686308480048532188280217475980792023378387008110273722129805854274827747713298567877164378030974080508613571134018044976323601416547240889654691748688483994479268980378138007740259936574087363758046427622251580241265108383837710263062037216449653171722881202344087038736681656703435887050339081952941315491160659415839664918212821111978438349900676851031809828204793941395916175404772714941916906870878836419364571165338038546127238690813523474491748916973872468138495933842215059636689705319895889153035263916115450888917126812732183581367892868548520372846732066640422636669824780346454092698330909584687970886130531159579702994077457953841448275520782392641689059793902719812710651204713013735520557277760012901775671331420613529996566475642172528559528487015118744096843410547570477020166650739145952849427874454320473470747627377872646072359432010818028789307297875987888650673550045499992261130853755546128039964352824283416660381744933608255334513623434388497105881141492302190893131367512658456780606853857733742410515713897487519787206823929078305202197332012271443692179570783853248181419373972538539961100140341660477839179123932186197656920123515176335493796443446216619993363223266211606524045021696401532046741574079460482273310051830903884481396895492263487047508948960576794722578838157520486645924477427155893086682386036298804935836657746488392795106509493712557545614419611791978862280669000777220983602066933339705909734121092526022677988119527003514851918468145214841337719683348395699021929788610759101775010906375751929535458119972616092359033298872620214093339528949840898129780905476167263252887859606719512390782417697678802465900124032529785820877998027773021255464382829500598993568925944760495793340030866292832700994662160353523816581939424826564428074993591194158075386322983697854579800456716151086482566571699863957114945813512638911528264493116685976841455676388432687698330405123410548769607428676170320621283652271680829381822828285829630866307561682750674610219810631766674837882223028793938077236458728198871903354989534587195313443504327714533364881731652133924017532930015473572625372302269954107171335706647396652515607253876957419066449737771928026958734758062887221904192447256199936679458683824635918914015071829959262059464024645895545280265252781463132601929486533540162452532019865799335305548364297030158827272510216968974495747966120415529677973807899070186612123895579025336102393205664479405217234694153934466666885691035450288709453803709927659518577691983000022256084936294730345562377015794116385482896174779414145795483769787598922053465784682706597899203065944275753317646287921131303444657073897454032942893116707896506729371328624560856741058553460826063935305218214440553981100466685152742704082868378530871130964227563341558043730774298459294845706993361693149650701393174532277069334734904031304527095519352409652481599319297115259591688550450204895097630382194782687422338694691989928755396450168742358145468812795665179605926457476451434724673979717887479730656503583063721284268402269828526482411388180788000364203752969274218596485294321613843642141876606601304403758935901052896936291609649435107065640860349790465668789468419071976485156558155135285322463963045009132370575387188928065514079775603387042741418442445572453321847687186920637446799775427531221401877554326992497612775472455488870221188587353079711551314952544218282072368880546676118178106100783515600528979624876823738441531015593325388891180784026017762705497245083190113071646840118805966465483679110935013805171777175619474864272761249332817661169470941726603048780912240591346906250307418447598134035147676589530987994372197760763952303577695399386442844906327012945841888015575343902554613839177970499233056413384330490847502242126777042210270398483584965289795473619316773511004485897808893204727099944957704655777007964639411135691778601360903760604353644786907715829897649487676137609496789777503838769273170512088249260266610263521903293334959565278265516167138342648858593684001628735907281957421040662726198520268661357656427006428809305397966611284068616594211456593838410300455442529629665246124141978815196224722479368036235489396378941999226025385506842539218983146801216403441611667814789513963076506154131164763471688866692507031997528125280793320079106554056098580220770374013991890953107204612216516493206372989308009105590989810495519963633491776146402608783233651371261819589560195149364571977001988153014274118999784349590720713483505411650981041388003030765628467929659167942120464854495901823731063440617908748449792200435517542731493642439721816476044204448478350926867109324407245556730419687822225117203850329294109331911760633482676271183952130778335041784460555667014501523849674562567116839211385878696396776885886790447872562169506077526743163034041841996971051833155037257407248361095009105357522543060184623565283216337856027433665847674190959078680216158334978504794837265102021511295584014764325285179827556247890178407812277646855437324912775770126373245049622141421451096433373047905452262646671625285090672356091952571591437431034448130104477399554265753408473638105434050144481451316334664856999394866272618897478609055070054293135444676882448797288529480808856427277300401111879964721179397232801769665653543205007472508748008965622556825910259393811191279919187549514078197742290611926532137211028126852260275338041303014917246233305219153317829474567039467206372079488350857044281277479861213304675409139768434298570481377226224239741511440353768842850405827794971505020086047622431678456389146103992320023820168317999984075433629474636950766056128003649450601740410019573203378521361908902615184526135499250403557362383526533894843836031371601818654574633131298043977207421674380566829379796649266453321125369983010049381175885721361723313265570002920651428412599673440076775868065724805261965433220929905913105202933021362505258119197576382715515721442358549213442881499789197609005236741365925053486259341734214037203359163174919400008906649010827033809828552352473107267589114093991193406120064344345309036269941948207783702709428140308097137388364969832519842886392627149980812784670995791017699538017636737712397130803571058944099495639937611870605041215597684679341925688165558007160570740523815012230795718364844942521447981754119474228317472967652710647306942146568206871983497885269463174061766620530319606236766811595112910240128428569752438624597615705124183329663119062311710017858091802580570996976230556185888381621717495138003403201614291148504889501965986585281501827961956829300718318133942472097289354141217062534171614847061896239977628326282047068341474282079183476874577913793203810939638990823657075060411322539959127991358251334420616729198880218533808790816160087160528210986700489951223969727871670197602102909486130307868772922692908852020960616029568807742924626446139159772223406399672863195135115863836138834772367483479103968224475415852841448892985292076500041910428304971820731278278146630489105590682495060469764338250836769552494906440129442717017131347634395400118650068872924910781294669477980185977486895880224776140235802959509423482995766588219417457989161218133772948470534869120908891575134482362158855573622712221700431736095102112285870839601621718930590662587722994550721731036198878243300709395534078190537714228430222680342937482202614527035130228288675426225612311568872855806067053966556153261216990490088220807221170271940262188192351570533293598332171641898320548087009073795664273621297642263002775994904308141285597847598236897340430245594778764993524470646254945798602090992351684301207597292255915920911776120216718091841773300641658834950521663903529641174770832219038775569099457615199478206552056720892631223819206909094729414654321130864302944666280407046615115228484834519120675352393791335991515622927198392197842622782224288212124693708736390427736283451247611279978724096327014596232125211995962069825229060457550308265488512230007800918411751239364486407395467829917298829564607988690917669904783960309168265066037968205949439780639134074672975281113132542195745628490059447719747262778196815533927374192519705034581113703593649020799654462410275937870760917362996266664043630329114030927629597653479720643625425630953565537836136066814866977328883384116649700419924178094261858415400302137174100583440481952105230476866556034459810461034230109160344381868039423729627223803819209442459595247191687835779689768836408562753193057777054457221860981084229226336456598959716246816777330547558647908710788691033340418637752815732383485286409378259822056368445956156872761983671447169983972830188395310649968397160079113796384191368850516463883400370473862936198261942195978666684687618192854109946913029977301984636699929944701237487231669093248770264474056829583622557620261979221003077437487874135973176341029153282238860247956579590416967653601812676016610725380655913585431734612873029784285817495584611151358363627748975952003082320972175475822911295848520220911645256721400933034462910001970968357606694287876980486361806650720647885881812356149971957848706186451618689577772601431586546671361904090993257225015616825011953791178270628166772002560666301768485240961228973726532906186988713491864055849061252181276572065363363571815271506412720491214317387626079900709272095636370880448820324786080218830095698313653630213201897312566521203724701165849364503568005512927991741960525657618287833312180605452682033168255439516104503756469444666880711479783171257672572608358352351707452750731932994428473080928807920294606878954489312721046429296950104004737241801346472623495279679032121856565528043756885585761149554180304366679689657616693512680252938280874988128251653220860327077010792434199372976470834093335406818393397242124974788200297405253873237317184067329922148712086489616235390728584556853908305661327825468393400032018083749817335307187823585583794379520670412560086854715601275899117075209767446537746673534491267813064047038275602693907907605732248112002178761217211741765640164167144620919315097848633447390360030847755863990630749441408890900072806720119782332836659141811950319524685600685522832946462850381287444385106099199323762144387884046560227544607777079637146791334103148867396839486002862154398148302076930264557703627207775055421018768600031361799200988977952554205475208222959682875960124451584221396289286155452134467047410832554751947487425873159279877000482532985937125792446496686908885960768208789974373950323331958814020538959417589922493317588711469346578127286633074713301905747546153179872472951664622400912278747953324002850023500198563133364459588469079234676926651927270598068615024425077984136056449375283316043352470521952042791766431268202656485057358800660218016401822636577080768342066495444955463835889833063195622675359363365929902587663533998791358177068476114131371683331545842885906779067673628637410795010841932400911687201007274862986870510900567841816653040289170818969149768986544169166589053865680950279418792864844207507639128306877271995864749538052500693437873004137748328297217574373996974810228896936955155048759373469845421979738323078953522713109571093707373137768125735551078012933180526554218741077089292327579295833957002188344807041958513461368870994568843849590088565913266673031453385758585051268484206187778464986915119855612704025625465019455530003515918742802562862126601254486782963764297628571785903635266327117842419939244953646455725857607763355011315026486890320608812197720731032475225266390548745600840939082563630614124793771630437233376011949248738873072770442847860337128358832331750376138826525456707133294594828598821513957136798395949412788256305596738767141289192081029277707755623968662937566374815463964764476058098317454063913617063932569152570578396448299182928045624681987915207687276490468830312730960318136947282993005921392951908131147669985077382541763671171147427697748218356806436946971962764965129171556839100768182570716768494477717912436755277540676102008691963598668752760444452933797775662612169664907691634272566946568230019487390689930531635237888686003616252332067388638190310769683510487203103285683203324500039103529387905345291548896916546210373631277204573372479073808716298023394001779804666197965039927634489273692626749186647563522120877942683619549513490585111732152669354745915598923571273417222224528587028045854788290183626597762910338917003845472715776702867189982706846269663277630007559318452395815791021342306758461968523518277335338409378329444730085892015571123069093011021701978936895295625173835505186373523478225052040709105415541982407131722144047744398606909608740787623077271068163050465403678067264311995641517916422812017569986251851852254068464489138523683926472920257172634126103302360045621846790420429856305878330234235200486744448001094043928328044395462494181949541007153214305039611082667604817456808976633113388569441752515308130254236774480621637551034633759912546127664412221492241180570582967455864133043246662758488698673951899093988516552934623428026775066639795613375418127666649749420091435370021378652818699431157502286806875256355166009627561277151674427410536388528685933971639310491421893234930795986123594678747429998526003026483766201426554294274749226778544626826675742600020696957197331573105302767959563496273145320494977343927290445508245687187834078182744122812088360702493506035103421013916405436959168530476945908949271717101042032363037336737398578830795559893488531189590514644182154925814503151028413277686410778372319690202777392717689061872216323975398044041237314828956993210979785284655577344095231841462061148555544521451854688399020391886885058243829740190489679561916224897294036384897356646562885736409135490067829626259403952814013934305680167813227437388725379565929741873184603385189074697236308931624017866245806546076147912837748235673796653277081819255721720948947491118327067786361931246925915206655296155136474730754494653952731908118018490617578692443320755780130557076001023426028846496387494777386583001134794747760195599637893823325362578968922056334338114839991850925256248489331802089415460956422855831472457369951745526453227770492081805018694937740969392921343943470151210357056878077656179653296899383990857815989044998301938193944628445836179346477661510972676524443055807742521532815444457775420735038925623861727594193255317427862482725580814783643350821710317449968039626124438434528829214064022010068756288039593546999196427575784126630241438664644446864113829679625945721162391654570971200084885532949556906407581339614079099954372579632282528196066168065808472466668974219638435504363404581186495943152058729393982030142135778720731611546309904033181519846829558818822173720261605023861110847868341270700066085168211031827868093706175845548187645679974888147671400947297464866609050064443183093593305839480873400839088052625476552573658609027455502750900813610702606834900663023459097447392265271979854075364810766508618012195193875707413532518667092612804400829073036084055995649753204063644177533414741142198540655121702320726130379457659950816748459296106366391690748148726782808109965282992582303701179916298104741042389560887028846396030825830135688415684317452122196922071474358179201410963226114868771254692083489356656679977538447218579289977016378148745803566192799281129775839198547008167488176937547658998038091221873312070053222737229946636960120642833606901401787020372355777941497820874930334081164133676074850134246699563408335465542992303329590973661106910695198897957980387091875238065860539152282013769675611574041780789769258165528304832787124844976117540689802952400018157108040192504559294967420422367047907715938293436990314976074972746512060969250714138575872833844749668773149597748566700131997206600735342582223484771760347431311090548301811156697643377848629521118540626469070374345420113007460725853200681900455331351840294817159898107413615987798652265570680776143063039313159159098694559953837837487663129809287163411249015766050606381051299438473380621318838443846255445320093185734975277574646151484894380343364084475279305689144653787762973257201410737333913599023028169122906263147531009241878738801201845967008778939814348184067692304360673156542058435518547393341607793051930382540941041177262785804225506900423711439516964991465789411435961596985275687064877874796193893848591060106223636972853008839535337442115643820866044862080400737132660143433896001364627758364323031326929585957624930266843857295298871258366733610410322017959781250256327413539206166370387807383287165241391749652582847578625105817736194752071693518658219539105997733048272298699104653576147213593114206106287658532102021416110094332699945995592277973889101164415429541463929943857446652453731038660621464791775019778574995044476805668940029832537593104224535833999929152323474981956277358623234068590435776388132935992178465602008541394736867180225271608791173327991834158484179732655003129357634423394999617327831726518787664667030332658043038277660997792111282509798286157575213309359377973573308164115322716203347404190037017384412399372929715209569488236784618089400675304139997115423000019876674094062215173755391512937888118337137248530244903898828546162827857747852901167010136699120465547384224440218526620951321932383848936833577797516125612916629413267520458990293461385335741919238971270453551314007231858181029138696498236938557666219552454035898463961751942910941233279095311345847911886381605453121773133548081479838463489679575567787677483635406766765587041522504408037096284076145880812358604905797865756772773647030965053130394964065256924342966585144444110786891161743152881473849341200180987690023419478843832206143340618439450570131751848540712976813861547487201617727999495522150455644700499133945012200916597732960210129598762545001940121558407895456638948485126455028026998660022798890819009085064009574942961021328943644075384091073875416713559909634923631959278878645131077834378060264215995482805824525469234836748108515863602092836204431753634053371059110347227072288202873478600873615901908351989772792694491639502773632709529708398145393817312911616008406998670791041342705745301719244094920638801312674476334581407187697107911653215585620706044812390815741097196891376209456180805984023043771214531481645757875666355065470607685512075322610711371220522555292451132301348916038840343528272711475386005281611184184716752951783726049714345951245498110243163799861762247769843152293370628858954961038373837385557249897387819973907870212914142959587137529895388959520785676173533960449755268724924367163850768669555217019230956328138210193208767761209428166225098853555195765907279193976622771394625088612213575175145883474251233542530768143903114723891297659413794928674842222273235755590792975629799995772594038076647294376962948109484042963317050211937591509508329225097199344789524079509885601947544519222633379234296702006628602479492476543733670524593950672731985405548056924823261117067079164062949037182336110640825056221195600196745490116252912898716868709020275686850179625056864027797243682397592785745323335692749721933135544613863634092714238112514330564744429927144341135029468253472076810611639890019262830563333302398982873756464568715295675274224697035893038366543499764055057383201661380793537858022340444352446700036934417719287550186901575506424856526077174628388497838826365134983306515784918285246444899125918959762278225643536036918410713810867810555885229486929065944384655964420854776871998232973834766414208051907599193027876944508042051859076727495399928678599634861365569649205250118878428955270121239002469825793048266229634729857844999719819863602114563283768186464028115913383666590018038038947636130348570212355450562446225640262877752084599649128887044813486100864086709689547804896131660823854919109959176005114529898032417855601487406542044174727110146311139716872006545569207274419957305836287236177109688930135893317819999901321843053860841288571591053608019436787930224655339130837658177097356754167689810004210174054737003152741971621284741735115849576176494738618090469390796003330895697010505005764949680745259786759611135625520013614949644404800906282237583984125198985286418078996403785874977512343592064275843999787695815520825227720328040874954230892392256006626552231833093189271864000296750346979847482106198418228070716441080874869787355700237321320259495639474191296023303079526054003940023286060473564894086027895420213568700305309284991759055707460708949003223102045550032743431509353826417213280107446642671682634214769952237568343459139279650233042892993483527120415764089057657145103570754432063092156214230796058991994204358454923533911449127645322442832545435316121255108317755154546441378774956794005558707903681789654547747921104710888230961208333837124157299146512870865604711490370241283604164421761034317983180690693874863157688163517960077829321429739813941590220044559818608189070257592839304709393287415937785505629393436033168518707289436511163023282351160866000858136228357519347174238601191183109265534021587474265100310216671337002725098942108107114560527139093802971452912172889114435102408834013643180765462489445993161148545158295941486380747802608283705318328417900397581016119241437967411392732311499616456169907573660305093624166657322735961823355604064404227409917556305451826138333258536346504954156732863194503079236208792569365201518549598711228639115754035699642064077893930386462563568993455900190419465816023896524173666306789905651613629385468489718436639640678734187224003154519058338089483198998791774944738670538926210086692098939563015414270021158824547832115256330826086137024519377834143799191427841457028752320433926295579185034612858106772394561786135202516773010735746211901223546721859369977949942223165897091075824015572116424327445928785186871471924007322963497310195738160978990546601228951816447862305227525384800352243809476751249708102721853765489245862715343509249730597267286236631543362631277021778278158823370038614645160682089157888002294902365805821670925397468987970899319775111123911010358916738552795762144808206265305638256736052090561777575910378280234325310467682820787009817478434429049150978113166563733617848461143456373850795629947598323108718639540149950806851156087642531438707877945983311305788912494634274873915502682511495020338496836948250545702411775090552345432060019544883283880842146834997502668039868991649571444935345000323563815253050329883396743679598109154919240799511403738307134755386838612626603028022778642308839220769906416649796419265547277590705341626678225435182586636868423971287456241782971279856352254592703029376772957434199146185187231669932664819680214235642382764596775741785507725420525736961758939353300152929430610734427495176198710780701176145240327783283841915782618013004706862617758209512217858101640062101742863466054305215481344996226642993136387957381081481536044803934978686814357395847867166036523977513262436201578174738200434589032280394037678324201863164476751430446220915368648875213645498027855254923740724409386342794434828838447530469101333942484775445443733860288307592173239675725820009561965260635498043416185548090819234598277618972101015645189521280917847480757741164524343466625473315625447131692211716283199065843852000893373115848969443365758938398340972129236555536450326292599387427905531780129038382779139731535144520475442472345397134467850774023596902038357400954219344995772989136494569610752158188789481533006583811778097194319660122999303856027512840395175806670407089599193790769078249549301214432450019301384635422800286381105011772446619961267038644461839020363498103117341649262900592744678052322000612734086677417416362970517773009130651189285614391116254634448075992688521120090198249462306744910187513889851527688686346803758851966357412433795755595064714001490228100915110058410093069945615340154415578494172017207496512924094729519510264374213379200602785918969200826512678115721767142681292604600633075811120436412836409764589517515554984626243050315576053342361421676704734460279959992946538067596406985010951201817088032099009805690626336428978523686035810167330614761267666475923271841157835768778166873745999392798361411453103289067389030777259102738798674963085108282004044052911172202463603599388328331571474445079742727710597224796892029176455100062953258707438742999130567510264421635363838292354688616823300349672262935312237428799715499411955914779085565156957551460983039908734804526061031584700802161898083810365471822559023724052812711532916225009191146476104499351768063688355312391180169786557856957739777869605205092656466365246454900155121740860169916390807836717364752023770063636224143522165209444181521458241107944172194585486740059363183408922605798611046021903018300195460820910034327349769317962551821232084297622625101889144769875423508650950063063699205359688796744205518720301694182642507993425219186220398704521528996279505825772738339831995260195125570220366960159233745242197742319803286714875111953990912920831969942720807103992125467871300639072440221323225816680536857029779272460068825031742258868252250673110787116823084405211003250542391736198281041630365072399426233061328763455988856485487593756819578179722202055620662982421880462947311450290697714886476329824647271692156362671770985181771758778551094675807489764958135378830909947492791621028936621170780209826069833700476688584893319093315994370168631020177406229054054951377747242758978186952372045851990624378780770397767094106296272216274178695866573668059087292835302811589024080664881366742738568384148487492762553683325984008201831705552705336713636619888121952566301507665307223435190871985716644635885959370397494913853846977405112558339381843366931131868243553770438266156243393889522167615864192868250794346821306232330437706540551886669068514542701540622738395660298288211488076196254075290754674428060172999519346035509459463675031825162255521019957319534208135943284922126651810050884918618069070861853497752451576669516361408275433969114478092297599339689426249799193727769379200452654515043422779466061015388510681940197225146621108133147008129520010919594066330906351675136459945277449799155297417688524197155206595079820763505611417519949615331750609163863962972680900882710962172331088460910136133287518186967733464917274631110839646423686914364128164250929933726534322053945532615763929402689719633263057720184851837686969677061108617379278021537856601422769526410227714351774570006792511031904462119397934034373930000975953764251807257059692170514597024501464584024783997730047994182948527406582895405703545166731016353460267370639208306140365014895065757705634199006041901541985564956381807085157632764961222493264639344378753519854762787160728574646868048847628015787448220466579072603104120678296840192895398852774879552267928039240712996535573333600298564190829473577837286109539342502673723638982048841284119683590819646035182851478843921713271143374180901621441510921506379933168926261961237718925405825829658141709923819383716810259399669141904711415067476438108544672996987353398243339624752646780348207041733226840857478736671863239383202424948383128191751287714583589422193252714825085683543137564865705664438593244957830773708500479460259097674429485107308504640459484420195955934498055917246213010591058458814600269616060123460563981824888184938009247703660414928073054290818080240206729711699403924626214989678726070884464707061183641861966776951621301754165887013258459157984393422693092958080036446968800613369114289345002889116718896378929889926258639806858701984493691470651260264356551937240454305055015219093223394660404672748976766219534935888476279366197510080818285498544044716878616015964049661325549936120330961739498462139954061063215274746801149979112257816759728848196120075720557082438112943041458426970544454307140871178446916961653758632433637053619240542383630690133156814750204976565721055776206902574310731174615078567672883386452504774070836734224933561173969850046815594164797050336478657459508006852605942958748490918795635536511505506458579836385349714293671583951570416433438888949941632308736540742902982218120275798984433713173870553376788814955263916695517651961425032775086182100018674678672326155400439291384797948553316910093126279071185849197956348513941990939891510946097896668868012189523417148429347675569011047452241566699748745235481148122852385802263700604330219512368194793890573562213097966137287773672458290163953204818352294057979018858184334926121194114483385050796658993137601096865190885367356313174273087517700787836662896581429027984340334538581887827900164685024668801589227398006750967388397549647462661601198794338118256895603451683666284630408337132163194990874996506296959776605425546098640040802471067161617262420395845069013632949242185993298135013495485224920345906596615054253286528498464347681586179377693780342795860708549473175072823833069565338242149028673842970271792358510514420779726686741633556018071926465651035975021124493545693870095539321890936584523088747969789816411607318014822528679331039424884610236602490283528350592725708046862332568748980310436096849894289765290820606038828683402320960871000734100128799902740997432452913250203954726720510588602063831376335709166849696847891600846879551682874927803646161190664139844507890895690099740185197177456954707843745811208821556616389745663917746009885672667883651586362631348756438555562369388150807262439652188604071456773807548932399460611805298255996092058149336219166296411107980690709869646560484443843020447767605619244430644618721626698418730549681936889483210111490495201997055101929759646106200629040391894226404248777660509039822890206833664039252933087258976388709787170595163256100539460642404295200526585001458321054279176678675843310819939873239925975077524652000279220971972750427687747174614344952866202262280621001881591457186050140125938609127546701552693233854066640105193534153494820858365931935530939259844530208848185841527784774437189500689023694378688459192418124295949102443618660101499301233654723670058831444695014217146100065809987114747638346548994156150440845873219944217109817470241484520459340935871719596924366739684111713708678080014906089386054369356600535644319392198471694881178471962486735833470723346662248995921012888154226899118156517712935056206231398815401492800208896417456093536327102054780433563482149063909802389952251245489828995951936302344315399019783846176230280884948516965756281305146528990698392344865738035616804625621482644654460723136584215435482717531919793852778099646902773290992573046310472526118050130377142240703589875482383029232784380915524212189719706650001303158723327258675575376100162863604124839171074382851051146827072260205006897027826423040147510052299842821617248804869709670178548405990711939615396691784595291206432714341023487918724437756825797836169932280008830626751260835557214093780281578474071493713044429930147009721664929369129762392669114662142040486816766532435810308626595176145827572629191076279150217717420357447653012804984727186903024682513353705442338524832998714677492783600054318800032938817007354811764309490685430812585801195660936036548316648523272952379418686548071276183718120821984328647891439575716324551463640508202178267828679642667624690593961520996528195092018548557187115582968626792022825447681001227758507721139546889677307937947770957169290315600038342144583657827175014977000143883044648875894853320257649420092533562526889779846117707882621504362349751061805150170217058777944371993567872907033237786071225637599505196978112519398560388047117574262142132084907876226428431498978818255316583934622745314896262077623863865004878344639942968950075154372307984404764237413150617692546079449210249733342155414827774203497984667715979828625310079833992910281435950864090942402567562470028224351382025659117061554598070592422881064739304127516990899102189095854785756507038798428581432201968067083752174174367654167829401754927131248968653560949264862776777633809958481795267457287419136310289862042044709155516543825163485265747228829357426810860265451791338733193527251730685574404574889949450849935679823294835624929869960698701766132158356239101916474511653443449157154184618405713506322265297595364995955151008067864677572491302256848597109579912745164204455042320045722514656346003349292484251089443295495046805097876014034588807641748885542016640362716142011659503343999723011781282622413419615779229773251036808967953570812880066394136657403762554821675188099204374055813820450205768571470630415015636996053221645418586878220988434616138940666092651840643065896580079305713500986791723149925800112407282354966922632904067977403943043991273817076043451336324300443050431625602828656952045916096060155086309029319134672217390156063490066495774286207561768454459590349841550017849387498623865796428679357490211768496420352875835495376904747997058125872656180387139579801976062396163383113283932625771088866722068281934947299768001626052413942666718290118713838584218758704245654428947642682296921125046064630021001257438375647895364230030816497399469191864933632865719588832695678784624524810640684653013179200108605131999749006359389724394431092019011984190817846853782083311730758909361955616021219350066335369839715294893024217463709299194290841628301813404129574637595483957088083918887678132767413916999680980109128170075603146725212870488967399576425985987836369271569292865518090589513400095287706705698074082705917701299306315382600466892159717911969010009881934046451923122300808606401414684974917719156596834534084467693333012594812648737022754482109489175334993556106537741793657163757926830106228900719675624822018036647436939060688509382915320900365833791669250887665527772644513259576561586397799297061005191224889974434398211805444910111142260361051086194797412163806039892994491067211364695040531292043343761335059370660889100296442824644643383129154654924890640163879375714407694237920021657863566518740687443264213218943536075657201924609116868447471331087524480708521261317793578497319625703232289763101977434029115688450935213142440721680911105474070144883820120305400795548195708474930841583999796247463539198374082311478902991378535572559003958954172195236065003932621648403485389339530961920458454113891346319506545719085604406778707347343104295210147803636589075185390091318429459369773467901624020163303870214927595077460653376123046901048008729766047442334698686675717164653331070908565352148125213074232960450575127827666103610130599943528686759971043314912149995977761767368451272067489527721881098578811386332897777038815367404549034697242874597526685047059339735006671412846811319088693057780688546417332918698342633458713213213097938165898773718260480303767594492906723587046611676274745610132509398547586507820083761136100918840963548074433719288577990604615447898647170934563132405417993926196208306385845770944044823393499208869016515987973392441244005772013573581452766558303420501687700274619002924441806690499527869469452690155148182523170074851534472371695602794561188726161526528395113468925879014102553642456698969623160458201929232689868332435799919176169408035289781835315341348617949469189409919957982985053383270772860820220783170536683495233551075614142085281404106568604097073883687713024359952743815001481492414986610811194538993162914558768571708129595511076273163183644455692148294759667805136058338243685889948734729050228996742521970430968571626134651476589343660965127494843662599794538152112378425803711173132915402908753050099434363807812434159243227510344791992554302571273522698655913647010591056389791550492588905089956463366020942745864028022748344200066250800513065670381478416145432281568677773692353937179217280313695296190075556153125289135265495705999997757693714254775968729436518695091625129585891110044085955348933347790053442026487730059902034000961230961450696189238709053537115378295600331404374267877107011751318254979057693716264274103969707046009956253948972212973929757915890483838454631301880117563868217203246005755674884355672655828648400900611693233929372327136287707438893478681567145429932529599325960188663750480906022582218977034411283568351398356816263862386505298508821381876365361558616367067151284271770240686015390486328817881124311833830727482747722540380367852839404567160629361126751766359422408199870624193642517321014375014592593101536970288613421074802431217285991232276932780629390589192584990950295288109408797778693943258185835421694143247245721055334074882135565302211755980984034537239810565993230760910842586887673238454260547872951559134484020819895260172405541050506278765672916022205525140381617058128582294484979962790498574028074735659380299295134874038921840984679203712237596296172826687757998440419108618902527097889296042250226105681626444817333331560655663959754764881047020962502779478771152378001795901325654100009343026552194473902805906010252437834453234933320719687859558965635639542079943161873148815670176929116445961661679207604276016869836055932266228421909055778837431963485115174281391103156980144337951994590620717404942239442020479723924614166893610030858954783649660729185973827608986680965332678699189121137688903069100041525224768613638456606838064463691366618767127641657773950570485974907451240545969664040743019039449443976671699020125531128573256353491366519131622720983488499097709923960689769967532845156006319773148260707999782013657715208385914700891446271398540311533964310559016922209200517507229076653256303379044064370448663841938209678437235425769225345805713475912142972956807342992386240070566201881183212961440864081178923747747278267428794703250690793964655037467488091332374135875741600049580560253800215797060683458149327383317541911437212758115224481657109287783254180078917230215709666783283048275429338499208092911633615307200184837799284138889083063992831765200278422939780763764593831067337383970748631540801632623579994876861707250035630694790901908647539952670793603298747531741921693791650295522925580017219196195257027216057219616802927451403503184824906691669149894185495817852205327195280089802659904623151684779740200676958771605485098775966746608314020251507386004847799906093710146876978969882694229627303690674747838737382748311695114398197768629459940682227935349578421140026966039882251265057247004763547481399260139695500140289251832143658834163905719452512423314743457100962467064514848025697916162129358787316257214561482987112384648170983468381511171903852959467900517727934444131205864829073088202556866700136773455396678050686118464036392186351046333753976990820180096364834960853654020248207902235283371138002868798978696025729452095239388690378470869326796540767457891392105283166034071725694527012402505080275824784557912521855927573142953478805540686104724325454933883110525650198681165555636758449539776692314462357509709570170157880968969008935825517836982575721619606684537054384709204454547300277758168850873635167049678664285180740075982614584481137106490114635090146576862393836175575111504592537026391534795763243065246671646258441752249465878161960436719706775137986348999719154186112155730417931007533003412994888020005781178410861155201060854820085440357151825127991179792352933851452075586085608852698439264893405022961896533833710304385467358620866429319222188199059930642650485460398452460081087159049987080956850882825947539484393685837198784836718521936256545984759538632369942360150701723448047463492645680768592232792889450122070518877274283350192967045765316075967155784038728700368175826820030360573042235660105749649880771448207861485984222566960466607067266884340986064330840546929864494501361704775609364550029927983678594007994560712148981030322821751446202999007572479470434836348781864233631817922338328349671475422659121702583815206852537816778085068857434932617640781870109742334948893865869211163135753663215374119210372425518599188474498316449385189203352085863580169404702384887809593676791928454875232932594196277353024021101080052047597078276465641793259818991870926587670808053976202159440650365946407770900582394970069871329408321014433053395767603423486425463260949248011322155036868716904359271009994496307450722395405208665317618242609982144445052617872567626914990739060354529472957080716750935413771111045416887998304555722373261724436480526810022324655026060001252221387291783073093472834166695226555594698050528680640488894156300587412414449536290523927225488945264876547045001587149839637197210019437341847085906220731880006557953619255217714131887837563944006263675086008973635047400174369536152534062305203775985132138610465179070498118589563413815407603542908783541701517617100986786882428607436297177427156523504987014829519148359555610612331510203443214525363423629101050114410079395800100103525005978269812100841007387933211086048565951081434275737689945354393153837663208123396887763117981782634754696545846165566171341784121871781359763645322864497601693044132855134513890520781705642696485908252201617706753032005717672070347945460787442450603219360208049729840790166357286758492399890244894547361364337894864411684549637522968123992906202691667405621701092393088688318843772227065299092711945110799356896171269103054842249156633765515941892224385473999710135790229621376117981314463730502766975748418135648974519984523061520327586332211783761367977490064214847986267657266222181968891949075527260989242411282764925544225286601448640525150000804931816023618300035639999081350095131853915252137709376893201700530034902831795992143376340710193488900037277266790993046025587972329961560944406232881917614659522487149601906115258715473885042484020719584142102735867885884519666846642132260743865414199684723868516890471546099046286125755492274336964468046826389637362707209895375879786714856689741541729351157405305195136702054731700885745417715554190719235377826864906129927774164545849819470972892941409309115268963211943304030023175001264747625890557351848150480430503008523604524768810284494952172319333831572512190767150265927712825543520125848774903868510639686263474790410451568449217282525854721992938181759344818542470268379826441699192202052191495316434013544528760473505180479305275360365572663870737185010826281399543923247536859223093770549663522614570008009608807477223749468759528148212191304136695698246110412942816505813215556755239499394088323814110361164774910837480470599786685161408906905716021161500122898084311894445164655384322659756166173701852314648645775186727227195417072301620640289246298871736000072843186560210205150307531677706992174443671487834677984931721849001802517614498948816318960543634866145568723014495314710892892714157304567550562279770911477873796609299476181450435584714997228107586918921966167228466398038069502845460142556084660832776619555272457443780369655960853015329147859822631829368243513073153253526449798065153584192441839441558722848388083689702325865625887944474409855349264457795081333068805905261720673443480686039042681313749851684431379524729913843374216297045757487852336762135646273368675766262354367689671066001815127335943140178959942487418180359037185024977701143256307027145474080896812763129250696946401890268314757827327621985037865462927485743893835408808423971285855525164511970261666393160264838814004641373434943219089686965990681697907480143630937434875153313612959681098962175464368118258354901876350872396120326721924718637585704824205406694842911160593592718883333527752184011288712086957724988063063897834343708977712257082550946371517803635120676170474933204617763107839707283982727986016651387645408059452897652912426933623120923147226419262217282889531389275205574481050240136489984462937377647645526877092505797393637709728752247081851529772506553517141877540629577987072933163492922150690041895846051397472748510650227005971740910494078445387352683540212225903567801107330504954640792019255304016781063361453082748864367164497137040045072294166872163630930618212093510784677092927949701325281442646875621205125654413196004925215208674000584169193933101049982915393429538041156827698209100584633100557706782793400996511625683492948232470365029781152346457812884512025715619800970431344857884244226170495477452687077320870631057011396802333771195272945182246701251321301688648297948471104749869122870326020942592290326943351370277661768682593209010263702376931707832577076395419670817873505092590671473649011383318077551327239691475540746056561066466463254757480633470441436486555176456646722494970172163718832097018615724794838698537476321557563865661698696685445715222310478605116721706745399566697610701692636515884455415743487644432989266028017237032534999216533102817869626802284969158877324643054845789087850334366385748985943290288399453843829234883596921886446408884707514208195251811099057416154992292343865906535305216954828446840788934114265438082387985382254161417627247193588398696025157461701939354192510157971271384600005238193118428243226136950654280965535969986072741559315477436189628627720808083480447842478847026949228850724681955225554973545911818140236111956427407364298847731436140388126423932293538029548227098681946687476921432966197060092887171415024499042052173666789899417305076802072899522968401423988183048474050586040274580861694184667991534262096365266492676281439861271255291187501206682520647210778953701421784720018982046503580382469296739744103851620523663284873390654795499601408214154631137341353348756629459984608809284875107136326324794347686412458967319850469170657998093039723829897233333369512539975922855986289003758304180937186890938116774999035998921150727906559632945889199507114535768275195655846888325743266543656796215295835682321374198078214249721920833726311368313304159505762031970366629514958900705587856559815800546438168341488782783098972306837965295402755889658644827236067859874812471352508999528634481203897023055015002284090053943839083529400595039410036027316652003432785649867767714768502751439134990078643687623832014384499254960249168568351643826358250256519448829728361913681328937294226862685753965746559770310916006197521353085549700200152793728680926523931751394330954951743793500954100469049813490699161041961733060386931785398943883191392023393857635566888723930496182558976247408302389230562273305665223078741290844167835148256320351891789264087203921473988747297473572543335860567737990853186084984247814903592744305487899021789050625315070561954314719703903693332942053290559649133173955712423103732504502076052384486076330932543293604432996973001072611397538892641915632963867808756734285298539198520040666248648758703081070674666108678309551655342084132115890076980272142511742625924237248419822407575671825624192161540229500034251611555331631587022229466275220493923984036334789127541228606110733887663633917153655522128312534158068645072070440554088880550184247161360323670224128489292131565686485605557168793220014102447110951330055739497659250971138439582093732278299366038141078244884753330967499899286584151481024869918147887934623373650060094384959769758406196477591574531391449786752279720937022059083168132434439846406624484409822294988777751049287616653380682914017617707876951011961029431411949969183652513882009646673539992408401447492356564415260555608017202373961733371216091927588450344429998737261446688372223054739385804677538880043392470358713394505294384238204161344928216964057338637951495185708787549492348634877007856915644511430129462968417037363353360963317914947765654068892301440877891188349092928199421773053386151831349168135492916564759391783343171151699375921946919968656568207294182393881311932662476765425360091683667651886919062448774350905638541201982706538069677029721041203953976373352959451845903746973352360512119469662689811326495252573343613776717050888628070242295115119703705066615331121604751553179250140583901309330292874719386532068535136324433170168077483520939978566952155764576371952481985640973772837206720101363266495002206505228882958612170978613106866319257863680022318988210817565893098443962779865112120149716280159701454715313174599020115487574623399502326404327230157423093326506970438874383327692897857554833645399198451247423684456369765915849508669526191609715820363204681944543588231248976088430519871135873461345257326761986693103099017537872592434959153707366982641218585510778259488414788659425626845400317485396650009284618283305374831402719224830822016370563108270975885949189571913872346537143650207001491294682629947979139883358965891248025386884728066075639900960455954297264122407107711673311954548155491363358740633301449935182981547830614225729483158562098680469151278397749083810435427109821836046077624914239228122597742772843573677827913951264966758812572868238417119297657166685665364475166371720651902267428095679621557795725329344524386098133003203961496037563675528545106960812221712598657280834384824355221226964107406089727895962841283872754903629602651085481244524987697871190822103617239938582519159967481716698854354528794373009492781437751836468325141828926439028946526942463840803344184566635084948206493450595252781187879976351070395189316178285133089246468517744460196552097670371524805806621126278982199298360082544364190977124364066297476076068167313488134127409545429320318596786565667596286085720260781671608216534694621328461491149498799881887678505714624080328463516599128644845143225509408650035593518991733126529206649538849489841156358236602539757228366735238973951225531164201459876621392333277123125126249669025885343223221454651561164067963608524214010458733982379971026389145377369467621376731315007219387467534170750574573392761276749784460468916330457670329023077717676714393221564007512982282712074352917487734424740800754793609599825351703629459486333929514498806878352681265614739040031156102034869242485088222033534722920490751347995324682589868837373592860087839569693396843396725649804985018594808365343421797075553382637014148192744688247171404505529703341978753706266735403727286160745514380822357565313042315692549937042078733876915190209639557092525379565074821966089111612473058150588527785123571835964733131251220884060124669050064373982039797893571821556147947702451790940523955204236169631785578830664725156790581309546710468290948039978587130146215070470765368902347368353180937199176609631026757740820537923311587291579838283596052113307535369230183300036152790247949635567988369506201109307010145499677455365801049715464320543426108804322854739237460101844195320598405334070659896430739873566110942593802731195785742426516023439073539004533133625743745115951314766359759403691294591517796352687620981456977181449481491351678609507011404523702640710479987685809823172729254649736140859507753142383384267219199175370603368822998633933754502831999475417501034461335709097927893263366938246488030012215763111196565944546694691671723851347025351980132190423000423256214816081372654022785147746324418774723453448425643186315199871069262095842582303917995368349247825993925394923120633287420999722179452195004220424899396646761736405180365335965720750178834484454417920038803092949413308926646132651654602321637283704482808178685587511091136005909657671656906807587462102160387101183315715963885649107911928783472639072067914130008718858038945952410185694404798804254433355326741269278717426726557210548032272943266387415007031874041591229911433897162442468928488710523256407701314872805516597975997148304788859603613303707814200530596360199479794960857504646565795543835781149481329857533642594157552670110093099722176751389552752703450563839878937190313081445723482399115572186587571666566822468803137883346808777214949413177545729249270060580719690895358208918883343617757225121075677856462381354395760181511343972470109741253224220294426221171656204522841545634948420258666940735949849944537643276257872236517582698395080406103593427392838473766196316996384595701307827564335887204276084535655825713618326132861417907452316177337420633035554581553458586379458636698259285122413708925696818589942163948424658884628791692802193577223920822738103743642318206083574424594374714168526078661793858178128486563742108354025850383400944446171510997627048590752104679936361817530685270265561755503109683614512626735128243012799715826905791324398939864494297522791893085983112660579279654113873792930958607837614228285704904352096999815993610542649494364131004635738321587266158875048619103693857951734007361627109566186618100602256499456275264110554224849998185499710210926546976975133785737337046092829079505149556356598955120959175345992930687068285465253646850492283551304570661314291874266041495573355430385242379899738499531716511900886552471166132090399358719569084692683823848330587484015312152689904989446091708215425267473172514049997636987022593466684611873265709313156099669545326462823633826018171631232719753135296775011340984185083514069686385462149191065000050069673884491118166277890434974624818370290620594863497966931890408239158925261341641038988838352029321905799992656311907989674833967486922313028445219243525566596935444249234231868292700774692133291474550371034675914938768120089102094884884637294319218968354652457539500207903139393465558964418285451737149248452350601369249616052519406714974187182546830387248540983997891901799978703049659757907259121016541142711066763509412807901588829410695422406262825706294281747763295286813264525666066124574554740090402306417451944852649177518028261417033181149212234298546730962126311953650183866007048774777744483013797054936783945669840817811596327705259951647034859953826444210626699185135709012095270224886425698080310734864939847020496686398712208049609132495950726773355630940911020365757706429560032496863255515515321974595599389587503540864526102827236123667350385855135900911522471293513900425250022609063911520058268992906214657757040320798086056187810591747960937209564582400608864445175257246617592266185692577340971654254890883919758298744303144470943752511415412835339834964698721108942691653836859051758831439792627315051499694361795203644838931835189625039939190662199381156731626315923626613000928690593503471422049511642798179362356962264164445370533895465663482456624315075884594953228134235831561997209734939026224102464334017005183073376204436995181408771237558684826877640542474596563435719919140255504122767231644768931420250717321976788059517750389263378210736350298076775694924869761259635186492203827827310629864366136170008236073578444343083854476126732204784633749154069766911247043968639736189336316942376826858275238302177277413693377597832948353940110185598806173490663292644986035113279744479174721391150934495783697057780563276081118438038368727609165980445249731887737147922296474134484000388676598948759420472665083882807102873138627845177244415308338902719877079877885880300296730230882830191481337842364018358144085251739401907692691517298973235662152967421209120331562192700749057509230089200939989003170734614763021676666206244229002611065152304079518107583111693921870998043438734790323639634674245765686773129425888351553537116602827308230275721313047950437736709199099799348143012045320288431520033177700686908894471291456962047296052748240101443136722004622022218895599644671605299231822379911183221699371502892011601158231978863886387103887549340198828447507973469070724729581294108922989070049244597269965396778586856954550206514610025518865533138368295306031178727371310674042802737997408628811606759000232271957303269798000925176714218251538434658940341976244574223597801528311206836592013058401365137828793209581922538066103248998005424828720925909989819615794800354240454770721881328550183748427803904579238707640453156465173754656007090784245663713124958683122881836162315777391490353543332046772147781223464952933045373980216075954313243976994256161656833972282308029540027444991916641311554941117049731529661624257632517233587694465319646309188200226880183896637468161036632515261364352088631966582231590796462120224785082166197560769494289158966083720888438402314205399361446231763253464838646639681469818974751636529224995678608255477134232465324336883906720916583295785753635192519196583940355270815333526978747688817401244059173823162959178405432543579048573784149718042366949997447254522479357227014291917471961172183283914511221933526903199914381378624791034522938565719543248281711968262492861195871557693576528820156312658469086949672533899828432564871608575587329161623254651731797978943636445467465535460705734424816836676520925015364541319646544972303712519864540153785399451630741510057529873440047676555317630680299503042717595603156555764166553103710805913821661321260680827255629175094131072353370433931003605649117160639585013903052055739764297534994874485150873218947995390274621906559077518438323373767748010109446652381439422665360749912717128468454999709652723536531126234954843292143551248733304307449228281758417860203340288783900937263983859819724531831525534077313643692085322603562162456316500737432641309374017206819669254044810537310267964921040548235208228787707695876316865591411676753934405823871848928907425582080478903269553198642725398219062449639369779104644265221098434122580029216480631929984866834309350171356999475249005699099941633470033301007499502228659065267182562424157075049846017445783842975427985501453987258125491099418545926572354379086701952605896568313936130938944267537759990940075943675695300938059557736602776686498587680056013697980791183806030110907562526565988483518197264309059716084260447593347742047302054906790646184456851287159442572697733422388421329064982507576216858163546511549975036489505691991600929072703708077357494023313922644790461676057786006596330455063784260211399873493149923689658644397611969291779160615558648500989486657975619611762807043894910286631844210253971737214489235218269623506636211588963757685439924098102769929573663063107373011038227163922080549015767212434774682752023525806207236601859632457572309494195925374345896308533144346866115453500900799577689737062155417658186554114010818872101963162735595913122564656839872597713163410317450550762238515123956062101663362823323744952401153765487882919360532453699615818721867264363294542312177900537186570331584774677120965614707853254760902724507942083422244499127930029960375952437307165034148438696618146381416721500323549697005551699874766968929928905646309349338740411428916961296506882752427365681492426549868186211548059446228646295835270011468222376249324472875235028409172447213799417677538138859747187612673032104810760284164246605417085204073332882712290050636333592580103047126133723015439213449921844726814443687139157486275128851101577211748209542515864355709996749013352170528832551093140624426848760167279074917228238012386320372303000144363386613535219055287612236178175771517416704871477112640273409167195159848189479895094274174062503327178048709372426937410027120554059665613793856793559645498588405922504300093475767920248721633982487468387493904008870997875311011346097108282715144681575662203336066337930094678627561564134473097524247225987784502917954094953413490567021156223909190524375585998275221904170348205353893160607731208826578085170272701874883282649802976811789413821119337348346842089466204130195623606652117300290528724245232357347651398901458435628576161321753330255375321729592957411674377141261774075568358205235761907003989165823020998201853678476932092461965812437343156680278033471179945948037537894845787288158989223066602171120022400531967403193917742116178216846874832735700478945735999725375538859353449235228417420212421626818229669352291485288020160702873035051835883954026007966217539682822352102620024215699357589790338086163965651332774196589440933609491678348340481452112812908999072196978511575425239795904534546188476621333017057811049502742386647981237888517257139432499432019330979953158669185775470007553411733617472408503967093919096085693386325318495906917839119751977239043865075055319318265835469430137395334788178561195410726932580222557607056728268387606073318805142304493592958938885199473782072719217857110524290889325695524475446533109694902731607569573341316375198352698760618550648087086133658011250627200825118394115114896605249655482317978827949466217491230008367544394611203799422736912966546896764167299711557337844293378049179479261726828640419372938770517665231599932312365390848533583118507650543206628230164862151341288433209509361946798682510321297578273416531946187025173091958432001177701814595477332882212079233216159634198048687865190501415179973288275043624235057553820430146069770316215398453609309041161321951149915271635388763545146695233155511839254498939804730195811571260170333134835764812450624093945590978479774758934326929474884463054243406426209449479127124602948410183945218391141629222697963001786448535498413123866951139346938282264377297569564519664002439575261836265598736123691782775278502742291148218286626299997066561815233791842077799753931214616316720696721474991026193720201682328701298622785523407004918874665818983451756440066858180303420419711230334945108889305309299900336851712042852846768412904719844413238767598215298183483126819716544177346763479374752709929640538034960999906473681140304836578122842188283160083980206470568117618270354258493139488929299326801558453449544461614338082864249813527888087226498485272078207910875031870035363743118331106758409430275230644866317348830306867838479465961143838509870675000911022666583930901184575899167144136022508221084468036214348143413453399902878127507207707978021704475266743440916580323604977489219841797632118039242715081762489999124515961025328948347334362843764648790382396797903402695329570435940611403099922134852318974480164783403143146039833548365574663966884426289725973947649188179328245751361964354818366000025631750560256969079446394576646669630792769974677980547265283418676633562358535497932316864336039223779460244545284884655099173173352679489169019619209294042845893983878095077845112909789690967488063218924157362647640533491849572691844347756696671707920785891650001103094523084079627982217645213187221165141869258630571594730767055621181498130561560283680138482287179688501606535320585815827934406485462196923426693346213087756625085146830916690870389134792563898320738018119826692286375932190415929088138588587427908885247954077803190985585012313874520377215433296707518128166936351272226085437871996161936629946151441788082634879931032569449888526502058852425516667319088788269333078517357255016603556636522501864993145366482685526686497319503663138345186303075867986289176480012225646106649248411522304376783619562936075747296784814607254576393524958564687442864344424904175942995705946859721213306353950754308727449427960649429218162165689826774434034835455250742768268875911878354733193985874133412543178241186388454977790578542004767899005759341013711341092113379266048277404927430961775076861495588015506225422537381627460575596602385033934523781894988817025131152531575121092433963320060029157285567128037815004986919226369046047384708696382125116555966299236297032940681451432993674097312610440238648805822278949218668298548712560713127401331868749226551875073985081071302223724485688030524390547497596106262130275724200978212986040951118994346426063551604838887721293474299192864897246287695379968200543561608644368430348628288283340950935952575999824767127738970561332487461928329836948271325610279045794013954868892106335132351065630714448782211431807367945487563618340298863169629459888735622820089851883896085234576547490221011986554567823103005155480733084164280047948213028618510640392775846490421006212682370856255537094558158977018785591079726297606888510683846955005292917837971697146553553710391538064349258830955800978532581017075854814748305988377693510977315060836515351758192987375833833429203913350803184557480045350852286614344782933717949852135893490829570377757328069419214272139712253483637541726437197499433169374284056337462109365107231957065030107925844897773635952095966839697642722006808511670453559723575561162741533682069469396252336251402204335941992397802801064102946422742442450098950206391421436393997681429070713191052924169348614854824922180445928003537055236558743976859244286626696780587506189492632593998416514123394764375715686201836815742180014557844655200897469897418017656048637048662397184048999106052747578423097425483606146728343795560819701531157929182607281099936538228511244044138054765229031516528310416386253071892891936417763482571455138227665852963764242711770312655810686716802879670683931187015974841892238112290395233178942994232233106361990104907461530991356868336567316838853759438318347151386301190280498046426016738797357653621771062049585558173202274296285795209592080280717846174374064941523377408896786020753739443996581900183107305508308108570953898979413732853157187830786827844290381220620536652128018778019926160377689892579540189952417819130487433652784581722250143699784587656181118920027247143575656597431618072999985946701626931721830946228218207766651821399114410981280418637565732896860785717161591236652106889435349156638591175103110638846194521025006636264912884465573642957828246705771294105830666058220146146180324166359779974149547769703333303503510799747900295553843995597602187759037803905391938821028330593607122873158848375219843772006108106245494813786855777112240997149611585523754376339755906315194143687103251930289011054305395433671543673816639070232964245906960036633155814232372665122420650388475560235330528481898640850812712539713878630637223860935333763804719395353717839990788681900389878432544012452567908516107328161808023361944474677640318223729776129382081379689121604149456331680846726732974768962520176452721707953720743231615493988303003108981998049023591583828726806815908068716011186555781251737062249360070443566341716235088231527002505162505290402180832489331681097325591181504951258486991169313021527444931532005289988560486579929834084202398995877628818506840436531868469756601395235920215956063055139689850414289555076496694155130578774985763977862050769260011322960947716407771724926412600398788904523536648177461419126955472456957154694603081967212477065269960146611529607723433263732249300528611512965083665974474806092842577998169482661242934894507589390287674418087149279876590151158233966343339704420645903710275201021096518807852439008638392806649134473339360562741857794611767537076280917004368155228459894222538497580439774264221341866289276910244986962560035834221344867023890470613297575552976946473807705211490541611225374957397643756208169004832451233514849732859943192077800706996369041306230260994540598950417250961828285506996435712825569747046756277068177218256320349433429756681988869423312904789557484532660429888018887611883969676176249469563904704949782703144430790809411941244619777090579232621783988968190097599981822688029917880239987589114297531729927691580915765078510093472466957720541530626105191937648623877795418374026252887690722475943725449490650293861971988808941615777503823315313014383157540335559025757796141709586712218874287336965490835161978813258589386820074881299527130320547927568464289904556427704324414116295796889524687771403969997308721375061430278135297202902587887935760802330430649579988865071594911850745901648602321711960160795194492559075167104951643951759980929330461350122390806379549744456165428868060085780539352573440569909290631719527491903221834618093513289789089111439422789263724514008068450373178567656397763995722633559138089608504635643582858720861162406049794971485837569716228851356573594490414616021758696677555954705369544570059685232336272338802669123648326240127991067359703947573873738617063187666573058223869962901435850610748472599406412192534661888713883143564482798276291888769680423636803419307744388757428651118991053674200162657931074493754958557121048863040591834324670798472737553304233274454998125184264835078656466995790657965455409729872844834218888577259872107645744223618406435186626363215747247666755232356746725573241775981863079974900594899563834577857087345092783626388413791844275394687979977146847930737119580611108296261846929958509073680493346432467331418243477885554232539924109743176519704492583576853904946265357292613539108032736682378360987664523852488131542259534676443086098922930815685047069313920816264740889530981972102541941105771121714759666312814778120239009911687687685034450033948652487393532968130717520475418046180841762046770429936938280252173012914174898332739537038102431369074895773915556622492884094014975793728302187682716900070014054383559228691465553898117474017868925215707187792226495346040686152517806412472468197926135323187570747143967851880405986877411436015283346336431536147079430660234630915607106224244221917942078017010477194920870867505042683988981751884096453011302078846447541618449193378783158251605333892503386148261819211834575949859911137823906932424359079630204622608025194859877740037264950253508310540528282954658652122922223310292570811077809392638404920251482410011036523518846631627519548890493179302404522907122738263647099138758925874135447926182167788262980248885369126666338086267896962153388483998520250193377678253108921627283551385294378681227936308947114403915682095004263801501119609809270921763085035699961220870923965419766739863152731357231808935686639116691236676026655966497744883634196779201714162429785090677773845236189060038836733560312994945485221883649588710691626107790753936291232915554955415024502523356774815882764317643802561188545557534805225557338446283829659023298458513731249259981108811976823731350540533118057102226575943011530253867800633192296354519190298499550347873599536035764113314786581479490739448095745072515499331764159298627775531270728420999636529775535800715105779623832844606122502114180222364270753593147607054500633960717350750214553359791465695586891188685351025561788384181547251008553599549834419904822501379303060080472786877710505837065003884262503959846276606296129558273209615630189342662834145575522757436859133067802536832302849873042956666548321946620051700128160017531663612684788424492496595373338129273291600126190025319249323198960231836099718469455263298508005619261252100350172395774495956532073551287777836107241079385965470804121600565007588898658035403466109112119939815121347589650605917200443199521480695802520852544831652942982497966788411348900410818005389175372224248017187048797391640752147046712480704486783354854117938562199786120678553499622895005656740630148005851565840237019042914807161123854409655847511788746611887474839007283839430414649372588337514477237448075474709527253423397062307981137978926179134106914340742752001123023653941586939177949937546458650711764508932642005396744791579121398879547665453581232051208716985824895182586806836180019546549531963136081164371541236211353238055889379187080853780399281925198976498271311273810107626478089847917450256491525420958421545025657539389490318598821609965156656721281895776582885775545626738145095067976358935865647664591722598010323117948030930968800556970718377844028707862147157796752916494755517245509788271551656926640834897269856421584984277187845252701908119147790033786393307342384733484323695188980452003887495838469414590055244904620122691353970835742168171671652237270650053826789305996328382865998101004873621432122899766012810959247374761870753194505778644445044964790455487178431794521673899692919825947987020780770995356790317666846662611680310345794979028266228693265027813224253856829103695226611445251424028334047100548532587461855231765748901965620641264379130144208722222674436619455900588854574813570123784150900521569321469539520432489285010754755580204962010271712001230394125957136275614323744131068002282877171724030375194597407690443032078356426925527970577445089693534974946307400019257001737885748984729237237615934590110929623418447511153738749880144836264537314975816258450656276568618974206887854677409090656899657460531272544335419262420145358506000736856518918141206017697377907166284529695185577672223150243504516967413891241277996575687131930590771645573358085147016590736667379381113002840214005556722920415296218876006716549815343335628186007869510025126939433737774547224496668510458523465274598809430340175285279978378459454028542867986970943631156084620056454106218952906780507952415372559446644418986248260360656830696621974190220740652107283259926882675562655994386657029150722015237082461974179146754811181065816856299531112028549472741642751531754003150164828255074485895586369314335990548719809265775937353680556013897971925344357594313243557439248384667470165694303625872524717936068399610586348459816196592368050707680873544451509942914543582989280469422577771935720243603818764629208558485551894841582239294360317676671052862663822897950852930449558370829240767682953723252726022256661309856012642875908178749446222061659515199801695294662700216190849984369634507227741075047550201490459697567289945227874975365080536689571601679147871774086253126808777291154930904990703786798675927945585121528610035160657594709724895876990650586486108575879370911148876033114077938489444812322726113962456445847679632124117937858641259091925570758099921408641716462176230818090498983602561864538301430782921171349066520060576780052371018571961400560379756390009826984146416632079301839330276661154033676813567929526513373937723583622057854664360449095722682292701074952190538738988628384544553222908238768717293421287696539440282819394540791553176060561189283241591245865632458655099371150052733783985032799901318165955636506329482414853135860779565277924502908092080347915966508540035366132690636438917192971138718223909463110520052691563235321185105819764834162814882994902422538646959442562318800452727093150760880165895293894138669937874942098751245668936644063750941233008271952619326549239802863631761846696767822622723551626015574372021086482450462660572674275916072398641409037319167830283511794095819825283621691195872463079098932086133270478846517555598342663394472045549303583429701595004997353807367952951141947537829493743043380055233494536704158479832772666183082776153375068471520375065993248635938010989605278059206864105650036568013453163463894279908183038688471922998981155900269219434187591267778700742474487165151226214360379484194866694025940264014345330451883042116706191021959419653850604264013277668341419401637870637891457817294187834769414362118991271813536921411278373422246070701186583729086568173943974219458320596937727084988007450695534765179281928653307375683937592302040743752928509750609773094679556497032452076686632486598792922724408522691844727680682434793829853408668971791901908593138951654687585483835376644957309807480476263466606754011267190494651021204434337521746877090989673134849537912056495587257744189207676287941400500520799668985660295927306999411596364848024167559004331596705642597010733848450378676250735806473014316547984572472304049668593406614483100976915305434508937103989213201450279634700825635895027961683288428501988392471725017525848073660814155027775289493534307599922418204818923192785342675245340123445650567650944766061491451579841231282988525862697093538236153636009441862500693829620739672946065873437356342238663248886630364383992069621915645186465165976739340867206318573589949641988638718795605624480317728378498119513882081894379844790411767149529835093655651881478164138017502669368411885934943741960392444983086108450913825089595716036398603631366363140118888403443565246169042155499704505575478641760500730618567439570981658832442064859130711733654163986742610279495193141546981202008500666494592200318049303203663725914322774017415524440354832219221772778993798600721592402014694873364380502704898764892300644734521432323507133092063540285198362532979083591338681208375940888078502553174947719807283219193303079334813988551445928817777355212608487561468078741302229673119879968248385533632482846912864032519088323660468759787158958871618107824227245313563004718051794828213221161698745049586962700081594725345109011647748559639346060792992219374107964295263209984668855957762442470491605077811903408230484524377366103856581067376182449394130969599662245401032935184139564235301218354013104115587102023867027848774557261033766769709052554499740741439015927921544468357366876595940398818339783192789493498196219675999331802131066648272232612242779333980559675049300697237264845059606110845037091884276802753883115107274228455865859122971692492878746378715244368025503247309855407980989748421960357289478144439293649383402379477101817493740546286535906066679252299677377143414063326514656305483478035756689334006107646161442433853473788591217931144260210175809288252046712836925593863992827437460581098654498759088829444976224099612843343887607697205643740910448773966737615780936560412043228818346994810710507916446019429071560876124302957921584745682269466091199421094666621866124221619696444898244994303226591636917337151316797718862562346710316582318677070748362329910779939944457235391326651074548154686497194195241339833215959950204754353986467861972315564100052804450648038785434281555232271104075883321485649967231154274049488266693593405378900436745609894167710923301754922532347384308482084528835789440103449260464994998584005891661491336595944628277814937945154256095983606407887117938038448238607529792979287837226096206955432638311188749978843564210087976298064546939258457982378527716412981866789523569562465559595436913019971603449827999468594466085393620053283420388755943753321192290439481859740490389377053636333148881165959915089714971434082954320001601815814806137351876187456462365908036291956912735471801108067256252887839134726947187199071072081357659325313141504524589952079673799553874566011974604067050022301887886730858020171920086139853748083685064370881915377301349477912293114119410485987052642558657366592484745300322596057291190139066930620950444369101165374054236700347502037890942276218630192251124875336234200100872730235453289766531460813804511826487269434536639666140161002375275238029618303762606836511349559343745047275764815674997502773502158275248896415024527270827509677093454110503823173191464542966406390543664825875415598133896056240159752048087601118409738412619224170018965393337072140384117942292025987532927142174455385715131568153558849527980913339253949168674339928250469353921480852912726566441392265511755735429982208006254066271054038263243486651971236242987251901293360580242350560364254689522962081540684457785193131312425187645153645736361703744070818781238689860706623390930148974756586445957508032650659743876754329780111837786832334611654346626815455323724251737250283469610563818753913302927490070234749556072157393045782001072955839555004829990425576274989134270956847554433223609752836630079459975015431794203205522195269934541392528916600148942670067701334084680086660662034040805439287616786121148890641555965154788636979404696299915950743092535127783073313896575453570611415603259877356406766329858442345995624357866517901089087747866469257315833217155843517885978545306314814667383804092078394578905552277357914253054824174372372534606170873973610826215026855947541543328713306683335022191076111079110344363573458736361152210793624518375668672006705289902150701028809950097804965190417086896633570772239152268856060994367512510364990287423331672663262207182470876444467175920673065863052695350498190232348556620821826530589985166126139767938309673205890483444097850628980617053649269473535224046776866369448225270776021010944063714530378640762012959960292347772243886234957393277213183958145024568384892383077974623199630810341133996551827854307618493674554767416168362709696708588314462166036315986042825861271301294683708735596517049804337925433231065435493133822588948438148765649246919432594015849444415819018536877075513711631540737209189866167198673612887401130950730508975690942583428285284991346838736357520122251260685514760801412561338905419065022938625578689973581114871962337647189313498838085100300678982646599261603833498956317183921748399357891855377234887378626662629410094438591489264778170763000848488004460224221718658505633785324500357490272431903734999934989267501753722570352226902819913755117696900706283429540205966495077666906153350591245286891198349658435234204535357576299202550441638808276616519179308278049216107063527737065754920972313690460012497546386934284382124391135821063156730803382483958629556452675509487815089081712119761412496076989129393878850279885864638493568444180593607325729057153702386401344886348495825612727017482920356389260250206136790823146944923730970872169144432387472674351927464524681930711482723413101591941221297902156871708757452866215185170411755892962147044374334541812810060695462172399157172004641573015640623821716552658588867149905733612940064172500841280854166994287262076848574517408788024638658236940247618380081571954795482088954707114982414695597032645754662971999655460100497101129967382188335181187437955691692340168806871560972345502447802233579227868929476233203463676853744356409337034318797229226395747311198126951918120184478797714080843257192539299000147218540166513190659469330183871607727727923779045132585250364425327624995102970144464209994483856298357207280862254275446574810831018715386188762040071472496203698817550353775758634116406081345124412873623681972314347952800049011527540950250847720992735492205387720817476614910147646936738332597790644256461895896386916294993697683188294996417383489538895075270695767611841322195429908737954087990568226099060641039263859316917017812659092472681816989617029347569244478549214310591929739772755799650772586004740718606295836533142978543332102383900500975086111537860003465540053702382750879289002477119132099286748092376924016731423972310609098863380898428408868235642657858205842718739042191915619726752712895637971567005509888217793739669960789132210866069878547555182674619036820379541030221309849867259788889776280095184891708785468871440879794709890000521085447462605436195143288765846449427257919058411799352172173498952859563697610730661039738473772294447824364555049344500457731099449979641615692527290890225956212143828537447316063760704691823762143019859667379526990990512714687065698736212975815526274110666654180324619260643153248476749742703473103819370615659209714791992134151501224944693847358145324879971950170728826461445478543679332881523883541951445161100645062501076259985031893544514913620567340938292419971149235035176341944944357957645997927313986660569153005022452447566582758221642716867447721850923997486803581042928599814531580171673220607464048865921827689165872840684613260781874413688540551343037869002426273184659188987109402706850795694524313266578717469550189672210201161077014864740248466081036319360181335385413320431594353755343716630537457051914549988261326129622664625265824008200153421131035198317449287566813858509672127787328289456488716164976155721008584870336296030999159197140201245127788423642486809751869849598267587563403784502073997799680820033783810740825619856456248540574634104801549105551027626901753996065051795074040337639088572652238597683032962647301011962223132239296639045377114629722207349740910866352005885427564995559362266276775491738556837238770768308371771733365291399591232929925646653355853697240807018696488338027366409691453616600894407005911444576721378564172444926153895158152441808452400777559638239831519271689785864214133441912109675070883945990506645813942547309381675376234638168870147494835057247229032357005375032461658739363921682307830966582635850672539745778602257963402520173358238647389156473073337585600967703611186176824366905092207413011239043912430463501122362191435407580745075121990422778938673275600269747880675312616304674789351969686901294160544990319513497832593070843357321041428420901364481517625269029353115456771133684783030606888510977106453289461568271236603160296902629137187309888267852709095845458264765827649749854005372935549272146152732513992745418009873452982760555256264349786686235563026220660295336293919780415738137770451585371721683768222956441176726286861509213367169686290988891047789561387979534434692943133048697537610201142990069760678420907176066960210577612056565404424600877545135758479908587896145845965395703899689707225813668316919335747265320699682449734768187217961762443047774492059282700645257437455371001316982673436501084248995403655836954375155360680312006627732821008204637060838181369434861629596264895214430507699428437050631325075153275405968298068114476276785014922072823532487084444303060922131347827640037528973199521796101572363145258206034826989223509645539781924722245210509507062671228145669516059991679507031666881859606152681942776217028071579078342182293655463443876133344678619393849852487354924413907850733430606336564475033806087080080704203071132885105613486738370562208294858975133798935760437031596824178458898076477153022477316917593813259381475752777412805449469878627029856344815637881094448416746174638454577938398779486405512727960528037812879584632738934186399271547918167172381047930448073147498696282250310855255568732938607932371571797816327043152835448504646465448925058876961307579432401045977616976293064824720582372331759935510600305347043257106804766394179575999604227153428375131658497623846109071867600424803096798331895645525369243702889913613831811427996301220047115355896798332781289998915640315807074401212303487619463919228931155787734767942290778413561683091794983500261618721132780179558629461385089524866795324346354156364314738180268036221004134531606511757103323310732404034332447656942537324818155913141050071666770136975418130243023246543373339794972985251177306755448861774540093021875333994899179917822902446023945647723465325327605258119632116403035370934654295860814342173045053713538995113559402766652646398608513446371592544834195276908806520263167919628329411109673414634143162040124621850276559315824757045370224312987177409516443172899455480238592972662193004948404389929995911039841400298309198723862969246428593631989609039072772950023410697079329346153188410296399031987677689822026679306744177192056278392504279909603176782111566490261066951603908608955472841858092507612672601498802556558009658689893976076988872901513207584116221204123296480083367466495854519498176857817301820747285129548645637321973129892786045388800832017788914446371328112188387787969887561615855155519997597549911807022431299873286661972987057426540814995242866422100013321269765404266594540550899803425892185406832681780211023028729136583536644433388503831830736560282845408577861320665018663572483685019552095642513035802590816149979087235188028260383210606049087609454002891647272004232478208087465591242949935157466674387192866985221949442538749129034472580650304275154041367886329064411498172363824047502683957184514883930887348435341691668305125796965090269592945599348636111373477141748411281352621981329466471928461544350742982350060451375174740935713063342665883136193479353921358336444023710688544863465054683375926577950211387574537233385938173120806909577974605373328203436222655541996725684775933654734045993628432089980857852068979954086774014856317363298620042820172476602118509326668041923698536834240479676604390729616411077378375253574909771137235355537981076035208581517801889185422713422153300916483998286314409512790634881729639577782168614741719660140177732957771760931532424714939031793301070673242113872645466978170036059326691812673987759715511625440333471260699391901432603923563054727964376111284669058930829816966636809237073862541077419542153135881694193768281438824430727942194892313018232989358157020859545156290476010836324769016393859917159664424060597425476141810429498971739149309125138615403360657795446164260323622973371424908377891790570681716296617051796734281880308407311692869733983959668744370494208570543563980189891209228151390182531474314135095921105601135004667153784859501154696080719686264006245173828707073222213569221188558299807860794172912524001593274372960833620723108250087044019609354498775502586461280915170460271555964140116680564101848116421062514231053465986217202265334716565483954724759312093991452673884456264201336590112711423481464572146637249839704166519104481592343907750188695331639392552353603033765288556807197926939906066806764589122583110211917014662110411638558338159118485466821447226026293259100186350241839995458929678147102485099429055312170885172245936628230870231449725168755953759214838805690666231326474603459339995574505094273124505759714893901471747979942275646728471850232615169771671101305427917492293951618903789846240867571272373626711807218872710939523192608423520944542593501408863014991691641391147103528786985946856838070360843563311695992726522063999125840614843648503481857459295657197709053930124372877887182327127482248488229514869046208845433409818882587979297972367553883355828349208228785039831255289009021617730400775012635367206882883198289526524378786507735488302925803344984337346600754009890915824052785621919590586247999461796677983263438192997669500789368128336180473939723313484829616373958583757679548912845948756175745629196790633176384537321952409228621688117499843001435196289958670931800453355723707698111730145438477929499264431330634564366139380323461485976186739828023361534701836457762889486788358539266200842975441919914703376217000641407350807288769878745965701274969865645604229235312002534316762710533669761655665988137344311197553399052266446420386677961110240490852605147754362654616643396610548515049752137587986624707182269726798378608941269581968492819330017254560618783504325710423601219604427257794184287162918197992045102006234919377065116889192128564044387754719235797856742496638245074485820441558387459920357211993800215880341797915315876806946088103616345089670853478896325365155472238500888053232649180386422683625500019243802845392484142711015493631769095101812761823120303384335774921676419406510250936713736266539341268546577431705440450160499670541054292920452077350088970241505307987562102866633474184280453407842566558198951846669823970934843173029077593222962698244944334955475047195493606048998947147155521668543506585788715805137265442709539497285916895786770656131925437803907545827128338327445209906714117947806373773021782594021307588413519688537939522838549609344221425552444358482495682916981063838032121949321810843174882284081108212600788330978609752436017994231231528992667572459294494021337397986755057760505186775889320677073196971133548797445040163615633375002065925968782124801081205642402830684690671567345811888258880121827154698073623078049079599112737711053314342391481001852728047234838015382763207334304900478523176530371546294394721781730161581412870294723623257224914753763704303780878471447866033026649358853019333778119720464913898815492117036095564239847394159704124052801107915951983098894651054209888609821161195632648388663433007098945250117513285299220228059516524381047261381464661484935097783050910549154992561246717491361737266057434266715449939039824068050657699839077551828945137777294545286980254009211091071240112939249717939005765071379854402147887775717201568898749717023758342716797197488293176967125140460428392026743579981102510943179659938592315604677732176078654114543440395862100165172754013832241230853463941515222369290017875241680913689181629721948292175558588872983597815062018554067123430634724782517685473447116717668601187590722782846249141544531890570526074285318862405384673529952708279250630542679643474812606506428706723227922603970455990141564013328049480578182716030880142661740151625045577431323490180563578587904489568425184863681778939063249303730844418309377223767993752055474680470833504122159309130869026967604674980670752359209139717796751942974028471073750599129249539282031403452942344299070677767881872846912163945542428012646275024236263928538862131757680195129343278140340483495688906184468820748337730110662796136143564702104444183904340681263579232448002109335657022818439185121780881821258443708774231622041910398415444567795433551332652281690386092777700549840230518942090356275983042064101475934549344091254073077631601390816212985133643098068820553669587581472984798802829328074971671271584834511033333215920119925410590772540809263220476175763819913549447093470417377425761216155062518582877351196786949722155539659582544018103802193901402946478912880196387946692453486974559244694139563214132847683921587022444420559892345083455159936322215517408792580892419090793954067577089692624037823574916335959423526807557066928435255349429958490783174280715339722586360994664713595687406007941594284954611771271460051855310335125328310985174895406572116226018274744237510552285424571051916301637861880234650932853504926144365034896823438038375687715385596522875997323313990098847167894642176429738365659420452726200212055715035916217769898028202348762955038753519203514703784044071858717437580145425444589691451488626695656519721887167996605397599953554591920365079292927248834768540943842684233164521815077691303445377539038101478495999288145362190145166422444530586668699810856687939146247071555907827275330328676530889071635225236943480103613317696177878527121475682728091676250535146643907204249066795060311304818219975981015194233360519864096248824030548035958313210263366954061619746948284549591780892445270623223505767566978562336095858236500012841742218010700153598847434725976580985037191058958069158457529776325644876235033468397893984309365579078534832655787514454235609285304518319642781814635455905839826573315459405343500898781599908482161905893547007103282731016090424139134897281082081643103534876753455309662877442552644163837038416716604372319260284396700343649120254847032873054937392068272935639645239320576778322088753846923730791511087240519543198465529461038203130951925643680586893812496114102149362396689668640697984693928654654232484510734453327340533587432038060391422949751178131677262524656595913693562405024240921467648373260466724070128256248538046755195108816412632383575439647040771911955817596601685234287801624978287488781806776765951477649135130663087333991828200664426483458412325435833943734710189669394554144058178880070062126556312869921343375865234528380743066896960713345801042380072559966330854304352516489583337056621677544220665681184273571250595706143755193836580872958407232900320184815964269350803895178332372618638334704960125415284172683137383540535852413114578172850857128682762799657486468224231369289675784983526334484023178039106228064151438196587458571626023549655819433218905858150646673241837751038679935143450826031904128131799998677789622805038893949576757742659214226597528627314582786438268443551135467555697269811944582548966532559826854326613841320862587909131971136373473389988841735475448276745503307602296011938827710227453524830704902768212682553789212231960292650763103364563887745791487810645370130886672800195847828649219213560600750209889662204987862819316252166714147753501883129704890265366031978876038921539743220303125329255790542309714092681525890857949920529267754708993200231982381282601467642919348887069067030695208668031662838129931701158100613489073018064214271083069739307456997473698279922404814859839422030632030482207145128894855970649162964175171797324521471767777533945700844530179363530302556935060972615253401803499342349942358495952714415076795451703212649381536532013512450298968657771909069516008565841520610503844842408181991336134669419632375142139048819910395302771071057877885229455371433617184349937788367435079013924134033417983120652637011598653381909451178140926434382477466590656389388150292765278640340718562450960213114812787375046455893356998033178390599104540994539899716906469834895521950495684528677810712108906378222957911070180310392341255220607285732000352487154829348796154999017791471074030375756491142813283726429446330111230815477089681177652313439573247845556979122664689193209075092853133560650475232946002645741868307954232502723820092226079362585172580865030361314840632305343521110504819867244960534777470787379411074159402354602517036894864632805119203944700034809656500559255409235441129590435004105972084337443125145716769397390056212376757169254142278182037129977021494214155060070252258246650391165443061338542898427632525115325395327113333337798635902993044578673118847738266055599672074904422805357518416350847383312101270438746368757071664670613367797465161734667216033978207829553939010800592923211745479116656473833619375263747458866043726793516981658184498119872568295046900408268141122073569211001600716418725617996230578252926249682499827053261826393867453868622345865341765309420013542740515128381264056575123279278840889641955452307988946477047480544094537977779892800775745690714301284699301841683902475488808168689584351431585419256111564718746201805891997151220337187152848147648367468450701629637244337065121843976672292028489404915208803209652246962727642187691500674866283674582608245811952298819445782921705377940743468302130094013177529867839198432474912575744977015733411470141011613622005688177294275788432962885135397615631130316324367512946771289575226928495197401677476599663058129269365059812680923387129942989456679958325976819062468937855362740307196709991459982428057258099220262363428543847357197293307946194449725704994499464905085041129989263618646163296018634628011769657692961841846638576000340897928327997637779638447808839981502788640173163261998872187883131175169605705781430720660508111493656916728048581565290689679740140959061625484170798252565649063914855349651926906953126794928141442930307910482318924933068280132343597900437589843026606891563299071199726912377620572285925575401279146209651318452047710299003793542258572697922375027475116014368166600530088614986118762167869239642543087991547867293129284766936866912791743085613850311282522767849948000233295446716337200672785012570544221339052442837918391974023518863288862495907452125191170156883166397219332694020755095441846298892453247481717664961333643371885028774277032432448069586090120014606438037980882409530750302512182951734997813853370851174356694211289533460551396159624225041040285585916236703764659639212022087630697606428445532132621748198290929616454098886630573679260802327189790480755001724467374809950984638817271176722101478377826679469769741598469698303580951984896924078563876575331163618273263237532888517923136991689968784607234836507370139387681923533933816601257181968473430987384229736408189181493815349496257901340525987101724887688860433274992867061761289279337738152187953030020308191000798539563446259159245865365943853799063649837066623980472460441709477650133322892842307396772517414186148518687271894209107059650232800463282610822274710205787643694264549370898497641693030571374974574464676911907129897831563001116647031344922643144667763681965592539049026568106205020094310947797794910907753086614735367405463887217687964847782593155477755259654124554145596257461617360765499113000508748312852515591341336329008076216737343801716442039314751568927005077268373954827067460540375579734625463067707353145182743954456565833526870956068310406825100081499846327361991019364729572051547259839587803117773584383372085360769755374864665663285287319382375550663414977335323696136399948688653734513694856364551735125459165213467416720053960917542739457306910888064184895837146769235550278364052203040668767659591438035315523152637364147037536880828615348925023297197240800176497918342930247570723983316276998363206910151571165538402779973989363182232736146344249324096287867956340144387407003802702870813352298050727737288590814271092993272299725868245824865797429021197899320678701054688887296316759441630778632336360547171099842265241139632442825032872794871543178210742002830682326752241498398586779368265849746734747611761317286648359949831421069463064678641609002437971717483230331880739493084664394356840488543029061332334388348293220717152588475598214083940240905927583574719303153141736371578658558774970078180049004763885182863622054889581350991541716489917417088295037832481740075105463688341088598898232243622316343593897492883631924849478729753135533465999357076177979437434809238397780353347721875931834892924820986581220705541409289391698669600047882259101471661730571945454783855069147946888921261486874592750556227085356796275287409226694318569646343982502310535267298234146552512828787536429635767216217603753612991384283068893614893978666410714028174562477119832543461601933542611327612394396876251848174242892661818812302395775797427820591862015222703664206328498262622577213824533475724627879539407992444124839971002171501068026356761337197439833026405270749689063616622932204743291774696525524156526871965563915642763691059242184666125707570446592881619925714651900173351722691148028886906092907236475508485678037269296735923182029635871890561203145380330137194781578318229419013466037376156563571951083608754525319634668927512927241585712615587204109167180270967161842553375824288433145638219261502784201220255652605835272483051156774124560562116789768606104871555091508294732604078397229600734318061757999871793529248160679830597112350205973228253248823018529670703179605001616685561589928379600912207333622055514387786195518727915322105827744702391601708684888208410761375935473793259888377386134595971373744762238962898946076762724456934408189502069581759454181287703364209090053409388878039566975647415663200723174239470442018308023159497727763054957570522930298005783807583282623651889263639696849678960946191235661177900890683513425143955086241937282447589366970371819910226526692561168780810783436111872708159827547602994173466715527747982893053033464190780344803779100907981527347258891445019656864549679137884758100778266003373332780729307161673411512918665419315631356729838743764380877093656653798965572296745468195814180756718274458725402109605267519214450700579339977529559036977504928937779163246660558717152497913353907532997952432084972451740918834232018302632081055668473189187918791276928266595526289061347005362807586974623245458163416219665785634808379580339596669529233610968676650520574087622466024127392086037674599010041963398573835644157206406416586033726461981185553345215725388597924302104541405061693136827218629271804714790406685979275617492261718715060658840018373292694119795825578413794343469744362035956778569014688369434894776896990237602201102469205091654482632675023168422933160284750986049444366775909357799722405806206215357244207410683807129039121405981772064898476238960921900415744516609618831596513618779495982609617889249104139317162205473139362407505824412643984485201843831174754147039495355288897345342397064335838421641784509974221447629886456193831372398714255134846284114225524078820832656243935977584960276704848858332691837468339903670016299188931295089329171368029148680709093807070009894499217755397682738390316614889801374361557808565730911768705193597929774036285013868398261748723138896249324241813851412520051478069934637894878932671215349326007008228391533158179476446730155683402806810721767685878328678371523671002771621055739451414528246603363136943551571166204693381501994105977429317374710946984275643770768693057767708344350453362537594939156513064943486643695036371061851194041918204601876864369149073999366720496465485004617766278922987388643777719605645920831919662970730337191144328908903827449080401925112833295891725781746146467461716195013244701691353862244912728679275207363464592502891498294663401849388788156503476502559310932282555261578585813604213809258426032555557451566786370828555774706886937769074584912480916933592749698761726615049685452604734542326085879289451798642738802064286917780077349636658682418644354764497358650120935500738699000063226793055013647993089016572286528377697480707634920649544098907670878494273183460590555398924140120714156254921047127591335457173734347454839628064402448303843454668934166033317452295386707756125301276635195465772629939404871425847655036831061038003503440834876545885677725858198253039333320227688496868606075309908027859488043978786755698492697102389451318280054378577507168253623725497579651912316761491444530348293637929799425525635741096148460055533608632346353470102475947049728151579646665112490767664441727090496060174931747697993388106517203544641795914468492888153279187148245962534781646085253738000626007375984352320867071625463782397635435549890323012739384652597049004482377970408295512599210156105517802924853719240711707255961674819075916836002439877636499922902727510822582629040257714521955694342112900672713755181127689496919171901086938111125599900873608868640810933275704009960513834054497164355573828263920436282016115644781452115873487370652301434932714110757359931301511641633548244934136272293941818978643343743510866352636589901789409048957756184902092191842587500705226387712033798336512355454111595786661486889110067521573092655589571977503322314247123327129039663795151966066608013846288695115838634916406405215219262638869808380147016212828256782703803603665074533854968192002309332244870023203590456093182882686680792031700689455235131726213960551616416501725118069396946181854701856158385206329833297856045725025787593244282170949812985826332824902491767576697342025213319060672037207899732620752140000731310997508611567190514827729340033176261672211320893603810340695888972020520607758682633277975991577721442779380026467037532584869001832889847411541949653222761174195752984254917593483949790430944118778588030306860728564507151427848927284331371028070549141149843432278832247703932649670798826069119603759702159298752206312438842312281167381727838564513809877564084666559768695220725506029116522903744900375729058856216484684742379313245712560350000490915493962154221686039787463407814505311785135560019206146185414039805410910654664361186717499564552882624129353297933824903116156518527413900086894755597920105007702291629061903651977859081366373824966621604478030575701317417744815958643408270462858192566528657630969372772063944142680401261444280300846275539041848757226452648047475015832602026439726389549404710411871095351121647511980718039541073746398725165193620492333534749318327626458354692945370816810970738480577641732954919746472799897188239730993604834118473056200059753908813871626014445822409638606238127910548845509268545743666231708236740133078748653425058829160562484802176397854014909346061883741401796769955724264705754381770497947788881835150868888046519268690826424928668987392398042747982066824282221028002155946378081783989622277411078000880720067455184430092276657856027887199905265645486973412158989570543810592917062114671660957990341102575673769750031156876197316836883768396507708442602492920017591568166983057371206617568543260279605760128583122137851577466914085508502075114926437383557527409680334320442430357792917069095501983063887669809189452396216183829736638333098086242920364429275138949332455548872957768795193411328289751963028022247944968091733733489812130415439027989559051505948225347368596400830019517457924641697178973204155992273530299076089763759493806932485601324653779443423762333856193623926431499720373156500135154858144078182839618998991372412440138682534223416145215195593124724230121358673153367350297235735566072235677329726235342036591411303040883905838680184315147838041249371387596278264269028160738245068799661851765346888241604965104071593906988412473364061824579963809801027020699806734690917314410777618123909185607582868217854509898565184324156782345690066490137565842305006710434062692911602817706218000332710576178131881075849032494614472000186208666345601949233821647973977115711023829064648328687797861859751438429144919792272699007146936442101707670829634582655847072950656803100935409926115304851170862616541900512234628970232487808313401647826273172881065426550759931163362092443814404895011307733120391901723418992751145952282501446402906212567129251269002176969553867695808994839819142666716918781269813158820279859587965505501023144505077120957824431723267245087360925474901525359364064001688274392017812873608164324958690209274226426172098391735408229715175770499866749974940570509168588519640781115783374944822457614825840308145279206344521711783315739738052126826097381234024492241411422045030627535392439667585487922711796962344292955841718202182993402785173146416212169878811659429872280163580413557709691109094761839272120561337326267904692035169722834493393317947646312784414023321997280297974970528490324566367882182450341593360118896173397938898564469900567790553425866326905431163491664875035663467495472551438410382296640982414506874448396529046993310577809717001009109025567887352351350507821679452248071326590618187468970791502030849797629147336909721017650476953242612258529393340553667159738683752006657805628486416156722786275918135910195499223898502137289637654171688237052463181838324011157689419063092780268618063426723922717771300678248994434848083522402802781545091505114248852888107853559521379253913753332556076383314900514418236026303002951544927301888116318804036741589402794254347830658877016207397588337906713805706196423848828645187593345768765744145140906993510051608698794863750278268863502637957891318561871227007115540039939802899833701495601168439164446529463354136818187033141625024397883043179469868424532117927853387656524668502115466983738649079841620466321637359317343500705237168847184326599828267523167065238043248351386530762206598781420521372316081926334855374716055522840277160638834763592299588809079003532620500137875235102038075526568806323663227267655860521797736505615787667744335467210245286043654438291315223724330419238624340779492406476700665892236003486535363013008935393223413293941972351871708302738483301471884799271938451456890230945603555495508241418174383729449714602264608033411654953873361133441447712011057625530535629271214978041218880393185485258290859458470730919889684079919347985825798783516761389020698351747228557669713836235029079394570143952977402703833340720356286070336585553291253183506169314719446478956326748457523043890194066500560716631495621950232053217678694172680758699818175240556901022893091170694693830599080221087164946206891874167267998405419712587432411331559130177192289093086710791143436857942758305935682868230207316623380815904817498649482841125732649661414370127098570165356661071914174921396227606182604511862485221095413791928845221653446537599332564064617096801205425568930636500186133812378201085565234173913405101768237574564324087388317879516385361025568841521803586861058813857779182268124796326546834309399521194936982925938985331454880736839894314578815467508354171532741333427779139308054316413163002539932243425786421975859791948269036726846433265072688466283902777447764180777945031439648383143265989879598563796800952152728035719206749219424779004484574509660831759137478526447087057228953479562079384052554644508931242604422062803018778784804388041229356366687230967438910437635632720578525397513768830694336502385283104611400933534523286977369995318309804712322863738659266719871442205691527285052083336904183412052232323273158107579753908798326514517935520067660762043722848997672129690840662652415214888953656036463168063204420483838011469041533117990335484400641774286808615533761460425205748945004618243472807235480383789814794066661678695343861457794942702866813388389224586952823058411353068193190818132660513135389445403722095120142439985346291768695084677951528217751679384159116178239936828902218441937049538803925509179423015206617234276126331857694520559423397362592150591986933899991796171871973314464464466732352557231959732449827594314401920588010016017653478037507702646107015986578396580704298107988400637617053759325203809281242561939189330435453761573226938828090661892950214573437373030541030108397587664516667180161767310016033180280301216931127716923917387720494704233336657691569629189072094065725040836787871103799503048463444894730018646442610337918733915277703067698517947453015417000236592972374754312356767406659945610851436422295536661601181612237244724917668749182955641672549249957316586445581359797292373008344451074372080405597088904109509513084768450339434335150683008256662881856511977828646891482586478805367037461779001185752261823113120220366869891780494613472932460421851398060617574577883308036910777723702693931307109678849119275889259237663611969796850322918442308717633648631969034913099753784052833113112588996343359460478850986395179065193551453177388578720990689025208664121134701456449363830832535786780660807888116949502637838748578309225603618879454310724298992427495533358614694393120617337930459571547267390181336154947420072339543637464927853849168997819073818974844168165393057809225491357719905597648862029922411460063804730193833863053874024344808332584098546698759658880804423511986548995746675444640850912381038582459057657935085910706012061303012755957746520560708337321315135209911410192903872918942872385965083591642721881296883063966984625732028605111508086763556524962454406869156227722403274293522554059734795824358126542437069398898732408472496608933782858273846449932779600097661169645419036616969854078449931355658680129832403353240104690289273067283419383590332100218656320770326226435177965127220367718378643709064126260886179321510367557465314068758279615707039333529407568332372988816241626473790272689283411640215595888634717473234557901174288307845275300566261959655478061052707106071139745205009520779521175949716105189922976652508687307604967768505105933773275114512938953152508285401291103161178169309543406379848929903930516822250635254355258074878925700918804389654425428511957437045423434413122585113540715739334710042797472144660203812616867081487035975705518526903658564462043477672821727542643459607807864810560281445092652710617858773945813335148366580970136096458049634789426195269630540871239535267857190417298340520108296003503633002113483234595992670255824963090566597582977084800380107565647230381809703773866767944715916392854736756772904812456726945954103739319597183980110814792744912791260433535897983678560326690235171952130687275551242959830813831528445862968091762646492818674973438738669355746574959492065518792260529507568365732441026772528190320027892793451432019645787002876312588613170006284324509903567560881516728311894231532177129917614764665469841089843179926798597403521183424546033722505239610621295143441152318996972513808216462627116037866333643271497035068300908784098709791654029363302966986738180764528850093044713081276273266709196364804765270690690803366967436381824070997350193298818421991704249725502755821822300410203241837648948860564320276170153167485240536957175840562330039922813706071003957791063373564594154448726995372860873851691854322187880616424322249375992750770926549691326211394522134240133604926622875670227329291899657336143344198711276866875913364103512271940049224993416559130112855814337902078860043323272883284485712819014170760289778150191992038885539622127060062052420518589230540082724092697851974238028644655943755943075295832138495111213094403082293668727381810372304495456453860976447972717975866088384172279373320627606469370685757968213674553069096917837411872957660939809898476220406968028907202143134289278517544358047757708412050361485709714359947556868443531296214001993730737678212085265456918938902783344288678991308821219530166499640753937979173124030146060321038347579624875730424705824042332307806611899881875447678577866892364626547591593728909462124410379087997042765807044101897756673105052476519224897938715290460965217366048225714947884444377796585435316339206523524624497349252690677834084079518189958524809962284331809759491862954873317658832350308087148618417417310278084928610674453211539973097551574145972852535163062643704743145756961980745560795196396026243075393278247519327572571546662701458214012619445613564022419914580450391048279097759909316350426248668374637734011009634484931862304097146853156907049720271726556414054122245422458234781080943801763753150191539766144852851584819029873372277467021840214033089480328998032276853151364721401872419393502693197826208839306777873879256989692960225975086270596343040040005512164071939980753914944422835891786181259480034414922256433267380000712519308087964758355651907465277661560673332609312782425096208350625626154283790962027902665260096940336640626176249056817680522771854995118987001917900890373857645510303250247909318078630802735133143702067281060796639586635429675109407445144802345962121199228632073182978555338778872256868340544774838358278126853629437220788908945826599826264431348302561357953064073934119842768033305809537791227683605865609630584029808058014152842922476550777418302412632026187292128050490983796793453386009010820465993407206579463009690058116484849056376207953297536736213755596995541651411713502017594159804111549520904757433889160393705446300136261291770414830698472020869733888481315004792059171199913936016124878118391333839834935179827141198481093701841754334175629910630977989206230251418579101071916027471717439866829862604930137238156828412914351009769067677777179273435316592736434496837093373758825637532730583224829194267180270295698098622526803145653918096052091012547062817782932732008029024905833386609934433834306588546734078046145604253218520201314415542192510687468914861908497311116196502159994607451673728127379171100026721001049774301074385892007248294751976107641529309227720683501494427986801245939199040215604711368247213370849406563129871626687700239385873342190895258562947235206608415456165956242182079777927637012604493667545955662035784235746900118149077349513596385596450202433941782717898973051266741678990291531158807066522158281297609240224636672043583813896403591366964012756708120271946400193325496364451262647604005252876783772601984914887097822824188558533413563131241305174715520902699746597602559650838834287675502965190262833199183235597920645323795856966411647686569078160779738691159132240272475271130508042582271887351249326551051497684711749471009768170099166005545768002198182561257429999696961154071566120145198139287535657078050087803021748784231365020823291474274073473172595491710651097679573887994269196969687518242781829413674854109234312614604970023267689133930760849311925101188098578569360149455353881609731638293054658563153952002504039555742880353796923863132740746699722960814814989112803995945862228056562042664888278319532881233803868467714367277793749823173285159247839048619224732594431912493735172666745649164855383848038521021088287354233321235575270841084024417498710885470728694049909813112887653487787021827817682032947691992033945632896966584273068761858690851487881492859395574522558292990152463616551596334797035211108871972357200812525022457622411821269636261685631901507652379601363452848090181456642698711066975773864473356491514468841404662803809681177464003107995933791848199322919266079865729373194729493526635815687068348579694827242499335178947634123822849164060273801694814924603944187325919562711423833607828346175975172253536291256776247219981651281187447169261705782592988980724015838211380960090287502912571774732082335952142124611395900913791365791167704236291172313319253534879357243573823985364088839902427911046370761901921089588397128731761757234302665577910368048494479843830446636631328089539888843338285949551793378583561150117120489656101588065963967502878392897253101991914993580566198799457199088074019928718650271555018104525060892801206547176262345262147892960695951894593843051419217834931010048129183577230524929280319439006444743063486334049452518410143104792195601163183551329348052218672080163301741394153768340888061021588646183452381262871348491617408970529288081753900663384012760976470703264758227639697725931484475605598753776082558498617667243044704988749842511389055754427234970338673383646941505254303074284341381643997015565723357092230840373641211712594103100757988738968573297424731974841811706261945022565212707609881620254565617269400777505505249710817700487053996539625518795576558849793406210034719449765507688490572853720337534034095179502971645036941669752702360442422639868668336893269247799261815573439450646593453807453204280871847229041239063219675130998220618386228460992902589941975566992851358722348681006422508148802052834484577343006561967026762998000177629115625292827023469597609255378421961683097972257437851698560165442625348438064087659592109954042471846791008323983199565502027083802241902234242234756405525328816213820665029081694581508096532830485380931434615520956928966733718586661698425331020025214007170700049344678373960220492079392781734706175230677626825914217967162315241894913454247943034293505319428233111684953959150289414711666294283606575314204196798271258976724814415117302051561360895106845431386913107383035792584836650340941547498148419290879938168374920941033866775571798152185145480384343939443040434302683367072025481199170590508391252605431315944678609743356602332530635343020249555779285470589202578046310386811513758241154103263486825870663082927269576881520602115429214959451325623305937526822657117235764519907203489302054254911509501244513805638104418020630853992563597795745609409985784642598435473422447827395924872501511115734541100800475542784852682623183432334824002783985837277845142333230300680201964226327564191065740793770917444779152686636569565058852323209401136502964877130486644632388624923341477082895525662057983264257900741272384238949783310757530536908281631275784678541470086548841620900318976653661704091099794515558617117376553833792661311134019121433622914775457740951583793422308055420201398495319514751652531634700740482882377367543873132000551861525388248176161635423641362728716897307765189123358226519390396512354436439220089640266537734936519969833845777426651813990468009046334983213425971680041658998249333495052348567155264035467795506849941374312087598062294592836526531254008507696402072285921573386858105817529848480820244274747637160275468636218772544939454160946962976574429942573927185241936656790652638766609043506481736082112996375716017338774358411584939072069269456436231382424166130198548406471166617524119175864685937724773212240186770426854143661604074788039540245703804300225081525989526873817737337761095815187475426097126537711467737613022756217244937089753259169297061020156621674612279155564622381761492814368130574034710170076181916672073618182759009465620688456716368838829576184081551578006960077018405469843027562052783354033759447068305261838616991869266481446132054315443268809829152617019532820641095217985257598599991698857447898164508043600624350705358582733578903317132187483325065451489044829610805976165470492704368238497394292231564845271186467975457356601134134951624029774101466589261484879054067396246481256302475504580616240493817203070758781671096605487034122116911130406499554390134909490269854964715553587374038692771564481860149791797514006533241758361022060472140966700020185737805190412241695634440106590868512255555595370310253137066652843757095495867674218520626370876246565752884174949485552551130858319950791812757504334905495519769499357279269299243626089396677155413911694733111853789025697252764764181933759520487623374252747590962852411673557855449204743631742992160140583459915288238633672753230058429773685821195611132881059931030000873859728925686757597414985761867113117786202787784258488062338685889729127387600419127192637803476589671603732909838053943802230396729480132195073809991148331703654231641014476598813314816122911112310299150235784492430143518986186525899287732373485205372204357424385761568196416986069752075271274196023423161452039702239031056367055938186240318890224304773693668013188733225009645629752828526497380942176170960113138974621699757901925696415493752861071756763092326064736215668654542664593423273831733610756925519765072823206433852792966669296604526284084242305432044944019486578440710617653201965863444451354713572651754298984320300904179508769292873904302760858274822393766840446676333406756199189728879448729944303849496458327157937305961843379135895601877159332733368596348808755871468239440994040283229146599911531349794380597604229477252299033527905521675687176176692810610045262793365225109572159317390554855218634710641173801586443855084743344632051245050317883495362928842793017564813797104800856713448866046379651586297736196092169533061511289707239154800301993400228030665304573365502054407234340979099842135661874448529272685264032362693317069348056958897027404999459886756501475591184732409721416923145824532412594615394293965474003225782507905378051743154948830641951852308634109310167216030073271071093612343600857677952392135943946986288331201069116524892055040913376680865566143178160423833855162959829724911294220541829005006835380587596717718316217689902965036015517717861972036835258342961389503032062158203941890887366948732390344711192077571998545219780004290642910478858408088176109051358524487355712629894176450835605938854040447538081877591683877114422533306339093155953143767191188448480471288770368936945533471927604071619029286832783821736462961382718735637991338907608206846540073051857064760848617893068803146599334143312642446365943313198962499930899044673516998766520194224225615033011969953608140090655256526227962413387901211310829543143833293325214314868005132007464401000054002025966100269960608098785363667156669243372142227593834645190450654107769163192753000124015704733641982413460655981902488265657848191709906934549826682977327672235305561807714089807703741666183332702101362899065191713022060132606150353712288188632272391473846543829648307204203798023065739890434648771418375593257172489690119900475988097074535898051103777369709526522652147864680756464596682928565288027067872185828769338398661813623822945222085656321877906405363476870361201003859941134187355929999684348292849885722940920002699836071596758647317185660127466926856230315594227731724431468956667142879347328893951985154244220435166224778272532892884247440542507798063075403404399579876413568750453430917911999485184500286343352309876132876293141428979850467348594289173298536982064052157790508207085300200706163243357692819765226085521464575182478319977904495849382382703707586048143784358713425714994217274478193437910123055171988919562998006394169144769530872102694325533343400589760169071813285741021219664688503817821846519791209758363533309024605068775892747555911065239500511407146874024024832174766783118218276635289273719992047931112166423814854268360860765264830409406394891096438382497341126985411368079615931268182272426480174893709778059605860505671379520626963690999215215760516996119628469731255402933492052577363437432572522430377457688040534604821114751022638499107372832991107587829890108780538920489235310731635625546753488796690661815305371910276832215946291874177732578815264646739098592002957604671061128006141630980918603868788279750291840589472756755619679658126784433120087092721685817374323747825843291948506338329282983505702005314676091563670408426744503536785058985493130775364203849157010372774097499743350882240900913903375585430963241364074613748403395642144296642888039082072889853038873354133010767017948572768227221344106160277190039958727926436234895291654359103121471506703383175346009603959308475386629568610428202910116744720942856016716126223120752360759509833962451636985555744932943835762703200423312575539300631973201137615903271438718885888628731472422894302192230675823278963780342919258853741957587485751483124698959160674241714781557729364060257571089862523413536569018999412419241197749944704008970917340545702843660002154409105749205915548959314785577001421372837451636853979008748915740151325257197012381537779838892146622443917999547023021097934622628823494881853398328512439489573965339142844097952328356750121811930783437035361055403032876757050655842841463337624633789915815913229632320928464804904946354104160765637288808832287829337101354617456113631296348696877581565682354370029816002621593974957732010204605435610399153202962077442402254978801090194422062242394672738854924193004261166078336448926016578736692372764253855669908350249480446516784244730414297449671944910387398989696757859643069327403666627431419734853106800958064964980844964412084720890832823865172391862667197358113338176690235652343471508871630207150613213790230298294718125355973218587348978513494568559249229984122617886576746057904878550988112193428023384177423268612619924972330858249997209586013990245793986982167577659003421417141906518432105519489559602886761322007513320774044786881039043368374329710186953445201444759223323113248834552301296359101270105565039752993172635353053306845735478831733596784551057164297803383841204753186781751320510107811558640513817658519022539499827339167185777374603078795240808312711902408167067855692372377218206124216060850047513679684682045874685574401775321106750426128198641026083567680790179003233280594036420468411476108031475512255863896613027861430361971300294518372232373288652043884052901567923699537542951911457686088923133296840805947060866852146534770729235851110737235009538020920065548916455536841191725360153750112496904981516449388182252092382494770300686880959024317807314131617558032220971998007175154994605150589685822756841566996000205398299771638958816987321910553388861594287717232442191192779508270593198280222471219314831092035767106287124598374119659212601676026995213577450362390131882669756101746676114888875663175267867501216445330042087293264561100207225943743112176785463623179947212769059691551444083961597958992349275744374279572998339094137236226326782360065832223004044140114666773580616229260503452766716469481085627055143775434137931611365800781051425946325176714702281577216633951095864047294220454821912330344126170665663451594252586428057371094756209319885670795917904578610972783079445901941220548340151864467580758498642743280769785400025210499401806065131323194183980557755565321901331029816211760566359307859922348862327164752116901907322767836518704660604590511119676391012049070121353671228643330104503068247828985208620414801642747903632361632045803138170603476245962423735348245968724103171907959303717885618126189562293530628675642314477167870145537036494825434016049490114827396208572871260646717263164657031746680810942049230997238119065432171652108339142672961598036366467958278136171540385865743253805920712791350923401347437321535492821326359073534601164127781492317398183895672865643899086335707233789893558860718868272955884635715435583833032215025678981410653875408569486401314204843382603198100147560897988329869990546140018313622297761389588124293164841330264511156823292246167131469582616455711461682560769998717645393122068732435931664038956456086941161870714475944273883414892296920325729334501166583350426702093271325810479281865110192214509646129996190450045855658812124250902772503122970270815931217707753716976373893592167833636912104229482074364313101542615051301576023115674694073880509895581083563429551662179190596575477466528819135702223690515956974004050887989657305436386561698445974039682933414096936077551853605902201239344669391756818807202952213605649336854241012508951971838032282703295134976179464078552943047667979401446784526878781560650096912968159224694408899641803993550146357097503540683778999921499809045512233433472568167971267558936574150601347667608124478786962779633392981480368678393081541958002354351279075090914678425924694333837057385365851697167217869543231576459733039825088062052394882436982718659187912903778291335141613264534105776417511793504843919302100596292806641403910101545358096256733597597975182711670762438586223151367860024061544302280414045966030525262595921449027253625678923159091845501409687264335858622016887080701348210730037484643765791638696512645872500974275561625247788490509801544242638357643949468599256333086432807394980697460488835583437347696244936735560731819639290292900240891960920094642596772797263384342016466540470460494824528117572827534296596340308660691782707833607662148959980834120989835295012582289835956689848074008413854597925677787857246290361832612238847883614376156741956145399271079668932531922744011999762898984391754402277353889271378516592825055014755915120609487372531331368073320695514147498955781884376916664411979524601279719838241760298851797675696763549506483546768792349876595642865556259067691413656616598123703088261800452601563513564677881169681267714522924734573112486300745030926696490196302943151635069069046945706431285002148328833016057966863683222867073885324595003438617151415574546705625572612841635553580785055462182155860915457160745923259680145767972905660640593279074765222767103237783677629501257914430529786934317317744442192746980607403710893122813640437785750742532711364532963216614319899587317486454198431436194934110172094881509063760845794261773165965172985269083493592494042774218981501208058048116632296741098354173469410702596342146609299318394541343875064461930062419637695710772782605681660830940219956547075010628532713829827136444254572600099446263264221206582012276278987910123657666445110830793492735671625888288819253134648618227229721756656414623885245299992513294147160980920479101631780416544587877632261034468515223658722725960635905552726947619413392667709219872018173349152709253377795547885491704380714094015221952310827610492521343920108769937260138834892721240829729748519658198948144444199492406244065421454770262461602597006610330708946776957858304395168482092628862200999613941968708057243770389947682542879558453273421096102271643346851532265623466359269628753274303614206185593712113135828412464579358416050693567925666560403220469616394357071833090313787274474969682584393596113658366331683425959484991891378136133847491867304733602624089401902415220561061702019588765700941853752888852972817429008470833289286785320029989406178972019845140094907243942324758770605821167851847557123482381428692709874064015143837927442235338455496561388349497943325958363939644561559383638791648211524735955015290451425299601850467516091546593375964055911696401108712610877990771014092823790770536957251669203052142248521839914181151486325777623986521308838493263187171462267128183035463730647127543806083309566657258118921064790027091914081784858900772655332278371769747044814565570865863003746254205615926764848591578400408738279789873383438793158048213393589049396159103446517712711250234259621690479673183113607387497488346623472572961809835430019782168743488220350792113576700626227916150967369610138025466671976354236600729274962142203888368387267942448573161278344660218996354917664075965039262740169092579054876650406685641835875200786794106561067983873515513435898257488158225635509324311985794855266550010207906002062816301689475544205083108133201808566022009586618531201770197622528935972027661701293203573091902545956504171419368468122539140629173770237065400921158599547028947686608083050621318755732269236645287583229266134613597927857225170903942254391240883107487270494853373514097493875584871137665932182911911615651863914984291668656356219230931091714441257194611376766749861784372371408254259118694716192740796155202879901281977568005866906372928139729342141725409876676270669610217557886847340697058543991379397545596499470093393547986752297676985004873720511476143199699338762645688753708592665572955201824707699538919092449470476921654701926700909445419145253311607891963855168676082541181578685066506450352244331642104963999202345921932480245020512643073760554989666339098146448852243614934671536098416645046509057327780865626961096900729476659351209997689231326813553657241249752062736185901779035051918252949653353791870516970431896858649881326102607316869276169174124565300230211802414903142579789645035362600485403368887207658774834631397068654116401876001799393151739921141365883636864340762049089942034655015948951372482326197121693609302956391283834722075197293394408847248269538060120379581861319493479269893387416537984060569220502117666856861045505596851548896891402907611449336316083003922066896872729761252931775955424316127013682972411287020777550855462714354999288935130781256785639129552280867308735369851869018156474277933649657185892444000411635890125374417596567214081188290901584961088611098743674139214026208242862657680056240334741956004217474588525746481864137331369495551277985247807316396233960056212511255197864672437507394876693640687117156119514127447242277390771768806466329336148786831844535945378044460039469334204297216209367745592647526862795798098633962218357704338889970115811285184617657423098938323902088352388152758482271453199611026337531780637698822958785536580246356088432663125772461322499234062897748010376092738840442789270826947951981203850560716052100608805684771752968170705691497454965759082489478306371087710906272782191994457864693667431637443404834387600581246532449111021187395242039557935660552006706030485422010465096724960502977341181166032732743101074610296278401692214128437381930115651638459798799525049414681515198558460760945585661579426382271064676576679173937266655848478689532353993432399305863171432763608708858496350961197262591363408466625934058220781752150770462366630449767878843339750783042938082468160941056234741267295578857521461447214815383074544686626419474636847546964710123795154993785578504036530486617133556232875488446422952785144671175092822213683368402639491703326088861763789784947928907645806635732196263281509859670298789739672286501457820875497332340161202833367149557645599697095048901880997535259473233583955319526101504690011848878197910375114310234699092902826235276827871241301452979554012555718219516087425030555999762676599467781448563109397503661459677514231729281817261604562840295595928256244594803645429758909560001185045894000417329840231076087245605634909121128778808382257184407284203524920953062529992777909802715935992041786422970893891957578740618946293618074935425942042423824568411848773523163084789760625844847977679756462524923293784350111266875896739647724226312836043294921977272745360055491894579839041799558294614327888349932346426448081127494506328364875949128380589753168327936749399182982872382309493810585378528928402568488229325983105910216747884986782924348286358133297385943373040526480909924014859249474013063998018638895139862485074720238209952532757768366216044253490830628192870820489227180331995459310607226882830129857672962133870772613810743153373936674165673207656595826131008232280191819855715549813509142351733633585985120451927031745961862632827146812692044479674693762172532489604847960148015422186393715178988013402617516001503140885329990625552752374251871001473469388592072184852801222142391681377406187652643719352292399379604585755085377712417453255240933796069404930774880519007879676761944446272516420451977573957305976693119543342182222273890449892091579770835064803602824196149046954528073464307032820757514690117763180396814745724676135864273189496111785263246263318634318071271246504139220834548848922023234389202998516149481820613106458984738444456622744526486796406215912509908305176236493618461653953604285306160326039454333570326189366837272840030359112407040793368247035224290661881926300126299801425432312765899098271997910078644162493006453079424353531659008535796335800708903595278311748670153936955416777113282907688633911233301868428184046881400803186455080431968176058242761714953976379883352779560154293554252404716550402153279843832453269335185225601997434610128730096018852300739081710343095809461240802231692308114402365469967051833366995379120679425479699462487807558332006714892920399968298314657993248910279945708754147771935555892392751916491388874101673231028804924589418490498747213709583634135939460227273620890660202044730088706007163241964719646406242723929730922949207500575979395757996794641770518664163286084004046947582491672045668567350514427669723145220974179549935121883603294334668956663602731417319989976408743310059633802754291445827830702107713354170251849686774014310782030983255832446654827716852087774561909350514939143518525992828799633052869942263650236835462263694932856781492309970962059355279931085010994797587462299401575329720780216675621499043750345119596708220594001719990402907619010126916001405126818954696284489135679001844915833321417668746545448572904172849524778957868203327838601599565728450611081880782115000705748453823010093548006139924311641651399095808083970982633372764890357390756013890286132478393159252208564918525067442702915079072010078927220532430005514859281759661005164313433533770063653192750432286731326689500040518094154920978910774859631959341186435280126009404606040542971841733052383265515231365283486355169239239860488395338388135958327628571310751394532741777663244177566852872482161865916529036790859162277966002699389134177767392548140887099925813015124918531650882475546071504178556395038208082251870540269579517947454769721307756487218897383562806581502211749288811537912364458228047765265225970066918283732331846881244851238435897828788860336780296752507431681777277268943104730789632953920361479220971593609867943921062379820892691145693146005221319559337271167379067792460898169122840647168703378112133864887913121212228103330927285165752650646601550253171440248204525057133690305053366283092423627932563370004339465637888928504078807950335602918401508541875345094566047233504994556568179759510342734753216202486690115317059448512596264403183537780812643476842223822552552846424143738199486872502886920935730532558083080080416298780005766258885517559324030570286519205124415632224566043290005991776865751146476552065125617522470403577438288234246987710104636156052650844793530413712172091264762287237004311628482672185053335757555762790680533405341239425922676595125213983573566211557498139492163889520598910629900902065245843241252687153583451365477747711396964521427625182361704565429362880677851527012527088331286828431210189945338237240768129312600794303972999374805844250920036439895601935933705657445627136914036257000247774184206361914294029150461658857417702549558504601672740955680030149052126513822737104757605527172323227608715782121470892291391967112212503953731649250154912582893921729847088534042569562088112946732095319075321318528103957996050780714961861551186102208728066473620724576864492547687486136831629689821834744892595193070129448260070292771733572831769234031810179727206121751450982579633016029290035118016179019699416888557804364193812689744446200160232315821797351074990833350030599889772048847854951999033437091174388375398053106690429563178094104909695094187608812095369185964849695895051988401210039107479758798587722590845158064741372234076394295443519733266528638877420642499743465991461090752384891899527957620074225820283632359145934686718611618350783583407719661665860592728656257188824675922405233456473318078067253618107930788006765645947052426519940452483628798553086747304907632612640151646108281794082347698469489513613318583120646948491730220197528420583156519106359035041600464938039324443750675468087986222865019000419166970289444171039656385250419028204561501074965921180408875442592477135705521204297303624713813092932386411476818152948518657946052984150058813365366388791118042006733610630172310665512892890724163745821659200185670442781898089748868119830877832631230587535398296052302463404590493754693637115656406702324438984345083816753146469439153445930057352252733060743417831644467894726150008504136649388671747747192794157934939473978290620601778120059837905881599610451809103394587764466682547948795852427398516325395774506273004415848092185245605665660642978459883841817852232415886269494461062934782405478429828040366166194397552802994617598056346337716478386687398622241382686028690354496917915501949209621133180890249818653233629620449269776772703270104071215126010919316758053329105385683358710554928781138641318711644019091839860980155630353884590311335967377831189066878049608302177542972546541643691724361140597892983853339208036463438756644403018397167091402254610528666394814205529623841113797625482276132777749721601864779911655954300296237703810026255366397139794356867068751919871483167669351231020172586034338035516196680576377917459557926476662752136553173292605970336448010528440356540695813906945659066535591591317159935271057579809164873241331523381849406125967159148358460777200066817548812325402308937459793938747640332894719179911179184465685242854269891699945793833928185470777776230695602432222518223054741077915479333066882673050398197006370847628252101916741859910423535722980723701175118465945511910900472461548206259311153337452570475172263332523582828446446098022280061867533639162883011006030475041990355100618770486107250934032332463291343569284175413154601530334539211583545666066995153611626733723233558802678551330361395141510597113590390725700832046010289009091483848795454092370232378984405486294044627103103660187511661193524995974239546949096813542059703354962363592414116524829678945615556776236526993871969665228992823658013850724440247116870534924907632782120839950088497053747247420487283289294699410811656886223851238134253215072734463460663953902370271136859008390326685373053858291805995706208130181621345086144810123523146634110725220821865823088882436223541260213920340629706507220792758121639814417109774720804152864099650502367707205097801168755283533450775505498790809279250170466999364253452664773745570011860794875679483662445707678616025502632616171657351580871353943239712995334386936187308945707974749338409098829226307542185587533777328603915102082495930432855855075420328437272956245999109179418821878377408143096210952503787056913541076103911872561228407339241721380628412355405678732274070832564897850865430407256241254817078893055392828854215858020386027311459662108031595183972651147161571656164616005078380933508899821608011966189390395292538466105106332456825123436528224784040603125524714200221075239698320235611411504534631943698717124836439425174268660445092198583355476692334726390735462157384796287715010280341633105594223318283004975332323671680986901576228582490933061694385840078885339305948879196633450019697311494557672969767213905414906730576829228701971908769299267023142853738169940466754321202273152144349448949001578340072468750300443941427384736990119275147377716189830879532702407825620077205891143545102157304592463624707062900608504427793915803513879481350221146269488442128796957711176468551072404089543677939523876778705572387807815405381998332518259038863064067285341843784153750519614052036401876492803713394113268194519539921690813238846415155899491398764840589746779267637769013258472971752496220135800272089062125721880399945180502201665686341001294155927850263473237915279868100191890619795885558324300946477153427658601611605610343009456040489774674998260741609971823030362896040070418141198301461539726991629734251774119279652021626138385505146328070736435454219864869298909666178238188485307443007709764305662846158033027510836501260779709923375148991929127194044006420712750273822628454340657465827846618906326282965685491852391654339562892115964488703850926762983961798510303975894642393958847332741069622316898576285291407290204696557718448132903329093997008456894047927345353133846581802294385580967038756830539437345761005694886400706458009624687536102723953647340522446688895290249806728873615212310996469007102530168376600419495499009562454182464974101581791191500195109654273826276303188265944645272135082048268930598277257285805766777907887443754345473577295554886577134176386024347906004444764537781050348144137739863252158630084225528928596296828316683713836187032360107714887344981614858183027844991552192444055727039294131043762132873750839916899304222578237986849207440708148442573082008432230941000941502089468726054412522812855112740003992833845327402250544002702303785492451332926835035785038615451685859474168697052445742521020322198822425617654550681823472368787631958715771850268815933681761198508930973700006648349287144534721018922818792778725082907973317715318899780057229819708194157732702222332019508488321140193630945229577193094107085100379131423080692305356572347582316352201721359159683448458017990764503285305467916807556302880799237044708329173796715458157998797970707810325776833005931640973709921226948450302864989146176046549808831794154811507779937753320528169065112776795541418375927796103505670471955686544484919131016878648334251649195301871764186780946529173047444084724276263945953883549698215261854175889487905596239146418582658036179245030160416626718581599336062475079926134952340640695424610821887302369673576724944259624518362499783878838269911098065856161603855029039252944447854438405155945790214709078056140798241112405963041774393446089402083148069418968545317904111312575907779343309414853050997471556341045942787503012631368616385830503251979901660107217836355120756442460228406026600871607900632460912985928846625785832299232985354327019834809419110328891216582353725342320828027536075503031302684636147693742989703108731604097808860642265539805767548124586529980930835409863202958093618855296996870204916968356472622992126468080309696765751610019862999074099777157883559967412687136013153727160174341666512245552537074432016821997074919455488783889764295907341136127877556339810448618036041822610446732015896991332216824595461475819552513316810705773761118557128360421595785089235547791015625211689718933275338541661453021625834351162615256468920811850259393078491714595584938348725426206519541740591570737016985665074321057547265744549128098510997288457847510704359622079992831868337097233998117937429934012546161710610652136384134213550503882108370426843672589011355733156290485270410788538025522034669624450960706000060736002225123653805329766848754109912308000000683388206036426678676867748779809723628858847333004114334066250680060411028239766981586207458555818288375527774648776387256286936400292679264412070855496795132095274779071863774533873162321689812296993134605534063432134816138165772874791485369474614863914925204397753254450198976044539188318451660770364150820997168024381506317249965080828597547850147816918422111250924313673525816158705628587312603380483479988881554916969491453125654304929313557843847161248900052990872682276172767182013350509451753601796327070901828801095539203153766274678866420763582347712308198065543175294680860873981659024469886595733274393768481897902636162407073113001734266165506816308930725441220048790071997982381351168858519880362185797108251233448667844818111079777559455687220603194091140861480167235789059696508823325635218675331817742800621708924264175270919479732810676257291565463259234199545275974923108036455777417858981924425387295267648448694626620647221582852299522514605184890391783976118780791661243487463207669280575257546189630208187187795871990050829224163994257874092992872598110325487816076683757853394317147142296223194127162757062908354587449190674787920324651270953326234530660519706632857388326734983921536596780851910453115334011802767161086004515834608689961487120336352876434362760738452752527566397035993351868489281260865875816382118438537686362094769519806994859981463292993562706372391046412842770817874642862583320524628813118709381795303790524181546713049700068784453160214687808499652599747299923175641393205406322632077372054197066577692795165419394176061639142985800029574289133730809557738090082135019671026715682981255981184660205296032906620396656824584296557437646657101633283676214480411537139384325707576307837636647790566812389130721531167457441014281922150428206267755237175588383128434011261669084197697933523472430283270739040942869430707273425958977333607441257070323842276079270084872876739957589390192966777853505550121030538263765844159035058795905270807294851019205485141695652147041944627905472632512095424047094562038019311704061788417985763262011444910669892318215935977737140962778929051470757439386929068232407009985713431544184654841345872044873844946615261458444539530675656289657120082179019305677896019299412901805671555199210556021594432331603079829063611860455200703215258192987739517224507256838057040006308398734293869374495748162814124128696859369598954541339031769826304131218717892440516129945235816428238445114217916173210581827725888725122616353078134103930592112522803305348421762845278781069675716034103219675027963385137152352398502889686476446019522984101605981647914521510379047139015390364481052209119714349785655093286165226759051032703078671216054083450767153790903628644033695576540396826005132805423583840533237567066922687177465244443003229286522143525202969667867174654493532637267268247088575119297822183452050076193934479895697769679123408070578350982674200897013068098004620435778158184053428009462896032006847211985192354069873163408954818985860440164527504605647973170982599963756447921759418720028407025476967527797022120945216293922862969986954018260931126963890115940353504441289746548228354328699958401977755318213266406007888701765646858038227451955732101981413937975795541328650204990857883053170406920235368560892461490718948694227202337676942928486902272958237358804985715382937746879481843898457872461127601699778951481527070613557070382331891410536705562184893745664766667460176179557455404375349240594081310043582316870795843835298210697428881287197431927991152297564692532249599924991984167696055466017356655487950194947907222648838680534653851120916266444403036234809510880855145306782924828930427368090190757425429690581739395188880420566907432026926775038458658239393615754509326263384544467662580874952930398464595219345068978791172384385878633322736189958845114638152861376566662316626602644489202003295876012781211751893492416353464788926677370771135888828558042287395739196999759342045731519252851129877935807140689492427289983402559838723099935727564938649896058587682622941164128150628006989152606936203723926099602608451385070672962180164570457119535332767616884408403998902268598210302025504584460414136447919283471201298044995872699520483805034923433886321149689380754708194002379087186573012693257573961683871800801614880297157373185676073419827120236141284748685127287796188267584997435040602409053661961444196474216857247270880698158184980154218903918384190246777588459203726771361048765381108506176609144843095577964075307940728862018954392802399765936819214579515848553193062621372827380806692288514153171877105376700410731818280008077401231096298747408997893707740971559617090369425096912457914320227466374809687132646817690600938617973344907668465549770193152427121370743752967929691967957267023163912201287486833785431780514791259441205701230925617545432818856077450878611301568454159385206100113620288342905142233748854906734177192961503241403288756823029875039925169234057450667534569214846682011544677241105602715872029743179860100215108242182433202175855424960108655885063208527166706102429093618294262156871070467097532337871022245587421303539066094411890518618010498829448448321856542938901322648267465317199164549788539276460798754325276440727063008952464720873613232566899807568881354745340191742047875200748163838662586677265240981109021084970257982299165822762905329657860289796972178182412763009939963614773956384200491307365498348782702667251170769822664380496532125647711320113550986926031414597512251933987153308150206939298161279119873082107391364257786354785095902061858412735861166575796868806254345918445851685753045419733295066100114113685507519769027066629086446714935956429877320607946517044575307090586830117718753928263950010409697983301165564663771698981917378793459970803395804736665855019695612254317705267073761728214891509715452306037634996907921226866781300289617099696870481885582091057209122541642122556566611082596067638178718059020529753173451514942478039020772197821722225700491461696702301426588065473064052743256240953026644660096937114920136596414685180454281757806446979386277055021999665417499275001052257963661618297599784643085451103778029183370833118177881277602540943513383405907810113321453113618193231718918673810388908126951749968039452314903315503614527645803898842836942335856846861482944706311356678215940085279447201853434152530592137435754971192977873834651565517861665093646976851577172813060805866452844768242003868315342501800330459926806180187898416684470628653083225565265435566335908759231730981911453536051765634201464927219373197002842131816600411635607991663436438930718993512860403550971440734701984090513910044688104226926988742292487527329049696343858699917332145368157444591422210319491403364112308930573668349229040400048806685166000573299483408838941150703315105112386742938528501827555512170318184401361513343904465769448931570597661762002593385324136807452095765823606000061862999550183081685651723772342981010348255641955181360396419084948963752835962351449537614301962098380487224248063178008862138098791876771113199984823680106516104520573237336428878490511247050212156415190018827276486181082936082275232049637548222328293898185026355741206044289504754946741966189776003786386828749851669040589175945917500803642494691883047190817331030871280989431699810001282333922030636079432474469039192094555574621522239821267917009127191080964125034248505950790009117983527725148544422679375892848482213650176871626346431590677047098488614964843544615792256616291519108393614801970445573982078816088595893885184045567650401549549153663558399794228855208261290224785993117674321563442328749539020297482621035980193032055965478632265087118388361243694947013168889974869369576257300353752353612981658504713838951340743759956563962591215872358530346831046281270710666712867141660946231530505033745013769111669086128863910730348960327587162426182877801891849475631840280108063575398893140189778090096429847037243875672737258700288712424275441558770066990471921473731364512915070550155459843300605981717413790825554244541926446687275366964840663531431183422538930499061604834204321412792424741882105743984292217462959202039959407329689947392922723095288135709431905646868087383282788617145039975611557866209985429777034517988951605285174309464301023393437678932972344818298416667300763284349014554780085699837203848651098921474408198066455897345961377941165838731002149159571556833811099397984559061405366278878770471460363234335304595093994640653222246093993165829121048327183351645988552094242012539034505395210513799892267812527891975709044046143243998759002094846262927995833477605642029110885799833401519734187102969938470559993251204650304915673814454221323166125034534666050970806422104504173427291915450598079702371059992059869328928659743282207124872313363362942614256418088832274641868157821815449354819789748400605100024287902635688902005764800261055018704174634636001471330079350845383198054114060993937649569179813983039440286396283850458536224372573929818393245557359524655611931236885624965472124156531405303992248430260407490214483041030835414209575718678422692521908003541319893352232961648136775736262989188276358657892131004894939442690098783918749219134822755192182242897010051654256005070911566926196662652078822536211577351339265494141421086324436140766442116477571305363773425512275613337871270269811138586781967212988457296493723957778881933968099399089502365894551507821737451923522574707925852315352307892365501135516905309055417382736423180765012023339177704641931412316723721226193419544220583949229272305811641050375644339751941299456457890477731865677985184434409772020474710237045489849451256413466465916563677125370447287703885302865642241022099578797917410489297540362640694556934255649524631788280728409882344424288410638172637446290325316036127526365625525771281245815135453319052042219519104951474332913987516308230114043472850812471395698940886208011891030800599002238174859426884678935747480493671772117593590959653111183958503756064990983551639380569014237186915921608803839083080973835942290427816145387470520503799398426136654582664245431622450130975185688847627254229633971968878131136773520529457129634036182066338146445832321405946034719470342891251526853050047387217319825810801165629889797541755446348232795846435959959867235099387554884743893358910935871903892670922644762766367901342875033721410377809907042342770736343002810854893925916626475331040728883680921744545262304580941723606543843851823712209213555329112601745576421245747533821687894952298854692709259834257261550883655685930007669326541769123266057099760216083155016903831465981791207900580245972283098428158230789280139748155316324075551922365889403811850598652107206407179331287629769004303750381061214204590043499585368733125869752817391163534921829587860944354360474569894840402095780462528371515611689125327629495963824437456487455774617052080107592516888897866844462389761300314311506987464473123644094370910492591232029623877992055385492475905124159077019278887574209756876876463912903342988498501824106769261548856789974098975197421256476714700154884866882458616947669513217096279333588707330486222139806817662287531137936972479267796649489126502286888317259709578825590381974709794662311755517943480370717466896645065589407115494892703263164705682628404861016049746755002574540236324560500653562944587191694887740448033887480244413744697033221272032438820065633462930129713855531088401706204217511499521048040923036251604545763381719093561904466987469714108765432186824497634593085751194250402620551704310737169898778753123746798569604761343802502539022841354471544372053918646371409639756135029144907106212472751945086269085722327012684515701294069511099570504475874896811493411833436750736486348153179983299256258809103601230524101396488161568373882174847127244503010919000807559613984402641815486782637420641565707151726248900057453799174801318044192264034910445343335232948576104159303050553229832143561107714140450074893310256976956741616127027119757167640908690725061102493523302353802525149844126530574116162496375974888611429484280166600894044433000586572078102236995310222953817472579852530908694279744646628433780597672249815594386420763006314803901597756082826799522496177587525808827933432443028617687309163416766321943997845191867340918749902051262621511917874167372838713390309454477343532904965478094704077636735036118810758640593464490991876922981349448181986540817066504755811784408433793764872762769063108208663806158145080000075546581204034994720744069890111409522275908064323784426463791196289736050499112848232629381328131770594548074274976962935214354220452321879733066155695261728067831786395007568083495823855217707134079465651069651996921034205648140346642580344749977935802899235950164342042246461515770817494400892862531718469072934551793335892720638854236588193543365553626009621700484663860020899432931292898135357629873631403618796304146321195265320058175468304261260423810225744025403320443924468538179740097895265503513018136908042444929491757702191773141415709122485727481669818336225004173588405046155758289096831860414298525091562932871785078295681904885687117562914025002584745169054002238078127083595718798864270634665575505735204596913602295005075701650283690615618399658184210208402452789404613297092589858791685263528585874193046525183810213968790340046131821596640555939523979406986803183654106234542254040848670006347315502850523165979196997219502868012875795236844632121293246913685769758451166585257595942916687665662738601764378579432087529239179719044005253589002608942703351797900199940366241285055150026770118539268606777276372934662961899165730758880912721749597736886316494261558557879839631371204627540737070093588691024144977743684548644279454184621909598775487323208558298158856212468022646181321016777376493126021674244339048118768044775299024250836936378658171620662012369925364261695398869988920249452959936726431512927411694140446339149208814247090023880599312466732327198706544858297203859694085957728361893098653409228368434422017934847753340315320650434355848393034199003914388228522137245813640853677205759539176928828602030111806775487266597859181614097209060207372060561557786907348227061267756321935061010656075380167046816205274660929784886601057648137012641904832877099488148904173685125537311562637350794861095515397599672658816021201075247717124640328887510876361249476409285432409358517374308226803943505636289334462694905319137124480244146650021187905545728920908465676270716148195471583335430417191238309417932349352594601551547614452626326861892734037844370611013833780062734835582437058505633931077501550924688353408233135042975493642075437616610400173005060031708379034543196679035311708169460804336272144994585015707378773546497934421020814638424481750452577852557854609763442245343669563560945694775375612293082707718598163765438538979977733999208555683191809904814086916757398639922256258182108537675485165781463661584016851726568749885318285385057689509353833514469631307924816817511834140675973747431029633004801269351715891357137334201310670525285997196366229929441419070331569921321476024809246623632603193950187699191815072713359479254867057205963450205134782817854472368973737786160062060272556958983305989788465484397480085626486663773270553349782388250544807014556315122729269026592153321096591721023326083176982838562451889627432900805791577271673766119446258020113709642566476835584586306119735960395439314695722743957891537641170661045168676812790364752070638710478720008642387932609053725782770024579503956101806848426961962351794792149197348337462188799444535962843647830696845046948628882904461593415100091807862080086064260157172042749664113065007533330744517666568267265790613057158275424448723209184343153573889036558445961452710947667285490605932378436858478455287345938452503989348169238992658287592554308217808772680895412573174965437390041046299498005602661052721143677851524280585748733735858060547236025489743714891651626802259317313672879815988469619021730993011841584721099196368196741028561325381272361856179524356428153854186466401298657636801485010638900671552512878071617236810414200556420052311639745432342105432190979184367697611887637673470809062561398641590356298488785089304140328487328337802213932927629646819942472144721244324262908050930945683403706196827689500614021436830929884868613492531555504765348818816720776601131060738446755847762899461494293229560787030395078714589222432073251403958792454879093713086376693264713566467623214918268503964614968799453086824654291890936880303590989793685043095436477379144086138143973875634081718739714051512707198501330893673164235722081168709752272919159674969561693560460070421886763526477111976978447552592508180648986792757798120154858606234414280397560905137661753465588560604033856861717116134766981897423033112719267783325010868677154060636717263361696008840918304325928727057743366623728928330985284220718175389534858043471051404761238361858529052819690479957851767519210453033574446818486720501069318344713483974074686946081199549071431582918466728048052695812306951750178586223896116737933008956110061254823422832828301620027751024543682835130186608702815449652333839908532767108956617922318581881554361015126830278766130225324658594747630393287967541890293248555924379948748220611360826197686654433863577979988402782318877878710041231239089935652612694779887112197694593705515167117474742786580256278939447006064776304943608133702759195896655200030306418002995869270664772879892223821816085424677998092128771921323445223426451454530438749030677018245697692230664598699905213152344570736504035316570305227041692790001123007466122688008083079254073338214131006805944832291538375758148814211945941111354035958018651023012841020944468473732434977341240297183347026723073526251912813371407278122820112847480797150941510477921066404337116150560516530776231337096109475475920986998509419840493078739491255378935142824575641428607557900527298014060740483146438701796476967255967392085991886513908337541324485142032800987792425764452499238629147285466235727755549480403192932502580499655603038404566727846585629228715442934251799763217604861416668001107530416457415881417691515495016940052605409458183369340548985718078343845693343706213522325522025691924927072269284253830059476344250534817328512600203308231696469939704693373255430275429983896699578234668332306983854590614399075572708934675262515857353086497496785794648588471242281700689713380237850209211906218345147433155976015360637231674625123510509667297879236583697891321570384743310930721247142108909905317923401633818629599213030003698932060387035763206188879659357768161338214968471540305571009526840790478027889839961308072542961477489307596196861331318740701833134903046667468588802107261723984847180431249333035382153314704585137154098426752185610460942486077186449503315939384788480809860582957246312371294703742730612499287914414470184735050817178139724395090838882743431953697704591484956021323460196946979136760184897068186859820535115671748991048956587422641012905313363778195805324129349729479879448542377468867918187789948708966552784493287063747898413710987936833017510289479426440490615877165386345725146064301191416284218844099659507271032396985046245679955883792601215466266313568684239885473403599461312015771801143969230288438292859064200016360883619805961967690376651679724451793481297760708459453358841717771209221121911320500675457013379976889500635254464725647399830632540507952936734227814327329528187495512333928059994179888347172065311454066568283792301628682165207771109466384915700550399772190158540087839631524321100398657304928858782025659852424611398662227822157128452070252253048754375976535174072416790655430495611290159431535263032267255378414432260414119256004410324491121697257047543600407389941710061437820936488887557334461874322878024226740917733699949999365896986967573670428672249761231551318365798319853805718376960085108290944508572040126571073052366665681239066504328260468252358507364839860188750921511359309407211815456017370215781982926132956893049017169621975175400462849983182479634170675093652254896058916566454962752093875885511878622007656406611718421657739867716550642207100162025266551243723321052067217956043494654170672743244747653629251310795976292541030146541842827067254832687479366378880001593067491628830989990237246822942654926084177393690082889471374143013993014998908103734743007801925897119198537732241195155580942495549474183965082562412379643798895071402091990966336585307621456333156130490604988138385597667335942801828287898093186802134335263193447294720568927517662597357725845976795201139444317377418531554868250439873307975749955774761567412412887511268088528893381921226504225886041981088591723060097212546239840493320673246341090925808576108324876473305886114816056297364993373646356041854282412629878980855337686690399968235329614052403982579436212434159883978151788270782076128349187080593230814707481384707031302023972220965573411023347367032712355673033843197683867843680551251141266086809281859243294882563777109515826326806921505708456000536942868954231371861526977258840964674508367462614382767283471512177860702340169912052707403969319614513656118354032367047858301704688920256442533090347771265462412567463742195045543855436023521784102390269736192781642718974376098129236531070830332585953352716026508003821798905355778622308901010193549376762480938979556899310501168982551670648680863572436650930284503368622153387002849625449269277101918221586070783239507173464931396498856143237342752359723355039609705446338151721307816962110443291852806466915677988746678548422349555298994692803665165082951259905123765721334309030470413687325769477075323276267943343899978414250454274983015988021422333168942479770684138631445548548850396018125555362419070136521364640757977854745444597399482607586551746801934643425464966689781564262692472046947833567047780562645222074180873346885942353310050850773656889679176326769586018616031212902203434756228839274427764742651836163600894073302171523999447209652822827200574298974313794274428711253061855166425621267170774184808082698454558156672930712837337991218157363205760243094112135911296134146420587688860431925642635761716459868736095522436058978271029566490774197139784549371720287596420644856377228148989352190960960831189084294027465505993579306327843934218143206498944012371821257546023251010093608314344366246052697544740785073909194295187364457158766507975628628229899519582506425583168200390252458705283390106596659167245084165744537314533080385202983716746745158071588222204869821898181370166632713415410890923864177636588287251205671328394807423740059194063346545387246052180344803536622542397490287695907255264630892118963552287921333617272227648274237467828183272831312742381190768743670716606781472961487065756764914268499035312451883590806528684614784923089736565072529168898781772000821853402548563991571293504505032733464596144142264522623693975294313718534768782499004746927355983199561192796724382187591582557980392470504394294298686680476554727584706183067070884098829178483309230461899921377838667800731260551779464937210870432371702613063789693693562700480551309543570489553087735803593310809682819637842495462204873387949578871025406248796601157154810327259486820087585707010344128791500480100216657489713867597030173356121262239916973444915732190108830993539087715878746259853088799584561867927562511548821483297990560147938296792132770242650804312541012802389441333391237579855959297240122024630974414412190581829599376319514182094979667880622065249845218095128477097438140332938204770348697124539806362607528230369637673516381241713362024661594670546165435619760964266203578046486622553863850474310110929372282372260105509058428178980519537333126992539216236394484307670626713420648257601587823230322613127848287952254742867482788904502607963944079273282904079145414545055239951885270472985865468146398211319303895266310551397482183509346607026426201517135693819737400227753047825528665899123870291744901014483667772015384781334789910713035671388900323411736390815082059513212004314445909824517561364736643247058691429084850931028036451081293522667261979272644369303231893252379454521855087756074558011896876657203189491232117382962694905069293782241682599949145653451130652552442963791774066774199435983282944672602551513903682830686977001951133431164606913422790278604130955924251184602374720200778296870153306704371400447361006144261543342404453048380964107348105025243399647914284482582904594782331179888858796462276659888687495138216994085692393567808702572292244043221979084444748734653918199201901237243601259368197721879980169799041260380230124555096714072943966411791057800366298789533424059805242397423328647056661724468054507082719329936352014009412733044360973207731002695918210949495182202908229339143133458826863274114722743326275650171443079148841399243226639700150907787745128124843255108338811476571679115198149490860986779212588048106010745603652298252162221969963971550801899511459341296578892715045776916131629046926106030532875254729676739023747557714249670647353763108406296851497974207990007907205672765775057689837842191250943773740333794926388096130728444238879238109674566761869362253744474362951067047999661871334359294641255092477186418159262484467716864270622005845972025560516821241958483358053427933982667808687921239129367346153964096364091283794742128618673249005546251528892751321583441701504028724091799978446357589683012057180414591783321636792338839270116007261432090418126147172843670048107905260699173706248395895824939284028036835980423911131707098087998067165490736432188068551117303549561360704730068691848952423034619823521228505729776746703141806976720832238619012684638936836689181631695875648877752029713637355962497353793177871694883697761177071397355337040900126808069528038802815070197965186617138221391677475431244736408152265811096947548285630590138369592889606577770831252074958158461840172617195049717900657215846323320556712579394555506157452414083744298329050972389093101042725266445996441811406808276229003688728273508137475381977895520779719847792628308773834294369861005566245135010960150284269542898739618594402385685098330649002804779396733000432468654296600137890906169154294777420512691784052594201595114979454679806639471458041871065717919718879235957697031956281038172003459404770081632752940312346438398585723765663775780960495771144991573541720436040363954453688155935301520660148332977648803455652597978490567984831967209170470991637382667716914442104941629132635189910131454255058946956363635964702403401350326063658757121015996313113772245655635361323346350398322773441983803707160091804536967223002001463044008220562451292331910295158783541734219770075314118422390223754879917980683278337882869556765373953918382209407404033995625349848506749383087188765339865792650719837442294864697674180726848049616240571748317770903755497765281369000308218828796283840717379840345156014850683158545427797065649395487248822084061749238971487702712571142653936746643350929700313621460836236539575855199267880004305550794674649181096451742143659993291650716620634543209464024573632253690309432800432776530381274192707804835560764671511444044402827932637166956321013695901218558210595090262763620629025234942998429534788967625820723489553227863173677707715068761220016525967090844313495449624424137473758718998010660863208681335463706742765092558926625679718816744314488555568177754042564467074891947460333101862127118795864430324895305155430266760800463741733781190639385022123979069295621029145582703839863833208481931109391560259105939101488808512920949642321310394770468631658953217576514795822905123140257967159444629314992591957012910315233357269828213858010154598488507240870011186304573431055935960947608057421598738531128832433086875385910242234726305724814059439297509178888810153639522266481996859249207382138804556186712686506031747794755933411781793964533191292880381899168108623112452116378443645183824642794881119747425150880371595893401284469003418925539325337085927455991526434333001588369720165500495410387812417476130661733943614156737927101431972364338188050636414071617993972061281752167764263694881904054639517494556488393401832542313802719507063332078261150165120991729846477350830739768001732817065881080906339005690490015390215344180381297591490155756023040399625706781462523994217336341772701901263182759996232859123034136865896209431202044399516480550385860021894514193225467071408223391342337516865685111421638424208617131945040088182754193722237662740337047309958672961360705410035077074137331586135615200160143172905519507830289960851406311843468869530107547558464258612310000139519983529856319440056851126184919488227047772604453187583219894846089338216266396473960784308994038350831654352643343448095264253968834440190558367126141907330099591228586574427988834885907121445038649467933024072775290296448399162584283451055320776527210345307292550849640198568004100819685038031174027428251933812411510282865231079956939348427867977406958784021930023296722302423915170089114700206957541478257164211103377282552078963540085755827708208637011210913427483628386219774992959632477521524617557550076677350317848298625730132833200112514994538642000979161648521403821963140645914889881871593232362568349890125561538707741672195816232973073709800167915315665348891345431527145180629673556143421584216977160308048348899739325057360948567549751242028481789472710635501639185371084916027138674047843572003482799129399853581773694393573672761109051195423750974541895312061881922247891625294172476621820540849203096491940812694768898200370687151995202237724704452638200763966825403049020901441190236337471341495345531403302150612848270160670430671472051777495392259621087176643438738018636638653854858384921492475680352124118917786949907631140946893600341443874671873634291089020316586205756263112622750471479937046275520711361950871538090765753296464538847060069317651862342532005728090599936515588407203849882097998260836193914914499804811636975289972865709857919608998431955720052521407826436039465357323833044846924868846295756038177153717893461767034328978196489439623115811879426358898180690960553230759329510281563637525700258198914289258914031827083915777798997642038303558177368910785091087513974255873396535379353563308581376046430762140094314367304529546041593895016370358067814006972079317943131539900452709093718150410859499359854471393552622508718404443144004122586179646092181997671156728492693799602323627673481493273424275351894644637562089549558933267187405847227780402305142006443067744753331641659882142595931524785363300737002670413936943724143539533812214827447062582951915897786850334426160990669743669028241218641430592469064738381281095670117270683991775685687590232547742073211507609331717557962987987052501541733659112438629929571909600492387478201141308055508037474211082878266764656087923522428757031833799716689727768103349539960719523450119125862804659840960917275612706319063784484856539809887552334260140713415650391056718636935818707950418616074350086335563460006154019743951593626491460178544193708668406787902999359320142648147714402094824527059061166008577754933248662185024992840259315721072118537418230118159851264622293731920462430714983054256603076879886341653354562770977001741800782936522082374920701429924428910514400071054089084083684930372722205103416860523581258568985112750818947150823926628977480443848889910902215167753287793052103566939292841698187395804411526785427446941209526731248271941139620510190616001879714486109195928938532537923897038619406862247986690380512686030870647033333713225705887585655660635525733457082668711081655332542327938627971614077509193890666682610691811954745910707083147091540227226489974194798634655754006416180586925090576189185242131998430549892955179248833032930594543783471465160713328731032476561462029837962712113982791493331783777296289970544508167489626524121111396879656982991572506246886551662149273942351140142978247778868214834990122324937300713591464333361906934948687425362233655714648926228075902456694656034862561977152092489294097116276824498945200209431051878263519254969002422236804172521266908764121695224420543021575123035319845022663092893324846369435647102271735781304586043032720962045052208050121224606825735926159019251628423685736682205635197478024786485187330073482573315106149657192548130203451598909782416635559314716950058862169464462565800357921724640653387810595566813622268643302123492621062868080106201657587195682155078682525203246673440821972669607519510390202836171342565161572315988599244607106113031914434058840381187124520063238218942396054786830844858559578680403453005805838704189311614796787458281827272506984528530685880271939796701471932351038493237136535230368645026727343701647867899927753809874453171434796604331658409376237318972025477811692297018143754136101801004710229487160422488693502153115474116336348156473102206206439432311678553298081143073243068048791622841751458012838820464689839130279496055098569739025801873199524520437850705246066699159222083787778535771060235703646270156250897685222094636660690641594432225485165676187383475919824925772703801804793974007684244241964567138219927891047553640157233597497980772933235083137594842177100726662576678337636711909621749598712356972755659168078746453375231703461130484365421149186713729342876123413662953002107803247476259084194760052715999518298638961262958918204454108414803600347126277492002121853233377420153644211080130225828951587964784773062468193594574118607374086123466826588391302108430270548672706301471312106381525180342762415599793040711339787445803009737142043590177657126723588620108516604147527523134750509293042586697442584458348854959037813129648272600674409464680101631328331404493588719935739683338387118066582968682363391900600034755641112821098578414107168245932628472329725944631417009020614110885879042639860975378726329717239512495008041606894528227621805335381502962794029409341748818905894269122900214190964617870572081610316662717844558029985245572414189717039143667691512616028175545625593008091511513534910991250908042485108623135563031117442981111195326579310021337791632769363815386742750947917908967851805514411138086087820394348054006311158272637292640603901445325518977937731464958128605684139112631042358268466424440974147616882175999776573739855796761622615248640359002817664886279008825808969440974365644167779490670962763086567403291705534042704156171930103026176082529814229248444226808292495410668512940270781247901310742384379810827379207229058115444225388089743378550472813437882160028848484949923695400006846083505739213664516840292462441890746812725963422634622744999182800718470684078339204580059397740841474580940265090725283470754554833554117227606087923849295074111992000300385320570334898258818024628978859642011379996395055886896042051673735583214122362738926195696783478929478682697421005486569589012542657059381839668087874396861947860380962650309092944782691956478722041814520809759978068236170796615381355613852790732857936860046664746364217284348762326033688743528871387404017648095597739673456685679150213168985851323124883194907661345467581747750706879585343941108203766807205149507290488712983251563327999972284146613047747712802146220531313460412568547841295362976909375496896481155581477620881369999459675998692563980639634225881946674785421673327492954190406755983025492254548704681638779219423379160039272647912421869247765449892660171703648290617779926680092082132630288974833735909497212942666703066183723966531654093115753295968999830976438404197082900910223850678778308078663097715415868037090872879504119970034713510196212938078426363825419309478115689762797571415855173686780320821009217653269003816531950079736542430262124384695977466553976138380570426149646055070492448726551150360329816523385129598894939196540911257614698401479458402107101884217896067603788607684002987597892913633682418218157750969449669427850528276999203110467197080859931659258517645142720262860242596069235641051622335557559353422395225267956302546176330913338756841654431071832530829306042589873580720991905635065249823938043502107111683057606658474634073377586279505218428303033201396525033975016378404488259849358161447174582961354497582494529229318772566193507652473762079065326704814800366705629062116188667826540949490204752407429257911983101600511220046491490689944894765248989205810298864590579320752390289552404400539116212335928986964299793352693483299230290411674604810772852180259200615462386690900076146190037580006670350682793604383338394416730633089322852681448009837547073024403694589441961441502278583955559564805293708255816231306077457035979451670094147388228424502177837678736314038728274501969681037349029687808987034763335114646809353527883969071290961102674232481781633402197623619813733934989327601716096609519957418690452937835502278426583708771426506077534824350874277032343923755852154670078927239569810150316074905319805005891402078915476829913760961700157723659423549945787894103822950117757293636195265116453166925101116761067701207950051793198439997691097939587107262204721681592158117896045771481924792009697271925514249076637609645860700213905824158566653378029391642397165982847855569026377069920307760894200682880343460263771882523148666210401513332222009231888979451228505636315083709639861718182789149583049255138394585039899961017401715710193902048288680055995118023373252100262890853472102111957774807851403620068720080654437377153131340815000817629218143168687083714981892443843265654726278211263079497317527266745041690354997709756150714470878491550105247669808577813872532674017984176628950222036229907812287692089856138184512995915098797660402318489279593873511439058336165237835028948599899101570272149278057060585097392543121802812356913506953549152522211280581189244138184234733685430092352769768944305247116292204328992284975417739668369372601936739614829713324366238989007036108223372034665323537825850537217138782816976828380458801529243714804366093532431351357288325090481300048034888025160661216967546818488330075241587927520502403876136487795133590684679275888090748615627582309031399212259964269840305833065794738641767067586764450690384265737141850007692932555679077324360818734516631188180633756956018321979823476512584896910380006797456244307954606857138589711915187538979272893421944088023892255507089924797138626943099562231571045306064704297125484718547965157296794027345572230601305662941237074902682136949786201691979450932250482135213072900887681648853698793619758716191376640117870190960925046915081564756441346404148942760028472289352861718460121270215782881728377287766122446938408196756837854445666941608935633973707921208754003610785519546598125598297267593280905096761847367742928818671101336592112454565058769519662205908477583536813657372516565221819898846643616350963108875332692403549023895271923517887444070904040790993655092662883585584690818273848247099923224220367903541354714714166953633955393225204963605311503791733164575966918464224086894292594854203844565624982445937841465515204892749848202955356522086114634892120411971293421040853787218725760963486383795073641761973103008182043295460192051017965204320490221732332940413682730436243540326194698621422653726098454849151346178327571548217241248893350156590434086183614142124444234433253104420461887024359560290479248035163505157126743372348722489353431053025632947099641699720718220595643343219908100638581359684307712901878872438823191624292199184207909571227342291650342063172066232541707221454732818625726660043424405915065645043600564125939935293038890145725259491843026222386011035104290814483362189865217919779471677379189913031812572448609857069520489938914492266624189782737568227062592801124476633212728216448705005835761025680480018024674456087843386387051351861949455923079022710654230564039589280550300987994545596192311598084026898371440742150268530415856991991300903026900747822163278780866807588796707729061583000834505163797161979649450078721192102388537300060149218238943522171848599081478022223539574854080000482155769863034164060479930434443401381978691252928261771118068029269092767328521354208630798017930642343245535393380945151774372485410941421066091925138808228564025220698113951822743594296660518655617387627370319202841794414577955216661599281011767215004639854664113900747021794336841625335376745113766615726918609312605072831928296852408003948994655451097636041004044192302822584753059610809361872462091565807499044055786297355187963663695508345551682969159550889838052512696149387361040448630490515563249330588163753947027930952232178078087169569427592277659609162138908877603049278329994328337853357845143187634135120111033469875868477124831212726270344981179440286602039918604707558775433730976600857441572597217523579888096589637092764949309070626060399845464113569939584094866544302098648038952576328674312748545114604385081485622728225741019317281043999410617494152555672392973961189291944523688890104870073532151185266044925535353080667879912445357811112028779819245077327679710027666630700077672625475717124916979901704690158786437468483623752262643826038505827748191710190416290929628203367736956841119811775508979812706452142195498183913825610832349628421448838062084960224606552836902978248965877889333066452158607248050516748043291787030743718332138344471135573347961076992522380866924187645972662730306617009987914469900970597475198531203422429339379582497381557873465910405211747820005902883839308778585941258011363515277915173934271515007100249145885007428720124851871051327760811285934228941364750663310350142545854129231103745751812078852145523190297186013493387571990575076463606536286447027740716681587782310265669461627226138139255365480472836988701802052018925640487714507957151954020809175201733075423968633867947667147735520880686495416623826638961889130341930296818816738934037176962483728152254361990675516577298884825003294867851047574627184288234013288548125963048929561808172492302027885010660140685380880046694364513093858182062701930488319801313449784011339619271953582576830466081164359166705883121566403653656113866637240370129219593262873583679796202104270944248345318514084610282350058099090938292245907533735571695492901984154236982881100711542945658251168427642023106235942833450734864394189218625448489602372658805000687224982016352511253496442393399166690395509691743114411987013772612563541747419668840845121331690151983553254643076563141584792353006330136792442171542381415076387533524436881386573525369207721010926916878806894497660755936202617743069151346158696793420265071472073732224503631721891074105193858146488443786417440572772600019884465155390610045398426128594903803631714396460099666880427112620523665656596580210661241142993194704517234818848276896175925606789562569364132376993394077369659339979671996630546049382822714960805942821641296696578798915788782378275169700421570302878371515898239417819797085874522759852258377255693965466110297314178366852176722789676880747722285454913988396145140757182868533034989403800540416224470156846695864262756600027746852152212186247620925544954227131944995376025058067786431569368054077950469579884462021599691386306480520521792818428701848371269799132480030272893601417982514875128214052244047916090820438568398367948853274663598155821156920419919832279749811870095285802076424682546415032838745065089585893894321884381304932017186046563857913669390211766208313147654270120590527220119300328677256262948749454480151876458472271925867733281594072653945948423459965529117366138119062096655364505038511896486774160722966362493155426850009751302055416579630829476957609173270099961156223236850377705627301061375170637883919863780421192445639438663448871179057473345680809688006928896919679537702369762708829992294090661581819262583609194544539963712263971035654065791583112420277188657447292122577545001119162143158762489818333657608841689354385768165065187695468261562749148204626244544808596270854500479137589181632975328419779821088496677884413462530519882706062253533289700389819208795625099849971351135614568455474330042842479884502714644245598738442318060805356409947930375519876287527741766014241562393291652176892312236298594956327689232863114058183922094785770108262308401460975284799506042569911553679926181744424914943185815161184524521467709809485034752188213082758555384036656025104003738437893169173789892847960986346975673537230278036623152347896222097565201789650502694014790201301781985254780542943171127002247275604552178268634840980837315081024739041734437650851832741610393518092688900443876073613475945396081054089649105260999264044797909698302170465831671215871213663863395403327932300329717883781458450905844472484197738655116057907554552379318732291343409111902019594032905932840953417805270570019802640385497066241215454469790199109722297714672466679331183693185694711801689152647847752710533284749716230507218440929180447322539520079991316350399336188505222656186780452011626907790312829903308961003037287801126994290244946827061583828367013723653910468186280932709572269724730558399119103505702525183654620883116184269886635528952377529660191984747876404761440184429960339980552433521699065359494044202700802826355594174081897539158247201234210540801917931528486350436571875124713432869515040714974512705869320892742270166679165372638968310498301510079154504819243111843575004086158617755269906697778576421302142373474872012132339529702769769042074794669527656452244231781271315935158146203914721025205397759768470250577343491633420299067811911684494184094476596996011676846998940560772629665232458972263073068690545011888819135640838841636267753892181086060601938598801555349868910064015136100751775407889456927414574074814126187658730973221706487801041352621180834561001512682452270614099543680651581905769703709140983789076764378771349893004738030567376459026704607719005965737080162840673227394922473408052909616935131653709505297693174437643504053536290242338334459274126205957530775770465161205874611383279140449132247199815750878289274041495109634169824204613777603065729435641675648417856021326873205661967665624931518473722935534744817824569377933936874414118610662678847243486077595419705331221940659765652803896560808147534290837313720994275885865411823376529488204149753580715213886766041064852722294309799459191113877246964074809120194629867591184878617195505209777431758616137617029664725750040269375783601571412449414188070907080243724569313214904857101226476014265568253870968652821324518486881013597781442479460590199037083186045640792905763775492932927601104105882284311056281044616724628472024652540661902796757947488775966712523224502737179667727169906480798314896644948227610037954677956511475532259780686853924984260281181855076916562224504268738618650804978861969177580012079740296844929510532941792759831447910714991841671324433089600960216221678663472302212220595044467963056808759920459158538995514844021732560911067451273218484575779348880191819066094697853551448206419401963311455625043428220126662392386840398641546359339045265439335999621151122841456335365140986731972219921215044449760829742557975774394700599082123246617550245700775291898711440077033310192175812183625145373628593440013840034984850636871681745876357618051196010562139947170043143969214814700646829594786428676063191277507645614065781753112637027310059047619958709931854012484752355454749060891511284651004665691314499532750562449657320139053298894699275437606536563488473096411840978833853454875468778795043194979698609676713806929827342149160403584856425461484054644758299344007924704169852418820903753619797522360851563429405841359599185168664695592449024318392243193454372472133957849347677976009432339169052416958719422087602910211381786922069416989410805959653869714652327512414807456512801490077283619895305832841492925841722696075137875851955240343977604466260804050664045833712864603180386567893684582701621237875800541677456429843091588770693217517860118949696682099241856036916868668281253954808740768575331289257595740584579228603870364279042404299323313350758020019293597560162353761545583023117349210746997523174626817652694907666198519861450354804687569438227981258682093862373189954970002083606949901116429767108316973052600937636917572880325615788549002145791860306641035178588735240940216228305101003116713951355180588210062357750550540310204561028943846479891724306437308164417800499863935488163430046647413760572581827433374356260734994190753906423478831788350699169335217470132232271490112567412342372052811998327250479182078970507723768047993577541577374798794538008075351380278998329645358102226296403891198999130215152187906016204485728513661980400299651340928738468785268158982513057829851241360492608507192511247198596807582369662056414090739534226097967544424174607064388910477822246562814762152777966738276360640258103650836380314870968572571287724839358028964437287672487581186356825146875885015240940161578776300824561868521812084408293403103244196658344645822516568407133520592213940618714387039967976935559393950136733340376838398215306323957442506016777109249780754831726600044943885067509860783715628983944035034516948065876587372887865035683229493811643739609612339951256226563312313689005776220261417261424359686759142554118537911560422107429198281821546774039292074137731559130726226600366847244082285292333965862511588118532309259997847730633302376390250215829238451582909627994660402890533935271817433267616542493818066812424525158582894711687797129348770326567257139752224470082568511054895571623199172581858506219694262469759065784439801512909375883565188271374713775732931803577861171930341238317780546637090767430457173495639661598283216527615030915492113646883515305059227694299602842894778997062319103154978708842857104569332158935798790034960604187648841450587464500019219243845836528453093570037672250993550417621537204477978324269117997576584588956019048954811449455491148066591547084416671613323452684754189310429216107926247031761160440235774369028572772250603986728055715792063721300984763166213980765982791350150533622892352301612741120648696481034962636211230871691937694193614052608554578043940083011706111636246526772950865384257401937876818699732338650933707651475169555653838777973499582146592275142060774335439203523670175019143792899101561756470596776144371197314983283398220621944005116788717080062712066586741253515184049216839537602077352027926308946132554744955701132251418364091667711221643153419492726074061351107164890937214053620461244154992408493581845228135216284353175765474152162664321510460186505437090225802764337911980399704764115166360218468711142949889953550081705388595317079059705945327158617930770741856842173400432674807760060433762892140202026441802145315829853132952734922084928471852301742221623042837783501033523628031913183311268477377709233801594788169122891780271227507656864518644738711651422387948504998184511336001101727676461092737422891052556730689240092788595348610162003124988542763564515520584131286377113724491740373869554742439117081575334884795850816279921469378413914323936882187224513297899681821121729442140318798301442406291411525552335267516694680722620545162862320506311803360987960772738660287113892540564001043035940714178522440960575421530558027662751437521356431240957119877088843696673361499033492995685248708423288099828331405506260444368849036570371747541596641427821299316446296576593170876166378480511349288857536127783957284632101562640564032471691423485616384326795903187677788920956524764124386568507377075827823008465086364267682356901787614834998262309187166138611203640810945927507157549045065432993695296407882954302483592801410654806334770488388322282658272382517756602121468183194211985249073708526209251430063149604770535229279418598407718465045603414277818075709973551461338949618791975298884971368140414279969983934796506175201276309423110645353567832239503318641858980742633312118233950712880460113506930222691456709762379552807112560128285531331261787933736776060654643103568922974591210602821627389092327134971450379562133420804280370738826265605481523760280099066649889953656011275839299895426654012300985303227883282150303796733507215463315762919783645332835452636382307113355504396196510463725506876718731363555176690838519844301662244513898792846758031029526986212586542318444197845384536866120883160963234152836219328380829644967959393957561296640844850069067525818234185175104233238192767376175733378638973008880649642302047272999317685405311673968807832060450933188896341863963175733804429676947727110521473619192665396821014782473718445266690031726955162362696305616212362107526414485525562739822207650359821582774906639265369442895671416714944116443471002144533116201225738522415088770203696977081300105460909473446628203998808189804097946033960558588860276558051902480066904674207511805950279662304907152783635366215303079094628439303826622449279805183065453722703620586296476613554782085260554154065952417021565284373988326158091720449835545590318615634153018693267610417230503349878737900355198495243930585443062699737149457393742701344152346148545383736685545416125270526298048150653003234973168385087539882635983882992322320764249625247525258388640537948577503321705445975760108440184745099597995364090094349083643679627771166892211549044756511068361085951869283147458077657060384079922245221596714922330503368576673586161369760931879505293987858738510405845843260639339167469659474090631945902839815237089936216376229895314050664173389169690567103242506871385415846748164734674214594988437344646143196257326167634502558179781489642095046111948198104731283649751385454423944668207929237355071760950467114444371502453992807128413516762875911101411598510104067332320443425953952291280489243402790816882004342399601665554089452025496177218787164678335315863507546875362712530493253811751602648012938966956260743538057233856005794430528663817411833462221022512589187268238532156306682551132108676597293135243713707181122283749603387569525791899709304870913950055264564798069387940805449194335030278069323300080094731395099499079862592993173746425691839777122944363875130583317765089988350872100792338901864122702344251074352028899589209419317089409444432221428754624734665449707418752314125444778605465713724850874266816826454628646375347572444154782864802914149568393422561630667012661623072449423016044045525624724828783401746237428930491259479184232960047201568793910530308022724666044633265907631050646410969184989877865820430861379147085625243464897334310896374745885668183244392529942019890483122860812984081942614088884809465290224179032130654487338164158021677074508022464040618291751593469773439236455411412909346734888734107345018522802291138241769803604905002572735128881915286324164688306661256957084356821033739931891624492504921731068489653926153909286718685645825967681862571454800879490186202253807968554325827206377310334458769645975074896900545183938779440827731655165870541552792225850899849402478782098209639066022971782382900299257827186775645541279346070135956908687431351402870761341489217601614741141816712113301800359334737574074239540070233057521477461946995686108960437445616602914172899657649068109608926101081487153794314795862761410461955498663931107844274823835486404595845571819886188447313469021814677646630069719385643573742890686894244772131894074978540792207473965728626426284191351046156838348397027908219407530512433201985213828226002188595100546918891203344875920810854614595826646885273537780861151266152134686199385810714052506811547040856614231800243198219727687114616794462866236128155106091628745067004668767549067544102121600173452670938533706174182707078996391394480290667195788099796700399263578253323603503337270840136347833452341925626777322246155039260568604810306180573047393707966443852489985611197834210927212612287361343622692182044190546883855498892490086550513817096903847007416129350057348065474601405075905552087949131342788184189976582750352842202561318002410693965007452157704175293878601300580191525916819898604486437215094649264895091007483045458927019016112915353849595113720005784344441903064419705717659271624879971457466825293601757252539421838647556819262716429695609465181773596117474088957357553085859708170870131154101492916340459228833832381371822638458864178214769165159102385962924823013420874023601319231567892888734711552751052353678226050707622362033826366393713777461448254563317357375763631378716368837179394079393461959054990692773397286467971010795999250212225261080203716938916560982906098339939827405442718715686158425400505323476845838925153042697529969665280730144053808290765682927024358447262544296066981501061069522557443981297330058317357405254959731520160778281045477542826388649702509961808484045805056754564248942550940928438323258820447332177221028804112085295435947717701038587642660278196230875421627401183822610229642556898386813923560956711159362420329995100083722414807028389705426514606560772230783118039308457037584185469178096522464632063403985748537114341444477736335334788709921720162689984612664546335199171157298837835043852437418243584853277992114896814798448441239889656359364202015962044859412732230370911023899230399622786631734141865260490310510190240576208150803092768484103791600380350801004915348390482448892716915542182948932103164909031657332633964184980242955940761954697045704365401772568827068442699326320697164250346404875233190031561676001750088176951945207928771177581926514585706632492866202451226818473241778584817583717857054613137242974522327835712945389646651174296636061089471546115273023985290937880972491381946755757652672916405271459561144814732191557942759647150747373644555055528626623180625753872742684262970366422226513305486925565402736511751888814565396979799075802403532136179861958199640309087188560816401907352715327134957950678751763959497974527274408981158467207383369909710640744373634016452354534972018892225093949769859701538907204616084286362028738320904506921725678812575990914313226845951690485838992171841263979006635158978217978457301247872538096668294980100806829563447115670709680009970461139654320034766374178700174236595964327872901960455598753808940282215443147410246366787725876331141613090882276283015738758986335977479911523606676975099050858105990682459477997408982204804468224582319326837884186265193409312123492311524433640237330035741749091247430592963987663853107575737568662750137726806559903504832107504617935362808032153265011331250326383554929552956011529454690852525167947362966500399099480832205717827726195618178210069552668358235834828879394129760573323013804026642005092525351625322239192277452662019248912739522998896560896144242040247954058920684967862239672193088675373018925461189127991977458157458467677337469970653167844590114113193541217253322204016432277053667836980824736094916664425239991124761725871432283556435969876445603391769677658201567714465214419011748887435154157046861728026459212917971712810431723815847063526487712227896993326120692869318764742120890198137181685100881924835721686971410646881965490743314024730221650865209563125554703543808624847021330526814424892475861099140182058471517512734684000865265597615423240667705345730477180119692277122682172240062661682666752261212151930869922828989466630509246022431779643000514248528925161894173397045941222658041498510870240359818970533901904201085270679579751775920243415520411996031877775026966993531300761736066893204274975364386199304538739328185330028454713168706039011705869961266950514537670664245452967304662810256634646342388166776051995560776206546573017099109481800351066468087588834174556692229979645405646425750536839301661310143309981112588213298577011393007195504564006153574653753432271637961489469310421944361342427472392931416122094411581614406790835076431594812522403300286201320643619285899806900427076797393368410250600915407066174444425217655644028484275238094510362417646280737642641056797976828475023855577074603042370406507689297695286772750192441418523339845946023314047278585651995313954934158590910781715754974157958369406829134281173145248067499893287003766572526863930230010561068505051538621106885174012147282623780002054069662306092474947818604637346941835854966781632063582868277757299165401744051298071196464759215872179766649853068121030717972050700618914407150124404667689290093104972752406918469792444200713846481879003792642770380481148921181682413756097989654817978099206717252104803104287296365392386886257538534450448192945174657048187953897901663392880521655424904443151439172528894185965070907945513105009889941775947594662339109182152539160403857692403725454469854021078172906329158538451020850901664102967916489845818239765305712916963709625978265166476001135701774485675447656743197043922485760269289320085498816874009938423843802861566347756922201058923787404750515500419704284129050996137522678270790814851869141648118678252590852489184481576987785760614450887458568455544143292525240756372984764504404341153787393113997869409561636783296521931173387039996119321793572839397827496630390011395400895718684637298998539658379682731389949732273304726768757785617567897249621160360104044220449367544675440985412521388848279217551917136038064299321427772957672210254428540962830237341441570914108268167427737458786550164203745714517120244683767277072945509485776928811144863426693929780372059152964767863011953796669918339149541800732221829133728300761156595996865680940841978408614517006567112856145232491681245694071123724032036541322564750704147630520237448395669290678328500908896435591832896475941432351095429547764869120766955426835656284888970942157643969586297289959094208913622951078194044255993986209077995493442379982174841486697606256058845015900153201393643911631361116868384309663799759127186498897241840770012989993951332374525009068966502968932365089820234241848886794565169522013150885333785774867687979937980192711277457980322624136238038427189849581160347368348939862088350498124684892587115546535496173794539455673170853699666225837514576136824960238181857877864032748935839607956442979764550522333881102887106267185614415454761540366157996527777031211481642363970824539622459399081163746386224629864257488336002902769242958921006482044245958054606326107693382811119394041170002202956992786713927863796412016273598502439181291515612265333013336322280670023941206613696807904252012424423398090841933066693870057385849048384927864698320375647508183504160195995681426737044207254261443373507996117464419510546838113242569500731806362249194067046350172471126948717716072080461527421288543034220669530412443764563565485021690717085601791511908105433786052162720812122480768200972794353357692382483764707573048043988285133774438087808970564952222937644357927112677310916057449486804428602067094940053987690298469508880998584538572570747943617050060539895499108168788557347302854732682904597167444830215290942815159590965900762349195579027353769194485241985777017143725580328189248286919453629463438833844600879729233432916056292302765580493932327264101354872953255877395820302130719224675425609531478022763008975463341824558013006721603999162841317492192329652471247815569304215376948968453712256851028582937379940106318535015492635162650446253087896411703170898496584623718377667020877567852582729693619552899343911233653332845502421981905557109209716067093604648896756463083501499387341451527740648278752092597216098779128860906106863742334270365571754791620313107580112541083823959382410822746217072438372576936172411583259477549575876704917341558691257374923253726823068945914913703212197227094108768864803198644906453664182591893934219972676733638888245319476548886327644657243766589937735056618549903205411669204761241719189817631949511221930563971612941987537643099377324488710267884721338767954268600801414913832353120130254239963573343982083585162229102426613495139887198964833703501253898703969230785579441883526675438994170763834532251948791939377002598864519027753099193951565990505564523951249445526537221484717086692338534280065745399243487358268306204865768892152402244102493139861906841496173778813848798263753852427202926020855148847174477928256356489399361135729100586935097962020006927620303550480926536037677489093584379407263147395855882470364687386853472771475991758365842373908907946550285535695444674029919467431257852625223398937941094031834220384658706497189534949891313822090670404023242733903078432569756582896024167952414102607749465511213799923026994578620877849262532883668937858058751607025512092621958056171367834260013193554798274943149998171428621992285741301752820927254110497531972813399776277722065634591448201480109656989573698063748674996955150249663531095084280774565260343209613929148052737003425312714540852431810919945794730731773352881516885315266487628192645973562890452250406604376778663071831997216866917286776743571542022625889899116426710079028707007059588420739466825504760777006745820858019621750289394377868472245805879376894318512629053556345728664165695105056091593742662986119949109977536875990729004609431074897443844878905264190384817275471457217798439971407723747845489377370100970423061088170901784039043125376247209146582402427553678343220130159729358847881607177046966929114633720499770728461591258192873492778859241525930676323172954070680950474298761974508926160452876267149809795144481777811126980538259611935896191344133834195119762971066468954229725133215255772064872089863922665400940329662954775409951267131884888063013837741772284950243998694417068212747217446185868877873563903658543108317218911928154133123105719700761657603361352570012745190790809421474768789518821115731064051156629859569953261272075395814347214445907738443282678118234146218851622000404521714003410123662552309966455905226378081984555893160423488814183060356348407445776238760445895197924150184690805519930199717050889687519764065344642104060310308043885064202460312210637114046080814829985458281543115480673574027181812946483268651109068765766836352965684561272771474314056551138895257969895834911920467741499724843953194295446721974993652329054359431711942400427063345311181596509930093520806739175969585451779359169824824581467869213194523439918617214439252988683334247369231920007463802359497341722750217235722276079584606509467158353060752704970721219633166801095247299606021180245028514613787700964451328150700606472655253149990816753907547947344934651337135995014676313900214726914405348395954524057938474623640730898721890476300299673640489275462403606504514686112591434510903806795811731084301934025019247621389700402444039131546924958532640977885876355943768364465826203975555212359612940365515740672507129270258616184397037297331009716204119077523737894809626629799921451065009722185401347204202396320773848230136659915917210507590358571855239929672372444688228576205817516501421168168155150084074213598340248993495384041428673007133344769715878597733307643872631627102405368759444780735831890419645272527848157956188054248750963229328978246097823519124099236485591146793320611418822360974997053894002764523525839275816579379465042461348016848289504916246780678178736018194372563255567567119810331266873020936006541463027904470059130747620644390051729013062550043503979396622044370723007039335195881982082994524111102145634913892543757982943660531420800151341445257717558361980659453715567902879188724394961779066391768135369026032691796816488837246756274392909452405857041705297690873222593147257874950314521390191228200416715981838453176864996452888695717732346747766235679579839071741706114086540141847980760607701704254632108326492288051364893012600397718641164962695680297224159762782472825158302535454919736994572066629972201247386083634916407975272490546169255292544791417196967282484206687734389022425075911085712207909038251718639580433847788788678075554521893859145615554953107491698952648506187836148750106396400128924115710619498773315044675640834454517548580961362182166615445430301141317435246781864477392485220608238776561003820198289273823384857170593061770854926720476420388997209185891539997453089545952082915153908857938534569268999329396846303476703932400087305713550168784358758353442131460564640379340829272834849709417304772776033340628090328595734117734840684106188392675186355055736298330968077949198445643466281176832743571569270442645617004434728240766762206819828307373891648374704907307260960012396608827449487116165572438500179057921011504955371192766099957549354880289802447114067870646838294426247022566361123509473560569771571131981174310108169636737611743794882620415460272022382339568571368737169800000377796893042930536247336563630232597020374698975413483870299874817718861004162029963841983221606330749137402587857448854327574928275061586450047063646866469985268695149576156093627443869060735885627658718380376203049132999333473754208775927189282735427454104193653061876297187334388361753659787117914580564957010684505212071865154337262877709050747944722244148911877368797811438951125322836542351560398588187933823618720484634865796907848333244436213587293429220161761592447591738732935759100092080387708874506147492702129546627492301798755972702020992374707020512807978022591181905265684961537294415232309838001525029699616434305657924363009183481446064931250299541111801792034838959013864497800494752406895431189138713659807418810021269006964878273345452053766292988116524437856656371868439702674008415392176906823882943526297872176947836701349433293214398147693416640041443971614888134511580384504267916069277520201955719263623231822445294257115938284029356846162071803720955308178557920475108977452222376355745316354128739135012073973839581875269229241994520915802243376752006424811833365443291857023694072606605478701614606942663154495777324746665711839599455326489602283220657104099082382411792905567016560110771283661747346888762068497883332339250912927772282231560352438314254810723149879663506287293009185914681380129850182893371088363549284542712298703081433252912175212445909612238524151573422304431278744379044266482120984059521050885749309051312172759237217180884423747527149178673421453308716324950528315474194505666416831161289197192347666819865462188845726306391660020643641332214034357402107577602778501380996547004682943176367856978462847112549850811123070956162448564332674834514600897212283436650113021175676415734406158896316876705192564523828543167243686635227133643257703770599031392931868085496826737682664345119498163566722067469334600178810122969206705870326392913510623403711737155670056210610873132978120053898088366795221668228921745958781314467361438696987894702211998467198854874723049731924475354524006963732558339105688135652569045859210508112758061992999290057036276857169835320269489356206671045743164482457605536811303694103339623003354223550275837363054645177047103800050852548251368188365849349517570053419314696497777528809012647952541971338302522221541298683019342954799078161299102891199385197285903722704492331650215459641717555164426353147298974628290436496299748438897611869464698511028977252588154456864211538077828111460424006616352514923095924288469727366732737000763145818732863951784958110975877256926421410715663442117146298560668603192340808422603412590301515156831055387436806811009593863127762754500460953472677162558137085143225410578431429183848782660988859688095179734264916563791998662295505326948956635008584530107641192837631588933162655269862113577243680300390625985932711702461328791025818404526965492616723542074927258344948065231505596588072977142805651584057962407557255920393487693557220510745544127023891915787194129391676385052203914147060449114968259484580677987511435663603941521004206523244117520871861220334989020847575403083098924575818722881440084060177401462969080197075394006405409761282762225464359866615899894824492852894227891397209553939645869207789564514610433568379637352844446953006659602310100140270976200865973711092145860061033530999644242480014698264612841970658502039230154400324574799876864480022427155344608700306849838162211969407118374046729319129627661000601575940200691501985514400457365165274458956165196118475352249033615020191735207394476715429432929479867866137242013199262209329028534131468955659744840355041707338436797601498727056782997031283949804980595323288023881528291418485569945821842484730136055247741695613550018358221963317604337074865637346707744183599886258225277228713476495957656213483021572064175579199969456146962392284831601189284244998372534515169445305742171571746816820124727529261110183728345468947073766736089461216784595097655637645504095716134545971351000879683918734522282794298327415512360365432252679358646362782032306399134549048676029896004334660661079257678205153968774192330467647592479202379411442021995616508430251286040883007337145915033817945035222144192498377302971194831979786722572170771502903490614999598748426748968571134575881802729265224268622845128842398417085512948225211305140523351700169084646991202741235362210306945161889193603240572298662016975866287305791572970386203611761437486746712901765922506412988857814984350545145296204043750264756860385476097340023697909874666816248375142494898549751653636869381912993136278469867676244721339373000025877504186901323924656979074253053121286198928152483291919648882083925996363175968822417743273570189559686766718767422894622052013765185897608904924318508606653864809034854467819626067062704568217258647500786986861454612351785584667132217086534316104546476656608694931405607306855573772458658302836162999956847073366343402409628281326126323797116090944210796886058604865580590591058358997471443531451059579998815695921299153693363648419207726937456601073663984784951702378772625348754738228015400109201747553323163525278453569008220204456444749184809560297884857340515693671304431092070838877261004677111278713583823270914652523602577794347506449010078121523014258292992643021875092032934003200807581376490174886013531029017751023444912504909425428024255371663576021291483828757036037463973651743271451053375752430128398708294705981869092827932074401026740250320725759343221765345721156704356224899071228438146057717702586393418168158767407708902729957007388001091195205396934664789937426754208429396116619415950507740773768172343355000176997705717148564072335799390838679699218777234315044693560434116657882380751644492620259720207023393817463188042171015420156725952143926318947673839831996444361999807556899488939216212052195424868118716751137411282489317386839913818153336394425319900507281456842027944296729885048762661172731145018349060054639409336623148765749258922976590604285889598388287657394276169083291647910184927560250467645455175277014235112476419907287893053150062961786330206924923587501028598825392121869220834214763539472156365291788381754626157896678477780268227645535464158181836380413260783010945231968596983644744726938712679778711632825459245244655247851604186222301568178422170665833569452291261114217894435487353859842211759571600596346416924854577060260738697674111514286910309663444029242093515554587303177172620258710260591299255247661799763829122967973888794479374527334008020862378297048723388308981037482876334723446537157104368174296820781637055846214313565170623845717952012945650623206104698119797329417587723744655628864840638703503014376084753405699197671509284876945805759780718624157600931461907870591587946006651058341204676974506830436367499828357202559398985013348590520498783295003518446302127544315982550246434339966157697317646585305637757948797119586901982608741067869429155270354724074659750580828624264998050425945410660963850347708721371651157544527178420958346325452837819489211641837159173521212425778728926856701331661029604624545512735598997026100394667837963814777492466725461215665702509858393469343023659866807677581746692691370331944834605485342917668395639871626618021156881971907029042128800274068989184755767209793948497657072707286385773400831904595753561515497782810231315713333379249099737200795586465542961355717771768938795721620954245457647142050528027711893580313968570831542635641998904950820791639528650781207280235137341642462514580511525201617661756020852573526358120508601907011667551979997841772089829709546252860663453050446339383038087356948017602634431476662518322892417638720181923728030880369207799656744811375161741141335952828023594729286433061672076852722448841936860206590792245334722767589373867293345465000122945297368833941116487576656535377780591157846118563685498390192964141557383524056936746601727010779494871974007321895913639605199000667336010134478827558074646548262533775540528904687004073628503512712810477850510686823108866906814979795975728405429493984203787183140191692238301551564890796997263323025958720566175909887074162944870776689918883111107555749402566941344230446800565964354656078923430157068327998922931582558526204143977696452743763108766441043258729661368499932085922304726031147406723746906031483576922835385229929016709370122655760352127856039962401805836309673820801927060613180844250503954818838343610633945396251559679021017666413732994266788626142235690974705965173607229099962462185792182424471695338582395126737784110340924991289943588522998572372507592182280289195014033392792314127298322307744732367607541656601987409520057962006246509478994912415056231287696781107904583542176864825205416734028469836323061313042973337828005102134751396502553919866888957584289148131641587786572370239438634325941057329181085572950873516042291927296107164827440471385287123384315103675282904165006103197581507355709315040609950401861507324219850738787684723094943366116816449253765086054266159556713694605424287215965490826479395784079926500737048396489542510687598377026212991078345916018712697687551959153746780170644023644116172866731900561236296229781777329553070813124912396946435524755439565885578342246825866010732866042201006565816498409556711242396930864470268625896157435155440664538175227266614174496651479898098060804445916883529437845672947884912359362100577186296873617849870916006286149120387731432226495139580227200514144318040569868359026442665453020417896069125760428947562681915186614711277689988088316890340882676844138164394450822412889549835597876349989792293632867531381596897608383397792319357847828529546978958376940346063322011353494486794593075239083626100675412842181010878457970196751622654586736622492527878929491335903189014720071769471346394186626209313276371904642095358235430328995948134461010943482725104300808222460570364619071492467209837156159019254467663559929289647846890193617000696291099313097160543939910912695752639142349631853224341750492071376541417472141739097396481542745610303021775815100510912388472791200781249401065263717072001705869082158803075440324428302624989140975128340653908888038343556975716267198223946344519424650023473627499743600782215878940778470279418255120224012109734971575285923544711369563997550900285412783579244271460972267706089175062503690955022692196311119752535617123187180256147282545783282489309453079018666998388644986833694648317578550475243838975885864496767556130765235608050884483451773779594748286964135576873899252192351616176411850177575691715756616988350751953171602953339465803254383198673694531222354606530334624229616014095629140654912198862522259420172593790082440090595688389688371810804631402588240286462239619186054901274876813705659926176896897917323157893252501207820585049976706732958233206038418088652879893957600550732078884768916079206872405917199525112319271868392428818354399020618413685608355582201342417606651305126928769255652343475602494318990802182623848577675547187865833936673169108553032265228630716802196906773474630251262202839728359993310060127784335132296980927733442282631591548381686928423160659472563649468137910850696722636712754192474409179096184049501544562109738318133875616740428772965751688811962876523398393487032580311769012950794323384516813821616674081754731294144741090876823853265355419392172414652914993719864511168658469880992729941851561044051562774936958836656560393527480724228013635393518597608625635545857430186172909964234254392479391461915340197795234615889275409705992346466105981414927645924930662145440636198615454966916180227772841235107544736012603535345904389009893518234389450917569738383556726408802955743929059178258268236228740214709135473951760756044878796225289012590759304382912356406496552994110093151665615232816012788920052488401899844664061675773751894039350219978432292417903268682776573378757880711683005889387319182367636505426604141938768374682277425538435681857224931144079972486855057008347074012118246017650894043970742287542320850622870802909818987169064654788769380792223360268990980640493050648234219459286609224421371514266781572123700641537574149885747429353995400127474722863275208413768509942344951007237532648637282235796152411247085923673500322241612635087199327780233566489983967652284082032624295054059603647468865997810705193743483663653552426582741287663893918808480289691028962966083907624984343568181532900782509160916854640978316316172448892256742672796881260897933234992603932498363553943752613482187244365099476642085109535359313244426264772642161378492271468619882594490996995651796360119508520585168311518382359577920196528113098719255387689443301402327485375328503001317019562064912139920457218574130415431329774911535166811618445446097329185658607104692714603104671945438497944007842944003871683647779548624204218214251749690422179506488401018781453523996650254185659608260256538193571761072618260951094499430480151173115011927135922941342449250662626828653582309392173859343166102281460216559898434045376436741492169112715942050923001900502103977234634233734531421807461075393915846312733628205756088538490984114568563748318572562055233544377438141281883428369883011664920607980209250019333270360877791173389962188605918579081910250059016776468516064305594555125426706960904451003445285422150055006351810911091877711632312816881621425026861363089431590652149140710693529962317391417265532642701770372075229393103249024683014568026207162718624779548589752537031190907661140971823563356456596030065491562902886066766885293329978187394083350632956364641812223704272709210392683150543970380763183978772508300046302289031631201309025481977369696455505024319004459972357168435030376647641264330968864112599607248694208318077414647638900265490182745046514182283483713397510103604692752389511300663750984399703208148770201793884135825200932987044957281848853369490580303740002876237989642996476871740733762308365263876227719019607124661721047179903010780010718096471395284601296149564771517879149521549767775901645738729033999736542195428275205150279882769338426516639569545274891604139920101070310781907846814134954573832572698157927311560762038842746408822303371737375124770486006335968762127615199225639323683145421719850089032345346383113913849087953067863555027396105010730909889277053434801214886828947586837219927037451636223562228726496919868079497305291669079726063683555337773827447292484439727425947583529197619789678304598895005192187542999700063553926361033322379139931557376521485212299531917324959711852024482949722408560748261330074835938277327087943748018203730609552492184378684861435863665950373371702821285112651184169937248337624814506112263924465314391612478461520783923313794636866556040809563690255660220147109989550364221268146227938702306846444004784495930317029980032398454503454811021231338285823572246562717096330745198658273195720202633963834945776446432399784513656598739878306819910047236372136200659525201568779463629302931425363702908216275460060235914423966521441702816965695979569060871765062765897531801549124017216089936137246948895820156445232678056936621645576219819016086224638408618906436556860561924920700914295696492076066651531717340495541119734151749289224591198591216795737296058441299890135205515630109025760811324402152048289017161110102668996798237765476285934341773894690186998250639140227206453413669313491979397016085801076740964815863184321412623054922213194924021353242322016494207550176425971521885943093099782503450762399881486382280019745036220141302725400132361772608670885681991298651882996129838101181207176296747871913901989838344488395415066131056224849857074030635426228250325015935815173409968568686714465951432599440341080170666797409157735048889672544390398206497605804801637506460780533639878356217628918240116577075525763131680029702450582254608507422065377775345504691609450212691781648858042727951451034881708413808105074962273470080417608765393364469130652866362577734985234115498012060013781868034000208516923544235919707965700799656095692741285517936311154427297774246652409315817619951494129348004400132299659835279096195656000545003560817003040157989967981802483269240672086209584876060718832063292180305379002458022201065502404015176092681215302362831163622070012133940688962511215604650971840838221783792001751742786814366305041696863368005148266087267854210227689585196256213647613158318007641035220739043471475772388168474499373849506298338067417617607053163433570805754338611754337153766589896187337802280086320925045429644151191686166740147921535453342276637491296953870563998131260040278233969387929018717138795836086133615675752355740197360389122178890932658579263266414098815693829931962985658712019279645729037895992858584975002594093975953183446516806731942457367542824408318215436141511955177263475023750858847584526386578072701269270704242777464334425319628147368002238534058177986993379449266605644650606960998440303269052380083518340633916383263400607086648996346252789947721908617054693319645620952679669073643552334506752389696192410682493171547879406845256127151291610850140898034035501838562778648470721078580338692065117196563169795596461803317687474562604426028284564425359078648748977166014620615715628501984380124616004575727561328841028584685599325737289606330140515279762548118322639792448095458877287219604263595492508352346094153791532991664291941919352275508096427080950101066076083163390768411498034483416486962194561656749095979025088583160472014153278722912787244264252483026271101971991779841524723961492350749489409988893314899161221787623281636461068315489168807361438156911725462097167036795722119111408001642796100724112118051249759278977190901676918919301791897441683520428790838234361776522627404724189163963274681480367493004702549655718530473333642356748865951679917260891254416088348761419748057490664593513206524147484001949519124889886279518123596594259186312313642162467985939991167091411108482441222508558237354744369550099179102582374627101124344773302258241907355888191582692015713083665240770530315570503087260391014934571267529262290300388420079525850434844532364656915162167798055450580730416942782850301932150727609309785143303128236069954608336321650959157258750068516647005834742388121816175477620317579647729523797623006517210626568557729038525331277587680459041802169413945657765612758752667022576799718083052543477328543631074042628716424415162610325684383313991820526708718323170354861794995644041623140853304391633931114633770686384692800975555700448265305396702540743626439479488015989112559602650614463622720641392754271735462905775202687766574777418649614472971941799577842847148927110772011018645370530642670475760279619285761979438761405016219708491492668582014163771357800712118073428438431493186863449865361191340611134922411112574011594278470627096194912129827579363468547096516058252303847059753529093106174671830326343750599776676625833885133642481201207271747279897126553085725145611189944695347127371766286182307321949381575489798412881856849534678607584485705667612372352955249209285158172744483749456940017430333230264593782046881516027659133384479905679395346335006132506624995388029567339270465357130053635407755838203315548710824758089437324405098325471572506390969152352285858608039011619487375249326089775206935143149888285481400677094093928174730267273982812361138713735421558204030289874363337543464789366222720297329286789107078888999638116738933592351825726307894164938344299894781948131366216367664491797325714973363906302352663287043853701727599099847921856943369860249457515155813833341145102831794762585168260040923887434112531695747682836669832539080103751718809718644038754758512982604981072682110889190340677488720473991031168498678370125729378377552452351663676470851426686436554539438882374528786695061746824816431666164216913947676836524778867789343509305097374485320191003799390978722801739173378155779866436618865990628803867938366744325494649869194592732705130093874608375650383379863763379559351723624520492606689229457292533275923607843427523243222964902202799131889655226729775103739494302510653624556586910456183007181500502442734425661801552212036353684832516381275037454935481726732242105266182064082001491089627657619022642717849939126982736027867642321791510074612728366160015241215506666518249495971396977237976868438002904877393006657873922954505985600336380770305820752189643660311742903409403783842368454759185568548354980107521825421699751537485692832618120033337491263834195348279168020996539096645393214522705890224052976584162853759751125945739135889151595066378074758549536078782719329898262979686834054113857882462190615822241273360526842418759245265467900118060626348270410667601159802128367187625865538919917625017802773376193462519215201234238296613293228863987283882382345794375145982328350079393498231901230334106549535110987106993531009073165282908473511084795857359645787302059631871021876857329591214637312358662447115144447920756966924367618254830619127924467930320668149128368900236412876481789087169870939330847869288457931055092796679686393005070685978244530531576579583658506685150344078046922931277935884552037820603738512368887005440872483026026711460359981117939854063618439020013823065746857678979622646971017791827184602838936435234415662960254445443255814318108153302470545766924256748403016685861182285784916889522113043155749192620367407518393778075093113378839956609939433310223708356448238983884670599558662110576133927249380949013317463611306394808823213957190931247274962653034704680339719521341974705162885373689593896064969937798438427332441323170770440103817125433230718143228964759599023806900160020470655688786582879179105573864557401617528651423816817667253213123824047537725249834681415531219710566976675057247058905147269694672249745929824570381304313258252409699415916378513455549258504833164150741375676974103603791531986775838392862003120719119390218164712844709287942315939268253303821432024415770301261048022660778540935296194414228448422374059913241448875686031721587843824105720706809280883964767836200124637773647656311020522469295491062513165464211025854131329748094093073755861114114119724631587785353904274467885852708347546815388945677449553519520429417512111496991692869017838465081307819898569025063347941940068195946722041285382835552630140952196241387346649489063670786471903273923306275592935854371644032299133114371435624042007082424854305359625039389648896069333471776185519365996905281789089071093421739722176466438455076196031554923392761472622841802929660607604745673395503833296142307623372536810021053012154447731785922203839505749139089745356878155363548316553881772764403451160578591089524441134859511298031626568435062894353171747426702144556662363477300145603906277472872657932969169146923434268276757373831212634514526295686943927787354719445408684908114713633649455032421931711693269479595213907860285833890027385338186300477521430048191710482094224946110712632376435391020204571179014924407291824077738832008342908359235616668622086043679826582113736667313110297740940200158474099821166167609552412178162180732832398469645456290330855046421865122026301958975865914402997135306399921672660257616851167112059307867502360124165705990155684752500626686150178381459267138304428817375103475129629093705777879783746393944007548790845413418201546852608580833734534684299562746356656571053800895788996615821797628127672482214422242482293502452679240748225974041094066839618533304678740094059534755547569982515556790610613972505794190410962191622828543967724750311450407820768017930730162216049105523261935631458380419552209913530074553662333192318926966222881859125590804378830345593030980276216748387209916608310974344071759265035670318514868730940556878697950922081797995175215339861215405552869339995571135196639054118024928699932385597452188597558107300254153996072858880706084471580012251768958258527372452617642372383396617316545112905552954778951249576886757963285034232514348659307015134505294323369069456206791139483429926157095260771130834564546586827193809365391561712656916733541152088534940801677819931004818580365546812190122587192609632560988433026873348671637662427893016310383706956528447295100573970146101784955327301212391613338864327487552815930795547485880849955979140371174173350688954772811147521015776518822100754178815599693523275595074346659253233370565253883707070817196333009086819274014668266835066579876601817475373274221810193174879131618051395767393378702853068199371410217309476847856110745703952561086229698242917721884051482228677484666043684575106673395588968961881679921494660511246771614662046851735712137466512868774320755091962510127750470996933910927460747387512617612557157951459459920875134388182480181865794417991333266288781001195825980878511045635391825253028976228437311307421210233759702589441073033375458583351037965796874002408459147365579617376020524165955484683867575772936806196290929647055994115311372694563694435094451397508258866402922311519904868951223778698433346923867509305354029003352889521277549745459762331334655103602870247818726814940718395044467698709091883091442726447370760562600337650121881923193724699688900955512655714831113241877202901795417511592147727628777365147412268052224853565017792900141379736878624990717012419730820004582711870013811879151172995716794131562706956109580655115304010205206170280036919487738394587947217203996937262940400478730616211471115682733687237980218797057507013347896872330779199219338226374255580831028010098383982260765797002614484422930207692779675393188258274877852160607476089639700205613436713358804944819872508478804928489727986855065425484167628611789264450191443810482398009765790091321825600608175919541289064765844421719378002775389662911578957048055447586114642251608573314601258327373572299572290405956312140941059838039782186675781389071377338902197195357874703769446253532314768037197498100708906648595280507444643434204307995726031072865784302953934785242474962541188057347060454828869523493815981627360196479910434475341717403455936741605589323361794346088449685845952824674538782474490541034650988212772750501366383362689549310042507861030224910869809711792838827907463444733037631902808541989967386317749850188275580060763408505135208267943892727315459400683034698004588078370414066752354242980528305103489243384687640918115180901313072846242747639793791901069904036689456435573355506690399041583803049439785188394870502232650641901559574908782363472327259324827462616582845076182204621844717338493876596277006552478519077062793868998649142788717783903119544103970752925090201545120827339774252317372058353021597325361078952403283520398456358786366426882899007309171472559420381159704808588358245152790803131146897800020048020269487256402793462355758184347103338779454999944635396411440264179144826764301763854905715532992364757535397903635881615641609760875686074080457466338851868400997187626685994610569139339912196486420893401247745554208784106150717824161505682162980285716338779717868971477832800441343769295495870489532180404376188705965976964770794046260253350766855701332626735460519766635186439520544311360614282620324210511806816847815697291163308165246001921763034062082415434628887053685849891820384194955399580972796221436122579881510423471775392416005324244466329803301768318323979296698624368187700225567431527459040010573124218860330558386180887314926622588181821600158337136746984694597508633871801504185415470885763087320879835400742085573321782317053721250896480828869872599234612784457342455331399532914213552619628556314292059041245669319647486086013989879433220111739124722972732753379198293438284794855479802080039030518437711412967343765096625272528873619072249880989129101626908832125481837570064740641815588647465263328647947394456146721382590498526449199582240702558897351444605059968066183633126074038926318600427227322923781923884776360152981963679417346238717021660905268349071886031380338564473172261608879347687000718798944368156341971588719355374084377860342532716142171070790229525464672023416840732470242638309028444071711605025989071202781366433770883840255554995728996385594661790375806882987887866112198153704572819570029076715095658222531584921106274439325628635781346816445665579389543041060955805041593441795656301493434609790241597370672345163169858941246906481527294082862521739589112985008269227515615899123002465376851346781653904530351381217837856369523464177582985413125873567511629752946268519193345676999575462833501689359244878582956886833478284877410456097091509542263525150605911723110330127844189508755405040806240015699816294063828256685097366564756787387424937205304287206230241790839648528921466734721177838427687530487046717116955883868993125037892525093309599534705120708258161604898533863986565923578243970752414761460802595748877017344129018944940714984857614953731076245545463095469794344749802708205328693603322461185786595827916630045220436060023267167332680080501839402696642830226999643736735239952734907437472165668905490832698752700492611079123858266659003466321110281855191535359392666280052392536428385473249093379668013320752385066267692100819801124254984325591984570800417114186328321471087258467741365630622345657649022749964740503930089161092937401152591180365142705771455373933613166591663294142520037625598810143573064349980260246739848359298818714549815908948309691937123550254778668004536518846836180731833696034756321306148598595892904647742774865498663746238444593386863963251145646831652064863389705211070770447336062050256268798056224403120522921727211463051999652951779586848002496961489958632592604248136879814225269377721827773606071650192067520613206314108551247782246458181010541980477007530066140881882635319279958070334003901143519659878301502831849005467077472423124829784029782641427425783763546266082145970197483170721913426911536152775985421528380948791558019016424739639115813228273004399535182612901445257059804491602802013228094298979496382313812108116305824637685723718960859492596218730035722415483426164830506216641690120805382062177207155028141954201835304500094059260025992553344774109687932208651931169632774360315014989226112399813097323287548027347894420490111325775158443967478693573638790275229754550913659880382053950272206117403022219603065369654631549782455491882456481292768147939243647091754527342143958433421784351282796934207645398069537677449699480294520419959138596206146672051433457961939907546185199481342582858465048811746525393093410602109792173264759134717361565039950396253071226879777618861952576787383482648729775549058393021758291313978420910453647808337560128735664603625315599217319904954555910988121125665461581568072709150507735339743844360986612075976690381764749515228099411330110078925492848408371052107098583772538359182907435293019956159213269798786546689195067652349085744462940259875309374588919243256174063779746231414217028112140892666462779938687359507244676922387632091017882732699784115730554608171341506585441326915960848951602138452121224031639023797147955556065199274316001217817128197171101443273387787803620490482397310271305821774437528561037473724751580894168084314722952597930043040051352047146226503686751226414630940310404330935972208544435723515559299734235860126528401197431018524863929331146293191249722172084372611066295475974282591080863227490874221460018395776156065196637928576553788973810689445965040854376411973285152296485864224043961993490461049581943450955737381453623495056504682605830821681111760032715802327061914891959959442293388839963881789182857103947167782894979201553088845796700651677357308313358735980729680358464950084668377099379456938899443446828871866534008548586583542191452715818682809330748926001014128041301788595848391350117291840674452570867610825287351719074832935264126900343372051608613260116320545487336797715537435759270696593759483426615054468268784679858675888672767874075552246665696824037501573052400555027167433293851602671345925305607022003161019479916827728772445622444548820369494065876032395890160836875032126495613813019499796617796067029781220123128413744430287778643622780281117189772876273421581762797037859078625652006122174706159196935606001605537932887099432125726734634147584481396976104343040864791573112618734049762782134845469149972215881712823054103684970535275120040031303631521001165450617002919567941929252544022535716042442279270655187798750305372327234278694215617124545435404603659508866317705558355596212644850456957719359221308793880720937115198526687317658137935379764612307627457163180466658964909046405790527854766190842380929488856927321164442864018546072703728611392515866404196073179175760250483288771085550807788744952807573686927768841606143394788913401510239541669214830036622576591250240900747401365073380492232452065252989504414564933500735038778137454883718251350306799275461881473369997803545014300840924441277773841068708367533089432772735508622838260529007151831056361805713567570686099679032128920634527208830865032645840389253303825753368027923631335420826836457823582314108520767229960621248055871506676375772941105287391916448164240685602330095177402737932713329885321139241105749974301076489291068017663363104111501991466101138531035015062863781026035725254827601606677870241113149988497815452550023005694483032926265337238889434963928794129152148863385251406074037176105243821059221434475045689339987286397823124511544692688400315183963422276401387189334359971235116358460998426076014340772092939038722774646999550757890532304683673160946514690690228098407585437068800545021802632713858567924774462902592090186730080268714997456953876447641712867856456245373094579089757800543954286297549327579274930674904265385425934174941155309844468861793632753753213788078751577568473107286559970651658842679827565582242025914115581319791602923047917987295711206628961486048689481083952831133709282345896464259121855493043265125642283493016526897483201544929663887698341954879510068428120620946781464600498872904450467171228172211331800022478826921847057289544993398147344413621851810518761881450079707074487056248871722014374739837570104925380652073077019754874222345358794420970946549714249183815038818510932686560522166354102974021428042924327978368499800670861291486203572569407157219593489775135093216600325022920699636934467392881567114426313454458928207865487727304662682222690669474778452390145010326875899128618835903010664015394878517302641748447932691004759225724433182913209826234823591104126317299775785647628014694756918658651404683792363290100270204868190482212605155460016014392511094106649633969251737672424869776911522858212863164896667683314025538288601311496773358328627176475324929282191709536484105103503461920363358731016419482249615719694586699918817889340434335214835660567184042614509654113584637159429511481224576119413715536234690462579940303726208579224185298326383026773600668982127810415358150195870313081932568343684802850854335221772006071863244859925275863009185588217612903426658206779846544558208002949669953799861224808346437564011449224444288517403334471221829270459913018893706167164367116598336993966312195932483475586738757188221825781815671955671513208945952109408262405191555133833884013202671164828889539639557747906109920525195794132341465004628814435503044673157918597238349906195607147319692350936929860365436269542755802334778522839781383470404803382386026317834376022818740773813951249232716599089784845180912130633398612100328435690844013807322254359837252440457703334611513827657340849086284613243629028317241552460780726698816614632194277096928300373573816275251891663740484578742179209645920892322272530665038456761988966001861353125902600508866835314254233416129081591567362977420363388377428764622426632280804722219604467783849240873940153764565770819669730697291744515581743940737573355876069617414898436657533279510482637587404154730948292418046554863760016644445734128214494894864367884276136511533876788114280648392231157334631020984361149545520151356693476070140325180422990020930874090602452381143289045961989996214729155454978889588097849625279832712440790842193445253495000244458694053802901841722157961591147569229381163047413233996062757659978386796721863889686868156692922391261752624428473413149030674967594699851236839127621838945175827386213663385762393511908139413347813048797927416078252284182106673796283675723128804325405682949426116706019534037379610407973119860526233842498325690613677976786411320281286447278508691227431265721246791305760028160368581597111936962695226560788047267783303441180879991169510845341181472587315280745453355963627772348308861754111301550551361719354395194122496493691180768156839044543680407396115642738277877568868920699308368374588098305202326264086967371249066154103888502888748298519427624403708152669261993862551085602186950631216685833460414311283202993196284390195568006341154212730766764476868007169485866844243018726796052860675166069980651751752696211393709867175087073483250317389673229046900420802713175176155489103904742973921797862944593957678755964305289775349921281974632720482851489455368436858287079101209481973330161502418470486514513442331187318007386198233731508990397204437219347822203789266348017825148402755074194180740831954370364170116425050459097890302950264440712788441068479428273945157633840554848300115611686597603704320361350319923068664525320637467154390713116299775288376840817842244166775384754302018811087488104085832746417913813852042423579596235823516520544465159522066167842723941575147498675926852611048436715614022942866430466124312954235293327738007359293690206387696964772103449887624124116745513853986415864561561787087556648735425626829277537554921248124840076425656951902200019520849775750777849525042874379930662461698846649129377146114904371729573573108602702182592285953275505116095150074112568551072863494508180801127042073894111238134761446434499208367189634579144687584765450733425706525828924941219298192961331375386615526952007010859927781216618043764349161859047287604087353084262914531396305916620061386717719399593077695491490701865383808982662652550344710601282174512548460303451851991499136547481525145800173087394222978271216142155432392888981947765449784205999092968712050390790243902597349789833194651568113450272831972440943223964465036409210489700965175491691700791629178773028331682786087122448789191662334662000605236200644538560836882842286883501871361539234293518889599856818706055696100093021064112907935921512764366923386063072043242477190525150817763709657088315482483240359058247108732855927476440135148718036105898946362400229169366091381765573986185059977379936861202872115949015540897212179715065752479238749975077456509382353777664430763764474140005084492380824573341641457562018634288360627970053154122031444584558435010248601685810988212388114959490993285944141617534522216546923128163343446691030800693261429671430413194010905572310673945291207734086841207782174430803239011471042524246053954541075480088112043916812176828328417305923045512397226782343556475845458371887996873098790293779369304985040560569752268780190923967015049070162446086003011441722483192440763518023831870488358140916836058830951273138320257367043592178732273695269697669256219924911003212789973981263376458071265030725674946244701401208021588503482614791411114962914641601127192863526971757643632005886687814022469752936812631562895997282725968066520535268901435341416335554787910693388259558396296676422999434929979256683018759243545430806752369356019003337931815173793006311558419018256414660556695021886639564589714633242738359605891852670726821048684292036640856680641190671005696224452164120916571048349469895322350138825444718031118857922181076523148549013551953073326410867250956319915582442090306582131675653594844709508227351405366649597592155510555251753379607501364596338073982849425694100458714729668753821992998753011808536927355386627627225309866943317769991140841409803348315251498164873506609358107017635234753719851649772565373015579056844176337852935151340204938801984560544500001445158650427771986750211805394664757869094621569175405962651815912470257694077957396742839462180393100427914369202403558197264069885407507191918342862561690672948051317482700248448608189158375152659502769938454395558223955439200176753147004344763491568582159048778278535436784941189566808959676416064395890736749302501261838127598752513628820006057341946898587448888659362691959234089727014923142962080049247938455414232432560002962239414417454732364558494359916626240907247428947772843059904100539775562582965090986389154345588315472215213189857679245801560853571387523112515058164326171075335916324247053462826883990261716511984601300498157078770486522094958749060094184209123568100728142363317538713674875054309358286588742485692400866477743320166861104590834092554867214853521795330152461484463628472364230204781791878748260332406431759949694343491371041646144470389341682521870132654830963408043173931187751847590311126295726859188276404043802893406768756872147861451434142539314615188013869117850284572832979685699785917542011685609896997526332335122529298728476727747031625980829959756558012203649749808744876590973219958729732596726205897763648015433799049631654936372005250309973721859614786442132948625029474066549182517091851130815801030370846612727767476711613078248044511583158286186158329167042528461509341408639516054232653137648044403902274315621791639606718275686379769077054829095638087732649751558149545416767103979577055861334374018398923484998574671159387030606806517588564903781080695047635001935610023071006092296054405869950627342328773965027477246570570564636555611528250563825287162067419038466122978196717816768579903370534284347684450590759271519928203393980606710567635525108556944763138875458529551965406141608309676605771137838077555314416416763971758195332938552703732567197629874286717589376483357370426161248791075443647163639309149589324280524494852572886450146096612614810814781916652983262273742218223870930006110119965974898391149290148777962777083316946230022871401502014078802313962632124092760510173446030158133193959256118020524439142099917810447018202823775229710194011998857599539603420582411761512236652003030445727589772834550826324420408622190173485461245774322901551115546616129318413558083819561219133721216912420884471099171022351033809726595929148091986230718011623006350574033680982442014333146536368250200319596080099184800905638027830444064688537416968238017248597491377726069407203467095883022742500100345923469219825915185365920891180877119380680790511753678145433981440561281046462545053989798002510305971398553766974498646364048563169149430406780680643046378464004727860147645567794961604992800513423190713066262087150102979265838453036055589053143587020770294473283196001724618147929055501516584830680015143712809105833416067280188891179075476702648239558949440653904852985969288399372984342023451186292400042355392031631458269147682769560832377043747749456399348229186186159259249580933697125428859864299124523480061818702598080519653410881082761868419099024223083003376219315232418587497698198675829753663434670768761104362618264394090859616792658243619263574346850327520490981953403727279443295263873041619893236021732858625633717398580434841347380610462172383854398823150934484605740098383750858915163626735189766010354120413938029077407851017204499886449677985594051825260290758748127863999290568781981543593365955719957879988789140713945075486575113813422725803908270975730619142297413028705531726155010159045415678705703148273412932699444723434300686611132099258299980037758868568680805718628004278036459742929598293110673969794209748093845540821340531389991624147594188684346076286930600950187206984043906573336345793392693976280349983912362433079206687452988539376915911235843423503783263096775395369700020590430401236184448073013126512807226052327051737566203199842449893921819809696448626468202689942286478743230944908777983890740590323473483552620765695759532724331349654716310671951173440433081767410815714310329886805466286094728739951254807329908369554523026720178600232061134004956320978413686972692344475956642020801212220451717136363514500965009758245454950516773435792846916512496165310569167288211395683585722855669749704372718140026928420252938265796346209140106159853363958819853985971123432283244045756125373925939342793552813595787284679896644181079295279696306951963642354408030734686720522700391224573852495416317561208373759110003347269818810229758726154409433271497831098164171359343128857859396158336424634275505239208884996789584346002072603818366470036463685287204547980645199519796606736195345347849745685444320253132110443489938087417399839013257459993815122248800605346153277986275095782506211726704251867464058156183342573982686400813047917415738252762467141848133165217515590773027431677849459318785797932082678741030219120030963175047646623493345917394071498469094739157671974040734481930092467993926909475405622568869753790883615956704363282507207410832430444404833648518685657916835707046774351544181606586337058623488333605869952313066960052120463504206330842453634450857870078529995259782953224129793597292398470140003290756935582587320543652409385851963685128865575818333620325623422156466926477117893615634766923753417822205112141898675224239236067532297316229031468099112802853393118843961726484805331853052043045696453475795580433061933489716765805589299013432643855259550770743346205828974812214190499890792700873189739292325662717206518660012117079023818864925675240502913214990100925398414059743692732959315078880360648121073487627673398965877703242582559050670918259312363575339807841731389052211425596067498926287336743898495560833262483612393419886494320581087463012001224164689100912413396279988663321738348875726235991442554860363683038514205171825438439343767732978610238769116708056000423068359124314691299415864501843330315558166917250231718546396697932916098725947052176839578734092336992298752188045864301357049342783618987689362022444100760225178964794717198075021930630514385936876533029743280956312079768006774832352360562331467131972648000043695669536108221280835277568919981659880579616252123435833840199934662930476127877770547198948302260759715687814215221480690723164352837453944634761185896938743835983447442276718754087556255561875735527404814324964774914263344920445183306417507003580915135724052655383611039497693937274318379500668707407597362451212010626843166563570498199234540746009192037887809316989132514487514946600922150904480127809901583731682788467728025498710042949163951696397438197466571176950018867886349834441371553011971794821435676520761349410014916672430062057512307583655304725720950524214829861994643876604290771963655948803263293144766546624802774233872588596318690053193761217769293843431741706374687583155291892842357069360164076879935459533654129149179588895275681591069117199538870482367161903629048583035128624709673027307640722798442517837314037696402222291389112434542096478482151304423272053592878072496455144618264974054747065130478278056785972752557753552497758927148247827897678007314533946024367610246428748281287925404900396292068524961207474459082775667497418838817964791511563417734069503765303961855339194400526578345789543385974943408650350577526629671809024563692521624952818013086517658793640559911873606673732172671488031031914169801253434069482975257544059177141663576197272717528529732110620598195543496063810794447213810721080847563164610284449104330827455020424906482957773237948790917032085268437749475121349686830691419027622086220221457276392011733212334188676256948051697535635396464773156645989744320812935751625555354227521199968109107259200424484524652216539227346322349319276775951635402324278684654733519547232816108030339461825001477394420326026406299582262857473107842288759745812759736840452414252034075283953516936598204467573393156196097586418209978260247769852080609838754904801842165291667139484203834211231172008537432957218651020095255849682813474662819936860229301796269620003203343777703090982749882982610733048458051884123823538959154980013134169883961804505203238000670108242645817618601445545722766239062230503263316171449880037398896662888368398751052016128663227196410476850174859541876635156183345494714592937400644028583213701078415737125562790364626138876584362541245491832322259767771855682727497457437184583871020844111270881412589954437564821256446476308221098314241549412488791898225501999286972823469688347426010527947301908067770082998609747188506244035180341346112803482088426265280898748992192688280817133017547305374395972918629647173065012720216843686966268983210445092469322038758991529380963562748440818479543793368539213303183267098027520237073987548401794643192968159257229759398237170223710920526093250705045646569810724193063627998283722030266315658292811111684987251036326363445034530832684145200300560729532052742073197222105417855556842837326445240824140081078210622521163344431195661485792092082984152500807967924819640594782321962994697127703441150781982914015028250958682834059355127265235354986488765392903960276952645292065400808991249577486350855171121038948843771655752526745029411478275405338688641979502167871467982828849475312778252834025557469226941594540429177036172971060295990101163139245764401826404996684203648794385984104431437325803419208385020165248229135355797633367341846959990920690320257976233587447112743771714999670166503656980637085219651786991905144615099603715841368761519288489052159924876201485971566691793119440856208925764931130221681320006944029589617119899626086198701117764636271558889993322561488955569576267113925999142676764037003264861011371373222827681669301532063541815825972288406845678441692535144334760850216788533894720598661766498307486342532547937423528142199880241995182100621526316218882951918854891886855981968501290795801855493123250168367511205476568051555332012741597564881184953294623952773092471885212924070560405819475061287653540851105403022480615357048418074062602303312984666316688874196382092632574300253389628371181983480583785729686264724068769605276986675449748847171451806224541847891770239688203138464218168032004259697478157713671318054878187003196331694362691548649639928905704958256061692649216723884434176763164881526487961305210828565198718892928465908442586826151024649768187280435563099024370229755753981444100443387435077045639578284947135880083506578692087227127088753670445293332675128772350717681071251985584324186888977851183639064726828582247850347094222929565185365635360658327782344682388971621016262797294622240053982360224513426437888846244281372533724645839973430091169598073849366104191286489320025536728573652286016289468118726951763798796537697308318427828855519077781387997073851617734582962474019834229125962737059277516164043079620796545874059096744155928491771506786458352329293632422375333148101898050993052618344638686673389834806443347970078447854552301477540751849905113932432233228793414272836720116277120860890860568498855170010453597855933086401496720081226496535382560645517504474784628135624584151238535097016218342443347050634389336597473820444413937211421362585828183459394751500384061567041268730723463666492956295358309485938419162430983188008966852611563100633542983076066770779344027236815314389388318684407500499320624960974044936912270027314561195857945222240257276232943220813167614550286690932514763409119039404563950223522630493564403050307113277918870464301263998745867225172905137836666961888814086806535530890216278153816001386136202459061083011489702222077435802083086373141586453588169389220346103863643900843546182400519232403660285032615391809526797448631506791782693555965422820360893976704632780187176036259321467451916949871789084673264864915769201004627413299908274450202063765070894130584641142777565597710039059741624278621723479585430165697457925238857588832023356065724532566559305918182332095642620792805717481766333912222162354913851403561182390227111035255757384500988225170873003088408910962176240751451685220874764889701673844051993624696688626848043137673558846884192947223763738588941195213403991922103675580065238209512383084022912431162033918193206922062732819994238100355732669125835314937275062981144824152975349514659251586767396850752814603494269605426614498701539365946396750159464561715567782701993429146362815611197189526006060107105057306573219979084952665041898236531527999298923440225500122082631673301602339037808053380890396149674392847887259097576724406188714012550785536476831086012748896079062432393944968384428784428034043850441071420240119781679986652140526601603447062521834952606002636159603355633597182275249412233862399875844825652305275721817253095190961791993568655722849218146427767043709823890516638041979273369336801023038097372801839039754757423920374235028830731456349074920229429325640997673127054449544389031197696962837995059812931246283552319411862467179567073682726825212567054370675526205439626878416110074991399689686314227899697095851340427644911084674847176345378420816560685614122497441574071930671681385460613156125769342016699595135771327462846009180058474781875216900258263549131083733227499308409810286962124391585229412972277837358899046446333420762518447806492820222707233006896580469050050763859244749105835369353925831908794027070878789417809236608441330072990652648064785369230824341280906917497659803031023629004756706941742264971844920663564669032302070397702297160351409803594320963701057243476323285525500514794996980751214082977259361648086194367809048820334117374771314013745066595295352481581655743916657019462087362472995506476940884091491517170928961259043667701423483625708260341556469244423777325401302703474232062864228740442448125857234183985397209891792687299272651743102453157605700792074412084206250311648385138222795890147810218678033797288360310520292009985182765301513001543312563077165957579584644419307940613928593795566810184411043392882889113000031500219163235179312363912992789823757709976864579912300338764442631377950833351970944287316784445159426348554434823183902987382185740595723566827176563084276662057443942065522129227928271640036635612666708161806806670922089674179497737794216344628987766462926991601589750060563293097832770329262548977260909375442239673591511230989923114185199783856089681531499203907806085242100016918323462699618353786360246434912568895915664297961896016886957631626098776412382985635462042717081526578444167344090070875648842205723719149456037879224934147731538149732906617554293696150301586414034474972385653371424096666590426158434068632342231815514679451670384698386254671233865811081133458575447596168120793314295413310723828676736822082391193642220209124380818916386660397584176874071384493816405673064316284326498341881074562450007365105685809691322343250993371036930750433309486135037606860765671318717856790364844961405343852810011035663426004219830214553509232031296741568638903816718182862189121437757915448997139025103105845289258871570033644413497881190749591056950787740993655558941260845192612618099162979332927745235621879730892796585489709552951375029847965113299663043395069360233707545644393703087858906521067868887692752267549301665634679255238252730470782226622363191277681841421971811336137322018054745785895223919396334945654394640020658868286284581282126543583570878825461192683568747786163111837033338384825335236718659166392925641226536749752732835941591061186828377883014433507872209176439772068830691589031282096749544614209666757073873655223220946083588014366797263081302763166386967366273751130105251225831540228810146555025890135604513091414819077989453205836672188924066001630183625061341247522761317023703392775055066596425311429419952279703837555668984501242103185017801234953245352571390762889292484558853612739226976267911986194004920219167088028413273438169726690064809249999539900809335716290594457951750098814731140020600143904184360889340230688602661523646834290236047768158011437105039101294773723808755082210149755515449403492911590601878964645463637061376818288922494264577860549607848369348100469743371620237765872096003889274394903715611214825778280852426007253935249006705918992556514030573779982148985872113683705418926981424044296417458437141516289208671884465967746450304917101632692643770639992029985681738908215412666031344928209078775980590351703736868010221132051574677133618843766828533112261903254368409352696198052404833952624715951089707337400286285381701673044731514570404431546989627152706897955673063157187858928877987612232948196818810133909922455887667870867336665174243223180451515112682301668648170351168706201251259041779261167562604820356424219694161576976551580606340979566432747579384412402094937738841717945029061918270966832914679273654183667267915239199966532643336475966449072273315425010714167595358605124961167312653561211118928309591701054120059112072531964931713830868740586654174397199081112114095500993547139559455349750678878873922109733900531736700884327172601815929383408585622725407563353342776881441388133978956772666868190264214799116761090492546211701244388784441092269283581188879548007317281031006706784139824513917423450443446660039619410341551981145263661447995643283463480713248407489981170014677514571539382118103121330448188527967239305708365269373565659426139480888834446308315607447455781943714136818641587646549215913832406299611649178966145758222831781721971031378853329978767060775497994096818189967519840848752170080058265738510013621309481311190171234878083736930196638037285128313792078826988274037760421352568819345916348104141424547651906022515489467864278137536430713196307862143884278768629095736654719209101178399572889995675632824372210352286691213347689624634066676511621583907591836703880730782611894664265942804181538751048026714375944940179977315744848274151747057411986270730070502774388990876225485096300991964908113819951720671985372580116872806114115765618118101737198310254255172359815666476452253308016919859965240969901732439286262793608645942512149712917812123023174585245907080867339759382033981781737337016278355572821145582887265461811916586210906934196466334308768747113031722247096968611492609128165931732390122974257640160920063183277713213956613812740209709379785678354639575088843748824400785307545996745398408380516794020343818408584837643979778819801283625473046494087102501864695228637713731856202605941944943784570765427828811806632823404026595649065512530983235884669751580434491232829922133012091759076094679646898519234725880702820334357293993195979711197197422999572699234754938145319680916571224454448313414919370300902238769479621729211626776677286599075894290748431664840865701105070991901765633331496811908067642512891415130439012691216346400233715192348615702502712480612009567243412661573002777205213497274088952407628473141293474768449483241230822930256892312220543075360778339846949017184398863639626457861992958728179126147828331664341151620003363047494479354138350377206210462865838458114225873054076558260844934612479907160243617921548138081948239046255852573232087193337889244974367486867640855658136058193686670170784186300580826710388584020620705768437082820880076367308605089916856807385556820441739553972098587264992402848000942526219275821665563854146607184821212026709617864878262360939858194394868804266135490097193647241292757579286340376070576536200516181376584585028697390202185067373784337348488465636231610333333886154053772217729686155501485573077184539074620466483631006112255159306439252844671272111622000825461159689417210094320060497163799876077872392865057752581311907047620358202811032697223966656834988977376496382916902561263384679405801394793163984529566844120815404305022542677523517577601146898073056598785200241204469664507767050154178582429076685263880808859200984097253102513326444931717407442076772029708603762153198046697744017024429766268240142892680644451410508402044452061359478185930045461147449362422896557526044637099888557907125405107273270876335795619990887530133357363016194563556988158435272265140736603915398522081716928931267845489333752690663671644729156812925859926930754944041494749596091106307901293493732576228911982080828617190318211303858464295689699741396150733948556429685091139223708001816645884374024699954547385474000546826013346065837729518127667149828206665631046773551996194888363676468292157794927077161121325350630362337345596324630860598261079199045099782895130272882360186454257927492717741466548242006430563007173290514605408814777138689716935981990860382946037810869448024994116772140323957972263696970041694688712573618074451565006278823948710825110591818968054074799032584515869613776888080880095965872694955417040048645417519205020889387056601251993610693750334344012349427119890693485946388351154098842144884382098174373868960282260392599946073310080785916309327996680323790996108372680842478678669650334811490899981770397850498198881190210932912660266774269443160930774393179483013523432655844117211646077445252392827128367750278114990174235466387722552254988124281153822545645330386039103903422486521944554693625770367953564122661586066180544803844071468404967498227039052463897307350112594103559133263865131216250882738818887987803098761886321968316826434049581098881292745335506956900648635974688043267115588735968406425433772787326160531986894574675387666556169849696437575528559649463659502214421911460239907886907434107642811408422277772628701964402773151731344930282618149143742191525430161113257807420553939261328057787753127398183323913420546919861468206917120525911083032728026441744025270386973290406628808926557625148302161804972608363077784519496311755974894636268370214061982651416936011568773705864652849799199538164089653959428608462474484444421643413826427892663505950465759355008421206689612269810455780905486803506789357987098300945196180945069757328112427614464114257529072587813772968641994431102277918165448989952854352308540338286938507440709265301099214308965281654875738913748912160039575147105623933035514846062215309262585532196431479888111215066627720063142970833608855681022033070143418765872555998251082282606175266379525495217247264434557035360823535451055997153007364262884749267674668531150628411178869738104106744297321515177572015887683091019573609379551018948439361873900143568687169477862254851892617962815379907166322654856855794719837153830931635835815651818176964739393094982082877134435256676338109015046156058266630907395445200308618175013991558930209621073636187661666511090996455989275690368361077990347828613421494709184198812932951602146339717464360655109774469233073029152836964315567948895573270533113211620461684058918999564174831343673429829921330618708707616471430807418950661595101725182051983712392478762425500104548352769516166026017977495446437729179137626597269603667440389672122595465769342073585450861930453393038852120672077080606516710911002019505819575689343123541320286320230523669508355813937481761236187006402131977879323113983539534153578057133642587472916863230953381366045420798524722112096890824145285215472428549849111084115283634198231895443686009536137475368234081033865780851467337896185291843598832197441739065437595807232352492532638691363090395458545558559278651894736981491253790036454335932039469208492155176497624291882409850262603688655083866474692926221194348484158557449490683977658417987501007487407692967508880005547772642930061324975957495259375947331355828650176863842672299214418149978341302148834374865031906049213889598396552935554138253115478797884073834773977236659526632246100211837824733569607629804467226871975841930116339811603938585943446566912178885968158476894949736997063082702379388518494567869720984978191832523065205975920499600934796987131829209725405592805159188475468502769241277426929075423654555310822808471233540865123836113452266530332223075744631942699194712783637367787748610935278747749296623373367386950187601568026587291095051190339707696724063399765210938398795338727250634581767426205659156360680028952175000504371440194997162561620217810039057863613793428769685793828520559296073745959582234335686239254163307538195835739348180165364627011994744037248927826703213605228496957225861920796103360674626907770274454544401756158516043309150278042844462229054390573652392859116020308594336487910657115283172011674885086138193842639814471874838798358713873768785810739468733182090852615072821186709865597129026785078176417412439173907417081994813627814129981552408360572663894643519012075154179841283777346115419062914880591167440919935401701803177392548781075387887650904076652526526829556461225530089716796953453868954732431844591730294420237339121169256972107988333532961542364382074805060840133895869446024027691987319637398195994433124660647196051953032153067502512880499577302214657296211026452247516996006806516476430619267881769976630689891181005804945303252638799326482726469956909626910494515772571243000624234195113209934817958044782671002589731002745666482169164592799110047944342718522112180990883122728982330774241088257607588911640601541677230137849184985483697577134007909163976601794211275467927476363426761261709685481675014219008469812237257213091242989726579321457286091346293873799741612378043669181829176522953891289855653966452291526167288718648475659687741881520672234855185432601620372843305501067645518019587485097223772155643851253902658759756289283141409226609678322408352931553121538586735663040688182698323883972397649153584521597074424427316502528033069010300293004681695932332514135476903796367760118682038779393227966595358296594117667564666771560577140895588356533270800609373570884584719623311249842387472205739235069145694737678162747761877173481885323123076889115079126776436494889662092103235594646572125431205616931167669096341320020966748494954406864441285755761263639126360512419017394898438513321682151859933169021964075443550367620332155392804755227552564859165543113201848025856419820373631923746036714347488907650279380037088258109132585988366167289835794474863740810365481716031429307366341147362170985269385018612547710420047866007756730415363116671614862530316560632316724836409869185266881483484770925311198988485814558721822093576362723696952411285618238859569237293841237366276538505306940387695070506345438354412976823179648838685693539392809447425364355146701669296992242555443661584383077720105954192571273459622492525853509064676631370129300812147466873309898250398919100800289128587176645302815908509195678509213641917929547319984635005898831432704610130923307405955893731877149642517530770976202523785105498504353585049189061883181482147054902362307258579321925723624017556677180161325489543528377506756587380537843887458354717105328001987309203734553661874084538357839799153158119352754721935702670279148132348216776115838150818034339270661457156993410546936269323246977933725821269390274954396523500518643633602221193173443585179305424443635410312852896295864897579398684614063807582822917862391546390076549097163242361422974280302148198656370817836539567713488056996583016245200094836614984646474666514640924623481534370262171925153259255847702253392877823354082667654373022462008407993614264579062395979218446660500648237912311233059423975230692374479360011668529933231154445096861703950016898550701292469819819890224037442812809635580371391340655448995080940317457845287780232611762115511439988469367543733447166241170337022650100567619763092388453689812020757513317029299750759060851767106306668616524802536657242632459151301884624850957459095655856298354026487790936361381335462669956144826425507871019717572189007273303703016891359312918895231285289866558273468202530607372731578145183747088571677566601819434581426455898095350476711340411173790710713223215135699390754174880974416151724604249888180893501319562901381298224322991831905701282287704913937156548621282903333488652427866354713793683460600600243490294043745549266110973057137668396112095678770927162948747792834892286129525751647823667143869612909758159169135467929610102429429405916903959883817140916423977418027403463848401581561065693139785630762250084084656682049718790677803189125642328439012129445154702209591002768370076939981547286715526652942811688146386685672113799305696253372349000564950692056096282084123051110268865513453156490836270232173996161343240710117957226993893654308794862152724861079494301576693533185642970266578169653596542850872129622249317156467611128081703024725112264226551255315183370615509752228995005581545925607858219423804656890141408039784552637947470936125493519671625442481248620470537279453372375092525587565231122456243083415728347519367874967908355160348602933374622229924250791266248177243801380624042771706389433189196225749808484426571774172568114315717488686294860306759304449801156276925591645001802288705076314867183518122134845214234112409260088051065630287954887104574139747096829218770211328820246290577099620838384868723965662988947640483443744415574051018258570050823078875348930092568486198049532247743404933765890919204737567157262579900089290423893222530080604022136687935916633267383867624762917786828430257922690584092553819049550276166981219539377052898071685769660095124287368229940838381782982213204595449654748174334097949309053744931426949430642610280789831771732637136726510479860992004923080479814323634263570751387051510878166502785465353080138541801140010694815850203336526651570971957831968107497835122533130413876815083056996183772482648095076002336272246305757679049815277042363633783130836872644860173566433012048164598387417540836517658674319758615317631977882935108257572757452767188690979137640868201269481329781460175284273363362769431228535069288552805226674776753251334601382676203933179244085626725414428210516340150463031075582673168474511223303565739757807296818055478422791423353474739808394585398513853662446448225285736599329474586948749227102743964688600027401834264846358247627725941787478268268371278382055362645130304631497929475020488142038707784292465141713023497783585594196878771100880163368344899046476336449467841987714644387987416836331864032764113005271400882681705191216637392617884628684917691189410615350915537881701263364391414068363839185412167632374456775085055677852397058638684908305414920141714283565574084764255622002483263352091766421966322447296379091605312358604462347797086344134084776057357585034311409857804089654509951136077627270919341702540640793105017340651716903847553134126127857310282341531247116172864668598378452176837567515564080064115187077524866717847468559998526660102470414847413197291242375758441444385805650897640095184801426686283959702661458348508084785736353122828313374086369763952076832417733616866173304501333959652434279632455564604600803971536115035360074812513754313222023598345447465165102409487037585868241804885044758676672649051529572441488281366696725549716842221352473491796896017457868363675932253835427103012964896650864166501226445940436592758596224244446259931970066627504424040422558848514205530561534600547139508082200598480770238892032527822934328378403209622681064070327591390384140789744538620488995619057543483424109409224710040488879559268567093495286663406585300292413901615770966822688848488429711844728918354835770506693437074540991833196065418243543193191369665136733984738117288257964831557718460308472755873898112051072295075674835977990378038526582433545395367224333306123083584714761825220413827568413185492539316368428848246715845348068920719414847757031527143907292755886412107896922362029613835206769747004499570033628282715794370923430278463850950492155213208982777932448306923903953624225587648624401691187060426515248908568543960476003663053414437526001243678504857167945830593413549046229449536010447648148616495526789755533680438220192060800676275443993609258923053731517620211825233307124132556322755576015911180157137669641159659708798510120240004686011578182499408374644431908349972934962738846239035604012693122886148182852379195165597369779399938929717649608360968060638456768230895119444161134404831425768327656155842772306336720965592580592315198009186518552490154358486917061717637179408673713164036826875245772172428017549784925793506907642301208198876102718512799510933822435426064978686065392536358581609376892508361423331007103280624611905526479649138593808437933892376073641233260967395244291338733598856326644893858742415576434594389378995439795513291520156968825878734484707860650701597321580985526750481900169792795442355343022488923925629007590366669931217241121317208179749992367410660518033675332614937878843948719490013809359736253766524758303596987210141022610160137940097835231274497388189549854304845888940097891121072048548591987540239002967684387570963686166880771234062305867615198135797823631022063773800823500570540221326527323006205066739315464958962308015493239932496830818407507448006782502449721551413858919516797235567578239300634208097892113097066559986091847305653248032361607518538345660691751688182073039472710399726447208149560462864074092931320028640336586011752186240642337113885747844510852342602183842248887071457606574038384701983295294792911148639649898553561349991948034830047585351591679423133808602774997984872019497666814965385373538855192807364584894202585765607424310195619603545675978500734991478503003637517328245274394049697193062903749549874963567085196541416075432567271517343857780750209846408944093341068714872574122571732940455499584853494100901370540318541227672071232089115731592414477524792282468218908217796238914162366450271139009484938266531847181945561751695483984719013150979772531095815103667319475209668158002161357889492873656453768096156745623049662043703247608566576563302720836942028564245012821123263709306454294036622274592549894515755524812595709520760777317461991382943377352460635151383808887795563898347059975289169002125295108833126510084746032747876773966137410323598930946449868455480621233482781831048533565679075296993082436968769819463374196896005697037997605147147620183078327616083317614744636479764382149515522184821988304750234231378478450419800758979404462984566258540242003104570644387571212022859171236308204936768807754095740241445940689567935122551266796454949895864838717043542033397865338005651691822218929141251294426181971270305647408828033241166380502029273542180133763077685777391169535836715179844789773046442823641999080223481862447715837304508690419238522084729478408238131566101875267121606072374502370464469912791739643239540378070940165677684844192884837500033286492515117684617593655081413620952140526845851625858134087826919803744276106384053168267488036426112146178678138236628876945428833752582955771460239466761501815381112944547852926976762200277088397526579664111201210003227027783236703393904664217939793840070552853585807498526488870643907455136967731026654811241332274174705869513164364602496643924240632879661083928050223280461989228302444259561787816945406013930661696515836112229112568134891990228936374555569636277101220377741320959694909224015508049144556635251203091548613951516379429070287976574664891182277568108914744486337771298108117961525732232255695482711119469262134940025013004704213666894435748929155841827422481786879460548871932927574128071309930531255039466967899418463707355875060689286326224839674272286880763378209616493160331835563416546586678632811827792960293712808459832958088101170017695161476082243907745022479181090932098909770667296359658147878200459354203336248369949823863700975593614896365308054617333927998771630961712981325198864036537780184065801708776599978665393620517715822625908749913445040798000079143356919772616200435432216102651029190941281286153434741596531997707417676470573730152092622834928949805747721117594436659155982033906426249735430252982534052500088185679229024467588555946885881095739196729451556256098901288749818917141099615519382807364387146657438514815035109546780424805315550967084558488679567483930588684989761709025771029283970862862398585020248349588991231739231929268022119652676194740681317971485409686056531996050193384314740475850871642017406171693628307707532839462087912230983541513467677813048706531526916991028289621853936302114440567677374045457672185572527881860041355246770021473927018240123897866912725507154122692642954021351137776225921834679851180931873724726421861869745458062264896323590528745841810512334759046079252890971749904722261729389196664534900199471058971074349105737032690706832850315852782697067859671572472908090277319625523217879694810777137409236575122208181815148762618867101650881882963906892836948261342067497495990479307988992253870618704768737101652307119555488295423882264588081427478844034164785118595223993003665831711331668994936773417449286874782097055236508408629970814418569647356637651915346288655561434420297471252078022554579204912805006222134953950643348069438823812382341704210378132600458196836010632262130305360007638232600134276685522561209783892222009415875414023272734426251370144015542648467952259388680444847489801764085853861028758636222827786923538555367774772272853891035963432871936820370744894961127168629691828505930418911584527069435872123745326466795935358733820806556997774866025648158160169962738348873910380346103181675998986497287060559958198676843336140551513070785464563047937941033691274203350859596872570771139493046245594141089969887467003728049113370785943229873670944573863840744875277435356441265112230582128339348600025451722091455684605037527688574381381563937757893773440150195788679435171199042952479971761886875790533552546950628357198800932561371643773767061187289437430292849115769519939257021509311033385108196610818808532201142892022565744909425124136217360308384585470915180073042632287306896871498687519816692655098296586390516529720500563401343070294922216652823293080477896925426942971844724001028825257086138851557521216466068411445017243220460765975338312347190179091294484675044508835875686120470190543059653909848903279267144724260486017694999519937260878248724417718845647294033764635458724869934406875928565135692702326803185377710168796797321699332918266044276078100552786332536199677923538861232423010935838314382935362789381866266120836222131126693201292408780122546274711719056277431239513301363189052582256768488401976785041753019904069674688709605986801747861364394981051734005926942431052303662802706617802536991668176952422229420682451240403234418086649133194856059961856953960979495862433934933499942407619872018052852314241941376023911930221923684322396600996827738686022851521535124673443077758591822954085058396345128594928763921769959374526551321917628724995243041729402895457606588933440174094655123467242474348387824588196196741916622544342670481070687811146683183245664831821093625439130346527276146284180811777982346662777883839207082067436541816397791409073936258890954534401280466414774336117728632897979500497684847791871659323959354788111018611976809579112510678075276489611063831101556002803204589630197317090573607936454469881572122055058718865353599019914042281850921216439476411350375269240628508371569794331593447577096012562254215764249648597622416584411792977399062174363031831698705868997276592031613602218437033762094521514829779397154973930438250282198452574900202321403718841160757550600834876385086112333444854372683802865731325204842638923982736700547499480460462014094781850168827855332277001713209377322865405519344016666696721102452398988600185481115823653738053966388658765859611611829249989777371363929996740251407576173217474551132680608805898081472302996226502332286356381668603039896183784689322835103888511802664820062466704091199679267011629747194088769753132225076950874602723781310775110025987393081276133773686720839645216946714322600476704157167413228780712580739287918605296640291173381882030300835649590380874145979087113358662471201267869351476816582490480605011793821624497783701870775593397197563296014621501730974704580584229374477424506925967897529034707061789787263551029615555511449818977291014051667726612736630926122780789369767285059742015977632424749032524091548897457735275432063981373948078592894713396888945883530406804444221225873819194774319144578953327161299361739298520930628098170527284464332635499808604864982025953919034156197826352107048388330243568013432138669628692217605893887580674276671193487462651393650419885352959815537259793003504917453410759387430707439475991999967125033648050330225510043667158785816673350918761529438142399434066767447503117805055755970508667247377569504779382727667454161828835267879044866380123753901626857453047431120351912891498648639246883044923718622574973559588512819088427646174343402939300032245515437355289430493392524645160612342652548508358824239744206079029673466335737857629038611288838152568703843481498772786214057191253023647950059860547773920531048189987350096367584757053471555568756094473404212711916967339712123884375789859512977588840767693733225713457612875568699423401832210431692777536324972703666636666889216717520851023633570277667209470236272234222384571943619320579289739441185340961442761299188775194841343090935700591517100173098962024852634502687232136685828162394087930102766859547387169315963726841927727527951453292216331989194066371132751456666374803322036178071802346599797495900550308662079754911235911154379308417532467416097765045169937757314356461601846493150937339390460076085987109756799044383700930274599189215221704367550950964554476240088671310751178331650230792502775157461156697327692751269303987518397394528866940255513146055845115001723251440768500707047789663267924245346676083550146018345100989580402091859242964829421801438325600192850709443837100236689684517321964177829636974009120971281410008899066987916853291068490750753626766806403470803764532656815254453723418566419174862410137504934973893415459284117155628031425955699013844301635192107172827764912016707679465025254308714200798272382814595649859332014264802187761780692213503936209912079180957911359471154762296167823524327548133353487815589557644480506243330596644864741393498044238395819888240929912647415492253288934535277228831371800921963233977575994643399204831462900791643638765753735025467419797906261056664212123969976615856716696317111884364767581396725726959976882752633932369275045054419932975915444428348609114380558165740720765854285295445615261527509949542190977908653856012517223502093753911081902362372907260376733153087867361127010962168213827417201047558346511281385378467676817763938015172368245061002022012956804998027770018875756343379585660091687310607126648138323882216418274949784078386733128062897600599885639851260733559162982880811951924979448680284612117420047599421339285160337583539516258200702113158817896050773020517833275835391927131005616827013026788018402334693497390538452940508948322721589927806367056410172795327741137542931125279678641997847553832332151851831832424163764189134568531344846678437475977089391166924910406659661303153106675442775623471600118190874286854542852602812274461883535257816528621315237849275993064093285572155341870973783730073422654913923406950680416842694042881202335307384709613707577761084030717426240187292231499972402028257874575292797283824136778520280443553160627698061514889702111439326472956519609271470004110759463543374896975890995172531337358011879155145785984459953982743093577599532591595013030747150137387362453900168952826169630517996885591960753552928684748928802646006583657201942394127860222559563857555937449024162278342148393570868117526478227712794664293115724009384153780024168302917982147125854431870860911527634192886237384256554727495558409783953260333956276759449995588416197820516653497602641476736249421296311164512035543992418098087391551604588459092731550029086702742418142376495909909864373914945415339933637000636509122870205753923509676201311334781209429730635499551809843412585423881507484874147572202097178663728673753807753519232793529640969553259313429516194970140085487467312674770321861314186068064166457782309890617052671266218247345305002301071020109223038362474105159783826163427257885826689974221955320276918564459372372224604719870146427398940919973002116746074323875710886350019611387546852567848992860640656522947769517223787983779060468330786551723981501516634523074384857656945038901698195545209086388527853875147140102705691786342995421778840620442021400420628468433311153824859826165285463567759740829732556009961722254809178996201169732007480410734922533171212966684701943594063086829456497852941788875902701161355734231563797161995171702924219198619140437595692467695049023119585937755876597170878677135178992270018812192944911127010815800121319997455045178928416228987316208568442215313933825867749877439732020618814122005039267132190464533856626784590143990273955675381066062471047508723492441392662021246153066482811044656792690470762312677239623720398772956316236025895664264854402828838075413217699295052721710727261271561457789593087818626129878655225548060670779586445936810317203502651068129015545878155965371099508843235270433225375856706469428128204612221256016486060296663919894711613575680257374249601958185320440394169180815445350444654793531980474740618150843115064138262061143985204916805207855171411884253751167757523242314951687746326571675962545638286607389580649660959933895183432200103096623055520792823221274432702509521399288468285888013482269679368839826029821812551570277379726413960190514135393938991493759478642222594888043003639812824379352361695111163380637265214907990453207387652073607060523787339699228059795455584341051767231683055999417275624239548244919931464176793447723772979153735095039780435830630193971791415160327294765038266421216797761815615942110298008508493603285106140607092602424921612585496312815524927976701825366795212991965313469093069631454241700079406447162931076689796860866831961429707538149080269312437401891716538662807733514568863017312523393295311982303260531635039730169005195858486272358541821824339918359742831539292999511633083764976906892784069005118244329905257861531597671606943809003442176459248453162114790891653684287954733106726787003780499905279803043469505463778027844138699073057040977313889157757709935965870070027369533395766977527655153115308369927318992416927643943133098543718253558301268682788868902165269078302945501764190173305357780769653592845793208938824787486480445967054831272128424442372572467115931930790066969104859041033626610636742893780207634051668596405006473078800172876427621627542300029754217603077252178824956537898344018065473544096177590966267705132952677280245102961948585546967770713635540697539392740548772209126802713219027261447582382473933246679118160141075863618219579243462977963648264553423780184607113157339195732909197733527665986679137826231668444780439971575168269087466895221794292722293258298397854318397718407931792252606909925510616758177561788380290208881132431978347917892826843510657436794156893380080488805485459767792705851009339956161390513657248063437931617211806715870283962117761976275181769908320875673599172835322511482169842903035982989499359292600024279700831008340289626968248501230055290821116289189908111187153770905109561572183654597516280550291909385218149333335572830101140645377235024887087212628865230212172003435070200217623662532335039760868027290105669743936072783541763129835519786694870505369946908664781038939629379848469322897253571595760380856543645010136014050424181426204304111932837283019432176017345370295775467395317222965354569833000081887369467949251721767664484127210471354432332685883591562741429695859257182540681355107183186464533674568294361895051682796529654488858634574496371539330813831132581575914202778311662738625096846315999197150477828836962697708465014203408008581289790878805413714185164934997164478137334910768963919542756626451308177225909282845802506148396978594816546893505801419933816354417459928392874804279822403258859627587385921612437807039472652835395702290242403265415136627188813664023276528219593037027669265336032400696458081791505746044262405903465645651058924394092550301489889574545205139135988420369088341171199079358958386646567119864594444916504584805500727382551830949347711086981206799701130510760074147402296397553318750386940757786094940590133965320030837864395477297440353737765385095248578437764648496394603084964400291492570269263895513684149448922050584545020828103371494422729927869524723063619346414037266295565250200375487129044676727182947971457359338008621065863701527790136519922835269441852803003356518285545124583631036970355244820117607384255726936041882461619517718566234047893095655653811065966486479640480789788412879107627216762620542799958264965899251352614645654719890506479019886140480803634420295697671513867565940356344538014276849582898930096091151694553227165658291614251113703035833592040588932496027177544004569820713298031744043565125144599150349784950147926949475954106360401611835020514041333358832767688814840752235773851067681640032743131768104739535821008294861417889632686962161614611868182569956952938192838050963003042463134753550067302578171811911877616008254895738503301705033931015625908888616174344075823513578007799270459468189219654295697517421904456973524625945616648066744879440090879240098969841549261097029674434177424866358598134140811970781068665661767147543540119511440292408068434371895006658992958103307343129726894306745753025227321808880034062329599122787217710580586692909555945653024234444437042553502589955448143255462434585097375096903933886301557085451523359400581657416181036396220553901175526211122563447799294121357753930738802685345629309810135959430286702303277650711415299153548934302987326754357622501561128618376036749256193743307835016499316459121762072949933111381008315777497388408873376640291145615418402701803831610210811509219100292554885866892451444857092735442886493605239494394972556483207762235555827231640179201715316443471897762551179258770035566279815492293551904479478009398947381720833093072475963907415026181740156490178250605633900925564635156058021230194969735512948429972312639207678664378996007508348955388126805842397312131156324464958943542208244848047642102442024044999458749069287111093228060057430547999342582031522991135320879687407316764796903676494442515905700324262396473918303031050843156138872186699324433384308825592454372421019372093235610924496728488343606097083423797930944346772004363198095805673399780631237307957894260890965659091359523766676232486922162565717265513687318042932855504773877067116763186867551777786083096922443420894358704400741714052526526780432091796326040818379711189785294901998553829139002240907258705094395504795327802389998381810495953404126787442232739317652408065848328959080876547105726757696959102513226270433905663021427246690409925395678043875857263943973015475392471228418470246665422392652596189853055730275811388572446335850123458828350111118750096275547437792345198041251759409693447231095587925742613697989447874983295854751877828946309601509049412624838801879051082912966864404831597251679407006479464016130469605129799342752576485474013956796269613695312043183544894301162445247411507982112590147177177438755445216970380491924074253671109564942498206494798453096671360248870903203732688474557898733098732698709590922835376416859158685907010346380951056993461618634917403731133183434933668965500626496769157672541015723509316138368860016953908409324092873673778201305232583084980192977249236779326158351233714485020216882550065703217044063540541157343237867839038188740340529330827992039376169520171079487660606518952143731934299132277742431972552831706161417933273081010243238672624247097400744932662881348898926158145619987067431236637786515610794288248248422308973284792535116088973695976003327577607999787035590407398665988309173055391863838273800331322556715969876391251630745013153999384593563730491053857110330878428030253484045481736535864197186727522612496013469569132861679443134957331791105613798087955366700772351474947666525803953517117594005165203058444475569675554356944284325654965626111548707870664488750140510857600435759954882078341221927516097221673440081225035998663980717019855415825588874618489274518207256511184621935859069416854271310369390055493889351718655883518088016733122220893568682811156213842697651998822464558877970921910200837069606427490924070942893205030198380099887736456062704408196837470346424720573695216397834819279591744991464595968355980733318440397319244714773546957613970024014814421071350331640327976241584430567177319128604125844739291962429061348945773507436657666024208956480061280012959397751605894982284771215299613743036411785880917744349824477118753641077598106434128544487287237279324611897013405635264036605249435060119282694808811882380396932295390330961929755768394705007088117898651442861839443330995880802582909529106328794485854690406689878185481140460630452981497387834588451739876459893118103181208260451456308589600618840058137815783366329171241327246448015327475303801337931389593278565012630548195580521464582706522987661791074182213600688483966013191295267387118994256746610481159692007766313169648943056711060604729025558269120453658612888930601652052270505961343373402788463578439110455750450586555552067920934795086376272435491595705114844402481282916499026923176018580780167583042173191741719694534171397362815564840187561892026018037646963506429583607109748712015350011265762304066652514845781162845219512390000306326195657709683961761033974338658459704806528019683018739145467543879257407808992980340026678678912799379083465345816708782904583150516848619301558600660725258378218262496848518739123877809782471168569068522010649326416809475109611109372624408675368288677416888534978600901893481048773964495891202931957330081131535646470200198773871128264051373962459957781528577732762458724883089692333022479120615631607903425786014123549038611001105221719525263582923231600386459599932463353149937780590585296215094458918498856717999383852566899544877620718807168072912939359616257695335861015166093930025686664771770339508831814274307129641976353293342537755812205907319791343229849155202798813342263315981220335255989909025602783436888399961505589417715066746192941224383872295601522516527768614137060400760780686906413352657845282021490658038400161994588985044506923717826017039958809907147668209118902024924831538592395654864867866559687090553290854770478623616888382552317142017299317363304923272912454131632293318932587665298362398372808115928346858340932086723293571322087651989552933668934676581551906055210876637412101014292139248630243952257950599729169394535625941258615405998049976042045884113648095575529543183281874529123711409374269910649869213551326797392006292594635064178945079411862605130988030483459301275096920440726156010441961967701058551937215316757958338789368019080587461026904817947687174885068626823842186503079318817633525301462668274050512796534708411704072608014409409518826446043281114591365833236589072016830506115093366683153424695588829155276570990546430966108173002716963295905225440406430246881394304758220976718205939224702673202762190884721580937324657481965669111645331302113846064503850943018540965642197210273959617794089111234610225694426365700002572499951707937457305154060196065038674935293469410820718317882047402777991402046052379553102440998279278798531568869502273274454635449355337558290929879369023218926328136004365345389435801179755371829914749534312857110495427791351881985834814159535273213872874131731690837408243291626114527808454217674482793410391420305317131882083052610279398639958072599267961959967810141569954331283205686863520439510311194201616019637820592993365098687109273992218349106610893278344529973395475756180321117257446045603412433880024508596720377665615082154134989015850903843622945556441468706571386755732078277531439370746350152374688819764942618637866266929418065891289175814289701930314700507614198212178614980398732875085546319556348568743033650510728867729857401545572640967366144660060433804681942312151348484679169612183119494048388450809668975958585673103070258281141087822110102014646277016439263894141494232762198684631435007670769017555708109794580690554391631531731567590851713168721617386559579894033474863991822486222692277818296955154446646523214906756776948922793597287687476295369835751232647628948625805031734719419253650254099799098371183947236961595764471764369861425529627184348552394978443736845666457885969662931008204282615986495941594882087821470223910600952845112239812542952459158586320684784943723771420199985473678774522523470153909493131384626327710155109051045858636154172205349553342329983190779181768051728972436846167814834054211155975563573317828269901291297707165144743579030921834105992852593786321000987430662766197772243175885117004339238549208109574413381871806606259541735486493958368702562824079374641791432409403948057170671659540605549784819231116178435514336776277052516500511108400798329621373635425820046355109819215862633203108149070521368748581417350410889668238283430362767437191657172779271815016162939005108318303849837646999618082932985851770454668078018477884495337384201519625195566213066090847371282658129153864793862261384472745270559033473684272579989139626029576585783582780947864399832895125109976730711651389450586599503249921261451262905573897634444637327274125410633439912312854007905939053025376615203813393832655774287391340233850743581383778723955460262160974280699997401644047249249786349206682339969238035355456595824082840452304937412249798234484992098081968568420297811235713268333214388158567562027355856724093288708447794122389860741497229593628060197211226585458257703770737303468861892774011422331561025151077368401894342812743352094014766412383012032641498162513788887206116904913944330854716801580506942739000848744428953327834398625108064614767151596002545524409252231207270983778415825154556711247629139006915550581570257882284344199848175939684636282320382174187712049128129086476248278211412357915150049041930603495088565240366770937505718372650654009780937575051392434910365381063486321751573956061709898303372549565303361851689092243309578945022125711647925685964676166028329125344284185211661574563840419931508275093290411745646458381332161460066807076197812805341861572825119852128296799155739709985041552658788850464159181579951966640418966722065015106043702360628447838429765743386248228524291366487475048787400440911450887305317874988724927639651456764711781835311597034954390965360724276071628865104932434022710181813708574927454864025073284528634129981393121179743236701061319043020741843648929242582378534709157086474601960661365464370461020015959649027834674417096340529422543720394948376965219641175880196588694254619422061474462450980521577653768035621955464052065164055379324869233228424072563106570050030357677626369806760315574586728968908959723736579694090479075980365374905059376232747314152998783474645008817883359029231386353990358960704623759966553469910987612436266773364835836729466571614217154893713405701339881838302387324937021014075639161205874877804597911070610826771433632972182976376202481405126682055782012472496495220678541149097428764337217503115321240106522887747313608127300730872996805179833595657898268815124982306239833239918154529594635447807608286144472703737618720453546222184779581416794185703208069288286757634010653180719536341439524639217361489242690496406023131687500663808044141972768540943454882349184667299730946132477492266979389184491799455027962588735712893414938461976349414789396045993048066212623725852380720700638345231917147551741170195856950372712476491099365581646729295259764071426580369755866417202316008288831698336342847372293871649583400103173701375880722679797686083470533710246770216478418355559232412139481136341979788830070675621439261114672266258224616774318078871586854843890966705660325774331077325201952002934854571288801901062234017899484923148349542581445360910511288984468772631930165343976576047753917065917177748401894836400444429022894860875052608866032295585609149609945108411372925540106726946931399708031891606612409792550826842241007323933601966452381475834212741455684616417792949482169104561671223688390010025033304772583182597320737234364660757503553532161946897908864471685049150299526816980329947002988169027432186114701003022935080261694143706776956464923753926732200888121731397129627498835891165656365913170740739065515526610385639222940637970050290530817198807148067591373361336646615380194803205293806994368672926129681892164091078676303257051383063979438704264268668510480583839885283875458753132562133218177230491510480908498382945836165627186104952997288020683704888803885981772823255147945341447326213341288226051993782697111387876982418041951383764905491637171595391522742705331410364847387408043016234828263750021292201483980519323829760800391717699406147302287575609653690873788350109359118310808528974693615573901635323764876363148834413885284203978171048695278186753251449091125216475863869416589288447323801310429954558347568920876776791565724462881006088853857513166125267095219640751790952078759007576587094756881736546205849874302023055702018007896172907270855132775245741280369692012855754626396549843586678721994709765826850576015890322507509160356433863884745041304440034437992179543785370073247462521434596001065892346689190926817613069515849189315262237904703451230135888764468101718467679566640880209980648707425661387665542747647025394964053348998990720987620948933482893329228475391987014313899498264317335278745288700627733295597288327904983706982153463688383305068654187486391903107183569478030970445352733209921404075736785795226612958145928658851674476830514613873011932971383213902227577890763626512823679584952818821142383654619978829405093799793958176854483355700540013749498460202138586247305611821000044470329631482553079926016829831087916529475558753101653130448116997533369265002512663983643558897993865840115170663484417286426404861060391818730033978837418444150945698166268898607168723143754318377117958928539900513646644058902315876828664987321085650150205677319545634986470939782475851908172447579250877195237019311539665379702640478351749256529943856349915061994345661070955950922371229047991124368319073932996466641760715951400513000449046394964584062906634996532460229112459132027445206592807578269122370155432779269861706147493793621992134397907359632725607970921387733727339435221771122064237834682588730738525941819819903041319502929600472677920785752146557365295760349432036976854044672691367570192252443230090117326568236119880312993037845308792908372476422569362068328501965354085854770148831027802583016799451653713941244928268446171040294520724674508062566795255709471320681433488452665833907550549782759044757829178545106171782149622554793017447673568417216649409975868731851688196384084296419229955500305941817268130297596277734392090619416792514541791932781200197310253310280585041470650939460156983215856565942577091942811202163849217576839378314460707733878988532571542463235944766016830813526667775810879008292579838886263234039494619159870622631846142761180496490595566000603157305573955001551866980163670290765193518226500908415676607056537276389334170899777606958273988413796498360488088636748685237457970914869930908444786227912866957938148430701935615509216860745778098177197501662069019308471068505073119765563867965159798678558957075270464230554020243363065232052563247712751106847935456840201535386136303609239952204001696538352780385655260759925273162120079483739354668113885373564302938663824466894398252800720315539677783959885082326431598675825726723203263050505765039313486983904199147799382925222755473562961450355994888377453098392680956061757498711042376590474137408232475738480656176101798982446891763354960516820023976513613107559938517635836583569759118206019332967750573242620613826429934701415774462120691704989708698727561969244183837491277155142760965394412202740780207632273324412577109115747073553886917683005126530508223437958670817876885360403103166579589817092174313313016029582746351178687908522615607722936081858499422073507004529727535019924193459551747328954896356108552310016931522147932474261444104232018412131520662821464895321022594702191267129563183854172551579880019077890989621024288235221132639510710152362963130206663495890178915317336269486206816593077243825768932536735519961556941694063839535724920488259400754196720903071456091989568656344538908320440197873471779192829600720461403215944811931515539902539208372269007974703626411440481026967041129736786581102396809555947357061778458080954540394903741061421571703982394913778318664559702141420761759448592765814902768639876369622896092754893458002089116234774016417698550444230182211923182529508482534875224224820880566807786681829311340624272382556541481962903093266221171868406852636068963688829076513110260623041741310391432721707340916547193664804769451265113345854806239250506478474907183837672145972736680605276991985187475765425871254248164048698622369392685577215176934696521956661384861203860831562026947899120596448333061106281177593338208492295958422145249033765479022641415132866745895956668682000235278950816717896521303529834804283059424278264713161475049443177671029178253540131400538994863761881013571319599060919994623928424179029390677268663947339694150055238902445472824439638720101962215421755940586228000913027768438683802957009418851752387250439541777196787553680862317795808153132590829170128657038609189376309691430520278286519307926983303488968719836373316088137252607369772510208388239220714281647962586348209254653262768705145770175383580565785984427073537471056072616621019071278108117516725577312490735071267575148500735424361956151050874406390821722071895672222571465509349508617891386633661435051771534085301498002118093100431457457030363671798914505580710721244610594242642006569369043891192752471397019431881102922871754006704278942620835227709135995977252576933445034112465591879201934686499861818764450328859474818351994794147422807593322954980260953864644854164762342226369954300334949917103573797007155704383830873029588648144634611893954786714718901038838310622682105004994851363974569647710987465972081357182073396889186206919922554442489636262109844645357678525079154188280300697877223346089356148668754837216680773380021448899281347799967042890739761409836177537290520449636049421927518847235362211187782613209363436594689791456889359263380269524528823040355359451190357608166448093815414015393738951133558021852480636768822630100352932840378659925368880284373034598904150508473184942269632912114079907999323497419156575549019777447803007548803642022814345937956121915238603277738574273189135233265078620464167427027434938018386761920198583924431088989011006683902179025008266674506333959515193294885485208937971174365066543789273197599244673703506222785564827372530337473366869616775372549561523699837948187740366482367180254738714728748772302160780488221669728050113585281291092696349068156403601397319859421064876418389923600726319282214220399508834171596372133250581592657018632011212624372426056632356854311729724429119105866556384244025197384636767857083714002681466478837117279613617148177301608378026983363175538213222737321867821883807751853043977118646841308534538941002954545356906595521222509752361464484527768512346370339731868050497140821399343285478724258747249743723996550484570816104528209604043192363092196104754144915609268551120461344548296979642924192854928721370703400617092132792145240386928968183409111462909756483295667911531324339976760841243732659880425901567378125425252087232390979104151053901749434218735846077511026211978587134355004607144583016813803740051496043343711602216361799053803831237617153513299150930621244389542159776144271359676290166801145291313763338493152016603459124260914577323631850429788770995872189925399558293745628256564798149208864252684547840681057201666846267903939447771646118997395388077748696504392861506429038103465595616506056887378385697927093332630164583576082657853703375600374617675480889524009478405491078528503410189000647843103317683891071803185952452460495510756467616038323714940386336617595349255436162295379095661650836257808280976636214197571950940355301175057121081905712750935890325337975516948852623693999619443825321007871765758823977014643095353444691301716797259903163817327346114769991722971669219321440325370720581815711072054958649723165902370324028217224493006196693688676794751291988415873547257469745046716657961844992591722966927918508022554547782282990904303578306531261493626404947490856141389118141604749973749788706393299019518738303861967013647038631045656891240823006064966996440466405062478070485009110429169869712235884366741485345866427549663376226159558580237659204566375302657934165662296571401546886511880132916686811810151310549724546604581149463695426532275598064073317621555994974339890918992963832213081222714681689060514891011661947020174089448832393285460689019464773487127826361752031246017590446932495434444058143560257641886653799033264269975169559649300018128868862141580065635508431475089592724017956220829088051330610283885640644176060855953142300513999240967706347891881907318021126870733966208028490460246424616506254015756259444359598696535061404666290480775765209749880721175834695418837804337979299266152402326774492760406900881388546570721960914301123677566870910362299355426531594625786160440845402467070053451753977977488091677332515281450053396642460111466943709607237761332818003628386425768010153222656704181015496703746629349897846145395133474515589548960865394350684082001432084753313497266030791727899767838976837765250925300026209314441184984335506960952478400547935359270303492602196822600463341959766404507413746498665629384616049384995265620369797237648377715035562210137585767924660444781123003806837718871797700349807725554756711887973299264128849408953074452750526382598357398724273646819172285852777516609212533222408049306524952477861461547967270322037399905449183684528938923398367373063964313407154646076098410410312994516481744237477069987308517914732420095536624503209166444289410857517028010441526404334504971884771068129772594918733071088114964946524849686324343981697206986089691131143943368838763837496193169654850736665237498489916386480002674299005797552667924377784844553558856618561163046169184857090213258168843601022127406697133859245099440338198538120145004767395840297410711351548549430887702115427568286319463055520790519994525923540859319818833648591192492275155302940250168905365833185565047797041555994549440462551393880691191335223684974433198175557269719563313293410340219277990727640376156284195247065814119147254987729599175260088977496837663399146572754246238379685343607138506600857295836785969064032081169626314436267934303443521744017744511519705079750154288810233450623594649973870164408991998137605619941546862018089619815604809261038972466627713112650983020371530290123349356235492424157089430271038047540225494386861654330241237180409255789825708291659716646826903036887384801009098654579824142467628626236249843733081793347683749637788063595639538072265610226405058978115135617732165507241763817316714488602184228795663554563555843353068815094482018212272734210977098803368454152844667227662872829277464186270690385118594537742592941152395140232008859384276741472513126682525182428958267755645767947638173297182856984273631847836539519405266667099783815711298300948901355930311011903790792701112567632792432427362376468479649872194668330975724637974608159276938280859878119677238182176030347354896349393465544604019244940284690252375587117654298792101030172829885163266833868943637710865832038430438392439628591282356575408442760991921987695177776121162110782550750040756393865315341907580310929211311107854712827270355885245923801578165214945851248093592386398964820773466307572845158693634891871094476976393921521335156773869929644234913975910940341772833631665389533942843169478695697662500400966010838074578729804375072824527523634491246917732252054675721757929233144297830568386593993625573413569215288168608796574036395947250665932650974869072805504625011437385041085535597392025038829329033788713782401120005402958835014802165853931549195699519382575780122716666055122904574648976134148709352153029098761762000606305016665738033313433044206835742121062717047749658397402087496226493857501075529703489106483072891836034867027955672804185383981587174415604152951433070869141084293532564296269569858862258086583216839405910817289489529069050063035880379909960381971079318909672428864811845097097060560808277606950089869152327436973851635394418277812462381438027004305337103147674571044097257316781456821086399768248516071135902504757193239218977330939551249996182823757854060101694173484712426234363202215065237893356491008202509530901561068112273976879650504245408748631253757840121465134738418538491925735625396496663081231401895043139600099629940615052499493824594601569691879569938967531070486733920437173137791734136492694820699132037379102718438877709153798878704180947513591276060368966874220596218116693773901649873245238913910684651364508627529383952784181862984645690011990348745010940808216619074751797363878600693830825197591442257571205691318731501012097828594269336453687456854404209274041627297207930963051382539197663278167785124964512543926940297446266922718161988495968306422691440359852187369037233328303653425782444264597782851840345634628239659538879882015000305916691605440010299048596346351148195266261451252151128740418014312493545474458540063783035362894055331614495557556160006067643754460596960087222052281355489166120955286578607437930030198214523863267656499015195158393630370319232339320672664453707489182504273690240719695991999924302695119821259506257267855075626075502876159994555921719404550404574117535865122614457926363810178780762809129391692425635107974272263163471217677461016655134947343246856748042290699629984936895350875965547110083486860455407969815629541428890610575456581314927459184646699914442704555210788542381796798388527423433357518266868148569793891494938926096707763941265636219428856972329908897159708396899600354328894850963411105425136528341543866042098583986475456604501031638941623167581594275804728025176765998101287705985528669909426388676956917899917964207309357803653020998633360951350972580332041807395183398731519008342642632005247566075637416054818605844614752321578981058161299065289623985017976962760145991994766128967047405376148316378377268493492709142858898165693720029062922490626838924784146977677627103197146001772668860258244166260878096213951556706311313526039827474728586544930368237188998018544781181533174717643376179077700887466025686834419481973471651175143877295973220333965612550863076693349426127237471823986694425059507901040449015077261715867026734485587026519045749498412343685769803605029967403143901372943527022131015057772426959687415447901779202260072264696558297627918586253596564214748979718096488240075456414064556429714197579027246427671468797349531301524482133018448647075425199265689784694354119748677491431143807642773249312426727751056279390930231500908654609773637661967206932403354203463970958471374334772883469604489978679451364495704396911676305287921932151745694198164700640319949366952764209199201305323749155529456905463912765671468394802144436980843085894482627696145759378532921877424408674553531195458677419181532161523877148030018879903734983284722884570613348248924615536271309195934443428606074443245617974676900073662103302076306554002767157654960468781747456797753604913775636454458933447163806192649285996567430844589518266903660725577832173823924018712298609464691887065512630239630982106625747363442305325935206208889309489359093116770114484614132724757216501041294290667919518551975170175714864391858349960996353158241490385192611129106687493371966048251357542626749147895596068528952689081431977502466255921261568117045713723563461556835423865216418010311673806177486843641521087632849887924967628942455970096165213353852668830778653417132149581593131057606697979690507404431718811704659964730082976501802444878758134207234260714149399294733949987787283187995786884813595493959582560390604843172606336248687557963715674557788545822955617742446009809270618024050816105450420004438482648594450919503916639089425395160311728663707227946616935345123565847963906183708896106055937439444433082681056761233683912515619330468543745204119960066237377093247847921352087073827057530998489967276795293097696024464705695240046365638468069792735107689438799669489639232606334653387073877338100147372339720658570276801696640036631022839904017904672369881290663100024567773258323891813904903063992325744797295598175723790821722580940947039942585422571907484004617760177851934666973284112513772900740924420378825814947873293708615845411913090419675948765803002213340437419957382315266100197294984479296632133715831006301222004378375146450683948334115213745718466644467749810218312716654395034287891097405757547267452375472191803826293823568878232254792031162524316312441743911349188908302373268423918326648915230898473051343525308773567692576835928325225783446270638047465780859084342288650466443164985122834980573183971188703223511778201994928212313438336676531128850035340077953005823112297378448193172845863230081296290818129568752836685310362757957354964815067204694660490069105150058416266890528279683993450943872774551850710616834283951865331815588276231825385188612524611240057865780019432538750845842869210933190903828372682344820189064328021374014089073589645754970577838289992188175260435929768309036548367363591080088735760413297535331258736392257662550690136197979990491901073495416392294987085235218007768997797877109072775625401744413537139140761013690663317820488547822121338873437676047101104430543258611770103437515032560947703451692877655914179611132340138999470585475742644281601213147007203560640265600167913514311619236627335503774299558937999020104827214365525250225658729359191036471639264995251882217415683154605622263606896165359783421947352566478610258304751256495763530652310979417683017030284189854230909361238132142577259650147079467240680304371874367786578882737790374545128103734122577041488556069761334986553015390690565867217394432228858661567979722578732384602555910858377375753513549952249237779474019672695047924520300355788073607924165483616134997468132314946071120975550409002056835210278670793864768814114772717263779599651952657347059353420264775991786254872216374054559288198906831028331204274222819849003837075015668740267275858042109797948230678436197728917901683666353063315846140840951838552121237433767884162895712751611239173601727688746924377843481394866871114008305081425384179259555765318048990699744134974762128831884826821373926999873452082701566120380217432176957501191110332490920373389165447351131044022623467476022718849797822496527387133426436454573956852733493262132505527358310267286823540382365663191522866491060594991561770069224333020590087833459603759720772298033157025162030358348516108339253921350182637582353361598363972443784038867702739052944879913868210664332546760902857242283041146616107624800585777266836766140274959496597471638183688766079956382262034068325707793505097297857072855278425776232882714843442063245935473245758445712305275448077345450891436784543696613749728830068699670769294654713542627320566366665507230256124747936034618038047849661105529466629389456916605770141979889911393561466705907329855528200181647652531885706640529851804540850953758139685406600452627059352754824240957319849369711483681767818253225525762357927938420472786752380648781070734902530495943828338515492972122652708815233269964903238232922842643443487046793117130113468068143434201682531457225533358192417531653782267279682888705553567101689540225560517534992965096340845658681062316998374320846511859302695496469697980939755410142362905426781896041425047717186838470224818754224451888007333719104989363870170426802802788507796713443458013792412414075444176406811811467987762462852628690946653802347531481279646269588573677610730900164275723935131719464711638105929943397837245283213666490862118740791757265033566901082711457143021467016259952341182388273194729461861685288929574775451848198500171397064870129507111031292172847370138134437273688506416583079965856544981933743709214113508782980839367671246859462220621000568168799168886010997826500672030096046490732541673916088286500110303410214447541488203714962096785898368431603983972914127149919773665531772150190251728518514546311755249007716083793227543199334089422703301298732190456758668278055532898428348830872570315461225972162582796172767971502966058106813717256382659529852115990382033462824123880561557851719637133331475212144772916294254555723475478326448473344612079595559041308110104805896064836135010286488692206281844830357978590351239527915270422831669731107490822429349608562878491747407939165780894088735613388505818735981318473900908784922097364239013042677161556272983170224249952652887323798868227026676111813605950446114063228745582468862486425830041034727941366220593549152813371155363659034584532587039088643336352056757371968427133965658607178758302390941616745712619151078228379249669497067797834975616551901753825574164651855263297497471583422268472759623861572466133158105318022100215027106156383646867881762549669055618797767601376352106623616005268838347578020129107398349616905346981321984400361952879052845344034811133433197324179903833947607152297101516766330811124130503502644488167078165615700782196190058500798979635824747949976355457578314788576326344244544948840058971912839437212206911556886611081462287372938340518057197003046855421117134608943140884090714843842259092268806057887190575193139889739153824474174717653407022144958089498011771845967908097687368861627793110600661177678205470363190147223955810914846397374947384907430615033338775066596100111717111084777638678090906064204141752632812551438510013758091643707324816228088775792513681082458387547510200955184579745845733958952488635918952983435608884417935570819348593189736149022642560505468958714160569133394683776134529349714901795879433936548753922101049206890696090083285024113016532125863466262024115968756952247720182167409923618518324731468561796081452221794550718528807186726725754656953536082638017252427593093103391700447396050338340458037262955351837594209356461092968893251937141988396930198882317583965889616577574764418897377758749000610573628242625575156472349899648106741340466539358729063237915016170571464437579222344112331549392205627375921160254056612324511789351066847541582256322185829500364182500615716710371300803134407074285551865187499653656230754492771099951589547327813261087930320340882043363154300838575621173861187510619502228679717066477115955673124814084275878938667023624181846785076246140111634683701982301514583972571802721555939816840340687009596905728823145573104079018733199868497088710562181993429851555877757208114804496678205493385218765079940007271389372641949927431261317934983174723189690580097492251182484439659064289694285880932603115520114864472345103636160294187220507252292175573406561260410228649104151483748936853844131641316167427101690213514178426889272878177083582973456772979950016739636310819119968309475663646213613986062208025521214157540614794773236977433043491486763809299568673613476264670849571551088661479542551588526633601715336073864202022044353996749814104409280319057726818053971392235588321223024960419313631812930137439237838672751008329339160860834783024145874614438215505473130510081740859136407615907620014253673789403841773506421064598370771356314928414368147171579732701054607895847518787193077296595239541691399168320116317192902163068929245478866686668360989295756402512111479786425820083998129020068368185148169808319532178816201574269476827895320977954216904306955248751947340497548465453771216771515362165291602883309569994802819385072673710118837114971608829815068069415943104588080053791912317634068747185805625655894858184768370804410844872599109120449000513424139687104275413335380513007984043647418309678475800208881131890114476431137944068026922379217810051182834314180951695113432867653206890906647759020446676720010049063670947917704724508081515956571446362326228047606223204030932077581523528356176702519823744619275453860100210477077452640479530633790305014031885698395296399827359681251929763579568176362590061826016187653716299142113755636072185319979517466986216366052259135002039168835620508465384150099203724422945192878757990230375449875560314852939469392197911307082381550724829244932677029871666645984893150603641739705843276552375038933192409077881442201597244806356895667322611569827942412761280951025770876408661793451981559260808544502610063183517827365559513951647742214220400587893299426877453475970294105444779379487202650007605390312811103137128229129057214083989413189200270549814918991340967481653501536062983909144337140117683722721105905956617883380020277425546124162219520355295127552633276043861850143676889653983321972117399727784989157579591630047779011619970091729304289291982472654833821765176830401496229584243074961833677857888764789977178007572443761470559892673871846012952567870722770538287108621711026297963481862204706688700638065068109019008038793191226774250369342139101571857771491617348767181057667361524641262311275431993225707542578328564382409015276830438424604953526976426486197799631700889853159745985587839352388035712909474572496337108934195281780002640983795973476493921732309269392473396518849563893548135084627625551958704478337787898007871305909058672687522993337112260987389554587440582397013643338078677684225819351582596133733296600952594613504510681467593429711268964916714570647235179989841264684572963081698430031161061954249993166504969642199036315031094412833524747436866223375935005088738772088089392510488782957189668863509758111190769446539487676432959941889498596705114132048941040152849421185419847505868595791533965646203270336464206617631105309673103409559949776838041137820080415188581358334404117638890343752520341378810176821686765766667880102021768186953444828366656443335765138551381631934733642451096474247480050496899716017869502963258087542658012412680728312358033510339862669586616731999305025964706852395212267685044480216624792679845925422311125155925620226599189318576525132270792640616694893012835410500212471458604080755934832583162851742733403991051962771893482368657204734001792624188977801103947551311244369868471586472978646572644272767190136056891667529842622629886047969798565129173755213121056360814626631316730722005088058604226560515619454327478858042765879411162655289329698194291716345898545011519563407940203063587128465328664010362843053092756636495552385710436958767650830301315310089266071165730181558185568320317382228273535268234875418373505635592734380670233798232865527201598298723055870652228120838952042609921982860921962805618633294829396931382920353209817526267193702915213306890589945676417862578820339338525375731732221380397971388539033924201824488239808000975233762847444539229399414594351714345100193483536419981315376648992821009286749457193595176826833908898260808738870667688016256580011777992811525316934357527840431130873102828362026695393717459414942996268926735784540893240112680057991989460503488198624133910236737247519687427828077385585490336354717825967886958103450616968393649772226008557347253418196778297773660618315823125613226754910707929589945997751301050807871695741709992841739741036161348075332882843662212355736452442657837524759856448716840848780210906402134579874521872838258590660961437659407847496535943990378516921424038305651140047921320583548829326777946032153571201266625616020722362052650524739856045294000943403607909378164965180551066449870655478180515887899589181344278760842715653639909649769119722669324797722500776026508516641674979491967514343505616749893316269667590196302954496254582235581641463779283638754147694222078441887223210628120528882574322022396183108092436200827556118669637893955026328725404852072415982693882610035153135357628199405611817025292794161307898353900026012252465302001085854541902162766706200467110336093258133890602393679612539608853815407217365247464070472476583544814743517442093710506338875216908718031852943102157138593562051728373842800987302400931368134126244613799900764916981178728642837621677692918147550716177644794524969205147532741343357266867038720138021169742824601238091549501753311218442052116042283642945716363199663255816595090874276206803936908878362467684645806445252053730446686620403240295482640350099066376000313799024231200229092549513566735750622903123909354772494986269321182279597606749159718569311940253203388193484110326239229527576355342898739156585479224960939766418759715046500566592828775642115352408264902020892964238120703213939890797875842087764158524024653664254398092272139260271833346068240640465315845361508948673007863660951176615374425114293200898046639886537679499801821874398839240482335474490901096513914593142491690610861231429193797679354528656774459973598331831063487557355263071331996276315920924501181859796931846174376981272325283046791704239310852820906601781119531006579063111835837026357792759107244523042000944851403013033661594564043499368153025895225313388756325050426431385763727431759191197266169143537245215211987408047405098905428746773255440388901884247791966224380868135288895131170493578051646920567143937416441143933057158948636311918701116554730177824636587927126096808136251017710386259840168737887207075982145592215205347812100383295995085448579652833100911556221464011803113856576263831960939372667598944795225176569562173071005001859153963523019019118383766980285643637508285992622611789843452933737464204003127701790036604953951645677416808531450728216260626810668423065570565717425572794016380912119343033701088406250623422855012181058658401027554739409183553834187143743701672231398390052170214904922946553799260456922219493719176321807629288896375259933641485400839009709967493068531893670263549359779077010885443465210713804452013617677918863482954387630671152780732023989827853995701391666988421519302392169714121595642877579543448227266601083509421768442754660291760026670917876726346298753141618385114302258821974041957564864913562495234933573826748482274528616532468515544359134278423220470593527775147193538864523267703657435446621911029924282688497499045278363545115988158817137104424514655155978544496640290792797131600467445701518640044476944052628530989646785923353486681248973576277418156466126799939740080934987847478826524148133293123073546106134525279129896535458658326178690403279179458724125293376089973778901773560247617600223202361859157369925833851956776147025909713114751646488558230589924707400900627199153316534371093345010253551605878055470605499517657520157035784673908638906343904558680111512556463583106066968068397547710721246516664267714495916115574339715800229974425929933927747322608100290826869065725004929275779352066469119075210873365457667616576592475265914345372536490149971419271827085397508221511300973852005641711996141438487744297455715299209995358180152108665580605473329421020021985874234667308939477821483182656209508812468602795725303042674993028043196006142946165467456247153234965717714179934352921906251409433279696125939369975192052816434543094230134617195557235823151329406115380594397324912918279480504856840156611735169281544746867718179313819980429420621540202249323615223512714782644185730024639368389161826236696365671494492505228631657811706491879884144316840916374395893565324649267692189434143024105643035416477771873500970827552315416292905075583320440086320324253920532260688864886965376961950322468058628963721003188326738312209597334558968817361187760281095667086314158085968637779147844204686545432024380065500377264241252087064208885030742132926074262875581269124945157114702781969316383742467230936455695220505589596852664247860477598637536839775576826498613390003193064651317818291036896748062385367720175726237330774796134841314730754495313951696066587870999183154407184019626755522576067155655776279195333661256139545159179542179410367351703108362965237731062703281650742375857060039386656058379123965774668364010370103486548903100925687860904181412618877262596759602991315368896318029122975750918745152382060447388640756645497582585807891443841815806890571854170657106256378998400225679969774885129901249477531840662041755341560950907464838344561388747442112998215391869085621923337101859506985102233601346874816222607948601183892360550775814674334273276150641733450147038766414284163729172376243414589174667819677547962947102467738727192828127485217248169067967235561169359762336224096245313032783470160918553894026844911515317281357984618143387859540103883842693548597619139917789101346781791501105129802124218353558432614368321326815890689044970120512375090028204754772094773332374303126854812922196622215003428571696357105485811739134374817848800406404373045659258521417845954262877969664876923661625426006476338421463918309596745642973939453435695903222546350697722160649018364421170640948305252963197897108675414578605211521747956073173507712079278395317891877249205182922544963893739559114677343762764460406887524548810224147835480164994928251766816967646970998747915489281112089948548161298525626396276095110303524387578004626190357222873990674681741702243618784291577538827746192104458235006415832347024825665446306189239571980122945216355248586662593533472778253198523979378692307246768785038265207948959391833837197542244739088404008569746758915380080876516489308779768877260518667050224905471115931903818339385181996772329241823577464610035001065963730382489119102405514051308711251755270086494983801368030537811567617850969573796956769271899625016046050253659043611473201115582692372805225658959191950092369115413482171273118165172097573689766928035270759595477113229785229038840166405014363026426215107899021374787651455987908982045973491343127183650875402112084565628596043142122087881153572477060806538362708106610368046994473337169342415705850548908378004346392442075426756179224434662645593268458691938254527454341543897931248561373735371891433940729765839381314286122534156211310328131301851783018873079197512609376437806815050633176245421327050829276936232820167169598154353158609062428819114058178899967107528732840903967290758458137606116762991643575831553730799840948555669201447004464500699211137848333645623843758131036768076438268156781286086935105084448209115175173866575169635150200060454261966416820885617978605312438376784128685623186034803020997303719082193577029102410117278355984907510275936352420652010389053512483528640827423760370420392236168015904474063972963817134383545675068835936726314294083937775408300801954943185280266249972672918573983639485177002550028850875709455644626060802263583859976367537525452286891701718277060630975782997253681966367048964316172953198266696959084551744384844450072267606763904604935875494943223506487683283844330223479881154284586614311373198061070956294452657938218865927860140107622609940876459857645525546847529433048554778621333205233068097066003746869511536466475467350912133583920847065920798410405380365704701898179477860437216348706982783665991426025211291138980116329317085999405175185326477700365639772483561434308333541193539333205547445763938186976379310531707929079310563636803754211028284018927420479619584707354134676257075262643746041595571556986390582633035874897903688461768831286662930478833235291061421102919084922082357087301885449078929782712150194509400523395741808843046717035135753104175098280553205147122650730837555459053343566300881455846964377980666944463318838390860876140466243480066199475500759843114986966013761431693195241256311598698452044198405168602656195027426408614855052040127487523180822667792062839664987437732715033600816282628203427831245690358138860402797841386046637401213851850608558986367734384647782800749694231615589083884402424005549617980639179738768440983512581825017071257845862911248628812088487284192719663190140905519271265487166704840155985252070468938285787411363622677956033988530508940260182271160260481833717452682336003262897992065237894767556321724357532259666752891096820579275216758948224760098870584962957747133039157104542127798392077575608093488706087333545750155855768617557744063533220276577872126164819177388714288785161047911020431899472151659633839543793019404460055447458261154693592380164585326580801936262834749124990623396466665238083561585228168797961981693534681687690666138539305596107936530383460165447365838447142149599268198170347758102527545980470146365151814125553357187727359324345515181541223846957341328017067601565634604388113672173334378537137628341091346981408976719917237755790472356601764306447413468775567674984156124633862832902550877172873015108852855065146812660258519730540781476775686728240700343931719479481397756806396927228311229974156205415338207438659237804193473813681911697596499806596044381740071471759935293868566333660740557197906065764619668955259290414772090104696918776408222077473532855179968200573239903930089187685449397621689330518252764751322923102147912360331276783584669533653740491933574110235511536237461244452723553814338800070663390956562205533794923165077948189769215554458653469576188815697104857655340377536299157074042163114198536243687547632555345275837087258888031409839930552333195918329053443079494274984949656597876047615135796330130087654388801626362491245754904384554489337165098736909341376587060247764957690303262108968014082628123157701094630765348156367391418516824999772388149463409774988889916024164957991819877678042005056813127644415237158663208584669524850287983721075818404778200022803741725704703369853731463295439370420027190944820878881667785354264278741546928028785069168219045231265753901392360481881242880673689064823889182416281301564641061082668002497680475459770345732955941011549995869093138311141935832702893516041660187922487117208017222696961414615155183060417585737254142772720130012541484585877027093356602185328144734938557737482089592916204363017527052050401733260953002701506234924845733222701006549381357101381188274072552520929712582432467966476141465198193985655011054541133127603329035607056569722370242302289095087222002023954395995153679171844099500068962640627161007648659704110357768021735664249384658787926308945836410714737067619424487110524522588700974132402733770400754880708304129534619644263264895307564978370021967568110159984198131404051878990579794570897561155290660274960177970640502697333531206618342892739632683856206426545127505386710652016771773677655819993683201058709709128565693848274758444938836082465613088739791269635007032153997799656964551584413632643458787731939304260632963866662432270027119738834603369845054908168769751260806592828976683063435799767267385680135460772029416303155727754417172528974440668885299490676542477526821880013265473552731060567200827867081036332654124275683773560244598258036267956198178845362874450417671785725010582350030198202466590914172092075068482198805769317094751267017250739239413436787705427300895941213123866150704105090749312187591206574411857078438315853390351241035644707381523239818889053682479761550853150338094328504958206083185404939176284222035634416268135116953676915587572333511736053052669446401236241492547713878873102460869779589878150647001652013950434637458377252355587871402995877472147196794960942128688070431939640635158107646095066194885821071124093200939329417436148226255213393158528165756866946086747491719934249409410445015671656829333484764589444004200146111413800867384993127754965172617368579450134700468185182333491132925820812158477814477155859169451800643351824189726765274028936101720790737161419208157339260828378990560127167861094915528757127286431709013616289311340698671907841081307719975674053761581488921537908385140154210804138322921407835249431360810430882944127180844754207992464582223073762864582220554619758355007623398939719800075879505476161142333053556752658607023847360752523267580642377630590718680138493009935598530798070684009075964733986760714945301479048786020689940236473258038528406215121128897080953639730354470318306925275371468055350523080365446679774503513889365533405699960786394273474977492648761446781993927971730090578936863225676110865106343669793374918617560443053308608372454082816777889592151318475483694982838862257484546521738906517595526991206354652840401632267914381648833931083748140486000726619834919530306744618620251238777424615738976617769614794269524733508508094871807357349377417549866417587832182689941962600618851090303718887476678429079022113417894998392961037032231539678979425373873312722553030281897114844867937727767790352009711556328813291016662784274435790721883636420580142605855258177003790317467478856406635824779809252061809312367424968827030529727975306786388154748061547618051824404152305284562801951047571589447301283645618918429628933720695701222482275813798269904022905513557198647930031060424341718670790723188595793061154935974668564704280559188213882405178209587474259088002495098994594024791340358380881268564849538830050627870862294443432409905585372034225217635396191016788663542605227100178350238213423283061939210861425336381127109313146399601969361970394978321299903467452729008992621553044816915481840895294184389213166535991857452229679242591247032668725409445821553199131705507992411723520058641911456446063074004035371883428975769055236685692888565386837342270478764740046373659290970861249073619453872535698564750893266254122922628171931780701551787827282113295953138385084533890746653512131642425212896547866118419169885260587928814837997954062231975064854037161688259813197837810108881148820939507783546024824443228713169192322316207860117083449159204734982811439730369805346838010418437169215912024500247989675654863108705576857494824616521051322673108646109344443621272351100750767303673153528027476830126362540462482313281125023838301285529491922976635157558647882420437095103737593801952976787402064291128051724836999701659452868609611358714341562511142931220582478628611748167917542709197410216807888436298420424763011043867527787258740228006775302756027027747944646953275935990724042642640925602114523673251124616056717760074641829016572966424323154019543438967247056956046035300280553222634560824168456717341375327194435895786271776982827043456773116861273587804375937551610962652226420081794959842716885129204481016778286503761359417035399475394099572075042624557917229018603831208956747148256181675488455898835169177062290187857206362182852156318364026801320408587912758169002449318839822350539752684931802255168116482576718602186080329832334380912016645392719840275918123719005043545201541261208981220942951575073018038235754059076293833113535418480665771075495577325155626556334381021705460948456101761982057239980461123747325402859820647988498080634841306352913738155574453038068956865697944530192194832980707809753850139346024729016999189691264897512090566636624002767693791182873205034561732377746487387644391627965543394467642420271557693135977338732808300357388172547473284871511637352111148771026701663375183271588096352922368847999589050956483675167980373844516471422030836602387882939373229620926914785844475653389403994107761431283892047016474014516494609891977878027376112531963651547306230123873280915215623488804918241073497836768702435466954552273875495374370739143096716857814349459331297685152008776287299584683790694659142263721150803036044608675911815052427390552674395666619719156273635026032481456138553176111204112776127200846235514604213619311047597234874574131022551605485118167018714026936795504420857960347255449810302502858307967775693442407198821358808700927453534479651037957363661918333139003890369218615444296626247820515591884582183041122871254725115712876541036308768316639856003637309485961176167310652688432575531511059436653859444973840790115414258510362291526883718047062007402631386425865202923429695326588899061781712942036455487324035074677499628943618224630805702178936461586938017006844362445527445167524854813003761957942981800601112330167306058242490732646839438790261452566918790034937916132270634890758672772487116571280433478130387644702034032617741861379292627976595369051467628939832342820758089944589552154176161913413942304859326002789299585867031482155731506543262493597661833904951619660770901508759582638621049329520135261358262350615601141364836658529072024224083329632128643435558676764464272760342585418434293698386343532040455066987701712475227606154360043697396875036732036446878615371114144588251459967114920971591889758679672544485534046957857551214089688206452934639550191554173195106835362254821554633712133837380503849339501638189820394562692894291036759885914284481621816220517183298197753366638567678810257862145144381967192514670643424041633833782059944637429446140273620024950463310857925226144956446155056720606366326098969730092688677253767918551970261464860219457432213969035937011479438661498979111345985986229741816752292378053982455164416669970858936389086720874716333444661546455555278019929279950672908245871727476552122946187177557324200212753072068725903729007222007619221804874338114540236533609800554432975644739364331510946102766674676775345033382363719898008203195913319979504070782094867753344910587654284180747263692313909874492793764799122959240901306838764046922373301226206421656311612619461947042732368419339200993362240408069567258973897494303364869021024855777000529719425367767528545071937898445044815186939360424210620482405889476305645172226520206171340265404786649598472184564241994943849686671613164556030880389808979945969873288509237411162179051503553615462803966467164951420585589205310004622250741321943675929708638374295197966227253554159924601771448666414222937109673130656713151754829527786896935556852257428104593468731001736694235738497726381182095503780850606561616167403831368511062717430296550582381805744709873668799589643394587587474559719719059304759707116014267723707255008511433322958746473703284425487510826109608962838889053765316049640853160085566658101809794828132529252466254414566792225307244203420137768325959061233829207946628647288237755770129116703416845364019269346567254137820054195853518975558130087681119209710481359814363846327762155761156061967165998955626567836013394524407293671908545182808053177804424774940005492198639792047365741754450257693784188264396870484478983239026816100319504712886637281606778513491512966496824221583365085803757637856751516728405534114609482720080544042696587203893834651353956490861724757569811882138643739215182880727187530286473540068268947174387829973626059346992613395348251999313644271113278448762760770228610165241928032096604507175138012399615001800127119996825404322516730197518196802484385364946696878380331072543287869801276634077805943743733153113271175305609699867403008942108160200990499922001509110352164953661898996042377891020239657548832443165451159593672458196635499092100159261773686086498486351182775315270220966726935543585467770867508519911234887587859817496404284281874745063578093515565265834611670441505677541591495688406289816210438719328909647450700828919368267552855125907092716312170439308862501772594240836827145794057332600633084887500366460057630951655613085668245868027405277024889869064384717207260672153065744150025556762812471382454362802464337635489786899127860309479610998369932550835612601618871566987055938395315525801847599519757266422619478393854012841294923341996649712556635763122042949263452811462850442853501450309521654685388539077823651563355306434279073532915164077698987732095277371848834786605623952271189953240716916480620152029716280064375143259257536223089862028483961212045927685846881675229416757293572792455139466064397724408718363749558291013002044822395073055570298124082662076534127446187340144283155123822032413436772480791707026546648114157245229020789291048647204686123370546666876726542568292761161707199369708131954076072485520357590139089360261466957756599557734643286864649924903373862944441725174502590221961550431404161794103134345433164829615782630753896615295284279450317196673789641763021872800411462475364252300187815600762791450585736043363973728540201421731712361617976839677055727755106865981131452331371919590789470678483576429008627556968481561536360930127610982614036411382387394959461561506662287922222224686655881793464364188278296790391934395759666981100725438558419825820265846569599496789466456563529880728537662897810251634225719571645517992213832213336514788146202773605507768612646696573426896689876845362352455314693658281329718165619560574556779021911821956586751639697156944164585105680330785968363569351730556095407938464138089207422012902734741002877024167279197213616033737118567543540635790672977469263839763099998787917345570763528539988281799487923151508692527311883990068313174322024653929943581094149346881440495969770765033493897603178993316265963367927533440723990699489428752694754933494187566074896361443733081775763921115751772640906381030477831971528365002329260217797125105263161412952905039050270496368952075285005350098614937437166980705534737589662722988301770449932284394839588843030229627610076427094202243768243508048290565559926195508988185743832907591091524932049772786811981029089892339439057515269747238179916903021035194989881753018273540933092136767064544083793434692813545351326788141460007584506317550949595676971841957855864278341868720059876536862389258338844587558719130706522940550686242943813325753667757364458332763799889639087657669020527589241819728892085650192003600399095056392415697281017185710481831838784577252525208266230197566821057350817948074822366411196672039330223039529293011551244163314768404008189322695399081440552479648272724689451312082084297266745954014205581686556414864523719744110312874949932866225998383318878916304203557152922622558681256288148527837624940397278678687168385645761292558586208353427721110947825826875800610980515017282086944922195694607320493449426808724203830214013707173598984404860183860255207959755703735542743200973504925222101293602915247536830199483503555706242100028188486551306616408622594013076743318551681376066967594621173835966118247660873041480258221027747126306698105697949788844345519001940705821623371840784535276702042831040133501234108228577167855322814954519781256895238735026817755195414129407762881577704159331700635065529358585928249719880028587265072019050666400290672049438402105669191841829409227401828320443012920117958211133926504118308532978891992051148089169574171675397378320901659616412388515285710203093054271767996473949454312077448520282042652959008079764978250324294029512837608427305481854171724650130848853563449152556162561605301074253536398353880425919711702958452910235007974688642354882361179775764358909760436828727705285200807683761744012518916495996677160862518844056253758474034255294064776208053098204575347951924141708259427987393465022876975825879852258733679184743012976128243784012129056614772982393459318033825790871717641990409555675673447508975239807773010179218538429303017611272267126238937825221371059706422708596617675855967473155352874385377013618965133918249704286096515777511032122775037735839833378133085387380766363386136127605384776255538695113060059714346791797068335512170023641237975325196671135495085531887407534076575643682410286946894758620888118214003973908461420409779808504481237237181985600487905542838270521464134312089237533310467226005617172689913391156839516622415788532851220058679890688689223740357786745314598327425830076365129212849788208217403886762991512637413361132916318889147650751403063545565916880882191303050116774602302937469436536065537983051066916512494285307855425918518454630920566516398070223288609164604085998967081348884877940122450840579303377502786228435535287384047412282135034257892496621254389197395896885371965548583922346315620824681022573457345169612934488617115748519262950555459695509576362639533582221627204114225050415691022082006655146206482857679373141756443256681869959623962307882600520054800134684573584810071910310241379671407940031620095923201759302667348735408912095467781113881740640726549087059919658336582302420412393868958312698908749717724368931059595852092430998115252096475474150804814399111707979703323928437834466613398931346913910567358605348661253784291716359171571946525981566407969723799491047853448743823735568593091433440637523027742524967730924712514512124680267983199913648440838123411004094072558222509501064602549112121799512013349556103453015526825134990510553364841607945651531116985451704748599937933446910752534562598506113036605365848948320226087470175878514620073112011751988039286150427157214832560972432572190543451209799863444934597293952444858481699532293988160079285841598437037962503980979387960703799413739097902860833959849700557742046667073402274042459183126787221117755919873365239104486470296153413474397540447691547277585178999052301896614423366490483119209729654930912569419949589076218078687361620255251850925304802873938192893314029077268730125482960890929371783593645327397481722821120216717397933389393622331784988476903897218788067739497061597980141513402659442961813078583941130824787117152293415002325191661840224846493334485174367744492604748565368923845280308267139795407193741434377165214708195017181925276540694347639750062296592153545788336388206646277672610403227911388720391665800974694137285576736040179988284459885258231468038374695667521552104948216468546434684813370773819467242983152357251292245558828106520381725408226198624090729076334054589387889364923671934802396411211260199409733729297172383691847277393026420969381513349536668676731685276376766405999490217008676133878643128659334134757368911923433635862481964265079321350278307475413023703666273392515740110204239768798274346561623118011717631358609305091421856911906362868754529069994039406806221713266147307611595893475074682956506665451247185803041335555720839963835590217008513008647059020688231708829775001340150675115181739066756262073753932678662869930043946475318722931487015510101990875778294542592161750641565029761541889028524394106482904115724527600742781156055893903831498065076875979365508299284071278148807854305770060767083315414020464309557615734215556584709148131362836908787944560680328647349347921093228528667967950219127038925750657710795341678000547598839904830003522113253539687093598274258738777567006420364415453239752506060543779178268664683639871285251159526891878659341726567893312989399905413950287148630582794396536518019733197894738935476449689707896084136890791185645823325835343789122457493046075946662556419644778775212179651357686690719562330238086203214819470615811939795852462596689717835490720861553643083217917075109420464453307587504970096307008482379059098915294346186984664934680686420198535594733493981780071873759205692579511986020082339820108029960861455122406089279469897932894864056748113038284899941556342282933260703824247696817710355141806131658365573161972609414651669527650113710680392151126023034529422215853331903473804197778125765165590315336606333619652159657121731555013454699440214974977679678138929662640370739592639634333258606852273774109350393223223002774869195767971818353589580418047498880673804715249126748515571791269057483570366250294605762597137461441026194913382871290719931054355762983949248971094075543493862698413670684300484056899727582419063086800860477645102964158897214938169121798494058984314275068462856817628382589783766686083641464519071170993884515531760968406800205979952029611275416565839964738719933244659973233703943923480607129312852471829911566567344859277112081277186594061129172914811685884276456013478790820452880724830337367120552118163368887608973421680428995730708884384950140813925538374235351966525476741430303141901184674624541509119820514740428814158544670551650350139796224291091854033742850450976679857156585620125613479256843863893825554807489074137461752300634768706600408685497460074118986022772831776050218318504150127135599917250821514549420216686064490081294322939926070609555937535283839144844276312693663253159462043247689032298700892363233114465484249315705202251818203200463685073844301329891336110813387839280306917294684057651029273074741916434072230561225386140917412795442505424013163814432038085348952524739588827076651039905747310842333697024412259697702728397248246353945372397457475165625248946648633424005340804202961859074503872423817700045931901809440122380441136055921702507140951254338635176738879318121453056613769477732006166029292120027153752584574614599262651203725711386662540423502608808071402170042734509798833585940500119068045952146324209511721252888624291861202643503217746127154398336918044544855005530685599171191385896284788713367511877566488731510554522053961894817009635148635972386829043355092597494990743218000440751765657156727949977908777700228333815734621546968404459716368092671462107534232087563634944529719678471207167873361719389350791236212385272137638633120321686130133957218867719063271192489805287521478327099502129203947440461686379564456947521803699332173682841035619526133611530248327889210548113061206867206079719928867790808155942235599120787964996534586892621824040750849599858565539113419787418271903558976671057714966573469040741154804901234488310538240310589787747386237648767968869553187265711704186753363991742685031390020597000340420767605176199310753268035285778213084786918299718701631756130825081278593443758389222210540230089745916826843465249344490947298911958280151656647599719206231310347739935606541839856941915573921225276357990405659745571017472303185387906007587910023600343364605703462572104064946235485618527897944271113178390957366311274279477103777308723449430906139620837446719125623485920987539363567640222435583723524679562191817015551790444265356399546943340397015440423914062637668995430148717918245464000546535674532462441759579250687027354746132939175957433510010780759416333582264244573631574543450183320837592522552830340238603697123871803993689809314710710472414484048352003530370283848892737947810730909991998890686621991254220045162469343120992396677027349124802993595494484313622213695340534020158574902969256992850323664489586148465776315669825225665946882528477234469452529800805685220459013032101646790656288401986003419547907203325223905072011832448015854476903292863419193041711095900759718791418841519461941726078869084329697753290185335186989278496037421253645058347101426773515785876093496046843685799266462236907339534861838617394307740582617659958518557561932654042385188127041618362544177826988624746121999929806297685209396534667875979425584402755102941495407636258657271805894802760957892957503639590942398930025273312835785926869990580623654816923868371833615547734265031328032079200625038317759436869379843760032565471802172876505071983475888613692317330739930877813176200453543480144018399091666759245431515486113725486482416081692917577354030115110749982598246901695474726028002116645911054462187073982688638112964144007481713583322284294300622188476665436729541379762749636602936206213295617042306923432886020153327090215867194131054412319320625143137931648352718292270524968230079991011017152421037873225988554065633500817924037357394521901214635399899124098508609213057954814792041072009279860981400499715087675688715725793055576733411614600786757086420664915079040286053269231621936804307447929733973618041592469215562337284078206579684050594412334248538802863600235933645494955042978623807647480521028334477386995787814734589485764898077680555562946443415615709731954499345195130801927982477609580375604314203752154324222637117135087006734254542445783149191873214813417928700754625479868404964204687694800690237886691689988937603533230565327811305694113517034372159169380154253285276495694620813319588304075622280985531845893699732807786554785698134745852057468438205907611485603708199199254539875784840091191483526224194944178660326012699704892370668015065311044633012677335994123847446221568207545297932959172413834683677586226687480764726167243336890300055232527713728308592101421292436541136040603746682967775413136867541262023493369773968114106232503301065052553303670387631076683976380651091381255285351870762326406141098170469934783314038416567528698356798803835897889845093206092560468506232926925682994346914201143202864272099310481643189035907640492766936871299223867715881787679602020370374271521198995989760487625621088246699780932288224921860147779208629647433368608481734877499002642840196928340315485314785854197724707723707316680778669875719018075234949914843749368986427957707672747411211082147643143979146781425847597792660530324019710329592772114278181589917674478608238509813784884588170541443044549734605272158743868752334233826501621152919146992440457403295381672717543668592756932628312932729948420807256308388302231989632456287948967213941849997048961695148446321155151978064059951311481942287127854215381941006767598067707326939741612615855425726487655786990825483475042302932976906239456865779090189195670332474691784429554242010838580475188887645759007656044337971622621178043880850434072239641237692705441736131521961658197755007178803544743239353395814129273573787242260063843746557307420761267284066423931550115729746215270824791812090925027497366178969847126756436203613815852928944253294296301520277184132506557958012082942514293430444827962413881689921014845196762773355505506918856577841188349788934025089585401423891140603298658245435569358133932797970616826661716018621599749627176531395777431983098316517227258810941903907171529856027418432746201740420609632314176505378917974560491939425847005053146330604394279522530638127755465692358965593557013188558351447055093644747205791086830336899808282613518211549489333417244825849777208093066659776119904836102199222439546437378605799197748304409038840919029758067689207292619406037793635015313168431295869057192114040163112842706345482530870636061015101581127234416859128661301111193502388687870030665475994201839614947167472633915475379218985207074537239860853454540596724122834312558232025714981949152939638418097775905946864314561438058629955142219079943791045521323276347822554030930865765523101253360805819247996070241328244651198841649274578264444446182613522123482973398357729610728875958273341117604247583023896578547504992774653981866587977161701405465971718083499378140418200349926228853185632274242301040780394888232130150631096469113886629308809655690662622576601023599171289774169736449009033159458894122993788576370493543143940477650713728109455858838223636659931231892686805001805127423906085734064008295959398484566944471635119073465788208021884610477940628394853124177959408929562217297677050646240131784973689742109664865956448015322925166038181773547964633718532775868072951626105462479967819892934936531697712619723881978105243666847418785938438116005567806139475112374220108107915607245540936085072063831872084176744771056358681246716459141578796446262225480542631935107696664130825536864514475411824607523532955275596385152040610695341770311713099292042706759495431856759878450142646464202132358659202801986015214715143503938010252822253052627664911058612768030773964438263294325922671080584479687667636171469546979813964092478752931986064536530817007693877832817116388620100843241685287377942890692643395940819862133235263880121837509714151529251543624948758206765616114985166587792221078622076629742452983800391339846756568815217480210582089830555241329198085156382999907442991798535993435701417849459304917933714814423567930265466564339743921012430549218240599887352490183391022695011260894358959615119483014627054684061941380545161904806436208859100209646284436960726633947213253130747229213314015129132496279266696536391045500122757045244544477351044404516893940702928788533277698555913717487756913402551421444623404767727260580743055183550903642679733342104883148296251553369811402144833451002017351771810807453471365676481911799301385216655183070971092229532822084347095409722439383612309253488703443888945254347014527268159042546483816630748877476378622346572490977688939992908507575570914480589913409733556602902083069137498715266511429613952502954812787041269528936153853060714071372517437275811085972216876115205309800579514837878480099208891968887542844787901930083415090638052512723683235543748881747403335205113594991249562824941716088395455236141370324261332365319972478056900078008411495897597802257383616197039256155849244951220093197439666685358364711997900342345770237422852784538195077951024665128396237136827857150778472795239732198411486186223191828770964352453866607749623254541502701286456702378402172981442911502190760340224359199877546880102354134063184728434893189478986151493546491095654921206252704719883778563614869825581115476982756140888252135101570559625054407427572995776925328346243117999542979964689859033349520193679107329689409964313750224082879756682597493076953072594445404292113614116997369362028315870358893379016924653960229536151889841273585081393032674547582384504232752568256837972107654604257276326104412932073967929910094077081814986142089886854992108689968503547223715815386942444700533337084371295092632913205582417253594318302829375021480655719893357739860957999003090693032769416233755062061618635988795011289574265196648424042422112355404365110192935106437112295095775881614324965553759562215243202249411374934192907294567944825416942082271941374032562938953704857633451559631945197050703810035643861323800068318905734575184901444144035150088878881942739265622524778446782603186477856624228619674055058254202315163360023096113839604576955794912891709412437985838629458113025525171848000273670479473207975565739914972523960009080432923541476342467043251372744083143800581195048203955091640509566994110087964352263004040837697319281911311683186625103602979342700313472224954293685219165939335061799189423377452204344876937439850710452134665290556317367929759159079035526120666792769780499405483724804757962064699653306089573007343002019291679584740216404393876961554142020358157259152072283960732225091143435630467203690001093439340256326764175038816181352728387735521904896263452395374215975418148099599526881862426555472061443317604252639443500184116756525520193442526796135049901994665625265544375904005514146826925798424556911784423541664086657624547555139728232957587464569771080222315284759915040080702401296399428498468147246887728489968376489720755418228261156309755279231876833777549773988077090414624060192554574817049762938752726627860212469224116170333933911140602092832754969596394906768290471121089128917307548484019080064948342828584750282954481394671447315321382548358958041068850534449762540099648445470328426840185430755845336533870782723473702038285643859117289867531624145099799582224038271433385425785955152912947083436428570381485678240005037379863788487903895869020148792839510201015661099777244164112011678384748219040011709842254186582651469913332552145389235840752462946629537360267053834950137658162764118282288113215964696844174206981350232173157134062850689706898003427789259839732541203639634526429840952818969424951274377182870565366292075707996170547280154770622253886508929754953902163493908290509268642272498796869368837762372633256876129844789062931090640466518069247601349838807914078296713760172478526314523175093684183707307738896609735816511141076276779378980997359135563745663711103288724175458730238766940190606708408991810335500414747286195569435685895364239904292486664532906033138163332094987372663442448223412174878200581343222582286148760276715751979675871296620529218102205332235646909509459229157022934448349269894936434101028878623178911998723924775548591453529150280483062268746610523916939384657448849448784415506064839482996650036734360630524107653090939098044067907893974065351781661741919976158396668334841030019476600781816119641186661538460158081004952218583917977896215303744812462038707943418415508983607786507463091064820332822474422826997376057315565635666780761215943593086026839587805378725848032570312586659434455894291030246995359945091014778211571053971414756002844084910730067313568665715014451449305126313713617712846843066951337326623897153394124738823542000862959290226869115501715864499104596224968703941037437650921379219388488587936020692700248410430493354670218618317472502552722253472275838457260256488386295064476802398936782377293153502427031199423300671423959250446296514365857919740557572284118905952168733429611409871887033762971415738757331702269629487220673960460835226937384002166545737544004139304440495914718348519991322884648452382883538918728203054561351820702004423672966862636564548934116735098377544729267917770843553931453688182468790782608837152726530056355523714207502239074919214689365419533344825963124622095766766777414308403286205115266093796508684469043585908311406284800027258420462433321760923309099791989034424960287561677653781845378616601410231373166449175526431224115813248876792088629361783141121596751135572964426073744035448784384518424390897110635056543064945196442642744479397390251123994277743136621887565655899576607364637701748086186243763791988155356321283278259860221706900801002689839324527291791811173229771994138562679683463194945387595109320649354292002802967962285435360509655447575126677750008761284032376158324750631504287572713728707732530174935054628660868829402387475990708508862635398267213482052672250037830130815449747515316149063839655872219947418064726586880351437389908997443612733083804670993640359512348876447336948008778976709333757256199629517397219348988282223179527683308632315686809355053092424901288971065845865007037616125194802105796887811112729794854180338781758187437581769248286417458580574178360241108249754901375228333964745681242419204210588811001331311814925621362697906423717540104151119634357479348076561034945400823195543775156925382796020698501040780467492845572359845666195095281678843093510268292263752397249932553175631689478157389585340841787221600503183675364716494075051921401507096057616976820176323406137616812178024011421301831681982703582695914497570709972053242026024511694773087621640280336270517496912698401527419231695509391938733992113346532230251268595621036162741135006436967721823572072249724522030062058991529455442221719156243319185033526004744294350285234339407257901772509156855562227262969531989253075148284078767237395845391664919270268725673910349943414649153385139443135449720119112364813830193385678277050015799430269376803040905258186069826740581885916726857964033394377006411008425102795207202433714147977151919661605435998384327975891123695771377600714033754717114698379526268256679234267588780685288000049777649186488829969218162039271741461306813985721305038535976553006958613875333519712707281854056003203372738969377404730539173139017294405635002090900948119812590354266301403987215114810909315401885808757994418366780455178910850688938403993319203137354547423116529065010055883459366737091385178228358242951898140120127878277800479293566129851355440340837968038274084211957800352282200565601322479219826291743005330002675883736348207911455022185475003692745282795804268024747367356120323033870997425024712537790172718683644306245461295257998251756479591989709256762682451924985885661522741556544555264707693652975249809386699928070866203201837575914292042373493039815895560681609894475260855697869312246897805848411203255330847563340905980146087191622431078175922247155691998302567492206748295686242835755847301244361835024477054049146273613733733830281238972527856497885241723033803254935086881841528347530430953571100675653006390845409899950632064783491588029689019117708834321560735103997245334836987641976397377579166868193169927987234101201932521569775290767150002594891243784689111452008893224764159679172013800287540896184259993957372371335094400124211695167454563484032602030561658168876767818597519430153658603501373284158202028711646445175220190798752087351064450496343030319076354560036525186077573164024619763296766295299253055672822341332912182159032342569971307734379749561660557691987307967122280655943641967809594944299456644030978627607042335639603231134955149306663238797260462809012585547910940425636436970487484877273402838512217061958335491982383319164945935163955267596797576640493513002451729278350618742186969914855779186682926389801606494822679112261942608798090743448453505886374924210938520685947902621571455885932388771686810689338781049003868918098940800134972989593406269542503261446617129424817425480809721143763076435207654342933294172710000585372805140698867890310069978505319776201208128860166960141550847630470760911669200740636168917095109488038865640665731003011450644409297112968981379177682006701275989797591727130311726932023639236087748005374612182373582398035854028781654246320267319078642318513854553948300345457854468074157890272254357204676504691781352260425696968590231558754387702364598681233838675955480827403767583546978000434525359789048795810731250736051030429673354858556471048667789949332988061522944045737656791606501684454713868701733446784069915069475041492075264698916433575801658277172854006644956242373078048905463463435698902769285161062536201459452329073200232785386752546055010384960888758840868541714736046932782750561656606164526539408909000861220290919110517349501113621008121034270335211807972031761122290448543020434789073161069028364698899152257569818369288349887516477332522173492158009424575107578848914737286406439305942412198305852452781429649312404955738528685535774707942725259915300383705158386606233899518144755375662351200223145996333393563155445387812953643163951592635738349583863784364601632920879264972962899398830467563993026095823161518152381370924086457833177018626504475419278739400818670198923074500332127645721004366136427836982360775619375863025469821196343938352814496949901677072144848005611461827991801019531974456486086258212711899332758345749644692167690826726190160484991242596504500617931844698158084905875146993022486456470471029364036423432611209179300559050041200998336938961216482370915936217308542465685608465977245736315317416019884797185317240945716679592614275683404760643297181636742756073342017666796310606505812102636243003475338149595587974817815223742973814698945583096327063543024272979601028437847769656899932758031920881699882358188063694688112479986253602874279131197234219188789233763314096215724685931898535244606636079855245428726366299652807616165453596726757315415992401021783380663307659423960671394492710817677626262836866087097789900808378061155505630571906786544520355186920511140080201412946686870364534118507777694599095367734519249644892513990571083255378714295670661710202297598444715155869569325424274486646589020672460605374617795430388209566447838471681963811104614947302889063357344772627131301914374360924355510131144644315323089628192966083643240568373008328229532331522900775580788237950303510242004332971427399553716236503416473138616475423927696352942496772986390158479690130585500213275105520286687618546663651046655923278279937044599269726452159532148968718515619069284049117970230717266350228441792689486709635176147434348778240695713972359251752471450917812257345419302281164990878435001416068462161473473723069123809232579270530557577405700394066797621788525922669822010988660116661314335289833472338632673184928841158800312209885960018501764792931335059200607518171303714891343536160405813512360712179579933242517582112862830473837587790042127253485601300937853639273308413816895082565822751982518407417734011454938336845544203469164607689587292506893647492242404853848169161530092837407913457237714021715703264997496445294177948579477822464366875418486479624328740126074262642617245162703192212744573086532559851431065154481141224815654798612383306001641103604034009708754299509914988814589874381116791733398250772320830156637660124591394717281270590702750234525789576559526994483140862530539057720344735525480032860020021486995595225288321883344543554582594562336635996171218367890082280142742958222693949253627052166942165030409864322068698774277725089610981409508498761541233962764044726008338740752448394087048370652281605870924097990795094776989422656168891577576842730754369847684105116267795502077896329976280336167993998030800851438502718226627320826913207143169859601708208969643065514382071882519367350219259717335985881872598391892204252702373415449883630573864296602039024676763783798482532892471080081826177570409191576654722491943305946415969477860259370858179872005814008375165581806759478310690077644565036788739135022595788552707461337407435030760332838268847589882517431095850586744931775924608265086571709497294569531406684273104300860475531754084635463397829087397411655293125514196807661672763714923953605160799167457049361404435818730419493460368606887612969442582181301893523709117501590564403320900246843218126376579855406178258761189831874240753550406027504949133182091867025400681756146722550462779326916436354539436562933034534379085045102576006057326993831391096035299813141031657718409391611703467338143281664519166823623560836975255307799058035230218207291984596648656670475508051637012517740106341458440768183146948138613617607131477859614494599567803992283372778061001598546305923227355794236807293470704415187543785605696401619359717355385985591177680352476143620104826581755613424064884948579639538858206892023445635039118858067372140825600179252238354739586318797066778060201510532562658877583552382868220191695562741760514791499489203919345127512098540949910185577764988300741042574282194544087523998150971696521903280321399114704314951383073246607377166347173187054959467409088978232456132132087329947819116675382792907321089340309146361985436033061250062377170180996096846961185561520962182014895297177944517612512607181979164890687754635849548031021307848650373721042014746743457860746986940073441189943730569319549094606526610416088102889410036529836896033228400890325895159217705346257235485357901006905596747961729632851473406923433359028463039774328083397406508141557079152811885473212620769222407632570245853881746806943291209959737495202669918267267657566032003298313786538840823837998503828980931750791261342016936749395864379477318107992635863236197661199157164898979166721389215115320876665650732678742299023006630344693104261596328019407341759917539461398238710249474995478734099741547543919704338638756918238667246767367781118673172483064033948090546261787979175072734400137454623272529917060956738589647126161847304294101393057770322053446707593836946416387215151936584218887828538031384168687837997198348941349042074273205643587531954705061006502683045712106619186268932093629111640419188852438157344374963052723145852314169987197933910853847493008115968906293061124549544828903670398287947591884521385257200707531647824477088166081567526891164115414373437830525156617444123224629518225462861448741244811580206749292981210025688953302563430083669366669745407954970411175868636579990524435584523987700107764407747847992997310831639695397622141541814751323203155069021831651821734845486975432219844707524396799971476248979058180828498783854358602219226201814637478745005440829884368966073748816111362564979206041605604184573930062969076709067764586126350083898898668842994257907948825423076265011400505604418609529470608871881466111502570457063168677927184603666034975919540425926373373100503797352200939284985346456831231188238533782401732435763661659358726643042056800684843229432171197435693917620666439159071951411526850921099232289886783157300643416512913731807931726608407379307075711447528399615912285285918766250697764903708395200955844585062808576903333506549294040776851170052062842834153913751108846896224991235531632073982746861219586208359548282352859498784643119133257050720229840311626333095182323163054762497485001898046097007923045711819045547249544287762831054900095582304614172376104078485222390125203627480747490963758938658763166156318231778736693239384682675819924577583352924068625568933271069868139023540516102463073357742969124901879520467065717615518595888936434405457067544468173652378593039041406194995554170360579544448408364688823524495355169163967324667449318762807615563203060477732127612706421043464373041860710749293640239070953267877045881991789323284296927273153840191622518055244189843025657695997595009327436496837105500432490429398856048640007733662437328617622566311056336767007594381718977764906210180298035148292429635976148538506801492581795496800753221376481585922774701365162188063801921425128922654603978047791326248008192657846393742990512754176043275035115394940815664025454308371080530811549760094941335136461774021135994717420751760469807125478977171448692405841652527305074944785655299345465944147861021590962303888911371600894161528595747560978806580679250495705733817672650104343323225553730530222306777043597641788481866258254679216855813352493370464456665676654085236851939516516343473398225807642487290508937032844877422956864012792984185903252649635576676895269455619311630597367046551722471972586969762650948067220056201417419928868526991233667994475609526749595357658744082309456874850443088648614132069410126492263101552342767693204152985637035715664272176730782528134856016906791809817865687429647034374320600986089152823809555306529919811773810103050856996523865860099452567372895587666475220046949004794486263342069879747386141636538534200525280629296090941162701474183299239523003375825596948452082299827717104417334656658847482604311166093366470723780806945732994993462751841061412817804673191509559059336389482779911384604507896933068730228119666718511665342029840521111147587438336379518300020430456818617671097763402417423063277398151519261577703588620396480917062166320052166638574000356653376213158864730998726615538905645744674263470028267195932423926981167179922935619981930077978765770242152704239077142512497229561420044731058044540549553619433733223951695087210014555418703934441495856183143892545793216904458685878811987041412683914600440513793907777668141815309364168270367025161644097537786815351836218210820356032396585795223369775322764852178810077184395939757416274428198019565694209164148277141666412218529249324926188052491807735884368427017276346719800537203481070190752472267307435897946314931346354178268817356987265304179559996218410996741969289736592000991992875267288943385202727715939947204669127387021664151351865152062141186162910933026833852063084059264714421302747520225118851781263214753530716740622210337667498309757501832961275600340037551379857395156006601926900138190910675099386666233299470862346589042393835791591648061831013314765425926563391111187922979584599377608207154167366411568045421478404358117607627114013167394796926323401247929715101812498651272330994122114322379086287797991041921919788702029019035644230798298181741815032311708035614782666721443177110643233495368350031645753774563589800818048377406671326971239721493219546947519936792173007156021735704205681244792260206942923196732971713852435584576991913856122708457543279682027045752355930491158338027494675066316846988896235491636203373983005359127034704247472604466867471142281962747453683018416002140691036936222378019900082926015841645506093582952181590532841002158691760540737187500671808937495798835294602350614169262955920605099016407331422323118908847768338284870138551606595165820731178546241180460751240196007307528566776862594931561518186951760369722874159357681341238836759766504233851827066416085464320148480621845490116575164298985278926654302680794065459056031503833509429921988804091579808034369761734767743046034574302381858723075886906249164226101294079729654456695434146044513205968878276979491078407192410650779579521772099123009781854954556946036264160459042332829977660519683268394607859015019246701752136359848731208655340321392784301046329080053449896290006362429836692725824901800477313144398018146050501310886247626698821247957100959582179168488496359772267130772348679681748736103211673239092797375514951657287722741676640180664045667677969844771971390860084355817874681909408453334916983013879653369966539721950148949561173156421247111159140004485413520706268553297442584226057820785353561558640414062878910085995604166054131686874753884897425092368158121949572947380003126045781309131749686248849179588083140880038730723223726306840992331500556217896956945369848487006781868784182532446544803655145766679680964569747383055283236654240477956470636658644256059409905342266789994026790676575680442555752213465045067778206697849491305212888338499993378774054650097258255788070294112798466962610787215003397194886853783128730866369048025217757249257530684268322126721880942463434100942862597271175395053415513386309354937132484704442368154551698892104674909787317108769792186503205514150415988179637591152944966374639443845161352605366585071616525848561117971369906376373802124412633250610213124146007220557310804147323803487095092291117937618515145402965052442453200856979829448256561005949571974483877112639502794313757358642225311968872010198071890824106208846106360614848311158445487060695360146674312899903712852346557710598327671858044144438846933826075994188327705430017359222796023305423612043317022156416568721238956438774143783489530868389253642049935954594875653698595266412031526075957146770642738759623322579554347648080688986659790082725705264829669137520971674301879161544543629092131236606153421189940714572544990041983729019613602663748583948335072265457115595158728005375555110842622671800198590780413705279020018867958202436124951256267728372691556944629976390308394520052720068458389493271747789543269063862443045090248972772597669580282768170241682944973508299499779501410566034320524221247582685705161304450882121319535024127415624182710261890248078828010223338935874854480377753354614280424367969651972182507251165151158313975275015315464447811953322975602825777997878315058195109408587243326369232050585958007083284004350469215039244511820903467082727776947060515722546712497002821106418201187615672626790762953419643431982054747108758439001429892521747770930104054071661960348578824540472287865050629451425736620942393139642590798938220534270041075921434464790054438928368281540502259683516391239234209353776492673347719885768356763415530767825109543867169953252005363738924921651313467829160081765584665345761951261410551875388330236154281131032503439719355765754815127436690502544368700961320013430240647248170001410468246986010727114823811118503722983048746665276292853342192244556257729266498340110438195477729124989963423194702945469332116901759480906271137232251634494919015608195908199331381838612628138475692775680158086418250308664509688752170996890313616183873189653465870078569324294231506617465243536822003757766659532049691761657814122697561171986162241820409729820181459531077855120733412199639822482528061842483518044443310638767823508350789344328561784416547020571947866904639609935150954017568945620677322508923976441146322563264796348832284516121648067739668277600987941830065121836706669663820288212727299408356348564102163396744511124345673740854738295979486425476686860075463672114236432497648653565697694674577646484640636401739501662740140031981190646649925788815600780552894569725437586720331270321137943464046935365509387854249638373820839692918168053488798818523232224474617101854445688433660962494504222705889271366544319570719003552684052322950241536612609050165387144333625144429674319043937004756193058580049100647262693769316947418275820865493120376022972149331275715750553140974798996757377465399659542211514803834791199615092882274960186014329991446224709147537616449824305679105800432444597837049475339473898107596977548972909611976109515981563452135322035259275592017539599412462305683690976248225229752667401719154280541222475638365831013085292581837438611130980803318570081170965613305134261970384405950327618925763523280347167843485506693804440235462955608198854481303540703335270601893448126620550332801860283282862441617900933594521257562780263395168932995437039563572785537704023551277127871934170819586337764542818742546011698087047801810656264934793845205837220887829312308518737719245708764224005984219356484955866535053363603572907027497787865454344749028568843348160882065151061378926828512279458477161348977158637883825843373359936205066464753887972598877457240204795349856863577577723460357067100274651703172378278885843717785892868104429608973292549880924904358212164279237121847290188666159699028733273880101240661905477063626694587256035380912174827581315338285436963555557165817647780901918409622954043775200780410506259302513808281453612187951566162881893586529325200578788895271576510312922953383512264080868855071314852764643808659800913440178986135908131740259642292783716043626836761990178607464153659040280755661860105237646607964457062525390008339659939759699970357308998617937467074743463147865123770893758160458427957111188516577630332850654326246559173765294849872334075149031979366275732921328498566377004804192716436108962130549868562081403603637778585599982753498899770026726424780627894363044212224813689542047509282648343019989607934219690165209945590560752291479726126782446722985726773973708672483421538126915885753982579481265560209772197849225425090112783945786627822287103594815105671292228345264403180317149119009829033550158013881333047133874191334523006742134325314237873587484980514223842177676885253998511560664776095010551054542866806340995902559318800849813327278491288422455432363681975093970443400712380606607810424689854707955169217274132579626391543085230458658368045884212832756027362524131637513827280324043591719776135383494217862965297704477153721255849949683851802325579429082564267872337730078509255664884304454228210266807322754843588879113878651892257602020246452496785133692048064372370558382028187148065965859617831744321265301548681930907791878979615328106251755264902645130460354660822599168803572916634054247902945174553730202867608503204257963233278757658254288455468376922120226342055416955708051451941687467037498588789440187792261511692199486051111754457882307642123063657081882743605670736514771534895317618862709072970254202222270720730457333564218622254037845436770323318358220691089578464188525315931856610794642870148997710034029144633258850752416383285864053518624851781130203694252732925644683629318606227136717562576357759046235600288521497759316541674549754133456076714068475013158038763529454242858037255028120903106169241643899641298608919267041343855252161496947968605889312347112574794240977587851773752451185951251485906619172071820965043798682550443458026574934058794371683230698332309225787115420617840834302353288476420311545443641647630775199827200557734482540064591763935826148784823872660566367553574653578417462315198958881445688686228409772476505779553948136211692684241313167462862384293532419423021056916723014846801625557180766153129028414815619567310027429994444529097100991292844190585045026563457844785264755387998572004348485008738531392205530009809170754597725557299735293433121698545164713749336236896617240768648552908003211697953291401265788899101841152755340626142486306386847062968975253853088548980593388205511014120954014646178713221279401360766540341493427443340397732104483669978628839468457663188123038135212849373694248040218929091741283396222591624500880811918447667000925013562547957560272416285019000052568519118051389686787523808644334317992622343218152886477090121018259250908827538274526887219561492427932776274407980524526010681434997499038097401161978378164280274867563724730129063145578596349398000963364748346575072580699174636448023819001145689797935543218790417759487044332091084775079617915248586997639683247170483684827810777785196341998673635616662644250772069587483896196137365756399201661608730063702311323459204152224804649112164764627430510400402959058938230746079405548801473136833739075756645749898359908299185608135528985015995585730050036383018176162997265091784366085665418604442294679797267178158448335411405310455741126226362704645355720994079873342873041724695082131656587412330824568155336072480225382470401578630775502396993880613258517888387555198854879945827025291256981501672529886783153548064309598813826495073032089802641960049524136481662763142816392739087936910775671277617302681263254756099060791921766385518317967488387410590699126064208300173543159179047792907299213854200110105378129763641954783443018744556851746611850182955453853799419777764867377638508303825093509900596960947758589336739126376445486927525504709424671158874913901809853955062687263257682362450595224389063350360211464046228193267836945069969030690930142903578405559710374348692805809190104953736286330412744584507508052018911468773887885804650769108860947736182920509710843935463334042849539263889035725819993872219606879372524678774997886921172962324267479522524025036183770809822502393799701991173288905302117675726740757119545168718758021340584305960051645006858662460199981060967097379908779630778745708868881114095050731384658766521251562222076215486383452653592173863831509856165123648819371284791273407120897201468433063179934550584150690212031805645468116898810197464758174975764957968441077168558171983174701771573622291283981430556479988602408659873188242512743692642433157743700227654954028106743979806479740587340980613514905849539996874864596105530781605559218429866401122581297779382194041987365548206598823660745553244257874332427786162251644044342489771089233614333864034628227218101581593242551703631578165936605496356215835545967084928698210895190489628603095943316512691563931505113254061354141087946717763481652850003255515385080460434720873319168797646892062032677360793050606990725700395464836199763645764701192267699118827689450055144184545066135840336889461098567500704969142283430922810819697470781442531963634434651381929235517908927379966378629522705844156462754215937556345665069320130726909350112824850298004693605719735965565945372014202947901097297913467118863444588111010407459800305654987289636329454087674769975554270417737375658771343778520767453215534496184037389519339929797096854010630895059132616763386246937738743965570573118640631954353274673393092741362074649486653465933024558153100349419165688742504496861898299188200362969430898332794072046407349609446509826733509395065795308444765028165693551376940422443993165802071279861185221431952889125682198670483821123575821380987840317599862224447793547835469380046551831736481330137837761106332182625651289790503450299959155534007161880243116864765061566472172114376245823809783831869922614611035621252052003447128114808182835045538211271672450571849182042990195214672691913983386221945332506075394905457565890224218524071679895399073215553138095780842088732327870772257703903977657520872278610811241324225059280032962246078536257148160726097529105957788728934041453551766077899665196992656626190761347475163640412706579411843773641624674447206574023935944400439431337819771639859170657417250448044410999323738540777903158169186603334039534565442123959204462522799029216081651729161490272067671284470466048119030705995808788201816826884494988858129310722762616718903391235663102318280196814984167351748665811283353831906295984034385159987263627936577429554503675491928955062032510704996075258710490385448188795871084204016423698318979633124718849594321116421938495667973838149901621930804763201021179942163584336573987603180609136460152869204703071380974709938466801089210324057329191429409681595438539589636894014081857151094061538781190905349046012863366025130332327702187848535491987462393808457044538428919725553178647548211176584017985803472495453432489836872187569714383313797063355090311897567184499819004596170142790235794475567596297800528986759159525614988499158297073405951354585825709132594258937739499342660228714346496433387114367734808535657514888012185350369040173535753585898643072644331367950472774748769519770094404084085402710761824183227909140822945676279088211771916566598799979076715456430216254139124502030148089877047710560048726771957404917011276799413247460931807184251221310459251580695167342142391854696452636497319170825464364345984032327783934766073830039417094493908328743572853464395106360526777837266225843258668881431505652541747096696827700082975496974609297302555279489658144443420140802868310073468118215763830984960494378373979104643855761094120124698018381043325483522982617492293396278435802497848338749836349321291555723567304508964250149734985078065749973560492120050948561278521220296274889759764367566264528494706298648868040928859942116259766375222848424524905854023418057951230800820581409631930911115287117284374191952968322242704809378532419025484080427962116694977141142503595084590986301533234376508307946569860713941781851188963043797510182411492220666582720353814332677081906974826302185667454922132834491818632391828699647734463993849977324526498130495863183087756403615407955996359457756093856216337712975775263576280501968615368356276745226427731651631559002376817460355982680308151394728853521380278568739997499618421843829143811554324074495166642471297577284924887507136339892158908406632875069164461269854936185164687745617815298915019348510703784690790291656462537803580656665842995472416146966098922110376636380672607832312596606658489793101394875477133425792479429433703989052281186305341279126949066142327176303148061668854034332112127779043409030556873964313734002684174717848921343018599847146020693555054571534225748895381502724436316283710108624064728002349279722752622805144406406518459208484867628394190020480149359465450228325000141040269123894169637587285027549017510839073907185391723010783475353515816414347326744839255179506539843789476830502424558649760135773560923630492593708294859304906101050671689306720378391364912163651352766647963643470342211132097287359655298040203415135554166453977612606671779654826119575216522618110114860936672512603943116379732662634414689788751271377450091056089232942934876271894675911744991587114102843405161136598895627975616901761436690759891428607224062694757665555770181999314791600632955946532106042154807403672325625213132947643197882561373628110288173632026926535270007725350975984296168180133826309943807177195207842080517693073041959191169904372604511920323904156945752889460704241550494196423604394948434810904991920095825453965946050771981040020438063857064901742888223898493298853567481741311056715382918865556165156284076719720376175522831572498477721408896047228521050000621813516699311813767917132749111873931668414173164439282361546369070541563550005408885459448023669903114665625031824109903716007365904326390983881973913778851915812115457848190394110790181687541106740114324768142127227409628263909619022451215052574044816242466416012376017847742361247038762852515374888848329673857697123848307420163930478114832843685163977986057137668421984921049181823110174370945598151130073464482245915629688766108419757359070481288066279728412429135906261167333830290152037624783581358834956114485183308256077013263144402179126328684871421381987034989509308382566465346283354550288611823943309143203346735397760413284122688373590329862625913992124554625472115191102069490784833789240147439250110765933603413475549685133376172296944614891034275696412772493896079620695641900358713484131428145697828573183652549611958506355467674580450581991386072604389497548128512604455398531804686360950709837116747014087931914601197244321037149147934728626788766673808111983947171088905369681323778541891442739623076905951823681315835885272588740201120084827037065956669458763840348355680936699112879778264873926570419389468668140947496590827148448316026949475973715074476846361410859168776380362655985954991014634804461792569145504795442151267934474609035854928410952533297735159911625978005819732310237699058963466787039183382799104831064871504139411604289475011704889936756939184836997170920122156575318981671693194444142369008047081596301174324915599458914078828239689172390172011290509756275178149243669209247475584811644187268694546508744162095862719895168067063365700759290533804023409817804070552760268868437813283118395341000187724561447706913026665412258180649777798559229921469254244043990720041922163242438028727760151926590553403166450666951760423293100559828809225505316995264740131382338956080997242776017304798030721246004141049780581511064405132173793774438215490458073679779662069300993229408985781649416571561093310664780161199761964125638890592987672116599288015884440834726665286439527774574770802897276818749756783381932807215302102966615489232538367633988891776368072635202893047787708829629640015706647472234308995629467752253961234185432364532982788909700343498473415301612057204746639575825492228477830997976296120301358184117213985170386066648642799604985452415365413788838463971429420745894557686521776108325029008686602850458179477320585155458255083170091843029200072824991737165049423674623676147799085869991036714237263069588487174555490760172161404996736806774113545200408937093026174602584680633072368498903478744155609119991139564186206813660104430341615901322674092189312304986543762600763231914057395804474277127709837569968910784377601969451974320461275749082335918021718025160768158640612416414473769696935053522986939799744184036927099808234654822213822114299436468981484680330984078380053331433414552562894289185798312291950040927011120134954216815785820500266627246689705281464987563160144154435996462108718102308531259158455011795983440893276111368143684877442808512370851765897202264185593708696422220024879633204835798048758297075281361455242529655594520779539226387322506836968987288297393699536730391263066044891076475484129585091228898357729891386375177496132169773394683713183152024436269746430901487922104384106639801929330359895376049916552203572136579149105378336682211070525194229369094672874747147112477669904627761064213837189059512265343711434370922920965806890498837938813920432158608152937768099818714475756810710104272317024361194566867805298067131052516026409351753487133806392316079531362799695155450331406263613903203104762392667849568509604352313415436956106965729964494238442519337249307424930920309812760530378182870205305512689799816303700603521661426234079172348640036203311047414868266798601294601772308144575053328716378913512998041053687129382436937409983508668281837961225710607703447472608628786078509438585104432461885472587803502511448936717764330821458775941429231943271195812710774222086713811431807606459781193096562507957017711279490899380355340253754296343839909846193186846831862259671447376994757679519439095638823544548085667903868241227226739831662758472671918129561267525700904806550627875797175404443526500976067265529741959516358769975116809821808758615052935144979455709570781074479158956963276115510365441436937033370326166014928186437107803764934366274325398482724984239164311464190858694829887335930345078145723116128992759239744419951657200943348159152280506235153911753307582795233482018151826956959382647538623652108091410874280568609945546381981862577571896225830205693941743685651574625719870170197114369329273206000773030443019210652174369549134434117600658035410741716623167851435640356525700593966357690428368502329300764629085892199264851809401814997683668405362925112532813644389730432637103792793225617136657939860742884398674389212742713019904617382050613655977316055587110150955685741810931491623983220679455506199124126265105479800680501455817518291029765823806583005470413234388717425303756016335750668655098153356751976277828214693163893979515798736797183476214532165355771799489041326790716214628805153790840310929221847797906209818587963684134841956917894467979549024974364354292983299409463723865370625611892460575988838924327287015768572556629870790126335930362675187151249552894004919295688216257479210987370671268727013740144275348542581008735569192430249483935939908732342638004101403208019400793995076784227150687761760358385462811888693463097178445139558587116351980272808690017536331930122692217104915383295416229936076881178690913438255717490796470601121412896744883512265368903098716615037803227661759473995500781151161276114307831672326213194343224921694085652679080882270241751238131907152388628897927646528868091877193982980716645539393007678749492369718576559357088371046375194054075576370828882549791704676896451679468302631995390753568129458023809879305751722438058405389641111095887822378948690322195841966933673566414053278150477923674391917540398553360704535429280507022030722535382186575061679270160442073738817128713862194915442906043762197848740323559215810790349910840567574149269570686951030089441529145460776325309293324310487099028169877155318832126899930389894742849298207341670661458848109136451195363088285812131258020358527919913728909659141141274126031271528940829142612559267655425714935881865348043428819118189620373671194606153824983854094249296989745636951463882419538461128275887610208024727930738899029608639998352708489369882150225591000061986430166722229698867826542565653202372363617673127547642400175335645626888278412834124492255978504808484535446512665825239221107604094462476549878454197378373062696720573743928112112115883331129364162220264624780922714493326837782374748909696351938530412396823819049183067025827441882860734566108930249501449546690824712972605349259924500617602608944763864477280553318309373693897598763037247786117880602111709133663874976179510299690200319786307747113404408547864396132200227537311511329051000466531385627040899035004261651453377927629391003181470275208009992820022484945444220515319478013509681637798203623053559594225487153000427091506598902026440759898455450407054815541251641956899879259967550213956205839324569106079955530026549389914245922907785683580617116491906731181640581634877904051335777703542581992045129858520829654541284226859863763621930493376989457746108036760369397525956216616109454663354123398514755675315627388910229441834130870794771737843332870789186377622728806832542459020728365944820283359367626485299888341775260366673581800770930052477747137831151452106956160524584191325208241983735259469994092921743911245298245480796364427968632615465425104664283470194314697036922445841685350327668599816622214326704257525465476758674808800805280800699866184013033076805694297754852956019006792162443002034187809636240314510609427663762067881699556562908417668711387979866631890422950417823142047041932561312298360508892925457633101891493596469766362605017080817009560631791784484605055450511865189257992451156077687294526815658665929677320260447072256685117993011038368007198203493806952622692899676115493097378607178177243297488912546140171451621325146996295068071602347224864491335923937849756653392092779201677329658819279222259274760247139874377278214499163736198801076327037164073646995038787125132088661809017583490258577267411757921995127750392150216732227380110538142649916602284770930043630882423985647722576193009754121074582103466305764206056403515563473977954251316214626421545917466255546300422724453263942805301735362439565126016388295926452726656350434718080998302697713712548159187578337232944131741283298848589245878962964677806004997407224588951756081226470762040491066046557651310258351622114497365944434919248800045612529747219609873665226313365010739074396037338464224184534481688862169141579075960618418089860215142595390283831963139449440160277909693883261409691577995908221317576490252715718975183539272490995092131778225077295357713667806248060912602304522786405811311295816832558091372366098323564559890293655438222551048325603726497598977759429675249983809039987295939506663120370424914024154052322305736117048604859623083521613001630611053372770080891833291445060938732583144460181323823992569611845727495797938600489774781310300100457815718753655718705176896680970582572605975828418553556269171612328969325066869972401477729840468438966149318633261237485053964190696100220713811155985467637684249113766185016464536616988350985612262834430291607039129009592820102120273539515268596369325228837848443313474684513307029841840760780868495638942149932139273413624339697496548625822190054742537453985620682673188132597222226312345753662290591670538937410038943455826801024302996674946476951782150107972478060945379493181684487721988623469149867869963612975734499023963350700210886894698516204562387160781971229383487703929394287190104008276074299826720084025150651043022972082340227846880971358816749676471376679759512994776773963698623326958737533098385818085279308896893595764037784297953531759755337814733107548004315386345832741119919545368425151232424679176157061470936506297752278439180230256612622975637175694145368514074280053545282166127902746976536708507363617724956607678396951202318645734556384910325556423951405507908334203644295529537397844331751477745882051662897588497957079288974824330290228577108214526163710171876542129555990533987599079363387424137478781936865983025372646226809394920076175309987992277906981350701724848985330138027735292731026830765237634149101725173275187096328030534483590967748176315594345626723090212632087049819017232490291632918662069461881094906487015534761714882204497998696645957121897239875844079373048606394907066981775214714236665959304579860096022660945915537049807684630185096260937531995889004507335030377541451483960727122885894313342270903070850639743581613204688674252388892253088422011547769799535645706123494668689689378796830103198230843940547011061990957744711501551615274142018179799056694330705642980602478912472679582691707846004513447692224619902289058658182428031523758895695852950556297729229828162721036695219133278576701762646551738097324880316726810262647334416961763162408824560304067935482387000573893685650167468932251013837387227729853781274270066630367324073827066767988373416191161114398248817081635260634351345201828491097006821497596602909170460495167458947561863640985388464996240331680405784531836286255340760332711363502297650809690776326282271504982772375572078678994722094269509171083447333496032530313128002652108145551363353353367403146116784038345190352732731217837766381516156073628364995363960762749662311025596310314696932657114746336595121234688064688022276753821247227799467925747739905405653550624257241120954620635543216663346433945569114713045700025515144383808555522879631590896286627401947869528104938615097569779327259085017862637714375302134844343360793223777948426485365576584206933519933883980875377490210041160343743799032942988695606367613579651770680645840372176725811316035522699485106754007625524546136561909737402999936927914743496748023041395810919939367059990096813412453436144290692333715022613333642772752602310135284165366717210922895765838012934980514288411573990240021635201762324943461204761516123011174546226183448828497472311830962574611870373037370755154027229900264118902350839579992813576340875608130076011744608271286386179159873403157577617318899328625866528521981529533621959140484175296337618585234275869585058884773908706401888583821734049140113688220909558899975404385434047196926193767373636688587980108520316932076617817790075228316990606062758310249119903028155652155181224141094343376568097908083537728194720119709554261542081923660179819813122742825314898857592850652752525110809269190393154371550893912985588216161351004079135772197560761869688994940396857930334982769430811158804615443271357565728132755521175442257109763195387426470733874055055754042295283262998365215587260724862901437487685510908112436914135455353099977622291381997114843045550214965532120651184317330517696927391943946334401849736432236170868606051594753034491196660502741420922042743952198067675010050805641877617322176476468356569202815923687938037500515952870626244378953565028139273648377620185986443409416322349088819639651575784462060035032479676322203400425415912527628488566513126556238378934023917433212627196273031292306731757857172074634771652605806607896067855093306741993021379404645252510153146699954543950276293322530166945107301164858252597145871082898569200110043576598346418600288200926989562669267296795953026871185067992860354239101011584926227707360745462791721701240137102771990340502842905552699207713903883822274783605566937219482134176126449666805665488987856991537485125872696958822916186235510343431480717460785916480956152088467215659025060523490915866014336012291002538156634547554623433574556948187559672126491553750975161178669872547900874296368886131279545825458770663063950922213681541773201917928025680388041156210559857906859608409448119414963538197216125185437174769470559762272998485694162034717394270978552731020887677352732316164988104592293366510964987154950886755511023201808808511864807736149060485562729495285371112238436055185947372371985792179857082064685821736403848318864838338033486802667797215059112824963574189837205570272700342078262631732529461334031420066192688360305994292707513817047780703749753055953875529849947641911284566232968796823925764529411959348287624648542260186022550656478490521652870380065151919968988427293623193985860822195545826986940374520098368798038064311569753193690171583843786956050007353898729139616349723735081856131626095084609760423450293011469701604353789721246175582881350164038647103287468120502213985992449054182297595425756137981136169710500912890689886855732745674579650058584130168444723875991849128871824619266847741469787289860911859359179401556491339373105612936415299858910941658233526652151480612020268787034479164337767055978782913321697478090951791323926090482960559965725850129295545528353558725800071913634301028962724007061278824102623935760826831301167260486607318897699280436437040441903083426545443611496959763565702978071069571493281855641011494487964097886614774712594129312800057830511770268400424389151672172761294703038125257091738594405858108685432603369897553948644697353854599526132895893903369264306058667366350816533656611928482491355243121187032828187228155537103165572821505418235958091591880301180391133477975521879005859618774020807877453085571730952533347901861027069104357246827914258732739267521869414090566206683060682690032590274384230102598079177260199819075311037306289294237215654581835423947451697374834090620056148017768229360715352298461891965100754403763385373021405082916716148961518868263847260606519771725956026787034741812573277086986516596304638075762545070334407524473666421742706745252939481826194855503772818945063898798632890671976328929420726962387689420924183521510181002656090327037405041548569273153915831927865910848763735818778207266012814816713367004824359139240533231713472370771963922938793936629061343260229442117135289710134890051300932555454338892041604860579356884186687026233943488785135337758940265854855599124011135448939072089025177107840779991386271946060048187958658668388191180303701600280471248323582488013233585701254907425592601176630819528494900063152306365122844643764969452824092473475189987888322800440609407324992995537746180794963598197306515527879769745096185625306600968525382359690017402179144424712569278967244048766250114766609931011360415678097761121388513280574272376301479095971935805973753083791598388979322593105960224989532986295788991833975258643716393709709913590916965174120214893005697341515467792438593932628948060721299222461811495840526781487033147880693437228493944288373650000443882135955788286029877821795658868502216688676267973021999382031917110308206890032426830980923713494795294456634103089675532995700600931402988302119432213210023187275420948513939083243718701212412864904047359722995770135181165363292468892724744927151476908173849252744239243354428158274107650833142935075380549315267819275212457387851907740893260583600579166932223097781395766133983494940372401056923936536286668879961003095056241568462293058897709557403948818668201256300408572157244000266836432959994442670128816381137417661248724011490137498794949098722892583563800736746978346690460045004657721484245036562879799158148373757490860818541993312009613237056758708150607769765617462789937991331525072732101627017205750044387210026628790674908604405232506243740955190079326233681170982778670575514475951557680939552196562691479289300121401717976233065949924930417390171198347477105656205941469249189955305748837943465515388927903921781403403238379904482241934837815288756295315805904679538292278004091963113362579406916546775096125664642019412566589486422809557905961803945176833994309867531463619600844138104330006710721656177290746871619640644445327702822593567419524027382096237255168256713459639142363387565083153622642284255392055386670011067090931910051655827152849908410071513948797524853295059645009272602429349228585233586338152210912925428287691209877031439521432162051181704384373357607721774841207616095410852955245997527188419633158987393038175817244686185896539198535036262680849566876656176467031417012090315086264895987739435331439711036468289206287640732164466363173892623666694291058395883300363639641556888949929314439458657548634723282034320846061458598024955890257663800614010015097738888358769022770597082719081849891302217010864908563385619836414300161236516309596635492709195444274524261316886350673883650911380456214583595430656340561184818799896525401168761942835135861497085542056707390727454210588043165692148031498491057279586138118781134382517478471299622958834876788524363972172566196508126272620277877247100576795478678517229814970229476401525199757552307420696910524460475105445846954282223283511157205571398591028564492425844029713307306867972320996157622148624399089639987842164989918195870758853414355688178298959706008016338081189493771507453207697766252370125725742998892431870013947984291984178852642666726868266743543265508070203529789697918435938693090806228556426777989097256731720137543284569574410048165053175356742296978182067446285883046703514210800675274759173326219526852521677348215465175226868387167716086800846655022916929152274168291032536296721253312909000549279367619255359645447202697215434378168181035791305290038829521612419507612078317173699732734817694621879973652697656399399623967852466788949584175213383727619510813645479257456663432028942527207186874420493307456007336718391001149174557089013583662912229883564980758154070479393783274035807592899217740527426847459953436951547247033600275530201370912558793590718450924085751504601658009217178953649135828736892572279939484532916724471405648135258064891824350222963176894087875081186735315893886277749335134771073783498399687352352627274661979138505447314168243994685076464854706093730446598198876581749738012514122864270053784419593132349664655416066758188954015501297336451126444509070831415682573894302756004599819120496735495175856164223279751647857387844387526710360981575901199603111269173684877496246006294873133825984649848486620068898191179793342908928906367745636396341120397770845297501010775967390285563061777896029380846065843811517320587779281625778384403528993998596246105597894596610546450891848533090779929971231716193644867439069052345178525239557159551142420999879524176192670501853259224794125386934097945067187509988013142893583078807265647364767505326394076863515259399690854148262217593831804076791028781734544995326767206624040718931249386796731258779741870821835785387745381179661974331462058537852478091900717351666065739409918784929822568829818032225727211075734964829941265990374949115814429950409611086386190336451320335714598573143804319414119808483460121101737231544654265040398749591727951164615331062765845285932537417313816909507588363268460271806870084088949623913124498092753763738662510932089150623707891113229961143207920126623316899675239531864946077922937323511179014181320937875992567111948820677983290401377567724632336722568100330109983535397759119204846076070442423614689583977731334310367319458135559653976638884248893204103785970918897886289214003286985818720707359524693656393179557142726946683142460401657864686486060173773407089713925821188571174848430070938447355281899763325551692401016480173927089197122194397553975646715461669038740885845452817669927464058985575427704662108988993304411492607944252130350991331737959917550301940432551627095735213715139583930595747865307045865411797320085223633849539231400043519164593781852363162069348602226957112695011314543319199135356000643677829988353835437706713661002507027403593579114793092823495905294641430898830812063360306731452605400527053646284756527038970619603790045778011054355805142301331775445298077239002091789654304216876592378948258873871267502213137621816420105417496985590453488299054132111664485981694076335174805202562843222479535767919394636751551472795621939943264993453958278843772758943093704785150799468455789165226074997464088272997351070226574583155328606110971049101743863462064472821395812293092912916178031658636581972937037330687373313887709900125035997159690700244294891556708138521734292309547394987767570302683862705194658188540407948718132130671004476607434477876426983965244336212233352126186106069096153461920593208783785527371912088947128956761675730947192246559580540244906378978483776991848077827859140231759892385310013540561337991621242121358304573881823014906968444635974078727089801383366872158511547577783813195379317921662421862789285020473889483130329443712981912142278281814188204173480834722000032367887557712592391031634953965827252788277297793542038595464880253948483830952036672280348025576403880271765325094008401671555671833278474226345461851816489336547793960384781233166261828373166820830684282060860917071311584307034348901638857853823210220826011895879154361902428600685488528621342909573770548473177912883855054668479941045540820366194883106479198973686049684611721120437276029423748230750012633064681580370235286254969977995589803175650360715798312359502625774234731441057054980044123065923979748352384155359508326413868307842578832294273892211225945583729667081759906838794164152822195510728593447611378887946343527136647288368603115056948060181788287342301523685758472630931109813779269509225443755317481754012069221614422927755936401725077463237755440468421593590703994857664096738383016861505554103584333336502442125012761054032490012404134093240577735111071118989180044404207659725872571707314963251791018845968765383933931975743312585040733116297685236840085732922335120011962087157039002360154895179965475328980722881057777901937771608059919800667726204386414700866449749871142168545378450883914780977118240577855829225072893521350820765770640491693310335977528893088460043744180488350248041274618674230734008793289315619527087911873122511312508368096599782777859591313810658411589247276380487563492333182881894234420860036056303368287307614517244600389703015570726493371590004521779045787669712216312577251619402820810791988118169404128459481323353272420478856161856170276848646618401765474603708265851034291528360028569900503278107986986808229316451559841380725593779008661649178061154853014543132123981841852399939700316849269713039917447845359260371651074125646826899552366202945293950299479938427335289639704344668942592545060055309933727609038438701941615110074674650111091836574278736931083364617969418077160120934067463567761833090088860605807774943299404243732676624296878414766429466757738845270398362051932077723788590250104349567419663193763522518192244536728005058733390388721838121215773567289412740796306351742943118514113564256752227658400436210913686880942749822402226337139286515876675074832989055571600626116855120315134601185783705442834342255137182935649170273975619792460948199035296428232416421892921471849694440145194831180980646101588531417712359262223749904077649119837524320952936534165168935632155669324250476553902571372756713180925419740873541112999585967313204783215124553751863748761630728263619754729950841345078257179243344899773327987936920738584741549515473927467452422830995586630806257607846215382255269146744886132354194193743971569799857119012642717811589388985270003087817402490978869173012435153996200586093633961031005611391928812307175708563032118639616125674238553741834016794707926766742409618609278980066319030944868664055257138178648365289668621568891088282718134971706988822430465344246420610852399955132679674110691467797238766176827669579972800634296262568804432536301329790271923553669342843051223559901217255217249061596506602043291562847984035362281161870206615409644471864339417490484639950266466853691118066835443069415292834735198834984681883561452204529759850165278162355083083842349114291485610142034283097979163900231870163062561898320337790833193852588041341061740441264492579340607107911349866822525501989702369151760784751625657686717554351174689042852935610155095945517645711338948374326027573225114887360858634373316939475408207062380341162567043439684761067208315618431598178758851168871178930100770623989870019852621720750254717875384183531109347567520127780230472779176391781538336355854984948763772499043257768682948272533189564310524527934177550786798639630141798713792406565263776231531957814136435263728800556169193870947424284014796004913963203774631651916586473189015488621002010107897705949608587459528518622467921851255879448250726367003723220744356346486568705826632717142699571794449280274189720482989975568795207117001560200320299393476804850851522786707805843949331821230369558092808480698164915682937466994427236003902886132483851985448609012717397873302231178323609586478053458296725948695362831396635627758934036181469509384198486038033353226405271991818583208496633312265048130904740797963949935761258827720635857407672567999765508116434282383610753277221005388213576450111256708771020862372956514887943009988133982631881825010253058413828939814241155687333779240573840318029980176049508196154802513953416644353810884724833607040631360658025540389865659527552352313630275486213744207617470313148021250458185612287879323288289987224844670488846611454113944530607345507662455559601012448476710740161124436417441568359312722395823852823618021814027533826945024915549230102247616055709044158602624256588512589315256336976971278513343408095648163932389383708105487366923760384917152110454009540786356562673352051823395572807461846690244810668777923011902283035599572171352030592264665726207210856615570375341785584305479822216956301006419317867432575960641400590921520420500470591045355618749719840231825705501572022181527122257803655584661109291506697244491464575121103289590709703216344320200532082451221111909654207951368864760765740733835911255309035885423992593880301575873531403762294479704936878462825067504476204477778843329865574573569086850273274822031635377862946629010778944836422335847601910681688616575411803283649528574484716082301652840574402338994684697014718529447421454174069706182464424480247780546167462008448159655935124008168642674542072262445690200440560483237227916169927996846750854969287676038122570534058733242936354993300576984210689944082597479802109740961915546282628635257724381179626661236074734271355199991401976313342059932125579456883409285662188118461509254721622292210511577368893066292566119407021025666104354468314203101722130012797401226311174041611710259853560197071893412670817585410590603455837637166130154111983286136054100646050675649370430341509352123770282848062498402767650514203699617929211996442756320124558879629311327676044035781347947968058550536379843694466701725199712226633759854279371258088868959254850983114077440460742415638773630864038231526279729708435034522115677817710709882109021193989236324605748028843212473064505853734010105757404014340424928347595002760121870416810488115275965895840712371222043262997130077991621288591095118501351104107892309541961423861909946291321360078958546535860739924103446186906347528345235146870673111737068512242371477730989703022021766289061263004846015414651270329131863563164962592281974911468229972881882961748625247956963657741557517267150958032627068355180155461352338423481732904284327745417818832506675854612614185852198318166347437448352173377904641255404370190636907248869633842045438969813291677446047243759835015633239397132211034564655607948909472519458859319174133264654149522522476980235437836762232403094227153528909335745091048488235754510961955937040653588712678420086394662611885436186696507472107374849283263813636749568880713363504045177950646928748068623799470204023557453358630246352074709563476292239744182991349862861277617249473355827227969023921172469187307028499857420197678734747598665324304158631140691832654266691085872599966851790447202393025556083007363000288997248554127677525580764053046689975915654296703324890163049655190771499891105564036344977981246748790128191401083128398718566747153127558745693046899628415908647883450385484558467695747508259638572502978811424527498553955158310744299990968008092760046987384400335124962162207470359916993833184735814564474891277559999724164811184079448126362014536200440057483144441475984360115144147365708435112819841170942691564411705946005297510729480060669243292138262063569797136693855140052231617557033227594722945330922623259587622722794383185184380223337384594890386451052815963868094223446938298258386012527362697044361991612549135080507999480956332032932516195675063532570870765813731957694638379988816814493479161262299760945109355318449309823926998376525686606954023511314997608214112561267487148517122224639297685049279901313340925068906622374135927232439003302702828766634180586746026182532099751754803975570611654571940362862512506808108058703094778898944713607166593299682603212264047018813439426789600327360917313342606957848906997857932159406313184771528526032151088564253951304416392855711309601695866851283716165482373970030934408178945740635534958996558656623464123622133720814920618433996098676974379056782016679646427142670368319399745093920415801368773433982964261116554199715711490991199938380003914243790688917783195805060443598285209590435884560980798784377402696575209156851503418215358017506291079976531213973676663397061971452299398412450593909741543565805637056807330599730897201892434136034812717852540266566564059393076988130683834244724391494336897841213028142640657529304436363442290134738966056860520766457294844818100853834951886141593885924927969459105091792180376373192358084462671949141395477507037239776444622622617311929498917111604472127137939102417195436986655417704975196146491070969461928186934026457237674527151555906187224205467990809482059262684240266484750747832935564824202215610133216559576229792076226416199532402856765182692706370410413034396357448880474370306407901987908952592782833349458680140772180526817645465150681798493991965440200073331252697013039339388012393821792324769524621958142804276706902356828036585729962796419959889533732493351967591528349712930709087597040946560184982725171636187831251323640115255547800236541344755479180511188432859008752206394707593122140237961906818863706971748051304343973913047599653631356271713045921917827750410883084503716369804385675772256558832292428256207255682191113266877558915111288404059060058068726243293739128311661644589055857595616469856073746970025432872700454196147931296012903983784384121367817783597727329182305182255021668755718314691468030700299341123429055880868626966106564985062322452296975890866178424516501281888622612508896548972229209908711547762018822842294823021529612438701893127241056605020841320020599676983265841663712674744614073740415528168963306661410844547014847542434871827940204743230848884109284201827438727836487471545041312237279069599643888042172570313382016665250879574028083947414720940800536765073502505545592485160880312044924979049163972123046732916236613149638237312513490176878536178580414804416112986493813839738343805154896136670087187616176853224133286642098060677166852416597260888651239589301817557288974816502559853783817031776229048072531406461784901096685215612222746112302179403821182399031344018335995467582511396237356601905841284947587921674807864541253201599126018717496435319639501546727608450067149312143397412720442093256059936437139423340701814592687532906868344570712987389206798229215533807884192035469028214576643079697778507727705949462115979712613464113721962932488037432576651982860355179311674962324748648610174472610490018556364574641704651917124382809180440824439186427779962176193854489966387018155402125223296383527884135996977343789153333218657996729334268258206045348711870083363670705770166743884048089402366663646224952603276867332016518708896449768299496246666465954826680981835969599288043537062747184315160694491626737196863238193971901064553997631139727677766533067990382001394468674295010431573836827679889708000709551617306197629711749020350318326631313381131767083602844074385940534869814045734761493925834324495365586298100172944017282853104449529866602314602349215569945872409712576485655715518312960084561919396223042260967953184766224683588770162856315920429102053181874559095300503284293777657376226849252062709157763341583628420458041094507012452353337306724036156453204455677398323532969402804239036457483062200359822748353513101974738956964165034769320129748987781696428473644229952151345164771671219355327971173051962981928335369996822289291943743620930232169491907072599788069747259160263263951651405054027640518166714682027366074927305956559610177948930837237296528488372707256978962439769524959882506557097120736064267916694677909802856414505241138938653201924020831153401593616875856957650643149620875556099429845063068975682369618188230665706779041120457279638726022334369992845357956013823481104464524944806413778965035552342506314603020115118893861015045307788047352959211019147280775804615001329626580551232330954500142913777869771014425307452746265112874767284928136051280812330457310974737786218117171712363536800609008486119232505024491127757892866473429004038610438461882511250003048641506832958844383496363566940927348030342000614007428220802286801267696400996132027270998978883918197543880248038475937680104128790434713522598496270176991160415618061242231310466307915731192901693644657826327311733515833264404952664492193727341675714460157715040988235826008012586613437861857718391731133314218359577738000363414960992185701699283698424722157590474410633157028223186683600943472892878705355136717180774758954256018551545106076490911736614822895430840339487527403282095655140760788210988496618032060274421679891380338810495225684813615963072084990402602472723161069793988645928919413707316918137963974936342365952238283359932364520572806651354981799790500869419433476664634188508417097142612783443700218541370633753375659289633422882027437419949237153579452403295946510913159574369820506214076796707155332266451958148153181402697089362244798556223604884747858888142099628714533810621655095557305445196697998182292385792528529690051558765513469359912150558695667152740586409442410924202430336129213910537822800027448232806405554650776163014556504270879304266240854839648322656272720341486367776319209252657606413509882467511407749939772757802328039555300468852428937324259876188766129477440974343341929971609045296843740540168939547045354477308193935756048650194920241196809572163012897107758031614276448864642752723819241466406525079705951948954497609231222103328020460496870640317833801714004642310274255907236151878432295867945794221248902113333040770443694218358689659088949804519724875634305436157241174790398442689139920193204793557475496861359191750957204645320508795455288018296697664471691033739493803747335996434892975468914523871283794376503241730770621706540053810686191791657519451126924686526529920021946913784672903903768750052975093002092492647102572015383023169452128787662108366972562844912460532237000503531643483368360202036031065599219006099676255798908442771981179105614273555098537197973714571555582917627319550702774084478561024872649071910575156038928351787495207854765570888117956577612456616624948753346204527216310885523045306271143503963761947851415817710340876623083738177776871595015028571503739832422664529903296433483304973628493114229989855654557170270322968236541401429883776242399041411507225317046732280188335928541998842575832404454727369121109205556113161044724532146548170608350433768455019919298742237813066776145125709518971963446395485564353027400953398656667256817577216839206768154187808059577785180314899187563112664021520202608748467316992279968527028105655258612839301771363673702820596019665017247304533189712051652889601577682243184822042288614107202201433395032002616944712958682984291754326016219250053090929887994182898071327116728776837735079410344254388146933033760377218339461638694710510742931960014359710867122806378628139087701642475216461038420878739781297943202594423561099073268031175081570280146752317434002119554293684812668690786352076218410334633277357999339216935798338536774728431275754442597575377184393897088169388791850032399355445827367544328809979727946971272063639412933546300992664099044147193738321926817992870245843836564596134839409736646684157644601944753329744141774766488934111827201098948923534528471412140251744625692264538598872373657206719197322248822154176688100782212381117518216085292637733176041327368654921655836377186602315427490391006690323263415064874827847512309726126562437124892137609500492211196199519624833103165595162943700388402379762868782198037627055910425340471109450241430876713337655439103079451769766806047878816228778791990644418311838080823373843288826050205281859953267545000380336633505385268036541121125656689149668255635122593231817274286564523099636041235603165395174726876103612663765120940622672112137942645117828152893348025818628133540590215793758690271455013039716153836184629909386206699952255978763279523471240153261722047136483536593693551167043635687761964570716237898267955931476216240270320249717051098271368944037104539915796907235625040709332386802144196068236211402126599684151503577643617213219485861190771355106835412905779008411163653153135495672920537189247401506434011150518359848098109220362047140961796758869024470307998333436681826484464313890568366378567356813910949599019047447714553762239657748877809022652165338112357665431684376716666274660941704241819330092792472525742670712585578943446930548599763913241571092825938261465729759412498972921840966372295519681152878903111215568989387430313467058455273347846131694545819160331306377682158067609326717198106997370212933372580318258663324259214607462910454347448192225882610475834175441986215584695341348989503316630582999917298270107681255323598639803917259963618123354389611598050820409619367646389238147249577024895624053277132005395464194732968825592753787596020570191402080829742947553383107576779688929164900476278871105311282749948772364613430045661056052560857153032004053194525494313402756889183718399506600941595221312378890054898334048713258001439655383199248969924562677246227613264833115640587519549440020423000905917677856273947786216910581101051414218499688179692872202691288069909722078311662773673192794022301943036136430207918325476587899494487336876438259124811121607675064573198415437977109079806027618657246268144557834695449209837915324286709572183654965022910842952693250889251818131831837719449265045836683184784671814001395843389453949243031363933005290310652743090704812210217280089445622430123517132477420313007358171611225862299163948339084909707702974632910598290233611399095092344370249583684504780014159483057362904122387972420744285807440329923023761124911212083605040922512472756442763630853541791496742746590212344056051066717181428651814525035934149957366027149426285514265292330352608490832564596415285810459997098413466349571911055289643141887962966213755365080564693102212661631830733490721793838380267084152573576529791274211874993226033411566296072650242524591821705190816241319975977741878482352079155083201321640627368389566295939768789068550455167775205194283959348312299426591509539989501832332816411042083640754950656431295026061484186459931256276243493561272173620227826861269156045819392715368546494005268483381407495537289855964229843102712147690279371843675317508959593396715438902628111790572700021022169549239808928522502814168924293604136838064268250244921324658326712319650966004586889483546754825821551141311848959776435701765793812048448557344370324554225766110225806786822109857325304248496905627768318410561261435106570520107803033280711608337436145773433956702871199455469851111165821166546926477952143010687430711185508238061462120819450687692281750753703965860580449555311376958490427458645390084652270001673564395310462237168362844172283744695422547931341773408072832605026738380273808777842276494868483389888898400592056541748012981093519344127078224596026714906918980121186145450565975539598337094889468602554862283172486510188361049047050021928085404081140259357859257014434683588306885620863855165522014276787902765164275184966636593258753917038626883990812936041195691258068940139313258138296423117081505811585812911484329835853904876075791723608786259605276443042593190651584784673810282986617591464521085670242848808240635438491204614249325488116113483075980784871741757482451987576222327855205126141547965169584671701861076670411541941521290455219625174125092377208835875175566178687836256315290542714756082041482170487815846707394375595989438212834530031577136610663083609426187270473283644990844369099504781103114365367655187814916135720174696060940214414001982331336642327464445053698501524129873250575276578810793411598761711962255919638672790528573478257007435460981933287780559835861685710634422285546193419808045980335904330295733975048259164611965122512562568201253600153167551201489093757981953614877710367325858075393882824087248564058865296144306499068422580367804380833339400572279072711687247244550334665804958093701733487741005600374006851502445568985875614055859877990331798798450442964843474391955424442158087188132012123122552489129482382364566479872127032892230336284713393344228627686625442019489256755597145782681762715323372419161199819121457899131063680775191790082379000323052785745422232404856208478340493794643329806704051970564866384380813795617370516673345927959577069954690317996574252372030554570814580062959614572944943805754761670789495314512695836184051594760953463346810526340407500727847632939510777251482601766262915998413876818784411596977037396729150737339229949739227684641451516238949240050233169721694222982945292530050889100618113489499103008671588332706434061020058779251795146203477222305750702523066592801102211974518970887203873918541451694516811397321739791546457699317321227580703999456819602234124806363144766509100831681988048717451093873647356502830823625990065488248178303584966481830618776105329086215907804600029525452857730646056064049114983989569748388849906678018274295432350894833265287210214730336767027479348220338405249207367975677823438084342264346715249818951293574655896660263357047850462747085250795269913773454294091202456548689100812791377267393987010764196506719592653781008807427054975673265039236002329759302310613633010311675650909058109567156384487163730458085226948255095796498023741511461867136820379807435102161503988156226017120445835288220634083006428746590539603944584482019389168621069966137086500572915790021828276635275111594304401430118357492746991096136833143452147359016054406813451405736559846068750862671121618825559011824219090619087832673253308218154419180219769693096251926047798635846756933268508185274723689405117922007996849628443172767984199009771918974521276835650309829452067276701409246547617519259403067430608207764364157764124144115347375858298281806722104948599334114079828224736295310080414122579568215297341768284373836375328938977575193289126113295887655286262341835278813163614669133269171189522054437082080574538541012405301452608070826742282721331669934111801027528326125955369517543116871984125695325096459620922800884842362371102035865926790039772765948510156774218846054866281219274320953084997438335348753109911996849879868004053996893060113035963822046342417248230608550998508787530910256651836661840307057682041261075005280653549003459083483905044930845441800179407501520221082036858760155479623430912089016658934537942173673968285562522384753448399065457210653258198789180473108943700608138161991990683939064960965674084737136752025685922648416157042244072748633272705998952512418271419646872778057521184553434732017045662112523575255945063229976506720236449462839953362179359900282292829976282361449891592221876585589600640891700613972082543045899188558002368419951318236796443349340810022665194981999806754445887716384685184656182300875715681245847728464836936457965553743950832439464400549039231049443939482261812298945263842755262730682897586747228441387774193589662203857896186738319231370508772012002471502663819808147502573531288256524302563835142744642647461499512738891018075611768089941386588112293226354893165129397727711618434379393921782625705402672912659904468236366593250142245505528895754180793911240843539890001718248000820830972581615414629653852314167371654664917932425137776659894501641764458696300375656363664590067150291424695330477651086022077199432530196354851481429666582378361919984598606418188001250563909939529566149644823955414013546096151325375580356457478759476548892091025526804519526416700423439521579706232195174920735606799527517374865814720861292364040041046490051315866156243811969808973836309565106366346644499257635344761758075402998438694713138725694962243301037589381636254048291433957932460306453352952349878444409427341259419853754174454153885446856488231619026685050057164004780138287486333845046554887951295364995625762671533580874388692301156302155539951714368359924636767632487569178654254251514961736466154511409606047177525822932464326597509183551707642619378831103414200421411913678892727440408098640220538858460403318818372583887420844971049409471479477803117374565304089562303394701910565080320034276528689487097900459422733789429308636110187678017572403003282659773621102378678063641491182680776756617611872705190685729162931193737594672805079917300828764708679961814136543590153147238107924343522035937794950900938773657003401614124177649621807171819651106213829871951749382834403635216616525009723957709271299276146058194260803007638542641249576714927929967359321543560293977700048236806226670712541578464003947042938595013331362768865578602472272620970185153835983834488932417561307816978923878669655582326235825980265260919888813849173386743347133704364955540498017122961654285566806895186473637536034917516447916816044477631558530971399522089509120358842101914106651741861865489720307031902096462842127851885374308520492992894625387900337633979901820393534900245371690614610900915139120425379039299323162969487013383212494673267666248370170679655295968901079407181036719848003902873059254972796621271745486921756760771395600956047087787513210084771549441393189288526717020736277729230404825464117600094064180295708986288498066231490577981179384642632307568965074266483552257339926689104312780590492208148294117585801978824431735295522009217666543804977489428364628118105132171848315640039583905926952586108449423774446903845400689338743565670822908131313163552045545546783964554061621923638679295351566480797264912916344976598652929188888679639926019757794628960049151324906993691135408938507798399982703295841124656555850466463445384377680344608157679326201877901301237691980750954591316255487213872762781203768091894304595666428985991489045930272641697456941287091655578841206952793953704348953683370805161191320463337960857190351241530452693056754648416205530308104873288078773038776184430594267873928472031150388370532622334268920244717664268120612484164351896292199005846468582465380757053350599156316853985814711753494913444684955588913189906376966207457249960528175925767336656757154940799100058080584032536117097058379098148637922487254893236597073068687901171182284998467878709253162380993020380158314878741756642323508638589652702339660284455483502422642171824934861554420991938219808846410062152104163849722431504442514728203184415667816570544951423420628589276412547420717550165364698622796278921804026252209334289650253341639860056360721914336553605784843584260825196448529369699159980810513811373861936376966535403860048598554976928743481729440732937353623786324106820174111670446772987278946300619829867091644075244505916787132547026897106660170938220769980678697365481368108396908958359127737308172459020031074459406647983025375598385870041014022490737131742962985740220510493734001936696071318679400568065731222639166355241908601287757065596824948938288066989856988976659587902785148775701674812741924768046134828167089383134426681179878093925882520842011466957475362335099287478655965867310734904093311101762053412453549468147218912659944962166419868645083767329475904233801859287971360699014847900255150296097508563514851837160776035151880560878731066164788885823750053483681724503273814704114602862918605765550478220442285940664246220969308539326982391811420285320732242910013831275809701986625161719897640526569281007340561391995590922099948095174803386557025017813207603040990471309107286691564663527442322177901600190853717313984162957991150260120304699143813938514840917814680024151234902053509756550073028263022901175478223691182356019775096014913879962699348397859028683409840443006898265033445230492010526870369577973462137702437902245303134536409605857598332159610450604834549565716171055057882751576077398594613875582884032129855918312320559679241321135026751163621681368348671656875987191275836508661933254928343891260910454491138336075988793527806243220693118799590612367383457617300074147291438318015521056103395644291615892918997500790816933912875914449421674052868041478184714183592404409067144438152286036045966994601506295071070868984077238821725936908350438989791753629129270622754288036306517715158747929779891983651479425038041376121244447035155232982958285109136290516056472113985921053000982442245658069984800677353062103940076252051587310106559949256386616528517929838953511305250394657382928287484342938653834990061058037698527072863588973185232218256672579888374487271988464410433762183459787735272860095123475827240142247584058629173893034037449391563462647796273458294537579947239239824843117331034310453011212502125431961354203027817478387437833331598491219197736998603318119182738672475827328692548483443642895062447906999574972575168833356578108447509895000727748343672683973971543690637706336259322472300079186689808354107743181076016262352683462582149745649272527233751442633921933715853441057447399426210798625916449776656292447803949914110670913257869352690802462717892502406108425675227243860344385629580929848500969633168233649330636000935020429159828304154847287857902000429323811851605188795899913994975829466190892517050770052810429458064289453867757719544062504331644315086106721358957756884459305607954268841969049441405965580376451735274779353360930278154982255041134178979676703114551592302450725822457629941712636914886276320514846734621075342063033793566857453721017035855843034334523825065750031689582227376642966346280898360964449237940774907713345589560959738167267822895521793268052311319790339142648059891508412078438146626024871029212338121526611073391136522278415616595906606595972840187266706528645169117852131840986988621816532349991400722179671140028266124770298213800283633198417264908759820187838872741714372784792815879823518519923218797234200166820233360634233731401679704828572774365181185057918946594266187918971026565828414848797072968546874602821221913457179949904593058820918543361929833145776511404666919453034617218315042419336539356888234453124375394416943351830276991918468682186810906170367023137021369413738449013352776266788960667391973279708764111569725909930396978739926681897405327031914836788531576856226390247778276405942807613320319091666684930632213836774674115096884937398545454312703520075846358641250541571138087007174845495692701384995432583187097848190181187503776844744976909255056368450367206525503802819991655342968055695956107185297400513407573478933195132580842570414730659489496763836698493913225776881984168167822995543044408454207725361933052673898029369951738555503614734465061133818913410705207434654650430685344146845174506581097970567716017667944376138431961284034966940575995866286019742904631212693020509399757443020738707600505780710455927639454222313742178647610043396497193797826760123379542881194940308637681864916387628247961797245939772474799175106357688820302297235814629530332633238098562359200352661395907309867346433278769033189812876412371641557026028561557866631342035916092374225769117498722319572166465143058056812992558941675704924963495410689470098359773306943080283004934906897162926706399524791970457636445218933185297773699669378663598583225857039133082607744062739858901918945061426046971851403575085439315941846453344553574322798976623921367598809047528834733940296954867852315825081400338168506723249087867347468667200694356745293267737822419898216119142646512156018800017647417679133556333242425927870310005987900747071379997129025548904785527961928376096056186128188699429142577147978362715921689716497102397883959612611206517303205548479797749764552947762166014043540720022065428264087868822001626664031495321347981463202580295782124955706521057665144916190935933951932947339177794440874592088607795736459757825229177310683084607778580290054612883689413733083141962869376493694765336186642706686328855102387695228335897136239381959521536916296724881539805716769798293032583859850000550065895099062021226065195016143355325352084608406557823993552963700287399694670806668045664286207914002777174984093488082767245213538590107834224546763640821890847552029671958760783568385364028925008465360701401339860527342334210540055915402156150541045878093342674084479111561266779744543109229077105891223026510056463958892915182631587787635986193518075284985032373910473269714855267223697143309726462188781076555934991700240881110714828110901805039737984494399878542384883270393286704657831469616774349376558703490826450228305240432603863656428906039517628920380817168671697737063575245648763424684872000925264968689205105141210865101819024807052305601667892823127505082734389973195607545009348577056813352503033957159817534001814491951131791835390548779154316417468279422670877212217595991114418243916435067330357440711687288635036634278655866277656621439518960579596312025482926933163474457172680218122414126080338974028311005200515197532811775289815047913557411625938763098543477370637382170912309069630110190183166128865830513338933336174928756892662090230612953894310088541142770516786764543928640049959779551212145089034922440058858337883503459937346313863493618041440493074572840437325423000668111678272992900254995062102036488220914797755745425454661952802234456165922294562112570989604835843072726304826619082690190960246461812340857264074395814611503187503652314729349603508613884023088945535256760133977840993150387487459620098927398023062820375131798861295510563650035064209047279699376370488115559764099568482133035572713798482012541868633990412204074285251257931224852587329476364360133450556345372586825848662062634752974685093072308395120377070419630590654335180630615596785302284968345742120809115789767797684460074986065328655188810707958389048302012735353908171040103545679466108774713435100007697678309038277539148412951785186578635891131449753157817505611308782880500251097273942996601204567163357844345198495912677311182333349128748868911409082850893041420345170917128595521761220904813145094243491658783610454507562676586707033303376262264094536474265677313368793013028799443878368152493999176338059825008656971563923889554398157704480681952569323277263533449522252232573062125312541541753003269699670637306827662116812354485421948973217838086117423105543948256280955825927731036075535811034520690104318423905249049016956741925474432318661970727085353170027489587884045994486528473589834617291624551022648161362582175790121970473441053154089228558093542350169494313717948830603984183374177342565463593984836145290236654224343595534965338600475300743333946595990753691575777568003956880318642066153252839779252444263273562337565248467638647394943369111552966420748556225468428166773757160183853658040829099615204076008735823005649198113649532370270303387736602596415440090516321898368433658064240093784410969042127192192404776812117777306425630850281673931858187871546309400497105349574028822604749939594895217496081528412757925041805992095640499373331887819466096724326892534913662141688994899389156210321587603895592682860704042798402224003490797067789791093824156924303547764600192532386071439438572625373962326605536859846302116862839322834793918756443684402642667197572970935709231099089297384944944932372677750637519574691647508284569838486363384463812659962453911396617381536553577878000900990941787073279194488698219500225093667495040750629391236264060086073238583449220006087762762084523804944476571088033730325497581333586290269935077399062571914199331192317384493317000243906791010493087798762614413982540760692525543001404354200594781052875414110960428974788117270871609534634520497310783530196983876427942622923810585776939833347614393824703440551340281223994898392297538620474837030827115130586321232242516930178546758887157768642707766545065588182821064350284256539476487481418722256876456350689069173548850811385654288093126314479704571370783681010727790645084372279395066471462517909318380609859241959454410819326385128914006132625783747157301613548369296238882702303799848507999434162919955261821088101288664038964605602934911783138138559275939264672603321099500228744414696596668346889561495847238447097718185696700241563699727589675287434621280798105056745212502361190299323452684586477787149795321032141671543466593363097032906196370255822707893629191965513726803212131208130319704628550753098429291335235117735190434018295874430310738101500015773664804911538865792561036456798685121835979710452209700182910209585780196835017704726012240766895057096062893770698010552548235364005268185547939700286220777977101382759273243969119760913821357534166301925780230184636323192507164585236580381344222346226603344697755110711941105844823772244466548205298496099540544236052721906808393191541972726185066924545344186589467028619571674635293491409008346155448777974159965965879628126871506372894744326708928855281885088698954571191349976127698130005057490290125357839673156381271480420232080718625764818665894928809840281662767826095918099158670669392032615759721547116922176880126929799413635793515452625770894124433656635742999808164972523835993499826473574234837668034954917759734255721577409851513024096423481171688920884531906720400059630251911868763422113311625285941772151052985955609369987602618233956302792940424781649070179218082305317751660676642544402612940842104030737151167060618609069779716040643161680368165385041465005283426518036709022803071403109959762453595162676471061739094223125009187457454057525394326538244266524061708369199023168929272995157327520444736407929567562057563363226151923030693245376394366749394796967523741444630541628935524993021138816491125393791932312328491358460626182433344784328694682450699225718069920283669574764395670995811740994080914651579067966665452564333229335179850913721433439222806650008884613843829152245953279922444927299087187602183197609724359267741056161276070194196793967190178935378914690799346612559096206364424033644907321074756496870095247192474628159944871097128318758466394263298770847942826703379824454623815152916895544965432362186765246682643379056620219836851937874590544360899178834748702947586536679210573416133117788363248256640409294506027782516335695689416262572252366129427643704393163534747700895276605693326771439854335168675266627036076045919284309246046773630801317485863972589494544103886939122188231426392058500201830379140863877410983593320976219988237151030683618580583236232519947147192339422442944730380052958687671351733341748982221827563564474071009600823060861628295623516555209705510656926790311628330842918972345111748827500124168757313708307225995227893600214401826136512184144593937874102291979061392115575743151810937910265633903044634749192905450010246364654033394806740334886311514724690147531011645057516057347670401741767836314859304696737430068405247089654669508469000901808257227076334379425420717322684053421852979718272595806929743911220256482089436684584823479646948337940826220296765222475969533774692512223132603528827782132720048424969036644405528687105071042081636697163914535362636709807400002518981464000332835308700531315485032345132672595393400004421536002256782380809011314787682199928550735626817217368989014150711426804077439245351028662712574382149504662111384849172101029383082895641011320090053268881700353710000268107622360969686348684813189120205329271660962095726017467649684973603279766481537609179260132585990768416962771735266333654085946991926149463663575641129887766515014277700644432617190373209620785200183239561378979667611641825890358359168142220549409808508231239235743589219603309782225893034574069479539270861975587142396946444814048297070788833476020723829179958324762115812049067453991657456097171513417028739330227909089238416372388625081031384395852997283738108115850815827563947263419943759620740426964133590344571151817943032012377782566301024081710954339522031239511192704123548547600476764197868933364871725411398063517139783807147685609472805575562058345755334959648052677201870934916731019334834239019204074868342633502805038977166102868788122255874422615107801990795603478454641201394514128602002991103303588084325568107301362093871310623084595943803943830405405215515572732564638037131170529189770786575640101881730722308423470959743095733467565167975745710043619937532969345846174512078994455499284696851617061814680456409264224927625913487702050425901401400549947194776011960729755483837758725305003285826437352718338223082599592375518436254211784436729183524884731334589004508812610733357164693174988916228026183293921926467190200538892192984972774804371265468739708576685353106747284621772207689526611941578017965389597133545688009622274826353873443795483988403995601129892164829937460334860316035149317158068276426951011641562895662090391505062240395837546196921155759663171525157428404512359968690339809098093820595277887662364389879136914106390219822240574818246890990051520404549527097507718350203029704025596312572658802321259974174269167845161440123091286030868425705573925420383634806327742328863460628820954053485629580283184956207171153467447288187798006122234312369066776729735767185615194561716572869121189577394883443775556778060474507690267832964320278620362461747075269703570196176346272519725479136896479322421870700994654139820826301825033645638776980424146428635850437315408965024640440720318283489436936538329948670805381301162502295498899059306989205157145651666817695076508831834766668546373145640826058144336009028358355997110238966755755776631295293645430121471874437564586318102499265929706040521667971084413544614756283908553692813304734553057839995767483120478421731230499552002846825134286979219913944320757355852331200417655474402460144105006677791527807249403474605517285553270712020280954992600472584743155868978680196317902447752207730106539403973657525100131772114255863303347440619453028224150764711356763726725808770473792391329280466702613802656540206720768445573452537005266874967105542159634331311351373078993782113303238754779121392776483228268049246402659757624586652804692770877569128233732373068749245160332114304786199069215948020101293842124562618232255261319204562810497628406395796855918620205814909237584796522496293905221528093139201882882766835381750902811230326818649225597869044015876740508334283840308371887009518408096050379501468970772433176978548822649474690260266425704690322671239913114080077692208850469081244923452966157012851876469932193556121253662973467200139332002340706205614044630659056520277660178080837421551560892803198144313391435774547445324895068015045731753939959546453516793985141804659607849818625443947967463975424348609857160334668543907589752137018195933959595811581402816052191562766900659279603257449091636628300304821687151935873291129990538730436356175450948930609941385487592906721459518609659619089016013351697910796737051383413524805763311091592976194418924685760815239427969372764040927911775363471518285163694663900036104353992250834528083887290745785948468812141652083014568295303020732285532996892405200773777513020423301402508239079450017536161070155051253399656709636508502865856236761611162962335430035745502957670337649042469239365409953104969539686736893879185955251485046992616898211864710782743519981226671441138958708587494213677268594535874793617873905528596495343577059841584736628565547957068369021522756065107008107371910063188859272674413737603351657324368472236657905898321714043126435659271987932652399658878878735675713575387691326965109110398862085601658477366021388134630715243423920411748544073282012203705886366026318346445165480514675333915292716381395068991110688308811310359270519009986568089258647327777625917799200939415526993069342548136861197568892793440628742284243064622079925726707480096899433989164540862561025388660665179912482444169925251150234213852277591180153860240086602411138127215427951598364375787299331187727215088589682490898075914757123156747774051396691042629569178149828166967242327786016480720942209072366988824075214754901006100682821166183424064756394235023855365407915893720589077594204759633556466887055461000769255750503867803148873178951919212515271991727767544971583868023754989504612984080574744579021671345660225315443689792481670442581718455197504546743376027248400690545578949782085518830114171635074766556042511229426354925715981063603025418648231399539639550942265201375109271307377060454961092024979183191354789087380297865285407952693111916082851092596320068101960370008442521262645508959673452113051053843286324285311576461782059597778776970867287012604780555164191255247691481279594305886001302405573880143944808626797216563629235325379789959316564397179364624478581743034748332532257398501157347210369574906709101583941121488167273928352876522079413494026615027086314089631529477052422431892399636604301730042532622112275591784716824527683911581711009870237399265367490357332286565101142663729687408389166122543199827609344647937958874382465632026551247929225449504294444529940633007602565747028945720563853598042765817570159832987963828759973654537899813881386533585402725670811840873159686984283069307971577027522737958767491445902880330406428979270389052925700715748162129207861989240705565399722341103628625493947923311726014473314781983933861051184666941536456133070427177788562588048542078455738773666981088582073133117491006807663699331311704126025554138713484071644249942765802885319886837754227451272741034883620681582038871978885801810434749156720395533153763676400402183388819913325805245980999377653597034172313321364397044703384148138715447573120073443523489875555689373480484190045208206052437612081032792216652089039376991831667951274318025604518324215272849525741319705920456201965576982887032602682063071009652298765726819399969845261861785778194376801585295395806617586162278956743446683136325130384065671000169244282240635444733536399132654945444149715495020211437187757658366565575975293276876859198577569195186076356407416442685564413673823721171072889856992462643491033046911590637047688567377937429296929456448181924517805220714489816534194468107174150246935443474439895933942286612139772965805436297012315499028916052499986311326114651083748004499667591266848286543730296397478547965161718460743748836687093428969919520616202537068222208583133820370525889891418648375180186965833279861010940851205978272838527282869450980861978332561652987965850448226268609832773032523238150666875083213102808212989743415318128401755223144802438021347561908272898113412763901486177564837413012976041177921318982833376985849905141205240929930738194812458411415226694305539121674586421773244240099343493278371309137280329138028159932039122655009448982015855914047074689755905151270734540041805332836358335022940883754847735300815095512867086466445596354631066602729861173945193623742873588892208960239564655333341043237622142123698541162866507076744148702282262791687571355218546830767838210678644431311968426615463965985691848729580752544577453865335901094170086029316182136061739489017156175923672047115414021725315146665190661846789046092289088780437223185416356764692870582644003124622852063144032364755170530995607965438546348207566442477114424711340499783856927987857716198163484467471048148477046834608056738443458932097048074552055017744584064114603534302817401837561936054399474393544381600940393070241031994471969920515472680870254598321132386538579065451277624806791266041363088016993598798087990069885098423200150852176099152469551716184627762922266831821300558771074736341891632195268471092275381863349524947565359935111784862102001703604598208461593612550485837002444609602012399640686958518024826406892154859620946718717668712175658987286687264418602084210451491215936053309382062879373968618787911196507318449657504199556399918555220780060221324030723729771915667185049846732850126905972629343956607909993957988453801238146232893271473283733788057744044025407550542749920606514416706123811621390813387377613831434019722843823677830057926616713840174293624585725074154740014671945777581510291569812163082574355789959904587921866776469833467928749606671569621555158331500906894483214388652451927342263110571442358334448997106851635712947936269483782507136294644275773082142494095472365214770115489263933433930451346341569524985636783883115778718584505811597427753031376692322820848900083813763831228915208196211226491225050425828407347918149479394521051569392418985034418927752647055276401413735273078675703204549517429444937058256000553372602898475764842772450263246202783827810239932895812712590289706049212385772209924808088243684280757627363019957261193601071436131752607141684282321621393868815991698425091197671157024761246476750914285073412952865739879056976154952468824674209353400709681162863236147020407622093418613456500890859721221569951198152900821668610333672783890590841930916733464964876667150115946219950755266541886647472051971674538631712861378880407462874929810873488443793704971679839761651416224788413885293873530360002505242161158140674181035428279370505399869309885807708512230604507286028860126863670874789454921820696248768313031717428274086022668460433213552275284062063892616097283034618563048747861360215531426441194223199867228449726471006130633852054303447506659568132116743467687815612583199535351893755671907156006477418517096465839495151557807776767625839738137370093577958123835393409351341670756129630277648029233560339143289692691069709307139149920820172076738292594804102582232787288682507498054502595110980516451456897735953152487149559018891063953666938265019880438494793182349681510455213871745874741943527869205028062904866220460804718642062153275877109396128259792885474980694159445910449567842549879430611003785062481633347220843180282571761945421655855791141531787291879460316239813843315439987657815943622087085250882927263688596718386595363844347777409890727531692862024825611828674293119010180701792270571797722117181738072757642448016909024229549629202578746000524663767762729291894003267085939658312759540991539727069692547206767671375681761964012269781044522914120966826839641586643271254488491478099686713392161170956312092699758134278966213262082454559482311631505581873303966381758656839835737174422902621003463546747138628537179198380389028158594109463091206453557608307723047072686073908461518098518555151685542984986047626378815672942300031322829467728969092473154778556424848555069155169133796447766044417515355073469989468037979562727399819265741305177064956194153070224240489095175375598183408661919477848368768236974671351181963157016168115914498198250593570753568349837462092862275066638479160811911007799063985458852759321107611343220066769845980033617842404739799265741496476215163058829945990334728960226654601027990712704732530389767713166640070999606329082568889758859221417980672004987897337371817136481382243652034950085099181957610555356608897260765535205543392361945598056577420596662002324478879724634450203538195639469902471514537576370755990989886927258370117485430005475477245539240682558013200367410682131534442868681693483253674747185713879408353989953794407697591296574258478959333574386234675367697725544607656104366404575348009655262761997708412464870758899355756177618608710145332999112047151010285628945628066719997899452757275963614400099080113433808177012688301311001585848533981907160506153318785121949864868612921570773885491089395039668054097474834616744026436534478387394787919853195006095885524937683016600922858671605168134499404994556374324195026573671819101864831150293129182541508596941487445028833633901798959280606329492557820870013736956137861677484433087343070463487424861676247528509248872478039715935451012460659869004129823765771505125650395008063841979119706070236200579436630342504468314534661955370303786912791662212516707481778341332955353548031480810115629333659288185218403514404067750694826162673840306648596142484400507427372490532303983989032097468423634827181843753341221621624655355300581014095330985199339295188922039930684920423726899524124936430913479903984875159775444135716923961819905701517178996456752164458783470400437633458920199089729098515180190330550044877523772869343915758995677503222605096704864158987354382929107276202794885038246927632096193028514970457578578191032853614418252522731821385652499060083486548473181963751688928006149108222361582714214312255436984796768200263751487893019329446821999149884390208860816590929597237608946955159574391879290058852011115142888122672134090518691806411400287792974537712622997829723947867752233177977424101473561785138240480065085507141009348961127480581811890156586678750427294510955715050385459503403517823966880560960437446477340014115458462052234712953982016452954849040940977875352845545630554886982480450477825078990337871276307993564115397644041510577323827277119199119489101007706130704114030414849688973306611507490045160256798666839068572082245473199251731870020002217500111778454568785526197027608358777016233827550654019116626439509850690360229097770861655084211594938189874908010473133750835535002744987481266495664468248860609994357992796015554007899737732146601813185343541539513957280332091698913011120930022793311867411349047457252441225801324744558959286223136382580599620969123185436317532041358859522597524461307208936981577326109573041019865943335207738380532619320734496708093772229301673482550585066861384937973231964664357070738581594519724027279937055467086590829401657637010246532101918498134358072130000804574241915430970235963931195499588492516788475874630000014519796901462311999920791167385952640415613480863980871228965978647195367721530250826189237835305975467984036000561814365600708384023106481333559093711390813909075850380924656073816689373324218560049270733197473459626647721574842640109688920978888972765290596228754200503905837821370039716946202604792028374577986574586735375541875861742094311724491982630496511337390669009441174704806251404999639196975254989696837229598593685313962413879835573279607150903690212815030295257571713797548846602036532276717511888601010809069476052228311789630747903805582528983434558863057074564596786932971751530208039819353623679366954414931231758515927947428974471479753655043174663653072555016132721934297905807513193280883008079307725136019447986838134232792944557991619301012730241003443498179184250791878652798837172925967765891597156269232015490952457164799990911701274598389138921434120505018120489570225601142764706603806174790621690681387447152935129283367018632544467686721001574298522028719219380771004052802656233332493677080673131871007666389024408867331447264325649993963379797311615241011496508934698169523325367503281044317724853930392812972477330371459523922171380735769389841828021036844984468502133247769675424923205205653856877776531482970607143968904057797230315723214953108673974529486069325939201272967576396839689016476398630274836064009213343082633664503519662856268315337815716587860772175155275168029397772042936236311138035908532424627696653201085139188712518401599596213527914282242942172169694896056671652909851024601628183783283632821357586826373585581301307543355161951949843187110782609228359167081643355233925299337542340446570859284114350938229295179421702907591913156603063113180739546889017442592785585327070063065900279998432298931264403157712962981080560304024355225832845124539902216081928716282544005550538922952705766331325813867689607447131345609900723555987233376837474523229786774116663283737184291115298489628480255639885945870857672643583874293292581136814727681515540110511712163669385967383396366138055019401389232123564245793085978867007686278091988279957159252721821524946495492518012782904754228392870209883613279309866324008176923909239638201671498681560571853093584035055145025434763828229381693721083764766269040024223302960312976119246751102046069862125298122436191693605688083058426221853503692735025405320160597933401331866551179556832815191847343206437922806308766851836812251380662560995125770947251586192623309908512374374984795278304779223587036919198243512165827881577908559321875830660750197867122719769433577270387803260654274173773723529422174020204048761629322016183567417089402649807718714593088494393761289724075609868607700754346700452150295829680442961700549441301922827885385037721434224249390303527872638435392194655901058787465932286886865804585425653083228208463862313826357675204577627137853265304920999746017507969573457384209792351252869152767497139058764500592289568218750275455204668040434506862267106287498524002534491551302997711560333714439415287475902806432485118018521558914540002136902713567012983732146797840068972044294296260349616718475947744905422894142546650116187560170362968338982929839547770601701955342034951624131422038001408534328455796324885382190209671475851115220209059859811196468430640070782544459637626164467547990787879143001382816899408020405189625027760406872388024382311457284014239190405362663764313832340130735962439421650504577719500674809550472914900007107265325746965415157245788830068409712583677365682211733225077744568258489347415666032692408964953588857588323319709783262369660228942737240724896794246619250108515073095792399478302470695854349437884812836323592686861299912030324130162454350955223469405488733563977070609156087582318434928401041415526529213240725023720314878556530840137587258350376194027512551583420919264598226745418160951351017890617031734422810677807356407957578015961920940727310874967989044052868227047466697606631947177251316045382164946750501050998346719253845268286584363461778511890560551808606886252311762083702835296224959279219664716252823488100281398142591695896439157747531463397270568188849677542627729567861254715757103378071110549377133415048553755337693601265027630148033116338150656501230507075193618732427603879362742552425848132912014259542439881986756616975618770060995422062587621671548883250009280204456283548173990943230062603403729945669464260344060333481598523246215131332475552463727669431217610160361934657776190267739564292677699032786661970789972190949250395333392368814578834066533718672494960126599632038931942058675175045408196367632019843699995473781885492697008221661298516771804446319195236477498776388401144405845617734786768654585697759689965115491319817539711796779785246896070541655179871183970565020702619480211916770563208486565036951711849283317040575526119134278965550440254925167596900415833896956200341320420025420680329406138448534002092858280241070008750948625296335099996172419079782976678879776977214187948332379807364848034226224859768935849828294398289123874703399368590320892514775142014061591914411474608601405348809362928271666052792769783800130708786375118915102153644272824815602360219481101150155535434693229474876987552330701575619480627256422206224954141121031820333344788343229494790851969876348654107714627470595086982706028762856586694579781643666364298944036521160070786238432834091278513145368537542564348611203039757511754031357561217910824156083525206255306129660638469139504423939347497505114229340939186112786920938315288889643923280157079003947767657359114442641181571591878807446924630674932705828798712735074603929884399799581118966389189803268746337732159278022445846677016556102397674915702666392089593141977074616616084522957825928529876928371045368133749858188200083221679202664675515934978937039261513492704940910953674904124803950158049326320181313102933048164242623175932750108916168853286187371403410927190468973098253948534457153726319020898171079373573644999231024824078823860952939639208662082119503931032037322652681406129544344105466893848405678196938363699629766603648703266122290749752849534934803966804137757068436373966822330391057837815931794624885401816835427603499739204863850484438930989044047650270497244646265859767748944587711524676751644854903451416114639184459915935944684415822211055186751136665674379597016459960893674787058827887637693233087811516800291262383619608662228527596375911928256972797915873636977879350486189366458938728464859049978239085707129108315314736313742530788486357921589638864828084201260700124272603578855430340423245737747758113221057746319145081044745453485948769520097387260649250144486627762924582832962091386604662686859353157089029464346109293002600733754008940384832314072159845664044798677976497621519931666731094357265902889373546356318994298135010218648592461080076746276021244964237682205634076637331663264717022548951307118581696648122088326325585923958968381049286585445899857198385596646586180705085119970247839540540165830354407044696095046266869413153139524578196561242838126421374499551752599266894427713958735814648492482546213183692246012730353474171293624244901964605291476475141723859449809096878056801288696287566270772965462788962888985843619488731809178290336625301897703263768863700442528304253441591127817181721697322502402804462756277416464807420162739501162513716655033620452413402331217416302897804305199335803371710193303112759677896593548985071715867407313866154980713769697050070791534574210050281215146103864338405715286446092927536657028019218320443118179339721417278035891860865186991060391203843743422909762497985021580224617888420758651784121431401223088550007260645699318238252998731060751733122826381951390543893794245393746347070739289606458267390403917838253478354620178819375217965349078668353157220201876507154602887257681621121175694429211830058568905631991681420783731817665738287036612785058644543854135873761436943896408414479965205693998874519504226892152544779317414183013636405487464710797026695221715114227368021756089182421392850674780817635686326217003283562363582896533984815281779819237246381919363756070777244113991799388265460962083482137305357866366178789861295625278042900331463478412878174970172129786586208259404675428844183331805162238276645072984949949366199825269056591894013369842712704616832781020836610707013986053507453661110806692674557705233637787699446674835572380364457624987750368970180753772111129736738430027986620889564868121280381319003410358859291170294675858119825309945858054686794474518457031170742492783111056972730121071539263120938265139222974908203906636990289272496274342423075951288403297368650036091325580018509233891364433880007842741632070768102276235190092602196298714666506212984559022062919000739867781712711109857522664247530405867631200911693759526801319723947915833851099712085074160757018535863053170448410065610426325791741962214258845906638185328360216527322124942534899257158662785729548482780854089305456160466856228145685120429444184831119652463213119522222279381539017415451881603108603618197586772827176018678709414459136424854387432779961110438348243803470854775393672279084310961577359423870443318610197735478243725877243582817779273299068513539260519754682824663282107537225450790158802240913865570784968810096539279913620661262232479825946913862023400141267695660846294428247244108460962026365369125170370756377248777831720641691294083790556541341359607164062448881602247223563382555362613793174016110018185319822145040280572122144059365502657183010898488051074205464350279030865165437771931002552924527049283599495407218231096331885317513464303097371030022395319701696618535348706677698762134061190890634357274635508960749530417039268328264336256152994194714146623605188955040138578737992047026083974796607832492807048172398757264879568341217872597069663448451999262913848981772998534742573371291603339660784446389940520079607437340939008215158964625542306199334417537140533366004418316438116929788031609726446493899023394449842983285452295738957598305892315516930023574650641060227441657424722567213522475402258136494381325995689435334672133457921403296566184850413248638229380778164926575576511420392920636526601630334134074682182190068883464004270221798672935205648605654617638456036360286282271801926395125719223052665639633499926236508888763430397928374528614093112900701480127282927244041598819238611721978101737235558035708684131899480113653676439823289044721690299780616111438290136425623049252122780108648712445205930430804816543244772470998893752216953928121917360718289824159182762254725376606827115058422304753658089250686371743953464822830223855724979270876845210034400294331361624795807172674142069968276988849965789235529330302885683804124351391198084259413609154658412307694595913336189349513845402744854936738532579757906322595922459597132074746137102214712128029446757932213723149763060409989003173303056216437726474449953218397669673280692884078072962519526534687742180079121146718788276877539769501424714227176373360161556914423403956841091846280414520533114708744476076592857805144539658057004880277393000850086813343390209354960606943328550586585111311928168968291837411703684996249642622440288183225849179290282407852046053632494742024536321974650324632214200765003292515290816089367026112108814080949921725248675329994099207228271920176046586167405796194533977916870783978615307503993148376840764850100577233284488098555104835405117094664676609722206911082492133619797102095986534507782036217337743391033666300170113636411472959463848888956118615979678831331795357302093961545760371774685856355022935784119760598959548755862135735248584018211621609995061735198065836924664469218280152525586075982521374631550750528146069876268712719859580036914086707082717424450116305937104468683751311389772409374197856822996358795647263786378942181230267908634435039869410876976993070344397364332328814739995357216310273940108653570900181847655482012444719289314764526261462094576140875394752249852939401983172216752655256497397345151587956021104077428612851069949203337486371038393220633140342761915943344284694837465568257429170935926393156599569024142712734715907692931274439070503091087635313469651882931987012220761475892966573795852694853416723310390095432354115097186238541350585430869939208413716404330154750637782606585188038395574774605905713131331218762180749133277109164371118344952686206187557079617665822275388363814582536609356030641809752131516173213518590289984119480338824351872776951927107258193693272363795935973175935846369267356279125510151074919263981357328097564992648799865222307819650195454122097662510219449427424646117805984990441998131878409679377676516693504376122641972501260308648384306134343996533659071125470540768583926856834130193597489069419190910723974466911226301986860227455870955992511664831092769342773594926847195881448506673912315526699195546945282112855238199835577970772200072870049365890133276320496751564998622842071059115552626748241812065525063880599733972222585779779432734400448544687374920418617197500855075756862908412522103115567839568899715142815031009813610065715436431613788289669341154422481880209481004685933061328394266850843634392553406519635252843486735614847032803261050883293486477727157916463831702022001719678847484539291528915949307538925916527263465062522302774039191070939645140137434675490592284133209965346986018640450087883291863790505076904270351306375653100874348479555566988330638406817536981536462850071701625335567188981889729116458211845396383648003264237644870295856783719500445021792403952870712075513841728078046974058046453163548205753824110250067332403283979958725714107551491383923422068235406153303536689789453142007326283109079102900890446691039776654321743845660110440626309143434457867244949147388263605997609718849591108195337641481382948256728568285022410359263665646590250361668883772977790008512259560650970520290300989938697986831451675945647994549871557163472973376131831447218973105136890570264843078379921841639780819404069511442739787342352064817768657079136532261236977268970361871913269115672065200735821150396814420149844672150100809511303090706937068501457008971568175499942212583611908358575910639546900517996795191126281945916690127578758842406819781122900330443718724474232044397453107311983985243884037429852368710958054645535797005571609927823490054178440180470135380081659538783905104217273769697220971210204738543182088397105470649200072374757872905854167469978610518104188666669449464151590588994477824109947632468721451722505150353058908066812079170736468202080477951505645990054393173137463268766226865606917563838973811509922376096657447835755519531828093227364865233258348996155039783073763505924105425727014047410479331099345985075448494590811932138746464755472288973807269653283290839081364509044642684469316333570485230092986584483461912257584733826068862920580405878111046077588965171961514697308191530730655820460800243141929376989314568417694904467447114753833008492635670304020108586500438834733619160938979531198153335990751600975991676616368626485715886537786477869683217379142442110812719435754851760012744392986844304711815676737196458847145033965020420333675635824295507587751948597173033849372511475165262121631469876621712846056243863294991448506484309058573162447592361486266339751863288209702926072821114939444297391457591630594193657132926661389107131227457061180095975269960574122196033463957337444373955706607764866142409039926198732724454885158864742626020483614838653858538113914818385530125423592674695045090365768655466909532559570997244451238817183257085698476429460145191463288878665071598064052997450000837422087036709823860634314264223603286290165282605600692373097012610297635226176918976452506640876444773375878640722675762683976581481240536120133296512047929242511374120105356480675831364249250886251070376233264218655514287931302925289949469897618066502588459935659538224643499925632402065998884482568102898127332796609022209054190980065597560171810766896400092873134157204829928461203734628444449828826438907081879830693399096719657179415425987082595983927980967421331585532709675427997567573175502846085974770611034816341075466524870948794501621352410862444702585093705675286006931712251633602680087587226864994506428826231270570361606801666074828326857271078111110697487605026325582463038624689043050492039704103267984225700322026679327692241717058516190417203811401700767175697372133224980534142569701089765837356517916076288926418823569688708959836154286358249887623255254557402036694517775041133514955044717208049787153903688826460515447438315056759410196008135076948576938376571028073770801961631667469252698747134086591914526863363622242455619772594908477690827159542751873358124000753687237480747114430381229021414724192157991305025262365851890474922259012264550523398450904478882038059308929765751440899960230609883728778012350656414281510440941654852274412641445575157250359322009067775405960457125073288300453992979571202658919285217116632347423012058284503562672604796818809189136248302672107393316540163716726800807598847903144936177037066830190173974066025047368485438765067441607732119407405844426526122244302709660090423051358158987254623643336351590045841914791238423796679097425062334740349057836734236507697720513807536358827521255947429462054580517019842892802340065228112544527867377212061467037592476845727625828425924602227446833313709391082377221747451311578327095097759917996807286870778425551023021972150616181703245411265163539236358495078380498705317724799556153458625702287192968676572565049989804431128403750261952318530643284742514184401402737785508616948995297771312420903742036446698377035071384400821143337483213059521945646616688033533756621929093538478205096820161296680728120163750195914427452084037470050631605352721153359197554135767531569699754765304624677703182940858395929887603926483772165526454832100964587735415084617956400484554731775069227958492072564252082641706770883784786811958670136955169710478475685823526190087259547772319957460911543434749179959640445893802323176152032242065051733661068234761340161195267300793787526908826285478414037621932081244324187587810305895106682024958745891441828784100759320497760651943945863669575465808705898986943457554740402211366261610736862382486187821382555055540748798979531627093065641783254172764912161803925478121061630580379997955321300056342429189913948023042508544442678376243123597113059182751205034862562882571215730552911012428296088644864253053768960627758593222969193013388921400144462729607475994526838582570519181530178417906637729774872676807128154044194246787245126808909325238669983331611553634911301993120118641393463282032968059638254694781469265988861445216551646696862017589098973031495843577689380628554747698235614201606067439951868845500262577116092600729888218674851755768206120385893929925689602959982947293861826712135337525430685563260991033929433347900876000962983106313254669453749550298602117972099402402220820075700342968572680112816978568083041976249760894520163586331045028414173114972242553261231279564697172444553894095277884184380925765441723977260491928110215993183606885256941328342489234743980251543096401860682735653125946710679959748825860754887225187732038596931819336236941708350306989364711845900869992275637194122114997103948378707335631955068772237923471985957812660574540606057142284313964182309169692688536296585238520708372577914758082655722778727272718651603736242836358064899919503600956385058668140045920097329311821451999571069331632037711043439836659665402584640203221293541237719076506012138919055904175092584818967799724509683366362294187215082599876907514834030335327959202700789054368158472668037629483918056370312378723908220282201681992274946762086773080778480369817806197437455852046546351656132940102179803733612716939692966572319250922419077723803527483153744624937764582290454366424503973776769535796444739967995130127375470353669193480433061503873356113854805037093101931692876320424543213000805197742351347826161731414926554193758355316815879932752905272210473491222109320014317648655130351087453267342061810782176600903310927491200444043704993020287707438663040102866161044192384436839785220581131536383457369272250332406636953697693136507935932313126730483268807930671770052620172693144398759074921548552241693740228269189438010080285328096366245692259324638148815672910049583571369056002364808903657383473689839116939447921358395671113755243477519487740479930089610683911755210612304330955384385372940083365339175909245989509299786318516667478949757534870393322140509246409151550899289442102275924342324734671047681556023756949713702240018804660194229589452937978730578460398206892711493757756098134094295986691324015903465257894473985485188088967296013104469784904805877644343640344886001520961400002810267924374956905982411307310060937720666926765204169444688068587131144331590455207972984638144590489395708869821865416479253906210907760633183568019965922031595276739411814385634330203912576685046000084620496876538459466207927273885911805898596209217459191563220869484623454531262436123563352408245314481086077748608510544168961280442573971451761768421658576053285122480831788656889017445479503800217284576075656521133102594131459276123066943872924271145569995007283326317830888089646096112963606657931747598260865854437044081101160564331021815097602262387121691253007020822791779232672716783372269270115856679948780382012771368890020438692533375190417741900190686012184992416260558071237865716592704318698019380070627196103161664708240030342676191471015367932694146133594622016880461712755969378335664835714335400041709939927750110370112089948903219720476884798140389667999116365704834624241179701560106205252194300049480614766713716194912489629450841222995231148917455363745609199509949259193893069711838763437826915014977369830185353855345243138209238147004788563929007383357542355686936358199742726190361790099700335137790220380725693146853755718475672694890818173932108095631322455898022963206758713129806569349033723261536048181147989647042502377569341967823845721979166078043606664247381890866077990110735056992757867274403736239583730060810294594847180649515318816887886672930462298663796030329503170915308769652188232712855207075436927445230702287650815802819854288628105781433466099182388306701840301874904903162561103827314739996513927018820252668381001296340393593448189684244544710392026395938766111825538075353774828937594022804247778528867228245434119009911588217924574023791814473794527607984656572791592605995567506946723977987916571641141025531248316226876726659778896314314584231373034218940407323553519917097092911338221050050141278883946181728797296951485255637933005008536798546045999452363479780363329411915990274050896400202519667376225282720131206743760296698269276810106429966121850651113405373147941312553680017840025358901920628518074524254548481570924410950737062562590575975049079469022681209491189737291570243115450487523897997644383225784804096832722216768902200642887321024679180199232772290287147533538001996917976446235225621703798539414955777456598581672855672587812784120167891628216411693196047379196486942017135058465512912088040400897756279793441157308881548350388182099770932947713399449553928864619880732906277043299343610372647891114377098946414676697332569108217357657930492287827626165655118626648121647692049700204062190943592083346226665040688583184029683483995638745326561045693744850840810916831981674802858931409436607051723650502027261107766277201542802922491023344668950486897036351295557609049359364594412775676462622000914583558397253765948783178355646820495543138728726465946278870557542124251838430093125977926566933448544354258710338446948037661657336076144349187885184397946204601516285332799534947647594847557583112710634731822856545112153892414796391995647185392555835546135701371589024926537540585905229343640977558975412967028562206400221145943195855006429904667927168733581292662868843677645687597383939552596926667453192860013507408968412061022646344905305078402853359503608867413014030539421830608979346029380678921305080901212651783797097737764442416458457392929619787208537960538442604919410890456253942526847523761298571685717899877302004948333462608047460351433373298914527950167203924068060367653548054198407650148431756913384461188540428590366711661052951316615116381014679649786772774773005838362291805634460657061103639451191048070762846258329126388476136955493002619530578528441413904861680411877844179254061055202370008240532313222867813243634526896012766796136969500902712341702033902269135591719889516950164715337328379023790960636420271208423477723889221898292385829929747546017969443917970104685515573800398147061801638207935781283870026646708668137260519697818761303809647572511580762501733216867598066365663071330616199211455534138087859205306677619177969084305502228498507473688283890874927638838650678200851532292399123975372752878288745931077144409648747012089729080558108276274958672092822035776518799729325862082083362491329275927469377589378449284805175841304397753497591568356556119830951889976067278864103830572580644242116608361302191239741001768146180279391965243265125260356268889136917370088253143176488299673159210777422091085079463273837954996743462829728136543948960669578871365324351383136324020869334005460447610854343526563463465867700180569805790429228333380832669220364220293010963828858594173907222974702315622306839167834790420722595120152066356950071571736344136197650532842006403065481341232406700063812062379498476259757272993116279383845135045004257806802456279668960166347393787500964335152333604484455808228168663040894337813512475669861313384557726068441945467131593018645758295082924826664643781546854643158056458098705112137799778194106837814450761343500029464738322093930633584606827169975112379159646220056174887035152450948885244626431910804636664475447875465931929222257586439441491328560125324295152245810124164570693672781675965187395044034159161336257922282782473635636031627780603399195018169625114108107463436245036232072694812851605847666013588710092307385154630507851356179418250547485061830206111236903821322755900918020545709731707775656799445572374731224118299517154150520758023849251233257035270421481564059718321641242407508168386794453129016124721005196852239031925577214329084242995271203094073277623271567982364675355977005940778161922100885575142253137845752069424651790537078350660458344089985048702952199324533150693746645359701209035986959735864380764788644297012107693805021499480578844673675257293449762562644617527666715515912817979549572494591351004075284260772929241922501625849107423030286403256986396376295041379704975102350920445722287458051534024024419634598883814479904584703710537264964495395152913907137150109001892445694178530963738030216099513657460404314596653443061540646824923453116387900483057267378016852674907983771239742047725664322610952509034995267334503242032155604424380113747159235111041478885444020783740783583036719842238372895890448712557757383201092758367779886763381675339493422207081837071998867241505684367720135337906678701475843721441580903062589544755998656682067121359701976903514448754025615976307320404215481563300260148273263084747584392735164922872264788504440222250750836669176995807928951282005953202101628876667282608262912843191332962084533960122634923274299931548707725557762438180072867807667324142679291690881670402050200151235894042834322368304279102365836458467906991674259031229243760317160689485310716467033300175144806338014575607008515077176150353722400766684897700715244382515601395077696831158824707584469428174367614141573364997680565712597920939630258299661705399450495725074479663932857952725060347077689734943174120924258821795454897433721014577108422793560413476404191008652873834148323323775247839164731358894349060627534283387518420433511853649888281350914249818748936602614952912038955418602902390848176598525647490340959662842250488571801657700786475909228317114986976519561003837170126695239392579757139414792699258800443849136469988572149109077884717533322755886564818783524016740861414564641447479441417454864591124572080379077441627998911012539960054850356912468740464125894276769341803861920957758406422968396284761406667704034224173317323047345822423089113932591363968374586718725620013211667930961178328749651025731504185860300156930156933505268277481483579490535280169523912941040726512864460345673738681456719903946609801571433261589121426236835929758904869368317167386123171802787030153855096405796008768309790143210197170882333379335048701871475532674659892685908325195666197787266374925236369055531465552696396204717348952650772464791020617738038901024122586369899781030103729246827680233364587666091926858760611108553621303366476937364772468235545892780973096972258507496632081441507665291375760523750457945083816694088368004775450011905701897887472087084306395550638915779144531719411955138111549844637503276391002629254585038904560472741429799501739549279746704708555549320991590256648615259787478238549286976902024647067431554104506430406842240137582695402139823725502804883845870361177662438899404020164399287271501321762668333372885243090624512016669551970365531595653568801129886402611968692964945193838869895162441896416706847035778801010485311057002691938803049897933489705662397000391988471517998284239811131717195580383208049371269571882530810503638735050264371181029462529006638631229398347039045407579809146831289853666140875190743430279537725217661732003126243974871107700372264137538612956089221138313812576040442447052244671715304270405584104631805617916193571390494886766922233209395738163224230005446658997790150310283135261028820561371667510959223219887548318717038279868823265923490842263122206975453876992860408305210773286830078755248122708975374207566722088072964327133899587413725678518852657912945448843737277006706043173159303069435669427529131991602540146921125578484167482645188360491451674666288120522195598937507865024378004807141339188605729087292561132090085411285376025718255668796866928618499764729859281302410377623053180713741583777717761872298118104089659372910966886386913436257406515251533695593327038243661828688879862050400996475825438522043054218926433847593208761277597333952224600213971092362168571925878026218948215711578388087737819864562410328282996236881866069310896216057347939910071587136585269705243076405350763930465264525104632793480314477446644949621721307463300118118009414223114657145517796171878286133622617822239933953264950008870329763021884527350906405387950846098366143488650427103655561123285102550799264434770198890008593590022450477430062253334800768612010061168905275748549303817358452031841152865309684955994901559253465002436359338788378001720604003610252891421434096533021455482931015891354146671551916498986643827714205352219054716189661272875436194269518043951092250935915395954638479658735706708187695728418726259940703097201910895145539045302164859166355244304825374418454494758437411104134049113011773110321146013559248466461930515054456529498840193090522204925562336050445681551849301509723730785939270948559403569929081883906374133715088712406669244318646885788453538818447280731336760694919226156286572367225761073678764917160934389791596113138631974711045069768989403653375642281069791614384080760292870941816785483872322672978513837598534645675598527189022970365470356074508279556692659157392123072704195345022409360250896227546796149017756240081870570129181519550741426041773921937955385361875079330192237610619416365995903807765423150950352426201737712681581817841559638171143394908028211025536956917001165891271162415120830112839975618401648153802977781067742448293628162334212954359355429598775993702538685617134948203788477243565154708604446261531856640797889019731436143312110798068639027634969811228503022885127438727469193464761412445789301141321272963828862707334084223983841238258453049458301351880021971231423144069300951257450363448931939466879502784455266372270573300406960843556971624091494124583363959309726004968497870029651123762787677194944758530050121624827029848005650302773994806283815479756087234021811097651646101539030192739175278631339166552169538341130581858287025021490573313731454503906233751462054831909747750068451414457705826887144903608372615127632977598602761371148622736601958179552103400422899146187106955879666213980244600454801827884091320872788785145713210523962411970339525343927430102840942210315934381244005254442624679137236618377231023345320247622921271293731727389257826354876512100091805806031260208174251915994831584559297054107935861786527154993266235961954715740723520676445786950476828435740374056620178456406160710098766627740567066607129862327571355673826244196028277419373930112993156962978710461269276541423659708887430836811053265237221942163959844900683494285994928248680425150934510769632109391407688817119753713244943815012762093031539313074109010125810940981906880655753684988132344270019851123574361862785740372811880372214316677734980623098662282142328342686441689166397107773603886662991872314853261134446261274027857730676656055505208371041135456940205907911589102635416508997966586146597413881593574987841581543556904723384098943391021171994794534794356131578727502472580323220308096246103451969094475418033262836802987037962303517807762020050960539004980602493832353005154372040651175207442610923347259803582804037056195317070262350526932788549866939881541228001808285470408549962676301953756686603721783853683843811973276886834024605761956346011356480725081965385104882474965870890859875109694521208994763916870963630581247865464082226084039547061909035064105255455096453081406169251190047344325219440814352813464503224778941315074862241882081552976032290470744545235718914090072868039713512344157490050232006500570214459965321361065185319418202027524785443481419628629211011606538797441210732334986821116577473964733470766664242515427745510240202962771678503460218063098117234851222174012371880750793940190250055298912444709185629546988597428564339359379100759618327315901782541593292430566864943613426095194042138812374228722688911253441872769461509547120741920459657781440811391389110906984918268144766431281163254560952882643704176176550592975431579917770144832486073393179628164747976769200546986002145761244816094149408296549227202181346772772915880346808556056579015114500756778101584618603991462108543970536769998658698941662482644202846726791667471381375073196355235507620862639058465560828260033205759784138685665550136744910652860260549279856994950442735692210315122068232884253778574723031091037346206637366066369702143319485731165573994170267541966844015418728125180021717535152215659435221800631608154129527926888311593724541156465096390029479276612291638064462110896460851224846023631738659551508994612734127860302951380392393307259173506120012893994831851385684476834695605866475343769047108447244053665461540213303606709436437132531597201470473397391261190165401784394605834130837390436341052869855259650597939656348635121598876353207281360382516764373709104554781494576423287935011283653258670449208608268599058052856916333141918463416377438576818293762259150726081026027054364766115286821255157945723556139316091017826049396859535546079398878060401047909414284743241260491074935270081773407942743015513791445478161973356165196074810229411573463873770002066861601320749961680768643073778581531254321033017180687551279751085293612504281682990677136369607399791883255761988997353054585071053747888317134808870331088240915958458563787960066829277621905072481543269628071867760620130983665931046786201318485905148848634890883957396887659353587509739398419305492176432422111015318229773877723602082394053198742451422161316353020161991822183001512038958491503576654243597286204182457973939599054641303237880360976129952490868610389128071180896199124251110029188787383792601036629924752171860652262951244374780894437603004028454078802704141558395466458127732051637099251627872263580894247178156012112169490535514739579734061123445658136635742114752786493139545034997639577492301593137863522098339863975764084721837095451653107235411860312445323514530506538602897727297872443661917110978189154855965753149162836388640432205317978166386832664908626012180128841659731776691684762772637175134448355081604238947730512425483983862444308216683946085515930510587858766380048282352544089063527461294878791907907838507523402476684445666212400925963938352973246602573430191362156343871665956770027395337221203530194048440723684506360582869767198585274170263384703866784499681176142343823492747578441924238509035188244508314658209968696479624719655274998289193353226897814843190853126271376867485693050098919890503671879388324830644250085336679971299197274144670208984355781280475397838351318760216769522466129749551360814050981189497308225922257653875600577318948515656134701732177090697920971795030018093394236949375568656359662100198776890516739397782265583517643338489517591574341876956727917149108428115728900597709459934463162280924899130535277458755471743151982458586848014588067427557215001787866099138153146358559756101285748484586890349154257195718901089391986700128754545557253984090993175446944793640970127137435960177568222749503608297538248194824646846346244826626567719252091900963704783287745252367191188845285090779289845395580265006263060367740762711263966723383584602873581243839060024041113298394189590009112475491037550492072256347351518984348091818430948463156432315599672870773984021825542942071241604207611886804923275150866137351286359800653295092446385536728409406951112165402787047601515467672811330236729415954670689289186720804819730717318389504663007835467259915093216693339180959847450886014861045324602023585713950596042334465772835130834823129427070309798517453173498226576925745268652148782430921945833172591758579691581027152781307809524588277105896398884221631916042062486476622613977073687936504741419263805585519157672385873273748143408519592475671125800632954196439498761450553341296708048206003230456073488836631011381996763768185364084254993356434382343884684202793484792728022436540601912098127034745166761148714608739268195471943672251650233779219411918122302505846195823378230964748137433422556744164228121419426012445461065828145047696776795418495024693578893601958999416632340317030753976998005744102333134367189582839942998950357601405536014270382236785882526948555133229974894846279662254174574242474155712243800567767972568772836150372877448441913466925263884435887050104273221545957349628164649034503805135526604972007101264429106880552911747046281968983112887333411249036001496695069578404611964415514745104050180181258589024754333660861914551256381562786349819980665864102600319030134183588193252276715728747806727815148204717735625844786117687169735122249571470627902283016979235527342623849058317534118695634328282554594520028936987104305722434500828077696109681944572028250859638758499953833214766973299404236185715248871703473855955727433063824113160839696082593176484195211604947346126524811171590395983018329028584622092763478114216918823915180352132179018385230674952359330820274941836161901241293664465213857288776776636285696382368568445208303698925324115637188956135211389869119677803345415994243547088046127962183493140895859286927193490618066413546837932491490973591412470949809837937528759146862333747101543137849707000988960537224902055365859917046097735815226777613125256597008457033230312429370520935821588284453671318877986482565802762946755473823893061714436379848237311529972266431939465525235065978106495068150882749878821851845116574034243706298555373553960216782654594960177310464683278806596496478733863799947739648607976849778190553667165146898220473018401580661195025903864294611647515442020628183889357722189310667376766507327071992170421613981133293284140803802685603134938401602148527485794325113074659127397516608341655886699306772577402267736167261262146517956818013866103017006151985921228197480217185759504457549616965302885500021627578539433023790301812581958217617964747240452197708856897388934659903752479051747587929534649846785190769192084959949924974774599426435078020787423950142830703120700945407957695832266125140580222501438946445558102802590776381203190366672419736557711933373566990471240785959056799033795237426058696089319975422821081085848114944775542023781681007019866896745632098306623765166123270155873137959550592985019838993457953085183423811019613820207886228317446905232557570840923699750727022786433228331645216247726491803517312243636585127188759573014864653036405656603858767486449298842953924434873647341578211822637435264803663664185741401730229893574411983100196786505899337343985609025146994403729258174405653051867437747035571918904693347033556254025648133629109416832112374808483888021813530411145997955559929063174506698397903141209447042953883310504275120764187655064271878412941247498929814467556847748727129968444490134277910960644104079429120157170659014756775258154719762913477409018993336505792096928236372386783375344607635883951063062664496919452523527882731083732118781006675497144286313108157245575706114623542593760056618113523656162221805809403567575811259333609113373598219876602924548914442924666859529587871605842545141456668264314740320772047987379609770116738267954750784460469838611904795822845595347512170222862872747333534490536166182030940991525610482210520673112171239817696732021538514542298055523734182549014349822795908979072936579621865228252994813205006469425611259243591032441205411883034677860655093338937182182790993210328924627108959619438752541923411162068063604744502801760208538369659454238253523427172423219989046979368594461603345452120916290736924483634079486668312368265867397180853288413721838951210719364009583052282356994430795418087174584771523981402862264147161416239308704298621681360602435761247353014215293457556840846722871508507933132815191726195342560022290030193957809230329732794118388059256056650565460791898495264601222385631805961781320622870419326060638909761781386091306484575741337348298785563213743685675107375326804746463259295166775852515354228974330893177255446751770030802108865515589646129973146263129014399232640409804447668814230415364234267112561113093250268636455463226287652951186095909080964445586155202248796842902956365091898239277946046938353716199985233830310956699284684988997964003637739224932517432723274166103615264049541509310369367875702033207394034754323618071060583225803526335163780195997203263911048683054449597439514328846591981970692739876261923260165344848129157053974069005302407077022495580532740035517040077856163137519716013546067185507528195078957542608041410735528429239179842576517037389757089532557004203196148682140836005268602108327638379526500842552774527542966020421624905950991984252373641670685185670059438388990412548436318191349584893066369368143647723931469721965262900253630873064402677593114410990038697648619526941524226784089495549382296773789610176008683753969639165571139958067227327123522542782723757801709751229503000331785293508563618155677745038502014693356411065708509151498960785886148160234837513308926713555005515384294210334017596174381978547440321428973704157205597807746013891500031371817096781486689193357998533218343678185024229196222919660033996975090718477159287567187973895902283500761064497961892676154215730342884786965523579345683277155453303159559016413114345832523915659309142314123636714273357368391617830981813005276938928103204027518344857933645883393251671485802809356651139883849223073318806765400160901146881510088397940199195048281222425820786214884493097676487342261191408571310930920357667094872318838772005814610956503779671992953898981520378705059562080070091893707075457270908159009826396033597029454298102943947005420671464537156954865234710100686088107767222498202257666251679413228248265330736253523079343524674359621442417107515083049326424938976425424348641724626158980390381777375936965578363823202439015528086311771468887747154816731843167416334904562278185998130901213013691441829702073616012762883419504707317771313852894796965748880776219423762047414326842225446510003737117999741487374287298235413095637578778842441300300657644074052703037919293310542351768619245521622171605681948505912526453031884750914690016044287313580563395424469746929760899333072176948443904590406629670893633793652896957340951735243654514245319308913346915072813542536261730354516024971015333935595049529097479810434947889775490525968094665486924990728864562177742028485290225713635234166071636350306502939293965631330454384860498589576013915472968563584151689790554225916122228751624834162098015364564614773971195470803390715671563512252810019681337281789157554975933985736216741762711298240790387646563016230687522889053181735976609025957710592146847642896036447402078736123257696400777011722934491988189299643319420904480063857109675184692097121664701983017290208641293959891538528570345240562095808452931783491325092159429560500276495145032822710015323575321669088191028472220172949370593775598215592427065657596609326788210004034704182218365085152138032484596194768845629932063913532112537104119533658034934657354449877908715553453856912616110928214201404960559609943224743231463746388046524309653847589852763829484481072651698258261748014020451614906257298969139779800117015107525673311112255011712074557710496092697084039203867720113914119266789464902958679470632282778676710933990782732738372411159897510115825678319765384744899053867881031348362511423675128362584506177293641382354253213171100270031136603441001040663217533534063864541188333689617570019804426128778714413919704281446337462956905638084969416892787033927018854486854771365945552717133600395674958297841069316632129341083221652610668912899567177571553988826282300656682246967921845187997946584643065550998960088915670165134736704219380623700709179543205490939332123195837029945793646690614724158875287439903397663340487142585330702112598761131805779261095323683507941576024007682326329204373255053593358733829667161889848345491873089455523890476229174736767776837247700404450500387415765510769652594555154250860371652299655330671866637998848540177421609068929760610594044839018805030217190902257932254527479780638767972779355751749038484461387073319800967559596890959698310540873272029339055863830691502346783187271206801854016383312945024860672853840387049316264581185466388565048092561747635941077464577908430282320517509635036053618360253645851657624605681477822411853490141450211595081674167944326493850281631167342455516824047144095266509752869202955817520701318478320707265954072347224482943521577715940331329139060262583416621242465816666079794605589493447750223145802119780681899425421208194259157444311152475415111861244480511222321894700181669841364914224574055132914509099001613749206887551465238734272905130610681217210095241953137798949810262498548807665312448693950455310894424916492647664799763840383850881563744500694726053476247355422581999179337741877927195926573726888545571502283340029408386021083550545251689875156193672600648190311137382883510325047924437632596056994256980956663182988770390993145924720481337081081230477190492843266569809578332592280142297623512763134139098747908464156859153565133275400490187963791279740819280971687517103345360035182732878377019439413056091799073007695281850961180526411431653031291284777568438456144267221653030230723907865002196540268159747666778556253468414158973114303855693703276783937372026858173611616701262034438172537584631310383441899203486078941913474661013867418314233575792479456920932124376616799389802568073818512922095318479728817691218963433161498817084054459737553648686041033840142261730615070129036067934521364491529192464846800362435279052734247656492935536918960316277840964407247472095959453765559355144311559383521331230344117914454443164535664795828915609326577124309621549400929937145933278772429039331045259026775138882985447026096363559946198251213754851753223720142598151261526064658176708479593447308856823087323333206683237614478631584235924905532868308631421651608283834913777338248327069589706754800494061326323281995879512888813405358143437073986982506624615534420879376373273667411373734694519113298678963284776258470635616528535403210571188436932474829696077150733031867389655926714030057099833782950240945900133164669006786569969299024472724332298263183662267828099501230055455975885837813202007204613894596572501866074287907197484532573220357518742408106656955667301822268590852530114875951573380960948522068710445940748349255293171807170190709533115400098265509708472345037364209117983333551793456055899656462358676151397366593098982872290613228533682131302844289028686651909797817906424533106062670550194009553368268733368731953201068222090421417220897004616855475973959482668538405084617544642796208860213984518092571591552043203753570513032989235158671409287139201829420393950745247732330455866869542434745164254112638506981379884883798431106293210290954412162204550954891028601090672487780320805301238194211574746920418279554093638281213495940546099860246855201069418460960878800735682102326921448308477526504271374319386849168776206254023979097232822244215300591784723273691601134637320646529521817994744293595723594656869978389236528802313795928679096145601413219598835139391264711462477426092450278417654619545887391418663357982030131016723864961911435132591498312402902048899794271769507829085116436912071571269636931779422522014046402052452466431462041457851228565885614403026520567455879159332156755967797076941168397512000730028498516436780674523764642809291543220070667139549133553517899989641578543327885049985744283589409867504554468675963940169045217353515532623305065580635879379569729393320342880889406390499691149691401769284142874614214372577897237362205477093604810614589378703736923685070277654954251637949225150595520372877981065550849765035510256477900224904833495776565674368372222052646419739443374087633641010172409910408253839134709027393557612862054857398863476967764058902111449660798004638594005564686946950202887454913101279741795590165779087133316662769281724198825851885579995765070441556832565420720919920804121991570231807211427262239232342787088289825678624580621249298323796902480226998978607721800705403365533937268585520876917986596864297303231430352032451174921729886732130405227395009146920554640438595979414138300675027330988787013512157858594435744688985080129148500489406801463856187494530588861441927715078404804463513855576168327060627406354203147834958044814424832669360277471601147099729116718883630457293653220677841321019384284620998609967009420248302506381952372501208728315281375394949631851098020869406313357535928565161820698316548745820206998285173956050601257312022283102938933835136248443175720947120149265031208867313873863000272751883375316086740391261906877074054453310480746195330890306494931400353046890878823450931446945831095074923811988761626550130335143936308360381953717744635405885138516601611732283983342219545881440416708047152756681273106612754434507902665874492363906834709059089715809472624383073611523580489252826049039878850393274448926164782955433279473110469063046053355055422846633689463420870122575531075230955919739861327113175809928715929987156006667327598042764025844414055174044499163242760472864168745499538196394527235948661855453640005030061842385084077023469516350232897399728485651306079749236807246086978277168022756231991733327858689170956609817782264476347342332024852092247900408129909821453334127592051448411400915813537834307985836612585919521670698655386345411406487825711825399301562788359699006473943394049221928844501420734934565141447811470993456108296730015023310412804408147685529616020201825823789985988475418746789999393792209990750285889847945876996964304474380948312279582713189067033839494405840475162413323169758287600932602531534136728505467938053983228427966980532549303391601538633877458724343212020030302819024181020085755919961317647412659480621985481030091078319396931803497940848781122663374401206653834648068008197507161069959906489880456587639211376078785639651348152630765097668276280477492780039741825888990875646947139240040046896193633774598673610907769243858949254781856696782312961748494552081016005583790678486313540912305436807995075146919852472061307566200181557553193802389598239546476142677469102393787278910619184590609142975426826321984272412128676607840199214494145286567579178191643587567804041673610928405365643508047696729216151732548237230964859156589562670073820612640643810880407046569689148855103140546076217456227927156586559837953477252245916221516752512416759199626306015984105612541031500231943177942846845709440680669685803848155360233143564976997319192138907925991491978086405943281596702851713155684309176259437778617197481442693384942443592540082710564577437806010125647618892552986547256290233674833219037543865363811456733405472773352228783402049292238825748102312617238681204809086538586742759021438160749156637166612891394362027778571426332846811706664939902027771383843085207686281165258537346138385607461237072055243911124053634107338238638826876350631897967418212127828310949369721763825513859895178818020415128306433410247189300261063585255597462189959147633930027255422183604508017023752958186278819935470359482614494867764417150424875253971839001270268313979331459876656249855017038962464416988262936899151223720272424071719290121043090434956743385717627982406636669337980265150151845426285844249912035924820167794770336723664789053149778628401531063107302099933346134112163530711272245361661291301387838467629605551859399558322919305492665296630742091169710198818093166497426789876045294337742930540377468642038807701819448275609398453085354547131933459443768816283856221487186823550752995152318775302481381186702599412541276095839211459369375667519477894837167821600295295897673144678588936957514002154588484884774422508824343857761759378087315376329090601153276601107509717428417032475034097672360992284262940158578717502526878176574931343829964058591420394889169612996786608927289668372958695550971366220316029826715041852554434439470761794319068725766655061282986519139584305503207278403283317120513876407014589538107101973537408946315318439534078498282362667999985844053041273694885094695275904422163377127195384415436116907418951726648763006180988057843100570717261580621912161668563014812722464009589537336267639427522303371301959066467554881586117857824778882498692282089968097564557608981027872884493318453803309689623407854707345357952818572065332766759085725152072761341709017770471821674581096584789976438080378234064570954043309780846322092151313718325190324646709641408958599600477344452262834314816065957741053083459694147514346556392114631382953449131739664757320997631548311170996862988646096031572132401408446006088721202757432002976584354342202354971662496431089257291209818877870696211988574208025382540128529203922983810353708815859497181944178842800312575642208074866750718470512821709014529881794384814269439117072982675149059436925890162815488891851998787774390351536384211972315592015129396056439645777737702783609381083742285295034380799743618119898253528998093174240143945116820768447087361622118144837251327909871504518663703010655604176498517003181824829707297571565640898768218274381166679856270281331207162766931532294079009384017973483495998429586452459864928614950133766387323214263107949204575455148068491779405251248698340458539128591478316299231866935169650273542071289687094653012338210186199553487332012445118345467926047190911949749561999717693995644733895558854986761649541496133983265896578037570053878871040756794562326591433313587324503407031444902147625671658711412606570655303817633428681873004679147283040178841511812342090528358811792515221146000574226010107759781441848593951244500597456408116669761524883040371122697620692369919497330593598847541252784384387160529122731160942514819003485787458472666081429604362330847716499874670324046999344556747472420359901706736747407771417640298788993380749252091066677525505755145096752108008032504975751852957865727281408101768905042369528666331448978698191473704511154394096944183722517333048887556200505581063834013352481569531066101998949089004758921202359605730485796531940337998752521917069721353562711851107714869923565086555366383447397520536703009405469252643373444168592085089239405225814991375707343059144937270129298304765598510689185319285122782484955342584901421560546283199551644224654890977085757459538497225280195320469560565570939133286791096381056513047946574509807450759924994800536339616343444173184669772827659853393283837755606076477892797775044944798544375434703731767383914046206187786388840372120346141742704830302122646546324240633188842845998755003414830658100100924051079370937224155186488745150471963185387464175601567355877565679617622069735311569318855114784663054449824387426431872326621008744001054708084840131220282825337998698812833863654039845332755977198652208299544033889370262509589153926961924106252614003023230637933762669020610503639696006481298195277978601540231316035556119735170840907348430626815378353934854179916955672546008668841408290778090158761277171034962276766982095712081814365141638038531908119508907988282205725580871994741554648852145299124464587930114088370119556329779427359096738721794452029219863535237419908082573857348262269161070549944928869455178626674595557053964428450617309967421808621950487171561042652748849064524156214566237159422163308516553252652311329263887720477564305620049235677436609691827368534777656700564157159705258166649222144448382389731296319227951274981259034823849605126356084175657899855505392402198115025481445629104285724589600070884776665533139950661224973099365658770281081691862146154477576964924751618126352646815020581595704941018386477424919552253477367993061202688669876778107836876943684914032201456962841816758224488440349679478374484907840269603204021618137609062008486865739542956480393080913137760612109373386122077574510319811512240286201748733495686081718895030768323044891035707375402023335335843354578721869012281425180482947867630501718818220497789973941164165204050996721684249861795421375985592991754641905228189984452076652584417506903909747445347980322737508795612439835952322340738091690534694120872472429458100498633884679524596358254191410745994312595315636498470022956092005628321724591907364475336965085149422866411228452423516937772266091827568830876927156237591837393024502711305176397424935979283701222468052972664168617909823342155276597022075081154824150373547260147792422845767561640314497960593630700327577870645653523190025655763530946491223370802763231503393213427675704162421734570304747857706824438061760494652835168167043240980261626899053538276032813562458245211587381491039105359851701979292577649583482898271731594504005575950679577986666917219210888133362342118863592633995129617194817706120168360183644932862891375847478212890358156608620028614109824482818451727433480006970046392915150292917057054108351161329400396600020823046352827461199717842095156835764639052357344661642181620373956993046526557418267320516495852988770682364464618919880357699776591643670343706346785324387343227358303183689143840107991953986428233454934946738726277162423505654607618105820129323016634990341670707536304584178455452402799934020825478908594126289336179620488920627280104055644886177520748611306603069133496129311903149383322556448095211752111918150453462225210195995727755851993372603044322371058449193162431219073313784830229248236551223302270593269670299468923704184626485994742774174934101077076195285970721965509309772138085333009473665839133551588378313216425857904966206224330355889942179866542030249030969291999646399687019201980792664864694006361415567552470852780008670448899652214696746962372978626453328137969851937388098948367280876220558514812594356353434971294759889093683918901110886957992633580459839690678805297821042999313929431187524441786380190246701066109740445655333319755307850322578524817338313978002788472511805687078696241252857067030829403845416134513650604767376279428970707450274882577167037875425007151362465902264064258629155174076806791169526548651518234155729861710513446513076485717949473989222804491645461203324561411090067093554275918704700536604826445738882630915458588997548128895576021357446789367734959901688779885443095328619816827325217225442624615317639253385329169584810879645698210107219547911382385137001188809143851741114291509489229279290709051700327550860715116187336984202609555486523854355486386031073018062695858661283930845503925413391621493021251989792569021492451553454700690856907530126345319403249264085977443916422601573881105544567496402636000742540629432118321536467926945174614152591337852676292333315251619050634832416703151082170346014557488631371697589031381079245384984592429542122695863297317229788758361289124653317910156905657680452343723926102103340756543823208713393604125206501127955920790972857294425688276031807946996870682487972856931458404131617297539355627213007226356522445068277636785069386434860909328143958515013191677829582722378143632650271196244432954696916117161691031718894751341230572211032278834334803161813485580387126606111006604992285167426486699606096587941762670561118897082401033699344982345565612218031407687869634573505599463323271015872074327869094901877629638511216256501294927467610417465985236882554903368903878214758800767623504931655703099068721552702735093921680024160006588469835106968901654118968752725224201338766874824043901035947262214881810809746557073795714156578761784702610416494934461631783353232884304545238025185826599174344533823925701294317937080066053489033626319305953626247600547588632853655034286834157342211200991914451735220731870711683968158905344796093063809490238097608742696462215203903527230342153526253154471409743265722254915974616775424659717590705011511104534740168054457696916253662411520855049735823301076277278560157426019446078952453784319784985122769620321219371024490628886462688082621517212495108859505961510014980060631045193846304002165031291647404202276728006285654981546027591544173248395461422550648553827426654018562329494497176881484941212380674144400377494594554938087691992843547291927684504701017464388622712509374738643377301541333022026627409836196143707623370041841903707212450702802657658957352612550921347025113174851476880667721493376820172388433913755563370208820108654471543841643610873992548729163417179948593364024875836326585146775019249244843047637451666819840854242750651179709378892012534007248580259516641182443347959584985217333890003469680872248836905421351032787814396474759838707045726280398280232417320986087938469758859505224623216326525475115333236671347338526585129876292876743700979444948334313211834308154752539389563056096877108409256896446538961488685504781790756682994335478705309359386303500980818353259967189933345293465683831944478193770986201833396504325918695630762495311331592682393462769806017877424287141820628520528539278275623429835966725488684054706023526689796613923591613921038854138624260764938198709119862994161234117368262599257781419850453433494812759216467187380817037472392666094401276725526370617570418018587707059417453399448061565710535675193557318434915739960661610779294529028316981649957663010522778879463517772147999700606704105375419667146412580297414537108491271429866959284428455712246703022555326412562942119135395427644780912577982933257682622347360824517644409616561090763086524898793450887744327407682481976721083930593148305869656642467277654858656329842183125349513002525057176306970233308179247897392140416708523332404294563072979606525275054256594508624457574756283976416668698114080165194994099740145137851324608162885511870585411876943599372391393428449649819342445231271633569791777775598190496914851276520992377733061126608141229927376044346905580024241482292494160815191574440018388783534827789061385128549567878694503512937251359045867899748293793415800516144548562317737009749176608657806262044973578251905291952043425498090633037132770172977611303282358219244889521609715836963456236933266083929163388076744251501750006476308723194450763359783803409714933573753342454737441769636316729891388098437411683320500126842383395817771646046331359733380172599557385639491248202826802912108027232106492881256280492726381103797838381395331150212264420125835074149763867567656129456828719961786453818882535719900452520235483061068304065995338388685596705916850526448002201797021159223893383040938777482529206902999282758498996364868208058892022004853126723663515369892920955036206555452981749895515661257246695131127838627760732029989962066010125034653880548420300354598241928783634519977620727991319190822545903257427121513609082905031842702780829392132512927898332125135599299880734468497693983646989609222931898570401402619046458110607116452247193228879115174449917131235813022444049800875593139348538596439037019686523902272182786210677397569889659068115734992718805633282574626343031722073044515105880685278309989926431247565239582173963433818288130633877040691513184697983473508363004184927806641733286610164656552372765687795594089040802834251172472008008889697262166048433878421931328104274537068797305440549976745616526190955389951757612940956439290652324964994132634330603365882051745990839623214898689272165321161060818429974644652145082044227851249621199447061320203588710783203107909458663647733264426659289160874061072444919064301596114461860790700923053961378340859666892764649778814978875583503210216421552700934004391863419655589640365811470195088509954880512942602724936414642214703375102471500186902195874104163137920275449580705622856140419191066893866716730901476158320696158809439801645610675678794330059009953702378012598602114578603394467595836428212251804042513253236995375298899547573793759193682616187656619582771576454520167792263606603560684917612694795279495440020325991579827909968820551784640905522755595319955873139507399866839765972691910003776719221604892553427615236433701674268465905114616715935994835870409919311198755914858675856590935390755597495873912591183831503117885524725323064968245717591101211463560060656186100751881592592809313790058585234102439534503578945161970554703018204787635593695837537797594053413168851595701109464250751775213918796476349582916161211099144116347478189832503327600151921280934478041680844905169487027006506359998560443181210980869917308967586025824528224228556323117480861438156834257023710023176220399402988149392167661289691171152383916928824469705796381182885589141979266778071501357618979227551922744259424778986464835743893047010477520994807856031296212682612958519117478831955048194326368830290383531904865067385799269784199539197110722018703533359581535846799806486178436528407410220602922097263695712963569400402964962613709047911139353022638921829647955125224047842143457443840333488772298578576346309716847704093378704845118833510643855307171735613902407535526379674864881975117265072637633511534562607506303622718925065176537423225614360819786337589737821125840065688310301344809581198530492752400799909307835217020421345071874142565682919280807782002753412633585234572548906995227404371746857633714804706245575364989881924243238781962496576048643871077758618813488290949496079731887486356677907056017391016244301692500917904087488162156117919004342802213440741263045436865821740540086835357965737011097713922136824130209941801895689269443748460552276075248590337371247569802639484945064046452484473567644648206507354941274443858002301691672692007848935124229571275231688637285029122467043750817499764735031157520362614489684370590200649782958942501003845079124257108383448354485035069566772660431327317020463809161454770225773601478280025940575048346326850666654898696492725054257705077830734151503044957603928395419516721167646679962902353159110536289288237334850275065279098691704291430952813905042908738412948715027024290686643855256211487037379620296435357924733761287544465669304914832320624681981364236466262222959091733405319054758311378597180499065164763286980821883410820116079455932648005847042495609948723853635864398495799872783093586544253652699668660629048870304388288886635788064375610316670808229907193289168081685723542366291591396365804548805575454570916637436341821742829951984290476023818622115475284256912416518154957003343471171559337002159740068723188993893244074034294375195717196664306962300562073192998066787410165983949225819270600686408021500251126910724819911574488801789767738042723796837265827573226721783100770022947109244692751977375142023832454864697931335094473347284370572869684263907947557071466345393807958496129752211495618071460179179921897351292712354552445286152366689191270558014732210721109052240728058392020136979299869221163326403650746204873752635770831137157472966756564392130885050372292687766228821507039566393439793220221186372907031861310190019240948186095456223577532878164571939470622983616512940138844326729178240864486660996799008916555952476075774893772723345731887889151937286587101881870369910035927470804564219780994314563711858887391055393686820805847808027980542581525603844231038830789644183664528761821441162475672161578718735152442213438807843700647502192411467997842095960109511195982159375270785809070910004431251566897692508659985228661545470756428166750970246167943854422317111322275291376517067448785331055143087778815072233666854228726717665491864976613196610556607014860342894175947910290466953914380425520728712022924585401317119055425694335302200796065633206234702590979403165059000591921447480263590742322080750729302384017829174999672219449965509611461880173384237052760270370998091381855703101965597570052316146766174506575172352111560207810921016221460403510681734780812392555589390836963554843168048867360685978546388439608317106063325644134380612951092593647203116046689775323259591312173607390289497440933232577149377437831420350888445766610491743257764206789806541466989865082494459120705022269731276323180969280331002687869090192158449153635205652232834596893378736363844451936995176670622809072204319608737863645851419303370288738734440640948550138507938040393155344327220036605703822243281797238584783733031966831572475586701165720607256347296980724232730045488696416758016459934919037018003069991634331645683416135558329402266945018301289377994397374211980454412058829167459942456101172353546115594595300622328383354700629412342338100038905575392662118976327679028853464770718364159965059264556765520759949330442883055031728577184747245833693004172342762582644843075318913824496260640127229192869846690834162109456519348345541031809344510797160435906481752722065810365362091836573660095357004221202523487635335306072341539055859345961775045362016930578211657208009461012556121627999822677709472808855453722091927229492653933597072678884978971290589549932458835079087224473014234894048936063528210293832536255995020217174167974849698103864332844437367949541732920218429328783310428053729609364465780872098584797309322205833814819966349782094475108211567030415751302845177243590122394457247516571395071924555522841627427669263333765360086517489671833521763482611983834549304775317234028583120463361505373492831105798453354085568904130208221973876648205908406997630102923717453420260444062507559651970429425114272512024947006030153940930083524035882605482911556931846229386106918788881062142790657012464602606709119511475425039084753076563239591027731410233463272537663302472221751699082133689346255811988273885607295461427820606883885040835434863846832697758056726397521336196598296742230392501003696376688411306318067357098433655991411236897933892865901434889823010187925485843652983746497053768677119874998456398398812828796728745778333073135395289940337548246436140463645282796175234035009426660714661975866558564206185828389295872335948285701886761878688009860877867160133591348749241160496240473968724546493021885644721667943038296121019455395511940740998439704160595045450436445132188732523063322024939638651800778780432057064609562444667813395198453896329447917716526328348145861236193890515727530750641734071029614216189147870852227846386180406609859589104598791531463289726480379405973648223787058254583698723544400718119818990408957934244100980582598622808337700779881330661210108134401993266541111781032832942453312401324912057768813754085519899661489843469921155798811690906236054759592512310665569578006934740936225514157879029372987012275312389932124395745040797599486680524585019015162025502781715741115392328424192364696769320052085734645220519312786182268940881875667102986675815145541445582482916531275303208530117510426638636892960639788183304841403189663253253449946598304886223482522188762419487825935430024761552907085210458558201750150637057108211107008446661977376998123318002133122735372801071041321463931167872632429510930498794261332656695432778591825830769333865774857500606396508371467269290721945386018531440672169133763111909859785353907587750806354614768261676109854454409374348471750860382607450071442139078531606969274994614294113019399222093825226400053508367605632521447858958288746943189584811579183234180183418141125190320875070560946650930080215595073388858079419366763831426745363950220080100753835891637788725221922000563953578586046371498987027963142835572446449864446759803018069013608776835970714106837799561617954856345554184135552992905987672773650438557137995165380441493335091004635411769848241033349472996649765217277542585413110349136719306920040536408783338564247866504755600879042387081290796623421932325434528135957096271319858526645592844385741346220504475350866921224178751759060116661793107544354026569266101031138342669975027542996135578810671561309315559898095527644597337543925477845749464942324143804342601877932281174333679781343788452100636753983791489420935110449881161732428494938785834360840504709202507685613101359910790670332575026739635536520619533998903816707080889884750447777265705632941499907613218110238469735764116387733572682569380739862738165930986959975729215806068972444880059239594208891785230661037429082567254801128140657780365569019445775599882359900375327319329929438974516596303187145794810797976413416852660801359475367054907209615759570744788403187980714623137040866064045863447402074786104385083479840814420575773436263833235117217131138389948758231283249106078515004431548671239764351846294721093938385320422935052000407199821620401345212584826933084735223486833291317482220812844190344983285202393973816869112795120025011146976146640253721714086523332051543736172440813343932697463732296628544294252123219162650738549764451850212097542026516028781277761667440502358514360626513145642043200592167297649954541931450079306466609208711590411004765704869486984422534305484099806321970161524519342681425058676983808556203863697061839397545572954656547186940722582812956065916186509620851353380930269219960094535110504303316560127004229825768720456454114325880555882279453666751172067152598004208502639324494315641843037103187408757473970062988967222627970667555104266258527415953696568054814085043525121932668842992164992436113251543315117158865428143620701206080530347136939566475773628201671936100437544669010286708390466538902697937145341441071001909511960120617097794432559144876344736635186559812547804184227554711816266297708043405597226605359176282736842000531532549919592942714546930931422534976148607470733466010124822994146656735064056346114779337404257421322291640776840346212192165027224425318672064079339363160984151304290098933222145923132269493439612927134261053700731288681218236565840544175198777531436595779071474515993329438334867119930457683973444988795197969300252167408708999872641688101635524245297983201992712365954266283281867773225210365146052513168375927617829089219822293310232509335869135955175437636017704694278447193829882406619709067805349904556304431602087730401403895929175467801072748909053553462851231660827907002462397771419960398030901378984401218070431437421697249905369091176459934436736725887554669958731105023660632128833971927263329489233210087092681300406965490006588478206339395594995231821723310506018956874407998663212933574962734359812606047944440721693400468924933186188179916553139392506533322650182968343338852917272825284304656545998118910960194056378870043655949360002303710508598689121362092000931498612314601206500566757360684583903036842253892494432129527493236917114600699843646733477921818945383538333572316224802603279603310165840473563603092037417499853093108608651969535614815126661319889107803497550501585565593294993322934220362606656096316536354877604886511575334586811887316059709893033025471220175495514140209138379668773218526179806267153067939048853646361499522396087066143407247830355521853181371113612705080724713349545260605782762780712188328057238939780857606521058442806943275515881608512947257723008605067918044011360271137153466735832158181254784702983649190137269410854500105333764043110814643719872949314063324496960616017774088108667501039520549328861629259154309653463280169883369968113884362221131192378870037726792617735323396599576203384594256365069932873655808852892926753051298923926684970073653071098960970397316161800187554738180759818161196503781145273272780338519375252312896453347682489562962637661375069175449431185984464702488684050501207133815568374662926726152544495736121496766418746066894951296484227351933647992113365310542895273126474300621683000151012837064674714093015697290115355968398621033410400141302426757833904840030354456808419565962099126910510276966189478168407310336045728403926720240094553564246947910432185716122540203553009381178398331434464478688202101513426405360467779589342665268534971914552536150266685923328205253906948753469010688444470118957560626913337204675917043971597262269853638332386560304552292395642485251575812514545741879635737818950945325892004423738356897090583431334657416843723753464195407641649198596270802974522813370584049262361239423710408378201021822850292984134830343849857193652623351664842398062345247881838028868229656043587842252350366807869187471678451188278365048803588578261234664994730257855353920365590597805140090055459017404727408238966517028672552820830172917735933629869755028852580975516853913869872505881811788310035213290307963393080065914302113569458495994753137478593049258285200371670575155659685768288297453080625796683652919784364828102622632005416275521702885917182885514558356606114972368050267221342982520870758636675165671260414110073245055730634894882319650944187847114477187488450309644219306363485716983748089258547542092701064185714941123427871981828064260617512321353971078304340403178917211674672723996535590672652236194847410198640203208304839928746773072257626748548921081516205028020676703683684807038453386406555383475014870742588733548365234683451130890677056717630606867235988266900494680283915800016362344792339941233705834215333482491930251204740724261061485238573998900256068251166605423464992060869816040999772645314600060890450405495354283602802769187121432390120101365102401586932903294501272106191035028860698993648802448717996469784850525202668176225419961263054503199831633292058655750172975373525560882765011709156840017933729479039854830137276495844201322634162777520478362408877333911726430600612948135829442884735194408713660786128100537980174818947883371848879616241324798526439917413140364642057665039667736434124794977080158157341224949060654329343790737560628912029808659528131056965434485781392925633523587576894438049599089326391282532323154238591061336382802521358542199277168705409964472465888539961723732824415319529103509535126311231029009613576612961874219409831479462766858136777051702725439241850400420523995996112214385168977444817987859208591848722354802301484341953647128955016431102809678836653302873361189823429809070421032757809344290700334337848588013517669474173903309638049695624326670296931932546736964340688246382742493598552125183242885080356477594147426080413295437487890351555104642577655799234852985725089392187229394306175663522374264365414316098512387502498026648626892743571441957874464753597838655126989151116263535389120655758491384677808465297424044348071398482219465951693885933633635896236606452720908138323454492144312852426604973353530503677076995880762670477751331421660876288626417103737916577569378267051572436840214811147315080876006943937147618870655983438104707871739246332604578867093665909335422542037054173394675169707553606225471798022550227019075979167693782806515822091878689976103716213952851587973973016248834945246450572911945192317203998410958955982428423653564972044065949013724066500020491500687714818605044667896201394761705091759609513146069701086818463441695049742074359687130583154288409830743248371528047009335849197960807804870928791416396592937642376289140219794492844676122154491166322777572116539061228542003499802499531748578227099843497457875612773767132990980035125576222746360107551586588544874665265452250454430903498796234927992717521329746753477030118500441431680446503533494713457822093009083673813371273803489369373734729636670945364283901933765447072405962955126796916403166531753672582512962758920233230388175743791210163000041946492671702905888249952693739277592361551119369979089817198617689033496374037819743797688390569477272134210772932309895340403592005473729588190570504766663626677918470156929471179598958144967278734350046713443717942540680042593235719957422074130612231450256744589638438027055014148409314520721935474041888350400684557380752694614882465828509566046464116623360994423653685478079434516603023926044066350099733348676542095843089215277102241014600626568956374385785979157207951298731033505197047750168809623353473146650602636770628238905880469815326183860186232112291873863009187146336400353471859230857211287943043260212361200390253804319897765716724276404232300797070541029030922811521779735153478542963802007828469253803505449809627684989179232700970451790890729776609887715065757324002175047940159927693904188104066942787239111460790114959481114625119398084201689460353042639118079506289946230711251802885316686950757592382718046139595472902187257163345287599613315614603254124802855681606958483427221002244936958392955975646155705310508674017355513464142636308484230580219154714404095246232665551193346446970800470624700972084769096557942623706113500898884649471133057126494249282868488881902964006990598858755874939682130154533103939215015003532756780951352634002201907334929589476203392297723578504228036233355979271275668463338179428818476097476186997517970572457598713225131971250528660132206323855126415590636831833188735165651120255753530109309983282923102629953888552374136840691770437534194483566948635062495531802612362991590135338700591197686953325351680292390623346573766321406160128466355149219270756959425814552557741745229792826980102629579757546744957774732360891232875484180932182909105151933075421038617874881603443504021118494592206149252085015425487575039504056218171176729039082490078123553177862488856478700444436176837864048763247158114629268311799075036462455569116532231473628328730845671553736026741115095975712847249363785729505633774552845233331694236619564534275232099546521723396657473194544946224132435202805061565016676513092369704425721688934828856436141722843247961060879224102159083339729840054392185119133507648364936303291618754366584388879414285402309367622469666387583538157157236590710854691451533416432890251684768345683850571933176078332723138771319921328242444330421759632678658567368763462915407388774629665267273956228670327262154848197388062729791148410623261469154032025758585120179432293771853491189500752251939631533004111062470066814026072613087754895337278439703070607236194915078313022078408531112823526512885056800442565988274510886984077261897257462148180876257509079439339704473433419028739641398860583234145493858686668068316771029101951875834487752691539403294230008145973322633048830490368235245917521293199423740390101964836706948651353949097861317403251660439482922633703499784429813952271756389494687769504254885666283417474474524417032095984266358249684535888437624139714643191288184415715182470861876512114095873709276754373242055883267163219804808850712274694072532058675662129403143454593131063467478697395331872657945794472524835697758948436068473937041637202359667949721628406261498639424367835780431187638375855281110628703507528607709396656138102525745810638782571517787137720843618856941752108935798155077860220521668220312254628481085722117755277723104669716063654135725799624782353282039436785040699322222629431924761991590342854601979343639430917980780993168806244312525440047340817689618420351924902921704213089733693445652871768535456188841004729152802796909636782897432987945841928550649124070078423554710320198846977797017862056991990470910505932223297670274759906728660689497849173514431531089689520060172121666784355533348644343031063400083668613404846094448334253164925832985409800081917212780627594019297324130811701635340092101220022351551855193605323493434278636414012914598569345787723215007656935262174031966453678262414327841491958060406022579301348146281232716045134519190466870882901462203772530483303486845805639462084899091433400696902522357014712542965945095080269696590330867505151744096072193392063441073079748870840390355290516476966974859973208390113241934139748188840450699540810069992768697815865079320689561137323636000059818451100482822088734560739372746178084896344845148611343273486962964264324838559271772477125826515735882940374675252315167934834177420051469850621110423443064365256714604924878116535665466626323512015070841467161036833152598996700413129636270076108696346040558500510954431273615404244490712707922826493653367133274486412252100488147840855080232361493773693378217443046406129546973656669296396746971366049547438047077566581287890560925709413897411268964972397935687195615130738782921998015405081804679807257395861037993860344805923185109617721586736916888436708293603690049332505343627023340080982983613153281807058364251327455131090110271838786876957105109830560999564191809091878773581254963679784633852670395177138705940347375395199156850429426199146329467588993777849857143880435081662920274965793276268192965851931452997071730175116541300635450863058999500759510499142236778311349239476609414503222698028884163243224446213822950801793380827798821098168927684563452900408305317755085261068595867210870209283357415231464906323885727828778344502687990903905451863152106960785862984161040654007106821399523409891392942347579157647070822911785032093764078627715811952399768928378835664161080097888071298438091705233000697664184303909340395908467253479232808748912593062367848432840386729148403592925272149514317929861929981473167798141047828389324795467813559936793567622634897506210142136601562220976387368582574316309751252511128159039949003140655005465390362002262338163981165365168217238458504366490561256751226455514579508793065812015384253514117766517759015126278141831673519136385196695003679038189262174136293618849450587382972082748513953283189585809975965908647999953258091499684370291265670582436385454855299414976233779175701427404786316665994754191825904185650161938985422639578950381951772732706675537767228729127775803509495103380754766242625812903824937119120885173908149616485024303676366459033166442292549847465054640245880371454865249859236757301454286950318069179012634389489977465847130966951915977286930361402268232333807578713978132445108611379192142196513344792402544260208770257498966593413937767350206012957301808402082957417618506580145536317608408103886689018470845964242809453410844843399887946857384099125152389472814531981667717552073881927174982038971716827695292962030847489054475337254588844578180396846527781991644858100698543733244070996730493391590379835193041934067290286055972669165859318087058823551031648247858985796829177481247983605568236599949886972414276161729209808908178910931185936835305801335314240215107839650622363598603572859538023322345978768885290206461646934491431391620384946240916364272801136991076535464894419636876181188410786502871181308956716118062066859978355987235895076739506823167998821720727703164750721836765010915202949239068580344571480406573105304509783978226026587892070484096306151994356532036383101601365863853228581582529140561918026604143504891317129855507091497378418089323597995134143756094446801034080498169649016627150843283507237587694857666440732223678516691324619245448832010715954972343351007199667509487907318173518502700512630610805640173810275304405058270639575591757290754206040353296382877929933115829680264688848929493772036262786992818691759579255983215162174955956243617594337585167205254316470381126183044349772954908894054888233847371287644616319798118049401042656196559666462729418791198027836311069626886206343293189369596223905745834392987556029151241570691711053299954164681601585042108060722056295641421916232661461725118797531624470987643116960484753596649207598302487459389324627819768777868002658959078706356796366054134350618761566937574492442347995019184704948550184066736319619065028505214105026886869195367376821556383980472916631710019483661375876759263556980861111156512181719143617883183986234870622517172493210611466699591901859866686887135949795117375832023856417582509795034925222499884848442262885740289926630562020587186751111375081367456631315547231730621791996770092956879797528680886522569535478242739043690182584482723871150328555874848256673895448322074595386124004578449692519603413763430629318167138296279915913960611862444025220671717355603735737432270732335011654171859652375471993865385447074798321207224338722142915174379006339415784665047240393417704769095707963675477933423418773878039308867262313479226606363644125636193340295221209880480868125972455705713066273339723417380139574729578474911672437084888617727579905636101943675285222994524743733380197922043552581185936219569550953624443141784551441973855393000615313374479659158248412815687162436079619381034082149259604901754711179463385989911693654826120277879870321669137278310363530516152137178623299979321472064058763262377543363477167996859289354459442001349389498891268594314427784211561897061702520433865814148390582802853334410492598758933323785062014323441588064630059936099356575912468315595611489743967432867032624728137626282977521579466840513783867285623306022334364417854787329473237544419003351760484033248244602976386606372236792137921492886371097479792517491136779223521467119874558979132842768580750145605609533945064216037647191419329447019233655518484216086307117172701634091543413590362129013379742825524539102754239894916562903339394293035787978292651780461778223288081553888196517734549045951930804264945587479605516742693988365770226774408961937620485901479933084673330272241392655712555169556231417763182899496526709223526885642460318759599430585462806049772228910623982631947717131520295596121968926895174753717378842725450115262866004510908012888235387020083618654972410580832353266709829012431737052145204075009552300189361599640288565814937043957997643037637530633336645368961878639070315971137329761296373208113562888927280590686847795637861315862483790134478080953236254167949210927069354988799286684292214997576902866508631623354148081699219396840305094354845083978672562117898028000228897457275475033802136741975539342098643563602078007303120651202297042168463980987813354112565324029256319134348692528389046569351481163593636355945313444772570202818790829123054564213006596430111612643219216795679759829526069272849897849614723319546857590373367970447466255721077702140236419201048100120687164192244528307859724316392182769925713466386808213799045823289229202383757229100544509164611402709959243038729052578490115600294451612211445076655835470215967262831590543271538113365508053032124899931166652430701583484156697456735999176256299117365023805448024927177011060742715466572563811891585739016048838409557691335936506901397362638559024071484159140042818628842602949652331343388337029091787862035053795380638808004203006477652505161471581776298520410252199984233627120140813968580286336212523858770223648819314854094626872101014739325659959838495560811426806407267471949572952563840483875105294421670263037374218790535263506467058255509464894254045584140292853618397115693293181406375080832240152734020556199871679187709119318491640466417580342634682442007133233691212936110428796142406604278788745280284340425784957121817063224443631643665232584350932936242141493239063674508919251010192356549141108472938350971337341983240124504519336489027037511374506580371788006482392889701987408272018070719200441970120384039745478570393640236316631815497520030010880214511015573389109574954132468632317820275988307911660357665173233689141840824052926749352447626788778185568723763213011991336338047982917659818485667926966107677386348268897597110160040558727771141248522338339996138728161259069335155877370832660580965200142043459134967760459618066129231538585064886141403840094308395433210112944743165628665559954415609424495929762221315717072590468580681368148741971583488494834589582917801862961079938706998447827602283693131721827326081965186239454107159681639117055391149157754498225376263369909440104879287996027347476483876868922583294904556113796524276923894129588446574651676606703320287059647248344119005344154941178620519058281342516283249748546344621376868049366753661184576873199142628817216100492048227639892866032915503926836191350518733746651713453234952594717416550144063400752439175176638224404198015142071859897632175722434177094230641739221508838362947351590862258471177014052155542010790518722207972643333658541117356697666321647645646698947174917840712777514423824668192725504823581605927890186880639385136378527086966151146200843994459757361303878953490734131537694741120198301340941049900996704048855018480477828086766210640939153193132034050608961962054710617286937370689329057609901470173950334952886945251625814756154669392972024140919463488165589537421175348957229300930031578230592722177850082866198877059363956810872028589315706402600012732479476085616495365922413534254594120596366178151187906795726533235501362328672347419634535259599594534205992864936188136577053170243324946766062901707020567244925254005852825142103016218171731089151312382547212670919415601413551718023685500665576911272775157128564759710405087332198920878614387494799614764299989328396709556399189191887909297590084632680791172804014461930317548617001891962830581074893128738117329217848407962293316807058407627460682249093825130376377650686260476343352140087206056414782882188605923413337931837810647904239579258518742818638222075330330226021301060448340509506640857867012654381276992471080741664980725482486513393411357924813955969424960508365572586435477599823363891877978140247281282108192749460129107044791766932437219480267625692688791335370469717305892531158999963590246105562447426765298711029690666282877007251131047053718978033454858416052330532785569231872400240921678987869615524142443478175354312518745224740205275436759232188550836372680626129659284025831924678370488906304355193702983445854277974908847483674611370594225631994006129806378679813286372844548171542899270421942831469436850629563356152297368694627505899524876704200829643867957319583582582203619956702573396591128730323099508592080647550857016537121723556930000481876890342054521178470385242953501264066047295598191468658982621773998221560781302555393541407383531157004320433822442321204864599263962195055839565602283291109497986869072502564786653026353840866684670018691803667600613273355441164263063696882933935256533668711637579260691057571035388100564041387014577029364652949244946503450417151822105777562528332000229120345593454456486972928765098212204667010983770079773290558296791866599738791273017738233961865925267169211630983860186656562664688741856180951005405395594166520987047606116668274750322349406028689742255139670414639627128837306653428490680585811549187348364992379887587601376857595476595910374009865659269164288933346256765392487287274782159013399010874090335620237701458476559342965557227636670934185640193909112927138593973830356532216223839256338731171962747466486145698554192674771569228734192304355515639828199027397592496677004222526796082767312385950590670071295153460930412146748317104506880256886334734876482164990715037387306372498085886520552964400867994344862987461404204866216463604614672271174874040134119028260441760260938774282456899112799347813155208683335241202286081946320623013785658172198001905203327553279080593612911796803456855264828624567033821084008149073149362671333733515722596605936273010736649958009508887015837580510368075855128918560211117221161751653695550205100805860846017095381563252860303308981778270443919078496579520686411712436213766870184152202011850082605211202801670446615681645496781422578208881688283359507832227096589474866666868783777692513228478704145832520297756796576783152511885617136868069415043145669242136077348904873039158191328455138910530595859902952971937939781600901966807337306573197969272984076412568621686386007030827303192723365764620948425877789306760779896272920473732507310422049399244090401913842274375457013461116857914845098840436193381295420225011738834950444372869334225972544456255528750508312165226497522295594339716903673476344207213924234867785078937697897226570754737396688753865094164210324541449205235249982151715921252587519063927409306321937862105089399151893513441169169856832264265600515544645281669178646568583316943996186264550774282611035503521248954346748292329434847790059715244175477686346036556155508960795474313630217344203080163965121376740120715654580938888820532069885322231464380923239789323971439148042074258425795516373924823944730957370058695613399897374221859650356879034229472656275044003690455889244004256006122703007324308451912881307177229320374744999223394555551662903254836024761752517152781010271852128451253809906787327385556190177020357262642175532488860268011971865794267397406857604117067427563216994161311596558614650509303489074036040054102618294009739183032258166419342473959693655393875986186616780309906923120084634443148475616008047324494164369836316285806634591463240397992361958491530241614322096551134983941205176657231401301115743946627752736253606156170771913482233987811590670706592385725681754254765161326766226054419548929287420794811076299151146475645005689468295106559773619082116094782292815799114057586232373764208918961114539135048734813422825311908001129587547954700939206954314319018946640373119783564310554065730042409655294947310692770341840364189193393739254232846913951007588906727688847111608883946539929369409774581309900601434285410806310729272341351809731739709296844748279321495484273084432101525814087644560908256557856147601423363564888426950451574018493633392413624341714800549900172708139205629665002591927835283823517927561289823400566385823987904449755985270144303456158985583360902718220211426891904742945418414918444992607122130033974990992365429425639145915418353746706369815383506256109874420914787276809045119314604118263166517028028697534513835432489193738646639253819509331602239440611415297483621233252975694552732026490943546602387184349527366902047856304227403898864819726964408477162370646017366439869881097325717568118365412846564694328506867655905624041740891101400078844770276435528066865538461945498740034082422310284168214971004513011053283758519254544806933768376312472531983900671957258656393361146573384568360606365314981634147292424819277928086085791626047212140167060730198290225135016904312601327807709276034413537720840361934199918161030576959687247632224678557461084903379541078389810946172958465804114290878602449839756579477051274198406924067171962558631483242662247761880178647855347786344523713712467344408598058924808939309237227954591366553486360531026468681954486965253249892739297940057019498571144759669915713345923453291608331564131362760084020016723270183925980112269500133361938248240613779487198600324645424358357525504649481222079653067920032051353076210599224153729095033314724312021292233243976817300323111756542125574330621057790826883067348918386779342506075924344337706851177678577662157833433984881536269160856385524774936134832795910222608310516902894008823172384447449588829296124648916824205605194087205848512417147636986699906014153746686684864436342542695977842141189579402446895956048313075216151267075740536237824460081676503022257932708384217585603046641244641491398727588856908235417772772465991263161138134393804368405606006883261960981036305488213846769514838965508326099255422774523789288266262585976146580750477237969394489339542047400990205087229175462089224065851605443315268691156843733341978118370138120367260892197580625505832741589519278364918324196609672224715968199427921685430191253851693853694332617858913201644797303879096715315869944044483884236169829045568396239587055122546982651192192584554447766268854890505110823568721802707681656538946774706883498461849150205320368721011996444531024318857487755755935196171656236063513475161501086166559049694298207977042726205194035896691405390658373877996414903167498807680939457246793556262654339526967434963231216704852178472239216109286834311019412758761233903719674466115851723537432580696560670809187012998283698267111743170873839680345830103312466820442321615381433763955303462430884643293920326960435952614251474261373331255694497672469835239013769250838013941953699047679440687996348154240364052630124046037253590988159407908287202106726953645946347910722780685401349761026898578234491415399550115878066349675504001559592898597534627376203260402333504718372766552550258985654780039223625912378400960841642543137949668042468656630319778111568515717734424239805393434480498560553708387578315032368086361444230444339258261328522135528311140668311702791914894065062578232158835398203547518376189048399367468811485765085010813235488784030735776441815477898225828711948025721132619824166018383276298674638621595908715900747987214175318551731152764140077108174929271303391460479862923246247763306190842434959127637343515123486404770371044406219022378731519796932708692198526784747572397288879718997416172906137133679669745242527249746466410928687888787041278988721581848526847313272103326098049689182718007159655030181418629600625675103881631677198584052556702020427121273057477548063969295087154237607899963404759597815788074504806472102987766161481655138560962469852543710960362247685625678186850149408104940601713518370345244014170732853182755587885163109432928718144219364901380486442449291315807135332956025014265091846698313383944954644789018628983418664105097751127875825065560484916050164773992155294017302354293826592412371219727243559954734760846796025701623168281409423988414445510191077159995440975904581367416016428728010995669377103313215992125120102813162265374590443714811458195333192218442261025521369515325979528589368898359988937990203765721291017019563983301374078709681741436070071127340302329895126452249827800651755400400172547496159785695233082224424366223782286929046583140311552091216808936700582586985855491434731761543557182871782697664363630294689187798214009285389948912777909344924670198547017460038657317148394353038790065837295401325584331600462819956779332556835506132408987258473156503769475426296778460727661680380934725900617572834334461279008710881165947545429134774189849875578200071059195335791379044024849316645883695090234785589700032216317683022479618099215051503012942836588896440506241834553294013494776856478653035315433356613606000975406325976557412253224615023429280831398523778417603553893096670546768547221243464345048728191263569026968872807024809020387800705180477500437759562419931762680533268930230932803314970275833483593203250967060411914318859702511124865796843904555589698635440714545385702328731804342065920270909328142753622090178361738642697399005256926280177186216019113761942034089157265091288497496266376931548633440773293559036206197857977714319629645385745903138307161459060338623177266463484903269225799101211301719339087227436659812535960087138958467920026261277645742286964216582835733809901874024039700945269193326949468061377007328528029220424616255082214342159729068931262429467240577877683092610842772657150455589888103152258702076512383160315036676569963198265741034790210353981833271685066674546658881582580281129691676740656174669266663652554864036104192017810071053270159607042260535229722590568033147274127577512151646398170447176307736831137916648723750626472052138745755271734031688037700344809224379364795791457864746667204173398446945265274894220039091691232095621412308848837590316845600021273076751042757023167941504916791811748186463017261568332532471178494829386783616515831593194992551051956588505447808942873696342895311454748181487299128378550871207134893421252366474254917572637282254070739209044398866764767141204586340498766971386446592342168717499154405166354896800253193588477820892040637596383093432139098652444017332158295037489372731625634120134262778551267710012694557255922733501394762779555961455858539278688409740208133856304483094310366017698821916087661181720374280586056612565864940553341991499305229233224178132481664554415367282977096289793159339356222549501507363793607438814697111328557144717707325670101211317591966050323385906415139227797007899065859607684873578093217893777991980415763271941103771700122100174585855041116322609244242447833655756297464566531236560612301037530667265442094709317067324122761660449802673246997097674296483296928897919396471776155229126516556721185564626946373743189584038523323414824521224919249501353471747092858426290501957138511593111791271374640572559941699268602380022112798168452663649752107762766177414102916370771971809843533384165782102419712426014317288915683343385232443581302747061506692948319573139687132014621157326374829306344002621841894519499754804328719545578685930772924041018705246807305132394977638879956946955606858167232892771824870030871173033486512773905744185791676396044182504758673337161686708446773609876087957997467825013482780350641018710863687189096754547823057070693992930500002285221111744929267690734840475027849868038925118466896912959101808380125903374453476320533250521965257128152586199077639255493526883666442597888009104997077592068396260159782718719607177288976814573168240160964273194555743851217924382951278030539053421815313622688989451459106865495415850280811862537255512417929756641579705717580610321415048179192573140454875571896928364693243448787787594138744679924570528181098666035940438047058945092439909907298213086106937444780572229902349934380380791849190289718218823712058215966781364045503824953841512084485508020689514206184861447548911391761786332567785610665063764419844672486666178897435952608969011123431478400808052863189382678101063644898139211752696750723881172481516132909778236728299723214888300913790717398427135968013824795352026236162090470288415342443866634748949722415305757805530441388334082036578491938239685225231350727836525719529043142192373597047910832534620708434648582016281429371023984947239899924021028725838961678446155119191015788474280659657140639331303697833763699027412061225114583373542590004219944666346811532893621614694833698102513603695199240128216236106179031680130879209291597649234169518111094596247651111138748306580594755712802764918608475174574592805064138774407319825194987877709301170564893646335590234306076097199897969116408854725545423482813229353733177004514252036857626320949389364149683464507325736103810761410951999184041433190735297253072395719888169716373167572767753744288182897141005199359729964120315280919139125083608244712334806371501077431938907251629505960203800789231151209085795624417134237672358739486030335100461690047529719428910448264767989446928346661744680050194673886171646655804393596320464543075574428979067163637952135956581800640771602180310231251577577138538091600443219174219319628948339797041513325772222790400838580559273567942989824969316169231465270170097944128877892122456747830317119735283525987747037177480781340074686450706887761329085074777782403715485986588920963878308198558852917670687316089060004243601439591853005411518951279819158425875941379874002530910683849492156034135264616473460075307366755715343917173369644403681599017586301572441669679388314921107371146373098486978549328899508642488378592295874976123968365196659419443009491681608454909978543612695652943508181518784375481861767680533143445408471060489041618112691920623741889112709648012757912729276305829361377254814051413143761549863122451581765066957251680856729462980146183186099242476294493052121727254444433286089139550870621550905951237671629226868515525713148944329429437940408634767212077037039201011563565459144271925224755656140321470914731043444294734707831149591223485986271681258830005774539748915027607027915057266598492765254214313367007932031332466282667709642360766862472361734647615179735656188272251334632118515871583835063023888972628233815041860554338448068567970378812602681200268332779681839757510357101721326070522582613889330332334482564929070492046203947579274405704255288078026066427696747012123290499016218949566714678366651855606584925744695092607875242119841109440573903054803795874523875202337475447297111815998108999572529319939276329107639374856354747704664109735906034652418698762798195740796176908403029790239262742222401252049060322540223932331008380534397203212620110039576306693799255532627921863920833926516515507680649671882894781068171264158347765431203139398385698215151192968378910177246125250060218995149639158758974768966012820280776268965549469832867475462803558805683316735063559571088009225625046213555267517413137353917299282374976353974158287543538441647341027493294793734652626237876579542889893266047773890163006360478009935288412412063378254700468183577608606893317496160087374280747824445845860001569245334414120016672450706553292578839179148968726214393319958185307652575783980757319917230356241019920938938714605057219744517085834640372804314272700319187268483314632609032030270000603000520731353551650353381556815628931358451795461182933144104505902364326472673337344262956501757083878754411551896168072122487285704052947724116334065347603995158246038818024121077628362008983711265952106512972396996845099378196896144395174705671585559715937624127690566388077835165189407818992317812694207272168012136235762641522763604076029104017837132143487891283144261267007691641791600858098440791880413569737012768992263842273824679207420925585521489472663575664354219397581941686175409252860098766144172203643884181489867073279137695054585752920467798991707469285245291815640662581917042833427386426041156099862703838380193599633013772363938211088771377709412854155885420452656275255198274570832875289355820789957474744358413559561223819437739648146233346456506637471496511411434306667845308471547237566394178339416841414771383404865558001202011111647099448349964254632923005363334661688035416157255377951449052776201283550569930560712819086928330704192134583802950424459672470824007269034516292759202350234906696690240144386371648742221355148314421766633436352810567377574603141805998707692190518505818518759475156454639433943791376836819783457689158430183757444109594874948932545724814694012978923855948460266599329996489497402945228113774901833949589071999407121652669617970542765890526337990317147872351848790074833067658253156267114483473466933982036003186415506872985489875864857718827405865643604374284138007995199557953607766046821679080372476246623457824878289617875655721488782093074626116406300104384585688903837241797787696880179321457227568935227642659069610921625480819041449923646836000858922165340233970034846166625236201549850090306305605110637894761706971575160855808420029312650890551537891696478949182946814369540320528618540284277399800589661790513404828194943657337938189423454251022358265393393243037442788687795650588402915645738464809328889945051752363100745747558656383276406587230051317143431838586763078817734976967171188419036391005487575068135857475595334893666474699230138435819717501347205046887431453353169814730427196155023621595432930489781839838820936979284171417163611237475900226419805547529477099667348885848992524210849650548212678056312246156581197913558537847849963890752357446111150598618506055607525294464451946322291795762829496974321025858587693055456456681439721768363437881729494364451774786496247089571900023110242174604706709349335328385055510986932777489519528573945084331099397605688014720317356865616325327926618169692851403766005033480293025135971245712084485122821988611064927651190961008812747022571928797931840964180427677406492594669241860221770326396253201125649581184936767999221283251422751552873584449126982340622517808488475380008737482288442966923058083371224963902231278717200281463946598284332603555571141563770114001734287229667798846215172371272884294497974520447655319319879809663330673703763828890769283647063794654104088003824684451438280417298645908689109766230058355500113499582404274968569939413691611623646539827130011299915522907490891557858934897746589738972469194290481500328550724383021546998153738322536200933518495305441452959588488125851553188763598247521746211639929072055476667870538854344718155787079361361435039749783642344825746459648668491492878766032414450212052450629054647473134260853985768107483975393074802602569021949977519752853341764279754958266617037831174022886304514208271757463600147040229978582058152221931888444523670307623804972738699655106162158663259735854466240866801273017453137423655144132533129141227762592556318739728092999827028568368501739119836095303965456733348966741938240634100097613583189999110790571009446923814626098289912833289151620152624688959665826293010207170264590861175727624959622664628635362580936854062191830925805012886590561131124024790084474059335904272111990323852933490461643018219421594257951622532077695584730557694933849375231207485686456160389938034548433235668841400533982370261205034405967821774760276791123617601641183266482709170082977990992864989545557107928147332598848018833939371104689727688225838233591107676119448116153574651937597959748199402803826089212941133616398250513692446972126937831570378418058118628976045638713325225974594822172272917307856948769764772908126643586005568225581555337919927684570637353341878741453945418778465639420183062191490281600824972888557963759297382808847641618334521206323549309307630000050358517494176379568752874374016652120130752881459228626072131307875668217587281602931638179256557359815553735591100223477959687960975305992631748815445657957991298672698675392509769459623161593076430527836657541832516906254262766110856258416506975235363559881200754615777685835777344017781722389937161468188854841776343175125655617493726248406250704240350398180760649771644345099956434047438648611379917101320103518369069257156817872505588367154117878997597222655156593455715190799904184872136923857149762933170476608432376077191181353792826474921958507454599595540344161321386199401201898263659326913926872523010173848607940090772149348701215298338804788499530340108361638108320964604678294281366084532209620369801191796412066873173597965611315996612892017714321359705324589723842081347013014110364060643398662485267243856052974418050506892123874068759016422903737873143558963776692124752911439904104639916241291990226389379331384105181237886682240084862212805628883047387273058298558670855792224306747757653313245750651608686210911332425274644424936421261864633241218525273861736584260664386027197388704807671341508361033366935234730064962304194084043936300700647266394033534735064411074709495646613511214331723093686120906569336954971154033325642837462420031345162632137672787693034067218465865534575830725415475969951772067728256282155136628047555122989187124288088411177634414967970935197603351296237912447492829672315995770925503792609526401591912292881153823045998089313635209935497596850827170159582082163205295870300227353999157277082126186549563784121200525266589289004246262336643931419942954804893787528156635233688174825763302984290867172801445358600450059520341742442069453635084143546743323051378154523557940558048022727774180561306504215140214442029381308621836320802092008168890730645245608961832129657889024123959416836115671998652616995747480947923847421280875245394096681526898891959141446217590586702304898261667783746066037580837099231804747761986978849610630269387898266363044628960290142140910996368189366637996955356508011001150049360833792406168919695364381582583305308518998078719667527335985452413901052598672103205494077073212411900420845691406404891145713149375925111755761711426243925726720337436321649232537118307803573436323558467291931539647053724850022864291568934079350718198387418113013750424173338108647425366559498846860854810223753481021840251275454681115060696607527866555898111077423131299148136881499807377532603688393485434666356326023102802246481384815480754108589141524975845860606355571230476586243421864875558397103696334633245433266383842057181987517082935978231930203030735653663679809291579606465893126924107973144359364708412175114220809333246162479961002472962402234240653543061088415250238672901669778300772868482615293851608632625676889100252791466373528693371114630577352441838580768167533248698076065008154304184544111159898100565469468149006161144061117644294701067372151946761814507002747486815215286800796782431428891974446364015518693559101634944553979992491382057753951721387116612609236785705113640806246175362832360879034364021009801678542478962114489077702593168371454651542368368946225231429143277212241442120749294342123439329328584215738973266354914786718509611817831560860724518505684864941504456926136377524444509139557324024028242032948948094716138241078381323810617118699870792448574594030871354603881727923304542144175432700607322396948968968682339309864672767307403559792312307263057303748346098186040838738304630977716732522510575460800641164263878532025438443185488978718328989469322076593916273268993705912913034486829108735858948557385907941338509504469264198334596283244919905714539761148596674437647123988755864657654591126826610534801881092220594130103789093552706284835385717837254596244315590366984568202884089231392509609714639962629671649498765813340840419841310460031855210337838084228043273277272703683187565719422313388632273981585613231621410799722781161041239548979357167193024634066742097417942125128857352830525453398318744445370577498115166928143638339000215307299304854918217268670135861008779937381064951727883386130957937329800135705039939019776671354260790698423436478897629606276530940336096200034408020869788119078966930754209822848198625447500830848536281258371361525192908331841592949997772004306237969544353290835189002863702826052133188102669188946069480934211606369338051489981246266587912656225327621865006848707942054129543961833056011533482915995955821022943550861372005859749291053133137199020362655754299530026203992905645563860121179043558341677861368249652101856302876476843627370403161330160313643663137839392950546487351091916719623876727619446853419435122731375461090190290064847689035139501604065644603973197098519826493576129325842973325651794099604490556606545433067552750482864512760676953722881739475559950587544719404143810939012384114693271676878132974991287071177432090968691676054206711199553553366118654992750141203545850167049638210058285424882409790393657602832796141279948521436916919047557484576669515773959531296457195026677621157494850410272098657893762434595484591829238558710278317668234768282855340291561630346362604307313325302495725173190522474234053816667421753467233528639407621378802156706278535268511111078207525927132096214242182919272308876886897607876505077761372876941298268814949475402012089216728262517964850679077002838141387884310267649192214937744246255490314697730227203459508732799328907016425785386521283066341705630212042113037256154912907736000687052233103373498405637248102352442665564233525554634944162817117018502854489167039768438504710760897338655593661658740561420633671351254364211100191678080637601046511497290678735192151797451971956245449409355516815038791516094954509381531141148848965020211739593911525501355095515870814829851506948504873880011449209258423278830264948507042231129867397992225137596286329531249352959171434131745463155492028578518865074057514325234346194820570667638154875519142360777313827620177763381390717812394300593915601329021638933922050234282259032574891906611413806529454726370938075766065971738227973911316984701966000383352446947901197766221049205545375321429159490955294084763642117922196877458168699157193623144616401326932869343321403324704124104298795097802342187867499329956053643710014789674384209749842188649370763543722288406291150728410797799072682357300548284474581146793391322760508649376455957521181667084885706682865703227415278115625280655231721355519481758080034553778172990918789853260885378969751185066728068573249023530178762456306331462424335583057019957787544450578316203028692488490346986747926659013138297822436903834183606814295689804354517025445028487930100297431994697582839958041834386172092447917145168282606269348972941519641637068513981954906589650055976645617057235725656730897119667212203875835905825092021913283752291395909686232894991786919651436185591287025717313089065631641047327901784572247607673733741569385647247653864944571767342716330824099779990501501322884007225499091549302485098764972224421871989015452633186046780520007528886837062808320198370950060795978950235608742297277867365407369117699763960244976886862685522364353676128724482187673861213487786673753585901332963951084605527494049317640139669827956219857791984319753352083881232807187128884715377359813527144827723757519354143076527282028952537811526787254191441060887819635419180004174013696603133969528136652342995001488658230374546079948985871066976084670661733271495647209741012346336275391807350196220993894895100034479664553775851506216408353806691653349959630470251301115909369094829258668908245512132041499557314331923682650099407206516299101040063841173041067010731299618280392956361063537175974120104472797060035967370773212053687128625326180819094519049325831313454176472834327984072504556859194982211709058068059531209621770314732170021924492532214709395255786179960112555437842733331846230288036387589394845472273034488908692424977764228242915214395969880116497804252142883925907655212186372707198738291933565021719509590805680279653686373085694096385258771701961932410817143846922154622436705797128590930103280529589282186675440010781140151543297645513073085357180618864532772088001805500822642816180252010782078266630523946750599390600670354660286164633061823145340353835469732601571274625630558274632154635081275918054160935918702653063489271174345156269793638567227412382507978568948109616458882298842796413226101541617076008217627072600384913914327670417465066490949961337422136224188926427416266261022092458400415226511754322340096396917355018424953709503689871516326941694256070982343730285829422449850322683248059145839296073217372817491556139946099918388152521204614215656585188909883344444226883522527232876026931935584205616589169676930479620527109818357123882059332439134289702887055285045589194604830654791979863469482972618760087728633553251902318124285385240147164214817815387697198117968825348821250725690535749381465703270863550405328753755413736844793274168147185688948698045124530331462721487084398689780789530996661973423504039959110095281446172132357789581177812222825142179992395119435673443866069356281842673201216438998457873354099928344666769843195347725103821254288942616914799780020886974551675542119339675019407197331551983364966965687354171774215534515616957640684761631634235735203887784159058499795666146244976420133508182159695508834290411760019781065001794405180455490470852517562217874444817582817546249163020842830285988751696555322419675078523352776479765764764710029652227334913643218294134740123189004362458016332493773636397808483598278602184832431761998174389196873310748549811590760824119219559065745655915992704913437851694036443600796498400156566533002303384472484877552128959955228162710182847836189994212812315595585771892479142304019309601302268543587742816141069846130594725345233406686112895970185125641242489319526561089036233880512066038510121644992541337023754997742445841502810505587566942862443961870516200066152724167204939976724220994062471822627066292803644355765949486930006345645427129960209595426652221392589760861356371465916001672121239600412940284157938869839861660183438092722129080423385261082398957110535814469562776138963427545408613770834498996054607211514582337228115878107579196246812958372801199193645077877389329141838655475387495897497424451404871563920987061940658699525777496888205684832514172106579280920331037941775884372138833850190188562072281966613598984882792715388929993122603379731726699474270392118640986823248097124933515344250516909443703540756582830609564177101898942882386070899975726662446776079225970572191791770674362482485903690438359736147486639730409894402277062686615380003497305531728448584648718125950202872115114612974884889080957540586450000234675963335401622407983353283720215155466298992488239710476803856729518069205006825893401097897179462551393008855167459349607205421277228951517484982777868397247638197625241918443967509746500484087722700256942206360692939115624655652829903157726191680914247593847973128556448371608227940119889202469872361290100760928681010051702676488460264446213570665056579759684224101375689845388205533888710814516656804379570841558144570428739517714400629682199744187001584871783150745180089977877435327803066131658851785653031462250801964467861971324282061582125439963404589081870567453744173412857183352769227743368570769636748922353752300325649856719687463872612446970103572166089306946497459872655652327097594681897322803110774258064983696324237199260115815431945560652441442568838373818486190937041286766539068311981011414532659028470429509057033257313090472632348548858965755902425458416936299180291058944603590136177798328879774021024327376864417491392401262424147194841848033237189570056784165262535019300810558942038651379572249212021161191266866293616539094131361904986298849015132083919263669950284778592099454992590236016874351543503645234316614481311547950818817685824598257009207438485742569687427826399298640187371378785521427548826625925905888354743629553426421409671849784851051260445680803732641982390120773495629684067362412392469666357692398360187145885248979553231734558306689052980522689841937037952585551418246178955583924846657557390679796909234522458719227042872350244242481873134476187509885777941208009023990080520241052979487023949024883816709459872770483729824012172303779070465426717458880923104462964522221078560560918883731802841126211595051376509379121013519029618416496204248882819167884532737513616073676162284424836655629720940468035818751947407236206164099216809193485091817478905420303193137738255211773938181637775074093794886761936724973004154604606746130006779696034362465419553845589702346853627171342018539458769222707938891409212499512058579462402373231910354068370648729246093042923825364811375676391598973536722535829212784191565433383358959440944647552411570683871957530539812483193291884185152341186051738402410547856994230239606212243238163522289464502598914257125769135663776849856838339770686242560756097523834852625971020141539969455485030384931661953798129961535957791946859639304435871976851287645691467062926162632266154176001190758465421127516261206390061340681663010728190456703274707034736047772631589728415257851775019693866152128184149136421038038180045978922501455657039061770735565944085491201186322039139234715918224600116897937961673041706089560402439678824012574701846754086584183372627638769266372485136124263823776353073214686930429352140702827313864748195481202876703508829782516284155129913590644096587116797876387767620979578401139480086138465956817642193855465314976275496171793120880649520340576730682074536396533725264743856935939899352374893739736398412653753621381523094364792894689326793416728466352161961923772902412597731380928633866775348655269447780562758558966760886753574041165447059085147510370420111114941430699698528374694561213155132781991516125354315211038938187966860839712677725362512484087015198896215497710832300763028722883499317225836144878731032552741138893208476770923162102153541337509834938316933634040004459144798296805991272845326430610094417955331920347330069635290350464680926700034057770759738250211052232307407622863260762080340042636700109178705852090213763734528184721031864653025699969845136813547398461968916746660575199888824027207877472071723229127420259185353418634282854550345989756582742266536341331071642542716478888518478572107847696887085787742960533627875882781964211515225459197443245518877371920009036526568470531192217449571757660855233759288640124968031314697226859798530122369973368536681523477754370241631272843411779158163742351149008300165473615089326457631802828062451873503845628499992300667795389788988854063971953533703694838181297977101935200898530215542184498685793631862944647990771380449774991201180766891236371450028260093820472467501343648973336301216868833000909922022548930292800461689041730476331044490660437061102717635091131970370467644736902965511511525864521582375720269860130318352575339256076897602664471471970204809331330054690148129240123533106161746339158889472156397234760651939950008367290638648480705420822692514370303303142702886757306310494817843007232937811001905847668622960369129285687260115055648712361084700417305712500140201898566740085408781661453484169760405101830470059227077176862140238625738738027469178852313099016649657919911203980707273768110070089610965515367132964381308141996608710667426455912857109885119778052095687677293550267152384815069765979345856402508628306358519360494261383432911801333844113111230255273903183593320148075248453300212077182502851674792293988743427149883739912334515540076386390440539733382690782430060029965177097615844295505484560095659620003333012494478168922771764816261633349820687480205810024109444770124731730021366284492546945960423719038355261549186828385808300589781183186117773942117404208039273785044377298844711291135959743017344797634442554836572858260507493504524121099909939524801325570208762893195403373662110668058216812940835543873753040458882615352783427868324677326583937226215299045415659220698994457105179766362821242480385300610391405837782573649800553185535459096228848807672077128446405193062442606068571204622302000471485792674082587110578561343029272573898664747316041729289957642193832013957657860233154834059570869701215542410894894162121695610453214177403344567404370550090288464412866886632282586861108554753433106033815350535863849430600349288465961311744075888563859776735130862156847168598240344040172026819500415899482139439377596961303297609305610544861246948471325527938033573368112292490387828877486419799316455636141106287970226491619792003914870003151726214700508130675790385604310504051423239229265940602632775941669109863500935339720037787424107442484557250156102911038635004218572222408923368882353105469770486322792625033436282735050014701932753845814085534360257099000903231770253584729307619357001249015408144665574288808034989484371523712480587430760803061040452283695457380013554590771757492750780800392620240760820978483298806205216098199287702329137379359155988138559976683795609798119775261129207488689889764443944887187387608204739686115588231145538356414071878794142744630945368853364198549250482551660694711291682394289776339004221969614200104015438489469707015657518338436065783190102009488238620301211521827375411834686381950151069960253546626543065945283841690980976751624749721220212164011060294762764422446130403259846589915753930046900565644541035540455634721916664032435094186723999556170323730382524974830837597881609984584362252434456899307292832428430290389905183105296864183755910830537504182667376138404980967317350486705485269571183733202855362126112222245213777510033275170109340382524039445133337361254964658557736418933146994549558634822389829814751588822858510861562718506046240951902418600982855432259177054209206817230616909896049418652567859853331668065610860016172063806807165135604006416690375838170015965395615654539098245470363825163997558667889979627941306747462037530365344153277524726075619657080530157453496763130255035586064364230269369374828261991003266837794687911317191910146892896615419732269039383197358410342150964537987660701118755738589787582518383199711150500980834830743040325792628395946507848528763723433295616172274583650324613410984819496507728439716584551407930560828289931813253184477208851644735922043005120212021197667049541120634735317178286385234684594934505313787619498385617629053459577345949777585647337850105211248583674658673687577127795360137583959636180825567596527317699303716422716955578859648915729071371731517750372304235532577912904974329800452525916383456047108929400904991811899096576966093454379672169542890821351359563263092147529356863496343378572784255218832852699336715844789133290336873683400157582745622221537877837680586738636777559658877884289936379933204660763609744338241114969481154044706767864379786556797942106082218157687528356418393458626623949251410435687730891057763001679716313799886436802941813731248460084369038222543260111752616907036268687788776022919926925209402919312199411623186076385818477362296113120226545099140034732957746319073658877058269492690780795237743906886506893343716013621979515921798669287089756105386760476762219513831235276393137141202486721703458360425097491962982754567481815812185647287160840203367787285689566543587903063247050931151185510081974235225513955512836522714563834569944582332600211163833914967620224244945139817545905585329176908100893559673143850416081183674330761171456221452427518389854378647834505804662816019790266423412869359017473362197395867870523774887280272253971185232695600813374436363126438619133157908667543279318884046373576519027291046650690055831717800321539672206010286875676592134370131546259321344240670290591450007434385203752561861681533242828126499107430349313222095821516108568805538341247950103304989380572751119326080308544077915446774776411718579571344097056122175335278208810361625262179563583490341295444505953813894641084472661414274297543055706831398637441104637788859198518084873294639811392897465209101448287372904377779762420742957801539859146291659112092256758143061460445966014791363959602293420263824480476745451649904410946842437166260285371229119926697974387301445384716075736639020809463678587461578063785099291610189550965605246238081794006718646404633817409931255383058358175419315326643446372216803475263677717012088214413498172304855832563131062807040789934730269640702805142037058510111977476751745092104058201303807494739315694347945090788073093966974481148918640621438522118775359370981825751150664830021387991971677371590945185874094608416688364818625218104758157505977144505495067797914179638459736227836967891655850505137570646084788727870758524913763258846462895767601953147864922508012376671212322795979396804998536256086544609526072831631516659291974939227167615817832536001675077648381062301902145095270530457917044619344763715031498610458720488220722192511712459274571401886916785003556001110087559864539007871983265960791063876157724072446703047279660041945256178691503329646680849030196687151828434481728605911755321910098709651536931962590823258695676257591974925723902780024695601480603424598120554552730105049940947541759814739905689957280265176697744794095423449875571998412116041746791913279781043394220176218587204973406015979828353669646979207140436732071623087892153834245580821971809384960646091499428792856538421792668673440611375047556677794388206926181191918559294249183816165746671381981689940984324114193055674793034777505697929159344749954126886202447501593939786391996871465795917935240869750018327364322468889151570879200388881023697847020966984442024107430043893572496421554491596526380265469435621266138633368517377800218012324640369308503128295528552863266425587776003458763008540131022739748778093387931450844829507828861205291978376138598671435293047375766957720451881604764807919020129109922022982363843063623686985010115513889597536329506972800284171915605065355329035250758060571873328048565585542437436229301461817101286626059865330464065757023781811069853357697052930270445493197199776879891937918619605296641307657985417497997679762936640942667737032298241996326432288181963879938454272708379195573102190579400411663151771831652547240817618334394099604281170326148814196920688725723883454518073530185163689596038485287496744884250247061292878887795298594842315167335748476901851021149057476463943465426713186683915054151778297340028385289644652187464537384491012542962926096769352141642011728592052929896987592554399329801679054699626659445960751704904221966862205711683412224257829683324019074974234028241429817746544076721945881129966325531677312808819815348840640310088080459820619689420066278015469272139490424242299698564664246936754065808664946064618412715310619096163996250629689197907540989392168375350841755508708826590429914165469898284502051488039632878237876115596836577413186012495291292716897175882496223662639048064055259341088969953185189451998431330924474552583323792152274286969383639832596687472477187671291764275892019087170389067127462166633528109760200156183782285192840954882282843777101286433539629404046778927408656273566835815009586139376701752857202957322611192946657539768104336706579907686285353586951128492528178656275357210595717093667556021564336952716698477131154008711963187233429067552871525168115700395157743012691627671485782568542359364030122442124610830990623405278228549134148470106288784611083812587611520359936425464385223707166177100317561493591582054983705525353411671240970186324637139985106357210417250875181406414379914446694810961778060604769343673015136294729657638738304697789500875917387856341695715844402115710859396018474433664186231060644255133732309768582979313217434676948631066062460321646108345056104466145419531798923839156060228619908917401919004513634888073605387072809480370151410978534912030765530671372540830345445055980869441814907121440723710239776939971365400324798627594105910669402171734543876528320166142846742618286457973712565256240982928133078577042180989312250289145414175567441169543047455185740616905098279720976771196065738369676492088859152631228032671145796868907799474075138109660041112416439288246343603390508243307052273275177070150790555087147566402582751269025255879749884211859775141738521639670550594635622100691520800252569801738778457328673679182441482993269834044583663306021171218218163969522476061118608625077590704020044047724763986366789719063184998614454854351720013377349106413683775017881896289785677868128056966449980157961496777735582784787916211205250666572680069981765508688004679021206155693122770279480827524265523770014053692441625756780495913509018836457344354032578157810005750858875735299322044334319909996161433881785967397288525699714383034994302971444757066311048782442022608479970722547456163687781892209240620733316081571209693165438448828888147051694698932993024132554338503236250946708430792976390888056612963104037278739734860494360250247882848486386887523496887942086625631613960738985142809116972139897580362672140532397133773339950243521937541163757522410831718721105462985866242714813413687997883735747905122215700757795479794792154110659046736685440740732645632087125191530579917997623780983096863907549237942114766745175128129074423052820817896185672168252441552764929899573949932272261181695625131586259813734762607946295133180519110891666107099630642540843629170798366253790655578666271309614771625680324020133254586778916564469966349542395963149044029277851354773549103173613886526399237369386565004110185273734694318886720908017557628186163662817999616246757487904573224281251093875448134084390341906727013374277728536637478926523157250093572969450224517400301639355556540056528070275970369792134226006287518645412531693130234042442335633360016252757376997436508488928333575413791932566778267136125395971081137026204653839660839123858393736128476599845649883553600298664420456893891120949359133408684852256425195220062494066834922084947297513517712048230940402613958576453636805106523724226316399658960172235265277941567303995251588455481516686083259554957745008119997144898736767252481574001608754080065438117901223321779419434357109748880605383654575989477103441784939921554874254661993538236961446066642025883670605066818039319529204911696401452988685516732577860506190630179638270863836435058402328468392822598572978027645535527471986780154135629176626656543545702658489169090834217384350313458908556174185484592188266003725892538701256439113757627943712371320031610902545565045565055556983351578929879600616145874892444062010495799881324460703892134941196236714742934107852153191875638529200217004901789064039088388705718182108866064017312344375948198260444192824482627251561149541185533145941821733755156998489520491970571826647912893642475870357730507280452951455673288485421015116306114718847733435153461658105999772820395722195965377610093684459485360626280867073940864412351325329995529242664762763331390837964666599458010249688380323843464241944012865410616456453506404929023765863780202761451321094124629027566907003595009695754269182268157239310289244864764333208498814687060444635634629745561143336720424775346698061827610287579330203619942600335695826533656399914145607166230249755077638900161863625516094211977100181401385242839277102436964284792895024167230617502923799076186538065894775193791747052318309151562554341994809449407409830292006879066534124915538340847055923800770412484650218963405657566793614760360588980771506992312268702295532771675163483068265123543341480456529337258174951389170220654230285721431954454905291277842907771958175429410266494370248832016493705989898143902377201568308106038698053171050354452051149410760022326714217633484835971487807128035378308408330976002174053289003748390557223376416113932007473265465419122661904914045524334189205130974877559457599740081048962224640234194794450627632945958267917713127380796004402657394600167246051400834189188285696634926714690175388844229598552539398454860476113952745217729010800990408782384013574988786556774033939319949205826633984278169500482130762345033078477318179698877299287565185464404491814595009323014605906752712730835906540932316915774887153392668373292577078725246918778063548717335743210734561619310680471994370631257660013666035831154749112044237761878441718400635353740544284692234589363588922096273547670153712988931267312243754828042682032388703315992269616109137983246697884629476037685800536555844458298137200726110927934171128763069738757715031495844417148080792442659905144222463701644955385697341605796337982220340663267980652171506584178687255094768063087238838587280353081237138450455739209311026055693206629191109964325115773465850766180449591993126708850989278699754840669654164242885846411293291008227901493688302485440142637468664645168262579541841711010514387800728735631526696642900404105543148242319758091657889845605899180865956427416076749656142748324135828936145941078063549248444878202327640957710718298300863366986251701464948380606770333805245146947976568322057642067942620908525799507305898059427506375731507815150803819180551865920789534828506911983835652095922703500098114286267737402146223609130772424418458713333112190316573667587253963788089305832107000486498895084276918738272904839911811133599121911963837075721865877284065941693324363939531785463004437976821976845815722031531509808855296176588591331963695018492759319251370122599871619075063549171718297289732412343904808230931596265154787797891691041038515126992426237894795854948667584863956092089554557298705539520489106530000082273794991303007067274462850917095079317757301499781148380757339046386005824633686365401215892880806758635624418180360737389411805524316076360280362109508028478466779777515375972840684342870458904973678369606282679017565367254783114751226936262031096140296657863241930472585877242470205624551281597354739767403890326553402816201857157972494607289068419130546985967751124446160567091288447694314754672594512750289559588976726871868044138025174872075008262173288486108925852184291348936485284912598372007332729095831808394435298562668390173629651752091636883233763653137083938932147626625709123210358910247619324732179746685002938918363598512882569917014658568780197722689697346918077100366607120565098358275827575417450962230129161599572223149402683947003002585008870187188160019852599080392072804876248452366631658046844303635766445749233012029104651912386797971930745046060501288768206508967906610838492545767865079542273937512575313578913708177695381885929449855563669479591180369937187140127959755664332694061717380298582787665295074787758500510262347537801049292198225350093180412774425391852505575719332743096949190047712760976951239797862166034604676822961776537230125972854541454071941166977252664580306401132120614011778099413074971741772009139253969855151022700900623142858907931332425650802064486720120226499755977581023701717993859109534310117028545506398587339484863866229174393446691628745727452012522688438093723952062352890082993549126724928017225453356075186093166963714681556751245529016983830067008237115250047499949190557892364468709461843107569987144700948429159420604548307471552792925364061013010674442898433946309128792089480503328144386193326382842822421768583215679405425674338584282359129846917238289703537659304310307484219159362104148557527109743233804285191543133099465234775650141727773180038272510203796219133525004198598992574066187621988070985880450921221603129121613381820208329632550866318788150048384729415599905576442517854202306501131932832728162715275387804150998902736188938616435568534369161521035167369525505175898540774521223653307295525732543963524041860820264811964911203410338291899191402686300556684112350392898480249050486082773278509403198555381729205031721310937098920048453257091486834739518794356951751122005482293970153959114312141615545496684228023891482203833281605913879898686754668380312273879928826991476393092147126315002076431166665053316748297131114695689136702965483842688474181147723874436734046520009129985456669888800799319737050170841504445719421510058445807078861479936532384498018112182587347875819036958698238806785006593709409824791432174402830596697845170609134706701637766309849129915233221416742911895566727721827357361910939132195805205528379902546866717243045915473812201181175571573856795516819901044156616080295062271563461240916313953261983335449509834792490428675711209949976300561329120235336871099450473628458845321851645265228044645020535641336110091850661810803593262102799966167326577765253477512574351040930006876659874984662368181089819899620401391973412290889490249978172203115417850403848357546522972213901065593930917522477724159598403934469070384476610177819974361869024752336778668154155443027380800730630364659246557060483854192188962152332467944730980809279145392115727548266521954716551303746901364713975191703929305443613197239598416053358670858896278491528480619939756708814301822497765743897763544739012988554238348633757611027473876943181839814385305737903004373889759093495487296623625497803688576352809575521797280319972604441630115233480494182030626428533740372619865219808668331988473950530634086519248635016676501439645189777928639935783848649628994172049876016208846620506802293287270884056152541672610978968094217734205089232079173936549060802618387422952746747830172116853595907290679148895893948752216772815703904351892687221038134583348866696159995683932412084928680030444978839404448768122912891799758621674881692411395409472732435160347878584415087294297643984156077161401121721852992142080229970076116105355320692973420862845022972703406422035182328186615392471546451315111863417284141719019387094987399688685680101113313855787629767983302726809174084287107049705470414318419211787963283187584468674070805523221290025262800189618033911790815762162682752882734118482941173287929841598814647788143273763150615722041215797525415773580733482055693264711796031199880115389916658467628981294367941763899155692606758998333845674165326159380605748673986732722056908343555762199022681981170850892699246214136800513117352845859612736787231458203059521059915301909878542139294509411266519350103802321443547524969860901700061931927203644470030200741990162991548330841930345882662354782104140944177341017773092614211715874259163336601164356548128429246552902527786550559517080609075744244691711910878222419618472686710282564972781888108114107196378934608514699661248777677952559982077773015057531869348771530316291664220190523169340670776600702740783081174270975858804147611283454392719207732961981903554924005751322325509721729312648612780205590661324101913195955189637478389782460104115547266418811644298871787835849463492163262647324233808156379023977350627489718965618065805811902534198375049163872812318059343155740745166964314938945112157765894929852477556932934053841411171787991063504175065059838244639203779967796546109189773714400526961271778398526630005072634298534337273228315976215193376508958475815179912945258423296831054728801008193270354660315972953280219341496021048647780470323887389087740853513668848199710000882394062472021515390671732421808615419084058306117496241122332465367980020570284861225046554064515982270693603073122145552086757360061371246830378688227797306853098210067143615072985741248101032766950837510681741543449795495137167334694895822690188810501077486613834726335343471864204965997452699110734319420712247871121024664253652483397775374158527557829975379568645949035289474979819638577052958265838320608628238898452017003370074946691080713186126279101360097103523895279137215013815280680481586850338664790368603384896697003581370243152976555375711107760247429667996103032249369346469254244198487352465390860420900305348569716168253691189986829666794650529204626459466511323239430841637646207916253449084564466124204456232875226921157296043029614181111846386798679291593914790396888234240039337345931917239951994594602227280334763735746250546531876871878554793248174292766432664780079928687854688706761326454867336079770612152223870432767003136391668093533142503064425701100074767441819361959183836832726659043490162356948496160143848536439751340217149950524281792530771176525711286402748741378925317804825665205705039186113523639469692636729654007758778708756584436477783875641760020447382361002186940518809044444785294276430017762297844934058000350846053044328713880274318696213507719992603061275462477915865815584177573515143914934417505381781912687793162225351859235496226102264126097156463920310799913606770300044915964522071541074284682977083880100820957566616039161569379835958367950061261119051082147550442748128553618662630352561078206769238201613706519830432989567960389030770572398167775643495707146977367050863893148743462415952025093299368923911505443901292661712122055479860591800403109355226376484644822823905055111044816627995832367395491168280792419900396768169026921117807208445622903965597799258104107959481166891910141336694796722075583051210169978343204640661436395162475813939563196360443445623843468632524651073487244718071124112957779841217370747123219181317988252097698644677613138425583910753355365401251938061244088035383785397051442650366855723611405440664108491241050029109196808955775760078577722109183633715908792927258893202550649297410264252417436920263083303650093363238997430930971255718917307403662279778479557445499416378443276607175605950398284631725798767866920854053981577635101069110697739848311809083089307568629459027545575172512730083979141298668324414916094453219467519681639495357721378194789863329289083164592156963239127804627238451598062334331470009722424495211165529155588153427963459175998083533661723107164496182020724861832645736361993379493878901960146883823350479824152146713337367044168868953947356840025347484254969218336721708341072681199679147212289241087648861732499441702079120984255199105020074492364952187279277728569881680337729323004443900341716732811517873099077212903099823223320611539334476346442628862842400221708854996489979822118138001784341259799639636633634279188907210784445882106723871328830352518296615468432363328401481052212821608005576234034178100891166042458253451951073833385497987297110427394876763352843037540145562177657054972992984858917553000445388856401015509465285198464434772893312015219969151314334507382267565074321875460824528986962369472848062517936015674806275955010415712222704663947705264332706787485055615493438690595688075585302978265127178243091295421620351361360407492889505367929883548379103590394801784060397668599082449841756840673578345074496720539034023028011851239468367300673931148337690347061969279252522918464013510525803870490300626149751381832313831252949348864557732292489510027015216248212973205146036099317697389468039664159245154038755664802135873871808418204206877333796706906121073109544584527642483191307054572960196921255795966787695452825131334647680954540968741372844356546191391480442991401013335750705981542640650064988896531097837121430328843117954873340676177706555134305583228300769006448527627322457349932990923200155270630625008463727884145213633571655820540873580742725666424244649176579818935290775309821428132381274125631221698125333601884286832201766021145772342727531265502248291840160327739054688770546606164381899001416302410331090634177850113602305436803825438825234464872766782672122855245369476865016491550847729902078768286357497471529010904576771701730023409067779511798752406391198482246082913108612339302635193975835440643514006707035173273767814066838706704147961875893555648136814439701398200468145502702586442617934690435937700654161700401030416088266899021731319254920328804702470537671843596290842009641915407283222513795684171190379218930411671739030601819634704521934887105683507645931098466789421345578944405285718778697248271819782390822592335156437015219255267799740280914280589973621081785849103585058685419298250100522092666713373706767076820850122598603058205264629995116276328050589464172027921117577383734775740343117246974843899245483141571434185848728432472267019003361313184143880794070299158381208521373572044864934623441861618356692656984475598119212468804002106219202278690503876658937486933396190053706813400844315048130974781264108345892445384916312428316531800374990062689668923701445265837666622788064363638368863826445853097824742876568738440731342589972015406087443314860003301575543439464393815089596157785228371107742437459264548098134959894391700872272057176401426219597371319498456322462962006227749089959384533774146219937787699004467220372610900981761784988817040650953890154778293584739648737651622468589513582040234098248059308041151086009172345012559809851125375830509994247160669494719996053664375623603770161937811592258648050844675774572316846007057973227537197734850465614723050816833439223429438382168625442186350670676310408475640223543887332538532014913549256175198075967215133433167196221083054153637519402218919231950292993460737032396346698699675351046536345389826399606071102533570286503188037972846037181407503691188249351736960551484788642452767926121866201465630596140829272928663373906635522505731368509605732692966899269304379944106485623491452697088122397889948478401708459387259054027214322522584373902328088397075762376029110165610427037827889144154331119730769574356159321395559462788646775810030991553591370253836358691026681687574311663565224402274142331218069967618459251814102798001551665776770752817624101065582860737141967099225281924195241467922062026479208394089341720756618670950353657876493810147553010932961651832207177303263714377673761824350403259130171604403798284637683343262792972630471045503774684069361523113384594011460632020030429787612621915879635233958493952392932495367415157863124289265523777129575242478154989852314418046392778835083315899213569608080091507121415368376045703845458307624957399133570046011942136811424610674927821292463909707781567538927396175311420438398512328381531537964492235449794025066242823406384806148619434909119432718738522127227821262571607085357470388938317788087336557995817968348873271788554684865050955325149545278554388924990049316789915580342279730306824437103308363831671394629363322056350351140578322955342984033902482029894098226106466152690015348029998456974792214087815904191666694153164267519685105376512375376504923939575583274969662897029390750861097715770393092744218505405384560740114673882266199390966269773455466010085548629164634642834469546485591354843380356509276699736789874501387612198375247207790276303518075424772438293970529405468128898317910052202486243973378159481230908796402090489537405765008904062608613760836787920560624121584465930997342146411292001103964974084207142385119047593986389647425203684816706258231183539345012695801392905917119725719705558672945680798788923154435226671379117054046766469223435117634620159792875024237304771479902020977634237617742752337618799912168692399534231435075974817305296110598448165275766917683178028410207606658048893005694994678875972247447451999495245245324788440187676435056669286141898905245429291394174477890053843020136753681464102344971643225625106248485015862501883554877736042864460746175081282730277390801810504313493701140906271543159255141843279539214633634425580990536436640658046044205755141925324497178151173194868240482200115048431056239068937994886630653220083522330413818478454093663920415498921947882569417962699329922228086112545370387202827776486718555145820024315799712434075695776875322568400128609191333100616146770950016313538718282096428953534444041978517604392601177801946704756606960699261658944840423455339641992958663395733920199562265733676210371527359872870782558225058140002994091236904824720662203345631988880313449455003691435002625038781022435212082297138442660331265746646668116001493894472834548975491566817407010669682098884088409372483597250538979165385178472465905791144573960733232266580359911057244254253987964673376691493897889051022703595396223464732478440920445914393896288732025450692963915327206369701011030264854378255760343247475268656342783734623841137864890550958040016199253386942845537648249320322951776399697193410509734566008501321835906552513163687909354019915978743899405678029674251571273388807998478577198597548964596724480450971013267507968638857776812615509759032262634166329520829857824980007308858300213528629417508363232864004186180043493147527932009827682410175722089734686846080560502795664092164707373234977799025464906412768918396793992564768633417047981678716182246583765921215359017253124928513118599220600084501441233822825693662588455513352900273568996423503686077380815787126309274425364870806933854299581614990135056355836335361126822091539560706970408487799908399307138840679915306545397576076768004450180993553842603518251631969777415170757454898742508948835691381041542729994451024438887497864274102533646561701074141574034938237604419824791541524538303211567367854438925724968409594456944136154169536529522334473927976245908801027529220863513869964182822868243039284103267340046517357892570398341251701788219044291472149328825705610782958327202573634379501369408246853968406821355798423562420207822724980846793006106589797677997916914621814683568175390128367654272799993528271905321214918651487644820506624461881418931637060554151734663225066114991342540698315145809916522341391535167023244416764099598996763244231974773626724746065084663273143044793849412703963242335512375344462342363935410278104538687675074693507330020215434931407339026369725733933036712764889272717682445046346856635285199638099184235709736066422588987841135547925676402905581957359537003955056572828496917185805853820281414032232142586477734330458447584569720411518515324178631603247843169901383375054974737614412203374216747132242505800551678296557534222146937446007144784380183665214757723134553449839471833211141106422039722036679988214281118129822612009287854489125853954844528071440776934277302183681987366064773440367540165296198347500700289295778625055885982770002607036956110366799421742940510812716586357486721835629192536135742517209429735262340563310024342717021722000172439977324285457405846250704040666307074535594830758807575584026298098259712141045890990203113811171364852918875619269937342775466518839236110219557483745769639127874396958511017923571187231008393327870309536293483378999661112892006577804437251825810227516491994810152692670566207918500954145310925660966267897333571474993582799670799763518859572988256541380001535374438928604428409879679233496336750672159115178179149190756705462822855341877689181737680583713923105188748150490914916218750210480792727285147137993431681975057642721879608121152401329377307806018142239159718756730822082367726986201690528392310277006580123473850807152070427859060392078402801306818126921959303889724911687793949402268221624010437690598727013332885671395733449095547439621923652584317432956429795791446333232681483823464137926491125858736277869542927613944851443708474936899438097358615667204768231794743423226130993473503606357389885555432109144707256492168824857944263907722362623327679947249409990164264726740371578783608918719884386472442850941273366385231520498049071221777403194775960759151196419616210626177832042335781034860189402255449771916349121167629566532770608412400079572391994978619857884954700821735653845123267156830810136275376687441614960079978336043228411986859945567745903113395447276632320410342817377211765130411599260433061716793698536969678075985316790739483485861929179140467859016778926216829329010066421134001233422082073431862179970578661310865167115793172607352767741760880612548153048920264251513293344630995348994293952522103107189666430002266063732759975680042915140245874941101468725312801230012274226576433076240310157062625687824023095270064999574795504444682762638346525659736151476064250065206687646952805709192489617593145219855057749483143557841126857404480242842131203310938786496075904888417794728345213611689574612079078473026509671361515251959262968666970999933142010232924037287541992179918476608945198242757258218443977807561999775197542688643468459801015447487379156086308010904014039710683539047301693263911624041418023774795501585210555290838123076363760050392237710354088092794007849792402752556786734710375120754247562695926083789931870073947894470593181306412823777133895584222867703899636822647502839499652530632051747728980019227907401912463895379431196486913337448664965800283903789262836725372441522877874985702712629803030675248562441520253076838924401548652736806991427778750739082483035245447384233563745837873955058402161562209426296800354397365613291246086203590499239244210949420915900682160734924887380370463477644528287183238019576572934756818579987301392090953048626013878148438873076588355177278335016798248447890111050401797138105889650354025158358857519516978772008753925712292964894698409344813282993971052033250863316147193443389440807876128478353113182323372562991956580085112482144135666859147083112731090994822304612992109982332951430303116788327863463473245199084391211703425008772241086222037045505874527255223933469230907212044406420402852739676227849973430770345368438774418990794898397670208903951142625803742979997557540968777612445049663269668714025678363446377371099317712017237549825914866449057523645958825482611210025305862537228461944029671554357478945724691778767247360685396318537735835633246447183698398626794225804213436695532993594799860450336972266724193997442073856788035555400214641575443079018247001207788119845924088550873092784250495810040765932103394524145235203557647518553828112925325281988642685303225093628363300479502982358564884277138198835697857749916386257091285670148335689889597821970222963727067354463369356487345056004773463677151407672058386983416701872674248193489076668367226990343125554525413258231515520349150164937858645881184720324724539498944415434632410750781082913030883996555469703827630411609728193471517519905759520567432278342988802691902311601200135937399556586006745467290094225618246821531190502606135004434963144458797390192505024947823244522553507415602934772753236300165446155833969118545247020078968476791710276212679340966300976005935726423657810893922183316149550519487316453319231621256096638444267510477342886300563745511683177871878876403114094419095008687484558355900770956867997693383402766699779988326923227493531400935414359965222679860978072368480444982670849109145700344894220337332876181459371674832604179135252140304455955658068960297675703988657773467936906567463738497802430331898902185599828223784649731894572207403257173046054799672414039128330919426965588248904390965032422491544484048372736821904071839267060992544959912414389342863203115429279483065643404164878532290321512056906412066140078427353303919135027438368134949206442014374251306724118918092360458140460618364767424679812625069869585941158497145637187232535133392682615260889560351449455003110915856167269329510953869053574672344534956922172945159153672945676270829931107005510792300994670716188140835750301885531430084164260918717084740623375777325460645788853864590503411770760176131236585497317533246036426338666249865574640434292962097865747213035023896401116732676715220713144590802906135616532979492543753947415481050302613385117823712083173723074413162894328357474798871593310497389875105854122362180377862763557375968565035426661594117068272302655549456396494157892239830909641735796301951154122093573740064452448069746763635398751910842069263933423641434247633267456458196004834674686387646593059391327734345378209763857309046702516898876856946502384458238112011970756146098015483541435757890534520689363314963713020878699244484281877335069041785411846273216857487491029836742980158440661936920968623947619745929656719014801423281198221576764347309187690711929915934438997325030911343173221266169950965470255314281553881650247853875283639771813392543756269817048406351647636618314326873411064449128787319873245470913414143194950614669288776732423076864401740899938014289922876815430626904876915015204080986205188934654592763715335187646587354403179249469410369083533185948109839321540102015907824979669105084178143350419946015311585026113862996810611126995538505304512884729522161745437154723816056288202323646251023482726603490681018225878304976505802069338673128814159436141979566305486396216493502235338589511764789004460513848961436567716035195561208499715174139539322184063718632879931938307140732191103668497841200768596234379735776834235277178521222937268829753071596886086398687363682848531868646696222007652417955928255309781817027785785955340296821919875307676126146617338816788469313359414119951815114443875106091903648417715992414142792021115617576125418568175814044821066307546354957949523633373850603958962732912873873734562157936467508817494934938695332662617203077471432463744098722245466318736017216288640853989335887915746242481332159471529217959222191569113802889706126260439803332866144504668601337098308564277438158674716010029532990378157321018580804664866870663353094515958036394136384571626098530523766267746513283624770344555032584304058257461202643416720947661272522710292537659851229204275647050732789824937864075202469299586041908695504162919498320019888587726710731070488441781605580169206778145062282325728807577686847594292779599436097351761715619176318460486862235730500725988608111394052116320585603917301744784784416403696776718690800935683359099276756116685703234829919946552962844127898614598962892886923533944811162931059373706346403472501894277074291412112211296009456207010643348407588695465614630489157484672284814414397348462068595446639430707704731206674723364123260642313617628042869279385324494177042220883906473031840207142952971816475708188158769544509974276353471891633546742653379083491740880126834349828014834898281801409031163460425473766362228825702265916354331771901055329856432786304874954870451978025089802998779716451880559185117353698981165107281497485349231930859174675980201001381307122140455151836569965940320736457609503230024242101495992169366613133461876055469212601107286177936902842489138210660326716199230737218324814304197782509189211776363891519009286833568599934099623668727809496108925107314365056593599190837829724093155253447166104938264741046290934382494989823809758130712772034608267013966144878354669252055348393831940222777232351860718021925568393481737353340844993018442004038087489306005441738322942600185572921615488261294653127275453212369105103780373961065822768738631987656375807765878313625009676230542277542548216858808491162843418406701571882873082337382069105749977903253005964691480864095744428728679186632562770134115741796036638795470092185914732156395849333434326589259845699644173522209133557143943110702142063126858008695674354999736062334836342134555477923528231770911348188635358360186991310351830451467137843857352368830005645540909335914189122892746154976399960695752152234322395397840995664420220807608819250839110231747141461964029726628689804023523198404126095086996051749230676371562760740252426078083129010259915458089233313697578234772169632134245066337816053493759351888778555065194812478841611820173291049002795056155553676928649636813612205937216773092055491959197337040719289847565335093051339276453007234921024733297625810689998425667644679956459183400658413586263200991931698235401341245448468765990985546379782320758473251929474357405762791583406507506997755356948048529546276724796862245350091299466760952190396163751229542527623701876281922292853559747148146671260303656783922596565797093614433860784710519701749380116489262495750736191519191750741939481763505734833076996033682603316633305397745114439906015064764836601292245217013251178953749709544546394115429144907799803327800284201680074637353091460297727902803354539468163486962666303402294223115697644010154623515506732899322119521768078047405283899914077331784681165998692940002831494926402679024500313600269510941501216913294674309117545677810281634951114378445430149095980894711622615534567465229771904670957070608354151035063001209410744627523852976444609281470437923417704000358036094757846326554725456754345586955747624243820518436253623841332403212066647617634176801199359222510093351021110872768527475872038824021033620741733490120302520191797790691385108794710512213478665775971224288859070510755366689594021189338523913745273330345514295967841395973217222514713011239581657278933663520898523781534060633509679176654731607227616716933800051481144545197682917609294099961028213927390862120183321105545966171115089614888316658507337482982033682029421490848449755253221486216155080813638677693815662947100871014795505657027019904559868033966983730550522654451799760035874759293194676658434648314598069088879426308966676278105898031577732881376033465828820496239208420401944288643190249493275667831710873141709286112693596782728718442028860400689227021496381567921780864163785412041463070749473057234584767898244304544936979501430544373771350892184443337063540763396136541916206844227628100533069536793416819807797546825517984860917728594536163966936920639315872565116677373527419082888734521482270542265872105103187145930920953186025067228671737693905859917765318618415773393536992909046280386029086281520278244082734279710320101781114993598965919424505996333991454845421115651307720634754231012877979154663384162557029027181898530900235328073626468807590273677623158050578533193969167589350813392061407506757353462793208075863629220983137424374842599357907372085904195270119731879964839572223168719180182675102015797640572471254438675615504518004839169196559936440088775771478320879144396516409535179376345463863262944307195368390194714566077142065077042301182351985702726145329548920788420822899027384081398704718024040443816448451198578903458206597632015917140348748766128783884766822821422641666823602415910840056718867041100242172854730347408601912772431807232383532845609513336192915978115600277373557312550849927760527383155003569893621477471812762401216738137801750660031632493314982237503667970232499505732977215432723067374314480573150334445829556580777361347764344713020350751671724958597668913295509746418653818281073440306302456076862010105757230809447905722022047928848322435776492471557108042856774936872389491119151696844208570665406578333717010968147895325394971991752724717376334553286608066424640829332845325672959290642702441594362167601257324623547264439359908475652073923642401918204389606503937747691127567922729783703599058198007827669585944470854958829064499296168792795011770833612389221473980709652118182682633527239668288593238061968831512243353717897215940404984715860786611918149394283022304074702874868931874698482525731928050389721297797677472411264967260397152420763535120714588184802605040047636861231152381499709732755254935757106886463756561896565126375773309451805735736372866749759328837191244614688071968544031642686706522017516493341793351280437162006506162112496747415114816975979456485162128828264900803845761087737362868196215737567217201535712416209981142802764090329323853026789816559937780247983879575119171846630805477476806754206325152517807996170453546237655274141731622531642245015508057163345636692740386084914463931060389732485797878616658090546907553143693824541025271655106013996722572157291085923742039100671013787266170593204823287148966029395282972050181909789009988579016842376032304229510357477811830104195114548736204860398728868381550783615183056521568280671054811943333564683837164266171524273593330709358974006043337413709805984494837162759009481597333126432062118152061817794455516958898479597340333723672623449595279344252057431540439333717786245664859250176110645014907901839276681041227996104864089171033187990981354696778276643776592976485523125775198646911548693636056885377074879275427949565151100799671483272650472833371558298737704377281320128254511406000754480522695670998720014455885911573706912534657582349303005771882902542960862637588088929985011455788268831730882727040474351490588332276724136926694498657192498909525500725917098151132598935259463888384948447734671286259180113230878003203549750292526327825805124928612828978578082740557854143600440582546302228941759433562883570519469344812039559300169757566259751879348346048255053138385651857610985613124011939172053217495809802710078011513443837464508548069037830707083210113731179383081160488318773891710885804072392135879001821279963433837091090708250531264404835654389486054202939490242357049083986649572902670441944020701434911046735134393216889303547064721541586395206141873999549497184120571680182199555370626000256309745458635100217002121594962622932643112552718778973437159686044127456574595926237653199795383186618685619059522094015579081623651290550466762769975972946252835184633519243221055774675296442377191745531543190243226714826450049816395006399537222662503395372080898158216903442997343360409789323486252234352814337641745530420632917051393731590286238308070372740298872776839174273652290583060802496135994159667429734010400039468783569597342875850837441164282273351739586116059312911634156936847626878801819672894386811967472831305707518652845153534516322679601492540108411536613128018310876426306134977921447437610633362020298247660876890313912106754510436015171397765725518638582504379138532839064189803952135943009841638645970082729565532679559608315369301064008624641009954008725902714072621941074595653952540325616946126907543447498782590613571712685415922261069934363223860413578202038047390024952666753979826388135605875151243935436579738145315213428478955144522863539346884627772183002048358062372513362304317977437297710142947893588966477140002878303385878019486314080207268951439741668804858270881913722154883624143499194259105451953489195901581546749986225344873709616589214405894586469716305838385681778627467689301192108743156436647485848859411217136577678667298681476232005317753644693824731678243452387170023008329982836630640895906303248855476802317172030103988756994930385613395072935167551105527852622403851014949416465642306987038159284183103148758805003032475278698136066673330491318695997177340711955798480892829475480177700701421962406923248792528569106650059206477899231802709464686987248406705538822093081637922162514802887965310107189808567038640490862783378782624096640108760638752622941125671013141862217815937679198604567689460267215724763708622251714928457049615737905200179948936449327307230337139195610108797202724953438554276824737870404090073661861227968831773704745738336135895968851471584319126601080416317947002630614775515656510127901329842159096884092781051031916958595049505508689532425126966598723064509530720430821087292814154061344662276987635422039006714543989600539446306861992118836605274779092697473736456940939493587737408476083944693971729289642152353712732678954942611465261695224429174856243377135237652939959803822750440298014078388511625024144781996641156907831921007478117777296165870045485246355691930678292616665979320118450839002843603008844047742603051533941529208092088567704533369520748041683410451832685822747287844716916350811416394821297964559427389456054797712628933990898645819914471686686844029632971583213458415292196197469256174165846139936747889043133175299220900975618133989794936661634975315729753931430440252186231290007837222819105051052557975243815021418444048249321393257300500682785688446857781902508962647979497183410704781747621046725732854298739879215192363123163925077425191725464506469355953999368913035803698618911656733507703184278304670715775313600029717216631359460570587247253048535609617139149748864536814357874087753270248694038432551424306216507807458056115425899202783334463250732461033817260379139989208667444506777021172152208889015031129637241408085921539363330642344835490345877512977794055876644831781926697809954617453337158925851101768617829245428069585916952621063318544979467174765876555549148619632067147840388186258177989232581109709691694936852583811603468505570961404573413180992759680458207236014557158253271797889468604933034664989676497694200741084399893939107231267739349539443709337537317724754638706809359716420548832478450107104698492722824895020926345290478602789355902960480387775389615939143977434478016998934230095250619512643989586469378378642056846122438887551164359046597317217662764388394166398932809907167552393758551160224980684669776580499835237538461630316738380845081747698032834375292510814487259949008077010363306244069839699128023232313320213141519030718023246955558404923541663745552983087192063618981385938979819513531944022956774896818572689732865880708399250157225246304235253050065423522192409635022666485549072711156800108950524492263902114704928589187275645900121773811042716454291935061972725714548040985920875128025986059365350244064907414696370686473631871391310197575407011082480271700486894934829220928101767749520501103230523808643841142177139795205813405139411339608716164926941711811128513617770691441581620088153429044068724124250277603764759673513174397323098630178725744204936624991828311037758022451689986506341742263917072344013325952165124780315667144888397781626880889313597214048149958000560583025926983153309967006622887379570644856599537461146446514123495863385146862661255934081345761746311293557499292370473180485561983711277256732053776738658257071150281165349148746746456256584013521386637604290695864028753259951834597148211034683385541724138845124134181079511265607666804900321182104194222611137300345684422533937848028755873470773413800361011269290420202884500431756130453420575009472849499969466809214724871399438863982150219728074844288500976207100059825063119533284751062989891176052953500111749283974112485167309932471486882997115184796639838494355854981288837938947061419425574785226465473973125508356818038744317980169035813097610480979980897241686830070597242279274443119103940698903445173464307583939830342650484098466552316955143907809389484182101292815960289267979731250236390234195870546347984029789153575285590949608227239159799864678375361903234565959886663125465134809579079104882448443860092544881244627598498897932387939753708826046183167509411684767988146812329485383211309011354827250846666628808361357656557645351007965692084649797322493290813877125716999164195748726515459190270286869001116429795711879502238509636041310516909901458496895943506252978555274269399283865015824669772124159158230981539274156940369906225254344290057351317669824650402471673153244830223405425216532033569829059614560297068720933063215968820488654755534063502500719759058989520330268295036205444995873968325334712939684133839383233442432264536412339555580268221586984014260521338383432269384974424550448225730509242077008322892416557122990314439457965344580675860633101379923816004246885005786143333886775683271714529368207112709633423101104260150556863499816966721258066592869546442118215282037368565197239536979811485124262675196496271085509978509778537292754874379966760689477285970578169375605023663374423983399699777233702339657944447783935418757468222776935195895556145495661261818766249377723341895263602300264099475744430592622727113147249093060648964420975189797527928282356155394473085777630771749465647706809083495099560031242292464710704182699712470184470681507462662611795239804417727953942288609355250106437530126981147588849931005501767605438665754719654627928670150898406743929324450850186420443694918315789064665082214518074758043024258308077272835133983739818277640161820643414074452805169531262875252668525280098727518349172384014180980422527074137945255852546915207197156577583521732566801955544847418708883645115209229221554285262879533695009946815187268482003763666749810480814948318645021624748283953224866989039030173080729502348070520634051198770668800505737891099789379600445208370710395355811294888600213422684973335380706224719025871039958281735051674888993812695539069521731117353165172897086449586180271005509036948465430984125563693635245350125673236046878568334779619594059812879716800167632877629484602103951422370146742396359994580725859517243692741939007836129312851321043566331534209817301587343074097286943026201921043020391816102886418632492220465403212716939355159701606131323217082200284281178753560654006756488949133055058201868911706743438049521105846527922504448460445912025787509808082024502086307159924810170058496632982541355863812972162253531982703593579879886788046356557975555280658651718981221484254645013398484549967231739558154804639524837572388411959207148949733910104924294494408201461751265398763172820626681777239857835992492240905010412720493118803290477121735179813859059933887685916041829820733720898891507113712193208307148807400552373487762080415718599118167719188791322013675468828927992850305217502347004749272077823221307718840018967758203827745238539649220647093822470595786970228338034285773347075672885001788485902682471521517962981527007479195454949570845689402292903539871817887628084431710172612540731852848015492257810320940360504799891276588524263077957271362772184988309435588076679821172093562376661220842978867154563452748106245436754928661988548283018207850518470122579896068236701489634054882908592408427774789929593499580035997417632059931738323878649378122172168539985839262979909276518228443955378790342328008262123260376826106451802394442158927393923048563446283558246487347141104871651852515452658823981505846869473367273424217899284465510034051361699097705837206053715425360725145297981997277666014372988376199735931076792126842827785329421724324309563491313545838948894521446052837165964870309741955558496982671806320272988432597891486806753198569704549372600369426265569800379302104667047218651851665255303322608909181727983108798675655411048309509938142046788063899204535268867876830051537770689894277132976964196781636976126310827340453473658611172281727235328920871990785692332993288992436798747574431907432099061448797200096467462293878183777081130262881239268611569746707136137149384398180838467488698589079611303558075904811593597385877502819977792856473538989126873036690867457754518330622048234159560949634197773495037149874570609306571534929952006652631864239682816243162721083527330553002350985994780757211450578073500411178113641598482320410046181370904468553275170223739598589301808009186536723924346740185623986368549036708494477809613830970198983972285012474389144195314853431758673665093858530350676392282521106107695071105266207155134146328972917663912197423690775850294306383600218164502911375422597867843569673402120905913266947667569104168436253157305206883133815393826910192169467384313162497605500661353792074432717555732323207334346442344279757331441427087405875827267485904695403409903696186813072018133120207420847469587349697584306907304134379722732382763064362408041532904135479436815882613128039755818640161674606369421420349872607392243882850365759470014118932105173645726891854891744830805520439700688638882121959010703362373809850882803925801237061869650019537511476832742565350747131690602007383743757316909498573593619393458831086931288341879608921571567961447064867774323196214652967891447125663163236499598276676204941558907790085584428256981252909174127109789674547652089631184884655280410397854665198243168970445051325505754455517205535891405781480470738187721786524624464296879062843255523122197154065947154699247398479623913279612719738041113677447518319921236915248110156996792396313104180779928462910899057966741289495709369544241231722992500069556513603504609960006645977144274716627777939434943452874599829718629131720009285313093867442723631222165685410482726816334542508560067502614151223454501523254133638942443172751959041296360042300008138317957263713477957768524517398099015015795867815859118075641412759149441970205879550284424342542270197413558272008236111139398235123817558545095249608149175674684787246483641067388504368233022857082829517024564132927863567880547924502340323659991825303169983002831698479756386807979923178398278788696488216469994698018310296193284472270099018306286442531463998389079368109743171880314065607011675438208043262539354170268733064398598099032787641984485348011089488451801162452007718702792701207067798042829182288023199161729900661554562494437075072005452095922846059996919262312838058229492901510804567632378489643347523825631040683736159683127752283979205014800335130352002841724078374537697884513377301595331614496761769333200912829612490793979499398412833733715474703559419364179273070641462323939303301413630475250121412420514854076629650778037163325941293152371091882304697283311326228520358848866498022609764297540402100048887648246423125337337363405972067304635673931802722621681817666641624241566854408794248181946019595534840695955459204739747780304186968777652884786180752184673422912381017284437063317624228657251517937241355614664487073801352496478470907785858558216141698743373887716179784002226439771621335206257467992835041816471015929648494418725388839142894576071915857006870454691599873157956863220395892602559136274046138659041699499984763946226774903892237164379721716029339984905962075587435116555362595204711003026080041344955060186482207885470888746658173169287900243944352968293544351243088560792554014333109877404705946259318161303741589747578136565805105631130354716402509761466036737164658315236386891368681077696272975697634013597842228257794953515541103267258718032783365649334005232365555379643415667345954154059453763136371937469321085009836372193239124421298575859237537534672040385936131214523804558196647801325377015678848674621087975201183830192308643569799186152280222812472461672945651083418402128704116963483128223478067040644554909180625067167863910653709732460532107714292812041448511602740026318817663151970903956658488140200682824967146029653595541876771991644017903566125726246883290025070519268804036259260893267532553060870575164813392537293287005635816904975869701051671477331467770105830992430842420087010900212896949366234350490994912998183804777140288510948972598393572525873473662072421333335444279852026215567195048309964983251431128628785591151391840699107393447710552850240681864380902626798068913569148179071395464084715421216447611780292138696073249068191506640383745310731747545608561106135460189914785207774785710782182586140186252836267985973099181055071653235377851675699731158447138664462565621906329333263417795841419190998005313370502385546310210836273568449601462719177078107878625828369773034068929977972866359719655068250787487199564616430590244693934012258715782096725696079246917925377245241734314945306371057357774176902975577311431949464742697541773509893827706967430450372026445906571893503563031038054449295050925570989919339245602477775284974438577755225268754304062083515946892219000987682477479603392626108774983796091882530263021342110516739680890784524458970310165358325257322719152035659518844768415376261703704397137832545303959333746390614953572595401075598842130261001699863500422907113558382450046422363810450959794226619075960260451038856933046559035329878199084721107479103585620370370809234179899953840634824596083357429243474151807016913728522357363250183261460124938894380119253936604047852093749198160451055685597582170634659492224527410414294051000312574395880933550515368967680009171974853035383614459343316770071337609155368106968946639428988798866429122036741822156039179295225088982304997169948092639604625950809279596466647297890956070701262118371756259765228596372911389320498690766923646026187907372150110216215725970555413384882038607791824216803880059579239419394299193809053369824155584141760237325919127319897444443706779026350607731505876463080609839995701967128312726923577521299396515264979295604216513974092735632107448807189659437636544014397236660408602063754151091027816302237883437769515589907296903131811107066152437963942313299369635922664289312173198200863604878382398167612030794842438372146445596850729385385697986300657072499347029764395929217027761298468511138850806111981751416664839548919577982333512782666779928745848312701414748522267141420544612945820149245617177784792294188103606776069963494149775035596061161975618405735257646414068926904390710477889211344165852342727838397721263204003718850569636958888781919266976463418557022403834128766130686512209059775867329911194469716046711019909318757354686902795169077638003678670088693020347230285784589838018491684982120355160779732652348655365419401101258258309061952029790335911168081953907350531397720734982577968600292793723313105609386941173585896247422387912502200527084736098500609129168400821600031801366953995524851833614953049788431922670696199568892769731000117507168733960996045868467346884614198838855106955346301677038377381065861819448373894591135347186515592700438263587669539758351178271147237260749242322421772179122186023236770501075911901162933915237622910260868984411262965615117849772031597512347361336233877634448270713487485721509050222003474234114760295883964564372580822369599671285319661744840741482260566862677306351045717407694086750244645353591804257099888464950892342632958136384138511502000259635676015678534904160894786223896946504290910724783115828810215416378949872434949749866107063487457783564164642030637666258094463703218014245246464535552079548242814888395139398932891380855438806078137468846960793837881997624447305604625286248907565311976149280942876425428063149472458327589399352654687954935208207078546897153206932558594980383140877718089556687134828518171491055527522733166134875433251284137382187940194813721842573047412527896151186423677381273323231836312422745584661100979068617865721304956880899359161172723585624520486366883671219885957650695468291091398924276131748887662990851595502274860796878874697326362543650053065026497365168328541945815400888228412820249389285510174774969741340786792069240113473120247955415554719537597091462655635464429994554018628922949407845279981935708680815226780976881426762206431336691019523152592041792339463710630945946693181755482130273775854097368871687106048271103105421283916745961515316404536725805861827269725399533688610994794680253833674798818978797537946905617889652882252379217809074012303727825747416856420500619845590768918756738612630083471407313456327100445836073169294545959801938694967770138721875792447751557378947126721789645816160547167261299770902700533394334853901574928630513552486299437076940013865746181895844002089679419255297377574049951564288658898110287109856537761188694176861170180982498984704501312708394569768828613320608564160691180662292975340289071857210261605422265731319203344474996051105305916130558976781021300779064625052497285930510842027594825107501441910029383897969815555775246660087952153976168724647102516869079282852553203228624753805789162755535104227769872849795498573839005630323171275129678523535364093349192849780468008135988585670105694350161648149454832198405112483313520239027942822773303482379624051971590143772868556466665375468191050850766921026539666136771768486762642855631045787431235893807478103809517994116664362923764439387745777812340924015552218336092584183538587533719694043166010304961542609210790023714204899856517264193281660957638369317350734343049009883201844563868554671281709729599726477151593132413983914674166465531584581945003201850698534080200678967255372910340192488422768885181027743896317825389581419839057270029797699114168626797470919006299747975574838353450485752296997923867249599205059064268067201868570225270442221214237518240679456942170490120694270755891693260629272518661122887472338324842391818569538943748076354905600925040717401355922472354380596020799399087923783588903359594720300711816775858374986159998136445557396079297969613301663499682196225628253688548148425327142331232136625246307951740327723967428680096592621411340455176257230273013658170805162736106518984781499237454633503647176822044535520039676786267352880794176057185316350107781505774461158741829228803246800685861684336252362719923515297295028097084895844632439862926122286840226256710799675641441101791019494122866636512332598526456954313674674893179118296797022000682049828002850500196657110787087868583564114422759341118751554348204964078179956350747186217990787273462920443379280009769954680363168791780758134569140497823711574102315497611183094834501574396530525189449516356674489318374549099857119347210453172198513751258884071278556582872509226622511071144370141149721119115919396334904800656670253073537214386816803884860114096216658781873913758389782405724650738983541601772679768016073421938036016155417569091133099471663856452520029697191743013956702229781674193583101682771016143023259563844600394730034953024907571115298298642636072080883863008531483493393837976392306069330040570089504887952052958513058718360568158825083872794957818933359697310108158682283422401712676668128091161363507217684564615199579401278257509273015096756606116651812365779235790349214623748582690811206397109734904483513753139600904051656381877680150087105049224887767010241634188858504432153508234297455755586896917304466990202128313140737427344803865681091573110966289933696154660822270872188381043711811875295371319174820395517690006308806683055883733141710156210393691103845044355136568365793983748246037606237007520370336794706104284480167116666697405126657898514890241607936064422761462742797345111556939680732959847096152089684148080094561077745602863596871173435431232059648832028533252127743747749876110071353564903866085545641331924540751692156112180389646109238028111626987327418522809380786952940789281316189235153852074120008543982132146243621119799652874146950881794591590398141161215434864910516812836623120291393127259146812787743324689180421393936215915981422267796896905918547653996485629834615627438452497841342714620423327351345779777552803724808832286084991317173866706428411001257406601667413272219531309735474080545711870669199738441552854945724420530256427592585166233544341870068599509907765005845548645569817946354741765485629362917826633325431377764568415062961333205773011637680418844800052678479048671712177383826797406690090103052964910694920218636407209462046546317204246975286997241733317049811429829892793032660187701414726263609087502113151851412941564696071278921975986065453246509682843977920722797968847274622711813643652860074982161013656761554409459003273158786272237652921306467215233669358832494830295794081017285668968833005970917238293765510620682920398920369190658407724312071546046497975315556612797440857276565032245490413582127118917287563189067126363515620807152791678283649560219364626147031742663317768573074920049843961124317663967143657472168537896402273620610262244120077171604135696753767092867988948030161157301650951494693146932145795520873422578009335344369147216596985649400266911075993570931594549991178486285188326668375539628753359743103552781941482977540024308955482977191838991392093010710787596727119501523307293886147400244665084234867073579655822480743571100363399139080931586613948447097958563478720586382736646901832145883080177673372108569853448257011583200731753994060667390997152095467254902709201689999374975259679960198993582863147401728668689094224108329933829134393623332275311712294796852364808264033788552661930618313238617529346930326676487250382719246132986157693594948323833200317658185653854949541387989808200608738151686610179171233131397711759063960038153771292247837024827791830661079984222529311483678702851754023093392250258196361633310864493787830725909574740344056627414776481094708024937287759315662738631399775684340347483170250225880784964558792001145038224859214212469167972412785999610372950517920059370676564685620851155811693625732637767644459394151486722671061811328884804465253423214160791454617771005990190593133222445659249196841624000474716805985428811743255433896103542523230256605198554874238272371614169375528107986711952140054120668477942835385039694347319307627901913937478346079838852197402579194226976980056967482363784995925436231967449842054487524160983717333233810106883859970318437717604842683813328210581685003453433558979612735854681156442457742052483014873484132483053016511525241676690725986870759963063036328288100243786421406813913523094248281894548200544532673802671806261047045395970698340247014461601466853769927133961363269215110936927521251721044168449120900491862557976288997892542380913493165947985708699062747219184675000410910228619052938677502053351231908643957130176317708203212441117306084775717125629963368450626245185062384456856915169592815133321568807961964777753211608419251302512596940120542922310291363167513151135106974559298562072283661123221452862569438295602563481338185874658938625466909245429548218017925822934604943448578945035277787800989468501771773312159453068667454379667034289271606129318470834512415796753331960193611896977486287655409264220505764809208632098726513124375771391899068412362015206765880601412722682832136230280348946476326948079478423821445316793288028611744325662282994009282992345196710007825347663055115123408996225493059632994829743937118275330531268583594263547190635124060368373723089057197891562427419472988168139370706650455292696646638789073029353945740701527496377345488530205397594481530348108363689451692822957088174541275593430922862531408143890174237673975262159507317377433565639641824973464355418283058939320353274040061311074368658970759843331667611762762075288968806919708070008207083253999830136049457118169300165950823541947447497919540685686358638520713922503819728845168258259332278480862345351353849665915469918998179538037944828894670935636894224133054377957581879768800009421808636633255782535826099424541354206292636149421266015075862794738724768759536945678779797545183022459567572383091861703973252200809594807890890912674992171766695011390726687901708880673348554080173096587625402066877498831500341486428281295009098921187654714070758133053347405103060836467591808614327029431419610229044675364660680792073874347725151634240890481325255598389488750346552938346075220540183991034788228855317469907349317751888145215409281813499025404743342821509309655808720216176963487217077116384264186923419010931506421121219797667284710219568067426484333752113802361275363047880402700510105299663176468329757112205548611731792327042753980389347908310235873612563957594370150736644498285094646660326263740669435835594211595683865933986726799004560049168042579101874700584274001570236497813134062754952003891652305093746176671838682708896949773649041029885158824856697523981376912608187936299369214455004852709161720592526397849716261387830291900696620345554830633994569302796965532296525317683067727779808132319965455467632864985774709673586621800394326366241702050129700156530711207992767538584292633143117340260047884645691886822251156755826918513670615009362530512978929371541558948537653906674914349732331681874275711964821103910878326678588080380362691416584798342773942862811544552793694750818817312077791585450653252167014208132942361889347841193204599315879075419209854310627357588942694937312301801919799837215511536862546357664409164989529707521508469782841018865910310930231508493920803555287406756156106460108055292502768355797525266489857357826462256441927587945131779551240764511073171883023051180603076170695902152832301030961726968597574805610007621605255475829814905213719779920005671800855235478325829234484030044726405300621257400494442359457905169404808780602611756719014132616775413517342572077550774943730014356215298739337862207792623536894989300173999444723661939484087253171592844327177524623661212403833595507527866299754514250631178352668704723065567111501700520125178046818337983782716086124116204363718026568443411449453908474727684871908823237115029122134696286533642519396211445307842768752437694148828435894312199995076639316974446896333309548366414311902409697846817452794017216770144618939273019468605571195725488883351117915796879273355551485063298181354325261238887675041413556472203165007794084525964877113379359207483249679335445550042572719420563794221260420709719185729085722570353797533519382234243187406816341335329289069915485316924784522570263381138811059978240851068515468830526352963657502937893261592339516415177510150825252490445815238477118271212766807650517701182423196091062147141646164001030533798099325885427932621571174110926868788794143692609164220526751761728582042530909629489893566210982825024828447774465058800307116446129222142072306677866915711986400321828318747903592600827481982443389672624558840185303132169083918671657996043354933426378479065333403072236415987744260705328992087476267334559504485109332952751837503952217426278590014456186482473602950136183986932595945572642234665527320247871772895171335031693450913701801413318228656821834934787257923952374019060533564369796696074236269508999240009965640391234984821381812232987315356094243415549027342593650950026303082521236983795619997582070992577649193097228305496738181576907327789005915730234273010333248307295587597072935010793336244116320836014429634814965460214832315023761928643564132594254200837012928403192415550402264715538293787135328726211850206595917465741687664518884312118376635067615667393824839940632816195889124172317847175831278163029919902024110175734694947722585072941173222162862222067008293466965249223321127367234660278914012933489326009677966169328880076251372583810583527486910744074615992575386243466921189845302157306923964695858898716446247804539019677100158896052572946149478388135288096624668219443773733453080464534424800234442233997520019777768624323060961049253453990126585507572560425457854819457003594023592494803327146861324753855443006708162594966470153057778575145605128267338508628253800618375088447098901887405849102476361185943932010243830745186071284848687418564760957462053508124772773678333675362435097627224279936848396882538875677320127129391579110808354683873110136594836593215567076123758418534059758210182156759119107215134066915787883743142427152796878204954465804334429366938089525600630976930092018359876695260303445379194795829272272405986766041083371021660752987598213070608178382334901539051976127043888834425436184259930270270014149605933511461423129130091362620255468908986948745442974963384153556999075959407039098815525408843511313495201929804984500573220232001654698527037388291501275268769903124200300728501586297638387278784739424152046678338723020188478877089726265401675082135836285702496621086242004617961105058650520022338133932412028175869294202091801402004365000419332400046359083962340732524609049945568880484332359273864032558332212230830770934302787118407067582141002678567409409961923240997699609968453065684801207436810133656631337353469907053432474305375780888682722865078471310377953868360635499115071165436592894416272221712601756657799994676264582415614917393811534990994506049438251349212861435721272924795986899617486334428959971893835238641035954369809867953376838872221687028922029822297933598292960197634578952791679672265279721791792495949855509263581257376034678464575154299258770441531449140686074752518350179512453527341090327886035493217570289586762958867871396770888741412686747581690361613001396377512535720959036631623931686504420465869641927642740452389839860730701634803139679433981034346307618091266129491449693368188175002704194026085872497594022166503530464536016588992359562749513036251703548839481152248840479957050786599212285547226473948558815560426391407959953861314723036349828501578086704774049092252588772559138187988330131559775235780028019355301724303370468720498868725706002738389309325010075020319914062361456648116088310832991070728291661416208881805548898955723273215269069373790384731707886191095881787992878884653847382211595613430877480366648714494018838141265642834132569841185907731026536017380087861713893522915947204419958105467773588597890679278792324921861987520094226720759912593743803397869468195477002177634671814037858893018377364388084490277471193116340552016433275419744351169362209085652935802008853792727139973369575178123288825435124777229111435699418548144893140239022586251771346083835462610412038225326690312450388347499124001270823955098362613130336142570349274334321581122406180327606285435950588579836827360926414908882978965576581132598671214344654963594585721925434989221954201338599767855404169304772955893145691236326342765414826940672040611471240464983821196180238007137302382438326093515820703554530910555657759578166718178252421822322160645962910232194626093845538303343261026374781600760924246023602058855357503045167381078280173201495676465069025317222378910267667779798985036749447431910045125353264620300908150394017691277303586561855536234320864881379624626296365984837681306448687844603125106807879638748596144234282814698271878861728922125648529367942167034298060849733082572083668018820723511251539027533283185898691514025404340343565450759691860611432123764562414911210172022423056471700906209163718153622975729313368457719826653165216035624293426579380688898383632380781120550666840157052591801532873153644682038453252133907665492576319463852310200991810954882873581975497296397807167353860209969973298085058506118335667628935645567662468355406966424739271920570993836351093332386491413885897928601629646506587383866860985220208856470955115486404524677095527369773174006351629620604915838213984772164598074713958165210753721391872299884373314265066221510192955344839405644909685397769692663443002886870727558059417892673187330641802156437437293450059132592672308570702287694002873212447943668336350282109425889429177800902388845506627538990519502866299808455050391163698605978637890473950321789006387187545848967984074972224700266790975314403133431193591042639741859344511854887217707237353884257403943757879461215254686894231267147498446167164048556927770640311688558786222226841833840704466111742977008912852700488343338015187740405134216103538641062729134854392424385840357206696174598496247162806054776303873683761066457488257868612465514291803165500052125853531454100853814723649342625012827542091783043030518782719478668685810123988935858540189959369542450828774349564599790258442320134378870578691039382583907006887508411687196063262325104340183838258567855369953515953017991057723443499724624112811916490904799061225671449974490001802948383375051541654796160895148246948471068235943649068164889434773905995907965420910584560924586694388181139468045585588773828952104632014372617607115102684008551581733544099040166650563354320884890908441858032409118012096041561679811733061466883881638757459011143626857452624324305883538122652207268596536951732630661777670550221748238143345036484798663475411881863571609599616980284149843713816464963056662374135126822794121014064414926886717256357536495761889093323370218293479891250469772199482269480842025849293078540018156244836943615227775047707898849032250499077910812928252419087429010287528032788110158932228361850496246059140481906028732392819327526268243777449821292155096192181941981524397334053354410426652204960802040789297127480994705945543910026386386721698786049432959132149283065671495622405128345288936956966017333016213555504515344321932865088216534136490704797189519322351112056898289586865141605500590907977066814610622085386381906895312148609788668215473314511672149400973956418516997280373488781376778317707296559096400438263531864991708283615402144884621643313034609420681773350452801890196574528765136461904684719366035977399841242538030267516532471534411180216263958152733023412304904585033330340361037816096182413849240650122687198924025141325166337570777260114647609933825933104933106592882340967507691685501818848545435239647141195762721087471338333706975107105711859831826324182238118432108833062123863898220591144728800696178977484234863556381595967957717011754874022892065242547795670847147502291441457019773469729661517465511715273191994368959622077831009719082808928667977798866091248255041426982825061267196127423956202162560477083200885784026378869194147030923498154302766036636960959394027886021061966448348315451561974965475800218488960719503800550419771336457199964898489926661334192283890718988745573584647895888548112459749700934130097106324913601362622893050616818449619742450671013342264946587231437044870859003835005032308953747228024825461168547981716143069249544919326072609124842244576062745869188032525287921942530739743847829928084631535981910104239562739262835056420721944063148055512679163189256775682494446766995408136321959515572542285079486825322207935537040673805513139888004825715809264698189619819293009212483033928211064401759112351666250718451276306647308708959218467593340000885027125843140342323725324311977874746130635778050715467606333424672055137769201579569557701604237864330949174208159456784001749814497457945496271759643955021107285314938525072914339795300807444423903533844284283403538187289608121305406963168892080384095446613289748848927792528398855863296483760339010770959354095879002779338200624330601503884152371482179400962913933066438833437170913205105309526137071845003536362760727008945300940720687506827516119250724511987591426712745385773081018044590055763605952160289535169428375143042287160337965044399873688163304700734635462468372955619345412980260263966012869462550083336977076496054715346997731522043660223872532877633406271795093409560875252619544630981300269342940493548420554318824013453353121796233685959808341878750453655118812006891056918534695318816273174721319164664371404149903877783011236655574834773779135024558216964470753172448183754549523240322178553330092689590309230524510801821707320279673790231300248143812714397470493354757868393972932031631605202542635363465833537888086552227085429133917695455026644800272798048323022173958970955343875459561664535009596401847666081134377656480042848806660873991873908366507470060820010929806573825200284485223675053322316821682856254881948661860846823557723434357367673618213650902111568623400229497269827660482233006545239698958926698014333767904023685564203807530426538208190164170741117527029424200472194064985804537649600190537217166375206792813293745420107873963465364902810415027955182143825356089806809262155547124726361074915754549398355800197439483638128211618904195524255954097982051930064672823709275181866734656218431770170541620695227390332327020830868441997072199442599211373249492853852589375348636982629440993025588059391255137388454779891068745454258676991759439302308614277342185899666364701864730795329714869694403570967019139290803961116564101375642818121115857330432518272507624370966665314042351200106403291599874791844785459561566170298448449660685870699422938097813937780430259851010975426106001524087863680204447337426444128793615546211980024625819949221639855009014301668640272193623523896270245241720847581111415263588293345091024496297967918374037510327106979070786463108392034214278926583015417209045072051380922573906040248005553619975305303436157394265628177466082357454559183490030794576068300039822826056075535634069916532772904087047933848850534021872127399325357260698892428440028728332898307662962125101422407688704891454273398488199289735261236147911746290747500031800388826441475822523709154538939323289203442969141415460085177205186107212825810646848791262617648952458540320112055814939701479881050972318683997542907920331988697386793884170956535698631096859898940917685381297175856713134880632666542378827758871369375344798441655948137430570318543880459885481565590553722395611085900322091611939927555840981636406589950165674252628879321547822560509787751202231381511024114399182231357428396337136016356027250189495503294466225544430401418351372418967621264463097269094518585674623213529354072468949750237273004881336459763965806201788621333946238623809911823031105168756699367105589636337599591001311610272721735358122803824100808338851858969881908294942300016747219520041969347999443333080843188802580237306443477645952057342200117859603903399016833291868654934828335543312775350715888163004130169793462481963266144546008357483978497211012863529392876355678131549225938310796251252177680559207219127869445395475238727337571148095455282332947914656320635738712678487215015874734439738647970593050190702111434156978868956148363860846771070803161723030077128374366313163198848094900530645845091729442860045681317028607084908520120176706466504357343742744957133390643794750649740578251198523343568804399077185152319047363186461999861703160651500279493472476611171079382204749000382661049637126315508507699689588206779173543280599629356039949102123109142345429497269052477562062179030333581416493537928013135402201768673736444706463036817973983081353361340055202163011060103968978272296327811669207277237458406343181051900842109778527324949083893129397610726590998861079108871490361350395492327941577115019403566967559111616857499211220111879754071555102091758127264315254420979212405974958667989838652550706597194313518858041796211690377513310642410963014717736642927116313956361311565565409056632406501707063223781139083697208549773066035655793092800483517437068990698415953295136066049014912377540650491066670281001974865595300394451398075664492213279806917348126945060797627422927400332256681317167383332690381651912802319799964855365975367004915838644654871322211769311436845416850564841686172738140012311711938651222437686495015636208318420756604045106442674691056258764699102976666761031137990210764315426885881685860278350127637566907322210560776786442104123007209478561627504654287179973528359047215952938587247213885447917718772969777398305491672784866496910986038970795237353100344541294402514641308659722569877840304655236265211352365470698539295539112360151574857655133714994387559687483276353929182696660704872322509877736089563267909949722205969455549093439452707668532345270993001718267902808477949605812717125225397271652853233167029572165600542503126901767661840296180368511061731586719295387429906896564958958980529658449065919955407885593978263679470553029315139294388227604287353766153964521992643046748320676567210408704850679331091141098787585927296086415285026939903203779268299050489218953820444976813264081688340737441778462777258209692456367146974664939659766443078796979198867947465329548171171035766358379545719956596746563435488939737472323273413435001836786354506971843056594171114458334364752498719459177214044729317114863759113602305254537881127522348879163922911786731469477335000224614693251309561187796451121856365337386604745714321468556443068103276085741744770093692074429330123094762723128706770567742443617720332139719075326380964069725110076152824834372747851541326914343419460833782818942317355770818499374731989248979056017628028037891039901489522989408452802332052124594865458545999790505942469556421055977591898937082451107970389803927351144014288259639423377211956156354754127155542849905775498282214170462070219116789242045467517601837591987282961113491369053541441802153999158323372683658731421967219166198270035644776463439831088079413736765379212126943755784212656749033634739025196589567026811265098965906248003269853721262153756671441675653500663022978154363941712071057397129922837415923347196369193123800174558044551230809926495446611953895568832263494111180151503054775174262374029833242643434233268907431422053808265306982318390952656854726766069362775187575686304471937600478066158993521786452888689129755193569336243826808114049295682437531215585920559058311690016930658117989814775909218401953156058398883079620781077590856144880785101366619918260232063722920822990772491322044290194151865490326007992828389224723836123198168343092712901330430381881700911548640677806223705381463164791283189682923050949996992851911359993353629625599733333968031455924678790136834836249171017106122190581260043916289611467040731974235197884217892593824054584750117427201487965029149517098694579484507386111223937658806068376381376530762218678133153036101363000042819561406655572621360635096537151024999660737074961569912106564527078710275318421407272382817886259910632654376706323087498687331603509818789346975885118795755738797724216499460169631648770531920429110027997906869042796578657122137183974973885284957135782228037105456910700217853787381759927130662612717814819560146519002893208853675557434254832659868863049693202510313937785881643359931735125881134462684087372316316961551016979761574344993270963124864412768048775340318657454152679095520017359256020318653007425566421099794622313688028127461541149416520001253628102639593244584664257205649745558851016565405369237296136297579356533172494658712833054376573735974149153624392170382553377108432247621898829120693129598116726099744935176315621683204467368288369854889758007317566305394962541196026812527059299071230296880142370944776044091911261556971735336726282591165157485888244081117489976917345193696718070912877291653364185556782283730486632192469018421152333899838591239269914192719635792368695682981588326106855687063284298985430695076319200382586298618240889855762699470185521231004488185188587857365913742977424171603573838423298454063633521905300754019384165141823272259166455198245567885661493577860044098112863124263247488931983154064766491476553528404857356301175265578890700206393446104500408317483883137212234497337076357232030461444836577015495940187828446691970348069653264408492777100523315991493614736592846416996436196844636036821247735511115529604557471538836450112577358627658763329339383830283563804132543047370035926515177844780544099247305474899710774256523742551388762514133274125707979242134156270581019887979750497915713165584267289403628780763481179821234646764300634466931639896193438801847946802863257830454021764074556219787288327115838374903251287846226956439341664129190375845133677192171387385452013972149071597136518477588483910296669265919564153270007881449315179444149462656500206300962156977830907594277341871568057515872893760756824923736470485995500698486454665101292828006642466310338281285635895428272402417006043117208373540684182478383581885976912380174325104720213514152030270750562130604608317687169919840727462087730274040530481012152589733314895237014556914650122453106259994647985372448994554615219349314459826382184524124170288320525310862120759000952579448310561929398899121682784481841311163688863659539554361461451600955609917117473725152473024224081202424200213342486031740166065180969335684806337295870478125344273393264655512474094264465225404713279682391721683447567596443820025129148564898738760190748142902526518183772564253939898239574129704776411511322957840384419918444968898826456907834730211001047530944245424007867335446455470105962506973718187701853191802912465624002806823464925629149700600025611550495605863461704041297847050850275034172826272276946535760675385998864552873639015859985858149759038181844563224662845211029756760455648115036300444735971222718306469444301987942149277883440622066256055842975785837488444648037303906952185763860662099542627571205971664583904689808406954147385575240474852731296425766541428407422684275204708624739688837210425272250133228588016635298279856236147922752071047927981241747503781715194656682884513160363636963099109347096515162567087427905929462463773626213076869603460810556977169935555801708387715703897002527031386196130031642174991008196003385507231587170097701808104083640667284314613426109805747246206836783814507758469095853394720555409350975647285419939434470882117880791687988268306753690229879198588007702647942262890015764099888402242257305274137559455963341237092507379082758086372689358319329056722746600883830404699464928825276195076441441620380949014521530352784947337882066266749896377378864102232477330616978409414800655993604755328046305595165222925038566471765296968752401222708202518931226050005489359442178826728363933586503283271495494408259008121276758626421452066131242068732796629642462790520893625307714250365464518710162542226769411788071628127063051559137365346963403083164985302352633997012684116432744241939651264823518301583643534317172379941563654604859859640032076295222072145518486186246513579976583352643143814029452350790398891885870164242520895525479604291270390022529266589129863426133638631881066934263503174996327647738022742716695345042375999812203236686920022438071885968731502085281896508865146445399819868399281084778152886081652284775256727203751908315026602233317725526258755322653915225584449127117112091410887847666876957450356536015434137466080842054736067053549119756054891188259569617920821771055453498863160163314158932980192504511369700584657807943029449974174486152435341985031975045703471259342241982480655796646737910824341837175936394347254092064481546018276954118294189542657893941011450315222209025597517221725468112035161533997030445852187994053624829955530587044254636488129657528666950161411208487459647713423709668210829914713159445157319055314061842894096702030909710698573475668493972035496412097802090668728803784751737329590488424201450949684499695929915205210521833174336298209545077014799872141623448004560058973685299640425593643181790914452259037507010398621621114949318498570208025035448824546975496177432219137535040326458514077716628003463436578159384747001993672747104107607976368954967665210425997639961458916992392708072819160952836802186711369982611057665385182487266030076935110207399576302144781487292765840077701789112784221801778664555721833536005580800727376475308547599044777682303768616890283434359946121285433872804799783853158435153879913197343034895884389393125150000043853607209793897267428340865544783506805737134580977247908881557118213509268414149434625627260924875082590761362305353902393172131465823290798170479307882196547317317920923638205566010649553356309612327558654669147263367277689840613432582234727946776848121997864106271569054723866223342887268555270411124796853902542719963603103469799211210918875002953158271417853368949437077187288696638305808601637325449342759675266342062425068026149932718821550288296854664262895590937176504537198793712286811840424353197876928811317870880006352306814948732844627050981847663810302025949594773293589314494055306300549527738811458683306477561578613808535455982500684267464699201116945438413952104429083544264648841521013496726928385177675153718965288702532243495600587403468230917122202682792385837606979368142093249272648881824331211344810495076733203391060268398117426530658147029587276025359591267808580309689739780910943719066113587108304586219337460447396598954209541010794735263270446289021450144857545607319841610337027062579138401787178007244987474231570332243900885475410455428622721280025302254052230316374988772997887202495885462778886882107488540138838129669224806954774582469567845898785290148646882846860165624028791286615616016296887451691978098310519629906789018650885821206177397167092399383401990242175270671263882874623974195159611898948904964908239185217759743175494491554305544712295061804831641584636331328814223268674050920480268904409502341095954247873421895858989356519902224721769513135497344661477368841243424405339817807479426446569156802644267305789221053257456223831453985383270519934721310269213826291371532659818893618287144395788698434436133111771949580922068217131822448399742986750610360688413470655591886058891195413219397382145716178579764847540383982734794970470246145175693036050892498699543623715911614488451519526664172841679786295894946568231381141840092205400149138859364262853199753869312936286464883343713743784037315212635906689960748693816222770180038407501633929331732384755445043562235835491241711758559695514070723087614861427033979167040217315776116915050610201430912102543395106016642829845948212310689905156430936561517341294798595864428901481787659607487393046116039256044752443164667342189676708877269706108389989679577310009829609421373425005418892582280030926573977935637974111063441768791489749467018563388577519255962431100117282731083350743573344771292024176868320115918881955788567586781286905539086215558512444860562808087495019395692295910459365306516706030480432759194717356316799093585080334735588120581308118755473269514909610851200138825761423895837084319342294870807667288516005182815519199885718324877726055911490566786376645269241420048085052152867341871756174886703649678540773311368044945181930485201941854564059850196271859629993084060029395851909168639250837963891485406252973670845556728849607586745776905014748436303661268940113032806028452992550594017611202643689899033855921062159679157641166165305559177194490615252085521345796162996185438199219887103125109937251302679772977212096094806029578395512510307648681096104465152665510451610756242636193492154298518348553272041039730370362523305849701404304623572992876562480788743353188558724996219159679241907828773333821440279044188912275796498576462113099951123799898927769864616076101071189281889406952441131026753361689202032598345416290230465794068732474190002626590045554574746381532888827515413549429148599256034794374379756538095767079645056642333018602971966730917792587051218712968213948133891755386300627342986798215101553550054578973694796113295476099362420473976465919549283230648372013054665157098712737171858945937289980682412433349959366203973072563282884103753105881502913864156704491259625513991989283374516653322429113851337957983821081548418238996363310862798371510748060551989504023605119465127707694368357833053191175194931504222920274137236115811850454768343731944856877945075789758428049303518907822587487307016027133509513278302933564122240153940044450795054519642433388377952810557985194149839933005356215341297294051497684922209869395056574235603347737489885886226000048629917501941861470887197796751716837486053185100435587903515553415652890809083861069776406157746781759629117774333249024781895720572867792522888482146859044410159849367142893684171294753807557063966898676748731056997451942449336754829497097447596624956832932853285705375923434003099280512376327878212435338965337808072014763140477542342296418132869349012418153320921118794850432482308054719140387295066725738720118498152116595666470262059280200490299708788029174233877958050884186759114773552613602978613816784613400957669808477217176841233373955070197304068588013283185725473671518465029811899183906088788949065503043783507148266032031571851232645248121894214720622290004707637699640044871574690773004817060582431983381575109017365475170481947009415010493206940758948555674413379221212795048091547091062224688337465874291293505749845923266045832972126403716242971361824212293890931607724533428433767438796921175105452410669162463504806367696835581172255652770037346100036691129891391963372232182933010105998967585099767284146412094287434701651213073182961913406018868697814109673144239415929404020224043855724414927210096182385965035446703565649242486069954997341131345619546490248553963282187029107299114654181818643452592446897910356565243512470546958455984230580447440087840121750846536055705342031977059595858524468454809994122498209477381568011068430424127713919318431289785925387982303853657722511528105392576271323507411669104426977978615551551430308175258463896233402301929683213673531909542561207171335820451508601784999751588830771778036335063837304759916574110115757197194117181349681203813464592880656708583141228479720614007252246055805091434278795893866636855594778673004260930893337186896058941144832328711303244767980605540236016623240400538647567418698686765595369737370490866786499629335593216995168290346539460816629510683447223957479666164196474599792334494794122676982791674613387753863609144392232999808137444438351959407447156762739873643965076496472842368533037054680741760903200720745691567052522410956148517516936681507947297598361578117734400537251003244136238855993087731795393867043412074628790270591297453117437704674760290291756017544814264011911720002450709918695007947965439206972052647905564540737554346352847487021859215474297669204271505064552181115140606386785396183975240908990735127260678363725399681927608481241958338266867748853037328886097818483990118234147285106566857748932207790219434850773185479026766417004569622174991838384243146337373124242776815065525685603775462984052735805273812446144682681351654636411009182892464469453292710033984902660151967538390385078481473153395921585662011981488758388507061677870854317107939481902769321946867954986404022789226928657545712275812883712355515593898058803475730710461125880012074277707284662986129614816765759246896228405918092135309601788654804399156535260138104880689507182836715899169075329844452846844536197943188364882539761737482968450528651177659709536080455652789543925103883600009379677014909546075802929930153780387180516308784984426941706796791188176353484029980634902723468986683761495111727592274996257457903838672727704080329238424909068734680060834123798199787608721375972825927479288526391500694754603503403776589754009954441924634181416751349832054452169004009802388656932570608087814589629165268459076794607264815222994820764559427769229878199739535887124018484150383261033912306133428450032412755621565536673151090650505985857698473680664090766012666990564435004247404246649349303173379411658226478841962112711022528998630575571790324113868477974810722301443205664694408586165683103594574785248592413276540856651329805465491428372485083742502035469715290627869447220877819651218020115672981598918934310808011786914651704232308949353806045041642043114447891295294115919973702199713635422506538823374022567465473235258536712177704013300020960794830978983480520146062530454286288534864558717020540616960742264602091406294049509851245087452181139598139351858250892552589156607191524092635436631259202004717117494536544446337046816583705866190098818657692510735761195467560715336333061669551242108356102459455694083054356220948269078921108113690888311598771577763430263325052262167844313848414132069018976967060563851062510500254964182054724697915125061645340740788730188953290000774370232895332980377815725934284870724196977554228374895848595859181486250851712516970245357072397409419109647279008024672587904856383683054019421107035192972877006957718337184540924324424404210992699855842803613193948297673690726500173626454814716577700426943203911975059231285056129066109794426505487410173733251355040512370342122689305433888518825922162107736720297165467117931471908165484100537501037619284660235268773623540229573359685243451306952074505966963612956588013481489171527809356325828900690287843801566968642947725759827601322380562055625410044095253368790714341493289505791615470219382513100509930492311881778592164616056399770876492183135380406230397995582788086374599890879393120332627288055233540160786181674143832883227802871396682682572513285343009068588373982303285834107813215900651265637199494061553625821640997433540212826648436880292606729543757391622511470825540721187608498915451886466153038810935569753150824918717873754164837779624423060130772286356517777891769907849675214661071330009039783677428284694878569228133634688704413810605613894097374215536281177888632617672863340200320598854927355778198448746516739431587545257461420631148449892041740441930822177647949195287642715594226289406345586310826056791991650621768146771626010985603216458461162021612761665300893094926530902248148868383079009982623532224433406130709497228394609150141556244356138482291174775867717019723294822357204605476152385428350485581581428937817089445526100058301197422691684792459437712680126420332454959805176071371317320026675910682743381330032439244708873800558401987034933907674107208236060704851953829495888456045740313245441152189149621605198417995014476613506419126960007085953435721108904167664211773639930390314383924149264488412484830646665010487158359371894166580931564756612205705819186030455732924275482879737648385144862959741535078675715521051814641567391370969772889330813584239770679582497904061966224618056209128590486631232902385690975346769382106363865170565910522492517434787115725355981930415589314045759443005345679847320193878132848744348530853991462194638447055270952502070067472235553029308316409790139139498225177851568103766917721165014730236194923536724550978820705688059139130471969037395727737667107032949327764691307892513989194795531808268895594238204422014382663596021699756683057541225402578106055586558748759786120559387676268675756746643574301084704876655248176181491900927407093503367276732511760059204926654540939378681995511323075951756637983149438359939364871541919680810701127567101403507041787077182790330489127578985876018158286935686341353172592324003777821724634411429847254761493824797787885984607619089945738539774505645125485356612228618580996306928928008062015351843520350469507888125436913031872901254468956489753704300973911833642599825984561376870879045962143311581934166930178494604441273322135352432807135146180318877837383790175048301730010088399166741444109025908949657658698140805810921820893862096315168871711940652154456551550407579917434116885981374846510371523065394717563739699627559826759906636582613113655136383460389801269743400258628521731239813823254969186016109714686250910972530205593337365994684422042265289078914670439157681264382393355787526233784738317719406800185690202446359931048023552734024777638368350418279003040203831514576694137186269375459291913636908743875235268347095860494704413463473024016233883391452411246588799650596166713319511035025981418181769082367400114100243530551384387724256331167270655354867386013541823819532063452028288877995099906426926802447673465112459947613560623358910650368577086907376040682148703794589423498652972195638927881565442715110892374149408910225417827487864535667994937745943482734703418344163463554826689258554005631019776665737990310227610730679515893728573214344997641356612407132886549574632219487766021497762615227691160816542218076099888500592605854817763527947559962066363433866668256609360520793381419108601121529764498386978590476287326371409192408517763561621185340075076265703731085385171344935091604479883100989907683727736264616590654240220504516700510569130367872744215677040821483609352838257887683825859638691092579208275610071515689892876131372045997528132616695367401006244128223484538983251503819269079282192337433955592312140693244588024649317667010931212840462808415939033058321024613287177668632593770820465738356921974480500848986572993258069045583685647134734303293634990828597910512688867055600922429089934415252082496142476867550602306073933946307271822837254697678030492389360618311994179142782073785192562234784032719747421489497139337077566426401317522383868865955483219724488579783589603839022008095743713424376960075481737718467374030331524936174002118827349880483318317891758311973222837186470933589474982425561575513503815015382928057893218769644727640606686996429050487150440188775880658225625502361267467936994723460184100072517631180289875687837124911788248095941541126964990587064493887156180756624714383380315676831810698492538409237309546318908101497628388142956959864349896402257644492216560530227474487897301084262526533995090738585995716596199089658062512639022069911768783592198502369624011897235158664568417888609497791047363085372216530888070480920684369567594632541090818008888960592018809859521924373281412301833515309808496006727994571535215670813996891968116130611299179919194288417347525717781361111520758202224566272270084609048106055273466281921047633762304689781339972744104078660688145400515167143147516283250668174746044986549609301130690037109426262387967040966469813066151269541907608540889282498441786478053755270673405969225215645906811777635081686210070535572247330877354144099598666444804090844225664834800485255743678688217181072246202561716651785222561201760944976839516262492650313631293148416182355706669350101975556142738787339484533438211605569675342342624642063086307626403381610851598921060629233761318191193625458009194428456251127678971959193040098324354352406870889123321638334449833138170526122349041679661569882096620911760005006180500385167238636198061215534507688334735530885598292584155218510650628567582723988547587190514498517145711066034729651999597404363467951631281931004383191079386928490246521387493178481285734146272386266780005340336626874248658985489645896974767482881992576040358322206770747384554891783580483122226049514307873326844524084301334428060866704931429287557770582707383301197037250041411731427089757985183445598313705609380861230508479363340413624384642693291241941199406134880166248545737467431551698202838923824447996462704022435383091418312609819525384286464249303687449109812566164665239153150585877557169493104345208355086334118818178394306809051115523416283734611109844850875518762248732678743622221089488587926265966667329741201871999258487830113818343557621484083848946483486390682152327747859669193459342241382947618185735550615054438939083234197527823607671740620346205764257019695423709383525358889977565859891807036148442199420303369985096490725551619676564673167009481066299341201915202627360863431793433595566203729089886783276157685456882243419701294429873845827580733378160847684422407603195543808674328279698957770059449554409303545120342842543696753319605172784758907055779422434998563098183824826443908574743840487835563500367811123286530016303754170880108122263135168740036465368778506787690764661681496664011838557714568375478653083577935422900542336323676422427176345567358437983033924127563217732381966556114125863465280468831680996755200600714540043166137518503700852786862076643427462483903151200740274933085526656276459421953385310076170379950424147486161688332871624965589041275488917415829842686183016880605511062824376434327881063336008184666084396009770844591009255620325331369541611289779831274291591718402507835085879506930648476368447642177578725978153292230513053470970375473118311460639813247326300690243401128909393726693778849207001259977657746829905188411536522843903464010762507566593118321401863219896885449337549258225276707260752270344120788850016659371656123024646660512137453949385573057539854275417478533737250564931042306894532433001563438150550445402162742852707491551562414256645124844914011635511133804914024508948167024275649889572875100120037544151463506477822601672496862700172329495192281724294955558706048353784607444909234623083242647584117508747289015248729655786595498095707500392367661717330557258173997031634610142860748875496742360184580149790712311727167027990385810501704124513470309231365780223620606958204189822617962378334923186032176949038383475102213163226577440500570686881610969015536528635651661813124794477346751904273024372789476055383114733765303811159739613620316374085541734450174496697245164659730214275338679705665523575328315944976232567187422814293663308596021609599810221048905255279813258239560631991625053855748933869028768919371754041676475647094178521847643709716882463895350543294086055417551967991771514054862727131566128477331743896071530081166215713884178757624631850096081262319164397066654652561041495128299414403424877451062950598159205589167584877700265624491099753121206003302563560309531422761149536206306219067265039679134224782929603061553575246548834678435077368170540274070148687806522816779008170683408101198273038487797175611434352383686740395978645035709820103037637359174818819049261563407577008053467958915806213562030972811312558750996866310128379622161593091635654211259942283418444216368430930807069714039532965680983530565314602414535551942383337489478229959837791448150255559608573702224101305040916488539193455483139078344103867227125666915819919978028055320020507069103918321187222340587982817863722919577551896245419752845714935884940192992859853341123931259039328605723770503272597737013843702144469968853801274888671970710611830114611295272977108847432953174960892696470812186575342735026694844929817684466846525311662058892857046330160785280167349088408249213912792253206512638922138845396162276056985279014508008522791374172083075788497534974349250026160894512141178847692396438547709267303099553235600918140704782059837874875734075622903368829816857385322282478543858220622843251588688522061228191603027918090386072823310695352442477006056950168754156850460889426275531366599204051818707040754572076599460871588364454098825258200904682593322527027986016822011250467526078545634790843078743706246692421764501677082944964877553704022866949078245123244665448240716625094074312900815641887735428743059583130793397955829154659572026842423363778078761890854764317218098522578665530832234302254658786690173127386254393908873397400373947816108047691945955441790806289498524184785472057774008455591671477520810327557230071201700013124709683746297834050097964761411764570785546733080830338982826497830089486908322738144320707700135474245879450103930133297047305745752867650463908044909045908481721279002743121513747771551638935596718477234074794260051363979677439218661470539722900561715719700396514206510609790763005413295139076707724004591565588484335005178356991766051207904162083246705167761745240521261383814567774427607127847687773567991737037122888194054260464638886009787368607777911942688149714733578295004748374644068181392568691493994187797909897094477129674387526169597662338810604450336300840836482090988548240884938282420374472761116905410943384145775899150794315269683388455295754724956214220502354635177391700555567547384383426158194068958148171189218619683508911941407095998086116098439575659006689447892374556641983568333697714180836341825455754233350884676480465426724513844437391509046577654725950014872415186699467175841331389012065193129732515081955371085639439409766734525402796275494184342870731114172546896288199829428042190740609005936448023639676344757239971480539432049152269123261476351980660811811186837670478946723323289180449721100555402003615473935447315313628878494578499939723963649375157450826813933097343485420936367751581738743186036146334121596486289387558521511140366437084841884136818055191960976510184981112742605285671961610200032602023730449128205092175127350601884420954285033297410019971031621428637243619899624954381087049312615209465903983483794626376252461646447349900985039592585685144490152968937115191916448224628377408146679131680461143573250299338096250349972605869610260370322758580889658554240532553833362153334161953048126721584721873036660655100616530395693095628808821950920193653946911066490070148504713497282357516597295180571733730788521016154213736642093825852626249839100638846867785491285907490925675476947053851327901001539050435565182136167942511627145925151087187670844487788782362067529567856742463269706090539330823442701239012306734976005228524483735092240758925586865023523389869744729840808757359511075501354921129835533733010487520042868333540728774367471402807592005885484782728477207449137366602434360694289967592041028977846660225453102222818315677553594277081591702508827358814213425691211826622099814424145151255493183923542442921364212066309909272773045553783020748057063195190448864678883174321022178215454204838588962976168408118646333290467041265291854781146067542990009858757168463380775251811668139526812808904994737893148649617831351367340972870240934706554455758741165752974502837072147170183968508479524096020711597919023603490109049599130594064232471125886685024433624158388883257246739305061623617556518235198045890885201939490174231821125387158847303495492412084242670647640994951572707021538613466655092953410702588273046579100275543857759395741414050791246277399343237876538258025223140062133109965884038296458263192484823779752754753474985634408827334993997204256811388046092364732903626480331445412072612167672036346303267242567684835246775493396958523789733498381515213711774059551955593391314068533707133452072325083276107092513233740738280219676641378360172718089320704641693778371556580596490215826637199438679164480276551301465060405387681556572479335728071184743713511670262277386300557847002032212438156657453599297024130078954580824759393998822629727684666084166093169837055862731572015947069417479805988518290372659361839127033731191019780812780921597695186057416241918555984331357697689797865363964415829299909697964803611966522696261812942541971287708492431644297263133011020224055417218398464254103685639699834757606530787720707756178278309950351583313920995810569297838270495079851272600683886762721361180163204516420177165553171056530040085954677938826866594007567172637590584139814772634780561496962527594978121487535285996554429578796085461458182819173159477230900116229032904192696219893151023234497154193700947798968199308121556970868796556044630508965469801428272562824938804141056589336603955769992104715671605844965181290040502965200479582734401609480947285791888436285872865581838253295251852827381556644458282388817749624357459177792369398258469182122092593784505831284139145164433364944508518798338218715728331168787022035768360670457525758368602227803487245900257214579508217040707074145440238597445155119979522169964526615541701274389523292563039485646942975601135210800780328379433576960782486245995742498363163796034796965105784555253173504744838310160403463061309991208708934128908937205983012060308394997881896191609983117638823868366843340174190190876624302713488861685654885583578736128980575075666783238466333462059862961723088980475793200256245408140527192666794543510099692317823916193654238792674850423854014276741191470884850963252987181367128658041416720810511088447030172392972616506926290615709853654495899658277952969798638148611102753049144434582952478327254170779673316836082321406328183542111271972686389519589867517877915717824530749086600452376793628722012731044345950695128767477930742629333931746028612552631205799073818088052896737214317985330209292923160432446805051707393048755307519801898747211178528277538250987466772068558989176073690078838339453810336893865876005883859135061945747555701416211136253823270801520487273656510147462431705576641286999583816106539373225802095221272519640705177570477949461911675385421820755678701492089734480588517196175093718745417837784539641427322883424323021091335528117994759173915544590096504533021548620235055619304292259290980142755465392961943771135350867818716158404748950593708060199736433984182025145500766576962182549019310336896119658048321139292341111878417528360992514849470707120807037189210003410281746910729346087015978262213934907969584442719453235340938765977355842131857138202301268367533185052910833434493223353770776802558000218532550989525108553208215188362290477935145772790263081427837608528737369558004322646895674096035680941907289500184585321788365601270731589813796619491412905735837582591928640014952622442459763010724758098051900846415622055526460989105031774898323022239760019512844004219237757590382522300175691654072263414373018277300239020706122393823210654716778946867056588404604407463991525374120064630478183780285899239035556917292519188730268792889587319278762127884950075336141190186003369417519346700381862327880890061142612895100561529879003936399136154269320281792644721945278401649356556224717415433349925299694449962090042176544643176833130739205289153236467654026625216007217718301451548188907038666133934984951671363290401481075317484073639314482043619454968510171678013405726800679923809428638338764785813231682291779699326763728089707895968337696531692442990648632496886519277868415369008097808619319222532293686901049517449642807027239834173412960662382625588704968801294046190075578233391109283572951634169221997677625700421756295574619577165915231762931456461298309350764299780016243660556836365303687556328075767013627185164670039154733750829954081784060327571207841675351269221934222064831553758937168311482585919162208244699327179128191426839072302016229830426377471491533275875057815573770467745473562779648085309743445820015355936265568225736707279801559859198793216314804416489091603396153110984813169183140629802065971707457835138293965854696539566042498028137661505673953188479782802291658422075144294314011636648983866534490198387239571860956637462007972287778255677912264959716223859905944151933035180813625634027193081950913696737313901068030738289588672479189034252653699914221069606255974067615688035915423750912000259943952933357725919614125068357410704525719919957557637527966080250790968112265065311695026460382893558082200720955289736902641072768013703179948264989842207200369643680062972114753363295863560486215953401396168759932082961622366108011597262752541293031987787829078691549383033242814916261090834911928853416697161032505616121391030457718794160401032219095892557511043136214486497857203560751992505995047257219516172529208330294230887956365822220570869801563009512100319852818790970863767024980345686613824380179242817094775561044123261182889431820888847057009160557707943506707286780290209768219384003630846844188582854260377177421678758186134096149352095231222610530921667750486532429033514455830905376369721114107050376984844239189405917048440046416158882446422296400255923414432976976358046852368254298828720028992525256685649597611993804933824767276809178769044424876205646561017368718223119657927728291527631409080494516556449455494599777235183409107163661225441133681757832053262038211628425283269769169933117075798028777208787554688077344082168153055453931104021075710899201554032145479621205332817709718544728980808463877178483666440869362234362353056825213957290218521272118378511589247169102854388635727427396421518357050725704780396347747962709358239959538107073488688580703507554997476972218062405660451329533600319433247185208159033664639253710935128602159118863599020331932972891999741142520767773661195850634720880600018856397581692686458857924769911052992574370044720981907274560376039896220458346386703047485090120083908408162953460011889771697715636590123368150325723703509579335066859442878311642050409341422257367007040826432737155192085739729803112019157093453987082735450926018328227062629027502008901856449306851907628139800999389935587955257664844444556108756585578613876383726098605660732967976535639059754867614901343482483051563894616683204782538514350576862497548079378565611190185241221978212920720211988258533911575708234034878984173143649580753295356410311552283694390066673868210982819588531721488635894686362763063336625035366871879370490471099780039802569691952138138017472195611814209770268464413294642828005868397644659128484124363459115621861988454562668466949598640435528412439351312201046694883456469667108035515485162108570330747160246551004804880217251062016708376813535018851164312163365837597994444096303105174612031256432799899040561586812399782277306161286846219194086585835475978279297466738797306402653596811081944111419808690630216650265389104595168309803900693502722801452297920552358909658915248212296194954111020329704128134276841565533045926509031880522917936019442226007241150969948107033758981149156868902102729063798799008130649244324878921524235996392499464341858601660546930353857810030784950822011611579507012842057628560259769761107990869357444013237172017337979574881409001813408587221613250895764110409155261393110487087504483069197428712095506513766941860382354220565450037334045907123696338906496925694984419804188521189143096898663816552988005807313903550924830578988051921943428201793743314512242236786147661355638895746981118322030487514342285118032752208663489670661726770173353156863952505491032370399262209769549685211233831847739943577789021668945249437707329118498724949192895968543294684229955559715695077976292232364711970041692452151234398105297905240872616478115334381800984639741631589531243985588771480240003168919502151139669992354037787976585864838184224166812618531636821413414481686231834218215806949962787040217932366338774742650366159748836670466269397418893381479722758701106159536059649181267728900525748057618317135319638656905309970964948983718505920270293732243845947427976527389968112662159074973170274875793039916075649772152342251544486828376673400649721223119046301531542645104576690909772256807244451563052290865219879579991858649267404892309803615784507493653892836183020676826917648814592774595942004868117949379515369855858433795339335218885768880047690023211005913833356571217602308262493510638663391142850518845485244127610509802594898655443954811723357262072154740749159474402550477147176178011489386222518817881985297146534286320956417906428315620198152013185288677612159931736549360206969083199733641731796593470493969274884773171377178813318186007798603458346160925813168947852182077062624261160797005491219325936766519285990524841035922322279875807824495564187644082129900564569152863489307141777892568738349165283093280683089489955184511291474736014476928701751285025999214523910641215115489607751149763473946951224812081392185555067987569895989728668545887363572845027208340984476726484206265034936757552786258775254639157405300491677797595903150258515640916480783204265871268670297719578231319530816187478517618667277717409962929851563154878596247995946984894514159760790473821463905151675116456761507308870590110533400051299739113073132383348199493433563294060151294489869710772130454190059482274277097376081853272116842964126435028758949894718807124782832915712807229432112845452619604219713966386603820059777163078930744322990728518419864903873582409208216736155862833880771383250872497682086164688051206417978175317614906500068870654390781086310122711704112039559117418011273157444477632755992658195221535638085744452930086026959126048423244272282040788094908446337832485530195951328949238739810858829766001487235344072134101847569101917908894641110904936587305702918199241947784417097247205504809806291785672276362927606751156911408422774303517311811866707208201017128230460708217117236588598724609943863697897749701633025646931912084069385519077047421679437769394169341997457284621464323015776502461917969017545353206787454132710550861593746620670078881447357878100978466193277039046140551222254479563212733546813909064487557013221761242912554198343886536361973619235547698798326504555009663295930562775786141348164259800109913236662519601134028404635970120398842373475551682524486140146006672119483415053687174423464331322306996735871937138315963651214009448219362056980712259117585875317396460049210560447853998108723423798640784412479532424750027909372501926541418443712557298434483220651104355870122744236538840834712595809880220573164194749880743213479270893613500994571462120732372446482790080922343776012657173050103185907870858061027950904274434358105884222494587164571418836999296093321505796618585083019121893071821147853434475361443399137062713002741439850289987472149655598113244536995950902112678628280483166678378365316113657187402239027530462605096663213806495006028928155796449553030990989610243921484956462959566656125358941973160837892822062755983075007212498613409061867351703013426892152300266801016561327928699810156852912511744686941521138504051147691586791958406159408742551459017776881319271848276539145374937195436857056391208541293303934489306725923075805812907768432970604451815782443248029821877350862033272929939499847950153644670813996404617743586438207108933061507965870472219780134760013226392758961437570098674701474732392663034374321596919598953739674601916623878059572841607803566140699973077148977435324637025627286861716574007885891736939791264136591327506380382969036155518854254096050468717872291381278556263122241124944467035026461778972057543545815903217550852858143792451011071894461786833840340471515091515118314029005434559743982275256302702607696925519025156459023657905771875805904871778850328360443092185753027004095257685982540135874569220874120162017432432828361934648822426133356874331610612764685768592923033863031472638025447754883151996312382529186395617390936820971927851483041416430098691352038016105478288909103317511078662432783815496080793866263494056307513703315214431876221455960366562131455272506335310743524858565186148163314431958089875611826728202743506959092523902344811539367071214760484100565067855340805426422390814006114412256052498564526084532238419063486568016262240001105310199933383151878251995193755114854114502364690295728570324169423757517769550520200280244360672708026714944820982219501598822795331735911133685308516263863330682400191651188205991363369226186261875658321057675968384797604237949148794898533296056690165152604961291964307557676217181160939945647070549475792858603883284355938803416709508696152341418586102651936398645932429321994320841387609752608521639582222939982268723466659029658684031052195803213357619404476152198221084995289228502194093532995461728333143945094816292511422092311199880004347421095182394754384343964310120065129503553155266140396944746812176285853057081556666515754262952654253504372681126667558115100742776101841435316860096919397692912365666289043897106080902660828037335712699411558056198476455372788580944522463528946115442251363938519110820366791215156388483814360802116799796056772285025749791926106959089818951545897711387708228326206465683688870850175320570147179737214724461656691706459780744082500912489189572163968829692094235635106766389266549556937100086920930461463650685931970330331119535540955914749737722595143195854813578618681328946478749333348385687525581621639239017014390406880279908128114752169106139919774261373899985282169636929346900818348183468067846240363107484089793160286011796116026419399715058434934474528993309011977176010039912768132177034956152608920936411111423437548103893598920632862581897461373097615595629994283175508029677479803078787978917500007248704919040757825035892484814945787588016794589310189029531935874488854209018294676144380419184386846265566923870777962203884820168297036886998592929405377961639579087103048088983998804955121323757463384169051286383071342087481698272965990239881513845238704013956701675126610474674209537914187691245369461939531944498865370988296652709756726317438423542063503705980996507352318733196301094540139284475002851399354863657645672349150762208342164389170167930910545538769987753397454675763789198417274121944383954939383483376579939523872228540822152213008497967229908333271794805145248323524656506171688152645411810080650449501759012158460021844849622242575587467247050772833123702584866703552930865021920234611245350533455577222836062664322482185604168537883195666034008100623088576147356694037865886889891027836415672775110003112090036510033445730434576911655402631485781594474154771606320652423041951206709381224814220803872047690774593469280379296604404464704384671071881361037220778061081055823056008623324312725825941341044051270955010394446076407100219007723010209408675422574058783448199504187439714023604757690594953636058873561528135562901495790455609179519268579106142350686496569645871506951405608743756795454230802147426271421963365599772136833016251531749626695958393891514100312617168021527524619281811939167343678782033869234601682611638456199325140500782934491262071627344602803974180765184880521952849705427443727283254738636807479844239137045679083228904794945580384036397004926185192238819882382932851170509029174793132693882417851847395332348336388041025080519129879052333367098565760066921868591732436335775750654843908878381239032114595025484486109271544959356296844183659901187686003761591902361235211669488539812189777955866033604001538207717887875888120094395443943087048661936229716560674476272878787456307557539598363953176057394236326050165267005212802895428402818974955721437938044451807698652815906876251517867918214285240933511609388886953088169272669429680957886909887611460196588515251506901573854237453662604308054380063228567316793233631041908357937334341875221918136684052645151689083361175290002224831987198728288512003394222063220931260748825205854104381880716050494580332763228694191743205070323457899583034202681758563452901196140289629857001769765710808051348809206235906477839636360021514168927930109042009600622529868881842235677255095363773004533236659950446439951321020078746072530321266520230491350676569922001111536105836061934939861281738238674152957207592732707676170541216135354500828743663620294345083950113575405956876460410032426762078564366042759034326125825268589258605499717649194303327459462591019363990887488286252038190032731240680967712777214726487307129596453199312450976950574002266792961317060507828052747583974211873459969584325578855433112718436193286094216547013090921449967070480946331312310155353522827218410775264808086783332724907172578078536044767225824162693137456296435275242202430721900215361698070546818293495672280124439301139186538241546900413289783953043847618623787225034492315320642742489334366399326938682693732254293688721565421240637609820523105721606091622725304281626323263995359036058863977851821217094251714674226372281355079343537167710203328310330778542616142224728487418186673334058549444964892206403096469189166273735230345574462895716215861191701837167111986312117887858439679604242099622430935191177590375809227215835960045699136750232960650033430813246089628140704867342883964181076762419718025590192202453045317632351591624205421945657842783740643743622437889996082625557497974684045585616398034576958205846029638746263832931385637567595557821558568842663039319727046284912463440409211252226607063881663539710643353138034252586683880661688672630750324197503875928879776487517653139841721325057787304466022639530149118110324517139304916275380216236688837248842413181695482310245956746161406140708788173709722249178212480881814696010781986532544575851217657429373427038047256250669299263321506922029545667571857472240936241263303668958868888909839761575058584796618814394963534603120983591123195439365864773764894696973845007267842158356011579136933843528559093575682203014345449060065918139452908413320028390488356989246280727642983441200086187086971602500034718784804042214372021046037426192201700315341966220983476952302509619432714715264545372946806467691804114956606905925588338626702944315092960170105925425598798718306324820316132235389090614171624563626827531077419774123394936010148583203960185545168298161142057204240835345606976090849956303466161996103363533761495840923122572864612643229883480172425359221853491543495865246954067546166619158285485420855666361503941886975850193680968762964462680994077510066765155615366434921726588054810027306892358276776076760493094298616507690121008973886893123771752531471990841219073597299380091589206667398998195885765218541546370567412379300855659015260469629284213889077669925584087221926844567635536425077433093163119051622544689755172577482096766504194427284746248640370617770610460682920841203135996009215302202720976226131720643812676199222012870867837849717547590026627705601880878967522823636452311850443042834516926428853575911923321224576826378487468566891700741447180349950434038195321441604062245253986666717546156789208820467632831694582283984129298957875092555117621178158876754773042620246144180676852639982956558441543467417347403632604229748914189617692503801906557945145573968489469036652474747237252951684987639712579096085181272354057268660639121103426762274907856298762786470156742065863303592020677079908802099735420062961667228147764646549675662662200870698782594731598437737168600847173001776094874160238329151474244084554820753020500346695404834621612088569778047160721345532438125784356540507215949416222183295476021535832302572249344116376214126007388747479089495733645234177261547481759466104912218000921847046982699420003186577807344905651826575080978013893630364113512597809541382017703733443105801449237463333626897198159542666004640441398420452880088295077036643784939832222890799756008981432909869930533551515257277773997555485091405859218841964185640445583704808079983583666802334210565418557115185489984467396512395323553338906364368280708413078360769042782462624409175062168387287884651498108330836682744288670084922976184817808805369160996480959504658171473123429308768829929253887559184913381298621701608674247537335904204338176884613507982342327496948655534545365041669320817872528674217899766488662946292084646370723523584655591968112547171850907190268430380342238488793496561845474536336754938662648459298305260065904052633953212985191936100959256260709666137878954953162905047032214392113817571673126612451248062460104739556030056367651079628861243654946338951120410878216643249587345977557863786554524261873601452690860191264420155907246578151455411474462042036023284795620734234119926118505765845893096222493842094124057655702802543970659577432098917543441823242017295475530362215980875371132805329711334614150430068418444839638322290118256142018385201833935479824730250451760984651957317391760786589315903995219804892998164818111712158785728266908260447398883994037732748291693082357943063927880580611944455067274228055991563953694968559088821959563887896121716916102578913646859364816610864686123028716660448616581811413311457059332608917276968596999520716213752528940460713710647924365525221337629892790062211301154506596818323763626213348023439916422443751324487242315268552821851774932106457942400856860887263961166455587946160680719002076723870397407271672633120714117808286658734879546621147032435060281297691844939589110072444681000728741618164323840236810676595178374993512281008728719270594926488131658677967531353355221794897561542581444968619295511880688644241215846170137238795912812445183989937699997461669933365293265566389188961096220840477768683449061765833650429695274719180320938777646118799048477961410140573202170047207979487440900037619707760696023784418633022974695388911045844526562539355787806040649020459053653362259361261066650069600169955184258402555682932031784773490617183029813979311930142085170197016303859432716796552075216627418419405870404737102128206448635644547984697829402883857113222097495967548101780753836390250893902847881762851004987000649567930977979342481354379831361177573974417590455048330597663186045499520597016721332826110923567669229749789068038646432587317880957554900556059392166663589941130020613997533747014835953502146014219526859697311293384662998590288293294850275725522511514012493803588466584154267581698952319298030656344206077196439241926959232901910207085606504581932034152439643638293380381634809470843226229479999845736215905639262363942848789926959568539882590648563367759969065639975853331300774062395334448157626213412073992244813214343136623906357557348394852832415409740595743648083489635097660161000063763044432908403448025232612022571510186298730786521670564048523719086178826363217444894945089200266801425038802405611451107424288199773367348589098132466473314550439078572733522362163053556683660921504759453841076777486759779583676646477035833406800291081282367742555771691824356760761668172604245360701834002899239334116385590936976248503872718823247444565824831927099949891894049645996684747361764905221661752277172886129848363952897286763061735398377814211369279049880336087660233310528556538784979311848007862945810114592866412635234534743564838579868176600739486191801238431964225091129136897496416882236436484109172347010760205250413412695622101992551359297062840622173394610462618545780632539880579048536465137580295083600979244040245434724034868728016036481455341006881180234887094281835073782105813986435238775344810128557687173750366435594070848885437690476597840010047517681721071580592119981545655995649106271907889585014044694712769722184254674421695026937851075568538623115256570745766542011878476602539775736975624000598874634415043737424520096162167717724497262601608606856581508578554022226532783667943026916211847031102625210819207812468571423870363753950045046499070475728345333483861189864438974335663784788240536946643461498648313213788019032152523290713086002041623085303061428391238793835766622190036451660690645002833346028985782644156899051026157055999668862912816619571512607708134556324351395580486651531399399509651356016091581592017709386475485607788603580495453614583544326307362497260215721886987826775548219641219576908350080606175398419580398371100148329992338867753715229788995689840781383062327029716462006849448546021359145914212055552979201358885069248777491177558663647810108363643655853360446843538701383603275094344159268928192631161324093580655329399510590805661631793669668473988193749987751629938773891330410265518071644444455434217843386817054742347213409764362724812620509062888215777524197228938079708882217386851360904394560736924479404290975723911293594986692355363000147955461516402363857857695842994784860446627505776716219624459314159210824305827911579925487623436613843962982652770425706357604508754979443784993548608494449854509920603578973442647115850491447954536321707871121622589150372193403551290957435889424913457000673377657608236471990745226561485122623358299973442221749644028779560573687464523392908812997619216580396335755228419862681012756355693985770680209661567665083982530069107302194280820931143676203840404452980625284131249475908761451583379024685093067493107872483100771050005472361368089985438028259626661794322096119785542183385934668086756253061423421365658784910339389092699142264836330894589240316464621862940519447397869495066394407925475318719573395975752227997815911635144758322204417898338212698875494026673276522434788764097157346542151894107580986492140005032023128903316278739258905829316793985773031479519995544204088346782989242786342988788373509487847246597220192033332498164261386765088611411106139483811405354419994545364668830415874778452648355553159640055508397093296164164559478547263827110054642152782864675096042472925357893993090288669422414908820147161301431545973850074491728118952736673424336576740084089087725192953504130538720310018760815160843609706658932481375785507604507343106618434951957565112994515001246962897724588828708686323624565315063519873460335223641906463515383618424540132835219048348070814681661126861995033184176155068818730161987254443381044478349189082035606733885023137404398430136050751758074032043840399170318358049331290944783765680419777359485598238452717352617298870931885373845886694139706326691523131366834166038555587279476941778473208681605246737156393167690063865921125598116977649518297066621708027870282981905149509551040847428750588257226727589689847541541726939390928845959504259214873715380633779317675049056550708462329404937801476510141487088921337406179214356763598446835685069360359873849632084183273420086569348720619872218738387748650757368108984592504579790654609683171544067328087692303188891396064854007926631839718641063277140168189107388385277189041346060788432417782542279984725962921079946248863572887317533897940383584008913279333047401657255114104751716240510822053258227436405471444644962128905536502299342685933450871243893620030983433824265076948835575540206254131390610141885388049304109905442374124596432447502466262171935700696532992165057834745932857007227067898075777124532711294467816538587070581356145891617758440982023885817793328518414901063147319873699288173787143579923146411900886830630323595220319634767392935755397444017668243300873972770414695375396315785012680054697919228520439855042988413612452667038202435400335857590890322933227994669356599636224335132592386859116443594297653677920380073722552052903063082483587301792402026083654561742115463029823186112419591032090083789203453316025933757688177703193679122601615433354327420105986173161518643129335351660863903777639198402156323267694406215047165401684263763416847639069146844328599778972973019261176713852537041068253822728829860023435332719032134388321703931800348815271696393483841445769156425446493210806125578360182271424002455585901011944561583029923398168487298233706823059022367782554604572640527354755129066339675353570663373369936228627195457436750482870427555826232701798886671991405514144464199517588460204490782285793820215515109950352778387294128567403271296430662040897468691498956355032656161506772541561029631233948314135487238514321303480440505758730636438307618645988003001745782123224297222209345581219203306861609750231543902224029598311171076867136448263963466937069541156004224829452966229873282339693973080757197298388781206083875477992921993722470172079947123939384563848354160104934770190873217590093116208753174587507254074527521131295043840386371616202552753528153321270101988468496395888608708034810690854441609799723225805066002772686116228274368961884824718846060437566638601866031640618494108498801531910422277548860114669931613132601163742954228850066107454245840320924631171203157721198597907441780179296869159219933437459482208656233787128273195815721580477433403379994935036375949514196777550389975716768284664193822657760972883406398025071575366832690782682277815487644390236761169597177920765852288288945165219675875767131838525377294334911091189550525969631627429672865725045273544923923169704562000003416116883022249334331065671676307755047417362905640772543592895446163922070519216978260582022989392291071769529644111427278390436768105844489264217131692825504373185390430303599514316686784332895771657738073877378290829360529832780336261991361738654733160110742903157380519947027699937637931327747065242727368801518314789239243807971235573888541313027845615375519911115160273557827575388140156177555253616246145079426500808760490808320850976392959290211107341443033626908158100855332415567621745556889334436416811156412378295100488948808319211879607620057971797578548762129480716786817553406303412130374622323502749872817848996011978206122071439937659472834409851620653670227521482882875631629341861726634866943496331129118524066658110483951253658957686401834671152928977013513130017080107192252400394704780478273791746331893435885167551213050827418518537398255902702497936840731335892871459147888781913500264813555822103955103990175574104980952438662211769757309379306379148019750919066236429928649788894335141544729153444049990947487483624138057503534182820636522965162646938440714597245738136138097862386638807564141129166514732760047941098318421539827507922057374275548372154402913744254750886174389233575785043545945560736988445326577942349520817293456819372299936304335509876410551763929930191963892473303163610574533202803008809755427755135377342994619287156043444959640806450127743947692962774795833390105910604582769753677735316959792244349996732733014868850858187635083892258163719335946542494961450722538803417432612678805810618710519982407002437162882738205469719628837538617508295411688522932128926728790918279799651783720023153751170404195659519322665574421208456433518271420161516919504569080528558807077461402121435158139503052717108345929387247181703340013859905535627868838194408813570800214994494951579595597504124008699529549952096240486182442609204754483428392858220264899102662203668781290088392199758358802129665153355852250308991804700943523623013597836574785616729090394812921687882547545776305641467630045513479549434950526254950094502718655774727643127433776151715917307306773641008298752070718031417845240746986408820134257647426290288248196888046724727835406386722600839464443595014525452966469206666009092927414355831040377131762137022325209642816590871045195432046399935280009083668225203969133604770127510389811264044759534839323306886271488962542689569762503506223233614169602396773388081315239728456995667492058172961696198861306650085171008810625246896583122991564755964236640899840051818641754478206309993329601354062555300316705555892601147741857829946736401442621339055495694481821791408936602567912908830857434602075780019419337662935444261663539582291823104491753286451814829805150407164203210029982391412343990878125752020623461934406240689631655389388773840651951966560001425083456684666924383439081449243126801876291228379308771401309303877729080001623971431559500600757647810200740224715599819332665962406541768726713496213555133504885639702886545184867184881281861575257022311544619060515855734901253981565034886904975118607778256574932624941542899873150691141150164060567272852087144229178110622811643825388435614969975757264904558498425263605514787350275670154300922866200257188769604382243123159681182846881396771365390099468255730136642682372715302500661388429291432075738293654334030601641164038362215941166793428940449803121795879530277954452109165784315145367669009885779326763645244566525777445343771749557419368797846803411416358297404597848373669364534997001939520097665529250230982637632428189732463052722928342090084854045963652496236609355305921981678928471836208481683838846567147756078864075064091067243430867845808832449251412523650707935729817098761693473912936609109715038765272220313589175998098292338399368289013714332037623489581531279335608712601413382315970368632682554330167633627415875226245606047821953260998104382250928328971961033050708927736148397209431957901277498288630322020648711112150589906951870219087885340476905074297666822807850629980821118518461993903202113362026512822823364231233866516496971964685880448302352115821666052941432282443880796712218141850066478963964443438691305734702958947912328229382082411672147881854344925245218199616467660136343377224675489527269651532517166423904398491517705148568983677166380058576428249667697302644851388087144118078436196940847245988041430703836163116688142521256652315726424953469939950381224030765048954215932052204396619634100965606396431456640861664036475122480620394688873980719643788779608264668782138715272752868855464691487374665531291180318149773281893260231093977774150601646364043204485854075666957617785331402498161683001958257013925753513334599908607333573719397485617954346240022674698211721846519514186308411655870959553285580021373842193252289512116357043907545862082662268026083711460780290126905883012413101714801891241384335655906008246119537662055167561387173798701337423531893622302631351253864727886009472146092927490456220893370809502459297979289646106434060753771164532889292595684857916853968858937866593330967926141214361801106352347239498593886464018269484226730731811217647359104512115898989375776804979281175986531513399998028488709830809278659695106394857995899986549084052736944845296207072202823659832157060327932197208737647968730412528036981843771866754243384753715191780436312598147269313829523979767027487078793661600324177738928278134821098228312769472678090884311689841005768182701164656541442347975269493749169490975665713296358386834729021659377498785245034001420045302577763939755496904314259965237233533028031759943575926201393765354946593846353877800613883513268275670871948838920593254994030507406304114454848994350755795900556253004262753966125841965446296997289579433083874942499443179499638150946707166748569408782197551152059633706915485453956893295367160144407076892817340177395953195527177761558480670032710102246278861325488015497194045884416556399678477274055274062814748597300274093241355351029667415896245016724865053253602092723874630145640981315569515398047758853531489010359585556917845450106635325219047918853850426826325013155110862462635029666952975529716834463279599193564912802040920466046434643481242910372195608667475338754880473500401824391579632974391451217548117683157352020421262567579981795732659663940968620382078766771603244919951977848154568154437949169757990180618954998658666985479906032004932641464183088637914989924186764052699055872184585587497207009129227897596018157244399798331450790983100982277047314110526001362547908089639147300490731435965935108202965875231918065846610897300718221517364470213594020039523727277462518858128445484721955264909005517884458092406301959619210901436188206842447950819673980675497788554884108540232675861958309314631143201842078265371536326776740704860831586457288929905732832854160755444411995629920066229053217207639853948379986215108750184421089290651584709831036787721384909081488055312323306025386174589666798530561173514231735095351954855974069504397936071629915583064600093415147391520220437905587857417959748958393083643107778087332958847579906554284097172881596340638321489957980718420885654852389133826941542862834749160034400240238262665512940603188067636240188730692710697651465131832282894487674704962713837821512900241504223656763284421474534503002960303284892515497846547173393416018182001711893124870136453668116397274018056839343222001679345525054197158624970082954461618132427205858583391059362709554113789608527285993499274163653092439082106995697706654867300486432830707585603986198507683039948846976489893252444950850657454306610416555233143688241681820966417233943435149820206838031443974435011873388162759788725884918153832041489272768401611206755506295610367110489311800279051679958896386224757590314000935649284399512944445690505890154481116636859441581287628563064506821186337050349218805956319971783884779625044496405651802140699801196164943362492954222842871263937409822023341042002537643429085520352080996331606403623941356558315290462807066137721520712764515266054814238030540412970608738769224366962668064342928309630278247479874944203794107931796458375479540014350199028665913370806301903458465955210601276391061499324856129124934008481633360602282548366054910870361150828424177655294832184984818981064657678506682556784082246905036934339513775270595521435763966319037150598151446492297306446235889386550780169076077063335034244509719589968162174673664035739088448653741759312470602324003763266929116210988676380809971865508893188885212732429500924469835014757793254789940404061723960321699550728222773948281112424380644382097784240794169478692100142991717554021212742882254017000499514861215468202524731246227084421707841752745916033807613609536495515681464077870292393229805514300511575664456535670465570202800401353077065999150363159515519255730599156050235072482571104064101543990767312604141715131298901955259817007641482063252773901959753651349534308444052656425371085915914355230924570127684049182346364984757784527488351045294306786120400941323484181259176416279369716778884794075270670356094158690348500411256881321393237777374710768379145544166101154635828809702663125952910782408330456861482507894683012162037753542002941288104295185196411504531104221982442328854086306601253517096695508798961593030138230676866337210716937164626916836005234723719425536812172972494670260300835703028508367538431081636532154179606297913950883659672463341891146072581783872660453326811110051561080516764218966006727868736213904330392409524957466606113152883913965877113915932695059284634827766925963638750648487955981698048027891995295815133163924888593307802699602596944456454074651290296455084685278874882133061919273129367742774050229143916144600799296689945593197260769631264645116543232377944917171484969244858800486724727004833384768765112821998353248428350275689466897259623415973146874107476513452522500608140256825462962864210068493857513427297253171283948590021734038435042250692555556553493699210269070610471487412855466949023328775295955536863652921924846320557171417371648075607194261353492964711427379446156120779407931901547018477567270259632331592115680956327066143960261984816257613211353811860671882017846184874582078791006258278898837914216733719947198641990805683068178602438117897141257543166434519667874588165069873209883717656585122260519848862013282923670774168587663781492770507273753893703591810386152517915061306042625868388659959990346380801397146443282427897044309409854689854955657550964524666824309596267009523689674846247564033499488257471465971219508703237883263518950015342012001661264069317333360626202676855333933079367059783878967473941660282875172242670546652000477652583630513885197571949250406020209477137912843973389484866627446374735749410578792306925711801539875963227114677694190479422722576434411214342927169547529638349954814078966346778731214161706560665238802520324567153378942956720649749051291590972701672698491111769571636173723248653593925142712877196994046316435615869642339576461809708822895178065762139047516180254205030620801530653435375197051428035768663044940451321754250505527844299238137148454805633776110876687890826717507004654022253251744671772174045759239139379478186459535806253380042076744734661831709114634629990208952356346831296066049540665937536958150534244938849800228842351771016861508751064099664915525263571828480137773096925176170441623526379599909851559628716299460110919614727812405043454196211502098945409703627650885601455039361632143695737773938297357579815403493908116413110216555470110135904470478932703860369221134948344669780482544081507074102616918275717014677987701849121797706707598586931196861926291805028916556574169505352489119860512881031995901585079347769227939301576382563338340779123093084198727139215088958280100234382136054284707473959956839483398571266675937658020726124813014438349389612963158777665807117805332794541244308805659753885612265914726363077520189892627831382133837627795096701572871361118050390525436205171298367244607249869627012017883167583929064332474964768909497903053882748889114714663854014643550075395148871601548301752452127316641480669680702794725331759492736536534655890741478827785867571223265288135767980535579194538940482246115816809554808890891366900386235370434389368392099982906245270404853551189466432347389497774830950361664337208944038568204727489344608229457264619764737050375133703727283795368583496124848426779935830348334247702690344004932003089046794860229635910774557193529479606490170763153113833097862340257006108341816275254279870219190614124118272475996811343006433117799441558113290418161434214680748998381432995320722342408808516739788791677613509509240528332866582800179433001857334385126340575655233027286632936278062932037689367385914670330886774123399007704687031026056224238875846332847619411034945797309580530686724770166921335167220070764892264918544745366170179674315994033036555570498970593664465503734641884456117545503686517692706559389133951163979219192212274413201858793035884719246096939053071806774389306825500756258052020882782598310551979261505019965043551517173227757054179072344590774017211423694846772003649871430751328914262230285200730156914842365453907043891799419356968096234142742122482300657953715331070445133509102921376374563612885060377575428839655295129613903347742379489528073539700708639521534847146737617496869987243549203106153882932510159267920182948939291583802656536180379843692863794619247192200456263694932789171927151319683555643782196106389569111871738652374537824065299045977867270748172282693706970969576500016409428786429810391275002864378971567214031290857560671406510037284101215737473400852669253234458574553711071323386477583003275647788163007668153002150214868137109807060051154459610547911878217180055353739594364221991384962042997602899965144511620609867724744458140607556067116608922393602209113430505247090209970873725565602547303522179108055163247498277888321011574288925502301670964760505860940450201467281182706120791882952817606789599527397452269569135258624653874434019718532749148947607625470700425883362690482295244400652666185146215318652931263045533965708003666533925424385380161235835757942493231767085393396494820415504604505653318021671900929199840460458052626086969717731653548806527475286187426622326544861625926414139872394765820379808741848889809206293560540910877391819180010091868483809596583276192704913812328439870391228669913805641582834519232709389244508824177853761304154054832212985216442912838501641849366646371093059613419583260487780833786984212287094773310840729117451699471523494579290200075446536264365396699115721290955894052829460967744184422123721821604960580465026230300723239531466781625662963290955304152506256448824783925368873169504670585523782591103966995788227701329269543406814027866086067432225123836518069804175666294130131731955689406162965455987384596176925125610473207149959342149438443380597040608155172123127557176689712895504190179882710794007796117154671842700954783260832737743004958295867549005283702488019610296731341987462728109169511129846287301404872474980163323612861605891795280941054679280806548868696168716237786082432191543692385082976003451035901416011045082263601178559517019714007963448546469600084873834533025297347132160301667730621393609343550494742540869586330267702083540343232060157847089555824735964968977697593247417917116186286841477022243552652201454387486430384048779791868512005479877870994521242142379902659615190879607740328458884193565647213042954216993172781562267738995434113475042562602014113808297747742544314120581028156005513353870046161946515366089572836365349430817184610773148783717426610241734790049436360597674543578827062055499727958561469913370561730737019637381415473870510000910775821249331841351478626785763940509101307066810059443560088340194676545676203745608714940646160602298532229005197116713713322155710554960750080038734893587528494205975811355573282965478022274227018650123808183966665918920084815116731331358409413773630430775952677737461213850442511570407597493186836124500726225714790636536318534856184114979574161185407922615923866489690096386323722731671756216961019374819764480967027276515312048716546021863208860842705406147796507911012015774610775646560882578785071485864458375095622926659084063558174320855357039691191667792524916315997689148726887840084167966151316260494888778033918786456792739227566681103770341390329737349282825330242414972108827478916086230002628559326637497501231209120149421201296713991125781069418546449938006678515995748543177122356518399006567577182323520894304137267109011557572412258918329017605765280986333620356646625729563935334872178970887598299781849859586066258150151127290016441272848725588270591605170867886120722189413246479716556825477481798764521797028703558752172552399421948259558105068391856519435163883494998685863722166172848338846866402762745078294276555455443838189100020599332158168264600858362546004645998719280335268738432997193714431976943865589160029758134916902543784721122840989446637831280509932707547208819521377201769047125341994343462057832712850943207443715745584117550771822823058779261015087108759328952865161711895201451590917452936884901575747156074946944581292871559254477772227452858752371806211059702215044982629026428566530015647351930800847535044659769641366647940501033245252134763467998538285193102322501544233956440870687621058444791467584242541890868937415672388812667677376901371735786834717414348814929992593468153208819128584533772611215380227803534344781823282997451135735269623075938652360125729620295371415899004480475450848054518933792710868988592969740561442922691861469720975486232737141051778200014459835298590203323467563400709965980891756732281410966340311606534116192373296810178575721174338192371998601494825328171965052239705109626067973145572880339805922626277024355181908914412911797279776323977734468103508187013147257889111325501748331500080666941086105143507962904469696649979188537825775775386997594226558382742641618050455712091039189516683417639220992308298877091439824282784675038642222464786327509163965564936601363121632292302652825121685812328789960262766958082091318912524784293144057557759099661200216162154135531503364369647613046036518360275267507560222488875311829034013977563160299914644627102992812500467015566573981329540002554316797620050923638845799500440183539840329299786104020370215845736863472843283483595484150533274084383421711369775303611408015354816119729271512981718216744340037057591546758585330044936560955337505276088766907597075897589148538812075713119335042800384782108175337166986104895216509726361807367584137150886914526281881122196009262396750149791386375601375784724808565613415318604941807370999735709678235901766737194409750937617100912998007406877351894376113413449972739586154336681096922694717009715148310413169822313100450088047468162850318876557308557483451348992572329444031050808579783384571233260732807380323217161081162482311488355841577625436769388445551207737886773955627530061615435268200070137992254346339004474676185342590241340169979999609672599737765486010340306605230002298640182047357104592341205353560017024430413114591572386938056226747898268660630580412136779315093290343915319416871001826374523697048897895290553079974522881506209334703677859271755344307050604990798667756879955551559832301123064889468359835973062723941188118719350711448951943207774571256360930976998346350237785692263134118584375793965191639890343083751977519504939477783171202526843973325298315362723589978380841879324156178262563296877684158774472415323142911596931530041430149225236032029022482960209037828900467584397904848537423731873427006411353407958710383864699049100766692312824399305924515316100953006227687350400925711200906347780964831848538276560033628349729565020407954889466017187455644439676429451279398315537295533731030409076940357961887432318180774069485051247059508506463105080464125719833757210060473028089611054891426417279450581314486284798860154621106319705893550008331715745144939120419890370726315966295069176309933538378432683997811146001070944260841488872785228512448169213822786173634039344167747831268182738354616450177878853665748178779362172646997953816235452559467931955471071773186184599615507034300893441647078159331335678151214432319872963647989423669084837164476273916492646097778189185082794120340536207142609193452816472251273659426324649593705899521015300316732788861961733991121843611914962106136986537751637762295407975365034496590830270984467204737439761101611585665895725269932328183392069982680731571012716594338426416036918228915706587420192483619159326575000297373649518001905256627727270948477863072187768175520424913215749116171038864941494451813972043473047636266084225075060467209465466339741586639724652266901941396840812724868864933548317038529392622033053883732218636605750675796042358184588695102346746444371927328699586044643856022112553246452321115271885688637698896645141946213703434199509600891659302501037052342043530181708530030927185821425653237172773552791774586051661705638701349882561656167698055630424457115199628356430455860136480534556332897083338594624462650637935221606507953784877783118778595988684493701120327581901978957792364854279708098061810584180288076345199200826360866135882454516328365154022958643972521686116378634363428300683498452702048910884070388007413171566910645341802274112047174397251783168440164869421051007156257936307684267121738278530493634742258794724524394276411729403596674629864448783766863502141607997209920124005800836662549539797817924399022130679613407717538083480943605276489157538085813481527206845808404425206164931773124349586644011848052349802877061783792583427921894798540747243755101994142545250484233102327840453568923334186188830659536840995327282746262677361477982833247669553999423298197757506523440477204375464603575946643522600855329053324501445313886505027516426722090274614668864491702846075807054956908336734916031542033636018671506916941786183777207956201233850568044616984611237730022084636309804776963177458835960829346521532217690240981049517907214383295747677704946143389955879182640544108919783254774887921385954824985541753557807602797865492988092970335013037502750517715959469507930360096583678284028148347915707205173972160320165790757346796181629216314815187022027018296858141854861138186402888453286161230752431719783669351360207132108000698722953153305695976043257422902150019685583326120974865906209026229158432445897308427592203363041266119751103946385381132524546828581695912268709810105260774546480847299330777620414935601134144860665204764032270185582052042472072157764089628912989975604268078380023616913117464846501772472961273292328692541946710688376086841025675738455079382213554373348056980804300341921408247278764107919978416318033252505200903603776734730424586769367804944596838910433046863595830667659644832354708567793353455366812339627261572540559116958321165151174051236028899588071396083969332031345390764591196361823243904658626322365980610997212706064622378186706747970436437848962760295545163345156901357919154365328876877616428747068129512851850966126554251843810290179912976411595305551421537671756076798268408770273491824955242461045943955473035376798570660578533229502140201584690032274372768485139070579645916314513294421721398483107102751850626921783996301471328211222005651340021251171945471992534483258872777145705368657394545526726888015304720126457362126108938328450796629968702220860431207161573737614968897625025419189353643574834790539018960421661722694966285457979066300456457029907945126808724197924257365112948291089539563376666135715197964883373121659679487528538944943300902835211271114390493645959614550408301022913567059741671235133596078293561984145901071883032008518588151102646049818932366099505839428203517589779315446552397375898261292361626730466177313474700427437319719648979523606854257110851069084262615607169899467464856961154182698890826100464147819734826149161256743273378054500423537864290508213655873059542202050869381964755534748935377204669536444366911439738895874696673969881627117752909714984764356077367216722994252221931779368019282695532693196414771579713823741647117954385599841089788198120612641276050891110220611586088557953521391582616128305805831931135753047358924848829891043280444433882477403784265639236946247330869404868519837960493196394103958676028405055106312512124748349034704341961745528767763772991659597823999462137389610550883780959828572597128441374504103085633784395378901370029791914300645913593482446101893816015958349900420027637199579263585197266322815257311804643133063692337991585716389045137387959409755957381608875998329148290521782667428788039360941270672963116518649820948930132794397997091112438091937348828343919772353698360666989134551168519152753656974182987847463379219646784464835145960211329665240038122788931347364990227767843094055017175753270860028771300377172478082411536690555483219654447577347993222325262627655777928223620209994998264948125088211765197346741284926674700400315541401798698792873276861958422157019692728668764976477912752136706365271812238513337625019081204897971963592907261155851166899594104608435910438302877861992974173849990905516339471793689116787365507302804522987169622016634910615757299099861931344761454816219092490353882068312482071665789042962882613758130363910422381780733693358628718752527467705125613606925297771710908780364377690312919180409963814859184036498002705945323353386630660038682387760265758593113775349956238914665368993072203133128681025243255550791266747297656940229684085186354394241890249745019666967741602839596788489355687427669180620532189736893621117278272187725468373514154476824785739019698213321815604635733417020498726320118988387206316508366351779479102411704195584942431704646518901291841536394195002602680858017176800434982060680655968663517995774026515145402662117582439310544846912476639099472141639506627243938007113262209042009337524735969605659077474750975834945697298907185233140819538545522380067940179266018508435212041589185285505414858940330729373556158029418661301491044705828139111331126817142207330325426708562639392245836323988845485539260335842532660912823388824264225430101845116765762789987625496013299890312849671517543300806618749194466568486406726663818386032445834695948107812120797056064977957674885610394600610642234881872502714544318568783806980614853548473492928399776152364001052828447526960594512060779776413676405434700077038919222748639072168215606860316050767214825756192505992131483162069903533692135699658824353277417992227779421446285519748877827158743522247080774942452775682313996297387952951813894583470820499632008680439053375856276254048086203602900505098995895544138550801680651499313644624512014643262032729715916765871412889805165988662302254458244799417553243609151350350476636013468360202401987754830279040516354621300502572545642069264107988076940664660697307324196711264990172900252560964349406588103592234767262767543272630650574487386502255367523243583813554860288639416384694000033434405329017375999589598062671402141067084700064155158896273159878792270306478072233786396401867902585144112804023873222398227374748711767639672857766413259357052799190060350361509465050508052143253522186306834820224446261039763849894471670249882285749561801035266298179927652234386514988829045120116831868184441940159492044478802579285657292526078182430938579078566074699103334706259833081418692605638313224914260338164347372657283363284907238068254948558655453524478217236685380661790913370705980678015023243362548738507776252802157987898762462665363238252935392188974171856201149982978059173959441510158438802108730811765316918771339575107373534444747662365986191402809238019702570742401810072394404443797722746041538365749184188688069417608901835904856190991366208559464529679927240822829388545213604162282623999448532832331537598587781242966537616786079624358212828398777084553675882624398765237679852006533642573447398453058704426666954099662340611334175870686600472790045727676605483140893098295321408703598303242501356163390206838429694842530456942592330608853622780579590542002753474770358687194621619815922476676788687764672001349028639754048818417851849358454505619394604584290559062328365928700901126063473438607354051704985108900325934251156782506480856710987882241240633194079594863357809067392536791317369545898863265748323064929408027417604985977838200954492906349679697913949776792907586526923190807147460806934746387707412385830919191246274222317459775057393056814769731450896214559644206910860943362640650537269102051811299829764480994825569220850612871861326081776260018097732242706502142635577831641644062597401501820364935753972344288075368639526548657082195359547692165988549899136638551318789031529998400914984171493474370757992549895762127856907671301967591349063997171654210730266963480106011010817344701686444695906947752646518639657198258505660020472419971838971304442824493852901844353507981393947902334241297157634180940874424745839232966679170233084206179897110586076572825731764869171854094862072533821237662127790557498254242875330053721302482539009748214611817294022954810460841430385639298570029621670855532151233588095235971184450378957599636423760189027201615688609440291921497069104319821032406538857695468921566964679370753697536946833935467220863448143231433339921503445402415345113846423047461452198864363064761531534360757128235839831970906801853105857951777609518019664920391277923871722883812877370312531534185755172314131379702953562918303567671302521780003119135854593063665019580870567025851149886279977142107403401422724485774178802975244928119823745269504064833726967689586785177032663449337299951750523782611531748644194120751484011519222370639998969453395860933871981164112235130857033921827355844650508147584685714389500728211990638742293455726991251302928161137181884807598768448161433611752239838501542836573923901950604427367435306727315583890866832376878997858183716327679626947532604200152582026600742112121291174685238059958893738873605212789487063382255176902782664424894706320045478221278765287785948155458346416028862366436534184923729062835950488922971340618706415774266171869373694062823687445381683310546943138191927580835020796968599441269380502358722891972881458170375771625708300612233984862951027028072863267653849996126947408946917081717915483849609142697566783021772517512611731600254529873884668815977369984289073879021687875864156805742696999256875275600384203162329162926228055225652194903261523443477950277986306816455010652509138155257671844846367998517856372889757422895412968921543401304630474661376824317250608944451020277979890281806748653236384502350532660598661295368148494205132126806681439212013538795796246444828915624576907570451437085935089252277230169536734137206501497756276721731801848532818352487958865390588476156956696490053060197563170321126125008530115829410046989307195701741375200398221741608129783429491467531267311004291068582106255192803085073184380951213303428559731492527524663863719045680369157052096328361217070587703576655912248324556166879204598425434611425474663775858859390001687578292558876605728748300977811131488769980983147270348851451621991005935921016018913860019643734994732224247532072892481199351853669377021799591365907200300116348546436606722894426048832754358334099414014428005341513193576439902472265501781525129325427550334780747909580450290959254903194191528829841122201031411059933810953917408939308600646447633685581600055297801125685675207366431180323568550511437026748770843490939114689273998712957712951921013760397558477630220511289299539726770971661299680804247098777169576685040939159723892382405919600510778600612172511786796083349633261965696414842918963886614047870819987854021756529831461052521345186667634364102730713853861645162218858707858118798376398262190555249043319761118632524117937781923625432133437527662056631858017097057714056399483299795749286771068418536698298730063962260099020087879761633622997662816227347314280928298198544055546481945050123872950503864724971391113622046368810154924597251714581917662309662152832422032003180084130667338000371806376336683367630279537459417049307366795981944402623328288353331184855250194696696929025462165248537835982248029875993763107172544800613671008404788508930596297158447678709944439301711058080846631495688463915212923990420542878044776921185741035432132699031861521484145274582797502328583485640490781110484244140249505023094406843370671148078890216538512084611713385455203540269431436311858611773354751741188403190724525430448257110518328062439229758629744989811059047326323271616389843807355619222939279481462902584492800196887334969727482801677024303676506815507456743559792673369367104891571271304040157330074415251398572982347164028459908863633914992089905644787839623208541872845698097567899727572584035931820787062261056936553023659220017463503188922749126408132490981454585991025173409562705169613258111896690122718612560778061963247721700932824362979584624782287443708804549192435047836275097069147576584974399098097698873948054674160767549929395888631424180495548073139292065119004440983333098281776853486103779434067813732871860633505239631554705594231959229819515704750845477534971249678478074690528004559822699079266603399005473176060702270941502841268365288118562980873752729684351116834113499265430673747411958389929668684633073535403545567306715078001000448005107406835475181930587874348125730517194933424901218167621173130131615417585160128007446031513988103394189424938579853279547889758534302416280519334322881353774974191690896528929663513819077974294933176122427786256264315831743505557771991875041838868447717873251245441378848648620544828059179240333396099171147832277627776157773723891422959903212909992611010732514234748913546786140120249780276535724367097501555735624169414792894223125190133203750258357306944451322267999512626333365768050894837271973930510816608936789854463874804543850653375865430830451484491357671938944766618335803235314977683336128834303442670019397150484369193426342766929349460740348116738078462522810690340691276075488550467333444262789484809638943209908557952292774006829075783733195412877040294732379568259288117817879184486224779288080558222689570724628064955635501199622340628344920954894513086141595059998592504580700017551761920227101729733304868388655821744407329303889375128370146458738842348236094140884174121925738725291030751096309761963511009589119121237149401996797210700424488885361770580758796230220658150034916139136102938602525480462896053796763850225994422131919269661563703667663467296435172191752375511161545509405187443879327013942466387448310599246607143698862438436296580330329893982913038171701406312366219923768488953815364657310772940522850011350695516806437695493956354250877546343619251417129959044341288858531296863684955474949592943341090369776182922789900100784731795993972823460862635524243332179927680162741795905218289419618926632012896577287847358088017519948869002739906207034337429111769541443763345560304047403102600549347019500142870932279051071969640740847758862853747235407352285841818868293514315876512274423097313699092729222698497368427031617517541974959759315475997648486129773027211131508433418246234942099533517691725560782298139947901264391951416166586137680521548565925851514542073737819518105085067438595830620331848511997130625010551472281792644802891098458414361874393840933372410632225699957578042799237390149433163827369538208660220114500015514181903183017991173877626782348899080793542667058168237080263060005255083230374013371125897821301899630229999754043969708210083074344844939678224048966194619283732894538278198660761521071929910445281150732896021751927236299801032810891257521289045622167003374286837155060006237106643488306644727986282731790360871421733216975588046154076780312685880693005290361655461148387980033314025950348255456081192529918656733790035385685150291551860631040150645401093080582400382291759058562855473449890881563645739403219018749503141393782923748773340798600002249969911970496491696371943013955438101504925926174130911716518656182532111484625376209318372883652839541562132633940266297574960871121465037395367900436755192043767534894737858694596402346913081076885962537449873072811666821570944036130727637977369591767430525322299606934314338146889920184173126616544733434702056678630855855391572734576433637377152630061318061798150539144350431526914274391724429536018407802865029564174806794625013384118187277379677407204672368031417969913587402626250635155770299899158471526211084073813412073628796185564628475924141515308087545700389714748713996205757014567794575882079838209662153566080614323036071650920614108133499654003449926286425887990213065541432280684583241516917314726398048221992588148600487317685252057600731645318174134188343223044360668684208830307036879452832554890068407694497894363233282592626419300161698119569267353774517058334629155645453514432973109970013702598230061563806052583550469327259232287116968759448666116662004664290548328581385558937085472070464300617918687655869852971399535598625062309005100167255677484314899802284710331575629011630891317822881146317000221744964950472140698267206254931082074342632629480247645917254579880709067504972498202302195711109468216154618422064408027535915752648460773618283782852769492393596326898512992533871092463850052592804425562232739424666377143142455303679065309872526223624002835778586785022565164681755068545038299362139334424391099596498350551792825015795297149794414071717265785157390109773636780133655790854160066576493083125795964242941570342672803793454977815790202093636180263031942743622241761326856117386403843651292897667773114802862775555408252431828740140612396904984857777695055238998801670339729374279068536610844960232678023136010554176881612522114702437897718745538384534948709359478265323425809540838148313589161218824083661434599187543765541113957304298191580790833695781632749573728556994416185372819273887173605950891817594814462547825641361984525980677679350450166467467598682446777826507192706455885855433869310871254389167008036964470826072033761707185872678467421366940804809209881395451834630643825492926255346394788272761620686885229730131369714165817189578235810456329326003376472661881971365620342687903666416399833216535865493191921973709522518466882888871697758059409629124415458546209798192653131342362122834870525395287251510350101313307193106284553577226405177751734527738037096207822665014524008668003332006134478313921778622510097012634022557646603821493806629206943436692315986086384212764097953882194164902008644959081887134669259805468182075821283804218660773610383300453014398909794522619290056499325066315964964554288931862125283618441550014246377250342615129843259321215526799064550639382152889329470787036441947336781821588354711927487156323321145944857555425605726193526139754315234642927532118595622703493515783556254731678457940656292136240534599379707006528566298644146024248700562396512081679667194169417471069363926930069973694586781384127371615761496650916506253036690352357357442348521799800964318276763221730905775241427596290671405582071814559423994567243711062758845557330620592761851264354907868137329836085124444958644052089497845275725918761914749445059050226375294870702605144719375595254774526761900215038550182065957288764010994755100517873633453217435493320237020769764634159260448088668777882818741072907809698228988247068406733390611883848858554046008380578083544604352366178905666047121865667500324858457682784599872286749219249262918186117290188444669339423340180921760033675201397008787719416086653089892556991087331842828298602917979666447303283129578217093124746463384060874056564768849276674109268772219957462564350525175740108938317377411026125077347638402972612048350760867772744978426781609867038167197019514358151257561105994081148591390123799705711057562395949275655298376408204395447890967166076729285054733889580650607940252510820420016380609889156592126810844697915119862679486580008397436043702459126877133494914490843211377848490339437112681082967568622520389772611506290828512339374313262144540768807136310616006023171433790359512734674905210896428026618483440967547110660876318892508419458559331034283918232313461045626171948636567492401365092064604608740249066294382071284441643207216917826913535556901401644263081831879309013536368867246190985723353903121150351023312228929756150970615171213338155860558997328729772541574740428121803072793569701163703864806055965290834362297081983362880441064377387072445521294130503212231917757428912397932769243930469973527438543080159800103156044840960777403557280992090035934372402949709157705458441454614902600504147091096172668228337917812644235767712544666482723233578741209826557867341369699225533733047454451246582624972395934017905317928969126814217217988781475289571673064408515687669713622199664852031652551098670383071854677456080336509776865878813675512790753237869088263937235747989051480232812592408877787529642190389804172207201867214222987265461382588529478858965967199042192296043609132188438621406385921546193869057985242310828767908046841263497403248863968960634332398051275469415749617829429832037321244317923264026494313595147785811295048970522779931566633979880919367141270250150291022741401950239342373358127660066859233910208088856130205149924279571938131438439705005471180007707326577741983557590518514489946674572041922845493610085629691089927913745335943763989548371802407448605266292184636515025212987643879010207072126744616931384113063922312752714337761761563787525915528453822475417386861213478144174725027224038572569711512359016089680910298310653929357585890974825959226440504825588431708596183487788792078426899928732298859840739553343034953021430309897158064415222303130457834930270869954974617738846075809375571440876625536450891220504785178898916525331941405325024191086228125618861762104711758628777258344521210236857964674402446580859829741523886725803871423508663135194377385663901517451163849653358956097184374269394544144449185414781801891259011747549754267747987132301191080547052029553317608332984621965320394526189521312562297427390467567100165543535659267902486634238344674378414691900135023374875465112023377022250739470627671943395718193912429866136951188147845599698048130691539366329674254199946471327594545426049903225931838723802005405294951095700752479721540719951889944112019270534984233645771546090963434363238493873742132365201530600228094439545811443051989294419653702960407430256183522657613656855399312035042248358875566913573410059621584644053621989531402291654021064734001652984109618994068587210497047720494351012754962112718951760183942241623558301511117466022791031270096970576860556771038612740168858975262991424002993660059366130272628099953559923441585875425183625702916747483747125601929504521188642546355676273656623858519410734732499778465028993893897217892977809172124693605785299204489705392571609563701804646611140864430986985539129042224353103703466899896707339983700846165561042764263585597092939106601150696559539921138848242703976747195871079776063185857909749568978768028722230185204949490011164960043203467947926097552038429976791977142335831714299013406404744791146044441505571760961083451181581639546953087721846645008342275147000727430893064856241662466499617997508520806289179276936313452841089734131529651614577001959176786045932558249896846350966550451492692171689130756886279758041388550691813612204580362986472857632301409707122713601804288311201455345065623969397922286457929019283803489885956371639981221411143473222212346584442253095416830133865975409779441247429533805302228843453356641901655464173302924865280463285377669215245361340802150432182684022744391969602795632735200816513089181899687600087841984963756899592311380425028506585066512969979673858953238899484789332855236071984610307412864289233406582398911843237524188980335660023517585446275786504185538472094400704940999784807100444235019805143397220699633961673241229966703939241624336879375205899924423879014378913112590185344217550526675985693629911945621198521887525005207268950773508956559852047636048972400904052944279630059149564602087109791765803748202696232172139741545452885606624806875586454190262318984469305826694421689569690475720589090071596142757610621530932367343934688754034222228746097340074477747339683856831162310999240071954438746778099253256682814784735719469686621119085669020999826147161958004410503580835201511879359780614887091714269603837152089115311515891842442854192875265809970263242257014730236414901346620891619638975091208751185287910185696783378030105120201663537511148392759463848215418145949886362978274673728966226356123195790733714479186263680024995041715971885971943399404944298252263140555176230775986198406498827881679039194845853312033834750047234280862401050749709507538221396570132795384877681424129437672024466418027364918913769781279927959499865947384924991323618352210604596365430347254965482273318530128065154034865408005097081741113176397758230733825781404219761229974206719605124763155064462181611623499626405039117186252438434520581886533503866514858068069287228436383909922296438118989360968326752939690711025092842181880692832800940836285723388794987457474428616167180416794473744764984711593442434818251704492669512787578124786271869308409377276325404988744851564675002640078727080759983812769825715593971005479072070336628382273839941483013122624815195163965657852044047172452298267781797948353295392849162805138832833360820843702344333874779370298616530188223195981047437033687644555503345541880457906176955323427297085949750952716239368579379322959596177095964040289563765676812843277598263484594001110486091330595426352472027822008165011964909470912621201122998620130062890991400005976715779835915032396680548612763204683618288461670534228653373716113909244136015882458356816812941811745632529482206383407209031839108240848991383995446444394920581583719645326068603194276081707069022474731269614045378239588641572638758257408354545280326060370128473246002631491173186820856807455619315869008782463532556094534918626453957943269198587486294286526248679958822775912846741942238484499158627585917157581408231101560159423600657087506418552802718564896806285314700049206683790130712242066981207858222484964067906961384574814022777007278748500799240165610992104001426306324136647977698938003578453374401397842951085844770264508778720222941455972169957109835390377566386083520982895383684272246053614810427484260815390922626903162237848845940982594694667259058749896453200421363276240767665252524362161819542785378973305044466700116417828084194326600283624796880178385832856476454314815958664702372236959168487163355137245698722751636318517968181165819428949514853703566119260455308378672129662304596564859030798975839727945768892434083047817432092509121111367201770731881294585240807316073027026449020447592089480232948209644152850339908438245677160810233815305102508565127309323750339855635357446318454881167245928887820529300193852974967974919383161943509507210206157069769762780144378809665346619407409218215992751935703964718217355184894935425520717846402561563727520605741690417423986704044849891352874311659236342796776586626043979240734384965079916112537646502938776015590384937404005404410622569649394636673375995583498000639195429694469600612012126125193617572991216701916292503018631037275874959497262071185220908963287534370622189478270624836865291246688412215397088363706938798008393961090421925302243890649758525496651694131667865440707973776102113222057424225903397615591601370197319373601048300993033545358193527475620238241244634334935925063842272419730007767192166483961895992857533700035433155429149359604985561941647648507411131672087372577204762426176226598496883526058503393282831813304869124104514303488290537586219853282391985187626302089142049277944993695046217042294254443716918675334101068388547576036766784137466592024329378765338584925913985690757926023536220569734517010869467025466458573234812673411518518528120902929601912330814595423998347385317863855090581324322984533480912298706711225693437489703178958941338219824169117077531630833475957304502786261907937841142102750948474512123387156828693656073839007346912941491953159681582019620136713744972324641837487701477782040266497611498941223191494123812500637872021915676838581120334506380726378667000648140387646135713810818852186160291416015839561962114209048216597953218913330068172029029481561413600413546648589482505720291101276973850410158862437234695954403299002438425063914487583535155947935392060582564556041487565340446052197354262787035428242052289746873369176515913090992785778241625374169000527665327686829534583443173312769901162755100474946687698178709685083818362395062128341641201941459041553402309715172029392053095632572515298836820415978853389840304060429431197650993005148228315813857190129366377169053954704164712341594344869464512746021854555866147780293374345582279436061156415363519282188778779231260601995912160713103902819838386335035940168515953542385905939137546899901396967706690231946117772187593749922794466951472344760548199087904712253932043239953278078574346644584343417684660599008216922414710813530348277588986160651104291659294206427054505836154156435801942722614191066090336402530427075847013661892439772616120003569514586675615339817654117989108483406782234210461687582373146899391411400014091776526238250716991848365997864001832361806921749970970917275682866680186889126767625300278991151957625098469630783395452077732749214710141470552561880906698599052186420919984584561041262569514791061119956205649433700621100502138627717495188192959212431411740901957584660360576594090827609047316156848816023578366991384850217250312493753483790879355576368446281806883782280528808528141206952582355082858568355314928859809749666571285902088370653771330418269552623646416004804306793901472751838645623480083088135660111471959593479465641072790432629875468617512726644032674618029103177262178869664301633474963616824105484406356218760650184130068810378399444337950803268137969302855235542098635303341268913425872815964576332133781203202477545841000977533316643047161060163134474820056577730756525529389092793838200246619556597384068101282322762429512913453747454153616476082927809333162036468352375577652793612193058675991235857534869201434204744611332975612997225977303171664049600433323688783414676390661203477479616277470323486491655516489559192653326621999176534015705528318813873622177537700229435579081865337214099891349360328644770679438156444964950018183809914990642366807977111513117946059795245332031816963685738970762335065800610154104880104219401095369539078000472974032812909895366211357243758910759368681975372716851994855288837601884057399583430808373539937588372624032156728908106076622609366131638650889666550940396230299173508966094519034629691051960144208472962856879930120102048091869100668259012495123956962083701833830820211138934266583122024652968638029369915336312431730746977326234911370984141549206863632248727441667435323746936120175305790424093633005351203446950727543372819347964186318926559624843167564077278849121646639888350123088798212889861456054199380462339534650283473909122956585634634619703205975928301777971274984353916584945062617081568430316884710466880876214792083597868634079575942070657719359110631302431339816241733044466063847526079481569579432226465541689712869050415855453204643496346725165795836525385137236277033924229966981306352952677837669050678792430050981904500610268294655622744754459032147232623803462238510949853432249673165135598028832927168325667194617823103813689024645288873709342993406414928139910182832081985877360085582624769828687455994506726003163154927746380219219865972148675507404351560018559639693706778495739192686819771210138577566009219437848535494966787438770893200112786571130793079964110980311496202035611050963862983924049404685867995758008561975341006845340884896011242079454008097208842642785226594715292903086883747363549019629167499442671959793863821531287730189683883393011627237017365611852116722495183094706108449309747793089229920767648307254283614138694226520928662872314942951897199036272116500992851500784550172332020438099677435983625444657607247747473994546229213538834839823208040306964036217512005413909823255685890904325278896573192871875472484103635701121460053030411654647021093406662181916639918496445378218060938139695887904193109394034538530732713282849260794756781623938503050880481546870256982896788871439437168248755182493950824905186876045167786708974303831354368769934292741684622743512152825583775090694048500447310399875738235060463766404047471437200718972825827268513950708194033573758564539051918620531893855047326861186741172386265165112348499301563560464383245273617074902769774586684358084821921489856367029839307441397206435351166360581731131186703778480142124877572034151902338235971537630838000328876508922077233663126755831358721737103057011420706186965157941506559453961039476430103857670560614659355105326752342672786432338912116940036021360683372035916233543872816938858443707673573621338051280989425343787629020744855083050741847366404345028730761624292660610335270685300044970928299143601652992194182710567529890465564306640497925899273118900056249666310287363807647711890261690232822373600076154150375311956738291661821544757202934161910503976600913096344085615230162975304155188796143518785461391162273691685026303354605945237337727975160887795274830946501102095580634900422487625634373692963053649330067219013992388208650916584222012495285693106581596923787838761162312663413507062911233191179163794335225189780723840725397959380244590109688768644221950027590245292175803923879759413922131598070239967107002249351234392133827431988981707515469157146010748599038966254861597111854075274812374057028090146377302406313796535795643307828341989892869478654483465404536620408719502934934758422014161548982987559050651250047617345651770198217962906494940789547709120421714162563760388319826530164163256316557452593351643711736338780207465639719284193494274211428447346700876272779750633088814683479440794896915441527482780543911334201099413953309812733210283313268520893835413079190759270660063596237572598564434079581281674887356012933526463842606245985684913851242071533338798885093451797691019359618456350703123065408560317548044891406124326073001298687341362828923757017080994643191129161945841587401980492383514533968142977021371921447980067339009531862305811625971302191312661827567028554900835142668485420331074405810785738484618099353844201387352782470402422557248702299500555787072672554813322082292447708786315250727236694311905807283753060527843213204617207520887111003431446343884205403077895632425904639583986131256020149715316644741479077845865707404138102592752232301053220563612001906108647843897344799644124021050075179795278738752922321589301339781591304009229699873451601947925269907960022969267342820937186999442229753083913587942524179047609434156211666192685933912874281329088331043231909982124632929721153971284530368694186838356397797960540128466234755317232164874208548228524185867457108756451316576671283309755396285292995591007976831456282559258508923377438716439015713315468465142640749739163685979790449821915486605730361937487540947941843946071843319943889903199335306895398354700126074050907125240235738248070853855951113067993567543857654249018111877023876895860914450224291404713449876531196605126388689084552916667617136337897238926099907476295840274068211925574982847473062109805852972961697319013996744588711398889564676331249992163795873885557988026503857128421243138651718848836402333820638013400519755310204421823995248766272578175062899572041894913939869517217102686597503132669563696865506276972395712414144647733910982084102527431652142107639987550338480508913859094287880165991914078893148884437832738424090033666321015794771396722508258359026061677066413743475142266149415985625102181507094705462188974541985896794127509622333938785435496906464420646097000449875175001141111764733150878263159219022257075917897085248294735431636306001730678589145029925017803401958156778341987616919788630876398987834654042761622767825522998109410869608653810417642286884403861770015254863145876789189753663199408981083889455809273437037312668820914247408166512648829553303388111930730295373300389922553499727095866023948355020775388133138991300078245932072778655528962881035138605591374729051730186961555025082115117474639631611895331507440213061098669018620373080917910561073838591322785774454018538738792687824882743645445791353473426200913136449768725064358007805641196875288395273980567740529214910958568661108935545060290343664461957717990587629677849107989469739302802239861953725164251771333580019574494229095888489092680626902350150892247168920707525215470640292560972837236108744044873170245164455742827449039767195143862341199770814029848391362979729285923186777953581711082379198105311488731654270176945088099571157115551956379332455203399843122732267744868820395216950548367339214548233474302645726237952244009245495897872698335906707159518394824984226600547748363404561611720698778367512277034854121984330236850007958613889586444157834768334510418754371405050238127480077163565585680306127039618930144386810524423372264725311628801938670459718395462293036419511562297242894257737466311537368199448035783502385880808520775883247101828974104990078706411603799932743833415391477672985838279065943423786577955488310770478589184335223074928641548987214646985877294143099879496060502860479079995472009843417350164029064105040663348987174504472563125888069915301193282240258262743156054896601896356807131808708833641022328215745417967623957127585948175670099236896507896556190100332292007633060523196923628614337991822253257783793495060572575529821746191277479058439151794429676436888209922551183247499663015441634342036242137280373718967749514906987357517764802844484509693079673279940907561781021915334080671357976417538547726639349804639512125925783976054338785542025791135057868098458462335565312230365394120103111071560941644219428213117567684956189328390861458396049672470747814622801412285264911832413016751482357458038977146872529232802289995427554925531745149021067562089868051872934574905106869711414952949074878164421904348590835341522065631336142478568748191671762124682865084946400422252972461761947559839309679187615776620896101455494773660970339148685790743861141947122717512746724716371618628164167523412210634197217010855733632910447543934211412040568076966810369587056707437761061488880941348511672687502386660249750259700852092927575210017598269485209295152145514163497324629067989337217815419906408605488206168234416165738378766872754796966743270603297640692340534272630368519484301556997371144555137996665039976831742307761785837379843423622603385071281266222751720287879704983676945394014377835239009335009789076397390794921482235320975848569948134876071707750634590047806593731782710647835939416729124445635161563425595871873323145092314318473952400834761570652331933350256367951691725614229363445211054301889366476281933725083458135551930227993988499620201385855446645295333745789714389864160853839271745694382579153674946117345708606661301311069297679803886404398008311735349911085204399663570714490717266870423201517944641070569241397167007453680036116842833407467671747641315635738834134161700865275953645405658878738057205334975129322277483712109370904961023942351847221396421767040193606883106127166753563229336521766018228286303019611976703035938240917532147182687334986004699463622311297213587555795250284395092342289914364010473239683768586238163158745012858280839349379498331280445186204789595824862973687747437667190352394852983985596193973204351997384227019898559679082525065377244146475640621727823870809774468439933184123801774601585655555934806239945145408717083482929636718270312585490804152924824620989027042958439479069133449689039630817998443849133748891401697646457767823650021257683460849959553430783163699820345355170586171203092662558418718620433923659603864169088377018335116229749967366689506946972497251413654896481434233345887328500214951867662453867299135230776001763725268558940870440687053723889279818845126351353057991656668320336605856888282547838441345196567667071591971859555923211978717561664160653425130084368517881605359828210136973630127336902494371919040459690554187895621912545665824929432398286384737357025513953635684547681243979082509901902823038721914542208303441556069251944706309793044024134332608319907430422836871612386246417354383807715104968892951543594389607405251394271652706883826818408010756875618922683810075778038474979823381122144664778153398775560882522377864496483411631665017204048223374760687649750320082675619407417327730571800606506389639129003316150712062011616454419478239710605159024048876242545838296418431783968571866804912319525926252719303226894858302905026542737385923002324402640304676073992207222006650670464854177695927879093521563984933876169093987833851756809067748101437514378827026442536028829128796032508203830322665032444423135637684942262863869131871636054864769081648023616450509364180202230831688797079288696661921681151423254121162196248614494699805986753891692021843072095249145561376256112712103908822516184910135864843877015477179862363297297889620385363899759809727255302372853264122879675094112713552673969720347584037693140616822104815801188530218235695227550106194583139468242925004876371155811416785666341279624714874452302720010131905202115374329177005633683434578589220954208336490729189567964753493551479248767598419299249187878283917911240434202084509735936831867899763049025817350700749581124022893645757713013750904118649914198564728336261699481357105411244328785274409262411629866595003925220162037528421784792560663783382216337689013099435106920870868306699205013601006646585381313258386920456181243768261655010336833909669518892886451152440660591056953113039306508843962956987256934932404632755305294253869663633732551400607914509492449477586269830438038643034453961706915244448511844982974141071604504762833166880166415073409329893070066692558752614587035962402543582561050988216784653371704246620051486858579764415716233350811717355631569656885782425595221575572636519200824286537302791973554725973438108109330948756001377012020436567604757231393396002134160317442343501776039527066702273534823090201694851540310892276496479291497684802761853663645913953371431590400448370861911599859602073923905101388153260387704620277314220663621085901046777278572845490439326312778576263827115745112318603451239707663353867513789578384872044848255574847202845161984717574501483923866883330966587407486783504861387317111623591249729269723377132578619230473958696923184705709801533473800633466095041809218362784165248990982487626989762582436118599559176181826368942410247286531403127551744789104872729806272431536624628481497942978800046128859402997422198042342798748382757232347361962092608838929246958214863388339490954606313742503278318522902092152455671258112577785582988277693506378023116054330870227803855466054380442006771311818849699528770317299142009753033555443707656634486921211245559679295607025887032510402606348222127485207032162676317278579365253894422605462419303438071338540586144383278555079467843356532331141624160004058426912497380169411969576508945633477989758544273804946061658269348501274127716057574462301617745833942484913544140979354254999614890804208556445826731319966172690215407839396952197618025825449975642300269154151921153845448222944804806450679251883695970706743444683814117989941247347415054627310309491684331982419627115045107569246028929571784459191216809427544166042544594290215065859356357870752962616088270426041240551214956992985654149588433365107745603318384396214193992620333773116418453126669859786863202149318433959314123847877423406006330924164835172803525506215950744838628782792396502322369068095391295300015936913007063085304452459368742764719681931231901838430072134402421517931599767319654710206807479146134986842956290129683926098631896976506888961921704375408082839604083994964115315833700706500086459120562403198580673697288719923216266074468621625049567849406603829060972931758344344878469691513589500801680305323317020665495991931476534742766990040872750240367039852594181654922337264039223355322558886711894786856298284703135263373928773536443586063285724971459871559969097528871495360422749119861661811590858648489504824242155044586405417222127397225292614664515555278474754301278364917170663827233121444604975393026816480363832262621210230070476378549872247132085190331476987321867068267220281817891786455256493028123280299814935434506770441817260193326959523218639089171975245956127365830534731762068985765123119131942537260706000486004176909975310931568734697417390034461747485130267382694362937871466059794714737801009267763165654303802217028403976835799948961156148035321956084161975502534705867421066192307115519430999054486257572929278351835476136083503485676288649619457687409905590573196709226228283100482527081830175276740447532448321740857565056321903777972451694854164321270189695493669875673981140597481413986244510474944140541504751052116346516901904995949702495158471828319642836935004890966760585622712610877319470067175469969570731255275644439312763106920776104183301239644073556820368603846137553479275326306017679057776512288716937596094992592430940224688880465524256925903787971583403225951620751043441640388505051070484424932066204303113537750658562478814624618922477746261764985574053936552935789915264972957072697046177579966798519256103937680279023824477609742350928728643128458173883095377837044319150454401402960083258019973290783896361604233532401423032810868283583941717490335367173080144311118079694256155637761428239574342296410371526421235712574337771270850907902110906898679145212661806018021110786931401993731333259537202707927428843975715486447278431261746165237700117883803320904502798011975212663752623544104523308452868424758840926098099999668889353363758415666440361169657572946315565545219620550975266601734315588162257105839693850177874009058400280837884315738971832110213214756959383677425556234068468185797268571147071566291433295890447333099542064403846748829766485264677115278532918265364716685014464991531141746826987010127171181575105677830812909710838912905882751465921407277446398332063589229000556015233408673531994542442762731188633656959535337924470026454710560166064868771487308641904328451991392761861948408705713194377442108227987255406825413243103946446147681948697133963246181054397809379555817445441761530566319159134812910861031979564421102984868792970901866697046451097321127453145753299950519765946062634694121908440059682815171803890580465867461647842365628202953543362154253751386950541055197146535386825895106821444359392478328330357881933508706749626831385610649192771185553947065694536155591136394099620639838752080162203659384905987357267026735136816019840494897747619668724486393859515706341172028276235452273212550855234386524410331328351788958819577304013526223139764122511222080897139612304121292491274932718124218006943583922835164879100957317878296758989143952645211236548430036811037491471472116429056976448643479940330470208275643610021007012512665268988713871270809162773702503322723873063544844557764127848391218370285830011007323062065615497600871451954312850389081133860492394320365063531571497985382956368987891829656124731146754706242264442138629715231933091430367958189341878383432693132387720365084378959828735072340929280492933012532207796176540393367806330401004596710648155563162229459961443550019484126648871135981812703926928208443017764669225522990554031715124840119623210821669614391456628540564071225094920781584184838591873400083529679509678817829303287675482600222278963690560580713555674032493090908975215657655124271549826638160700556342784292137555189261485004074484160299760456214856862460423095156100473817125382161789399693565707712759352175797340037847276621429320776253522006631401248156251409125937300319817041773991491219752125148180422800723242502452009457811674306929707953002486003058421677184884928347834842922688894006713101143291586742424949317367581500799665654125715052190530803437604448223885385824606158402511498447695653051559335523620506381139497079882698406644981952044441351515199594077103650427916098109214716020771243111499636140769741343469855589170969964149941900017195734664422984304051725081918505059365724065781336342406828239055229873413851161414338962747753812977695055623564483098138175209844769061273862908935228685151287174018661407789396635538115200048498896328715395837878550130612318372424863423039763228190834870177399711531142737025680898159024952208843781662585056448016429664573602337134880085877116964137880372504482866608651426940869498994975545876645318237753273663823959984186803056034499564826125372190251600209981970508294388277962351524030210777274610875675534227442453554571387079717235767440790063392714407054278448373530288360098888900254205545539116872061932543982512698841774151336191590283928496103797981367886388011285120075218540071623420617046300676004905708680638157731174627924570007688984056286550975784137972319382549738666237300348930214057559670119010472307596830489403931497013588416031306839189882957588479422459049633949633884426917459470079256282879348956261197084567763304458172797083095852225993982942194361264353529601867503572763800033850632175131987796526525681329702159124641928412602099296267640265897466872220981199156811720996855582157332223793127922498429706630321269206506889722854678718756504394427511668240404497649977670705165401741295940294440960202541601195957596832383905646943846344524443660913119033396598198154098192010426569057906191467792834433514864100539628089600141361296788366610172396627258346467549958078356471902380079112148533831582799249595746252340014217179318227741409588572464374922193653705715576564631273449371065078848932595912299956897127408266294153277172350170132842097829022678914151257752248318813856585231512735214985429617822874608905444838336232390037093495766454925641972519588719379040187830517554846390561511769140655202366107356702616103935588412588826087847403572976702540720230377698090848553060342188882220904131446673114021462075059310140393908455550351786779569783349074828736404014618829093897786325787811176111267505091854345403876452057062583307301417803726810919250424641227034500348821432429485743404925405737529937764715272794124267300513902516044644925050879256756209078279840213302427566885992895449687967044808384752132787676380584688497303951160762450389049155335947666730167960914844683230541006509687613542733708097143681026720032507252870777447049986560553649934966823932903123611231221602609617384402134403122234012558557345859042282350534190247062406462150038480455815289131351405403288281919315358824946666543655117940480628047243057138357746544561196346268287812684286159211920331891529150725313906044903629560832435638454354629387767052413060328399830799364007482091863086506399025370472875419790041587345106527915020589458497795436497126723998033847482376734733843133197892100423542043578834563417502860865905621275964328513605617675550808549535806979857410092221825060347496998393612358485345917008180084967505797771836867646251454979941353504806785755299971344437431558831743210628580454994533081594095071277671826502549450036926024923021842944180616354009345711546049428959060573403420061805279549134566816992492977844525247529825678179456529146554378729160552232945612841582221041596080784139686117015080433655756817592304590656078071896817912898692888798474080172764117377773818092564947208396622574107822152355202880436464468380297995425027423577820113415822478940301859974608481451802644624058595543621034669364438014007676313650329758879616452080789912631591150774580138784568544497530208095624210735057891247986727590015126002557475297319558773305919141219407507583139077074311324463593580761811963159240201416819510495478728713468683498513589340283042482644181639086400780143261404332794427906002907869182749039127450874647397926472418880181364905083272350155940099171774599883561748953730654773690125977500597137130339568926990901322642973855592268747445239357494234590330568093489412922797358148397261807964301954005160394151543213361740523346384832223555108488570639248222886265077771163663290359920917783116947973439253873596530184798653756573547086685644621829920360503010233870639242931798465124173824117014560121195635978327734962420378192874600613288795883099418388716018410699870748074165281960429975260971545485740843427330860431071117328036227311895822475363400133910199551240585490782382634804717842356553985564031167808247107190423581864752234781782932576140572687475282505587635158280931533471346705409719124610906696412586187587768755268781560545039281031246853949991897471056417117283668063026607975167059490320833631996928268603897630010514490233925253924623025273431508371885490450412338366781684814452644785666377560200226121753967908096888097574998657514315542296331495819786822419421686141078296366636118788248028076890543441573180048103099179774553836206041298663007968542266002634652349990074982815998448227411378796747086189418272216172486196982792025345375747093001630811119743729943061649960509163833384726590850101863369845265032381631960199561355861618172144996452349302052021504794931811987950243175347684163533179865391748875231374487947168808057652940029557233273756596081130426552051622452358462957286522691976796478891234249382366090012869990417764457871761585176615831707126125764278021201356747801581587426742065583316387022728974955200650631477819802370578547772611046524734839007604503944270188171321879468252850035052345992509062339493497573009491987352423266314743935905640870837951380405418450059384388478788826143193759990540044083550394531257530740964077096217128702431485982088579622354253695449967582560390577501220314607454278069886786728509698788136979551299172904792332260739870648800635867927854277079570401924475891844584956185377351108411568616688398887243691285729384131676779897166016909434485952027225114770543127263790688626275547956800304686932484408589687018022342959406775575710277758926871265004763425780449360410082005101658149531989783810737927080411092439830610821380647369827825079926863164696375607859653909769180532501659267263389035060545600044716638958883133716450596530777613173037863084693724446131088298815400258789112008716253032542793329264867094076234092902930912314763347492806586206010478668150701324969680988253759104583478222439408556309625090642198105560133789385796575838434304332168951485995381312989573001284831053356192501160983802337152098580670714153539807017284254617992320215711903266572327734253740720729653930841029138154834023227335549357381347804760461570517090360844367074000072371163313655087664143328335268746961557090194903338168243759040219482011156722858099691168979914204415411410953995363095757813421384510424937507642306355316566231310083706526191228559993646677765460000289909296614692836739957687236740347944380606140766087238857841446812012347368152408161025016101523666747929902703905501992571706923295168729664029472494133746478610954997748674411351450431805257646518471638251331442562902396112444479659512996045088483992118782369192937336537866123859032881753426101681254215467221093605100183470630221954002601198230350318103370120475131127681316662605003574976353707773724156764620538846934750245733151459171844756558131042946926954037047535833850262174345343710934117984192191123278983870157649512166125313787286865954101679415055482958818556462120100233997926125913760357273436578890302851281474127665611987907628111437972587030067740534995436124821738262915188565046671836754670481207044261700399380063367232358247523222969497047348932335345244357676283021786060455767159999380823739557304641663785595691901495101779613955215443970813505096944001055939641832192249254547814742229445337776613707136951892612951226856100282088202254839483865797593660115415009844990948708212919041861338358501966389612197806477641572181110025746724418322066313459723368528563017975433986748521742917356278324781474684127604481181145604112644779258332400124727671972718150798932302513794133375619438437602381311180290554551210210015563600365050012550220042281354787181113736592388916864170553558763804634143391650902263297019317722908261687212316857594623424711402133014175393706252900807503429918347076155718062551266989389575749263012717656705496900512978857526735043291817813263875108813064343608345998276590085680126607906495112813300284251633048941314505219070834542841877372786293619800596578593285811982803596746493690660239019910048523783636646360542569810007896660167284436885208087739617987691395741481732019492989609976565321572005192021397561733200379170771068333395610108708879966273128811743674634693633573556010663632170686212510264937961357269598743029814307647439006356417377529034551777283180728826760963349532574324377719384573080993076812662629008185885969368875264455662021139304066350537234438349860278164830198388288708650981952261829069800061203640109449654821108630400569383645473979257055428831584164490207370871463119724030172493181687450617853121557604270017048559143373113998412878262546874382026325529236268010934241031279587705532119011233071417615238623169241607916554599225969581170669143990858651219637242164479607985555713488119886859727927334005049039347359607995898138055777288513538653197962278533245482890335110251724108012649841626953873555592263668922360191728688845741336863681234129167238168042866354861008108884657972068736808715225503727513073698438634299722316077776544739984452666996431893427205230649067129622962446654267047964693951174021341102566918005662786245113764178400902599215733924638927902408188744561442569253869259724016451328883311905033155883519238581514688552363674814806345969040109734733181552513626426532236707659936192600828358886932356173930719652441825064849655188565717059361651379473957632782587385366387271420081445537985427315296318536109111962865916368534430574708526526007217721831121456857612530389225142968166483369642996687630823044782416463938507722310859647596775715884847074268556496040754591770917569934999462607594620322397202334962882911090214465096756436531980969936518078483539276340509319091556503821103110570903123981779590808168385212773743940251184036432920082824759037352087922151906416725077179625434850401742549421450117341220311441919562535037825042733770280211692783815528114386558683417322635429132125898556294988082342885815381358642518491160580257607112270052578520017598192530654400134132587678414883793939814943391206424959447249987358693832369256301479365024989452837878525735719198935940348393602714349817628481096224104554707086236726799809951132111930439902308999474204560369223798647422340337334436198542629897521845864742266154799495448148150289877314229477299964593756590488243611130767911906962196443203791643514716581082725486653008993503693230856947915258226675080955996931480694395855332954822328526923691106291664056281084750858562086119679409494722854527357361906295981116167045624317291501894849645221036157206908948558686409011963778958133380840054965333744415709754762285259702360937465341797993077653483153962433890589079700946171058701907610114824795541159529820264866638734364041582979497489946172090541647662795547200384473651369935587677175643086885852989166667669945718381662008725632092357166778809964145373363499128685422388395513372907911128719733722137704347312980970740464050271185285503642668583407843471425578998667605318288871605753150114517655633289114129092734803603510409262591121366859107001455759533902893598158859889880946524556530691829445167431576932406819063459401242563802169588293321234701332027433918207852906269700598419930722673741779125987298542201682230424155073132570791998312475401596111663404033921632569556937207798812499863907461053277922360862599407458324701290958493392713292450705841911877664757548273431682269834668248920854987393193612534755559300276410323517376155771144722110278296016835489429629513191112094888922595692610856898513088051447705677291381849043039012938601675208754209180414974250639653644580471791031228592962880490174971353453151453821360855660892071759239760057584473960327884603521434897457713016883758662384588878125588999304528338034983333107269506401887504952264358688595866790005416439723854092056869185779903439180614706853038344009822351108732661242862397022338161417592140514431363626702076638797591262206394633906021530928900011530202777906824459074062825320509228588084978013894161815771848193437624820967764816009561323443979687121801258918807129717209022445408948440816879002005461935118509560089733986318877407916978008032454840248318480582668606224561647230758773587320822384011480463031175386278738498305656582246205895522421867341400701306258112671394105948217399877789599074426587445193352993185521024087447135849736088099898490516082373365604958213360515601970549955255109801945539599867605459633310502009976776679637104728733912078318386879592422077070641367332634339265136697187793226515229559603850275015238031755230342669472491114267816896574612548261810651794023741075671126738748442661938001877372157947965326985516024570624089831838068460558886855558414650421956515992157572062690791770965392714688652782904339350988644234099039383524700733639413024285391668042954299153964463305864181108186189473469320202314238437609019285073938650819940576511999789073193839184233453026285681327479842406200743978198021243998268195406849892914987936357206308116264247597763272101787208894456841530103757734337186251496051955400927370963606215431863217235012882597469898573084815648637982216373274080230744879136816790077896163235349865877177510422674076402280773442147923581007501907365039481356197722492336409030591669765562851574131998892924271774425622503764413041206104850755553855660888375204401736397593386920334422092826656544221006671805146696751355120229844265849326955128195965951289865224193626962272619795137318482817263598665043142422599551436278130367655037104381960151641124181693675644412285685693870062592995821585069995415006902145202734544332371314275493264535941815316803623368139750776031727316456405878891767502967826818097089744712577967195218820615058337722409260217793664669393834081689486510967042966364351046737747453236991076094683021664364699606918980703551135787887051139007193541201437737643179079187210615237401489966577686400139125461644648065280360840745228204599187539706730999709319857060154686219586119713640591128432076977963922563321709932260458038158611240430601722065018072079028414927998507071112990553628853465652512499040225862915384316498687259438366454748196980354110537281562131846828846536877182649596741231786725879575575703773933974313343449410374807108260915909382126930364878439558585015399179814191091859623054647863725631013685472081889261305696573352987455148776703563503645187669741009181512499897875220519772137596080320056145912950447725934155535060072706935926021020996592395645192027719422037586246609688400277443309637821667141739255649104184546281956352463984319506287491530464948006530042497460399343899116289419020930967496958347476904692237780467769978523375517936821963601268757670504762589987569182283290246867941117632999947620991044977375842239869772762214146311345485694566754426242238050384437750127998611671984330455173284043229115843766227519015976364433995000104058475931860084451215107291587519481371538543959661377437946206672370965043932892499280369951454114215112050565787702559286890956743676557931007422654674500442595829442454581672255950589010111257817837517175640215210537851498050761946218303259624170497335700896809922874894730347090611695314922830744744467379274633604047296429300329169748262061761419992623956109317768615870384389850892980872021125186724774750075692096174049159295343207595979833697456791347582083459721106270469834530727808100169873060408185043846757271909808360249417099510945418453950667185526506122517520438669288319523244106048906688008759489617858755312268060259043946159515638695841778989177940869902464805901954233251075392323984991463539574317733996343480221538961395590884387548561176478426136866557836030493989987346850889245010884444257390817950766566721660688884295176914904536810917435429130033746573866147200057964129578419344404394612803401264589187263846039802446548716419378665336956433038170874230291262477142053987247753415559458931223453733759190731396068019968716913801362294359395685260076874309856958020194059365820566575728241188806384631073749401040759018702619144664878433517843907303657197756911390760431497078545147970814197165361653153433101657844758828449484665948278731707411679068772983193772253956186224045260920041279623440307318529868947144282452765529635301993266667018053940008244929358033155311267173836979030973784533344634418449082635160387582090849130814001989460994840817295566714413581925841559937173136546914867546178758620810993277826241610303670019718206106388036800175764764668426930962404950329630475624830999191392396914599256657980912736053548425456024844474322924577882555549064611035099744184190943663818381398309312962281019245215075508691972212181568210012968794389151589125322122958106207507226225357877950226431772229879632915780056818197448360351905063246094202681717587832122791295654937053104703313687756135338089416651031881085571375110148764843791453327620341469290688596726313767669165264600827590471627561543985667265879122633779075393795839737383511832697411027663690488805380180682104921796566373873444117147050903503500345199557745298927422730138778973857457416261713352493318555851547036036465749037198375170980404383823818430146437872326757986065574141543633213694139237620922486302208483736544094743322569182612879609101579726327850676351739557442977318855049200040123421500577121229634000198077519289676903349055634545847900317508842549211662757539185330263303932853190475639963600679872550658178343804285918216025379547782654542299794104441472866991739920049306605048843486922731456306666636611961723841849068487375347151976482651275617198539209331624926691166610059818631493397736921475599884662719123357316450167556253391444196557730926892774419190687526487798883428200785295693153538019434673170245084377015729211006798148581022395353005492559696391385474832570478838720201187636109049924995337910127884238530345207138448649244772509397108205776964934845276027270217725485021036264865705565499264929914423097462147847341246391597645000703614493982944305079591983769423613643592350619865861809728449538316419270935914345401840570498588883394439919690561569586040708059823628093689140853989579340911702517984275939078294455511087800364990032998454494324827759891374297006927698447502182350626348311059635907592652961921481720350215101269342068928038728847257496805944718160951741560467487498917398292764826332719268777841104400229123503272857279303769103903256354533596810760965315937790833049228833834590607419340178538399537135286188633199563936967226814142727471446188531709618724568482354012869367307681452611270850050272317518239666349137046937125170256291990112677636528032466691345823120307451419770303492952232353082466412845260506205563690231399415274954024415814536061891858424518971437226678857119604520027330245996160149404667614727940513081543097556916541727962365831241720476250799790620000337003851179139414082070320178886244024493866829878105153271487276461880586287790218619246888685499281024266690218460175471437019497856819258449722029577653371146370782281089648768068130738172749035961623993413267683592472480049941303348199724584595674179259985708793101382089333866334563632873491663924789044794150263924707825192874416406092046997550406923024362625610557090896940572989386795120222318253445708373944799460372072353632165151300194043912173305347911540108037039606499901690692749073447954682376859421627769767817601914875687854246168557723327178190756475572142806404764015287712549038657615769272772382397425561264760090830891848639261127834862840313563133819620912395619390210127616122181685685763291595744638105559230361933051227961844058557858940973893218834060964391917442762188802587941153767614847046256575284711118122100310482061555464498071518608160870684751832787029937844134839561469169191144219021622169035344930473916002270743320973326858207139226502858589062861351096580329629307164523373024416102010792997396045822181979412544946445720777938362424319016368119224034053626381063464431934547683939000909649593120979665270469817564280740226061182723140344443049180587745151054581644986895677161258887156417589551540883318182087616409572438144698376112028043959508835029660007198671589662189784150784891299092690837715475152783288732814891651883640977319373463352890673187004526387720815137436340969449798094220370594672014955875245507155867630109984818327073583783067244954428360796965231472483805619034164582289590323558440053057738642665535671935288016128126129912862680861140630926256262097550260753471511909784912849634425610631733836882030288809830264490529152750875781746192912668939008197933945188875237902681540819313914587338409963858188914972394576485350794721465032484530847840351542978803719212123215548024035347010632715699575538323365321873750015171958149624583041400668845812831200985886743998906825395938236631734546424603896775685956225261620324483521981597789350260564514069170698207714535046801008827959265050813790775437652041603287369886496265330996863543637010551043005537096599647708287075572839189312565197745459921064306355413887543907734812234654514915848477307747968241839337135433120790255200478260851628582515774147026378277714369495074003284949826176720715074954002901985211637313906656109176772481527252545887882191893410449259341394564844897531224164244453727623334605141594575321836979419870628096823273021643595634816352136599246882727556555720273969889535954690049026363867162209835704529127916406014721434619412818651424751002130806988555995592845349787231684795177079223042970023033189116519683887174857360284302777731014435554355219700128415153825563396249163881185192066097484823686619305558313932402912460951926424062502272213118644792567027078830966877181944558058429903629440025820416073323726465535345233696475007191041270009943493518860067328103476816702084006200888084188469121441515673629259317082501904683669070201301709236304983052359892417289801912469585952436123911253349649758275557662991701907581901029205297149129965183752569894232293470880498803953931306828413895426769315717257033640111159616472426146098856855093952372781996797491533082760106109710022397069375046661912335112382915456669966903418855878049725314162905479952004970581384723881805071662866795889855448893569069544705026105475565656923529167838437308126588955137608975934619653493666198934606392056912980938830940883541703998443938462681772204629541684807825199501536105241338142652587426999228655952710766453117980088035360788517689935028143138066920002280259640037168800534566723366433266494934243417419492879422106265006222307421087280608000329650238806319620635024043807309390077841186740760048316268153843409886982769599399509703478673784631758775887540455257362994442667200148249846682520878792586277245037253813101618161683983029713591643235388102768764615123531057715649829783774692274259514866384592227892850744637319580382789257771913401770751486452128318437950865275290995484368433688985301869054607930091710612793267355341507426429254513666073765963747828883096107495641277304728662637059893685836117810147503972693065132396995587494804926241975181059279941954234266397271682955256907199542580100253073591386545929650078810606066284846494148874076115272031844018072621013818719483937331969877036799384381960768067108865387175265720365043845220720306476398028203061325312105271161705255845823948028319821156227315037777172189868880136157273468567018536539967347385005535492157262634045686958815910080423027858059997872946943075500168338402139209637125500446651592838114107596988325116662794672984168029342189747221777094349846882360478550088674141580000931199875587887378646849386849575087582484305679531693459879621083493231537999034456046519157982465112558541110767571907454236240879192961319048057478605766208496650796333127172599790774944533365321393471982886615099768665154897301728355253002410543219416260263427232128810824638565415549831467678981567230109629735460967928903862102760279482364208598044260486796028750468077623686841660010222894492050937860653073571211846029230954524814940453293534869960236662949643107589468657949559201473762196949815969902978139671101083065814863461520978945916098429779497952505930857797591272877070102691813036663087092711328430727952688885261462843963042704433120346260953322088894580141337830104166566132834299519849055268283328532850243274943882097728245812777502805597753927718633503558032954537880320094635321519241447533426839986011322316538056433996931688762882683748179090046814349477616164991112194635985352321881457631154461233402527748245504508369659303051572538798584399882634795207106087399898122883868215452711881578172825083595449562950270843045548924066414770828133315660539796578466440699707310844570975165213430910721805708519510258256420631890547789565370432666130216841849306191242490139605333568095034206842828195750425176971845723314773684874644325310283346353679582085282852447978000964356322347465485125014796378775088482575686848737210376717861260531569143230534381269957311768926246663798919198227487474880831732975399991963574784468889712010586542493947698077023454114999976825760576935274345678500738109544477564997616577224900011682537235154195721156414369774041016738009271885405921383061662409049503635100561033194865634616934588540274163272815242721249089169544088956349682712495191008518584175510846605080383460823857294388294201952126631014223955347346686125792715096091579055017959033226962347082867838427754296525144991997508508573214090266139114168937869087071734911049872002368140349466964579939565936776562744713061595526203182908133006281202783335985563286537325744284577325405467618636390503355958072493054342386174892497565806894279947943232465232030677315686616069198567125341936518346005556285718436536217892645688930602232046445801616541568916046066701065547655605387513465609737836446222187276473316697597269914868449281133276496713517071514428954367404426794943840963862536658633258004467033893032635925574136721519022452890510774920331343014468408875029271490455392670643622408734861283553662176600486829839776434585548051037669671106527410108953576283234598411568057495877569208034243607329202283346529457615590684928742075605528764398950694637606914716193601596897437248348224145624282187879744802702964525079432033204594747469346863680176435794511178042501632861268978761517221847779575789064774809069566427382827993148253648344771580271016520033723760339093325296336275880604396372248179487833769344708604550520365531127525792613989810380362241361906609745726712262527900019652783871820932788631505362917144784873302713986087053112683907889781619590501793619410998314669739440557700410401461210402617149864982345502080946092373174405402756335285802813362953909306196692268868132354375681512525124155677566566777372664502279169100302017301007251926776022255104768407297220123287777955794602613096722831611934163803101266975239866704021159104805414614792735237367286243319592705716717577587280827103532281334290190580025695995250636858638297284256318299990136974093775919801424737856805310304296279193958317552307024130669331581857377862458711550671249526830324500021616996337753433957132283925778980887469256854355738343558439089315674221127098059371108320344169902378264565673732096212994694903283248458825555749425153278479667858565854417537118833371214279539049971282640725787184362689269282840673823855446146747215477749428289736014042854605752735101603894903455966215917626341383081436699941905568011398193088447550871818274704927087363968731938995822836118042128931790976238249618841107647744541163499540631501207272512728170233292310233686708304831900077452468981179902938062414182470662664527270212876001455099044379773978301771879239704081267285009976157714413282882297499054045143399399109733677035698674246055644647043654408421160689931012519326171034389073682825612769572725191961948344628625544173781150789692688635645097690805113200349784142594923659285929382864801650176191621969520371960717321870863066017837623099891175658528997593942018454636317649129115158933043089741519830185280273977549732419757828499865824289815829981585340892628443262887684036931071827566558870888749974292762043298548230585307271172926782678276685906131290489717919642549322545830085900538365112954262969976605400034838591736994455319592740299761019145791280393304894448619169966717621932002104479248231786731453355932692847817298340869173111693431703468956767243794348328590213305535559115918553223836662172726994438654096774909181988487947920653849575413212946394819956991958851451875710520548229292685587660190218993960087365277958847944995611867604903849130586913622263685978961182536904718359278320067785437335852330232485337947612543117957604982624144920161672848656959445949074430630380245611144466321539041409520855766610991204296444218695524255326843692238930795711135613042588015976522155279238155517683129757858437963371107979733065702906373215122122046703546836403426584982181170934787548509469441913242166746217232704587391587091949785591361738629741869518341324063806644224564937577803869317775782965705174924431759696299813038408135284661115539568183406619679593703061028075083859569880498220074629041837895852758261677915277766811012282772065928231188935270597323511259385208852013065435124412938885676500037154665856730636091745643265364332084096295337477173224304437993819625080575869975735211938461901463717598703604528980008568731555091782837154522980475882989964596717500670210792106298285811777843730619894323746791547343088219976813370205810583284302882807179073200193469874731517285638408992570504529985922086016951144387425419632031502986039137732675280466528465323402016852787437368319835514226439496354273344232809578128820210847373419355245613409528911006223583538612463109551888234135995314870690501734949012181588584438059404441221556090257759828126533122609376672957851330428199807696857470680086229518777245865538554849850453787216914030110275488930859257489890779730511713914278029807341069072939369418135295032745133310733209865480512821345437179817795067053213939353368314728821102210657924867691070603192766793927484114737148900970628718705402474070273310287076958406027790757195340977805142259541372216663261462426073760565396285663752403067719355403735115360307566237174578177352887311393198540383611450922497305885404433479541013800009952335729997612150041277255570528082853582483958803055136935024762952578519512629458559834050022077052842317291469392644401635991885065974427320886996351536175789542161041320329716905596396377528303001718270534946224486170891533720114755894169707274700362182636576087020537188671106679909308398806897050557664481086149917071779557885242962525336788978909346716596266082915530159055575238360913981701865771516016589765417251812553379798800903007887399035621764067959950853463814206936705118897701404165809980815182556875651461042981043859779814018113223685948921976784279178165874612925201574345600656608756931246120058807355827159061597898671322162460400651703313879075466984669113873850908276083304206050155498748237211762654007493801916250954652976922659789533545693666804022168473547622633921960419180507236379742893062292161064612875566568039887123621011111372382713328679668901185530800687187833776164662214509606632879125779317824669301695291524872075567566667072238538519723244209808958895492301115900523186578462988710558207425460038358264136754443264123160241076783183204087352103213916457798118735136211605146011065276546224324731110960384121157556713556846583378931265736719450856063727838650419600291499624173878909701940039862840773876082650757098050001863244692953102443463575232897146561040341306954479356969555291873188874189864297161082410644536837178135718701663457237422825446041663047262189507167869904334087132239359475378700099956965162863832833153765947291883701303409282932798685641158915981908135912237465646970210641869991479872844123274186135249291371004064268500700833876230909088868408185919512124540190766054242461387427703070641556549065796162927031190116899337293562717006470582428994729653071190062415549138026739225878476944802425400348442696579064432916291282690744326550568708609304154226924048607411435045023512062856412418492471290012317086954444034236074588432962015468309831302483593209030311215998098538041985806442419837616897175061357794333981778831202530973684081483458553580271912374945731772411645049492433246147806610307655076022083657607506833813215012700065716166534986820593094859537041860098404072140990630284483457194024335244165816748549603151784409028143478836541189513138702566387667683184245817401313631269756949614552047913392009605895987976392597763864456213352543564199907833847211138382230250267493285942186833720667529192314298054032753894582049729444144702232696085254907627730294624677767344002387578394136729956969115720048961972504142114488779109673723827949188783979394820005679650664301606655759119449163931880319096604709902502826623448861571985561362932924499746704612651096386549833318064305657337975740469912415228847310820850475917938251276698518723491372879925595717920014508418985898778396676836294383893248444935049334567385892554563060825595898292914970570828828306124840993395821925007918534708835917486016384417119205577782360978711407949719051804558120518072121348687900140511581515439927300107058480795967070896090649078487949986427627085924705125373775382633745620585763732785650638252790178114852782960906658868301065554267984685741045270173611072019302426475409644935789729823456622581018825075631107377114566119492060477969751901012950880129408314451069571928709668164490293201445311409868896504610317734072366715470926015869225322925731675238758706025528297276214400909479336860054919458080408420199784541241950881589380775887865654768964535283963945658092705317887650081639289923437304200422370243167850858928560408485610993806612930537778220580873707459792127708018377978746543527126282103523069443546161781116671885411631114965332040967236884032024095161673854352669279944614680846292802112199554372582819445175009196470603169846046578404433070502486159506259732802356181080156954417767426478392405873381354466853685152489362122911882828675255735964872453834646444754791813426158923137511638931280519233893815336865204189099875923731401091705269134571746265871128717035702019863765976908288059585202577982313562992818501348080656111382063959618741839528357090535207786537167363621131916049975964368380882839740391786689458342653204875546051708454521016195755660177063974017335095336074968817778512198378652746527124721439167299934123699660775366948068616834226531723916515588614600647932588747935855448059550752754802002624964668452157955313048914315859749184962316049573932887317977674339528738328061210278995809944250069690015600956822853585780486395121226777526185911686332338096894645197396998874844692371092632087679582998616084848391102244848984108604873963579680289968322121020344488486306858856628373362267509540162013405666300404470239531323795182664260784985344502437232651459411130741948637836428305242403314213475834812737654847984814798230019176365444778003195107729016490500090651665770052232090728783849332543022816675642487046676260093889231230030862282079339336982127066332367970601148443068744435298576662231917139243532974552264637572628745387888506668912872588592040087306006949975598921439383588169055442235259746737728844480020042975124558822655106246598368587327595239035154416579090695164076307973578220359026386029586810428905990888433396798709230698444665091541564025978152694237878834207966919419785076691889619440863914134418887677695705544619886549231561116022728737470720106636804177386204199773302420221710127229537092987986012013968838563823585328925063962858437623600280209690291138532284176100382630186383751925966492615642262118102271040540747454699019370143865526575155786861909374546843600894698752285193534861577105651793243316233567524391278767737079256367850519945919886123922501226609845550585412802943539116845600619317488846681591748881110470024635590495281113234180636641757172160250899644012150631567586823893307079459994596948577749312570866500037749984283441909742595730522161027396151934986759394979293094464851014212832257143981956498419464876231392838686108643587577237214372672865769177923994162390321762453463207243482699831251549023655596560849314639682835447983982970781627418384696452430184342233728189020081905378416994044887773595123426269865411213493987200644269057455207038312422066296404033037343029977432823306545455645871328477045468014112686260129211335433734604114087278112503460965613295438303995953203934590962316057592614816438422208542819752459446534412648586355297623841722957620007908698291945448667115885988577683324285461985719017526193085962782279036724829841394161603343747241383951963234971342772527255894904377040868520264003882910722101066960930262913696590405261329514754922007574668892895397876605009825434197819884900811368168135052148324195722566916641750952560000461668219442781432446777989652170709460237922941429442521179057398554023271460944528883065867568763226407101751161479872025364418813282524891971278010081034039901423765857225571087075740672057339697807115312482239377594993335129846128362403417645173348761574867395895899711672918423040080764968072219632133212919677987531314918363863215716191761128511246697712511737568058575393198424491055411590776513141788761676646075825477390029701323766948265607030184188952862919541383543146369844202867997772103419158769379244930847340984123566977409212372526057942828829540011704352068464518236137356571382273916806253951664947860187251542820779998965521086283647034487447135340017085635400697736680822503502827117697823946530701243443565928633248959853497866982240658482196336767325632163286787389683816925236009280451118596938941027422118181346834884840604768662207240037863490212129005783655368840126294525276928425258936072075067086334604890755107640082768454746497361378711235299519691797385789474425758972023909221145915847045330314205200821603479960859847715614741878016006911966622219224216444985808783972414573203113307092537646306152435110073030632283496393236226309833474051048247668788579586686003174961415625267535848390688791951174201421494567150173337126325512464758740418668346688927884452685766862598103541661195776129003256085404020588437958529594273046086598506225380588838895952905013447748209765086311651515224396833848865901944844717734039841937583443465767534948437757721308458282879493517445873306549793651417444722010632688046118042765591836466099476932705326889201076095745016619855313581640673055309854035361273807802066431964011208164917314475295094550509176206281789373744899361670867276499577565259237593599672742533617558093183423910561269106982589468152451544295824995039660226461628318467081658193428043386720900807469542655648286499124511185888844363000108378670414239346520235051493107694139246651826396835950423187723828190187170264996869450214321507546960932105600310096488678685718796437097600119095491881200299539831686068256044784435092756453545229892909639949650238726775207196453520557229821300919378512369589783503893123457670086161238100518441274018922578151136238900597428688880726767731665205999413606479511531285993110109214799799095112490747161005280373504561588078775496883847253021927566338168262346766068878927084900359855936334253087830838979121638950816543224214347127967267813997519387766815479889397262432853307687513090126503406929899067209210835052616309569972915608457567844739869789707831337444033675993423907732713446058955024583401683646381280375537233876528668147740834194786810029347815518707397159452160444884484549763584817409117485838886463114307912647149795974737472650543995251437221936718707128493795912299229098686281260546590712541060207304625075472818731945929002965328594120864635705547802247844822435396055634271258742034449070766770108770212037441820008612004096753930124286024528616542094556562096142543047508230931967778992273971192141581905546344215109513856460650361364940818671173100731948282844971251178241462414523036994690228496864309915176836310682504383258652352729563064656531540230451324019353264883313031719127766281994994859379911752200414030219489095921230837306956581499426306128952445274963893696915506630824801189636826947516012860994583569522042943491000307443539363384762668698437169775712285914662506049750685798744214301861711170812457455136226358441767785405044992309570451141563454536475343102565148152113347867222182886324330699622982909481425650639200384908430389511214977897009944128493078401967538118593061183605317553500140600571662741209250565240334307792534526067543760432378719622432167561883016866957088725974836527547975250251156627227234943757439559149401199585265842433482572573773808999353513410487870890742845540722487998201024321649471082101603144103282551415201930732627576649556734712382280852471648286410845494154158890580244958339497073923572293929861823465094375086005375976560545258839536604301805217690454918375845835015686569294361727248013068881119989200440985378024948469862880283338351866816947428015523904132439843271811065936272969686874227049451040463144134662261289241625480271877042041644695789001207229563506163672314403759978060672634704222700864719129422705161991590247481035394153271896955292173424569713739823176092951436099611600081382312052147488381718604875949242012656715858578730503473367609621332375130794848659288771114525546121875074466604775725402920646767759366832356829169709599816784909917702855819689860910261858738105073444327098907533907402197881228447444547590178967066467460193766102751769522475691960783117054166990249477837227416509261562312715975753579932805613683251877579446204782496216604451543836187811099439848802313826140046353679502922502495935454672111303639150829268504375945080279008630542479326797958772424306129903499905052918061305369630023417858935189390185051015961878121284439359332963521382527657307873211128484003529998044214592696902695404699786034151559468792167126066401669751228056336957355263231245991657708097572977303528106004194270380995693449228692836051601082701058376354644466726687568595231419616106162051618125516220971118934008831989332959825756635792848442233704011979094418720094354198034080118787958788820803798784814662358500880005962064711443223436969249548314596493698017724335955331776475772633625797037015254166390239566182281100700222861352181065492966264118152834892441489226408745361514974965685749779988095056876723130409285905108793157899235742028042315458416106488195693781276216258394447024100332265386235218843439378854217676221198907445045579239453057431871287617008084936121388304818845331741320639403454469348980786778368971721919979943596345613988232788462835213890906741414902125964553054601411526209635586514759146104387847891768159390828066460139997740319767234109208000456414257000150137901282720881948057902315103491566647096967268569878751229353041554547366979067026462489885509224579461263554212174057231816375232855177739590777335615554616236095424498210983533517514105758773848181891043008512883155999715496477248525865465342887723569409519702649395524182394702489031998331950062482292834137583975532447659559169854336147435016890592418898525800212043382904654964842034592790780263028213400172666491244002206322145229128865150144817922875206769663811886422108904604667117532602609375401181973356692039811719803612409027129706667333507030984699969393085937349098349687023680919797944307056970346033622066132530675444286453729694865530438550875090653609320127243770197999751248289370045136542863941539547468965052967061276031775605664082240717970862860845639538614903612979792573496799761057229089950385911770103455519925916473768193802595372934527514164384466547443095696174314992975268949065753851006377590477079694253276975138873011187246901460905018245477138959178187315255971814476063865238059920719342486747350260505257766485165302473905669662436547457648618808415469766658866464280525799167844013593313239000550102475819820021407763189246888204202487507625588054235639644113331153426089837621890645960498810143369156142074366319381176956818074980355452835735066862019819213876214198955310165145731649414414821215698832651443932456020433717012336342485850403348561681999252164160283073363189071517540574052199674173074571364793071542149594173008919646067334008091385675574796571434531695335929293936132208009386714935744876987546564982795217412279871111919489684129990267882406940690472040577536068811857813391820206184458425956389170467218373089692473910708097399437703300152085794385173207367984455424209561799835958597435524529149370694149471739592625446785456076812605556392282503993210267038114801467630566975487153912362781774971927474210513426098409445653636674808250347522613811753619711161198315977263152982673486908444865087751679687933186423860371027240820322693813590612322087668362477126308197157943130369233441647902998912644425633022724179177621306629268179786516812043159524804016071443316397528240436429745082826526447978530250203080410777970782749923413762359455109828812347836851824589973163893961828107932724680844842097192042830316337993426676198334326608587170502340435287186430920089579995788762122030273597840698317065944733414492546033282945361643495938043086010696364786660814511885336619935128957584352854046155704945488967670706960292206709229391769813919143902912422057840854745787716541829699349536220579450852855528073979830830574454889600566515168562569891396270019911488839695719806487898778594505062978555144739386301458163916592827042537820135569082094487757104804794051549000756559793570616221131552859224881174824427647618930359672150714845361803057804679588676759183794798937648821163765889983028719254877538954719776403337236512276838525946377963531161387612213725783425097019432032672079800474825263931385916785083569540093504521809350789529813690372571295825691024825814509686805344869247386664755366528445623302190978173382859189072920847049548813873737214280429571632987762845724265624036432360425587344035656487326327195370288056938239579878762590150514053329322655106809922022067745450620552181511693804333246016775074027747285702217713204543056068710136855482775684790869799864538025613196259272333149887400588241437619584366776323979987841423336041529308920667991916098879748588692558630151306987448016024903498672607180069755133887352283654768620989539007495047419910689777266729886346821826255524462330387677610404564909042713296018106964908915656047221992224029710244536961598185169451053926436704025674076321806829280457243349872899247231822137909879238284620939117395405290385958484890513100028979020385921489867927331471528932211559941900989600366068089419368703133152944347436589022164749568590638849695384928928087475765123226903025107818298846220326467424123713328679072527722178648693374565277938402839343669345211735502562775639580478759387869613662341427150743711167542419778815679260828544108494670476848212181537641458745877906295384197891724223007056574509675568292908212622017197797265586246549693907081258827007825012369816625873682182876134152085426187907474796704805957795092379620591953699163468259037435536940761361928949242950015759397159134366898641546691104893534770672350903810305720158707085520530274114083855572910779094060235575431041496678035546617129641424073434199558567341627874940893708475556387676107936722443881683172040774823740082887031681132600444912352087978273087365374260551576364879221134569821530458274823642517692912136643856283697538359896921047675777946971188612587169990241661761798469693903704958674487955317382222846196244701435302397292602251421659474076122439223910147531189356678952859150102881747979336212815438133542446288380911600313813234541555649002625741390383368712214929535809005874430008438822623055809506586357210330556637069109903390042711725620806129751595155651406583466251373338650704108816864035149468511382106225046582675253446898279645295544904720381550243078096079538132439727475334487529463649044807844584394859388482571746745831592871538399555485376468670937050021679236851017621840822112712463009294044130181562091767223727705352210516932075425743683815276697156978512097187092786388454629588972440779487924742971741690875321725516865728652383142365818755507376598564040862902262861296216297967424630380197597199515293694944758019156518042355090918715940106135998791259560429062083506115450920678912833998802562779610082021309646478065911503942038251416207532219256614827117253855249994672604250957875678634775090947870838764719455619697329229615365498713443730179140967925746088925133758343101964474283366449233922733076142838338591184378551129488734024786563125658113548237293473466888794072498152275249920952119202400291476979457250572173154914808669062756523875820921942386461859593393775420404914135003430012116388099803789580737687550770665672171535163768692631908085476694618271813988919826027578003035524262437936878726513071379292561648457566363902309064931157514673236192744858578539048904685315433612408060168902633835489744170006036394126478922290218133702067678323792111441154838799462136057654821380437025688068356096761722259571214754321533446023111280796857093415747112442464338545874113833377705610007853753492220316230911653362994080328512137369449043772685929230913880984606834419695972731594112978169311304587913693591488544236841437383781545186592281115590597706908383620097555780826330990345033613903363317429526905073265372954099633542911525813612252756981949202701819065745054668450267401479924382930038537585899310022089408796592404755090171358110683270263747768220387540912462882899249879796964451391667181933022245863302141160990345566089901255782703266365791052276187845765341489728755190114894985955873701038418129700777566644014501091084519485859734789204165233276111166167102609030288327833119230803327517899095485370123436581383295340587227895651732373961221810801209710988685418645454582808828858852373196201042061454568727114249395552875021732342733129591198689117297991424284625363396507160710716892093211292495801654719221024872791002635453063950713608768000747013557625443111023193350133885750737526320549454760824621426064700489846205943215757918939113415379629176792940993480381753661668481343360933755049868871036349764883385694659061468887873719504474955898732454568002060803006929201433708886945362103180479481708892940134606978085125377559342738861137566308339516268084774594389833496439202456480427025167978733826900461890898886329042654178995166257824239241154603086631923523453624053906279949574410735307537931304948240136293482837857713853983371244831228307622615248858698485357861246627765991629491559041377823257834796600138394581404524038907743631931171528885535356634997540906751673003862329756527052401689694839866072722092710236553901379165050034949300015963986213984337524054012880936507882660963535645832388241829104247039016443169441409040993122988151457805861400271905269223415666265596657454086835013046777967757647341692146032964020751087318435782368094919414481797533725756202294888876410828025950301934469506133776869395395335015684700262699083184613819930895390326345189251745190919496829710747375476691458246920805477477675779641773529413029215227800058909827126520980759763360361796210065906131746259463123403911617503999451979179320522172977124259736795877243782791113517493322058806262585060649504430339171368487063840893265714711441889941725635994795823810156909398988542212623853680253115599655129026615393050515656653644756681626170430029721462175460148003891426281601908904764541863247525840520526256831913848231880976271009515155045398247778299982181497302217127404206635247469796586284924053501622132863984888031567226051998707938765450080045582608313839641071816289414232179712813901194745350167765451985377143926754691302203528135861830608742585405938390005530028070221277562136317945230002133968068800454411034730085301297387516358195858469600204318610315249464415602139126417667678886462617935316268271400126772329168536388439795869195110370623355502528485460309872427777468725013877701685931586644830085613037149360857512738407007994754447918311220168973678835768467845734663554463847062128404522157346942817614329160025576559148328459843581753592779541415992662255339910327651267951978750676265099994947575895397185174310805329201405705098261965661439643653304217379754402540286968975931373605529399129090359486842395019843532790731084343599603876394293815935674453797996219375065764336436855036851180113965304402577170680203676832759341191667609144904444429886977327801716267350463276421673028425769074336830442051466387977051373639848460283093619185549652801840288012728696640551561059400364640561714571497089252342147891770340958080624592405255812679522197982981325858175633383275541689858065482200948041866067742340522830513259163078361603398847842380769352718813112581844105835884231136437685362857799473723575438171480092358830730178383086436168207242797904076781772489998754775280519622614027495684275545680088469215608871141060439209404833048937998040848528280009081717913220168956166083492436994375484421268417344103843922541639309523633611130241330409087128450638321926763340920828377175842523003998923676663049994737588743813712531248802489399698667433688000585528292275806485190829529855321254588593826372754833545006962605860420498691718271731132114525131929666255641651068378506738911203678656708420237450925889842369996412498744495693429746229341097804719177882406797610802272159280812825969001204356368111430879890814719664719570106505517842966450075474505719385004462593683379005669566257465903408360997545326196023156394913001573841058308855035187444540338532457882809630878266171722549585815572185104812741229467653519401218909529253850265083996732293286642711797321720518417381265407223716012921326724756660054053642897567788990304706375678322395413407100164514861533078018012233639337940641817674743079116728796454198867295314663460435552055954254651108004770865812320598488520047640749144606389203896365356305772899790697448829259631111759793652813068549182274092538747285316848483198676314239769978773244880232118332051541032906289052511246450541687954501033778010826994572492055042995591864211386828209801096334788866691059876216198149052516823924168543636932123761200823361109127277352845622248813088706301823362382405228647078052015346910990669606134428675649301117807997217384727185981609400276759329346914685283602912099646234063620206098202642454559060237895023580811512776021908504271225422856118388387032167597265852890411392420567703367283052955181202172412425650910211142573485396614252616885646966012873111806589674594734853098470003687748658376229361880431567429728129947174334520561927267925842464997931535874993323496890967090604065874649813863505283785774285598745554293055935550130653637709960164061919576357504420417196649281708960421681636056658960122512209449112394628029785333758864610814278565838260903653197149138672037107899754905006920423965045384941765654877941317447373956277606714412229508109700797558389188157518840074517245034713922302223597825369456889256258246228834139579380309465261872361256057517045262238664365681272188192708772540543722297128668007551038305487997887731942059904464562514812083756946874493264805990671538908710236700112347264123540228339122576796903748953426446158059267524502224133562067531387225167157039320254863989166834113875872237431980577479744466823698627338181907900617958249874283910661512870920821006472268747019085170294268071408708439223732397281392070059117836349901795170417227097092312771469527203538669258561639804670890577756429033215875283395354356120147433946370059743462764762209805060318014025358683552259995212849967411278095321144343226069599949698776934152379227844254521007095203853423837127149603832901870535749256391965606430392256517245751092491678378033679543334310849082350451441513212530382605957094202391029808185297760489179778440223704036028502808231626524581618958320112167110555544033296942229626032258127376073305279039433363165176301543192989301783133897222415082093033741387209389583258864924422260097213839886309928723147289883364060009225439658558413657640445073618548243676578888900483812580369658346168839038411658389705324608717999114143339067941345084271414028376422867112956978710382436165592019408050317869228802361090823951908895768209182893404409129089101064667345558571065661332695845709198528733721453677456393988280808333095183362357003936307689298143101075155672357473716449009933217472396732310477229526099177074447958524804755844048389936909564390384504006385602929599895572861034882813759919427761815848491848789500335739914879612369649635529560909061855257764619132367809809877921469298345119027612369872512035557778324461499222201335691794249148304483427678841965609919497801863118519672783756893564868592643764466961928743540570775030735450447341596371715459779282273628672551049498085334204905329720051670132671840412870437847407436749433056113939616693190188254804038250112984844940430865676234510323585112291198720587740665470766963469294913304914731770595414704779303547330114189225453607919073606139517810317087942899998631616299485460513307719413021972689673259666589305156362591610440432921941223080927581541135764721043152815831898908746345693356477458100449122792755851158843991377122918597565591002939653864964791712966247226923907513954340029490812659686939032450800865358162318992504330159221288184743399385464023562882578995469322855583489681367223638503182217098442521628884019015268738120749262814704748755940023580098314163185623158969508583585550685065149058917183482518909881927018768991466024233202549634675646231619816441902723363369071510786975242151153437574043927755752568352668332663859033057110769935922635778814804731363946692463440988236975222175485306234373989696822972995754661881443112676436602175466960630811413918441576831286396085791841669251963029438820288939830245542503001853635767268813936237053291413203037056995419312221013206602109195368475081995991348680136751722753296737465130310405169106204724388175644233049389845422961379645313479654724520717203899279695393762889719129507302523852926029932631804913102834992688870516143176681776315606080706301873869556451761742311851656691644407685792231194518513096598980252572050581596560752378120390004315794178068725524513857387880163369837152477853667470608977062784174427590836889711974436416633282543706032643790067774004522489419943003218507752619714452809338784006841180529779880544045044456814718954687595964118820091942847377797203425522993587446124307421383818231360487170774603549132610894093586388821116511858194815661394006958167462056077892563630645158997760918968648324470073888281643766653482387526622339381190131888835544183199030698154329275005062813902300781425263490606634904516601001699689888951864333506463178122020444987971379312527209873363933733782542349800872065030485236979330499244277609826730301371303744775890439892124544117964065390848012981064187040189404492280972989539677044414270538722284330485558420228172401113036776310911164911059003216581594797863016464918973970304716062525570705276924027171527541776772429344668501749722016115869919492166194130215294458244771985000157651145658352663396909802766896838799505015669406238241011109692557153550282964328550584055801275870403880287615798159070531262289334973226904494799283496775393343564179495852716685318570232347304509160895890740676431401954413408068873762241415479345808895228907765408576976425571555798834097115394500295969669676804802920690086255305367216249208196248595365953060344048948081537826620948742475512494416497494744802392673134987680281685287349836594300515140483038056914574936983812171330133830080018906229053692107089209965061268601729899276775779693662512028441170107672245027941254057234268750839836779031350462925625873003845968139404025090692695365713335616017545640972093145980824811289042879276015977545975758525163815192865267178949005057533177439397169011805506046333395536752433948832573572423961200744260804498263658034318456441793134430445000957758423558133236377465703124261280152774897409836958497822222370268631224504650388578361076377929701676265043829888154135421417940676948511874654979699474818977105636890361666106782630760228599908670479075071271921016871679241969738933400025546978169097009667834324075127717188713978907414582721191160664613570848927295170419105004153253933309731411214705144542220746152425830391957516153560955018463653693050097050200099170020274914964698360505957296483670600202637779830785699686664061804550046438819194258266338203042592254616637135140747716652124187021696222087518711522198829548542657097665575810487517223670287033937990953729001334130543771445320213758649639826631285752128695888237943820957205135544776744773466789397714112582187377541588769362609513254742660795432211334757272531967638442144435983449288563928446051020708740669409657128053227898650458634996233077326763062507244667775239841928027420907943464909391259486359004129841189951258904916042600083710334207774338247134219453331698318265238348902065411710914944989245695111035448563214209026374543501460052897858143496706537207049183973357832206392007191761334902600493442271969969042682774734919765222690300221470096095145690772943606519780557869505078679501168610082270107834603080321690357817880325485851449198688945143330539979063084827199775577142666416335053993844525564339710276223408552481871598638351620114121711539831651453362738046502437180524258864079080307578866179374896379897768842938011438300089823452034317965656509813956643860770993725570001840330361430907350035589058538077754825807067143225782129974350031972680426012389417432453856499374224337241419788976355083956700223139054095890736819125906368299652061622217478200474561297733769143667270392966127396998462874688206938693749799966099405610609999512394669780290497312903751603709415808069674515420828090205991990217668114996281149164163619442143985391235283171291234013511297990854204762374643258778341891029479086160865585848606448984617801043331830958431270082925483403189172833291753464751794822145897992422364636025096825282635181591718939400800990334839776459175179257502901148099172043675789499628557055364588593980033955294817181515415349691824722628898368913029961720648298075600300612382620276465412206230241648683001905604658015481801631035053007225989847742017940406698139391953624085108113682199443001363381133018810454166091090809595568572241992519138394994851905553240536244886126459575837208388918734309327298909436150841895196066937807823808167492029493436336244031130922509233924259083898986704344420912984223260272685609521168278665042911278861931020645813997011079015180785975502199013562762133964375477803958180572199512904310062977795153686276032493439599334377749395197854569635694767225328385300801196747075265029814463608233253689708462615255178404064102785201042607690354979550870693632916944775896192168633294366449622828607913261641505805988843938724316773596053626028199567317784422548407097309090149795879861936225539410570921192166813479707709966128781613280764028603512202610738023428174808205941623194192049676020933312601534518781412477489482103947570721547100584007942420164348521222571133239262613804008156328472131388979758964900538707361889880403858460668075784885857396971931226448740359419570990839873089155741345232732677334181063442898174575859052080047554952814078233042145743800182338438916508230170631305275322387571391089597794782936466034216594316424511050659355319843737847345289761572398467840188380945441106607553849303584657272778294632292569855873299862430776105753666027106178099536540604231754589092095755056510513626672935287808628675109925733970942452136072905682063080473935061038449910482299909678814003307257733242565199756064998368253895252522167925136649035783408009861037523605898400509584994470059899660461913037665873520685660572711431334637918606582330548530236438689999043645917580565048793354916230345795184957848058233880980680303855847709485244845248799239426593204381675197112355547872240732160014764910086135357037148660902122473667176179575217921426311247990237319582473737520885494832289549373078961080050576414381471142816522999171690844546204942186697265766023711482256618902550318063822123609112064332969815919948023360233125371491068329294821880524115664463343505200149946311837842272119390670180364857391024607409646839166391537462681298649135885150627878800805881105774936595907133018871235831604943416007200108553251815461711360544658463592143152989636697621063374101128003895902145884968877677364558330822823060285173961172426665949285026788237382654430582966649246736866843756687437116427612042737569649806150739153129638898147263207104654006710061375369907612821467203909765131029254099997952495583658052048076374703213630808274308947245279616691697901663858007711511148679941487517198639536144417978920317783992452520194734289852071854236212334951365486264685831496619298936793336589540916137430763296068890110442511603326613459248292865180543532319742512046129062325694299307056738399103995738481779887976328046616864923275089186219833028273667603209404171162513459296954606324889782002350016590469061442505485561034410604054305061905331186197748142226899037917710814096305747013047300980157247914923885060385979591087157992969735373970784581379701944953545185809767157301637653958166370003420773963682486650608110996706790282545617119049642534138471084386290648616858778552722602552606245293407559274216218243532728535475373061597950453633494174589258946583360981711073755467301767414351713750922175466013233666014600928584378770521937636055478047184519006725149170632700869036396153296178043046674192284560246197828980005484200789611952973105385603175652593422960107384745892109364851008452886322284514620504096386843942787151644394726226887406021291156417407908178797702213259425308072744289858834260972328570419757755561080645456357256190374751818897633652949589408448614508451065247087905079190627726389276168145392780646020072096622472318596980830161375104274717221899193529823763971315002147142356504564813532811648322360936189516912082802035092321276479533712283478494147147455891582127462790854902442570147924331709645183688035265847689491400482020110384199453306113232302020756171656739933753129806500531011869665810424226039376305992129373357454592779140417524817760036023023623900129524946335994009927319749739803103076317931152025621538535016817228708673300100378962753162568985677219672681540750535131527408638552867362901343267015638907820704084403403882823849303747387952006413628085932125669427855658260071000979259287096648200065015563815559116614409189625139797165506789676076146124250545157439556100674787322715010663724279151014504368862448640347267805509310858043442918145573710993406070371675824129331506825453053053246311546383307076909698770710190677576452241538417268279360368921680994296218867246378999870829066552967671399887123877345936103020513000497056744243541253125096057845987928995773507049490753253736729734624126792395288045957597513229730359862383018027220820673195239044486553077932469565561446339510098357021446296324783945109095635177674381919902453226143266240544039088833718533129371993014496806567630398240495116231656503084965141829608005999747059783281906868799433701538931288039927828887391347460429139086203076527163237873534167515886797238642327919587934782498631898631720353311294492640334253569417834185782755338547788338836327302340421636151964960625757526824543259980065786720014561363080032827467702820174641085928069035337067581038106562148946177786125461268615037468763643298328641018520396423751058335588442500975240077874377212648632256675003665276928962325475252838484509685374735150099551031453109777914510708241160162778999380630178597524853860416169561383825011537368227761051724324918652106944653203829202699271494883436295014827696641896045155454542312530371849015316217366380921954722216224666164595707458357222754524212702113330688253363920056088966610027883598829548758643587232513536059542537421127812348577702765674508902683196614932461962233074760429974901270925131942405931281185537121650625399173458526076265129258855792823568409378361472802540280565059583776828105849409947894966195959284591008961934376071853258298501991093091994146921884968608658760970438574875832641972488684217000424067612904374892844967855583374494248257020246401432792201271515922193644490836590893530615597748620352964984185966493162868788178081539308848783248444228918627954596443209745017861871483046325957434456140836631403129226814936468185574273938039070024270240903808864077764903272410082506304052936082389706547026055403718714134289209823809475852959360425515417276209941226049243825286383052278289283561801947893655125730023262490616628536700252937288706984930618018156949445356312539001409152662431130582223032515761549230544421539774146449145325377830890689239265342337161063276479156343811329619149448948347667996038520320268222154444447420986333762224487408572980212052184417425672932128157742651850822590062804277816298919698368857430312011870976059344521856932228512147418982067533192922036322308220743890646512971880649149898222588299788616408359881598548854848271010622263890381460685414678566580805803670015269370502809356507525067540452882412878642317112151790003864966699906275475489406911401115133066389101700889458374685451000306958921279501011702903636486988962249266543434161708248022338533750181410520571543152483681159902753622573611590822246248143353652963454611422097900489125504376602330202885286752662497568827752572992541750546032623864002846001526462240100605218183385440623192215366979472805799174246853016434784932059576682439359375877445911078522286036495588374763593100628932778029719273871533049915427032752924986749153190758712194327037249429758587605767347223902068544472419044932418536402456164235333366568989072729002120554201279606341026903663950369060368633311310264003160276244358413595218997525466200657583739255603618178951512693547871891565204157204364097054716373730094583607139766023946666386332005002592555624916919964349941544747838459690971332320613398619807512835660905317687902898918264775167483942043420614007362729411777232127655448492876510760994541942485430820990707460818024627673858361593786096550179752856420692768189610225620060984012916666595189451157789247961562478823720059913161661317958263544432730832834571748561152470105659579053848475756339626985932497311328342879365873438455621801848157327836237071556327754356832088814740151980133378673793279660048810779609604543823774473711873072317106656324970669012056035453226787517852990790659792644719410258126122235595085319685968938962322602972612122928319381233920133421588776671568684758319196955006617257272569204829515965911115418361914888490071969612097145802964917080690183783500202018730583267660089332588254525801420414246024236774675243140521704807672999643540778857052001255336340860896323313002328980127743141725922761395136145005442309525601183272113536676617885307611271777805395170566908046659774854016533285082211037996885577543635045503120412564154075556484738060784887113251115738029662187659075253789983254573458876759481539211301182140042520314646213572584011962937130383314869195466395515781644548797745470372471521452623945281522108212795728318609328722317702749032182282637111601732986607195693745352921811709311730941005875404189392154253343121654319729268677892566610342482580663546982894976127749183099039559088218466495442248145499179554784606975987813824913572973594788944487505092160702759525238607194856842327757482713407830655049625024620149345533481377420918639758032165916063580056629269230524120805518800251568890029164274475525292611938175251030740919241890626222652099163459470678325751376531284767762032603969399370988097182583530541111570845096500559067132628471605429634060669047116286690444352453309880154517004882856830523799095552015387738946869790751533991286420158289638455152474418950000270847315064604217528784510300456258658243133767087025852704557933385848320428933386074647957083786636306811534866667687746295098192148796204489159749257541527673424296398009439821149144035918009395320906266504791422109295105900236862537203603784134863574529998369893547687225221883831904492229856900050431718321116866262050131304727906772679841935048087394548083534580076805760031206782551027389100369190220296601554428801542747741285476514262282110050383096022126752751386770829457353331937453862802252607378858721567828139620217055457128529517720378183089945565671356611144081186293585924019121676342949870266789134759816161752928471789078457024697023358786484748540780351010861345368368299905558602839216890458719997979750032468610641439106767359489522013135858970665819016996760109727147014487634246158092674856014358460368040957792930121489355758683236662166288333266324631434047811727102817177958405700211583643369688764046918138183713791026892066740638005631726549851236732604132711939945034206243375351061530092562451900323946112797380403767003039682523610874178814529224199379639914756706684709743011964257286504529736441975090534808202266817401533354331372107902210057244090435802658041756420948554742529200778545595496150193595540801831272354796869543723713790438734594209052700987812252141002790461592644290586306937924792568651317474264202421531897911522446350730136307628153065721679585585438629723484833112468225842605156823232075898638682707716207394933504602720779511458715022654151204615364418953688397616722156601893007864111938406042559403108084560745441786099583149092425429902747480731774085805644324959727123567640091365177284564970173873081424885766012796062866908058534340919759757582968306486554313960164419621861653099175368956872564319553001218916940580335971459864839821018784279826862093971318155729934207745092477632678240053056826399765943511641455901975773241668219257994718578054030161187526328981964882298505830030611141949994317711555133495758539686443327859506757723746520231531530818272150584575651844441534424986565446137115215337951239182485692578768542790552295096846810837720577755252214732857831280619351760655834643067908431665496691946010046878762797249532945782283721216735719935485587342684483388857468641648081274285044859579220420461055223386168804017087744157230314363939615718183689375979045637919828531648772872040878627285525757335890199852289195569954457669022391371361670521383350099812180186805109332749263872941641284476360618773620867018276004684776787448872973876013470606459927059208519739078515674331727043465803021689686824251199415053750497184712391785564133312227104589223854534128833202452783393316757131838268549898765308537900447163638760969794227646804868434393915876144872886636174531813587697697597810015577708522004091743493626887146122917261600483756590049185902514755793631261125216415807160350614391655476646286632189541196381966996558848298253891074964549393770619032938393640624339441739617750355377400094431176020449179178957596150650795898159345309225713063162754208581035465248822926242234159551085533881830778671542678169914440400818238924622084038832459764799986687798998601660034862278028265463773699512386719505584337764569316454385466547000095032138130593885208009592848090246129711919052601211370127154535281467265609437058470575429727862006290832462823634887367308284937714495685508464566685766095297761928270620469046638321233441528073449622161391432837753592107702709410023524212846050130725739350555154909253946295227922470767440252594623867495537480071617371896172729961848528068518078251704880503303157457930320135401349767864647993464423643170047270685536914163330851423564742341925125921733820184028473587826977712157284212962489948458673715870619390150576955606194955362081011984366401592078019570187094252729522099759501628191526872832632334913756321419474631609742206294684257085514595792600174108524006742591308077421754164645080865368948382818703755348215620806291934354714261028718141899979668988675937427646551828907780396907064882885723673943941796619508310828626829375422341361586949693212093378776323655688835351949813990270518433555769016395829257457852057686976593913232363182315003547800240832551565454601122804165011160313861316754239775398475003873183104863462238235069401762989710750828274596094416244500039769778205489223249781193903005160705250564898346288898789205904552542313799156260538079823568237027375200658477917252455537083511220406076154708169195553081687830210513663949121976986287966438571169547961923563430142687877589492583447446993052027846725405897212471380378872339857624275176867887952984241163087192666082966487269958648489206833657950830479280822156495468992899202183310952684405319075836274007622233692102298196480442075809816357258997758297224562333586511523228464028526525342742333860656005654200725406414435405670100802378724819352305809392572099195292466247327788048829111920761743245920791893595581702604524139958256276567478509405453911432916802955383041907621890792383228255352982415046750272434538699685530423974082307419278427239314122563602608406751476548338060813399306317912276016288905371278018401828486276279374203585877161026957310298921311462434718777665644394922214985606447175632055524660600835067581380387975905591943206329997865375313794778773643787394305625511695076521549327718603186239182449271967319048402776989205513589468511747058440723409978013711689915736898156402671697012003066874324907754695045475729537315784193384913910226429196003976986799482246444812557530672004338385855670112938304730484515840644713755301128888052476704010929736540329118219192611091750290300659053842190867090921460353051279627691829680387344993099454020972182567751105239928516762196690412786725850277896641379443449805595959317701616073700974825769894411556970359390154913048017552262028460166609773892431190225077527627311175393861662034484035559783112865610243504564986913695719930060690570351112586567230614846522700981374573768432882587582748084870223288874024300343027823421733563148242679713473842460989038534421940240921837924123309782190594515821663748000877191935458244002696044615497769724868258162076271751701139812663743489272291048997619148498819647620195094392122657016855444790281743500240295340905173194162341784446711174743565409149742978256161348413739801692838972662390867060706550222856624308411499511683833820380277214792401742673968076567731983043907164357521796544931996003589371546939220333576664530004705925571087655925727428257089853393646347772031246616996396742059014142778447159441252490814839418579888251959608581083458686158393211200050382145041438254838573871476959616196062023723000890831509252928490748721575578874306948577664035085682622409688330021179045698163369636232647550082154299895837019075625722353384010929581406813249362676444769908341344673453892133245095448917412768949198467230171202332226818877987720550306314915207704595882612826406758027903874165750729291517746851587712097664487673596463938570470316083997294646505254057657757499314884593134225082485389709242279510060370562314310969948464341763055348520564381604196639233514411706155355290037095958942025249092994278650881153201094465230681180722171529110509488117989052009901461931423317760347496952053866260755172948914903992995908911136003389735573553893827857852467214954514378580137955085582411704807751150615257493451355422096238663958199929420455298044008045479358159474527653174206126287210755662416839372696166771012495060413738860962963336423380594507598658116494416709100825459322911115212628381905637101890940211627219211627446720386840999483169546739490189793230947603083442967071353379954017972095291263626765345596107793091470724011997889249767917758585037384259413019138825081940755627600110424988176836969386980016374042516333910565634015936954040013120847770425523348947251975358357716470182947082338518033833029197222104012685737642017395702110596303178452815581493747524403423515458472281916199387748940571510069589527248809644543573442912220043721455933603284661975685067704510604792015492563241452798170140312713349204777800971797066721673057352187469880142206326881359158983082618379918505634106569834481605740399508508758216797625460695976890136851024836828798169427212089065234389181941211793638041633138785415050596923933117324170214180817317893706000453336239495882019269628422994232828627093839009136477163271126939314350501071682617641394715222062719910241927260679897517803992524746450755433288358424220979117701325987110023477212494744438817583453714778444419375271543176352782366576562876312080571243532911788507072300408550174321825589026631017809692050405879198592063010763802116120736709748892382942075297704546166671219542215111731050274590031749029462483225952083864775846806793018769439344213530548387873539648697185358921112578795635716875395459321606403960226599628355284918740422914134863356813454988938449729974516765214663671307487714102034559975929844903853105474195356469457316941057335305095885200945099668088626640262873650759159929708119461189863083242768466285213004349939597212412224943467159123352177316775299889465859990778168691110395205213797063429275661903000973962195872416133145844920439878819633068930249850092613833093455388388102797374467775665590182377766696410509082101184066016098432613405833785446530772992738884717972957290501526669595803696288143336595104467837252475510466260266425359154151755163512775593482595720385394427693804656044735850740502390803433725791109461640191059387047891755692498154524364295750159516726310770306404816887455929331336467084267371801260134708498127272931418809299812282250882461880733093959314873239785191467664298747546872123055196752019448549424221498714692297203240107367110686316561092078286402135515379447561520939023559913089214264198220289306501841088512154996121852425012619512962436358198718660702410895144419100532769563718922594302560353024452586201357805754876521861378723612051279866103153036800640195969289498383516456808736347844964344652583187626401921005089523850193511517445783023462562209514975785366244388184442947367378976632167992065565202446026694172250360808690682236194024330261286795198918832575603190972750805221251555646833325114691208081187342164854315422771198098229188316447916875057741329563625660207859944346642224341686088704395892610021049762975695969961666540867198376955006708117728552847262345514087176507066715892478852572758790239944335087544542812671058242995518716900931839578719656105324044977452580717944564683706177255549522346488802603281445817952108373528527572284788858672494018577371386640318120993415135885786442034148540295201497428787906789508370891959125388779453580305666622776698835279130893779070044249795967292711103695111366608874556132668634986270637539175594366631208394622452275724414615562848772776223235633666124203850279778674704753687954231593197250564844956533699750479478052731238849510303628000693520293457508449674400655479121680081136141780639896465837114728745214799229388217490576401394875430169216964839421555006329557385461542647843527363011480734988492987928277895950213741308989148092724929642548647611808487741371565313130410101944637274954859132979873817771062268809679346236239413885198579300868635709724962651957805414487824479067575461017911898594427491827698661619597424463142888193991616972873929720984213097272487191895091473209301126954122745332704876628037212664179960630412244777727428711922759761941781743806535459182100860625378776294378275857051623814009668089318892607386962735499878729655866067987210777929605476883471002274327667075211525829099021354843052581231468966968898105894925310650410490243603627114810803135213814091569879062216123659359758722142723634141422934427863235084815360194449171975727983779535559900829089416600604281651490790595788782591007299286692604975619730751440698468252653249223162149057306834442630541319579220999584668967768324220093868535733587217520069206430539845172233048821982027863369309246480187500783833431343893440353930932658970736919534153016245304743526265090615742689936986291285168554748027123689223858463013349753518251055736124244823185201211062116151895676798451694297564875686282773014749667859522121401571021751285617118212118751452429892196741796566928050042542429901253206499875468410026302820418950260503789018455105714917590679186251112788858160057220644222066401153941555472760941300754845346793016875563286317649880743206705750700141680800483873655049786870402076444744771133474167799634699055020652313981535961452079665950950828564282605226405417550514955736964821560179776972398942750003441374029865323999343927674085578085992719203903855154106546012200134695050511136387006046358776520058965495211116867628192048686518234282386695828964674367896620479420849318243597692836642730938277041831211519617710541195591924836164102074316292825396276473256629605715571462238059647565390096123548129331237621157932640168875600640146289337650778890004553535842249304194848682745738145259769848574120875518626385337706107795510066296401214187006056682727841442130997703411416315274141522340279657086475343339090336981000695394691193165777706233056518385521041364915603528968592829306666730656147953147930673910313595013388961292038839306045711133753629998863636405702632254303994569084725980902463550492011549105973271357550837821675075202541326842633652720071324385784102344788512843387239386838843795847528293654677252148054812960036407288637827788355325851114763990826418553114227983822245746723063924154971068886891142040699278222927921019110563869690631547453234662824618137076731273328077598280117224936438508756706362035844938464641553422556431884071474247590826926859437220158821575651722372667029725915121933430553822563859489458086384933017200011105761777228692770065265020540174045364770151396366244228920787752221697725112047493742755343567077817268460959969833894263951668264911695304101068071323339548554897950280300350826341472469786133462950423889000279178396807137543625835863366153005212255192301994552603826015504367612722434437038451115557383976128738989614103674978888968870674161852120651355134041837787301998231512757046883070148599330368911265646942164952367386612440099779743631367664933215909498900861304073555076077431114496104944018325032448442380551265448840863575122504074956237019856135914164981814842510138837983723317873587715774886773879675598825757805557516444352011619332113704528061153948595406296088377499134564577656714925292844190071399125971165936708447710347515132273509893735677295710476004673511297629766700986478759608293624747309693725962317443224102103653922437820946877318195026366227861276534682581101056146406875562918983629283918124666021102531910766821617887045592567913181078907413668808256363253963664221671768090744322902139995284083341618647316691892765570959524466157745691213119365342265138149241523160956737132872753714515917704078062224058203765808996435578225259710527053975500767589747328860361171314316854155796172786355713574402264119338335106390123077393926728872351231704163423065103664835591206085391604846365118207365875536852916961857441731233456928341108236403884792417165004626417701329148558448432702841730933043739413323810846029335064652232592274431112277668326206767260720570746132594046442718311767136976173357051714168877170474139395188273691849280751264110449011718862768754774741306926626659070533491806307408122291376783384100913811241748350723839308994037658049465023739604278193180538173234069309587882066271421406602137116283110425849111431272340580093367612991405792957005998215113132690113687632460254674228639659086082563994377265098563373611848098173744695639072321668191968699991939793394467280628074325001278043751316816985104696206805781822893595614166994237982497870605660844996216252905242651646770005828153093081833654905449081117488662276391799706931899922535570685085484618620241535065032953389425810698081138178713165590639133367666136019272894423176254772879292450361911433990238010397560667474252805708297049090832303244107547142185676207429299204080211324664172489015603028047810514886636928533708037639234841642398678868987230658802986699379077652393807726677498084513335588426750047328362823008247534193977384895478095667170957169274152591841310953912263331905645230491719327344753247959942462774377204685907791521497914162272360111399101456232415820808058817907971008656684959139370777300270714467894560372322910987392348711045383068285676966849724140594254084979470472516203366939651537929312516556712743508135759096188717829509068574153911271598744974568942973490421107315445508274425221093060822747417069501182831611233634927718840862058352018714092227544663522224529785598436430199795065118996328994355920211317016761890391431138989534996096897923208775500309330881090634152976610847407680976082585836525127979257013493651932451257379436711357741150876185220363617182536292495492137626181364893182792064587855643024709275369584337426831744912904937232102625504943644734231968322577225792642356127617137884474127849764610650246226119877988123806323932985332983674810684402796641291439788413063794013372200271579687416040133518641775295965956980229599993071656707376676102937250422961854259090565928031406406724581900130543736624281296889466262736998988846779767403696941726559562502438951879442290912857434926691564090064308329843212279580073024393387082563501763748210987194095160401622567003711058186643978897521325756314873267822314558752912640782390561233150068504675418669163912222463808086085224402656829174823559554093275533280522651102374692821854806065727354957370136097392145167300991185494938984709013260015500577138877810507311412628581128186779499558902844413443109026976325643965412367216394228576118249614097343240950540104025782338775655431107959724696962473115835557760243272891532817350229103833589515730495380701662797046952797831738934063346317624505993836255398365598047723040530634425480184859974996351722931546901209979655874316012940774891577311773522341940333610401667472072209636780346122015448511005934501499030243441999845245906649209767130486334911965041442269238305847663016836900404928933730105950979223052772560853642555537520693029690525126108613430598224711896858685147092798041142709042610441704206642780474062759269252403366538204920661318389503775168230661304803131684852126504405202295992266268325146621908868961858466356746019444475947737656652289489874649299071394445242887960740180255960876415684740150183058284961374019645999003546635571444896183273290823123392530829173754023134926681374084894594168991746674048709981532255883696207712551861669793041390097768250846802891800544223430435587196916234718739951971804741874084745093185224714144300319590199674774122235550479901875411808191308618317044100383618889085876649776200067779431163694801035251910070095132483023762578673263690846350280866828759840327351766881371529640370162472924400510202974162025607104101983256212331206215346842957267328056643045036421083389687795187229538543597138449587631063230867151810938625564781197759772828432214167572300662905549298856153845137323483250674782448135386650983656005657446166533158865230748480721853542443796034049012542930833884832585815581743976861097546772910684206989486186175857034322063528153755542282053392141013690585091455644858135621634045494757377947231884073508352027888667904731451203446374238075083834641780766288692550592140807862049339543337754678377607160364034309797036449892219456902079197639218654126064825228493718513694858833769990967700465197804603485618063310717419966313601577802062432983687174476493853272233698685014020298624361126177833872765593897102215154053474787322623129167324136055440461008356815950669422979395534885579622979350424915344075545892865373681292994149922276953264709688996042356928488663100996112583184905115145532930455069692934766973041838828704985914008092895573406421958581147134578640892652993855861032872050563669984789903011247728404744035713750750283237047955846800112215453927127754643383548775962521311236451474351869109291969174332013291068065039163379511375892170968387679373780241041574323357719980071326397904483900957579015003748984578876840173147635847238787387178406639738778677167527877698591382408784483554575690261907691981855352585943788105951395412122152229582102513199128165394617549707209342700033537800954747001501148619375771439822650783601429545858842863077979046155123045111549925353244675941348138005741594344311107293056183335334102597265212022584842895666993945745967858087768719169620713253400636070293535811898758233683647426446083262749027800237097885857603557042439778670710217053063563147280519195556834436299255315677053594788757808390925025172300970365901346501318558862310783042846824983323210317725886689751969654922402419789600142441528626731530045862307886107994504606411998192561274067809382384683608274410762217678660798248085931784195213552492414168319233010680790410655258430411881239473928726673767328775872800751865529037335962476817273341049870860354512517604266815939967458301010373900249883294657739717725043974682213082665713692367640421436292079843636811640572627122642103712524021047869013922057964114404739914121503718329016219792395658077531947874964369352702920418465335109110142676676400505986273891798866243011657775354521826629499715116147784834162826846806812864439756280857962086729467303232208960424512813535070600779585129483344108439245808536696719776585746755595582443702094566551187437010836081463786575402150033773422189150006604837318409589041540247548180760054960575364628109866757463820403334290355266997377142273013292010182950862741657488050001622684194232512294434622303798474389255349611914631839078767126923619633088150988222646018571769804182040949499886454069436386101040238315042595238239174640770645676538699623555180665066018176775755450310192174636000122270523858749793793643858164251227996383728407127422713140686369051851537423933106871246351806809792674300303021976959001957381763384943973899966883192769428899172896607444376916827552337535088378189146593376166319712000475840830097097382937019596751972594604419118842796740898119128152446737973732651304712651375732900836854725594044507490923764950946756067213029167570481319973392423327206264714855383710019788245344783923452880124228868897132657906731719038775263624854060071910716494273245963680556353698956811466424148545109886391200310250089561980366821381400218878366194677849940708934961592844192414179959866929645934383197861429919915635305165947392042137127894707307774154546380287778043517020797646061330719546001154777362429018726880739083300310015638079555986722495713155169375996417463218121268835552449151003549999614209869160574869076271788726229186150399665162119537418103036514383160643540825978666369860047637663728552064984528257468592334613041092631533394329680691545559778640863728125517107725111848458916864712245458063331298986767747969677212841632729390440002008257914351129066788829743598060838312018682838826285644548878355218758036940864496821563103906429042628454060552244420233770325614633153795367341230441841805641593078841379488952927046172806669503801541894549906617160690428673409329104564876649094930423142039287073088753914287656264270370340135489382271350327515617883219191232086137090639979887954139914933238219831895236657542187731026850185844490651143745692352041490454008083329065124720394983564301360043270404806102655210832315210734844584205899692939526161271933199125963082183588580687929436002347477726855022257879746695597660337932523594111307855599773700463054556159017762129349476303164429868346699212430779629626401418653080476017337710731736632328168587976090296106409379091715181331395180318981248988570662517095243120959621810141706046841569739935334322076105959683033983894166136353648406388750930601663552602662442455132778787181515727597274658809169874171509676648209043509213081025388992956125340133636636118251654305603529114981037107728309280419206328077346394496621844032676836718647166700631509030057047948674488817869800428003919829326677938018604079174253683512096182707194820013745689652838905748748356941615093146268714306696351543248636488592447635151421925860533017232387951413195356069300322012455397644741003285470660684763916358822338607593029087494688547808305963541411007836096378781376377712198576609697780730552178452278784863242891709210455545768559755347961405450780761878086341659466400792424776967515904030094745165761208938975131541129106674004844372454251785266247230927922316473346696553439376693361342163290935732211701461332878833681468621815753233598544652878487808883002648819494860530540170543852226213817422917826644678472121995897361744321248211797521160109344344743864039761668539668641753091908129668263296489410387353517648435987027993025660919102095658377599298402463560873185137499143379350817959244384433660122097125361922368751783887249553162476943224991260363199875457743603174136500383418437899847645147869094091193247482570130584469844765712628125270178215525755518636394273741784826200195272843807023451738300319209512592086015979062948308907317146454505999590418112563020547841842477985292488530684755090584572093275891463573054243124207388526790131205223137969651773627687422359333288969352434604446751298659933696154735182149944801884821135415835605647229812772340931464751898753066200871628495489189316904406166647440006337738701267975908872983399228909631126997926438664663683642560271960562396507942591177930868538766774934238768284519738176497544007944366360547123886487744699242598982927472779824530483643740034940783893313403839859070010206500267520392969533875972496880563977282900619862577177794364204762886640050201519640271262531054134671392129830214077764491670085426938371222563047641023752383099888949129471561704459719371938769985385246190920185317684882884738262562726401169532470783635004851010795473664858781848547662462083450598644100391348047805260451133549034994276669160197205242518848359380704596719687530104728506765038914402579011892108876165620549184042688196069916065495578730999498619941778684404089305542621926968121178829992266463883088468426286755230122361013207362435056152545249671851852077252838361212130645343271135654339604289174596690552392830243531692379460940338172341888192542815366547738295507522944536527579702182266810328333476536531998063559374810987723868210302127956355196860286044336632869191599468835526661449363134162073446224715573485813998360119911906511879112873842449058881808724881354942706346012636199344835849990377098950941126916326682193356560968785502518468436818813595784325287996849454266309695650931406380885420813900301392900154559434361278885846994467949504825997705829358634599551660608692071186575975251860826550753311312081965165672714643772877998136268533458980552343407837263602063336677111902220254571357509841548598923166032104515580778942489129318484254647502645503553895296335574484030737595642489866049678340929489201733053426700178893651118068896831088949991405007889978035939336436094638743717470965138559932982642547382439157126262007345883175783064316026551623753958248715582246365618207233363966977036652011336033487152134796240491352789400187974436648636134976363894043135663960035943346257918400679087378751411309357408007330546839391586130685505124171465718687957497630271972312456925656872179104728013780089976121694165439463908365060777313755665055557303003480909842688136314174794236224299177369745844068748387213497997479503351852830768149706957826245842892052086694840170277891456777502936857552131507513189938698132688531696290770977339429345353969094373516347227422445264243475111335107070138418131202099837486772686223321984439585018104816343399935516324734305914769343528119206437911873064388849760821857205115703032050041418326840055336748074988404082739093993273861165760082328515523451404524584510765635175535826588665201016515245283053462993340925609621897869964762279168657960217496277411144412333783609340272595268394476565385237895802148113191242336579320631111367712924958829034562735336510703224665494221405330261312248474103377116806075063809638026901673347700530738624835355885905949131496614408207138465042261050328668998429071253531008158318778111304947094122859720588060610528245486482037090107856777298936856135573562799248110237058767790233792916743161596021594592972934488243675313157975986951474338694109217350574616132514777896744991467908247732453923593620685513645832686583319766215746594225011080568155147480386581686721469202724332473279337996169609304568365279182298655104398195150033136465408164345732956496007361804512571816019083158248446990151650230943066986209238487847443067618745892827157167657724911721286177185187242004701759036004630998431603800441676841034866248462232111521879173348890441975736953113935253531297073698323152799889364580250909737758832170274356915796844828370408567194045455755250047585761506043744009785367481916852265911951322548987016008174866125939282698089794083024584715080819089251548921624277357726208486738486084250199168579653680906846555779003113941081932708104108540832073042931474598394044057368259056946717759306214018173248937618551214255119357750683236583214999445144375161485649200163285834898632987553586470815257510539495992264475440130456215004201180072825369658215411623713399063449424589734864138612611988267713256567360770287024330038681194594833350104140338185705174749149928769709153956999445945262444926257920571197871838258809101543681987003018985840492476511118529297011794423400418593619983495254688615672309957699896736431758732209601696743367982103452306285719573500018847096521956729538010559133771833725087778826416103069015005698392851775828739127884168091379829063490913948197991976451725403166031515714153484860509789953999875325012155372919374441007496534461923949796854987951684246268771627331594532098370235670665931114954336291168383510684835412249183984732669379376276952371193377681706823430367469452873278769435605951193821615157491625104043608029166015171882812653948310204900100416878761322485105068443202548790104167687631514089433822264241530560310211039950649370935645252298536612835123953879131447271064737159468331778497745461472195085081261721714257222545166350966103047280234227470197517542667254398969545777415916594901838050514057982067214079879703089585780037657900464763049919156479684699336796608382820322605685713498682120800950140821274565484535217988071589876481721718847435261781856073131626072220809981726627052434290088183942564540289609156097803373927098471367139731488323031555980076381843601122758725828924756650227830321080960855770890801537719759231098135958210795895394496418842996279529320421901929069602449832813234924147654189997438164476307998426055359177970608104807277609101067667384658034279969694001193745505063522932920205186243586749118165158365897414854869363039504703695065151881758042877943215141552389649436269835749051491580526632988955438964424031974040506489357122684678475219478619032271605066141316835702499484216568567379439669983105603936488463165975991050817425201409908018075387011919955600819746151931684520283148981311707148237382621353878827509938898882306121996624585995334354438597117326872294946839117017031740894338606419768621297681680987850575013544550568948631780719009849561771716943198628485262587860519194152267253240708815830327307171832389295573896414315500155126218116576884684255188201778437092981437180029287947458377018080069546806638902181847088516735094351571202259036756201404186521991090927484721420180073791184731799120455588161202233242771038995824509811020255942218293238823061006948217590154106708127373475537223559139974912088477732443263432031059503813264646331061786547651671339387949013751754545850958445697942393536109382396284467365259285623246268122976906420010117515619877917050083853959333195077880366211056053415921983226351541122411419855603340570340142580191761106630248936588024475226307298198594494651494378962713314953604605488923362944521930154917899469162804488605214388489676963561304051827377598412395125898408043564507227030039048054477890957842476020891415999246299226410364102540007890110312305414328745039687204437145319686311771085200063072747852005959582130474007960274113195556499235790013053724285162527627238178338788580005092472563879292735446160499242790787497378590675811201211508776094682856324978551241012132633913647929731466530916652025300254490384398471523235513203155670829132936267299998987415495022914863797860935004946023748663933844524579700426602507410831285417118224230570160769054492052748469082010228737157453439657868204419425340940077600386944709545709123018895764285301359327239485365620823333863458312517436778930218038029518406254226135663889271723568038913555419114148617331871971796338075720305224396877700917703019432686242593707476973197411352428176536692976060918754341248629561524016156559011881387040841267507985961426862423251898049337385999943521100947236611646074153823974230171484712483487407089159325103702711379629240333988569832926200265395560439851000892129381265209497301899349194475959720583044167837975666907875201398926344369808106367774057490225495429305896806882981779199393337843774143235405848237436299091512826061333296126819091441421911698769962007056029631896203989544554301627055938271615286153849205957095974504945482222660510735461253840918642019283942099169087624916332704544790245781069563278078136809378664076750667240538012456860129018311738376293841069404225070090848912374819131964901000889765675673992714738173371563279027480482110602432372120828557920644667197438319562917771609792368162684028861727253933605219060800081004886084715127031071782748953110733387106997605180702507470932200807001486752638777767009105724215720325874908908001415522988236110268745829715463160498587416039537320788068894350232031115350391402621563065111625749790821073472197832494882834360151155595378979179381507975946006414837409779940229698959735929384188820330312739494853194596523075619904207026274784586391500028582011043282943564059945073177224523220607380628869180325693622709754329963262689204055444329306986407798536094650669638759355421735280758181697661674545179724586384449560303835756456483209306133550075134954115817014222129013821798438885425261125982526798231599783040143584487254759697198110723113844686625589214258573629664955538434462744452011976485055219605666933392247026535041616166179246999839067045419474997572393360119165969088749540395319036831310119048412022978057344071705401649386051629047433462412328080496900128345109761727960281546280967313163294664286374272298483077358248041376341004227823705663549740533679400506762648683347469539567608833315606464089161164128452416233863222392265466040361674277095961965282979538299195884672562882638684625891993770367130591792115859471179863918624275208540786982371266849482126232640589931842463694010986321943994729837209234891880436485153852508050073071228220140072091735863086472714433598255927980033966138975533605781040421658534125084600162571681139577259102938410747232181339288973493616905751730921424407820316098840392350134412591598365250497324158979823642141036996744052987769889099538257977651651004947393598968322027734317802033360711784800329089390469512231301783164952561388951155491243415332902594876329831581790233715483192309944723793718686396673109282558391551909757400453059770675004530208769581667832907798085558401423892194525635842963410967432531180628513375297318279177572511823903159070305562258599741898808133261219793031736935719649945580794418878633226642821600613808957734476472151019509591891372269933972497355106413370932787263016307703221010332431869401879748080657882696715407532089759497983789364876055509927249252115659095186826931135120304005317900469842566794442323198729003215739388871323740052671935011969570943610829147693706671184735331850134984520195462500115365744557788256231307448660353183452071036137773057960770695560307433993499508216983528112363101491436401319617282946922360604519103915389897307230755190536946770857092798848217528990812330864217966099736609871321388336526536602411897696301086443877832507283393283785680598948955589291548611548791787507467807726991778064098424799061420661095384366114105014973268683941515457550364872318731783544912150719067222436071981739765252115252382143757852957220341835471715445201954374053670883216797544015295145501637716919506697851110014315564498475825614706950479585528017455818369549772858502453626581674386695945206966306572428069308838099859304084228184819578247349614289375539143045094865526833842509984202645634389863994155788058876840948855453417094320587096924042035716818113372253935630472011997256534270189679195055678526539543011771650211481653712972687340972720289332613001724044358207648968198129136082008411277310416973325137052950756505560083764854145757188940894390681532467118359013621439534464078045557691843701474815186425237214057198054798369010245975345627078039657312437936410639564200804610127108434699630751136302919985890021713537445676809666123703744121766777981748902400433095774343595418698949461063228109643767646190037933829255111125994579832676977603070008242827286200403288803912279102720829415576512769229420695885329110636317241685100516817329243097912020162902305519750629710143132560322577633168948148480652767318736533602120047076327394031171949553304172396566126220306999282657641635391071096126307224909643801560217818377538564078507583029239663574355460598968806460793013112776108711457307010468016193569442299249708785334073382790765002217790221276588187993857753924276119025863087569280745188441049915681902525762523878537538156139909167604691098257160042967533909421601929250912635670865769276502025745153539882418629500359524323326673879546430662162659378825540641045427635510234685029439878951877178076079903295611289903217211194304326965949332231746333586172989202799465183958986614385260272579873087796802270127462176088080260656966568484043323522140842646718207378948994763304960127600027868313963438868877511424048681659303713252189673953084787503111220730846342905719142893963555208500268307816373747957068308007889451848291070358945659718062425164469023844789423282866644680362883399762774251204719136292606930400057326144549276541633356615345934970367496882850951130426794481369825013976352508365808094302135291598667738190259148715094941328987049812585247575220966930912364989461909550344520922437286907468590192281336450320677984355183908248187163105033101865734234585996105984912923255940940800662768985510870614638695678017187426015586398407242903812522706448387367685496689177771729606379799660905290396152873810411350264823645616321034017467792703508919961262479270393616749337014063726124353375587998819736846557512027672515337772214781490366601976317156556933468566065629291105496532754365449191600344522516743432330076220791190546206153357770391798797652992096127885779768170802542316639124760903325092165300631475938105081609528966625436784624844389727476619427720943853626114793710673692939820281829328823090492164277244221371381246836444657058527720863447286548871106171076734709955804690016065266578590075113895485331356305687256324400642271375369190948982427580787839921750862019002938642113900743890905247679852853658169951624430638716380706788315276803585628169852998018570197657918854306761402577728171954526873489083830049955711635918240157300235472950522217685702497386961279758354129228884820847845667089056976356160709985316369905167771404365993147970395402150414327168973571328506620672659561111761724183936775831503536197960185039780484956384217371700815474722596900966257695259668691729296968733916634364138092167714411342514168408555515007834367122003774349784496407355608034581306908590584970635960801683286183888622212029032147039199711716128109257456245256095452478228347144832378646806464264594374091606923796359567014329106983576235046308238771199462630960008866482620624376727878959388494364370340589480721218508182315291866448624484817908752307482893057542734736923279118524268990209913280318463457522954945453330201576163440868272004047830657063409835886789254876315628694812044073516118672091512639468932043000413465888178390660157374106620652700632412199492672004404702137290116672355451978488485947551762914369479339395740347866996698151068185913984285794514227472472410654828154058375181354420820574503693845698406749866342479017471353543470429370496816842144160458428628719219334250623369421293680969834137872113577221081593757102245923671508112452289832529777096051472105176945756116325091221791013070964419858005022472380130397864622334446232978392145399100820152493363797588148415065631717315754802475930778705692871949513206434638205356170404051162098108685230295945604759544341811867481810626128135968897456540348135320576256445960827639967551213845366540737950524109576121218177494026169350810952201601062692898722168291704958782764719439097139073812206928443111346794156276471714176490832573929861970256885358057419790875809612485992099723291739910754860925285431209099934592971433084469523273727338441789837159533974341745535187860660385189304747953037796132651222776389273834950341125737930211203912321887587665701277242053048951983989340987539980032502366962230882103677678384712000671691761963691886177941103864245537363363922890064999949118982858034657720513275589556668820904566560406080484523394366894955954103621693418480370072129866356555347967147280082092115866711076421034897916735349163694188589058378400372547224793402899019396686986640276560402805533604041159340054223011508621448345738063893271851673348770428041137011983704971604273187466665318578719307629837633946728615667054354638788425744463775127022671734762157566647434240915871395406621324406127368930218289339578613055871333811678347069429639177469661568883723156662222546651322236532040416936934848346700296522647750102472242836577343245098491559848201161844364489357581833321959906817494118139093004958190778455767869089823154663159701715976582550603999798550367414327134519824120308265474802808745811754240210246860587503849964883858309644209520987850712449364513731738961760164124742679079386126421458159078690503018917976140518630038703539772369353715701757513845347631011002447737124895643053323304238574306708309106750193731372290738682738111584404265831545334210756967063835645090832038027493999738916853370397461430811004609688303038783108228912370836239694093610656985648498930395715560165216992351994259920630340093004896452901688643320560519811655685670183734413376973532455376701577311797977773344027120359051559895250235605994403979564504341612301666061884412220554964301301730305486150737316429072053362171331538948675367272272503912320489101744239952761361250553290071238632738612164606922465700509459898894734899240813747237283181048895429930461239421321997383732272079378078401616355535826903929580062834384881620050406924100993859168127570687239952408229931318296101316603067038939545598422527621913823945021447575540512320296806646449137596349355434936141470476839878927178406984483441408364794791855108653530621698673039461796571619207304996016831313768489749256763978071246809674383651831361860471482999557325732708767534813113869004115151759466968494547689926805768310585532392046259575633299888658236154284949773197192952861600555004268162951164643257310111053820887708612647851456096127937973830227120664882814417575300181833399217194366061534117859454791462297880073411898181466433161299375381874214779737002491473629735461467236722615369324451024365819666912955278077769790325689121240401919195821514044771852397649495260796866481994203349319099054198323010575896953217697433620599967578781433498771727946197751188394964586619371971748580828264665073255514629143440591150671062846165253133698901042189269535430112601045786902592416543634018550776202951854279313950944826931401916329676921478610253909025279292137811611677485089722642005937129235932573906092639450618478064322471101191835228661825216938054233523019200348483015606681601288786303174522504133558083876995851655296205209283313502073909391706652887292785904670902053122499133771159899717685553599898980598355451305007792303619448287752502131737349615915666370160030513892413114321720462927846839593044242316457428921983728387747258930214610856157985555998371892104875433425728489937702922094493205873242466845660545233536489627821709444498196252188994403707512268331054797061288002997349152089385565540711456729623365153774984320368378329587828904798463542767503092334551280293464312814821016261851027452532762784023202683327874908108182734071136711509378130078448148209572238620207709064281627800364417510050420392018767550748786658950089784939589290874981398140279169574143468205533944588548310441286843669841375580963491936928781331873035407038855336998934950323279474892546519816716622338865225843690017327839556305350979236147395778096351327698367002800470414934339562224148742427678954782398968388430517858772993621662527470255230670784460662415561431339078490023379235994956667679300233272570756413550008778089870703713835239665801738122446933997261459947606310897499245159686480350514631157635472129160126285776445680760809663676022281214712685520601291701694424569462132520645099404598291249058018213626255006504854141194451833521548940700081018716225541130350920627277781121509259091318836193837512544834301541982552868307015706671261881796339306840783398226545388115001401834652201380062037265865003648412792581682553835754658734389107004020266684747122048522511076610685024947589613681728803620630235192052602263485741244739220438535163087122940406040018356326075563376396172563025148315691582191612636114870771970774350804084792535659767149667172912089851631279712318776223811354288551701267521452597309329329730556814291976889797091332537343518706191148394394509937078055777637104099227773834646261315868939227279830093099727524308073449459530242021009320092928195460142993060622252094537840529579902012301790393175449910147815828886883537081342003334225413109433220301382275764510718438372129334129323986508409779417864957768822257348029677510417607594583374909713724977395669751191746678585797145578315534639443516357274483010778046613957315560642282945344792484042187965383328237617441033963520747959969043075888279055160758484517098008424638213548270254559899356109229448263129646289140115907505954539127283971238844480049438957299842633694929353722109951182271420392731104648329858681876588214779385376783391191975255609306897036415430150468330729633651756277968771961491663167536457673231667607632606257984612967721299909634290649832596512995879892313874725533267244068281550814219500209055104514503003227930785869771453449567394432454490087429082996660628605941579229769668277361363885497949938411135166618464608481762797526549196155670003471193514593975987703437200964798910481837461820458782459562336951327099296145409944156310865990749973580787997007702285773088941177488609134466527907854017987028822970395967315862698516981886799413394826485909035064808760585507673884995670899329304577838669137785543640967536959049771821062221858038233105663905688716469155837210361019356299331791105003736701489705722187510133874500542971850942913694463917202848347819414946745119087265527052762835473113690148842770815731512693749028613286111693988629446264859738596173355146167601817493384637329297886242501812094322112712093511960347333548039780335631937048053362951844958648231998338197765668100159869899876575567864362866804741825812007842796093587520202375988951374593108496934413174046558765231920367657842900027224233186938360997363049800917475371647479404806563049952697299808772716598260657003713082625801111578794770659389336839395803121457707921841421730929284407768130711465741990165150315011404557345118684556365571243594646995014722154347950689085201531543373106356079612445817971874147043630808681087024050954027845505081777222888801551689342942478914242632703323635346248361477516168484720578620147789272217775982024520893038160069835987683838185039116698532660240521540267933732849182469570531839251136610899902807483554485672699318689114759374929410707120702022501841694352195003732624999117132685395616824566511700022172736629434362422942889444329267895321013792279927527706688535355405616792128678707864410215681103057239652796392439398298293798833261840880641512557599269066070884557153164778272125633899683805003081779272305376294320786694849387027651664275432000494771938593604265916547465589323339716901164002718021571679517010476380216035496730220508515565282015016092219464463255029120414127224105485277843341989658029659486878482057357404270181677404245070996743816818220279414822023667981914977582204074901369274178287969920184883812123511766870659703692379249922371734595793454956875495653600244611059384126375400197409293845613706174911033225626783502023242375132568700008304431799951263963487615347541381296628786928017733664821435502026640579057852381351751685575453580727942048056320822343951543419487646432725147180109041746387080001506098671669330392647306074965411462063068230673468766587034163700381177464932403553895755760180446464238290344787787353317223372410552429468577463663860395624771853559456141906387555237597642047533175793540654258538630267466482128104263073252962262836449885857082607987884681695976564414787612790706052981951889348586951968408325725155137461633457337821766344102835147476975812295897254933350484534552620730471105071198307868388476150701757086313270394337385313454023571625053089597318671158170851035431236638183466942936544262871053518754006855794052067327167997061343976192829890514200377851132145329854991917335122898018246879000403816835836972320110304317142125314304963566249131882940037651173814645157622737989762086733702189641336623943464957509725602917902241096671918226375731208108746105334070990158666368089849187069971781308120360979916617924185254352273632019811253875205020223140020629171037915998104614710547291457713646558969619466691009413004209571509097775725703181422963059537487319753005545687114141885415903288458898896490422907139865157577128621202279002737937095209847464590264623563803703715916147839651476160650742211509791924827834239871932462388263143285020234807049783000270392635621429404238474024456494704584842103005229615357756196676956675036368356115316760393280991979180732354344077211389392788507834263570795925062851438083393704994814074798552816539205794782987418144211041504586863554203196824091605721454729722411578274592939800810265584973711184903674499349129562889711667713563189469226147214406747413736193599694123889330065809355881732934823931572778877619603458097375140265225314824973420175038043570030837182217775476722303977079837750794634091691641146210723543785128836226117828462517142690489779126390674147424598494839531437936730205011674877208376126554811135849642425962617996992810130261001096783961690532516196066360452848487143641187966618743697595468272586030699301560746790108079704316607132733950906303377386026468462297841938799235156562306032153029793949173840216415421922902006329036435946672662302588268849858819022927775083821758316829278206232207103393295978524352256621505690724108756686440156278052603734393212479840985293974180055907449879187925810684447226742191095866152834640260878444298668942340461768899690321730639553546644360141345167704240433410956234603769829454673231493689219823854736143665669506083335498250991319072860343362617296528699778405887298540011948788520820203663132910647146423812259388980285451826116560491696456655751281690281225545641889161014772427858652785941299663756683787956391246256629349614779461518283064909692702162549982589887887178042036279618066877176951865117444051327269354201513211220197357517968149171166019351032265649242708629494013257404493534823619378600931176747769359867719313931195409390162753243675838096676018746354626224097345190048036101821055871867480495754565154840805427006690583590957911446702378356513817304546278412674817934475165534193144393350442073253385498998024625389622428754152929268541239957866992811341152444224370322672192470627445308659688550734902726331666679112939788400249254906378764132837034619242074872987192836253828277920583315801557423469442076298173591224925066859074279613808748679937174712648090615977351351803141976084624461146894789122169441304594863122749963984900605567870351236053873384164692352607612918651393955398385243526788408114363381731257828955941897648287953324671388456619521045079231874203983660464163940450818167911980731483684815569099190751828630804082218467391716694383342784260109235688709756805933759863613644124861341405138263719754234260543542678936975809565034057324707639682676201018338544328986008914317734973919918169342242909363799673552031508264273489817702960773348927941161995660224687767643370483454012107718956697059175310414184917529192806474163120966101821055986450377143247520433830719322091399494543960461933552825629398866739256787411550411266198838652596179557903958220222087117887616652910882550110427207488083327612532375385158984033662838128555642374145738936904159159990667247590649175298932148877594272919501215916254987806287578473694794659548868713008971213053697736559864386598185821126570248615761720875499308246424750585585338967090221487715906372718057869810836370844063190077409235530535748563185687040361615297228482566464678109666776997297259755117702236452765830713066826568359597224292963666568621659135501537713287470686973639962371823415083836812839926982977944792442103779713724190355762046729815229262791345249964197930742858376538107038422538858069359516178074293591159238519214827863218389182132350076272112085250188934446135414022085471914281189250635374092223630525604293212125323665737176661541004661748060176517425507010746459338756879992490951941856316331352471147952322489882774057367962779781935772906184298790023014920817325471828955489800889814428954945678507119281217863202333160067409549097186278616914001809592164443402169393251969097756272230998277562110181516076110045817871358937322867970083957736309899946869122844596945134834176294089410444045337980739524580444802482854206699196044114751730271495380572165973158021678055490958431899973437395528779032969861483726104949183652585321983291088893397065036314872283727536410435569477418660705338217070361754644994466402344491598865667209264829130703022992151504422703026373940521344769355422597269825784122314440202736861758960079661797160005806361831866790059779873052696183520620038697510193520591910036389462657886348299948007843940984537710671948756362224457825197487815116757414467926634795069087551461810122013454799787078784643018858208475076017982800776950943932334273595340966481038575248143453868824815401163866309327609917506315859010424024310969794588347703467226933418479150620759642274882558744390044100638790255030496884873607481662614426412922867287258917366084895298852861776264769225696202230908377815384302404513912329019046985786769558158635906935460912279662237010164085231765584333109038321843229181330962863222130931859113771390544535783571345496475371546634804751920243758701786898731838753028737387765019133556286097475461157587683878267336399877592451847316264271973128829663647370304913083977769791844205788359117954758057038580794354758716094436491869823905813750768431646251939902504869294394582127857115921558043256145506800612692076526510273570089462341870507334318866962759216734651951969272788456149588023780368221411591858017694479957596214137518374246673204372250329790280077677569277524769459904145645214652864773277760453800227738612620169387545693569667510235220740380945529055341769235999091533054332262477195168396371835501695196490003242981796193479925756571369409164588141859047289118280582352244005327061022310316122207283329629588930536150080180699689987357894881833089675761567498903230245234370855154856801706795051207590496038448867196182221362404361443038232472463091611260492056184046940199807948806354535624150082563625122880198523894563960172584631494376539237414246684267021254080569371972190697360938552413307821217192961317463446784896629918116579856925663015531638758739795635790272757623214005039852780991994558234084561358161892385683001678608859928577939537634282873617090245101524234588841108982914304721721105051346713395965704001040966738759571458880222231286566601831966337437468845657470176479383725638948742517775462103231994453493605818118382147222727352832080381813451735618395539351759515897567401265315511310078332516584634444666162519076768036304483113288915874557276010618253074390040748451698286928391398452511974879694876673550639133784778687330610709496571921274426140683961927821042324547056939896265257928001481365828525003169537729515058799215203901174076280929937919683456504510015455447928660202986490243779563103017461270425335659984913117711909525743277595863913715739333312715076529861368815771876854135942465496411425743100357476697754756753981228552223778277283305809922430396641845362252149411421131132555882445869778894463626488002896176984350878793917017222564436847807757678626619052594612181193831773549925044543357555867582175344809406551537370432862551585471981225735903444436953221246590392549182533740621253362671556569500866865118618388243478672577562994448006879499662279543433714201033480896108657543447042143329879871285766883448112308019357616741443502801023577006201182866958016082837387348547002039526372315340466157589174615539716738543382909753591170958765054007254391689720759713845715109386011338954253091596078692955485352131164732614876590121169998849135544012407012834870647298222017659065451851808622021745833956865774475392496761204196817085707431395252235297750691375592071695798463435320675412185731820112939248246775612181123291705702612300360753448334129195748851849811530525766111111529711970761297133240013407222738258408393822613136914364386440814405641793576829870275309627948354547940159516160308206566798052685964675072543667075153307931447403777204705489813777093123008481655833885297270121853689415097519210677466877875318472460179134553901826366839235493807446772096666851053592173467060606043980381507659002303111035307330381877737950658541143807902014874765716152190036317560729950861599275353695743564152191805339569027040547797797680810779140156494655512675300451220213704219821252299423463647796629202981809925500617791631595012212213382426984547179585279728942126411195917894239024668432117058911017462720049870200837215595225579859207241354648550556399236854437424251520534443052392867409382402616361125455220744654585379671557297097606212292715751710551640703200367555156074789971138146318368461557748990810875758684772968608567317520516561193605648790652197798869870684849302539876801934618652762680595114152536616610375677940785043767786568598827417398908311065708722851889708869229090979465272781748272313719487704426715035659700062393538254383811148003232697887662415797672717712042075841292870435276437532977844833836376712260793368255652533953857191601502626308034945979169262670995296650962171441708009917228830106421874006446939308900901522277018592864661586454794011598356996102113227652836462849173109650871001280691082675108574651808895363139599350426820020332275318916612871972579064494622559618448172744247495540233449985508157318761286541759760887966716828563490670591978792295345443555950515767370922080101181421839938691087775558140226961219840740416747829821695416067471984134963281386018263049443339662977914059901204735360585166784730994798531489847610799139655746611367377753219690478355985583882840494240426758477076274735022796251627861141872068773951500528044767961729317755547235989626803958790952845321014609838523585028638135217516834897723576812978142718529435209794987342394164822171612245079670760689151783279964026313573352902628626375987473585380154493316881250683790025569097812766559061147305716249591677392601576048285001027813656914919826132748054083150266882919535648731830231590179506088856893235487054423242805133336988730867960893926190888205709491255212092349795829153725173397509652413233931375499373853125560003119333779240185090972429720646380930717016830425348737032795372991904774096309345058449454338100184611821639815587412938379360104760105158269211157418512258881358367336892435998394738352253956482811254874009973877871359513251629878560520364662727906253246616808571365769778089708873951290787148945841027921432911245185762843018140110901732610967536164851616821016317922624660607320904135447726697473832540068452654902750881262895689920563514084057118571854773052445291918669277347951169974045430771374607840136136503440183991576714411810954336147130856653220372114018831452510721976696340037408776078010381770435573293555414653211545111681860844010508277571429632578282343409621395576594215047021610653351657522877699286486574177848576663102814724826583948933122896935044624444936601313504465251754094276891296169739098573598568519931316349150025401205920071804523194715350320263641931533019856859136052542397886359188214932958824636764805521740019075303826854298380108022516855825519689678244301366775422080068030914053218760756613264779365533811018189797834889945169215209078870794769407151019028692639531354419704379593777315855485712998762940891493596106199655390676471317076923311654512347465648744141392348461183558525087715779293801992734920211967528105682945547124902574405329987150464569226318986569113239311943835863379040835812146668009999121528321461052391086425631969781919621965477285416394209883725396439848221240452845818378141675331419908596175508406096988475340870053161368419447734256332860097794679218026528935374169120292924426721225876648266588722749822088250980137467428385767169533595108452339096759713302486534890619794071183280237587314183613502500159381951078780054162929167692578213515032906493857940011428731810745355767565422992673214934725712913579680158358102278999963900327938508324043572550126664717860364991461769025829634214269384618547973304945116501709054198629298508484643378770801411764027573396628350481040869790121197314453532516916180481879708224702031133044689858562658735981048535060250905641750998806039747287833830989463491455479871497438509357760922607949488807087351814076709607447260913312071693073394310050144057116068360668503325218181342539122229282825489253180229425465816904217068896274635928180301133708887068813654821200553751880843244045958851363380206195619838320494390980086391068232629273051955257403733946403051925760272901837292747601889444169858989817217832463492928387113674707649139050116503827915964441423935934850698076183897929364831326667902058450040909927268768786575994191837781446848197053550523946052794469277059938288365416734728464362639546523080561401976685541691065981339182785906259320754097645311255042919002627037332793686484080064737728858508612564977964852014159976459512248289872980231349272765710469269604266942821653256540012323173679228548206600149763386294828127542848686145546113419971204779551514209442180627029395350067083307495407467167745295860349791591458127525757911233790034828852620464020211844012593242114797979114944301718111286214689417769122450463759307487405245346200421838144983233511472954033355131857750325591274221993325033185182888081809642777352891852800575834128931869571526717267430509897216527595766947116335832150028730196073057774175144859431496791380512101756507792534416311066653071057216295629032885049147450236682958065182071186506667701594125911609509961024121825603210571015644522433060016964935292720761273601378078771635191753419594799805748618581646842545860430289103800976898965751832537354322948778192531235777546985189252319065859418104822260454468309122597350606654097913244149302377971634801635972953815672124592052217883962737881032134218207968678454558828635535327511459491742128417476511177208759156310220632306975054078407195492800528481475309216827457598042238183614199737681633753295064524396622545260807624572795327140530661131882985971028017058124425983140199101059299253995573235159695465154719721033935731737125116685209498480604383422171583772780943497284441883409430812411784607715269848532291963924202656457157082891802210868311812277540008491161636977615609129404043543031609399686850141623307728484868005516509349152306138862675497488911320626776900698406873796691268868879367033498849467623316686026874200101303029509393194953726541630167328522091640887711035940962078659915386473495986724878299298641177911857060994513096619168155098371658738686575833631713859235410533809104069164062241475068410475013367482388047256414726512893538956024456401176243406092317006042457981938492401866451699812983251928789840979597684494605687573494613276055568032799234136988697434674452037642223048326197750686297981126961954891209322207728964734380602122904346080459503169896771227219194273063052833915494136527362808643547568318015701994138501682319049116036403659399872572568088631898805274495514073408619904856743430128738463480355629045802727817283225881024586723219553697547423753682688439781443160895561850498200888078082251757303985140190915120728936799616637295742394146544043711885248805159321128826827002471110375607364248175508025146105728041825858126743083996020768656848317741164861041643641788350514761770082678096861694568096190222842793059157699794776182025604130262423441206503404184714275877185532674488212647914955932452961145838159527593723417523676712459828865334687442447138250535833752909279538228425047473483815703440670621622345879339256968203505672057073364378660883920178644552566730846898679523870790836624990481902278842934319443563543347512832042254023453172803706852933523273933180367204573806266963268296684420861289677696104513765947735924810171009833135654350370272451142847936450890595362318185203460113240109486133887967211968934274599617111688203131796317523214963854652926436725323618390216844919484673318628181471826911599931933212286349537719989188406118449457250922776077939832176203313496416785285159520626405467175828824981906132091540859388109868263595401351153481585849415586899200587103928943508267733180913112644335723268281539636402215700022763778948331392022526585746826966623650956941212611328081905102030751294708065585701949705385163626444548549694741209663178134233663599298941876296399592366311218073767201339533956978068436122299554424426727205462233561037535731775785212890899231622058912103752855380519269676206498696256508578069613305959356118372886171204519005409817035751036891479189100319648836093890870216845160967359705734086897446366881359597950182948252852702157225521906479295061399234704482954486477023100935032694147757181012967647769045071689820060334583899879901071540618096070810458241503565678934998209305798280289282968047739542116821803592079074888215890712670395271562313762034204552418622617741574108809055322053284199137805352375353675811723815626381046753143200128158952047352555683820063873359264942178882712884942673069936301558071433221223990259327433652476648473295654422869503705776684125506061603840652209741371396077607418858297525764268451079356518320691411566477907777769276265461148316579928283489716999474164645931605604575798955760087205021093123110772421869555615215002980530809784292107862603582702052386242604334148211238362063581016001705656861421922973589244804600252844749488147800016224850599544217778712531567078445422029671361424409524113769183901853640178564773458236884382906737377858611050142387296989354241043067731967576540701420536656057407539509140063228754538186630405904020646977421276376795502963151648331761285275415584680208920352240214100061048665924121009765115734505385791492103459308478722023385453581441095426460941254895155011258380943255122326036240775380327903157712811211718804566091131145844991499882197525297206924389731780340543420510201575948780752051950885592185424994360380004490724074112354872324528164055942193753012335335543942397172427143020649347271679127606642441590791545620791712248462618556924444650160070780932926315642441114221428695781441925716656210767124945432246296967439504848077032659576716732831348593995824217219614912645884836206250615762690703024661901996158340335459052130253426436249827592841239746613401998843289838828776621625501790140781890479364802926232013194372317277293403971101697796890233057464576624817510286628894743768966085126981349219338181713683082829066005908893523360639422309496005696584514892615677979642783388856719326217788460787655459989321873373622136476423635137891351434102968305404431814020215064751972024980874940968484359165551929097615626622469799509561960800848153998194685147535322933498952613818571687811422444249917704284598665297074353900197092665893429705114211171793663265429301895204301692218443303801567378569995837661246702246083068999998132520253389638495583197914411936643452992866416114387067801393396801597551664702106129179973599779326699919444641066601101232427800217229172117733310405430499266088690930749034648249176629971729906158051971913831422500470752157627867822563082874598688439094946195480687654543979356033161691522814121192777865166210885893688522399984594413583829771931045493684423580047356597623864944584510057320276075427452099125998858578198022593400238410495836790580414726707426793976462604903121407802244774035198584617032461300240963183892940716907876887733281819922988793129870280499658956281204763242600521917248455830058609059323301636663716809900325991416542515496765324906905778342796277740258567433959215917286381319900148062355271972588849123696607543848177527627596340318893418257347595954655878246943872555059211883817475104772045189625941283343361581128147054188022412929055671020526292175890745295885074064744492124385584759337547604458039047104804413502478203681165303690915493211786390000097603690061703841397266262376797119188845393350839101865817430240215439940629529541440460977503982851747732518902507216848629247620259301208576668943036228551683756020988846408394187461847365780126548805766408652256619243709688710815260459024243371692407255670408385602727694694499387724878147811167311274066157345363118553545042628718256768487637298056920263755817985580488118135406563733526753741495505651075194896745653079849101553271089947426821896914359463855551850022586443061849919230667505262552798305468913000547658179734351048139712924341473289563703940095830493362580371769651034669368326815231614266407612903597791564084502038227057087685528359350562718159709556017057932004674000170475253362371933206227758759281924182019586784917256788755937680824396950716062730231435509933589210276729318185674689120963561798857484068830064358415666236033310114800094075655734364444137342973972189727108804492640419603789765765977630751913587223951817307682149451698288479742827688653691549646263789775938368118704010136093946260530093002569682810174730707677043239168623364694576775977589182441660164281172027651131841765446973332644073365505510533438892611671490757332697855274919958152143096866953573205629488030833325692444589594352365718147281668348177181488166896448164143082519563408974356374048610644559928307849842851118780818877923511193885209537506232130905678219113019576817604040549410256298129299232360196339955313780356263828676542100677958797725827177250323510299832043148825218691781674339672542168755134435819966281294357180269301247213283992772315880198154787670914573107384137243958941191747626250776865432321783983924954633790090408655477274928671386686629493422435126585082381001902591729494200918300043731254909380913723891516263202925263565602829077132512859888531316156691229514192810128080353816797809296272937535820004775890557719608208507151034839698889305456785855295712738193752973463874029719563010240241463363458981174207333791145534360722657594866043250483652980689942621641736141214281415185712814320592809825540972074042784709141777004661851311616314040664440874972376248948220847128050120146244098961793541524060830889297421070438254208766738723663718505225746998839035228340786577972351513596182277769121595794673899475957845857097841796320376195334884441708307452130578201377361557254192208145111711041024867645919993888442377871490009859923898333200247976867245123599296287004239457560450031761466420371331435870370215794673508034406805341369577317958799634509209055086527240856771650734991999617738764374102849230852569405190123572295136166698118755138106436057638609861189814036759228266229936476706117327453905325622471617835858871474451386012608123486137939711494783577564886666880646541785112720965270631302117006327279391043556217333051590990926078811560810478735229152732872911463317721780574890258981859290661381676871352043399064758099466328915018535242302939783139222985446977243566454908105136606842738412217609518548963366229202612323068616399758774263631111907032714261703717894123611256376455510920187114831212528652878550857324547193717296243255784622282268425679897185870361794899785555622906864192720600844142194925366274113586208665047383413419556850617551568211958291364715451300953045601266927614399112838850054425977816953102089963505160077792916880062019925885275213535261917607851816034228745663271721827488075149655216005081841013418664030308814414503708049427501207189833756437433719277997104786773012693703926611304727752838805944667806271122415110861982173991975447707021120002606652176090083069513212265243861394325079948753377443660373741694395213636537000878429628050382846456120137945907632749386214078960999244591304356058058516049712358192717824172547840663336423558229352300392132398794722037994151745236636673917242418248770010615353922012692037883486628166441428468826224826797385078105436862899762522501803658393848719546290377251868609674757386495663900362852168307967153692916923478693200505926695623017262635649711909931698419566326581453368257896184542820837574203698079482158916753101006687357872396202963706177833750572756137157515838470372513312629198039204886114275594243291469192536350127635474787390064381981349466788385091744198403738332216051728315662454728567665580067405163586226530457975034360965987378573336517490225691094267121167420190211681097122183268434991370740941619944477990028775587169560750474433493733070751508160649753341725614374256993171174870124047335708999906566678766030898237397117283586319611255500572219395373167330134368619504436495082721242136229977246073126420953769609548964536591797463605782089914133623339518785847965352836666556408644158618138996139457929908223835287064059659880975714253387441972428452809704943110345657186452905489823170799885651308030882524295666767456999864646322500608155714063065533614191381799840829279505776501594846564136892717647079271619804958408277552357558193668220646064939198546702202616025625576202438471978173636469471286085316359791722171877598517924634374478921337283740471324402098731562580174909363530590418954047799793065613998794993299473814108506695937718880890724174240472071223009826663546661906975752599576518501825448205662788208672999488751434674100477419183190019522002541629806101230948892754273664288857180371001826249125047745318066202338694427750536273903320141522555994051589428328770278962556295427579355508807194094239283483012798381683490397526372155562699899492181173073064218975852140627598827087616372122003532871214044352583706675153199470629400525161307809039587011043659402089098926201701041608181015753339055288667414988878507234824511622747576694127650726749606171526062590540110731344576234171764831363831902412110015189517636816588960405422258494337514991962671441742564828036646221134350714591173733717452993368974524192450441644774763337832360415672080144614283220171235116951195703735217199169953892152101864027623070814215764041350191549995009467948164925492149373676546710574507031504540182873240918685218239998189765689171707231145134395073370167464597473760440298731288010468769379638480719012575356618737167461249123719747313341226912080647224072937746183804983192539053452904741897074267189424776822352067650616552464385532541804529922696912103073266664829530087493860246539370588877369559596063132687893914680969972796562973012672123195763034518855340700866350603785713490023322247829031192944884495939779902407277100814960193249430225549576692973838416271344247552732670580400762932688972733492799694499672078787645021155012207724908285753522036140703513535776978978205466897195464083550706229098243913805595654463344238471203024575756019041171138459011127505110345176293480230230599936174336532765052813878360010936953701081029603189959862794467211703756335094307459659876160070761509668339167624761589798712266644806229482605272221469827729957808551270883972770308671099350087364782225681684210088880801127263606806487331759385535124070021664487126478841335888958135071250280769362965326065901959363389116306550912798002791679023553936325262293620936013160263103767963261003521472661213263599794712844759507327147189087988263540534375949990174730221274047383656248289942785346595497364574190389885097504521738937986033332799224806060175297602382842937963748892662499583599851647841970743110817974852318920226103876048676332929300023888122047240970991640029275311479189327345490357200453732522691433415565723312723464918396590592532462414297840748586659596607986317742271825889090743674361570526237554906740011515759074174543109778784761437521890308384314190322256153240967116426268311116126487411324352508661849073383764916944043723079147863144865319247269361031611541173956482565707852329056494989106022034281442861288216503579007460581941282985627596996137716739790954452466430952396937284281460185720760650210275463570924328954060363917535449633345008138594269968194792899018323221687380525506464551502939029082170329220162431743206451172704830926451106431585507403510313691108390836897885047485650740103742654634207797421926930708672160458425507618469554859110993557371896343779312113140349192011712881185323084267500293911984915389368069828467527844671244313262174059275770181153477976218749938888649432309990337617838198566873539974374684154747835424822214977320007637976290680913364938471040180354539591368930895960127425135379060688561696674696065812044870104773286994981188305591641544419500384218049400758955811016056323120698192694235632455398179451486438482499122693423414253726375423180087745916372312125675221494992250426528195513340146758570673409550670669361191592944114060185879548087915002861583528828123279238702190819744938506891082939668325477456562189710404423458702893177624552634183336094509776913353535568786637218879803919215483083698055266753299900952623028546350446273790857967083880685065509289457519167439876122070914976871589611665288192909917211458600250875036225931277281433434063986650141201778350371109823486428092745774158399296640826940147311190368013244935877670526940883169475389461506831835166572824228457052605470475830796897231636859092226785062451205805097926732603581265192103970817205772627107822479827982606862985359492101994411529469402684386352715402719813792410794011469813906018164229614514369811324193218429219034314433566148337110231604971416617763864200772908192291435966979548165823022923267201560026841958591816643252185436610217794181705549048878569642868776723410295698029437441915692331915957050512403750691233768595543124533168148799804433748913806721221627790223644930411392254174059593507230485217972295913875806198184921695358272580623248142043752353992890177066860305648678817747600936238238676433105042061922948927531286203977498049402613673097310213241038068678505202313865726586503953913007862145383340046649298697174606698700827125488178925393606914806723349806176209813331908586817245985118424947811780468662196677455022169910173160947444251369944455816034997141185936415479856636847160500973093893486394959058143656314284149269436104325257745660801459903231715120379981816436043523808454058583694699461962231193579557717868820604068708049626096994233076949838751416749253844631803171860607954929651523819193069581985670276607293237044083378446482331515303950229069901553809273449394125873634604495536644647363012823246737120594501845454773339018480095763596156242808683461443244647939661259098130785759967138533310164376966952697149311746787516003201423347056561765640058054330978283742992826354293234500930460508087980973175101170196839515055373873935824115409170559058370966735998446666495951579611540147175695189400270253702388327512291763541855915539876439047143458886452243096126963964053647939133484740674757149747645423368601936736724020143645872140927873878647746474872768280526355745376856549134877168388134199437385630100991440829221594819992865431450783192907094511286500508316857578050500289472580552038327496610085626252915556788697750719303334810795686787704609875279545337968013429244038602284337888632028049405549424436136331136433179634653234962300507737562427420938621911658858182552788559048849984850365813829293046538759080778420459519337248185438062839801908000025919143022705837562341005644841722932661510796253432991002323011337335314883746144972816551409785996784172234533567424402740078098759816056437503343710662293209561191703834989209106420105648283670107072275161323209254891007339576950077969672819178956939363318825378844194771110913360137975096658940639900325619263749953758749772301099249260386517887305333531166249541140187298388494438558640025741773484746136801798654953188892330787849785151054465294639101183564880274040680120196979870779830870317138114810347663339239971653440387058987788459328082651951366616900024836909132066552772486968884748301593482957007652689058575203285649871158092377796974414138470356798106216909536312935880128100836651982264671437992548623276505915181936268238219452262765849468257749537578714838426892685214946055078682498153244789495492859493623442227597361678110864949667261727007359281316518913989909779551699185910138908989848897225173438589979860994919662460067868228375326087883787968146003254665298848931296990595525490729978740432696964428242234185609361691498763584066050712227162109326163929917421294036327066270304473921430844923564734414634163425701628961463327967768223792130041076342932134845340191753912592441454100206153156919339659387367193947428485245736171141657926031089272459114597696714485076819594458736355784989113289571108838427965768371855709508567029136892211400204392680478117276637620053947235465861056159412687313703619782833052767798393630883507771672395772343891996548407797015478786617010425441448683770772126978419734789788966717533537591052403370197329040104013893058997020120778325892591669475683460200604223842728187453987705188391640510698099348930496414787973941778992336352241264156566336746123248868306561378435981802399970665119995907653029227292444389838835213646057016333864009217601723815431132853811083090754950153711737883207132248563602390426076553322435428744506479797165673742424597021633555164430445234069792564142952020553478073648297989704791659044150036963605212806092409687344815424459006088637500621181918176041107878490422756136422920133609044079190528215730582516500995016825180001514837393670965694580190579076967456447032057927631901167115532993905233014833284439984887532448325633106129381856037782744456735999894022967042428347006514855792900911232827127512377815341574647843266939659200475347170351608748952873304350591021583719688865148829827459946336317503613383134020145161557896157426402180336234637226684597628160680593489969772013375140258207252933290226518918796736055541971006844242773884481912142000795029650779537430668380902563594518360246939460086950720592424463269921380530781446223906528882720075241884332675190355608330493409758181629091871954344135848730780985543493718419269526616556719180866785074049368960565562179145273875099672234732898749762555301086392261088556319850398517576697310979985215439620972949041431066544726504307118878228669866990232488620395796758070294530670187523370463796450627165061390153748045030457259186454254924687740594183007841695043078517817403235959196196768479257361087122782750792414117167012926577776398784830246881771423048175156774103912805620946617020609346588306024052294217114065549294083322478432153969789598331724186864288710320581737367975473425406876504349503108506283012154585268319825804307292203733310869758738806149635317953284859681416753653592054139490656699806450068932397377472765398239126171247529043685428829092322208750511866022169629789438462283288778057003882686997635214067698965875892814028477844878433142450050564611204561668740672796942818497629637126517803578669678742241830615908221690725443573383225340146308864829130369176755093729624371620183341431384948414711216194218918152566853289040854446215446148596262250001908223933729804697341493882337034098792543813785408561887363431382710533952872286374062928204128219443044396520026263538648672844572080952698718334899884507964121818971444798174265732159884797033012124451996135259321167178926119053454755279846773505693794249102403615767120916569585035226793533097889998116042776273891281441758444055774804430196169455802344879487415030183363696267681659582261083506310874412064860978557661618486829506626423008701009887170857204522139034951973295253561113793249814566477010892465531331437389182496070342696217937685739699588641966931517949013763000983578166749294750194179453876761134559105567031121834300092078784949570191107354318940023404164105910090881193693567528663359101569147140645251004886236625327154265726557612223447315382135425568887063271783776077431748583228833606366541111043305070981917515309956277132629953785050676241119353128769261208865807980034415587793269117956435191592904767232240067883251171411643205831903626748142135536174223430708430413319880441977088653719773291998954092136725784171664063075221575689624324067815993302845587175124484870760107694636642828037770321344825400103600937547762066260562478492333798242757393261718147722907734730031385831098048018820313340174201294994445939388040772852899091283911916647247891856479065474020784799838666696308528589712329180012183731930435668607911211310013281990644545459511005840144281678478107792920821021018918060469848474023305449923617622484779748042443430834625786724195024045520286080111700560650701341010108381980917227696795379347984254245051533266787149357547676486382317704437570045878919424031038195522003143580043069950313735263547019323808656531142770767384103520928981662181550186813382291396625311471958932511843028009607994847574059361001240993525418208011554140016964290067168210804339145535026877827550114212710895405701161812740666200748703897639644169233934419337145866218025291132835075277762670719501450072676842799296684148612627792514167665222046155999672331512581350686106556532142378136090335188166041335123234473512230094855346656987938301736743380055852125539517239346618878154288838094969869635339593037131988075051140436541248096098061644776953131964284145474709250015410590501874114261117221407531310885515739472045714635420984340078055452402458237524765115162574146406488231849163282668938085987740994964254307547464219838757458767299978512815412961342336662402418288689056406597647659320230556945634686757075994788898507995761654775193644458537578127861460631095972797685322083407032690633724871487844430148948175553410787152270988468203155296621148718020965227306295974146483232585980870708655328829300479263202074509866903604642741160431946382908068183253416101516154196765994559795539217520398836524501559680254584073730414492761545938300540631180750283338093384698566478905931124163810288713193094255771579699975682097630119926620591751238451914116202598360284523180624308639715277729752967979477894817515666976152957574528889642414869318265052724429237187693392778245231579433170569523369779121108147066092209313299905719224578420189384368201600102248146836010301898669170711420387509958997884419098852653808351926667354943329258059975388359851227998245114369086407335131690800266299950947348397881499831776375336623166695034894581021383337660424790172533736389622245200708193196745131834643651357203983693381965876747044604709713864072619762994537396819289732071199275947752042478283222036887847040085808033711297400281500988668636960615102385343330528777350997186905090556656154993942041495303414842511306154248476166595023845746691234877914507349674827847112765298378530843453956606535348980270681950261242990622365037799910143036340249777863772707055441285511850084332294447404291965502944989781692816111452874378298541704166589601683868152824762941589291438250289067232087295335120201982978769501007488280847505409690984842493145175429602749493075859050544408940152350253879003447247174659840596744830076600075967727565127148634713476199236250189846875234059511027621503924245747173767477892564315259108798153744495757986059940387825593687018365603843712385384787844413065201390545466261155935135266882499791212922090314826207223313419255170294307878195701145154641857436747253681950024316749559823299074568106449333827041468462047143881272444102848986967537580437940769310604473092770315253894782545241756732129690058591641269150679100594157480932911941969893030288324956408415044997621575406254198736457452745127925724809490971405475884055085365933435417125048208140924015419763264159655775499337476554456986771966484325457606195589844629803008751783787609234863884607779441555123914295687268338062936757909488313159746912918705411536699949827564543329150699703377828427453018245910469664708360680842596387251716086919118112074156253831667338987206603394823159950824741528913517712032093701155982220481207999899371579756089861792991678238941868323756118770084486182216255029273072580637028739253630209670393241012437052400074477732816673981725337428744784789694812331136176910859620711522499475672221604069915043177054049400667350441571258835801941692210929288045977277075765965753588084509584443095572734167217582744102754526241870875691174913193372213623864766459532561419611093821100714750440789304436470067420925170931842299878903474468264914754383672332686643319846652820417799376351147863137836440049237859594120762175952389944605312171086327060919417365593188950225955676701261109850228861512431648969246348893006780140933306911501369533461665428429084114562118691654092558219614904738114772256579923196885736113356333504251199018311346973044298244821982290489289904195812405825222725658786120175010895174699935207627155541044775567166860130655985884506294928082197430065829679040506880803567453695230117882444420683225974517053126721724101974252418079897996926605095512097713426894615486628726748880541845662670389516537026847832840053444306221868228704170389103875309153640098408650113790951341085278578066642543202361562578272955801010380440143035592642649482679411918662223238893158197216154895571818794639091463369585633884885587880941543169210836393311183210049127022128751240931547408899636173747335967892317968494196878273306845153609783314124306807489601705602123311031114958966857645801800549787796323597123588801345682531649883757163890963921452761514561694526429864625892913185503174730888517129135997909918689331413630167936677257107424138786749818875037919518658371019269473692415091704110856876253976330043570094726610682742792091119118727638596967492345137125658393329983410189940582653394396351344914642999486543048661021640097965180740453838542845361096703610052503750045047256509650892903491524847415612565177529912723465305776981537529398275941902259594509005428169512769000930302103032843267708215602651830363533558650654613050636021999213196069766231729200205785797541959940834065143214457911613640981496313590377201424591227388622277388731287557834942019596126760303678878918324918044270407241862614659826330677790708660308571506454506007998583757214274525433315538761318816055897917668169773053713578913198656134387859372826405685013817952793084886792631215974957857485933846214470821016833129553407209230303624296376035104182419589452796754753348107330169671887497989783387363905972644670103720606246236919479008193753581633631720663716693796704131231421044299507079480904537232339931897194275159205421507420349680702787705232902921619161651642715790810451562177624947175308513320689801403937370498084995795506712943784061056178889636502090466330004967724880105237114923288665062539782645399062374988535943875268921629752151950234438777484624765189745568904022047255467896825159585497498799825179963325298098472028773491762029089506210157321825533072096176415426059773347142991063985388859869138743268886441226818640446454147750014796682279603208526430383334474165776859955003310421928745768565933109195765942430803515732097034885854389850402381365480482475091299779884309630785222604732034826076925485298165230153244668023879402713632215233695422748700955962363546068190228212528983520560747856344706097340141036237902217298527130858587149880226107993187800576187977808803383142640604460890104862695975142743521734607530228991988055539093467845984477175357320469930995305575355934072756233262742429649102235594088726494604339899352491183749162338132505823931181869454245775061629271560555273308914433646151839062664743305521656687245635313226332650991960972551541406105958148294756710070644541547291081931737329624688046816808847179397591111865685487978221922203469344651318110362019371097502351541762903753474448751655960838788219837707043920193786710590358375181174816446130032601872095614817752732036839842150621238795982771217694862732515624258768769459389110877590581159556599925971164405930019266254807249553531340046654800808322064587430770714545908331903705732905851923078054843635696175496616913891149978465509031928494108150298465055605268936653829158636384010536523653513063873674024610590787838735161809833728641062433999712402344431440769757655342538461881338716828092474132129890513010100748180347896863125456701274419161223292727857933554899161959337808115953385210326291917950858225292434215946386718855161504070700299251633733110455633244079806022114262796581551951378273061269622353627615387893021070679856678349571200833459865219723791890024355392396899057854325424787758119501002387809951856010132714733061192262384860897455546832257495056594559511492989566666379684022066655141221299660558793929100953018970067075366228726849021927821396907790005828979817877193895287893930905385313341898123090861700180207082507911413666734215486497620285820764750102906010606884580354292538374200559344224351601104554207406425457617385764235502862991199503013726832094058011463968900527259844446174020233064644790167145147835192904491332788232271747071098070237138575020747641878349297238934594343831984244995492233773153621363999526101544719201013335215353206519945513355449084648318803681939107023166526416497552792753187932714641420531199919980539059385577523376558948820482982767974631697185731936140687938981138494134291229835345477122982913762195625038829967684784883787386669565792849750196810964026920994202137041907766639605496722663927039198582572310774038713888537329346831463129088981031700777415478699636220798785266135219955260318210997089115359963719026007296616182489974401048139944818805773915929929707612589472937017798659640245235568167928305915912346359927627877187218878771929128939411586717305073132336210413389299171617156108338663342394950297126319763130169828736431817764539894069442840896929574540897838270727108367940826205811985065647163530958492874432292370217500584804765093750922070885056200930861053453031832964215908008946242218457709798253504966693361152025013349663035651331897737570515639867103595286392855589914825432611487261552252753251703140575493760584174177107405650862852983206838666997409405884847616620108467018638408345937457218851049712599877907834357693341938143478197971154959018333665819528433847528762091029766669708558692351328439566942995367591147537867769272125457792140553115180414769817043912036711990513122316006736894936426115848173640701750476052361391285210621289724447731681012078622410815421333365990418158713651681489313115530518663577438103502837846449470925286007471361526797744137539978808774098998382942470910749033205093795382395049086538576254084870123298652488108670371197516613186153203755081025348220688244964575742596912678030530547471671774188310960341515856254379905457450533697404801016966433678799908661550241256085648604255863704666345585085684665307787832443264496653886366995931089553165018988406977786340565149170037854583389031075583329033029886887035390237995763085912347052808604910925183727646437955905076835052862100412958804650132833826220379260497589116433366008893580640853256806280037951921055624535193855719222249491443514965742436414699807282912253519892569673385348678487699618815004404256485172141238875467170831644375004031985625035802279407303863768414985742080150789091803008284079657073835136356665982946175942160703583261213755960885197252900250402183242616943626704344883890556345489458366403665635836146927257904028887371196189864622381851154208917911995844857256241861498971637766373512017878445350689038999215361904441319705214292029155686072462489455480444009635664504942144391200256105731963089155441073989951985899634497989327461454673667916962030521028348463167968609082310804669392079403200122010098710263277960536003076085908815182090992999552171769011136199347679050506774997629818985305793676892451932985566567925689177005546503199420701124177366013908072302976966811911910982187557794805517645920331890667277341238088193887653245388949425309424685908158755324634572080096558387913941252652563084558864298068836399421032098716695520749103400905211762503946765305121498103484794115354780667959658070329000619937911114775719941205489797537185927707621928029821886446998341426088549777114740956928301309106849784214442152513659451968825067101196925621059889194087423426332709451052356340222508892342003102449357251128148661954882013861138154786664016511930067884742282101719181283693930423559835965211777758169373282771739839661934335780551529648641845422373984020091747369017008794818321139416086685190620567000253272557100110478366416145282590795392975757724346121589939221820923227950205992700676700816653736677831909212047480475554301936350538373855676531778370261658978831467787554968101537114712793759103929570430222933977029490447389581644275817842256341175323642213151098904470327724728685075230577975948601412353949942081026635288281683957159471691481279569242127962586193893150760232319439134584737533751531376858835165933303380139504857545593945234618569915732260361547313117244176027106628619802839264304093971755108124925032180933684495770724347208489573107565883137817763343454526938887142080934033700203435088858211186100766995580074561358424821498059419409836482874674777200345043190880245888391432737853091145332399661644984314805384172922207152947497491590534552845482887974019783752666532562347771817430915421306015042857086558768770039864931642319820473960739979263413209716641100479453041882460060505550808697267601160959130527268649370308814609705366799635698750849629152436305636880070186619270219749192141062810182050605344162558132174367244658713025284463553577249149584245112746972096390239337502621872350287659338361122931850716978502403352634327374018906421092744785822357348893005729012691232260250741362179497362708834340613429659655854529564187625117264658851350677065358306985288999010397329850429224277842360130848241022284219440533902872719759083989117583996167188495671515177896989928180741784132019782335304029655195292893798574555063227645079206863307576948221760277120040075822331232825729196495749928704722963502079286968204637273086782633491866182063211348909732832723103367709460753361301981462252247262758906872179187559624312186434453803740125491533667864287214864128913225288409821124002893849135128646973270552742721108354569228729420228081284916979586720888610032685365684238439881551676770532787285877512070907046191204288729938049121064789460573154878962326088034808287294109484576529559304140407255635470922100164543776439880451803783079448354002923562393027618595480052650563616114986962570027965532115993611579847139346894577020933553652935787576163874807605882483849040046675039022686087533198948652202341382098767371648094229060538530530161881841233698786618809661874777473696305339658115717185514682264560362366567938058853149116089651673994758522034837194686373715745207448135820386471797676603243715227676887863847687914571230379518897812569681444591750223299990448945459513502633771452106650942281097605185989105399936176940216622955416981444708480353831605853603011617626747614972664398792706266820037766624869318749057074624826374982821640557704698248909242290233535713206243725650663111631147444090456910317832021278140109602954041435514531787643083125973856624066789473564255773774180364572682229365676942138579943090334693475141145276643335117584528667699536370925766503673645426627609965040094974252887537047445185553738095329621607528710886020562135037782299207526894041048832829519783900399649782322595213102184463366126399297148556026307117000333532272808483039062568603786135617354630556979299573920207318190502885342067027625195305604509104633658693773621991577108262562837724030831568664503777704281515485611789148679885975894441575010684670810612575829871752056702224842079501194351799598419546670116906993990351755419754140042532794699775864700979825821255187005080444355327234737437987758275184520926361126435925206664499810855653125121102248486251414342563306289818707764029897116560081737357237591840237279508772607489031234818784242040651146053718807723648064535470264895266122571810430237455155278331659758242246202384677653362478025655210582776296772249191839224235682330797561832772824632276107433080155002232535633149412094230031948134029910264518969390652882846005431386844436669358982770584389130605403540762042261224544543839268535931757297430370358346910500728491644860318716999835201181848433394930380079687018510797999229639381070843330021049082707491312303199512309383758702501211949663444757968649613379563177020724150840673021847096539263847699355583544490255964124219606682843675516234439189448831205834175554052359547229308991086147614097336610825081613479826336775821028995781780200874279832091047962097924211711346205386050026030736098497720234292946897112431404723781127585699081645839148352103447988463104316914481437555510813532156431876246945028116801751151332060071219377367046784133084197124474737154452519452884677116061067522503666665847295414219537738244569196249264737680500569055971490683411718832787156969073816298417648536902151139459758256256277578735454726048201333966960985929747520674092139735147273987662878992884912395487291318317327701662275423991230499109989866042553006197587101118923377206438433346073747168238607097004789055808382402983379057687047400063471087992221979969083527624453248909115362164403692025588912585160130292490172089671989651058322494973932145142708932867027386633194116991643248845198339399002882877227717837430096171042117623020275951042315065805574413511935574818999765160106862349698669206573610089142281255266168324025478004741556621194647937505437360088536713704843596561356886637777001633115117011269880563381357548043472187592660530665740074261326506465973567301413626532969432705334280711088716125016030984003097073505318406224980830242577723670426971150046183826317182895616473877177556422178678391170050129325725914676842482682791670223145473305240205128647714406494891986534823704774350504480716105136134578351202159411359766866058142084149504540254016283604474126573643524117903047477526694621640029625983369878387656874292697000246053043160615103595703913306257100663599777622004266210681319864742949575093758816970003533575858220988792938147315328666754733693917405613112524858248878467176731046880337322173284782905582947688024780975419380063613732775953523615207392311374800175550837825501938562348817083294744632822971388065685045508696777810033778560073820744598011147125319512789738931978229779866195785870609669715084813416017698850727551890319693725629206934428090931279957042514852938777639095413365973595728014833141446961615599550565726774354437811875635755449628424067939039397222918942790981232667201446610953528391698891383377774733257013171113924403058698703540965688416146628410199503993668063611319700565634880776579693817302175469995320939531899886402581666769011473402841293655823524725630039763278609889114212829599329808077417854201309245277427071980241541316734994703275257497529888626054152524125116584810197889805755072825560258092129212679108960007242396949080928777603626143370162011299326543362268833885805943511177134930352200352648439343555468486596749499097890770737789860392221239588573323668137416455881971973118220116542940587805832711233438863452621621774809875010719832845144644492313786842686577550679917888459522986547174462850197393065625175203459528950827328010266950849456238489416169635500049552590717503261618735638456894834511608451602406157886293016554045033560561747235890255888398779140486425109414363983835548412477583910074904469931375882973828882694840007583125446974142939314942432457870456459801950993709894631387181698414614183121727966242685985555045133014767829802798104974049206345742863032497030227938413618231888880292007696666438643992196830015371815577104919998373279108883710656323104166936473843331247246751116415762594344920175159021977638983172217893474228063824525860587394934431248764287489485697433665771555346940863687602033242606547060041957427366021728921012116497964600627602892014275386223837080405818234344488599634745486309917976112592212023071451606664657444742175160848343200463645695612746645187380055983023378644328754753242659177342793570098455307510405889204903683689904576289646947869518767357854970857744548247162913285474506169212641850087615132402666213480903331718944649782490852015964409866608019875357977972983517813438736774143093184881396030038840439526914253942352171041144184802841015486308047937566052703103828956370489582549887425747299824038383855086651137948354376129455113885613907078282190669701407864126415986497119811884583078196642919350624309438723719288260800210666663680388701697486150582796837016905895931360435480425551598732321383247328973864762443519903268527299080020316116881462412194153181727656501305531426310848171744475135705682891950346327363177581857326602290079715465110954027326684766900681988032285109004004712622785915044704018541479695071151198202712843216405282643694756855939394768916634659685200334784579454044910318539520621256149052529911632016833098821290172523801691094562585490292247195128494224450137921621926347792344069228864423049769425977831141939126754380525871866616690003337620218098916486280500497478158419553711210649061725562666513302272122065000939698454425793553228544667260722667135768272576959923078036452759575879241900892599074025545510195647710154084527948645645881664296190853975848747276011698311721992905317693104220888412928755059686045105753445515912722745734344505530983201871378722915481645179339983317564933278509985637153676002846952788337110594216768249440580364409908282104994627104979987672136165860755541342881070115686536816012825916026184951356639430779280119456924970634956686786343884002839112279340229163753245333589368943945545573529361269507068307868175481316322928223366628760562093740480243088000462615761536041980905390243693664002502267934653769565838657086845088105192718028045531645702024015931047127874478558085429081944628682099272573376860994935459195805166534245813637496417371413483363584154342122592112848867945737699826135473460812946211408624050866800706265172972526716859397460006636269826587166835131496204239374611081724943229700995282887076135651816631046229897525712959506593430254339961727911029849539957601987537915100600358400410263835400808035263475596554340899466421988189208362673030090424601567293397781688099667074620917006393183800298739616910635941583245927630468947413847099533381231527241600836110846656293202107981213617114759717361371498929344449861286508772364775214194166350576576811271323507053321827966942292155792519556614360872512541907166965894650083641133255256763446718635049263128553500377857249826751938573215782100652168131538779042542407713852217323923473711511953057720658508839968651481457338039055115967530017312540476845993114350796025144195280379014508569523802630338088272207543305729167802646186087187709629667377861127437341368455802753012264256033717211600168041171201705531176126597673765268996968617301189170128654398956718198327984266942405538666047535924378117918084492585871407476449384530630416121412191471796672509640915546847018244791568159369507985839613316006422582339296237608224474477752743511540511763773760248950639638263163946868609774399789060271586251757326840548437038312399734579655896009526201425817725805087882053584899818177852922184236911567664135257639777117041187343769433372130711109091892090126149401777905464136928119845979838678192614989889955079083122212643808262757891927966499491275024803274175314957786692313242868244436604910687601152783088746402566414930802996810106496179793946300260755522961395051132322609995938634213266981141621554259765401301583783137928942366261933608912106490143520210793576595660590037058489533703202550135203967188566039739569064380236122971007573056938052389338326570898543466702027431243816947233766996684879831494784481982537353525443707878458802903842830743544552247564077796058776755374290171700662938704999665850661494810223257897195619234245816204348341479847657239637082303447962896584364591987370570603014384329447533471549099608607056056164623188183280153059883056437737534521147004322799863525095432921795939987112558834618239973353470814894609740904728771251558075686857329571327065955093930844563045665307243281544489386634558693215926255365477491413223850410040277418994324457751232276427771638817130415909421228199150796117104614685880060170760224256429294864271355639533413093483867463688506708915014796446835577707860394029329416941641560750491235118779005563122494640830499726989123589895547025679543671430552318612169356129942825692148901852542723139282012234768184997393911980637809778969856266334903116579172013237954055135722900137692826413557021120996174979955670098579932022954234268549324349851993933100367455540706739481767742126400645893474806862200955908736166154995128537778510696697185501818330624245982141743403705443066555668419110937318846583611583157724279842572143613436077572834426245274332574366414848931681942970580462359431486587748739568333424785022567327368230916048047575232223026137206584470749519905544033347340247895989142829636195125533642578919006317877319825000653486332477828328723305998390244753191072288231889383626775672061532347055181433225920801962402001099677022531327807757154701540122755419622970564224672366659434558383175966013646526727087667228605553673404311479595961780464258493387915881184396373273794709575234744837066774164244169195103717226795613651774301835655025644329810988044185344882178057365375724234321030668119020281082439193211435702333690545067969076371431809826952657819469954129173287711385787177789609266253969362159498676094618092012870029708937074722735983282983182079271385380780379570435662761459676885431788952357796554464544402040693587496731896085541064417186223807681603968669446819943071338906571310439882127399955970151771067204785630645238085532952105288849871948736694173497627455565993655224995447967192478107944671716004185169974685637584337938004408303802235969593780883354730702322537502281057533915038971665845095022879997288586100734472106063188560161073348019354367165387641493216861572546738252056773904628077114224615549263838989790245335855850118024957268987079898705594042758592209493277166806763902858705488293226632453885250696482322472477835003230022897943822240000071701665199517068003098103917384694131216794120230537878391317337535514261881536578325546865328808936318352381569031596249758753017368297529106674223499077212288668038681606704097648150649991230007056012435008172216092987229281462661808901882796965172256104668072983115716122894399131574978142975116706076791921291951629697517250373467648113162327148715005586340095191236138623360769845258200383178886556753968455775516113771179783268137346594736742400406032835241159729841016215160004939069426625419374463605816999883722728965023404172050053266299531275659312632483783432559710338162636612607790863282255772564476996923322913888790101871693073310390213908502965617013727987415659021746685777159382927885524551776668470027211031215755756732573143406023835841514116017522599431124866041738701229036195474622447276305885116312138338841079077487159597647221263765554073763112467048145928394945536693411481659610653942752541258105999785085584763735812030673278904927592255194166016061728775830610207683984290145587007191956693136207834128603345995844942541547934575652173542364978206759862334489518403812446627705598322383379324792789740456351293846306020477660692677603794392997941390446370275326116530002052087969745565014279401278308670473830721632875915514434387659798756300462161501214206906533764902971755670189771350915745044483412748649811000962605901027868663821735558704996827796520320047920083012882483561368726961253137043861912173399330028639238620450230521807536829214038522114343688144001632471779505318408477674898934086136608425003778444108111795608381753911270579591579917317560267083177796334694663620133805877106918520732885520692348572866857788883154722129083878236734522798840684890999903595122679208742575700689143834369898553390620779669266448289096579682078883375164634748169672448897066381719095172055404942578866822656855465995724331602156929379038722730475742196211319808848925456050945748653915087934026941472874887644885980447057097139513842668837290541049766908442661738907671613355135616288088605900786268576637120559853064421311109864969181860392677958725203365562466157827639937248785013645814206960241955033197337626884018527115084787545614819154274788296262052780319669025788564963815887742100502484779595976053485857489376122127338703567039795266349357049703622296190991558793401927781973657398416877599691745288856219741692026462330218255902512606399896816888956210880783868692192694930451204008444765429706397412457925700693126076540593682954259307077554710943402978545830954987712019125292058065921469129707442993781660109446806523189637830671918177113499175712325861125169005909419990026461227050603379480388646418856382142771758293513551291706902066277490194469459311980681307537837350066654324867586156497055751632622362681827548853029422855241840488343689136214225683532263995367045081937077620286932081845729467717843858083790930133806903833580458774797835258840803595909991251834803657766502867306005549169106051614289022210684015004789178997674399070143475259240125116678375373271251466427429171851362002385653411638839380823894799429118191442381271209812995503776292003531665272045432834940205917948689538410564602170033937991322557604736258718943478865203818241636127583457487236285435550041627998423867930951444376314813677938334209765382994168216021051880325016952756004716201211411982106886276328809129361019499987778573050474614916918067121647192856884845640228416143917600051046962246573672971706068828641058962348583511426377863046345526181064946427338735297274672640128791306512701759380516169621462115882326906957278899220763814725396751096735850595811554451363889112819504025920960664104812902405702896347402640710670000032857143790231730581306824122056737418481447045466908707462381334404834562672249575313777555094077902255760521219381824280379275838748732321437938806476172757570991109842078859545080245872048881522961427529772357392630591050260599236251078620412995410850948618654770435004693395718302891302614783745055466647372769027120769427612138606525336618582222086370919216931179626959846019961674938942670169598711765805442935764352388902252860710637993954011382841305126554985560044456660077003014981279740999874732649772497140754976406115636734493007991263607455711654137207882719337944167095121625937023268206971473176566948722082585471810728898876584346923009971961742575104089150268828353552594427847159711971772402123809439196954744650476968827653469244532224906323136229550459453728696579998325587645088120496912752888512348685429788843112215746742207723320491527384490820717768014798036152220720093075999763988535348876836568360913704867993003314957235740557144950116802899445036778732772988005369893963604151616564893017236337739321537443119854952188678293916233384207537626986968625734020580269885471049974912191239259528860734609830226226190227183330246544911866954032856481634715030586947118322981079825808768101173821649835535586223586741718564545686717650857401048005110593948303016129845726730543724728165942676235120749175392397634240032096079139037280541160344002031979596408924327259919912055177778237392800875220996925647122919671257420232776777436738054557691759773317547718842966446945842372697617899096261208680769280384425974289722349174879986737193350202931306366642629315275300900455663670890144648121458252394587503301645302981620176789468650836651231801119605179729743214462189856522439206865328898620881212950316844360227212949096823181284771071492911457956094261210678195123286931380500618141329760074087835689689728177942345172310217382285246927447853873172542197532858695585873132699721118979694380713013104218468430329259355650698683720193513482787758905453953964800199892983759562487166330783776886975740129999037009401987556520557046265346476354101757225864629725144611671151540193361429728300489420552863334532502337843880317991163295677456763910914014861132036047270406778876903983791491662680088226189668725145899394281795404345239274726222648237882817739900016969032545943702386891347597321931404551901317935245113435221356502121741971913910093840427892806609798717073418050686733705745508151620022996275475900498038993898705214305868239585845734762716861536087280307500809902732004617893848956000747761978588856279550940315051902459273231604463212664649935900401272156391246563343941293836853235654628780508998942444183782126603185118280721508672372945063837683295369150755224607750969269419158337719309385786891693118485693595705588436208635978575106071604586654358442031987058132816403159967691250633934996017086151425282857269975454055159336191468108459251447269258186496893423093404275162715017923156547654088376406602825355512458245254513884446182019445850922703812321060950130041650828599583898814718838835995337071689492096888243881891847507102046979174223931804356005932117105291289924011657475761353026487084787575893780110299788232082441002176721967151583814371784701798311271764582035471570270737894927300590358679280117281991240886168390205350185239219021488111036153344646665449087520639106120898364080857032927664129042330589047677655085817675633553362597855975550121614593836995506366548758314694744025904920481997428780942667739363984545992657463005098655127548594771835701525121668107501774637157179317592306982331816767724376218461518934645077433417264821441661017858140156714640888498545131119778969121159850526861144766936498700508706069702164619357574048768982618691248957913189478306735470780442931991567250494485191180025747778993475152889013151628323935590350164877681212739676770691467092261465176377240306041778396677806193048141955794483253246714924586077467439535444895804493403653968192039159061594856534095776966143941727532526158253785856844629773926109962379330352714888251508766719398168248881985160939271850350282196854096697515468307548821065620059959385821255600868241299356769038208085104881796750625199347893817709003646972581536209911307480997502376901244468776709885523135138247703006506029224816038569051195408242666416950886258714134100438368776079344765548973837956384813909241504465890095050209229295735781379279205058287884691871074014500649706081765026253289128114105408701776665235388049078086234471080186574648925652121264520101225838306543430875089190246654208989407050360762911155203356181356511879689513043945889363544242116061720571857320283547566449373248032066940621213785519754545106460408286915722402235164952845191363020596650209172867920657375742909590230930683806523317735846312143636636805230173059784913981192097442756647117417394607600136282688215146405048106095025081778999745833026078207703889276901754676299768137209795456443976648116888337335803223319767557802609844615182797308238812001403063268553491577037027424758480280543405908247952827093326265033315876055411689208817451312674332009690741875436719330412836654032745468177797101616371608955522159958208919859203400449014383124977768250350706200676355621443510402165475021720073716868767198810317210928936976958333878646483689727063503816001069731379544691055290922639845840321890790379599484094716303867330754808501711938630626662706118648212221519188477067543145472610082310169726889164216627329928986581054764444542008231881012148184970553538519292882956605693263777911282116635011588709040406545836085936129345077228471005311014678359123449635502054648324751157044881246384970851881330139366411096794412938792427813716427997987049905900537241024962847511752757715769906236990829252943500700051191935193249055875455503935028025840955631989400614168866264791697707500685554789004914030857105838178763913282395494161245474961379807012460928327305380024979985763466550242683342877596736612551368781636460076972614572927500758925027738270605525705597569796444864678874974306120148828083713623029732183066403097381006002025914146939258106092160461376289270778315437839313694909557290109371756226084296553297101346556793244925562632601865867379309887918334478471842851450258983481205214705117839722099019911550184692999537151708024314434827274420540717247841710295863929521564051032464072081479983430745942462466875614184256246077638828639610516514735691345630483568112848467946717142013985218614320922142663788990338478473317809917874797893531378025710605212227272203495917447806751346540232317589543398144185095182886948800666010720733595654871458956741103035884800597803120624325265695356717754250706484409629639923249513098358996821362898325556998984926635438276166481273181024819121623616424336022367724722539040791796978714643022231140118879796894686445616447351951006886452469045382566003712059495425376819392949046786720855233692375879851781898086409438478570137898499138798166568487092111061479834605889245768257306232293049018723610934112818508891443800735428995990618350912807658660940816193904496613647055128861842765692836485959959228630003397979707949639311492787261363226695874174947275551890652281832054815250515687663665988171412335887773743779072687598778574347059601898508281473443270393223767216562251314229877692388958624416967870176094498230068450791221368315202805995648107312309310572607889131657893112695323904884764014772077990067235290250264240986494812448961026040940203537794425031050199148729761819624800526897422582009289532281663552964160885938531224139619168493600927954578943222735897653907020785911631384660841808249945906821553342831594838642508110980389062856546480484957486864972107374530580537263579398292112561148287203690779036451061349757379591985973210043945553959602445833353744670349718576371257036614873965022016545061901789421547294307792814992411487448476026178382771304823408605277700034712172429318991702961928477804449433405993518978355048505112949581692324480851386148182398280996957293926801735237911508171905442506745178832535116540935794948742125243062073192197004016176794561245833024993511537662832230633032617188697190173044497665667708810037274290270959995718901962260751507594564012982843936632789435305726689094560421606434345399251176075440834411679517550138076654115953697644095617771459910576905719530268879910946263032978944142030937719793987674031246674443715864929554162360904437913259757061695970951825312885649940695464100333368885770148705740809774995823583581680338658624532351309575626602469722162683488604019300743567751568907830735242431140054862102489321040824925440112751153320317795334381297905448419895215086050079514769057380307259123472976779719093111646119400936300428288737019919656260557207620091839949998773874341527703373950345653436409133743525101807209509620449608100461021732128528527149532745625414609466534550963377914550495206335770248343263402057316691601714169816489948875471718844944462847050548977825884607396247686049347755032660965518414564654213137551512685477499915883075851805009673423269766842736033575815187789589961209837922933113533663453013170888037821790942852767795531111117829231990478112559636173614100305707395750206543488717015822602224300402054953153110719663056865697679520914208096579523094999589712706517346132675109759677946911417983938048177539616928831099357476836563416691052996085698340136210906107070334317080291875975016995550671209393808862061383077784512661525053765331554368002108909565200516409944170193512814922302470174339871004175165770301932102570847631806609382500805634662425124133459282495341265720682061808063667828471051281660109074595337899865455943803555257621467438553115799217446332238028591021055777478549745917593197669603048281883202323055299401806903611817231252222089436865988897394585627612325852318024547714763290238129982487123344694437685505840462322771911602495982597086761377717337937885188085215253858849853327833142632317286744143789309372143957321481241677521898154731707008275199902361222866264225161280502436850759987075006791270634864415304681715846568429362623848375048242699002428748190336616874942266469906162237429451206112876300498144160226788956946770574626644329897728672169254380039098924034330380360730802246872197778611073804784018352845340891690139561733312783170696245779849489107362254421248987183133525818148317270614228269004325905645601915813597147283370145820582603804612233363238105814307609486794776774568757427533752745332917674351852384708131243659158591839366695873486925915872905965913950896961073976327898316034240987881693959696356942677046936967352057845113180124129847526890369855304141000161925844627646929794419211731719775547255106628627476100883496003764227566291541533400364848074362511177206219479332514084324148344403009081286891459130292352553238693390472979065390360958310229676859339249826968621941485815209103780152610349322195021757771586364550199093183795346964572140424125442988079999282632344022994100255336845053311510242006476120942097206773777269233876981906516113510154164015773999973744365611281862059221334321889329330013498752604912201308358190414625978114543104853113065093285621567622640904734671474645076350134907546628726249681704549183248807579771445642401065847844953246590494979289119481729280513062810742975613378460664551127681957680571160771789183227680060238550628756051751151864783135637515960611336488004092681746785278579224078448700470584953968851818499554274878975055678948594314658618257637136800653651096440915194119726818468606706363512220206229417468277230490356382315616995373330040602600041480923545867647275857563435637162648955123916903255468729581132469821277321232828329305072679207221084268348644534618759602664075518349877810329968624159642113190132930379540817214385396798741075135439082785988371983961340559639119862536137375313928509481204632739465532990449286553851077300217418755797971851936882366242809716567616598774501227157604733584284859212609651277313813199043674953872405541545150935165653228816091600175568406426788811978477067196821008013383845197875057949783374289380743602627441071492029051941859044782413605080359228768352997827066957694376363941010233487361237814207257162257285539383770769646882843753936150131032532260810670741032084838749540072501166064167675246231664495880302671120173910437055131913530980224344933203878481381365071222401675662561168186596905676377409079765737948814169848141935057290183019593200809038999959344321074316531932251894761847110639927468565930910147743075773601142039604540598722582519086796369758807264462466023202220773948469144550713317978882320411590763099843839130658885806009538592591912331146603758974150056223409133731970735387988891504010762909072121799742648258726219425022081548037384350319590353410956642666450172058264942391416884084307504123223747753888538384527543140747211630965150050197919932730462481399264212148079298789586126745569986373634891097320689767900723340283739410565248608774892465182749150107505226424083651452804592168518585650754758791433888185606521212428809421448661225728727640901571275230466437443467013405618630404804898207968119733343719763346735955192552553030089250371024080302434724536005457219930848239344260399886550618091366989169151876598526130250586331937107571204885200388828589580874433586276952012793055233387838599212853364851890165341943388726813758881474306955642294198029608614749429485331894723951504795981876978042192742584124739875469933348244525745591751478893878161572733060048590232984501757737684136794284867802451497425685331242771669916098611427365030300525432434346938825687754432719041317085692030402868559938252233665518936999457761542247173304683491164944039035294475909682164331623973584324276112289290235080716347289597068840130432854675405575947721654892524356557002472448298873700259300641839807702891654053964105314622617565305352480507161696459472463705959050092126506420215159098911142114734986956207609696864154333088360909689860021171069855178272240793919513711848715546924951130719618020669672626857054952977064739113554740229984200567061026200134025838259235184832855795717163123104856980827513942833397281672097036546570601292061773128959042080446981755449730895469652169266785758399896941898033369514541386436304802776427861597819721290377177384026541961682595666017626150529758540407861409445496592213735429247802925772037182949274074959734306117420822516988918614717813873143818935805456214099622144686635480862331628974204850427000548722132700311509860562292445218016566176433459890142257677844539227803537435838141689386660064131325322462610740797699907600335184091960601438849647495295345708327095967087535506976280052820755098356731729420202239250421501950425867333875452804903368270696547318768272993028913196891861903922336651666304840034801088985345050212506271569132785362709233699399320258019548841481208964468973940243725614522579388564055801536795563091638099886798149828151456856183474250733459854612767280550601745368032441995851256882109667706357118737598189906595856414629825462106766432580270519060672131438616662634209191066955969477880902531894022748932024110958221086213860886235959163231303582551127798708766584479995324832976687392810651896582392744892272028096310695528397266901001689252075202646320968909202636116392242701064770027007888007269366053850821233990704446408195436976807311033915257002265092946034294026155600902254786213386961243643091296911718573768320086431438732831858103108106002131894040147538058673234226501031230215826954847836069774651103970302593878375245924969874437648939154076730171727578497458487319741384744361843467447197796316145090530038337253934957292356723722843918176891471179487077188720018399426080059135045491269207256018402308498715980007352769800689203972118187968896642963561207700775730937926704536224755103354517332534648956837860136216289693807822174036088590285894789962314041642158606811439850740742910805669039933663360671982284453032257678633302598885438621150462782850004485362972499508297645884886733507497216933202257193422142682222179689032444864754889401015346965331775647151294743460994089432990371580048144388911867778485681833939666708435629635575105338162247374990173160651120886922832567154085135416126259858050192133168359632756251513149766006559709355294981370006753450034203668304176771045653242109612089543959708603915801119029257906376612473369658413197901304137139824984729199938099500459348290375369939746487761583108102715504071684000014556728988175342785778384776799116713228308962681121068093958121585612567521749431691286303910567481749544307475757792416164615351280581573789361331419989179137078453514105770101561670629917052517149682121766694800094253091245931201652031353332147428198410076344514241609525694308927929028996208543950121579721017235187511103414582916651550750307667488339083351544139794032189574035223938355198006412829422763670164061213021344863053016294676772020019014568325431856681695697276366747420972843040674177486196019943859558302691900463698474337268882905148586488345326998679192389869688157552690496171695961878717679762676654809069850125985404907982996985897357248440963726329514376324987828306152646335316776342120969108764712219055681995633262513365065130458133605659806649520428559066457550337465366251527686610398598148090009721156268199321753203429985755066873964351575192434810884209559071844640423444112085672070477763649742338382325108786426493417001688617043569029661103184601632587559699594783076168872890172613071284476556478762648012672507210197252320702261010903932992618273108745839249452825995851959794172211967256151881075167244916142215042782770747896378876716227255476566818123884047367003390640967500764757252327171950963291302723157581589123244287865581108348118811386697228633857870684944666111303961351208582344377204804877855383481374972903039545824295471308248664317422063946647240495371639275075887214277824985129827386057838356786025996813631837505826323732024901264935744887627620406710560538550868827895658322767503718695132370848109697989774830003707375274501650659428541650395818033798483301673387290120979987502807126778462197967239610413436500706133193795433309021730819293853758932730229453934043221669650771535572710257870215069743858264240736296229594524304374130047689886647164185797254236915440418387723527505690647234196984588547788540318569623578607654913312526645613593957397974520556666117525487762423452753067402825702989332871350588046854306185611230642677625248665547854803203295052862131643304900850478831784655717394293912986216036081712687453273536270915584642759368207477673559999939056937518320910163861545007301077177469042381901696738503506251870539630086321343443702178544928483464369101573392481544487727715871069977597844940468709751576779355490601598102937252745286222151546694969695899657054792340008925146538189380085548974306000587045392350063217723761851303723025065289747040853210590056418416799646670443637986394607095030198831592813910243205517284358658008276039045368632786156807314516929803282898498811393413254254426451508710279255944407796610994194427820004927539264690922638398282989544453337892373638168983317988882987905922644140469414972754589312099188473334217245527447609345999566069832951447194976667192181535511131820644498799951804428465432924226756289502289929021024551645443028039618493483676386064567378497926997588945245373589195401820669630102481141209667694246109296747779454729030730469760772086494420107278748442110131997648317204445810954307897966458220971136158531672288830436263792814740241485553021934713033497557069759684353979167348545659364099287219709854651833523528730578990289521002491604902693939320736918726504482001533534609390585940696826183743715199033413768793353645389209358797511848929857573873869875721620958763998610013386214460150205173592473940424551900783389978965282043569633341922219045764321779916251504771103621286714841426311245166214359276902308612815558320985458403635291108437036060687490146807086844029508537651855126767070535449090683847359220244808750976386559417429621335256875677045609699878573457078746170848315183280987609274098547858222424325612509966948255848703385989627740938999663713820097670271571729479727257366781025236539570561601736632516193158255622657018753761156120869501611243808992919801912879450914049180898365842911433732684616175530306497409772598725594275258965613903557813129351553858012455994812950562444958774357403523877618061336925059106140329592339714350497039822048203494563797909885393696505140047307275725930373380933669748614916733292993134475796529584111706678106610977566210075040314077834237748815440880105472311963231102275510398055217677912570129721007056420890187014744256492583105585510702712865912974169708801341737003633031918339209082023665258685556306643863253852486840009871492663433277621187067799117799363631461348836222517474484814671512457004451602132186659069122547520692750444965319447053015055051278962056613093931607876328113585353829716661153930116310103019154160224240162544338181359147892250587058867704727062683571617604286580792917422117313366476697033824704143040264916973238491330384053804983642913611201269004098825406352323408303147106653402942495610075557671999758774218227726725582678052498812298610281260945342318186295631664389589870954635222896517306852547891793238021966553831514815265652782746231085852271027207020351347210305407466528491236342908117108626977419377075661500568926360315857485909792146071307535009128851467238005428061099707140935038840311383629462066989538827222486875490880032703659281109853874166698521293437921492400015399254439902369469739723211252060247904543350248268957848968868379201090657334372459582565078585679238723047754181139566816033217408797927140462790484084805772737653842902032848992659237535686139690241247424709672133020982556025103981112462492589773498089372174420529266078160492623633995895308205502698045714906109139892081745362130191574100209015278384596148604767369270430580377457571834837395387540487423915950152879357024949194373025255496011235284408677948015816308647203288188847726674963223279067512287948221850792783815089175040128457973115177064470290099067681681028377824933940013516565165510762892685088946120526053488565627533285698653011577233725095064101295708951421501238202526665509287712084197080984222318912238818011815139763626193469748531028463911261395649158709325991333909678984978604216795518970233752947657534759503376388030450046183903025061360891416106215245911968353083448226993743424263651314809730689004675541761155938202510287556461313770064238095095716790404468197188527911041927046267130691488317920546806846443347484116838807478863847054456764725410365472729436648579610203746320653121083727946362718166271777413878642909074596617501244619722184066486304166155241490474551979546724191026613966488866027842383865812364944573970123605917980602314291265670785387658566370060746046892152535185157839562137289109645274732532961034513346408717972939896881221959305250094203333067959108706718647399738418374351712341057962883974267243711292716952170538714438886646256142610095492081182690936927601800989896742724773153323229073702190071508102536442658225035074253830596777908356422829206173813195282267720983342594144911096607462696842279947537560657682824464254197661794807561112494622747702784711314428431467428855825975621537791537541812894183364057232858053863108351572047285331002046446621100195752266396859192597523573100269070231684717060542923150662747425688797060021518065977525743503424491417423866292489154243975686099391205520397569100128542832429345943458321002035158071176379222294645164797565473485537449455882574657204052572874723729897873945839617506280039915402764219645164308000909946061799817999306232489707038472300469677931765245980186318448323851749334376057377493708425630857838188056672538660704084970895785380705607291385490933490558819443889939232383067779481076143731904356113766562113915083173928669450349379638914969025686610218048210226963369864854213896806444739859973884859139920451080439357961547214623585811244212714260473780257662560726932033971218042398658497712725008228258664311123729928535462102688432409197628095284475321581501820442888421250012663112926008598410873942366292638890958509140960191758160914623265768941416194087464834682153166852588615921988932756928529696946159172774363218369791931819549116868763132475187710045182555469543813589473660429749093281403046205493073062843909559613189929507754319248048075494206349456232831218922206154603503411209724330791124933435212202203816014203046296634349181428513075884051068277966958732910312665055151387271318227158813410420542248410619102303639457885798177060876809142063845490089681068503745355214028421088580423656169208766407398836831477527269887935655992140038057279185563804021489242357194245111619503163698563012724720644539781041998429655340730598567491948591443815042809566773439528380911291873900669749785195341576780363570091509392900294704774987723126597506458760348915543156706575557102872681506236413284387384073949556079962785778544277089935958813098735331545869229721463318163198852500706498925863627355881507390767156374196258956140271510039396504848603834702497646851005225006083849317226448042225813251011011153613843810211429115575509244249999721937772497066078512650586942266984670547822367491597392562827523887863044309774971082092416637113000930964067197698044296718940369818955778212370751473680651267057336528039250595496297913967257088181916422102387336276948250404445921337355717242505188878959779075601574802290181361268327175633084361465930563235900840588844786349896671093067266764335971278557922626392050692099272990693286144473521645653066458363574139902275881590244033204272043330207906176555329048049620288099368637861124153924990292226046420083201541523956824067455551423061575355689687435278913965437759591553022111695487008723681112378654240978391158384274278113170663926643065303109524893221159288917632127895862978659254393310257301782438830923341289740139807704844076104230973908059076121462214933041253290897913081346173485358758011509767520862871530827353912572044303053393748011656913067324219589009094743334645047070543601283650649112977284718602738267966048385865732666608444224386902296501814011988062444775170503135850636932344106689394032826626275946138340678115391528762192178086568714899454446912116959932917817557016557066409307428916728533030649917965246079152899323021424041663629023616821388632030766518609871163252310731164078640584630245517417267122144730257024847277309617979512238817094859823580339864348246047474913089291084441554396094866425978046956484096223052894274339381269084558616380278008395913775768630415228524823984491128012869828265902374356808222664494079977828028370042553360729069510387558167002771915812390057942623295480047240017751655552203303956522350706501425524007819054680451810873756891690259985977864670843424330973445020111734206455629149618599225624966030042195162939577270551523185558102914898513680032826397471869700008793116140549812124545306246942480470782368853354247309479110490778412440781451163802323307724210105563056666697586339784987626516104258458537937823776259321855987199569984391161815418206209849467616875181288713419070494409608393994663273150891009288495893671916057000575774974602699298187720105338220712112640562743532884236661026569156356906197349182794655771196502334564025920827879232533340591287658378756450451985930132022181760882536017485532444762801526011271805018551813132525022147797879980155326450740425180880414758464220739840102912285672206678469516034017447775839677372357970236106926432244746684064905167826240131461473091858948212382182429558293647658465804774095207122875915852299006987831533659004363510697324505675881721872422202682701671012445614422250677295990202718772002745929452450576052615710523880303020598268042841649528027866980171025867605383641548137450165955711963090699517204800921095525496968307192009817460246710117449811418712065858563929667126437583757495411444863621072767872744303968435882841877671576527812433590573413100539936467864365131795077470249868477907597921215060775814334745624736170675309104056585941903401628227104687562481393708843461891416625521784635442542957760583329055327802188029060100185069667061667535968767573822974696103557267508123034259916937171919649327439305301224711734669272731385381774943809594536730004295221111893583689105267611354997664432021989938771103880286237999678656712274033107508276680693554803854799862501556768844861206739418704346930054965864004243366064019783545336351720853432963235545436517811930922118628720259070009573369593108259960599549472618796365224802218222321825252628472462106761224876064039066939892076701636881582833975491138226262901018494692564803295276134677199393588600084305175542446133925815472610442812830889112140060808329464222735487015856551468583892075001162198929445623961791168245497588545170700189293024473281801373976855533708103011115509185195618129004724649801013715380636899249274010700911200887447449470512673162128049204003676825642371945431005709717800459725661027629038965927954436972706272594697468313832707615487403536719015985812421771565063705395893775915623756511669545200574633456936625490593731140821643171796235467515845365728456392223653618632658670985739549907170703146596753331312699121451837995712672347053777118249077750039549427189565754499025725347498524275408059080712066944240110005273848293741203563581637530636965027076022309516651387617721469276282835456431270117037608692370980986486704928561276044143786336564789107760460131792175553004025095027301923900172422968176322132809163690296934095459307348021681821411130944385928409580286100280388593558977121821608130809829355894859115579443737477182143646348109990121831373613466528057915295884555541262500222994180652914195747012479978778423913818407105155923351280610087834978850882489828668739650084432783735384070769454169858045199302237226127235461072578345411743336976802117979493233879677903814652210518940997384323575652648619997732871388346906798512107460304783337376871163132521815326804064283198387738648813462730386306642798598959795375111842176880835650831677235383193309438469192910216895136863371310559234517294352445354624289956542664475337073432919611921335537140959437602280273619008548982653519344666954600233085382098046428183494150875208172173198062250583285153782003555437230006286967104423522208172505516639399045478291471375148738475343263862098058441863648045243746344905516831684291774293594865866037483132046895604124555190738177266353020044744023607197250402947711215326997313259983005611971499289536156344001626754041574315205932158712247495170733382348263636579756646531357111960598624929405536094264693125377850618617001565120134151803880471885985437893355637199017532887686575078902606988233708137625828864519498584021966530326852628306062028851569402538750710741239066920001033326770208947443618378787732801635485777738804788257927310480365832279756099523768818656822767704773868500384784742240540257423318010893069171252008198873339626684700163824027215159125140970308383046268192701497642077905676027207414603649874410088788669083535938956015923751515828859989380302786850454850009490268086109919116171742901676244754829154129094482268291005327270035811167688724284596279924260785491756748094827778612324140301579363508124883113248872119230166640876948322935797450287682938221524616418366346762830567109645218879344213371393851976630639119941199809445946263755158130844975593370375872717016778050727554348616079340759245048608440393601672760889787860262824373334519043959699924404576437094396285647363042889038074140084820452241579413472331013446945706411304641741026407464240356550515412558922185983818982161931516586251668100674608632077184221285467728449746215548704558465062867353098223776449317942587109666333030023909657724872124570588827814630955694352991336357532737969335259480363928967827803627576165586861786280255706429022871752707879055814402519885599947200510535038396635319012524564726076389710322000929313745149089835426934349193257026249193436134267769727827442579797774144181195191965517988092956691476306661034519293540365137296373473314683089454054437995189813626535044931474591574528209226567602814465752747590115662107649285762946681992425268420061230472569059461688551152452226492505528983797334812419604255584407381456475661460228334901284621683731329944592995035932427104523913220531695313518716417399671662595912602162789794042226411455332735145625592368063429474422284080431381948292393855841286659378899047039704592408568390550333875894395748284504017043002794376566391022166902464422739654253279015032111624111116966232005601853313024613235296507520324070750588313096839710251619144399371846997668726557214904930393988579240417542206865911432153439246381374550530541547287648600325382379321262699400862355837631012760435050030413420845090486102582570774933123651538138806848272923411340366630506608777932929202381239475128536222153002708340157205810175951201201436191447584274751721583889739529661166994694384175460695085407875745653696171871118602479632474950113246809231522563671586840143194888143834289060269170083867935312124257037865594441211375172118031170087802113763180202382600257236645775029353748167233153958165856462946761112849187272907606915299477120613998811615756637201221863115930007672851362937456182590098826444791436486208101130898372090679666751214435344451262684810212558305302044042778418228237758338984904403792229706841901022787135589816737563947620266067128225856797769037633064229915697878877785810804647604297228834020200976336972341208592977194549337903079911048498363887964079682382218636764969334030867998665514003829828802402962629880959382331651013201545769477520411505596259873103815307642764150592539724148813138371383734380702219367228693017924327947015567311096607782178049830030601803819837598812736267778945601034058009475450330673337410414029275230188890787609162090314495544644618960035212413766047512028392658866682058962282948659600203077589087191589551918813798423800770132671052755648851213643271634178335936299010345220271091970665417712870350883772141461671615014587481446892417958461254045933876620909630800752434236686412516958065697267249455863734898683025797485838003411893681574205643998840793821844296399255147837173344037245569818031243347836610001643528899743843969641632534115190870833887265498723761253444980512030843954599032553154259135196367975454982652919578938931845888829056545411920493141507461575831383463053968561099410531612188955029384628086672414120385827771840689546433796893888451245477246880984432495802214267678756009123224032668132261026213469539739480296240732396173682642727549641766672707666527250517060247739350125444002091236731493961838374711052120985872992925744471377328016286409201197369394666079641189627222437579120334117675962698593803980086372734096772393531432082648021955019105840608585177763642600576283312948795300947993953634140653967956015290509069240417127933885202739972578613543697376331284124157914983008196237252241722370418934787077056325245160104037645191923447097099818754739300705783202743529135787330735953096762734403750877685714831199209809815072634614849412244283062528140929684508130690135883781425543516312995037847598231296203585405488516179215191097015975004628465193637806718727935926220396091520860952679757046285197435228728437879939537485822602367681652632542438540556584068160714578909903172274938596569985853604093992538446788562141778149379169456046874509436841684575587417972636494759312843491127458400928886921951369091292904929024573988388953627492933317024545176526134894076244912260222782635521426005583233381947061260766759467444330027166156891600594783736333425939186842663993649956703772720289940313699941137759983604311294113878515823306041604488156290073081135381108264605595646841257029188824492787281311353171757898092921435942094767933682614579355300000206811948848592659804637125552730583638208286918411676256241096143601668239651334808503813451129898046998694688547145368584285302438480001500815866642005307934755620156945462966907555295425829073376007445558886775763355787225217745906167654097747230986811167314681649107083538878778586596836468704988511916840687615561494840203151097396469745961226794523672123143707342531811424403918434264572959165940124331457924833561255830871778762745416138312121747185517981403646556414412648876158730589716518976186395737852608830519932735206062025790823814569133103194816766616337605719815613928596641837876514854389522434253017064546368873545069564922541612997188876574114048161969504945268641577357890284573252990745068668093614433923653214439791187934169022745434650455165413303775524193584560702726566972422119433906793250562791294759683717129605227038316806620769956130682130711317538912343140326674843416408852018604491872324758878473939812482010652267339053130095974998690877417354713180454589028189559721030437638984548727356893600032230460772453536639372273738701037055954922843651755554729531807260661879417099191265615973810686363113753115412359307539777498478042027359839263403052554375763275915316423726494849094420992312316867059307921185862028859257601428550668823866445278506382969400846770188304030021266656536226985655452496732754271323502323534922490582617910199560720971819433952115627348734935945946843910114785108681783911185252363054070844469836217514190108703671646329090849853795113221130568800630376418930539751403179900036985470820496977999458472145308464405912421861483251812125140841187590285125159221798347746419891497061751478120909433251296391561329107273461761785539392374641511935270923198208147775297212722307696843301298062534176093814121852830854763767861953558662407717357194385130674780423460071466834521192925570637326995794716820226560033397543207470511998183671392184140143178565956000233145432878620874836484706871092457519112160877420794896992100259286273301717957077876851808136124250742908377350068394994676506624463107228725648461387698089028342672626208916654673814702514262735048892681981683390160290095167229554533519939644583871338298602975275933507712693470701010689243386158874233313909248211975480753270697553443844910090291708983383479682997774828029164577294095821170287159852748244167330505613787531366323625393145567396974417814317087906605651362792642323082365649040643295405124728237737887654909226208014306509053151406405928849345535746820652327755589555907766832550752655705725019786493384250801306622415253078725193605243958338875239169910837430939182398027575141721945919426024013491473923026651634663556794918685927678653766224957546830469104944512769247309251989891446118839289899435910981466842113651637819233785441996687249870644595149889483206291357745739412589643401745490993430332388331947315549708698742904393563494031917792000897873953201753109307468309846518512137839811246197111999672428241817984551811211481587658744028838504256793344297200900829086777202291183160546321225372429915510682096324429574154665342776674241595402867294214937178638611206340869818507365295336613518980384576505779598552032893933065221407052933977910802261396238686131046867574544958775169820925661215280653927494991276894750313343963385799746533554371143947465147476160490951627715942014542273123260684142620342391972308860673592170776561894441412104826128841762761572644606558363514415313110295043953109881712134671459559972160318573473423095074241138122456058636560857204030578249741073198560672843667050337954318155381053684912652863678270853776666652846476687590253379299567812540411936263500563258085998939215696789064812362906207709517855206415864243223233544671868719011371881803735661663551765091535597099197555715438350801104320889406909874254560219133052336374401208725159636255991398420703016501031158120191551291380663857142363685485851278747779577915936072452768643506679291417788102944009761861824861995558532496011075992914857276773863034747098381118446228192727610796061056666063658193210271191740448093507532389458421235872286018627705724604270491976725452919639403050519312078277143073066474655933373993346522151597151952450099086887138677898405519844295987183069259094416224059215615562414189693007776251759710424350907254310929916853640523831616959387541124971608210851768105201383933429319024999949990068249932261830563381326443974720930296276242658195117788764580387582977689914281714102364087376721822226691483765104776708972016330604676958102691020540022726446219868457134393909172355802590134099467290649099426680509513977734399180831739062423928930183559499926480862391126826298480639508719364409725950703465747043230901200388204205953983487161080435130134734794083478422941434505523450631009532899945596184605334348315638790460790315017987439035341079084898774090741139227261327372737515330578674944187125006210257932132758020277989829324568100394135428582324444595349521307795166891811365122090165336169451489263397566034609977313408244003260439215347215364539643670036522633383990088587151931980254613180373391167452284407074838672743203322442202466320077073225740935360705247674178187710367095241507539029638329233863296013790315152064465458035373090992017186588468574869436507642388358966978056887485796880525269401932945707782350604413368857617089670094379977377585167406719785706607822250462899528740852506106129121064004512107545900625894404106006689248370983925545533508798885172125383549050369133226683045261716926901342972585538725164735948111887012438422913564299825962911023695315481001300723571305401564461001622913580682428483218870492925578741834715767136367538263086819474586552835412420709908608626313727120256668825241925942813308729353968737446936408806719766401536574581812184591778906733995418810621056353641763099997991348254426028830613326586093790018111518649256035714206183522803235854577960325605194263248201111768085491411886082909861103224970892665499673748129090735136558152763018055559866892125455481006630053820027575865531580887108508546423425755108107086668596892078258888987161723252774182755690910764452382599528448707496727851064633501558126338034978671037746351782507884030179208650148655992486950887226963222683173196921969109199271828766108366669939026768853274167244634546336023857415152959554263876216517456321786124366254999362075044479128182980503026739349096081728774459468814767932163164162222543284044331059553062747107265014522582286608088343646328222754088235154197541619153652182228613978864721227546604809132541700165447762168585565446688344609110755243483059602911558038551176982985489348216685374529470915570806185695665848168587570969331806179155009726963217275551621573048176284293245194947416881186202293660805282252345878592183018247880427880878201978068808375351437929881675867053156542932507493184970661137437489621787222517374357818599854275901599290275065230838483026871881305574647106107491642373248843479866482284751301469305229089024857770178130150758948796824931641448821009067960464749506602529055714988472801209088689459372991423455922264557689738722643741631824349737890237348526260745381647976289307148601614501250507352510884537403331651948356387760462549607027823473477926598052442818818694322623069210299460883428563142811723098534337199564082332041400766869389432173313508467031093346241018404105717886503083720352094631196145336726404338253768801626223434792448865600237765037474455814584466947201597264431936580015321781178889864729445638956119651843363424434175098806537521011937061564309745911103143633028246205001142141215590645955355856965243667813237829753812931805684963758641771891004213695966653936449896637460831389055032739097180081261682854856422524298532106653812043405532441104967162352223050907946594251995881166967771196370450939780478470971964415170865748332839411667434235635257191470484294111001571700758403093058236130932123292689226672592881285004655776421891633293679620700781965565876875566828252741895519296779258242198071229676295826107475048963391285956176668194132197331248301247451713371324898203165415005120948618734992660716011615236421669783379972582993832902749164554431000186839052503306587158761941188527950879163571432085362880688757782796552954075128155056684023785437873854909598204241846579978055105346787264564542390883400547729068832643392742533694502775532301646602435474809480447092198787165186340352753343835987387499662800673210562675053898823480812021665815018369031694337778419462277056060524657670893597931757525032562255780909316055025004543045480304192706157496712288752513478073298962735462462861967775224658288640291952521748391311060107866916682135280513602365875403804711162291568889651996273459555253490068131819374039375031957976255039298821928581206098356932348092346242932198959396043553511952803004516610405185101913843441500219364948798847977489744628668877568992293084626047243353358040082093894623058598767395922164587324092742055017697896494333019155042517174919064091082345627377418301535478112769044798803700952640027887180423515843189371322950314088381303557500819358069355498271276317169396434534887462277939272963866272405859969868164749269063772733380375077913418176260904815336235514488350203390963954516778713985886637837213210856638090589291155009160300194220144197032308315866211075518825639260537821184402050713207236742121466421962898679890849408916655363532364007123409814392863634019477000949450043501971185727321468296706587786473605750904250321222028511882367002663759676715759639614535027703996550747677962783147412158538624696211061095786552067294735012797422568119661398862907504810010499737264303490356990845101087068824749726704412944710703134582677494758551625875410299599298415514159086850772893024914750413823823852411120750905101713090175176931636565586060157890431062034073630638881452544129941812594298757556753126884212372920231361352556390837904071965530057063640216097500881195740171094584173790197291831884843336058474572093329417888059865996444584068084389390124321952083841409696513233707733922575143046291942542742162993203196364478860033512425836093393712478395894066948664560576368368922741411649315330629872482478407862686863813566656703459565462494699776089452933422704204940223430918595730469027270742270506185649417389310942248574680170705485126781468873604717313841210747334255240256549484864645172729100278579455958392132005784366869802035493627861411546039358207413157645998099337559597330518662058052840781466573195819855879470722742284395287765752381454200700545999860171532181899443870869661610005944552354698925471538442450393241208492810514271387189620204437424411644515052136940501885506359053177373862356757448818125951511412201661398746271620702359572309780641117241329478978381000461535159225104254547067868727326532759262114581669086166194502964191549132534312862111183844137030727737486893816852720718400161381885712292828115667835946029578759488588383917462833092209308708839293156548574106186355700955503639898008504477253314641812909414887575433494803175084551858435482980694332057231033153489786607628916723090274268082707876003491636746914228817926951347788589399429679012056067224379233037235611617720215433567818183645990925578524340457046862685694425514679453080292574681681126049969124435562504193760857017543937065226858289293869435965859947151594271193324353778062359549236860898697426061474985491369351401281632792226001583550307634323947906170764019834309586257643982554669388158631113576123947654564804537425056288018894206411054794810395343472295388728780488358948091050507726097590168952468063637043190142598162389630901901225758837776340990978925079606083494972511274451873209792699602118381139026563478615652001136932376837695963695442319584209815295357513540656203878486279924236978694435697263467228143274797369876274823857441266506661194471479690162557968830415816589449800200879223822575301992561004100081050958026396902246034523106447532236555107041703864279733907699951585825473592036273025730881778562990967755867691676687003831303146029305556090384480219008876273727246371674702172597691027904979642728750041929446522608594245209955698371234878541152756909405898237377061195702492559512623243086115775078543467899195871030351095015293135304035747206871363697084265954620261263784007754746268265568888886757479012021814232645403132378486382994561146812865288939609537752529552991125511082176532354642410985294510761842603143173428869484364643167510721504681263930679012643250801154995435365596822480453297603048301516674166794838998964057374670031945254999354447886510067635130174095943808429157552402736105038837703818044078035087278737480229618294635190216810125917217949854430192840866749711394107800275375458475920449339687745486894945090918210390177293259042082889726769375760984516350301935111197752063627821107547227566242160479111461812669955553639368316217212563350399283287630111753747672667514050512425055225959880269344987634367247058850952937206837538175006679002247390310527069513614259264523380451774607278514608200582475982345072178529310346563449209805522412847242368313272034626614780671830695816687475043721861533170825990484169814067298571585401230421511724422062860101387160363198033467454196145256238408441783115482236172107351217086184084602457309100123172149395071390826656614490879299825472756956660681126825522830704399073440390247945614335103848216508994650272834597826259491786827740016905438193633104969321790392389789294453422234193276376326674376778902010379721404078690588903707931447062269996957111538958643907381454973029709931834198179924751138520216998457679232822508672487950668137660145528985690837551010151724131738260926963839475362974848404902011638303039857455033343279623359558138187865859875654413642925068126807917824701562553786821631329977800838836311232769952626530814939017629613640977152094349908770065170875536908068976148996439549603919007719743793644517665361968148287533055259719368226148857622701679065410287566824842726308329459118216233680447455587854756385170729166057451729636979265958945928410211846446255029804962289504758254581203231423515364310967408535876707707399323059883433405912962987076776386951156630923377613611976168307255705738367588659263962394634300591519822038090978808543092485226590075512335151826616461666123423842983322966038486070212595450135764962610607139054812403397552150707458830738123317902113645309164658666025613910080903619065973575399773316782606638611055451530451911960164394747275498036123886865779303627221649334102261277376961442929433994750914444504333225037930160823226275649139862560406477296076723783365207893766223717641555567826957085527362139166223825005522006888722396470292449918132549395991531068916287935450658623335354110279730071355288097534444028187701155756167762674792355396078531353493231997673097819645527645575902660305984895387664893022157148501945382911841987772366259799301727598870649520875368112350862999556369506139924971213204546832753813701640439242744233126872742322814582439907911175702373950159401396064747148881296496565751777823865784078656508882755221625342196536844067101944846577793905091265600488477545604478708318127112558279304614123423549103462420666992656155850457915570851315919810104234325608496993655921256430423405522093581314902131021958557936910555800350073915837747956541628396113835379753844642118568154192453348311285609815583099244024800637541637396158252030063214756861344466596326660250579707370586289978297497254368423969453119791410073149546650355487279585921493438234141839529943100286485072711620205216342967823833617618900822734618963636573452081470886952650642378496520583683029562472891001610063933333549988915562597048837047684194973002882284926914143834698449205610626662442876353350190162827045632408069576321095516300852889531433911740512412555532714632320478920921975019090649465820933845829209363398010782279574901127191897090250582134436031252058158574781588133876780708858656193665439712151256916730248380552459264515418345347122128886362353547454349791962958330455570672180760368980807786298157293386927495650999000061649964795668134073236272365959759209264774817284275497017940147311496557298724112087791816391764555900535017334948373660248367481069311910446427127911203800080690394480063941343653121045476060515587381264933896031895589520669050139008761725461168654839492183192578737901272619592803168885795861905549087056622377998866585695222442287759470947611664289959710312758841719081891682509767746150402863020128404326851736732483351448707053106599809683221352491196865493096561787047566130158854617838189141986438600683435480506069826387342468088073012181743127605374373422551532464162052961470651536456849206215625204515070987512274692642140904202911927352100586982165789712154707154498029756695868522777033458043326220326297667615108726537769221315285595773168209959066658819843542993152125771763971063194280267179379382287733501326772871010464141714420338520228144715723338631922479194257652013599948350573422496098948309474038534420703944463300987035454808238006699722166751723236258010904674894137263134016993288375761372034974971319298519226126325540200861201998277784219702615249265466822990067577189029844614288388996292205932117632721170299812154727911648535280389391034976820634083487120044003171932902515606587558689634661818251409888609641621431937721157677940071321490268113538316558421416562545953011360795611500395562768826700708475268756711307959437456591657771275650641080275302593047921740615241000323948315399050174673064240147114045747105163262684050791019898665922464140439848137642771523980603423952266301168129474497259525410459840304369137612801302884983778627841515423970234562766027820458089820021099030525957445607086548323132391723998130967219046440496758529442216608766279507204260583169985827897183625014355532466125584542165942302261761176215391714946387991531209888978933989364249547584845061021821242340260585200109171405701865281558407399650076561528323667325470600231434006816650381047660526979086051044285480337571612286552140633604552751550714925614023338860342329745364526967286154682473452864489585723101321754779483368465958854797348718543063215570234248914658902078913403696237809332969338315108941305481324908770128161916089229942471235615898622989200930979665185843145047504929543784160374151294198995590883721307668301037462113776050906918417382688015872719953033665629879492650153510663307584687219564815713897628249634783679674424717327900006272073549917364411436217167227770118818670003511335053512238562120767989924928491227969969625536877965670142176761357302193348686756368587203449829487077591297425325085943607665438246243650406976491150202655093336737671436631912036933835020780129123747777980495596501447109433084366101471622769633355140086018473354448969672302629334182324164528626299116736469159762397368444031468373166518570471589986961589333159549028742971641775082979055491317516758081881915168234791164803901072657125544055767384085233457571518475186520706907586817121826298001340707332282966934249124240612049404140881271487014702526305725805292880615070429342714192748235031874264307191576592729077752934308436499239786417490706919571248422799355289046149298203101083156216767343083500544705190414397535827783515727088196641120502349932076973928331044272936249806639821780085222367183927224755481350776704735322165616987776285343603246937128073807643205907231746261381560866260724196048880281502242846014093918589213217901766489971683511786762580162151845465457593540056600996051810101021288858544213455326850225811868840948414920204091224880933350520466322069027297127611294366244057401537186356957299505634865941071277190648371536421579524377179004106789892994639111239770809288121974814386477878529538641415255270188454413995819007882220643969350400669158381369112822679391970018138966761344853695280194446439777097757356478956093426267016120709147005512887987089017760346692296657953033211688890577190232957414320585291358028030944204474108744994424577139483907679129956487355534049561132101480524523808084435105931836324902502657052167641875526340549584391888702168500477264827591099622587578952755958544025922926033884120943820477239282270372104749561213278940481052155322769872417617707663803863416076008834439427156661776834506116592069698732439944158532192784454972778733236228532328647438352523120108791914261180006076688817040258812132120857915903683833687449909070926844404062613864587503506742845433505897113366224190575916288321851822555229939240362037224800684577965215950677482224046507239659201032751397904930190849315670976375270677650299174897965640487098627166148068460849153010732824699030537590524294795640458076552990546164129396612186736175063737126217273594234302480962842396966987314091592013674084064234828382678291569066444749650918809512816562755028980614034995173664884450097008921977609680105787461905411164086981652831041624964808468030527233721752302193653974255595624389162657221677420310841255064501582698137126364920332446202076368041788962908292271608084911441091097662850345760865964826932032193366489041245606499165537289261855949533990873700009861747781289044497644958393171642178295802219013286167346487583749039625517245896673276868833999201174717041431616793849796814873661184293754934713697269225059313925444182301682703039240484189090335560873477149088754879022252463402718263280717931186590910665666594743178602924957111769376949913824697067740522622323415977017577757697326098110408357639414013269049864036804114210640689442388891550067871713859564646180532329378201422748543729753622671101454721902945795772326681317890593762664114425951908924681513607800138657323677586864929587464949875287388875320410562577874090773771354933496682943613890178255057451205121012007370922249246411526333547990369212203464523337867544226809795912579024828054484151788799723345843696410292802363713243649977927508539466358997958186967629185913161185001419540862006559494055182172278026136513783860600417973153230062122204993703355541027485486050663385706605327802833640928217907544111141549428213875375967695831346393176849205963758440054137341094930794051968292061783213568587198623398711069786268998688727126328329137703274369091698420854916391944933632718831629613930420109647174493337548805908182150740150675969963170171678458503408349523454190765124437051796951933255625103946647768557768425146300926872657357941396837474761585432477357611456120277989060065001953282627038874329757781748976754596753695936303438422320064252120269566920523851427689052883470955393026258240021952804044639667235898852777721118635770732492946923286755299911659344028026667887067732024834323513800934784305125444535062259505696920242738882611772558373529217137611126731861423454085581205621251909672138754959552536008318365646484063276076162061754418166396983026614577912144655844970968985979919726693585013709296439599295268907815606876236891487068370069874468811515092014246509940413596812547630308855402466081384206540340824115515787691030636689424159984015182030556708096034404883222043255330615428921084255253027859205732106448571315117577831204248501504393024498527271336112633480524244603716015614031102303047466811080535180961722402151995326309502326549863642717551525121447954455557082898287075150645435956766983589763527663327759703236139337791126658277213065318402751084758497049986769295870755942081056664800821776104684729762352384236497631081334195910002809944582804311348601292485701069943784557507600888398637166345265814913237231938660679214089470257482425232816696890706573457891211498666220198963263745916860953842449750294106080645654311336819587983496669916152953641705516189700587523950590677602474031168851948903178428308078798878263155027849037263440417766205958274020687681268358109307784699563697190379663265969954209125315434435926024218419113140485112927182980070462089436120415912310206677394920565552514612551588243285385748781702219084342514233274859651234039790133530486827908879608346283116680365701128905580198550678969285138403188657368142793682609392335431247793201816453717584819811974403229950693835512445198519939848129081270327032116857547667208395003017544562436161533511960066635204866666556084360345146855891018102584975447188992675008669344083495011141861399981458972725004415239478173375578611345984249841244601440496667960328652586566058174854963796148908451677762230262988556129225840543182116130399398419965019924517745841277790099474718213325897038496231874530012684739125466461668861669160026548572310222165504103818563804274266946497151839442661295066850293884269101327607772501362364855411053647726249423178066806854916489281996754191783696136822140467748227532346485221399888525826648367027859454482351550951459144599283841531796295585042435569296514438390527711060797569451111252019245478451128358905562458716346156382901381039549915664442107972778551286226867639139587346222229455261904554409358036345550762702368391150287341109943376792726039268382854231880554381984971378639472020354302332882899439038618829748787904079641500543289694207508331423194401706906984123262877182791890667434621537459364318193027616830375164606898011975431227044293486619563673373277338935305245668778504442355034518196118184267781237521617442706077969060080888310489305738308050795463340775734305112743711299978508440218684062561540351076206806930984497740667469762142660648176180146072503083593839603274336139562299412895774154973306458278363434367139649055672488311802017438291117023074519743071796791095601668894362174369736738348182255189905911194320570671752408848738778591004334059226352841524541338112258044076636092861511908647171985532732480435871206365976389308031613381671080748772369894017677272386574206312418890672682558150321143720956392099445415811436681218886879975477125946498840104896383196022727068702790087803089303420393135142830230926936336325771748921192860294998929504337796349117163458855737606245454352439115735269039959133449625902488850095129545538698744268369599255281477485667674690031825538530996392138281498446397250292615000211096104349472424058502267063280838318216376593984850325899199275464177376374058585588703211638439017248964617353802580453098613442899060877424580510976167453644165484717621327271082211801519161756893405403817189100880661932538057459460483923224413034032526560368377544168109085520600909936333776259787528053768084355581169342614205164541395010059812564187626169319041381380992540771446966449450185165105999159948747025576211291330721421070266836184906239826049398097840886894938765495052333493640615309305794189457040624657644641964649649370247359244905829950336849034278902417092896915028491019089577074872459312693226642093921751556409651808876112142706813232637963884831599909759916227290077595445708719822170002721724077941436797616192793437531525106574406782121347268377897252584331475489296592951438310441503439085550547317962744724513951316049475678360256760248239216102251875234935634376700216046433611051526585668032112681204524695155733692182083304703246310720750892341146590552344543407771539127142596154718117052780053528734282678633135041436471084492588059968432730409500771277116968474166895409113617342545624022557554919177795805175550294115345999926172942281650730663919408365805575646202913088349706375139051241797303559621336755624205725603178121637024149826865304223298237085648762464049700554864410355350560703216143113435996971535697420699124523355920040762284531886849548320379282508846804479334417907018421749289655964056501529678890133807115946310403640899844161101504254865431200645753998903135586516964631604101229628093556283453816315136161528838690763013563248457565313938668843204211056319136913717084366243586233348148691384844349035315841876906143606746182048339268788129578204049810579559708482146818220007493472441260552169982900450749976778575661197920019274520228074611036244721089870049006256282117740274975125441489135484781667557192369717486135482631327338202646040638575176662517293673435516594486365552505747225379966746989134578375817321995862041129905981869810849352110486298762497988120178754857266260760191596833411429599150725461335758280990690714815960653108573105300027131255187501836900324743396679419415687699361726272348948326309209414791066995811122988720672581280250791705433544780347336039051976793056234317105383581828088615376406092801445124003405060763091814356549730494128434387437135198553916438460757312973259803498808157666311198657340977953019004955882852695550473089766671108339598386638567936989180828044530342115503764439593583834782710334146945296188599689287972545406869161240990891645546614297020549456143095408198967318957832874930778349808313094875861062761118828713543770063671148585737292604079891110924730639608033828962916047103229187139704407591447149358964159916645548915753837523011453244949741611947685080411085521988090222568025086403532161450089839079137678151278943334411622102718471931854501179217944566216151502978226778411345566218475319021387695192005442330890547954962720580724746412943835762614965637443806324251497551985940439384745535866251708846102060961025046433530376620045336905854592913579004646059934094070842926592015378207486484242883075960876422484287254917180494536662522638127099005931086236514312257314131716419834546747662905730178867925057445452294954841797519091092213387057329750999855190264746159928709961076936048809702479402510057752124563540250162782963671393913884304080474280362189988413602399778087311360211432800864215673461115714044913934308708210593659258073610466701297999347487534681288943150812443057427660530713615555057846235674514484708788665071623457966066716054390877987137934523121370606282859859154347057577605836600266316726048745737816797584745794202189078583473518577124543522565133003101551939149492162443736736256953761112400195624417813093685287581296022084150837928564430707842586444402077238452500093482975215115920969755689219724097419864551537892440256037639027087749675936245765710232175415201269973310814480721253327487447905006950988483898501153838696015170949638386739375074737321823124834504527992788175409877632880462183554654227059370299281722236530698132656578363367680434258324250402595414337483256128058440286152208330314193918575885963528608571106534062730478842485024659963873328443639614420569482803008043543988666216837552659936737826389181956290955703017173544065728716959043721105938359040327466341071140780270921518922993157108356485201815261695318875214156628122383604569097964295078021798234755346866499439985859354345052449954088621155767842570641291645469515189974479502873072969835418140914552152711725536624378251029382879840648140442532129356771302645034062835618864129818992996735944661892562322338898711864239365026922993919926433118556363031341544920384297797874298969956131333227868731265761926221878451338447484714907302850649873309138407622614605523236729477492641631070306422351029107015118117769736817359393586056893531441030107440851366060299715336084088865804340366176909844707900105353806068132007396283347272076341574962315670794602879053865116110894838740169602422336598911932532734866615073885929011278906370147569669899928940385804072166181879036637686578953696007444181506737747674257218611658894629544183143768839933261757967950174586279538842116338583171711673612347619615945268853602631273106255272432742002518928157670343852025632697262278169340818300489430458851558187177390441693904975052956577147030416576673129271951277813176820955268184893508108265610126452112915399358365666339435210347216961099782170436086354363201153425729952069694255594291156357392905702295550470764254705029731708268060074229862722950143907304811729914130945653595885321959944844264412096998154597227614343901557226874506832331707793005951396636992030496833241222219536274999829014945737593762219971192558708048602384655819626443290722777315147138071214071320143116046215743211962940785352295469483962006436210818788615511019042238560172136875748808290178182302445122937393876073798927052594347877399105013942305595762926963560103144588855189528788475696564630165027540955955210961212228868284867641489852560434069702876842674137642469085494728930311749585940199058257332713292189954831142269101578118366187656208987594173262345906825454702712489198363390835665910105984523327311743286990563020944567927578585530980123776553084527479074421435383310274449960261630528300390904923563050033358789546138277355257007358393922665998840806759291941634450150295399416664757489774711285920515531118422734639590392089446414002107003231252574074109238943150309340895362022973639743493531731871696436725788225785742813080390839193612805777560265258053943075001308055499747103991049000163324344463799401178086234759488379861315871049347320727858310860337949714285897040504083756491600593831736923337748701114019908604981196733330233155184726066952653601580204389347200073472698562644695768225920381899601407476230520308511511310916599023936411560063108272899881189743977607235025156911925146027605075276339068425812260588106726874627704541409362066448990818959520048624245947800686727330008837272137424343215979689053645448661606908823668623527467840408698415895065959920289058676450027330503004895205516352733268879108164582631968212787252840683616529422825004479394924056205490582974829145699266409542083450794828860633944900909220671234809885863210437732741812209422573623775544263868928195998138600747561898357474877672746538623462822520961502809260852243352672604108970785904705814921292616579271897154884141983978461725328423777615891446319111617432130766857138055085470161668035062184566200092664916195853336810495384345623713237921826421347562800828281339609715883973810739518708570473756498321448745541889969395168384564467189294143934593140921570162167610435664181216646290530627047989878744863036534058197167362785414510854835403874581396832203396795466454259861999251152656960126706424696661065229899605922250389459210239491685741532612636333905516326921831903844409048433913649056203623377687512876495200452571951203836859756266435534753401497909852555921686512749083673562510262957114433517986136801476214766295470188222607956710542512917600615581859435527221080868731375005635615552705509914841612744641423532651704914222503793257625702223467556447962904850010194678953174365983369748247910126675028047197501605596920671449336573150269963793987958763471938805470038419557860567466931721806987657764266613940571452869604733978957967361284051567310804654948494965001438731059221276742484283718826244177493282526089002749270220719506761598472246105908397236954859984257650266113134590953303121093443365430548166569932370856123338801139985772481076597446971484773930354103892051563072216187239843041959421151659228639529533653966920472974487336560298115300168728641598784967169192972515807410599608725979357859309048447786246158854437515838207862667526081230477580716652135602005645894023981850475374097476002859849102163552453424722842574920544221003937965073077107098231036585925020308031670651705207556724148728739960981506230907675941568581782090018937861502909093748476019479209729255053526694927773293319789310541776699829667308811885448882137301887899890679322901635591582603211746969739757002944828701250830084353871378180188548712274791480428668889060233185549153227527288419555399685290152913502348527278810622677478978094006167869195624430507281168666458401735975119162555739457342324574175335337869026707688624166945549585021358112378577814632014693632355673506344271742357792240760338228077360023463023800958082857812716429599853166038472927572738896565770615463620759481554187362407898365056414729017550292461889243303018171625536193835278940268175756029930038489854716114849311226111045794231040799983905093235902604999928925221903005800280370803518440567197716873336035710940244894832259265884242661495632366234615913508235346010499474344004879626214376144135176253900551273538119419733068922773134511723915942196905116905257885783088512785277428207980138973706105416922841146094254034244165412505318687887999673066552476189815737943561682709667974803243042151351231529784504636952703452161345826996315421062056604838017798971187079812520072541446189357736107964681569926425775042375488108362189448434673288000545278269683106473722361608361476710387190000412501134588912527791117959605004375668244620939919396433780570624434447565025222123501859201269460017370287410598144459084629643456270657625155605788884839008788253389967464453837859353370841660771773682479219156104810405549374050184664563426575412089881367270199963848554094724853622235734199574403384812293004636349166908500070078229862627143812078279533272236498850906597291213736343942377019851796141817455976550470496449485489817006605366928145230654646982955732326969173639503893463568254771980343844836558526721867029582460396068241812206136637783556655284612225244532937746449060887069854709960862640418141909969375834819052090699686842599630373568537334958925833799292882169241128075578299078749749507963483764517239731464458858557228808304365483669323102526476811924511565163025140964769776959716239797633136873560294379275444909779099884944350797027975057179943127898759692714768644984577632225152406323347333986977776611806624566474252899159296352158636683084854678579126072338873043480902829868357167654397413997510758492845763346533629831030514694412834278461919163080625788487281507403374666416886142232634503942472911707727478354131833992566681268725956639025784239470999560477153512516831364329638785795859119726007086910687677770925077398070017301495595807347050653068581446780010726268253437512288176837378905029173010673803823743260090760513852293552683222371837107417828549022920765864842465324285745830397674054674217861489538576771547591682845076643112342909109523925417329920542199603179605556890989923826554611547491744553566083336289734800522827395753345744555097995294196185459698832598928602516525034216480274022128573802970313003304104617092332318054624448690398143139785532434896180304952399658453353251891316793115487558866998846726711358864165186127196968732724883772359733989009563199270067157015400304545648970348530232006426637803604293776509739281361779261925646133648473450055364528517764779030757319570275169534183817985502330526009798348647708838553243293016446074845379195047413063936844681328505805503599610457073674742660284175547355470690685989893413010615219434139901128734861473333045979077458312893632074819190679438632598325808095543052741952249725195080136377125598731739591531717287634540006558428796982188942391261426215399264837464249640070679948651426946780426952876418605343980364239032291345551722410908180922864586217060738147477863597117262662321297450107793739380056034609324197432088406445160475169573621310541029557561742998334181275317953242344187063171141317450831687369836883718561543424293108877165735395826036200946747971356524259602303105517079446481772159108992459727424710898845799902343800032697108163912020692193432548685387783001111581555434563308884801515562192194615848486147399319150280817387159655901209060483580667185894235045910837402486391322109238238941430842464410896664114777496088215867571008241789603091765405244112081695104855984357589833173057887433551455932400457076421861174092170822671152848552644160222108628577574474397746743355369021467914018794989465101382465434381322354157544533755217578854789605724494091246519391003262780571500547065086416851263579625575096539655741782144400177856238101995601667287521438234184759393315024042053248807288047099044465352096387711727254580691585007179070574912397994782687585464491147329903204865820135883773979362840188761563132690209008687155198181632518043169202820747189021831063752064943908733803067886080893639792274005629838647675498744216290761118492664895914935560421545014344241611447092701248233654163081753812832179642065348902105407222546015415673282888156598245249710997214498043274084007486439798970188038825289348528828735298113365814404244327622804721038550189835271501006696256472991491151944833955294790733058332363948383061069608796782781546947099725269998815985695346743966392822022615192189402969112893904110004267941864097815524711414818980423056564233598829976947571786065162701275483151967331061801360240870916272131272078040816445774385499469734404278117787653941461638156495246682278766947552531737679137096536641815631134073912574555153158945302030754506373636158542862543495764444726571329120936093332345681991797794754779452674175216808375057794013236308924646955107097512461049819489088297940827859873835287614118644177793965864673614715211757437968643721020642923491197873911065252111653072510478379623847217774634623315883410744379767457487546774660114820164720456701820642415384825612930414092730200440361098289711752356302541289868217679869930328332988438022001176286947985006259567314621009654679070226064903336714355602006956135917539573526507480450300175272075468251647776350302665980871114459682655951542988651556252217989692835488916054551382794087433026034022305165684469777103741234480112180403948108546322905859751193983090714650716260818279728109576513544528729643014645322687903559001314864352329792176056915235476203676076528401817555090641673473837329912630531414610053737010536951594437090115344900670134792627514457269888341796675274644148379427980992207603381853019310947105826524227410558302582512931819314610425597033700628641233179009402018517442820627929025061395826421341744144535109069388719097720052750188510952294986405490763405667370449976201326319016906760722821357020193632263070974139728043507881647373280294578559784763334151749559719241209798606833123331404469758466667611331362620641857283623776113959414049460390984686133871860129475015663556406669660058430022827745966370729077762529256694435528375395212861977465973784687512443743228865900589543162844148947983603339565397375587531291908315638493941085411743477869301104921753567441650181072434131234544737003942149063507807346032405582004456985528181313383623308244233346318713839507408946440709177486161835364415207575803767566517728292149760707698389907061084709598405610063148975162707912599401645732949031280924256897213556485115147281818387473536796791293677512206925528111080503106607959707296527536396204408656415931566808867699790521935506114837461081184730248843193159753972453507585662543644567241373836452634120695216842326532575073415574070602387634181059368710160210536259192055697040158062655106978014847346687996699169464555890759964447461545891018634131116627451231204390957420727709081496873733735187445246992328207032578514061100319449781043226606459887602142316031182988368314218195703609470505152359363939109740734726589565204910566318883857953818760550628042018389094947245225612248976914335593573040025725779923029990395704648610151754224972629017433800807719376893568857417531152711529342146918500440480552251589613369906358336804909224849837857011385074427278950548345440351000396771120029806539995670320651703980913382512044710996320958180586497448466919341868575269809519825612000385238940624525542102978323450770899020457008314782101373450195473480291053549958963744479041794650618130678794466342196543733856881094438357758709994217553303787583953435222350250678180135320630197723842017381936663151182979327119696420155229654394733382039977737819684676381688572821664249276587936114083881995685670383290114071817236880944541736098798545640980782876502558820167610705405715563448759679555675065760250693112873378185685999833685912284467126391057835786303765977114246383239935742805530539699377265630484359733741961295847169725736365917708016502327077115951406858469786154353691090751493825871410748851017781257179539732466074702434599268055579359345507651044378877147874277731903760526409072084024560004520716778285527786684117672390112724264224611245271887009112311254569144670015839025600914013642161615026630797660972782132005513966939654747698492056219263676116600615550178142549336020062987581621379897982040746837890627360806914758495560104549944684896505452345218524694864290221062334261771977830122357994372975369635344564082173762842507140211875197578777303142680349386738861852428148736157174097388047909884379218047455344212243797883389630330668766477478458747046298760301564376830428762183510044544306275670502894385483756902268932338861550470032186361901194351109746062007663362436099449573572363490830656724007499136316212417501753542568469539366739231046705279808745290524769348472576494603976924434124999321955919672129887657684800687180624973501555717044808997218222911349662428921671598623095602643115660967778391647195518111509165226459944441010932655754826075270219229438972430646527924652476678388927490470560349806056761606641232638846551320270326692640273801772378676294962275135094288563916426333635047044017507666084723106478233860734888877232173987909200303863127849591767509310381339752265545867403600004983829550765958934111472984366938006904210985369743878555520932797785242758969363205394126139729325621090605815317910654429581365202100075446832624359912868092550021771987418244658289012500965921021068061284461206330492504002522910220407066958026653357321461622268934456772939074113779156018623284282646678458112329184311398972086120391532131498571555469838628329911447603473200470465168945545771248021177641533859820991776246284868869962365062861216138233711292976446788666827444761290866437583876665901898124973420434855090608936534906197922365718715338179869458480858690226198369046838928035942238512319469352373652620271812379261075473523508985384460977470375002698742222496428169033741971665606638741255649757805853513530318047902645360532346632722519618212568447221505569511419716600274833709833416376262800654216143197272170110247376615953650806144090520456917405012702865253973969430594622795328066064675752007931252878369474330533126088881902580274465564426340560362890238443253347510360547700677438310841695057258054497513180185292109545509507524813613462184719146413392255860748334522095825157952445963169338391244585276352068343403658905737052842835856158471315460999767128776143972820023741200459993763211515793531856479880270674341239695178812563273367330368114972520217483999449675038694866161021899993366031160655260862843160199045290380706978765963548909728739717639378834140320254894668467503871776122559725514908343606170255301859234136757615105094643807249928889311583399348039136582287994711546154000856485662452513489253834819626238259657142383292029930034042952610942296023114916198843990707897785322112956698996478808535944162552958862027319590982268757884300580225555575740444257864447180091776148431936999532176151241016916214729744925928430866393224116921403903179967728171185380735490003930924878080871338402797308345854559999425822663522259084317841418841298251855095618064558218463388982639212464284988288982153226893148928282215275285341322742997189752626720750378789035580389351448176564992776656455469832797803316299763863930543914650530221810009719365112571547645889889668453636782696579099337927809064639888091448040157141468404685231461362010647245988866874042584061025489834215173149459690640379144084128723793704640610109513561056212731095740829681500853298676127798682879671138851736385955255709004525270245492383521540778008644586765276430074876550683382045540291776598249547963167275895322189176844827534826803773902628933979415546905436791896450112786705487649011903037669652561026203675056618908121839582161768455692714426461672848278066536717538814113383534210275029283397577159614009390762646819933166657157551678146953759217577091533030060348092062975117646072632151003996481126811422236539164050219214327391577739760710894398117725293731562301664488883961741828909435875094403734509636890845064259955660214488334122964354322560278233940619085684337485905664563494423483917892096850998586507149533235317885313834390750968163392204799932055886877896161247384432829434681482783515856838368465099816281115833230247785518344512938268984161393209135039443750250836994181351522229839404559523808753780666834613538929269517176066260992895046678223530804590535531541922537285929500800787809666714180631050934882468873893323225967317519940957860532294845089570799259525324663621456896546076228538244386363635993585300498177290484665441784156632115460433916002077457205165026870186256149303777852956654689897447684599732811013685417693459545128547152219539352198518096752114565953992653644100662591520008927966247669998357792228335356089594012643137050787584553974763413856891822476562978207866599761774845482883340884806249984123864826030339207612712937529751630464922465042949844151393804369880663856656419547393398345698455050465680248627654911149977318619448641883755372523367705766452589658643657319303804819668813725546454464439678988097935273599485764479670183529238093866943341801457152049692060088649656178393458047338241957149209205404617364517327146829965614149988872007721789804841285783927129159745163712639566505325891259778768351985645872401195983660380663052780566047902275761389747000599699295492455611730205652658868105457271724254317169522742714068958723400517470493399270890190175283344685079087738182670158563361842980782242393795560055882591053821631898444168022346372107664898193988907128223020614747489787388821898604424457898480820849151110856817539273731796747928585012870643258391144518116372207585947988524656774643305455452806964084217501933726531573168925868786286656706176170191508859680186256303177801638943236426077410672211447886983463009870790736388891138981082673875975789838040496409656712615746370087765179044274465084957554032507421456974734711726698139859557817283102111460519126184375833499860891905983387455969410632470266625604867905740790113796767811465017348339923672516141160074410399774148488450886656021844277202682051046728686344049575189942489668253311022265764186431954750855580555662485054113754783935788953536290227530725260531755880064212516074948532655212245951190482909587895053546692076484564480346884049433410061276099035980117039820143315203685406449368540884942026526249387850186618754681719958081575668784669520821202812880616196195338543298267304675142256706702795916603535021404212033402053404038724057509953982278109642608600470417897932703016574289321957837631225798193713039446041473026153644528978109873029209381721430935883307561139638469806152191244759463378923144252113342082988963920703207050473376402638217758759622139965505888038231183853318047903830087596778594599904644002480272702099695250824473840096566269951289423497407941916595371815988365350853488597625081806150139887495453491408105918505690281629361607706437992178364079679999127276666397450801544248169892195058381241973479483117081207193855286723949604830511011825275159552558714651721179136728285727332295235161518289285695625518321635447517070117634829216622596949789135416911986386745854706201241848988689793580420363966895650385979460971317427766562395115417948170441562021111247390128320786247904431824593058304435634738459484311932714622715431405676357137174845436839329704200972784163936044770232207102925866128435018964800554563924160554108626822106300142222801522953827719898778495508418342956191864670918615039836636394717533503187342870053068969082641571840590764489315321140398646424636147952767195591290789213220000859008774699981668989777142142364761052125035312479936012193689944028434256537373220280236968363696712151060273598952257040870530140962094652979025169921696246836283213002960942493416955234080304107738829951880194160620206854214117978833552457550887466551364393535184057191833342364685701345368683756444589976107485840466159183424657794575755419373880913565791221662013142542253346641783211427067655562252048114364084516585655172545578437312328397861392498016955859721403732879468974990567052993395638582320159323337555664907474008938023007225989304069531647224020318161373422798297491500852379615294858440907604224508025397751284287655399823538738117681066422054884080024270155685244812885955023724564175217445511590694996435783207432176626350306805285808555905383760796622432037923488647797677908888860565852987701633541731868217348937845592621724604368409167365121741648889602139910484524952343781343363907129173980155355996426480629343546144443477714310098876023132610469090483673370595767607270458913702502036392652660874765754401743729917428169698956936665924893370191821227405397551320507104166142902456318021655176707426476074838825948249985545898684706229181899485060372429241178303247633084917159652763695260965545497506912674257132594736452417038404821646894031008238277543569044369669379630557184047877495138849004637331383171153091796556929753663229881006641065604242501731308960407506508310826249523493890045680697916949193224946674521042353560666901734564344767839776504449835900935758588684447976271573037105294532770029857366593176423105655829049296600083683373319387482670953292834592446117678367807840554163819196859500371442295357550077786444268834766248084161560623905220045870972776329828336097256718857552554610791845012071214325850844307999567447921727693094443338424844985051074061207102606960986540658783490285631016755074036660382686120800461142382002171695694375770053845809580971776435936389190376824249644492073245035137752215551174451849212907035005448984816484210410395434504397295313538074337866573914775628461760905760821834088443183391286633477836044412678033413227744565420283450657976080361075530529031334550531775121848619671084223434344988467263809279251590242591069151392572269495317281890331211388162309766970994249039160681413776545706674484286881206555510553060614912648285638566141327366612845129870605813025318502935910613973398963499628768817323620644871477842684860153662508359525356276489952805727677333199638189238065724070381449264571320500521295964459380337983215701677621383341399031168438222122545385457736412804193534197431523482744838915448699468552139811200661437313523428924773614949068416004584605660973861053843240790246247489083790610339753010455179158954541328552786518961080880267359422527715186224896871704255520035704941320700721514911934835190618457743369358105867583231861672088471324066834440320244827075399480764449417633972498380068794026735553291936573002995713389359586642573873307441623704149781641389447767621834156442335545244035990956315649498269791885427011512434167178439685372498479924170760395316352051558841974241902711026343560909622271181587808365979471236335923082855326526625192833402966079888199345354039701821810995895979279023328050164673933794136475379298970590065605724019311555406949310579988044395388415533814487179776255381164985982657596988988385437596001728579457240880505171906613564053220184601395252576838767172537313940547518744304588597593101925404778764435315301120514819662901553483573395849782226950977319534312738539751409272376366659776342431486441490558899840470114898006664357537275920565487551311846248821808802335804052488500245199318515645830351910290772106358382204878773210779860031252533353886277894608287722806617563041973956201646958887491162014859277356497641741446328956686052096368967108817543419962305594816186330495591360546670288381779436521110443944004778095856355331862709604890219136288273672784926190071655443221490419734827804397633811308035572259406023070058709259975600136196451519702889586221311357685009336522021021952459599520644130362718580457143609215998607147147656832355311740651776310729568856601121923907444387034698088992893025976558181004390280070745717728251815216379492247893721431321639706707481426147345296730187986288357097279569500614502761019399438126494318401548324388315204820419625934649899978348853872877279765750027539885496280083406139694741054058152913194818374998037768634700078754137569846074946697735642472261147421300489076178045553408998743916243395151975603768092153061573297501858742672279264825735466140611818262497664836659819984647872741998079251212916697531775015919227327603345771743953707054146344381772194837689064169839714834048103537583007277423861471383464648514527199044189313804456414794328391903235946349027818137820189155509401346210641823505548408855973708104276650038528793857454320539867489231611206864955204574714194524613226369693547197148431061273888830745163959264924512890286350430523971220011311928345726542589851699443764643263990489729679277212498497835544106127956883511383764381187966739360997834883371429453991717011643599872548521809318799886867610927264019327487892291222211900244886787005531340722105424854306780803862153670576688411349329064655863466882824277656618747839491703359257116676083288900915735438448173506218581585526837255987643871712387404063490429898841285096731524551930909546083117602070865162280312428854836966398992567464851201679365183845412193899139646075707342596249652650223201578766649599098477412640030465916682801718967240442810350553473677168517588692756684533528995466910581800821350025865203116614439822581461231827015072342594744784586286074169110543880303702729767642347191336030754729136938861190331921589755153474762800240925978180040422232887417655146685089979573898645284583073793036487013928871917022231420291538930072647141099072882947357861556270692159503938369802210697325557040279055455853883160616407961412072460409607140486305218876661401167535928824943955201636757965636380487059701369708990381605667938191119263679737775141530075830897665319529405582144065852365088175352677336829676778972418336176110739314498355567776841777216822356996512609208381303877954634162707825249916910618971756265142184178425023355214029207243852532114991971791833126816962946941596519797402482334264201900234397015198306923997223732306037994673181396108258359025678590459794248498850855583420160132735711580906869264568563739651025445556071422460179554910593670814904115628600420823456505548031543515524919387452339660656510049498897754702760372471185489510143974918534241407268001195345463920326810035199377455612674824182931308985367975189657757403690179346612212003300499091561959144258867060430900260612617975290417810121795270245871523782020514023618023060040347300543605610903605783650541815630963520637316891316754632562838403001661939658623082508539552002443190617238938894709407193550459043161431496318146142844136302859891445389644488247928170211595674470811677273987733692116679533731699949726892895171262342452881122694737650738991051638968445680293150320885069552952643639925117626146465056273463983974778881530857203794006897442455636097934997788922428648200844392456790425459761944008029410514089111295518491779890900088816484526902236823999699740332629706081247159267125058394365363129603607588547661444984508434568705909815926197918134199535091639456493522200714177293394434211777172531094157457050017662105088433745221003885320574217581734873264469473399062054797351005220529259716711842909136666508909468224739828940505682595192703639735004633590667516405265151734353109918017711002379355245014295413496873769297314085131740054798528576236952005356720793169335567902003144135943843821418299731960476148823427372575400250577993961751936363621624110655905628026811075864321891687403663010415914660847977209559552130293520263408512381057242177887148907170962653417762508389922196478904791054746351643258373505825008378353609038338648749996650558181404159175179913642879364437958624538220575407778600536657172335471384951715785375165528620230958272958838546634791062979397058454705346099162601792842396084225512795971211513209081423773085317500286806712878678504744773771318405334529606507100659487499644874243917655260817607214778117218054094826968313876870502519792247175763482618280600013787305119066077863549339791242212829546109519474995419563923178526113287739574414201785199115496495737671455584133129167021306995065816997639732197244537874234666940699957395560819179221527108582650135910488486299734055609421998844197923392390960634219820666144716737363227786086976803366049102919507615426960522221694816777417316650033232502786819060752811314859922668051292053305044678642620067494873012466763826921169355889078146953191661042191829124030422673239090352570093094155959515003826452103071819536851109186044520660669790744245380479087751681437847037279845520707720314767383465419205199419969757961720420923528843217227752908739324783045547063841655880907204854989307792937960578064107618185119895882358351141005867617631783784773215276989765999042153545777677819473263963587002877147931950397850061657054714188083127613540268601233359936605395001550137193937736624761682323311739380745829808032728221890669198685037688599653083435337239812555327157122979373094377498466037047243231863906716365297216597828692573161426421239998893364642692312269859444298556283049758747910632209254451706884418578610691889199780699940524239200007004064292693119078680195865133545578474594178475211012141145375386636171975518590555330782782696320691045943043573678247731823550324985702556175196440118113836718705898852734653443242665028995152653773150694832517963316544966298867614287260623349908251949323295915712372834603172513563072080086658088559853444024602515814025813722018909023365212792260746479283144050909309334618320220595257273827288683364179524391660790996129607516939684787993709446528137437844219673301980149001743079709373710453852166064331930405968200571611175902269442484742578308437446248885479415283468971472728247806759807547182869398052308240863456842094044067660441060153863247401093121280980328001111296017929509928772474207228209933002389380137213466466209532407594736630892243902430080128081997584049693999135851923637819833166067188325759042334705996538464837732617610918538025272702057823618644218595469131892042540698052639299583526088049731749479093725852972580919657762920302854866373803354983174448505551150807708734999777148246188179015167097345265418481547139069349594845874201914926872296473030483947213786613182056198726827588745548739972436209427183582624878976678671380876182123648999789790749118665563802100938576518454415443060075908440577760045345293125594316924128764754178011658916180936459262255258757614266353915212652603801235458523809106438229444255660729541832891725923932554037313409525871730188920228582616928587640903314420945424940805528075371285538299849358845063861692147237417552556316657105060215340912139826067746441050646395910767627711434414226167523811547704683602491266868516118147599137601217576320103427872763775936806292352578930838860412183884027086842813260802069955032722903587053136553391761605416211156764236492907401980794355417609047000384347702551384046405263381004294167514602057740068998837800344470163560336601625244345889815017598213266969424654778344071574397927694689112550743494778564076740399071453580603545188816760763521660991165098969099137915885808173713002281401812253046275916944114256224735138027374582463521358301443532615785518737923211508784592406800534668176324823486732276651156732729313974388352932791558381603166874444264821882301844244855433589757819549166198528843204814051809360942256694933342273664492907443362344001532844353220730472060236141416931587656025698392603285776404881460229559493681622298320986617884437603560391818803268438245455147578619366170183509494497142654368879124703950005363280776910190955219886100244546873525598587076955656479776016651058540716338269965892222110926792647957385612692770142262564664036502810039390744548341692679541224930456553827287505825147904850441283096948063715489121374420477075984005459012625175706116394314849734392967247380850244428564967775296687233292375148982648430428806478107665181421885736228810895721470157342806946989022891225363316005547407411773848237589947378445048350692315857561557321087975577044066743720930759051029941423071711736845877288348297933712461965393606250463412363854763099759685116749895134776877964959037726908542518541199984846068774137599322040952541992928795046780676659605166292014654449957111121338724544095353915220728393273909655899647343632412715612883355088073196314611920898165546800548714365135935218477158698810955311197460065968058113002194193936623590884884527517079194790198564375724605645629285410299329543743815468355717352577381498968763404951691610145755031399020153194524705722709805171859317878734384616949170121673628990751267154974868613678490125681712147413799223048360138447508741366144833514408423430064924150686230393019585430185284155510336435939778533323990785250159890094320807500393602147457799138867312747514783307509894792873150944513959871262356106314790558650850345115530502357164187033291961014642465937129350202957688102399973324805562143514368855060594436957138189990683472050691377759144830029927180251437802292840244041042856219210396338681222824108337866565321561526386344278538074488684992330738783619306319368675975731415630373559830049405557274369849758032978112771144652283557131961276584687820208015350473173586376124793980082862554037195003217583496857660188803051421002427316961244867081559284677702753895440193683673306060100040337438148475249823724968204768743558873498677349411469300183242076485417928923745382045513486217100498829517908083184118677170735477267175265025431160314378744751455934836543209780500270443671752662744156829770944287292343257771513125237713890347991271452444734312547211436113819658054562272109060753880715323359421893876200581555336231874514289941621459321445843848613463919836934067832628728033662771323512633243555036713593621201770848285696656899231701824579974261663258203461192486889424272699596428506739006477217012313005840843532797958017238771072608759925388280867315105392680608568106605546556147643184481652931327383876453936759584969643629568374750760717522922317918483742118673724624375530610816815448072635380869379217059964820921129682299328872276682898301267032899881754208115646487880649610571955369628806174048644288126445534101276887901147938243501498149441967151645327734809342649407699863896292196003239256733294194765865313290970705558825438145486883081929589072105987471766611885943121986425219616327979070974743984416468755667425758188269841622108038314635924536407851110316840457906785921228351629622574985480640113627421031803296638528891144622186514291053202237222906808048712771814879587421207767654026108445652189516497936640970467459803768642896195221651214576663052418688560692885556072348760699311869029546249763611049814183653149738075377550939745141624843968028050474075581916060600330620581718120863053467383454669240342327023568841556504364914293159717938708416278763972156236254197506360915679101750656900729171817854792998005563779658364916120175881011848986847071485237348291670719681380685654253757518160940323057817360319325673137538114506487690183150724333042996895875082575597764827210325702835822061327818053557456117421278496679248792197818754852225148653989298003161015198046700124756870097461016348362032376663109302697909763493928436784087986448590353320158742606402334335968997765265438440245424859902898514550553022953117767041632160870867111839667646145989365131340151606789330461066708261614246669564765500000789360876691879842773135650602287980731733432317917576351425779294050746904069461464056586312285661694155641415378030851453805955287368051263315366517611179268118060825212106842204448049313669201545781177706822411879126419486974478551448010029408984775801236906040731996449299157203746596171183556297353764248296430001345076885552957410206647233335328795103138831502121596673799556122389542667924304785529100184582436184084938794776917980658343897461514971245156943648583517671857480754343715688129394831888167290345997522927345569610659387389390162585765611822248659151445881164801096541602725923991701841746454095730427769318850952357076712993041206276982808955065310793604949730495821024510346179469682332289018246992968703621224722705910551248254302467618805781765168804445561524564196046182221956110840236700194370805525954650613651250709154137592895094386584659896978338474199564937787887642263587192688379347770189579246065709680319962948020488830371435740497827175387323482336125079215922119521976910204254850995813345610380809740507273925400012300354135084102054630454273510366584078717188696697221177290732100054688312409955226424005619906406665396740985421792459327757570016861385740206777358847926146151966749058249062319041101810678599390598593127695519996768022318936343109780600158485564614611246444041427785536797196412768888813301270949203035877382661820170886013939781549746208035705134087279172576428219541638649029842424701083020941800976623706373106546226380756911548547054000661380265150622557837737008896986352593654952833362087550203803466166970460833261866109543146251770390980628947270979414372825645875594636229145430106039093131168477963746770199302745676552787629050680621498615656410085118187540864547038012075411965155424356157366670354692147599829434839678801161290802493531691797571390639232594048302418438916844808947950345811429378302133418055896189881720295221748527164327558525551865109989881169518785935861439387791462430579220910663787111059413292713446666940482544814420858705356932098350378616037326859784974167171376683198067212531803564949497647205019864800551706547222746072953377161887070162245423280882366859275204013658971279370702154318421872520914794624252465853878160043071361535778879421589527237157510729071227206737915354358028851354967391611259411742971205553273130776753001186374302341932215383000599944620402857178062790609345506267110791385966663524462517765017700907515839855543489797313748522271893148681744072679450220533611236633038776118893592825119164467220323439016610600315633162105123257798342369384640578411033003835385997805661535537088209062780873295436539604580928657879316068595738078128653342930312257406184087911266846468312577310480274658968834833473531761511760034767116469329544151859925656525262117973771697179287677561319061489193121088695158522654009806003778897989955947941298993424532732134854745035341720780322506709079418957622266094199722872593406220010123153091825323563426855730581560071062983719482257111780740369705520488897409455926726088740218946650731086662627880816662078784472188819675275230501548125016837136838589719634436948966762656376182189688545728669140957236570977193403729109361344363535866424245305685449533517328204838649422076047079278194682449870066773181019606949697174675850541608999007355038362341278463743632482725062919495011864949379728201818291035865215060408181392280491319068802457601896653197538190379875208078166260282242500666371409785921561046850778651811509098816815564993027586958337892227314945809807903906877952780273127603344581453094216069277889282890380256921299215764180878716847193786000635984287881215182974243450429212770759865913396083978476867142924961915397467733567215659686598201211791460000220867717605304689450724224141099768340175575198622690201140025673487878843896568565927645229927636798081619739553201971957089959332213955411391851827108153731566704981644408993362838255599797519735777549880259525085106160607082163276888688625012653016942062543058740812692899346747468836465649029256521042734804156767402203667774231816806875843179992264936050810110531722678242719713207374033652295062718670960550179683192102301806058944734650040462210005058113368913521522085789840472270550441049021092003679318507089381168952461502113891187472454300408151067223883090128800838929924770440719345462860191689781352423211484139826946183135583959087598768821926494822104453368254247601489313957493129541491821763731275081763729328686290648490976221099144882056529057896712995299150551472458577034887579453042736683636559405481602583759311510432536867149527521360186772653882632289002708457017048747030062710654203528305492401611471389953433835538846642651108119694640276112917076674018026956911817634061273602992813025569019916032587003437382333668157809788357623454349137725494327700776609901127824782809077819996619314496216041952163785496410933631598846152940855301977081725833375303527145755407249327384196329269432441187414995307857013098991584428396682404808464407141362472528273305449333418217322851706857096900737379055696158348121985986913955380161522840965908028382709131296523931786507112627930406656546215476037726290692110712861111309212364769947677196687847059390523595425420613714055936428121834291602125944395124435242669376035966086494130759957658135016002860005573932324018407401618205439924235420493185416944860165651302426398035185081023498724245616240679188482674329002635642789024358403078079715942673635898780488275329211742624957212984848535621263914648644292280822348062940241445127706175225993030844103318816469102776289818791668442223852449555653127461178231350972362393522839247337986617889597903652879487544355521713959954193973342179891549367571387540928302564285516565663526633063859389715921517592276713717839404191902009649290074703195728790311397633447528911316790024759387428363604211272331012814756646072143890546235376751003938802438884161273093729473901963829536683123060778943522092731553903376833347331336400243876916779954241733800291256912681044824151752363541778275888643008969828005237659676525793792487843342803378344284477109958859119326523139092855587153830297369742014078011848145770616163534010112713217775522940800916937477991413775155392782833796409507500144860309911640804004443956397762942918584300322983348486482594013373789125781017884367053620737485342485805395273096607408313944099385810702823740651017364501492985249485281307973253265665521158667891331303388779263534753256995495548980936220371854875078176514623275124182150510390731518236827055426695590973596482837495573501697730522808356241817967464308766268077794845299409117418798246605729108500176800880088266737910099620273500772200323925949527611042313812089848517592569969336380003624530593619079526291605412793265839497007685494467782427181478427853504193339156671565049380471082681420364419641105053266001343825351043032520818782191125890315812186195091801237840525912140834469994348227945577233313992341277840226394169511587315012465466091869178692874416489292723232178310814537873149650172188817755431167689292293584804725487487999163303106463787043830791664831241212777034657900014861265147531057210553550882623435132242975589300451533261223844017272819679059781418736549717894200207188387584297467944950995685745363247683554979897436297569970420394816602457962897585637051872209623393878186393755163125131156410965811910105591415674529945930122099019506324805812373501073921039623947684438321475269011657962411776142261012519701038156009617410173078141893866986488218053378541342096953717647825545478303009568839951569595781069006771769482555832804826788611760941474471655017854105352478510825492433702454935761399103888217785706870154838128634479989325362446730578448817864854137697486120613173318189193391989849463020908096288982178004517413057945534509166727707912030224393215012507499061332567871331478894991340787727185897499013595538270895189105539394967153295463304320039979041471543207872653626952453960972780973205320331549085100291332376668305496252666139174228267799566034144471569642848616195488261339525120071788028761604456373936732852827125871966359644962968458142552167820777314270331028839957898616545485814381734743527446094071336025083877305972238325652514131393447997830891461649635822417087392800506701146492511278534297468480293556587523939792773658289499543302902525779858889378770695663303748369165369322397550431340866284856238846578028886325608229979545932120773913272774615262142144494978240074519694192617643856406949742195404696863894075032638920933818117284066058393686603460989790471470049277670103876284384201277209560619458652028169428013857568611081318440204792110798585425441976758402665579753810315787022411946325218832128979480948032809275179535048977883758514245682080634075408826124096789456790736500526512198118521794073065130366691128232659908218358316551254221315442649495621815858519151564943238347148517296547921580262976052114518123591569807456493676092861031744723252752370255470745547612215459448753312359643267930613558884160898640439282011727492821154916388776787279716570722902062506940166071903580874347327397576094743132231180037280387307136203756206061012159277331707505966182054075138439406977881306070137317641972091663427210081353347780761260879343373137123340447058372257906326753879015192430539867341224169369805423164494154863840762566871176985311478967760566926405079460225926393819930119729925875091798844565906732787949451997661556536373690191895395456987572440737295703946675394462923652555267593500325986225688484196028481405478281384804003922476834262906420957317957774404199521086390958143351357286731973034281120425364637448714596250084527601153419473750134670727842954320326323141568092172248932874938262448721659140551193461681925206227682625760110313659974403590189956966262447127807484168965369914657550853546921009221293620959540365536957921322908134473913399530342987207904565553020024712976940297193313068355292036192097449266495389015138598788012671992455605982582495275546593780274285214460787742202443061620146963911392775997615818918301338019857433097540663330162834307114426690353201642110742207083014387173167278093665370290346033972479929221413287841956584561266904457722434068587834407677667075870144796055803231432225335426839098024222457336549941117753956392216059325394519441677879600457175783455748241106346373165087748336782136092979615276262220023760819133354227738161513122171186193411356187900837085879406762745972554127612252248508243789706869549849236805879631820199066182616365693514102403780373093398841212234133997710675790551280627630839739622591964800039689758720448579627673444684234900419273497407264107468308400372304050949001398190883869932455202589986505790828168839826640388277306865326589901269365089936836722655758344504049225542432713454625040303747904790238617068232784161321149381293317143731375479523751370778005123528140431399436478164487501375644175903059999087197348735556087298720964045988991738582122573284553237709953478346075419403954207375051548345286025296762075516850938575818491506303012232491737654369584121874963399069945273088033713745445102404605888302124242379050879893319221778997467262515463658671071059902652024656983034635901164183020119071203078145078679106560886249118937503298659608948562674499396536400815988163403735710583656768258278817124698669309098955585164267187004616031840249062750657586138875220921642333104313833270189622044801835532164943187033986267614310788494543095686315979989194625600842601613377895766553178352124810407275437366403096982628020852898105088295313969635079209621284846046342235004147705556647473980512120712896108027304376838114297402639077156778381199958058973431088099818598167208753976117549430335427585805507043299629422772195618183669577157080605981069053514326619608821813690494518930991689524502172461127203328995955846194851666330877498100813719838736549111173893327296072249995510483792479117186491979746763190768611251476540273042021452738023174371707698358350519298134640083096392720003177970460671700860434452423427814716484491315851159829702351164955564904485166109660836421206642065656945223096320773507552564834067574804137369158611960575892136624961199470941252374273057207227053615105445371773255269143057064952181912180525917639807111429640969796280261809277699095802324286517700267592976485031648131272130690666455090631755010340731409345593239094012606491806595039071931940747872431534492780660713049301843967917910959801215636319039284210970486371921316336058600890877853963055922300776045010088320933467373523436260445640202014077022023130244330572752707073120731444011156511334838710157626288776334151859451784145780713781860014494957608337158094572919664699792702741559552217450221033340455454501471016483237772669890496679084113982374504200093363330931232453204447359781895763246074248718388155789211338146579840327618121635100520897862261315009664792919802577668567405912622163178001591628015642456260950965249532188657575881993355152081768822362176056199376388420144510347937583997904063150812290876107378153116033773357020019838075990057822838992061534209356299870618617196926450277580083697599424122119446993258762304205547419630639182568284638386529057645122448351137717287252705735441671249482435757054791582626279405776188505922109326960746444381954845764438305026388377540759348651768293691521595838363880954341946865296031958619217705434860482698980896312958015354455587739511326975760884833244849895198633672682582963367884451683867114179802670401939844115457758074604860732029886125496917455199340459713590185011483608872408966694560424943816758383589337495060783069513661350582994826062852034814450465289669074611092698065378407888338699609871231145058100867593210163827395703526444632299671180826919149202937613665561716442619340731512580933676727881127983237258941767885116214256792716246642464621317070792643022940522372660216095970008477031786086827015000940393314244232146078729954142874464447207458355636064768547703113127700447045231233912067596473679173493479180248773661404177154640479132267982641380971248392148357193290487721282331133996955679943449700332733896107985834745585240537684878913982849783278501125035895440564218935405215511805111842451201918414958197667115671425059850113497159984860580721251452794494408589056321060715847763066595954873397385814954245651376316521921973468454372918939179542617128561612874991507451053714809306673056934921422697631778665945911616484916945725796644445940584087426535104766116155309214111656839094527150878318482860434990282382382132587870595524751966295186836722017657867963779392418232426236358858718329437270609218671497365230222046933105012786232701332432983828647438572502889898006720121692606512564791262318741283588925232693829473291070706863150391852382972197353415438793085119221022934273803888811222129620839958236330393596548579484257545771537815757863011783655279896593969834574530683506051547871989553655599961375838041747956511774973149103641594886832821537454781449222201037637430179664136685822917502965561883957532897891712763934709707115180311081408708932832096400356056921708142861982824289647524593872810906360390200690531942772772721535235360636864389026248657354977877150987001896100564381368225086404629295555514697394531878265810705699639926698765928936474614810842775990172186879238248225810298872293853611495534722309362769296108626204764545238225024130911732521659127236853428293965904858050506963821569912223283731901632528436954242273538842181936225345867368002333797448283477691544048409408189487610769967875909209211167411126063950975886221490875098205473749753603720901081282045679285239604298746678573417799844919440359738267023709406544709615616338857067947118115645582185135299524854405789237491417340413846768162833664704331020142756724156600260562656596124335056507701929046982929357301145891383188668280643168830107538023809589670073656307145913440910609537360407785064299870744236772895632503322230403902526748646139702738354388156629622824765403431345434464695197383062777977940780324406548432148476974147733430481852217860240656958402668059355246472298878928882247052482201779823367606732720452486245608997398672578186099319790258355555253662750369582581771112826949964244679774755866892279970917484833567464519508033192173221936067355593743221078637367390923159397715072766962539384437015514478681820302307441567039623444794148521188837056399182868351555316732200723246455351000325696555190200040088570714233523375634134447422943260095762976872387462757034658130736475053494800610094749054950603259581159221369102049893026826169204769012363688600134810103693084223321257728320956622073916213669937726143715927414591976709930365941435202136393251284256328091005034481888807121231060931664478776018693553798746130160718854418432722261969029935092804038752168706610044458335473575856193982548220098517489382519414073167604572090497442593683822354705176342193267078634738572504411611407470790908260741259135293313080493095969498473031503191948994503741561263423283094212712777968345945904416157255174043384447031092474948876596575060062950103977804946768766518545611736166896096632619241822911723823891843326797029772566637602899243048236435582123914659267489931892988806345941659262151256762948900227947794419559069823284413839974890782749045405890850953186052440441522811808770464433385819922969502805467659345211215321275593830105763983891464948325909245812416881090795237060864116560757354633090999721136714066660306092609236154905430271650515854874908873659731430938025580566080434303181425399256237497686856227148544638517105348426584239443759969690645610943574505611492791970719525874020103970941678427711539558067386831686173142375847281859967664913702489455867431478698462585080700453478531816940683901501368452233906240992449763858644219005384662612288293245252464439725808015776001748005061245716356608839400617878409660360802840356780384178818438509202871918062305186461660284580884583203709480523487155973227925049072991001073218015177383331764200829991787860964210332104504303814531624985098827715707977481013822675702966286998644870583388686966323053623531632627126672884242179820234989277049628736300731901615311043385837446611731908175903439202828493105093957980673853132750193109559458986548259372286958092577783560806930209915469372866995808002612277807182547642822600245599836685926545678109119244291224000539329755241451089788160071823714376539625128645209868274814351986303084799951568489520712930577342042426608008909714809566483221802737679581230111561831826409166318378691207637331276827267349709460764056666800845591609608350403237518245818471119732553611939521681791888641814371605455121533813670034545006142844611896816333445978492081794497595641126493855783945635338834158897668634696405339100044081511993149022713173369765899430400375222926087283922416685253536896408737061953593686271287581794127481206883650424730889475547630652254812867912744547617165992521339915103530774652120773587709135482639490839900492672500236580987576532576242679890131390156454901533021318684445375563559509811088246969380507372193483511307744430281216803259190083503727078147920788215635468163729192614496083466517445659478038928646004997328425640579531368472053947845879549698908601326771215622919603965778386383959069170990726316254250829624265521979788856694958728653899295058029533283709579344236234275185792789745775794114118602610636807571387023080086556585680137470800206786727514285866249515025569360643761030240699792756936290467540775802953175660052540062552335827229275501894503436289566860468287144823330762634068213779249137803687963152381953670127781878527499540392721727882954630213039534920121354781802701550555349638082720578515589773303677547976752928618316081094773785265646005187091952167131701477155686811279645098327025571890359861704333054748082721865922030491431915906241531336107077538383745645289319212844256734531720703832154843712739373786645656436389577803091305888028833988733564235985995353253310218207846511525216818824742686407415656085955079607301100124075888315485555656152693635913582188761024526146625933076595160857709892994565439464097997776918445043917166070488793191920005050582045999699839542881256840739966200964549656154682083235554657238827638844953515177754271497839887851557176641449337204197372355274734346955968914092886578555646559095671144150224955810804318033285695463679264497708171110584748037394180836284346432139264585729293236634591258449627074141778352190563803593232867154608124384919077419589516948162055464490260155849330121490219487070292234480203503482727529040203671247158317842027900720285866163233707434700133553849373550363491163600062272859139534645914815147557959172794980090832834000234620345625051942305444377709799339005846626227376572919852800858772787384664659014831423346822638835082680879268300826959686989615486703238225298470017836337881497278635850622822133822005124162504183996528815872617419785022541308642367282620475157154403698296431726985613449555815221412860891995984114592268304019037739637132178171230874927571611163250045130399666345010510146088194346044779153744976917822263990357231832486994022537372356438407509922173793414076071764689163892212793734116514877848640159801274481057772583444515302967736815372038616540480226110686221479853683774585494083093607942807345523056424729204347596371151366493993572581536630156267131406257931984940258769715684386550450536460340121664620742843225861559023984643962821557591694956821951422477454491544211625651556262190746167887901306690966737949050499775030691771809514184364065215951636608602854061081451918066446407434210140226976381556890347678589109324221410998503115256595987219923737683158391380859390806826357813194892991079410663085196033644593271405233815599419044113034139370340431144756055798298663221005828888523784476816514477679967423867404201696875541586273677261638878625214240262413784763495990462876839969622220747436694512425163592360901199702238518264308255793923024050678054730218392310977515989265158523995686721735304424845053865996819699146112155434847913039042466739812963118753917823763644434135161842028709338253610784801724960258155561240458108359671179604329473352358565549966318901997534547193471081089072720177763200828160788668680648501226600230188494687776871987583797368320283221341067338643017060352921332614958495748808224822119542459281390412980488580727212480148432942341625848523989833030813177011419174417059139730594316040622865789684825409846771820284034504111845260340972685153151669516248232036597784560577789799157897805104845505088795614502063336867371111007695098039403846958856400785660991220246996629268138400458178251400068723238762760204197302047112845788947624209606291227071953240469234634474044046248665089268346508509532668738393736135493618661108579591734097946395668038957478424698315412494036438678072532036975723059843532231132831272453526643904856600542986807078740977959012827461294575997987161048214316482557355564751970449026127749359739944064278985015109879205508591926822418776594761946906340246891183420797919311670631583174689260949942736314904417735746409331852193793648751787229532893433080552589490101393221665325601039045844084606210114123270855820827454761029976005395870658937536593756607756510388068470579041787696283522501344611345498634392281370532252818526196900348128825329634005626473057329611208148033152119835513227367568793763506420629557992229036156616048081989102504355842250160836168120310732541987663757349102099836928174356825938139763034954797681922571230302288101479844796056412297804309685931665880953189083563296611733117755336721524245409086483624752554723274907595530672213902487273870707845601192901792969694697072364428362137135496099941131213696692982185738039268457712373477233437295411295843700977208904038302573259283570623815905419778843035165230733871478193667073417794468678543702943089617026459303211911935353879764954688065573251129667257540515282970561345086877936222303665146962154478672559707005305248491798928119811796705921926634902308801958541239182855459340492324482812125914441175081381930754191493605153399111346645068682233949240713072762914012440899203569199882815851451730716217297822839584542065558436648105981499239932654455791755459875198064072998419444130168695270609732229526405564704553453344517153968076798862669429096851336500261377861282957992446351341872978334477193038787195580078939907584310409993272322999852253219085546386633221361724203784659968378482345381944329748275386316076611194923739762115012624063781153617688862151964611197887918640722013831339606615590720020585338683659838173759687347193315309852583917692834371695472810939427141382989849055797298483965038817826902997409449483516367172965660182983366760886638471952749908670998564834540032722404734312077115387719433092679707103069201490426598465283401562510350523874435292081318313866672262057982595682213405296457069050254312853669654761666302061916405050872134002393271971877985735729042656300834120973412292649824331836370143600275330021996953621029715172129871045208620697154857346098331303020818788654008780737969444084236473714283261150552280615249389345469260397128339660976258463353337007709027913625282192611029169772687377490197255896312733045570274566044899042340708840133089589838468381194481161529611138732283015784139234675281104615100181739559458935386933053169329880340370569408749985147513568831288429745846384309087182188009631529556956771421861977095464134851976363889790255821341867863657329266560370171064296698652759875573036514992771918295174330112007514836934985028294995616164462850120063361571932710223723231585390692378304601783618389044021443976346610061555470317351200881442601508449783312413678120716803710698563570050530198456504689338572189330264463093058289933518944595350986548851531771304249880837968500032895224526499093480693862751936072659524902669674524944686611049872663962666702648200990803160880367626914679538654290304535352531119810097696328869277969491169644319500864447378370444024816569659738036464274374248751205737121846445126641261828009215502456801090132390641829330280608363946396903678955373838827878718012998932401425129934817040699910757224947477334220861986910560005872564746791119671958677488618173507432692978167552404490164097618094842556231126727600051428041842970504577924955101168990371458522877429747279903508247705149931696852382103103859026051896992793461246529974507791832722857889911874056767106731392002264182236143863505103190808164884607813624187410049194593523166556296358257282118186520691551798985458011049175976511826770846490798838159785709623791582022264776733443431382778655067459392219640745088775024968763060031271096921320330992194554873136377924585457994510318378598594363374227736970752325496853965824581874903251359515930397227344285193778359100531634853601577060884082528962057705580119230421561599722195916678813233179935993692890076054290698066641994390524355565158154288210904389315974439228957723520836128883504374246675042405005127334153035221916504452626908286347722529473310816106203277892194376603162596333646343065183338186693278645426625475791456319317170858833686713962016989177464079856852058907286572826961779288272022011792665962899785550203863575025164545468824704660557854988622461815397499993443042197177857816108358786745273144217846835934162646372600177421147277602403377054406398260564623203577306324758821724313390302175560598502258194613402635981665466644669464271103764022800178557295415940830806007733181687838078524516376009564377321877938963637114445185608238986468635709570659556751047038428560865495531341190928344982867773406899409770285754361178849908805189658083661518029154223487631265658010088584746325298186225898709379134785968318450535190157900200103892477214607828273988853138078955277996085500300568606470856659212365683306828219915552967325573625182460480614323804805002228850501711076854895891535125867183875114172062869917394510179092344039167326246162142260996928363847601623666493437364075518609355232482320617730043171575987891252921651353370788436720939007027014400773903696963946286021911574586817670976792086685288554988472629575031220576803626706071849214446600312130864248461455439472303350991119296953402432693297220883767762819561092615427280836726859579168566467043516743236395837796119898622696092735831831649459010107131951655471390223330689547826561796601914983629076044820571792757070975975364540433274541478537465746493881103190732425251671509046306605403565971850385897618690720402239958441990016227538700734399719965830568117106634115626551227417621666011548960454597669752094321852274390081979959015795604140520150402446580684564837776701908147058321149745395395803119946374959114319483443065614603064342866467025315411488886113756189016215559137329018137332359323142821739667537320011072813188533229591835292747097314969653721777928358825381068090832184508762770070021690861616653049642705809579184347280416126143758609506192181415749279329619294692466527251472983504552642710182531363427485459771953088351953576820701596652480652948700424256617930995985977508733889577597921274402176977213455188853808847441644308314692053067152101422544897885474454661631266948874364928987016262054004791020453808067133749406004937034409684667631353470684064210491525243001995134678591909979135375825496764862017669693039418253059599234639014408203773178089912793349783146127350657344093637775043502101453573457951396923258471316138383072403239211468185392521318916135666497437618478252702858582987239463870526377629817120711628286722010221232113792098484159567805162957504078274255870765176680298263792660955776819824330214669402948058645823057797125059581376842859149246372348805344390211444873604936591108141972139849611825218722141793914116376238623735650360627535251687958948639601222997753794877353319181162308718350591245788284778377390236230948921773858368180722764587554779731097007467421556864193793171868336965666351273215622990986192529361237474130054687397225801272813590320968627177159504257919815084066211028009901488542087746366107463518237702034859649031900709800227076281657618754300310779968526748130898234846509945350155994953989529988151248345888898740187575864425641597281315103634447429475237711382090975628559761644161921241116035195929852847543147516699769941551068051575314418409790375325740364959424836006814977250237683910351792277936226738713028617272466804405967594863151009703913038264239362279408930450283717171355897161765178916072658205536071348782367928543808347399705440092808522492726607699664392840461281813591144982480014777981135688910153907521070199784536337913655833419760308925826148779755576816572680261740012578486616588567135918949773345276053252764522273431801736553906196748192748458392610468680258688685373895212470192122514297415867483610084305881656103767331419760921294271736218880783716578604515872959498629414970678971372938064640829332863988689294613678460512184449259154578747436014056790081487344458408585356805759395877738557446979338757394037843866565169860719007855442850234281165752157002291538236340971473923650799017015375541011653433870111699556396225528754565766588675284880389103611590646963068482210904929045156360230984386159420669496245413398053640202895366632076089872755077061971246652259846666901530308747197581414145454488835887090772581921706577378098585600149929259135687038929366863701012225735024578180179091675282104476376026129353179905848215159285537189206677252500919772969294871418902304674585351700257388022482272133332678274533431841106661870551263806506957980310412628084531421056218724398891388205679444976984426316335403957503427888961917876081891689881463027343892490352014358761024267186423562651914747381212542990513317226827464445999102880115077625854593120572674935802788094383938212050959004362345895463021370756309432760761994167964666087869595032617947061220944680560118520313910412250707022424992534843579385727190897845993074957643305769171256474952262504491827875833542895520586776064768576751854142906644524209159876409952083299654716756336169189911051473641000666870107535613595817849263265109725602139220593794861190320331825626926903859046071326186647559493760385005100276704410833445607604940776643152961101740391681177530668454646159099079265501633905423406411476223866470579558004621373796838251274417529293649612169184406075985223384157877440524836548322943430269190778565394011703851672975477658843609869349792709509197528586240550097177510810059865595886582593370125651244791803189089497327735372245817982300724421819651132730780191613534483245376118761922242083116773618122637646651121042814110291382125573410175976009134640327796477301246486673442061448872782232282272736343571861569670733938458523130474180048257223468818592953835141881272956837393872526231779725472469422675185228114573351482677464854754937287235208815228181584611001521643246664260492295348073513420703771056494346298670266548318092116631000399665322699778199376365313142304948648050879605595009505655662596345298685970018197265311679224216255007125826764434433778076563626980304499607345404250531078651014214518448166700631580108708815712669952695830048293489506895526148724836725162935884274852927732867607368810990643523148032364588888840354990636008380576471937208816001449621185969626851462030461239798215714176722980736488074392119849823095191582122850735396694296520336476612103743166712574882015749705761369374895480458288191495414449685968007829414146335616935436701699942306407802291910621602505951441399367208846566791961189044149025083615186839538080142450277952653047331437884852434938223676378620407827414654106238616368920186256429712565126493799571557352958573590520964484441098467363597721968387316001854457655456487282305593498730340560325026626890163435954377043351084500967534282030926983292110340827361988007817203437628804145795008754075949168029327843147664354312296778488703004366674076444882683471041471808630072345655441459692113834362546845924352000542994220155166308985265278356295921772865692899286394725098601419601343684239759721613515775241959726825568431775584615473779905766656012842065057032308399115690229552222627096317259851198983087695763886433451951778317312865694635461661198539602553492833843021343338242128900619041372625391143013100574978753584341711494828943054988453240100478515461254276423820634761653009970532923851309468988406953746699004160877985805530345971285318291149841075321465243922066469789601679641311419102137049748108472703129913910517929202975147505899168518626440393026089773862362027447034430517254890800975918603088773333925794500109387627358532023884422408500063090212795466113697282058324461695822462037106577986914031871451774758812474718931215455077827954439968333145086711919536850975503401450891183985549061099315063018408079975285506804005512080748414239358651018522468032438271352361661520437196496048827107594110072923156851834174098572509277795507857808356248152468166901677025884913137294385808409801740529778539486911880812025092299551940971505938278571735672748787870666372346633782101964938416248559965083514244356245165660561184970989731256503246096916626520784068140962495096454857112854674340350132925933692232313082155101599895315069315761184853819957081921377360594655804989238333191743387894960053764617598671620845871226929373042441124160925308150220882580133687026262596147825741698728738153418213671434420651443020268125686423703404894213677179990717941073384449469989728182469578946135290078316963197491157001404322094906688322163640348344285193958525917692645800795819099045788947439829335636416975934175650882542331194414282524951643272373352853897055524929449473432864414834789165507693895473696657024158998926434916973844000459558304004295826825410157315123387449228347201739216356856092555176355678217639153334330523156285703618688136650596236411838032888205752180021046953032865534356212260324745946901782196211208369202425505473137892118918170610481980705236190189475520864404801799332797104331955232873171657379887729210762148008381614414614013594625207766286116861908383361681924264765614260500209309125647204911755029244713185680235785622531933478747064348290974916117280489030490192191118570581298438394480370498951984982777900548907295507006206217340741809315747241113567884373256194013379787968674738740128066370653491811792142891585031988280566498751637734408700026933956576867842203516984039301655885838865273260155834917431275522260112018275727891719017345884848884140393664663751676864897404416295489109024231813725984790141387088824549184226570435962317841382025564369899390934987468700050841273194328762195863803631541768696696913323413925977741943585487871441922353364097972990995672076376958843302782222270403875984323011614892561501651648416767946534905703142939756214617961275711341362940608399495957210713971663003139767892608312757225867023145787011124287959949937040187584823062952864659013964436784905881591148474557935209261666325396333466879934610970612705658264647759228485617733410198983173051793186753840531782501716371029252381906471926082044072187007118497683814303299684085253628464805211491940219391347835835318010375250318379611367652993821094605658177389609861995883631048644914526628772052390539854720485858201995304349714914837499274193630174411955449658837858315094039068457820818501903065962209992154148657636230323736295349776433226231201069241752059143260427459077432003067451776481230112215985589630604815036169183087422968754425345382929780195698145114790154391776147336524218403816067564311484645176219424888820264656593469513963138404723617208664792614640943145872663417699223189886900645119599676180044211575605593979736048547671030717398761066369737406873065192947640116462390229781492587575510566087020403557533872141834027078290655169015939735375703159723702405261964510603528530261497725123680137717297271627644494555352655441577474147349558079167840044875681757261615501892387120060353633900014209311768010161029301199824089414057087492127854876115607380010277806628307380452739731999844354168999883761342621232000879791122378697016802551587356069008142005315906479836072650538820595380079780676878260500226779866371986432901900514124343689460909556135421808117114465745562195696162447213604963687538118720055191493674940832383474635512862484860954299860701789000314113842925105091951719433006476052412990017233787996258970201369112313019937587791489366090169224692538351829028631707473621225548042904082093224238927484652274864535246639661660390585943899864302659654775762232270562782550167438104831381698389959141965878557551856999974737591186104489340419592383221167176102553538712802922420943986482489459219461213693850353534399005644674704251574851450050121998772189152489972639655968882807357588879744815686653692428035988362018290581612871551254253811041141333684489624088211295726838993656317718781495222056473620485431159171073329762865082922653843267902157851972099509257303812494816340588266617707537677347055590369051827168759480776203160314388697503125480756322843459997419302178000764908636883895928892950449388872054283639697973872624402341013194571216779175891440965881435629223021755059476747075000594287532658085447407384157954442302379958848353168988308517270421232345106297066543774001544498671018322156455587499788078067770000074004258823378020703409808575051119107148443044802015237181337960870265241743019398956108621649426053203600739516243462467882859384101342503524586170256120081124577562612841687253002396945136083193832553484046627877641179988904413157312401237045377537607969001747738332879439622201786400788773976402212752794168053646224664373687384811493972000471978459305991950394381799068126448349594332575867269526248813314809270512953032187381024903890133539976429462795903513053685819835733106563533477386497192334857358664771525727208746905214393160155940574686245974665991274356048935545792023877668609287816740198475033139479571710548522166620762259988805568106279143405815064397400745652415635841107315598189347658045851127379182645166490968038378878327796035422713468614582457886338805620787365937057449672906943590803133280787251806768413109719112903992788710830798868778402209188242328033681931431881828384956818108128722832565296353492890916731522913238874346534860125537494949866737504982019904520133534327557866829691687362066880942379183343469709796921847683775745609035288321362663424459545880272408202191288971529890563714715873448272950695591326283128742689969267637707485407454288061082409098166969360094778440470364924105486181243261796685887683537432340279732364779611046775362234822243815132044378374856236851494365751397377275900200563477219632847681036455412811895003762781273388370796443675658267886788946836352679075317642398355303887474274781762092635675570973895777429860485430201645487851696492497146380191704669305728057984778114493023151144340377958007182983420863487449935677855082190608127275781621454266209832126510089211683574023305065696949144951614533182804226688259849160265066902046093920380082936688775480107707287938457234521442639472889369506092507421156608386591899682749842297305078318892753378775355571160180806292273317747489843256189991346406703322095576816260727085342421957999046930634981772648809928497780045040236934797522987324635352546759432812908558419741693039768797580012237849594531859846846482828857113285894323987763280171330036210406155402413310931611624935128314707512443356803872672621607495905401586951397731770571116428002642335497369271534070249714539704136365730814587534155743722562469899222289339126613515149318519908232282727336178132510354219771963140665322412214370016614015872351131941805908199311372427773900700449176048725676666849576010878633147186086762452254025526678126452163811162992246219680608560691603119531906742473211091727448772772560468563615186876224564146416824599124322473711192500152860951800456615438914146007537963419616871809941731385102170618716263712893313730369229653902484930024607559364776621158576982602051119200557278943798314250719815313725278176728220375849884769079790259429566968178709811393280547755728127958426916671625021044032364169491236443425382148186011256481873817788526995015058114343673326932687683577710693388078219725665160273396252283288374755190277777204451382546355707517045699924649457499301930101766813538800313110439467179079556458008650274385190597565319708048505032526138545442747418244946756362868477688017091013807738665104212953095303658390206536646644504819156363287600306931602456163164177055686242239011252552423439342738155975528783236218268841867117188721394677994392773785625563854248177749830404516012246010942951123552228577066582684566421140644809657463240083573351086460829508602635163568963464494909657904988799589655424819169376531297936299099534189515176579824830865681008768654761555621900026189565804659141374496687602364001874148449459599208872069703350935117071166085865392853513343543714676160629371705113378704185118083475411292270926345122788600798507535559833805967894665685146980025024336618798572549786981583279735783912751588244254441435643589751900649200283709929796674963938682280730606804430202027465911774178286889374390802015120825026792157892478024810472321811880159299141995194087915476028700656979330032504352999583880617816634421626294375140624526659627244515297584122294229169192022331906590573096458915028055519503319608386538748749976709576793758778144815136019820573252381969363184056176067474566060157522570819756806553440620698954137823439338541977299257910136127954662991735373488548426470326716562632687722312168351662256416432736477261752531804995802977414938589649440805844559547022445571300615653484543336424470321433465091524387383758070432635357576198552266914855184826287783343164727040262551025207648915035835333724337916575458743012724059558361040516024837657865648818425240094395019993540366648561681066767700946002148738431263919136484400958665194185528029413185252224289028678224671183670711998600152704225374084260854462788492563054709071908143089470651152939066864556722003987190778996561885180002908675690173969992548320618063630928616787767443891846235480558363750791378026242334670317214989990698032985170650000366600214574486306164201555231328454354090745782456509317182427225593392505808111548077165383486336041102429779549194334215953264863389427377067112946326687811825869849027168466926826167438731074955359850723203345991682483023784304174322858173242334351037469151012297853036479731333781387927161713803311489110837221095601845129260155048754113733212820017832660422988518820261171545755288201879844938362085462079768109331995463989340763136462902359441048638465856634893587570021391891687330054515612297049595759364585297063528068749642186206895879047317218927409553206084135879209190031869132534825367884822773324547643295857761742023534064215681199131807627580902915452221772023241098858858571367769270527520373970652456413914510296100754998695765730187413318952947064141224489490590075083868198135217131182896131446500149925836893099502758961831131730666732033827173536377050283631130563650493998070239083626774156494274712673626307757142895508270960757822464096548532550314984035837755437429281965625535252750992313206738942680836463630309521518496408468642394590595765576370443047705197071911814410391718526909524586066988048368138740999747410666277177855183045267437095882779111062816213692781755040622188912021148479642156168243686389806236002831997611453847319609304327220180890041561051237891231011630397580689361331817954515990428856331702836808109833029066789670636346793761855135946640547412352970823883959931156282810571082168824884129849453874221188446574589469320027079101116396828298261966496556453956850868092374639484018683302273463161939637793059233653006359857495930060791282652254640014239619765899843805676216007421236464965121757457372301529820236136918436591948897627261210881156693394747513055118324994632694884255564670181418981354983730069530953309839532283602202962806842863298756346728529526017964381558007893373820534256660361144516911538361956399221244390984575207632803033351753751174473590639896165867222500608242903783144604219292437443534628800204187850310825110439240191207151141527372560589293930820805866994801120189987850748818975315315853804145246346029233990229749271749098351632344017198843843755751175568641577509790687933331620872680603626545375680191997434854496590957235307585352826374597397456815461296367111333601941290153331805698074997977045101161281935839983410637875053881784114723836532341973194881322074453451087031017636833408340156304099776448117246721993611639458642936936135177820805943449095682737964929634175136268357672411502078062692469612054263587636854101031755219673604603682860965190069111783997849076483193164691758441248637993947425406929197270732686273664024353158542219887429385538514730131685752056368592994920705507422971755181037420177848053976014873555774804047574658433378111081541491168322479686785373973107329988776685971132650001338243392001400504604689578815000329668791888476808852597207137095629477597914963039681985595781051097024891525599868075914749075378249473328720301737653092447794743161594336452922430013690310254469175471782692257253371809323606914116267686515254783654242493758552642265544575101547084546464047412366453423206301691837551608891827667736848820004440549739848224921707164948291179297486870588786801469224160362273628351142551664482066097238192070798959123598527045753308397197210735577633647707751104727741531913679333504867104289621188166213370883181816999283789791823490798756643112405781226400295130442848788005039329341992557103749986931077592072559473141582485818145548528939968305803344051281643424214475690376595399422247069594041238785200530020985485438608019272583302576059540842682891984855302069568718374965790838037281131924085192114888346587222496311234655525330212456058097002981641938189051400676808877272215460144385956170542162430655741532170449533024428511822024735183612015505118684443265054154586259341869057439561357235052872357499227046794756172181293031039011407399676824390021404444976142799346474441441143166603100946976433836918496609573789071742936597391205539777529565789958740669940411238705237069995402703298413398673611883093064435725750552596273646528879646664400371805147762098244112646685242113342154260629485115319770236397247317162479265414479791079512502755618735635305924624516722171013988644935348042576771830728032621723443455639516776549218338398030310886795149958963603239604618671012631915071156746881473165703193809154972256833839726096737938436299985305718060449504555738638658324648498977506328036757400197231182867309285733061399688288758418665248524119919651082520672835253841122744314037894819922547746974580199938279765915837298895432816117092163126690727950771347010364179302251705802286076086149588642084741175858215829841595304706890829930421924890344483662380050572529146948434057609971320294647579825738998721421647644827965496897360477201942281873660528350519064634569019744568287138812750507290495730600831882600297178728859431819343026077774842083072785997423338967234237818655703386759275456996710255866278368425982274768601020062695353253663512718837315458430074498334218230210970774611808570747776100637257078741456973002188677728769230273269252201641504472880317956671533425945687986891184835254384924329353674443768804118108195736415248185314891818972822142961395029743089381674031627085326443338574089176485172983899068662198509220877781133222158641974699611291484167562059811803337710594055051599082999001213640961423726238386920250351256093787077382865539967988306004097555875823573530605670917125899824664963016025018191065337225234350381707226123879227593986380115625490666627876467864217367869223400647880304815182449890142769577659271110752697234938482303944368902440535515143741219373128393150102498965831258049979087980362010885773423196057961111671791034012086458265494682571103898867626787763965474327797799628997662641048662093867297876779167316286743930721165107982328427178240982771089029124480206634831448372895235690978748310460649661980413617301236707716515281878852710739623655486032749066682201808684123200307033850140352189120316717113274728966923059259555539122107995178777689821823617188579598441332031502334714619303202230281107047007762346589058568846707155768270222023033106056042499267571896012847754712080131498948683214838705722995363854490100294139280691534074095407933105975244141913206453630774653362538496818218238499256130160071007377216825206263641553718510509235962536203011706194139529101582341503520980330051832164859305946050429687067062709808517140999287390743747472107593032996648015127625632387237895328234759264052814578762642910879430524492951157559903769541758629904370748602250232364652714888486659746864132664846831818102621898601367751703501959456088862535174411261564994018341059303647229881045546162071385479082095919062822722864565917812287025514000563499830710767930272383323835692416644388619969263114525181659742354288224014361522328926608485709556472142701307130287040536746866672146202019498752124144933930973743354002497768237306412449470922321398450322415786484776170811300389889702408550314210751446421180675688297227418469519465658957349863438933996041139339144107418992377864176421610172896389064463336937390177542130054186835795479192336710549311860358039562498958791031797796923676553612252731636921948654100771972513207639905634201244102240971515909582626649765438542731067731968960736838670928446518634260436042476793901866878569029925184841041103148401812317320261342344586930419537428089430329531210723685882425776927490592431227288583126282525260514603679787258964033092055441910830295684204663265049182698138766219368883345613997552247600212427838162253663040696063356230270832944024951173717058672667888343468717047517013431988476225096170676073427438288366008927221888510167465123781112146573283849608384506454640782709989669185232555349746378802646093401341721368880943671491618948930248251086733188621182962046942561995928013514581345890258964706166856412763247366123203775774193160168567017796376258447112633627984138651961046213137141298240923610584233851589428896017485653674967534360758932436816549440104292029825242145273685780150626194882335247830774844438000602081174381488598010676730375224321877307810157127268329993252706424593677645936160350070981201758995765966509654337422060157810818165167688948274204432191486226425071830638881291964971959043829865594262270014335241774743452518902905919618183287203735032955899109482372966954293948105111930449900932578217737275503963543582412327645909030013697424398986435337148468591686575991978649576256450784815347310059268892598412609605278023472390026433614347227219840280675944653093784783395933383016919482554027048373900032500485695470635809576789322866166870542413110675692131157356171192036509863140720556989682971074695502602279470775090745769601456261975005163745558607839426566612676797227653966225325224126915703078372871232787599637644736793146523525191402534096934027394948389465632806291784274238033229931534131296626908527452496356780845231041835029297529025736515764116948536406539340771897738743176591568041857187008049244600103983714703214213235305953303173622822887176446428343247119740556951992506725638586792738169162583705577306357064369074097807004559525752411862378493319440201482770674026511797088912512210439687236571568758478447315842351438524141790303444405671757280804201985391399691413354458281391272123690278565727813093947215775877476040539579644384157617446874010427113792504327004921416831264917926698570360018568299186895239763149461832578558701713140594623420010624289594136184211067786520934630498776269374558995715333070230077994418671357029545932029402876806988899660405362847685896757812044762460757432745810268428364909553037502069382864968714079984700823686684358501027938813993748617724566508360988842721523923938642918689020075595183720314122942890735048421422397583449081354306650245923938306883767128372240805484018817344376518161855101452223874115696941978773047044407558243089232037618654770364047589208650463982301933962316898356697641251823838672970387888947468398001842540686150242172110514518274688698395876016377412611015997725971316866879894146137747983398957210049780381402765381042126073740665101339132670897727179377418145193605451823988385094794282613485447964698675716343703814605129001042976092867630868261295116979936111075955533191387315923394117302659667031266829055923279109855389639510437228782846861704888165770268122388302095151013606329586106848415641762696240514893998143073311680929499916730219268638886933575902123298262443432150863070576184155520693567912885474769362003909309905831377820198185231715780775195489944750560094723832787725540751467171835068955215316561155578400748350001358480899042699202709834667997501198304787505272153738042977581879227341245020022854290870951487124623009500887025829211237385847106907087953488255914496239095495777024978082157465309656270458474759749793477974760016419443049956803758311718206212701951414913463808970292037394686722230537831568140212577606138782097273202234834658428747526725193609195654086323745946734028661663264888719591870996357765759704644497091446477832910828571834264415544780963620032422675321802266829455938411761839132379164566898259423844964044360704002812045348817120089417576454182684323506821303586266506204930549103432747591952012348987258204828457730358111508284619584362150955798809117122422033129453339381225547592286147994775284335781099083635860914318548280299475645110553482066549147682783685845016233283154195955514368290657102632558593127818435123972331675883327190428939594466227771588357649258347099921898886680945716485515658198470665124367321775139528783376977257379036863505400698928405440999611659764971669209251547919843325636810709107316654713378403567072873911115896282395875317545958436938262143090971806107776933420923293682916680207604036209738129245596549392282103802429173609351126770893789695676997876666919066075756769412785002809806923238429062387311271534502662434789880220102362036471739654078849877112254108202813575163742228601007913992231897002547351997547362275239296570917966674168411955320415411645264245444915087517895931454872813788328083907460715869194121038561452961001362891489752515842892483030320960912577996125867053077199656071165001787461689772119776416008056709101617270497334624056061871192398964509563954108516216395138081645010119994282332301431009314002594609450548685440489452889607285814452516690987232306318552563419387906406632341526685809873997715247763353032135249414986585756294550460721062254368554036854044748123771331476144995178686869774214552111638666355400815219492004692316612060218241603877042173110749253699500550599574491829464061622103352023934613310093578529530384650935367660173826613929367435274159563253742532583841453943240312387629527980944955855417557143863200230441803445802953698053791473146780588561483601913665152276730758589492870194713354320880774633670419996875235979090246076205423050851590798733554062586199521068617881902531282494853446159182162402908889009282010020911321206178099163158031361399727933679891448133812611043916737092714369260610977444857586678079832306234763031177805271994763995640890756367407828863067261500369818725431360004172697114359644412271227195121958664039012921512616151242304891738864423898622507642146848892135892818290086884932129575179258807321137297441208363209312207477401704605191693684826078454589637506708035030963451720896227254507521486763928869161224032356997672032202116002995712767927953234978958355845382194985660544271306651977120224736021237786362036962813254525299522228529009640617893565119024615860633304756240813281922895678799844712845727476134757375832326084727329512478622382315614107428439509063691733909726952171697306441269496910893640408639270346935525229330130829048450908565704956052409783772877623032832337129065743019602432825092623197982834922962460933577835729452298664357947351703140121557735262593468274606296538346792797335194430701528137331897572678524504949979022587002096459123633311274116342324722377870067452800870459185367960777843287618403574182151018844635513938478011302019970222768181352457362646150215336961525676230815313420779699965626895668301088197698289090793392248759205025553114498465761429815349724556129142204779259167328357500302659553488189630964212469944236709884764666675566726656543760108349121015514221268639265613490559875946427386647770983142816952438018562617221233034194583266933229226672417104563296417522371459474854175314736012131823843593245886313976490551016965147570220305304535767893481478286447303191350779889126409787265120429556697373732411363684386279780070693115178517473940992953046906267063313545378415535410222614567061492841046121312491374924432877806939498391502756860910486386092266236762201521600593063999489974445157567695801447815576672649635267559667595608276978046302678015838178603068862035417859669345339637968889773430930223606572986885743698611712793809822694943061427245675777855548568924697766927718768163847382929909663755421039674640128719007864094565964280187089662220133081225726853246460879558554774685452809089753287105647290628964524910276831023268737770666547680376612304311626589516653966425284911959107736239190308038217057939008927018855562335346682833111870619337713241133251065195870162020933193410635496109181849289894465098767985105900930757565956641926811654292341750296972209280417264995385598087504150600775592025431089459669801857633308852312639199872285063508775470811046314022416062813550530692355723796192174311399090901914655417943314344956811359489977509505499398410447050175090038371366539023549514277680552086510571500447293746644917036698071109602303240995288833304292493867813293319341060987642310327697551901354751837736596199714800389910640481343673084716282033330734275690230488255918209991558298133420770054196316966847940371648031367764143580696386537161073500095418514639444336271796185132423967764989788839435924707405335134897285654182907451162194016154007342730529474708729592702096685263147323907053396103383072188802225710997253757059783738902294570312102118011329437778650294911032546614702630000984836746689778616175806296494507933559451504332403484479789501158988697886291117706856659656158298696170763665192421680958317954229702563588792186817866028016177734000090096000108080781832727145098359162502840210055996113588161425782070317604232362636522478591087480578102614704056450184110261579845444319767143157637002925461196492891392534783064197754421412973124012975545227165341965108984165599784257843939912813794157529038952396138849175850332787775788993526079116247618369305822484648997806415769881828805558730320697490345726402931778119784316050417149330412766525966799968605620287773010287408645749311876185697461759619429969275080162855059559442448511108386762796284925108177132713135222693181306474388690926445060279283474149576586113519282818011068659251216486845363840386045124749328533119210602652912154502314992903439847386406660997437626706608207455211349870303648836247178409508918768119805182052845348964960498803392394310161219775526160643820416926066103019001208226010976773175535136636267441718105257658768180239134220657889134242118684260749499211104372386553260931661418571167209248012744552444817952589934237513101116056441570777442884736163348252987741782256575951407308508742983054218041148007144622981083674957207080575965453494025028387104518468500461131628867216501145563895227241457819828319387796268782955836820723781386324834097050768373700913997588733653251813237609874700792635937760613029459075087697880029147656056151831730119034717799247214053084997205211331869981301739766645519197933489272130857426364639815307480452294553982711374361149857256447496945768868179448352964425915207968804502410270109898522522216287604059791229554939083786265793449917843942532811178170608228817352030475142091286076832551727145270445297764604947732700505275396324403195094888416606795374359227234891463846767627947593843882466999800732239026766169774863116834092231378181822943739337860869796624917792601676245987500628168308578821396873734698815041465480935593610636608432029635857367838412018435523965610498152821756114682282983710345905970491073945094944839338319641009944115888631495756361632022269576696631638040017194883919447229333341951997092183367205336326174804882780062316594201910923050167906874684685484119711784438918700726561015467780438108535587839071108814818547933316177826179666446097414724474101533244318756737986265659171719418858622754190947895648785628529655075150086857725214038429667231153333399598610295548720634616498020850585676526037460054532129835726551455062147432620038632892582381970502965619055688459804095610462681611174473877183214355336561693317068622618641809835500414503679394466705967567205540276881237972021327080398668920353120578704632083001116204855653346430903931345754106637195658301847118416834640042026461692127985882544712004627448440515540867361194604036019855157392010982881088265470795967577813608663568778948750073260910947741881457856503830872942973747971325211646394180429877592773316517578464017750192681314298565580389783854665047463290649862931355952656167201647859221107625975561587237526530100661097022236919177798214900327976037678163179188782161566664489941905748873212101166243606599741140846700347565258122955817263411334422075892553757557869343717139838444469313560994433505298750074402139200524990167612604521917798512865882544448985758252431005719899708235782596415634306145642979588229905008430143228152493418984840822110092300473418378050956828632573844620186364162895316943894650963419791431985085429631523888493357197829908915659603725854008936489127466475225645532030781952043916927229891361453363132792477053338611934888320713965578768459396188377706354185851545972418265120561366566972093294558154503735501611357617269134040169084373666473758483375765217827804209165345878924902900610984803499814651528498187454512083594149561955348759311169490354059654496718112654373474399885117718119654087742149129982683441494235358173892921082822129652085665391354435975375206436333572468790733302129728378542810220223123273532708977342959259498006649824572951359464827498566459787396044592193775509142747152713312956097715241211802811561646291660887435135436277190532903716554109835827589574191548018450118786941074567077954977323614933141583310109449040540488015595237186162142396008071485233955225065014151247451210998335372769158739362665548145877526652664284174462539495572179671313037301464896992829647556356648640356492918208196249367834619541068026047532277451137867166577391547681818980776704991296440043443779842801483942840978553049469586885969565946702509826038500422045880857114912462603880019815874800852547922038391053325087304292897947236092134379560092712445564780380277821464615963505506576164196751604564459861686936556833805885049596180759013593144417863082536612454272963689287706406924826087334627575488495025073156289529395048974801444989180048829222802883277186548587201776189440765426570557818282479496780090534541751984033635218722309591482722242413994401035017619386588817589828347848230654149088417622164810437419059870073126818045667592560690572464970697498336015192494675602430118754022519435052172337053390034361685536271829282793266206648776902830887643032274336030506263296255966748310744751159159862306864266492193197297795532071560576529695105452432493033825933627661725806426152232035897589657749044668040288952091543835826561770113670983077456108725535505145725603547793101727733005260341732563305315373221677445402695936451360394979009494417344648854662242156625872312057031491657720587190693752974832946618250612456004000278050083473612171324623337938564546071371846675456758844106441483792586599534657839793831576369405398324419803200331175478954006397208608362028721940482524381042877627049832467807642453391121514531084612396306307811041485316557662903271024454304811047154176688500056581893282197141825853854491683690627890097861095065494125401454340475216540956536574521150522777543584615119370776526181379156796463878889655670673940332845137555473046448954813107676650423276003010847191586826449969042980589143925658357560531699459457749210660307967132921152236744735498654965697470532223757171986763193692176842943150478355868399851264234198425826478482013704702136627024322285083256522061527579319676880579266741210786027090103952836490829378529280860983455496370780875919572829114711795424102776510460757737697097560167340623774727318556140976194900564407184441798656153193301086696197764544003390618421069231226349963625663794548558950429579898269202504159816994678080694059693640249995983766892264944680021619534627799952077460919510571383140996391258124365501669876218876988686637320332557006301024565171285528290450628550513139647306623862105554743535013055190762735077057298035872034944320295983002855107272327863228422986230730786506669483803774685957557190732462135971652347052874977456557683838091837895098228931405058141240215898985401641802167439706477500573073018484679065367422367115211307938330041158039593900034956688865983466126758938528724086715143389065889387964173180378794522444441163235724951095155635959258254870589284350654786916535730551044022825479345908188987197300045973022005369980351763641135628968438182655510471449280194685383917277119647222488365405085059401915597248840186811425461218425421911105893029051079468126230094655246899013495075420796634587448859199804547058090559644889485068923567461752779507973101280666955681184285149087508534549428611421011002142570588234938011162070232150610226713233972106995116013670361727228586370055481123419161237293011807556377168859034153358581856068411381758228742983684558915104761921700403332126517448904375347096411312445811034093393729999748042309806382613122148385446189246416918862491721290060280710406933248172861046206182670033525217082219141860753448385474534696645474147970897934815401836644628618377584713056903329807359716694975270244354905901029149325485042198475763743696230744662373636875737587936075907121447786656516241943403343145713460409107617888014566317465985577604417687285786482443252721385812577742169633716490061357472446653644351059922259045214045129288880441209987587458398261399829096250762883890055286864230997622254447277709035838717690545704535505783169314979195761235939832561881789058705919543314193461064807806261580602226531621215994751049013153000934286758825533505334521920465242145334425003306079833118698424117900412286394347727240878103796970960561595245972877974731739121894582005733372227032438653833073224498033536846948415365840912592762754698435188543280468618210089677915737298148443180044571171753902597194312857721804008508741692883018793814451082991417556581688807082216121820020695034677477244238474587099279089698887001830885326891718984639825049247179373891942034243638265039729999767756223205077520031303843319226637622329083470639897449772087567815476938626066782481281788197155005500082306563048750635507792335964440595908437438764154056256617245150996648865201908957927120927661465510924665244368328863413793836583166545676845888207125532350227981220505840462660019365004361043128436175973203517862813354308234931233147260390350399070796788402144094353078276351890169799907673065197202358406613342219069341741195208850558077802866167418334402662210455614508965337002130511852617909564733423612750109684136806300201611630342421173208293353466510686919132566934091692344456266294728607606835043260410779064473764263633953637103493861653020368009381456841922118939031046793963575670810350811958554558358377547759810085858669451746715378618240197128068528641415477475005347160228270367205152931566746827675756126762151447693107704444003141986640986012761219504887542377801103820473361018999382076992358965658314514043603275250543911107538557707007000461927626919432569499965623669776389654592580162399302058101931914219310975473510763440664856224140581518967777744490840336690659256473489944057398310265831545375994181367960229727476439806786571157110529371855051765078730558888941109695140928064218799287893074582980561007797597649743466173841121249267565844356129880015926315551510875992656756953416787477951955720064810761747037025452928685643105239369713722833241612208658690752837820168654697404310367089377744750335788869407086178369396427211170107948407559956114022069973514168959197177094055019144143630554930080539612679576819631918096147030003495371365394163678886304130056607258744004103204515243821492546378966247084000453941006546807969544288151868979813641474010924568276821714194473583451168287997751522780583187655328096368860734157262520276307761986969093846103340288579915419621728987634509530442354352091083707592383534849109963329360135702220145971613126889005347217486771998022218791460518650763942249745685859158840475457819513977206211263042290260517591501319164564513575647764947333238952773895833757709256663727737287516142771811345568868048036595962758873011208467221456957080802096854500942870326315223418673873970919611988550243908243856860728253062157005877404563747889088720096619787693906847016165867992999455099315123437191045271413538516578724144790565315099160326095711866881830530557918007791568277250913688801262003241314806252695638101610060544444967579647182393893489591744468938536113658699966318800902649904690542216835917878655338302550257099837007812124255412408654471867655245138331489799264278970566311796498416145993870786959060882305023730384870443082547834123950316177215440661013583870377570354564371599818272744132419214178628808653215826232405951709942517713402830679798755499033448541779566214816560416721051776588633326415568567429777385231912722291223571699094382722525030168998037720572724518265215263382295802577692498690141709240036016386077455584599728385060351703354817077205036768147788909202560345957260698102718112243505747675011647871950680647880961012888257673900806075746762731359223583651805639427534887923679716410204965440942657753444416181154531798657074419926545104295664726616470545156004226432879252023502954753250425132534523810664001482808692789331183247884075433615265335780125224841265980533514613683775757430721488905787367196496652807266143407535733390002535736854249474534963279687228546479855018089811833683783243487807554368820928731658994114028788516570538053747396665712207337751355077571569367575072732953496266550523507920398961369668435569187604872751610004833456809041379519460257135190427445261026687574808853541710294666254056815632695256186648466677088651964236554257978418040368550096246793719199616317179807069249600945467810978661180976566395456485511705680134634533749743519544098935318609396501137460992825777924662321416863875781929894469289307654203025481318722785082988385502105605754290671488199526417592474364151297371694722403725027188560327178120067825050619409283875150260350090276205278336022467629166352554348487040225722577255493314056030466730398012084847163080426125283479639189470345554930943666133911812587516060551071331691998637203991530453633701599306744491136992891996224825243855273858998160721895998748792320735772294625454263662153036458082232949709439668489292497154270595183335477870080015787451328002260336199600050513624633698535977520655931008660191897049843022765084732774548405342709558970756995115606257102192629381712712257211026538627865732948299446489447999420332560376248918887470097411704704441452363526019932398491800958868487621162202613983839707354061815527322408387912691717873128148705345361153225970562642962675949120625764482960830458673897968014967016811575575061523308799052014917977106443785496354454308442389555975089444279873122736639128972523931629295449706354671542657616255658058450001268425466906676460013761004794676873134787225967402163151665785074206123942115055688337593476822444330580655978424231017696809398181336661859016253207335324470201190439274005902457285039306206885607008895145113534614677207595147211941200965723485589308621184248352802788257726068211059129935539722082429125794140308786924584299854399560946647796193396383160127260530208301861922709793330129611570400835792357251100301694057740719340240143619661733835116835200060040494223472060872936710399218394453281075413279090703404225424909886561069854424868322320963248325337091350710998890206451114980186889442851066493594672028396420956471699681572273819178956065322592144592885238921797338592089417122272946934109282473880845724353990612660436542502334312161330838304856642091152968190854797692385466965175815345963175247523279595724518825467379893807049583326685926466178487983482195391933865880458109989119470466695634825278672890076307321864760213562116704606201654795064658630021413011277091044980562336059309324526421298942994682379460090373736365271682720776873498634505654384825430578254250862390565547568651339629982392403777083859991204492504297197733047133301773326640753973628162104550890915712194594985257898173120271899098689833682304533973223908491240578566028095492584990434557168068699855487120097875208494200283296236675116573616051436680180035886400393014371850983567263529885566492521838509264367316152521173403540744134936101312485064433945594172591510391184534960566912706975116011689726789213939524115052059740747685158507825115334790106677161168037389371787938049893509757486691520548261288834798875787377391388267381848185511006345065375375183273657962911605035124179509389557155261663700864397512426705329183216670051191132460225268853448543342660520478800589195389035514386464424917821467524044095785712971326038254426176914043928427210195716879841932472466979707475242597423982824221917364271146286470479717538886592755889209746139887702759933427438469540576397170665071387769823738594585301465832250284679233148657930228647250254583161689091935005627559790527918048678115364845024322805672961273861587972987577827762570417243490637120481393274725943981277328394265461733668378078100728491507966784990936124656981354205123959931001525416325035373654922716720991941064007517423885254463349835842957685407108430225448701657096007118282048433712300470737946402108047048437330729859464366254141188786858043950453175434987135025763295735254231799225101210306417599310394681387119748161851694021520784653572807284766424120512632916994084466522887317661663510729588974255389843334853689781243488324330895018324513459794541191614192062499067930448844081443386079986217294693294876515578636969662220714843606259856844009937932176543305334059193947580668517931984582344117605358152380190450222364290194721302123173485560639496300684580702488467767221013600365470334417723738644575585988256311468380177515609815932947838622014088175764547235868873731669310261867773925083573555954455562965247625438084819768753627604965265999523581909817082149628928117816414429907694594942916687413895270763294692311357650658980394427127976303379945612563857804969734599257196802098320529190837443729611360051556513556113868504615306137384226408490704379681334486258695325070900252174929036776478473213702721514801824382190625208110962342281720231826830684927718024529484986391282991287110206818332945457899762605200121903302881231378698698440152565495686852154469992508265530320827946005770825244046023697701252893371941723482158362069151507211737085297525604546054947790943356402650567309793633587055837130914389144802514455365721151199037385017944105256443208789360310966242717295837542742906293301668605447003362351763934963236245194088738251346179618131014668060978480358055532360794334993774414142665235417430615568960165192532075068866053765271920532594622559212056494540901866620313515502483033354279183865403278513604000171589369485984973865575483829694467400758366715268212179620217732523391002607808727315397874115868225026118851493369854478316683075735540896603417073041313558466268337343126226513140540734925852138665891026585828952392954376134864824225106742593060204552425107393813728066428768994009826757223059202799384234171923607414026761320572359095506792260673430154767596433803102985801382092532542242546034661885604414519327248125417908962794282993785805818889241728753375471184218486703513706761285768824736183245697676238706881522651673772404925668303393361866980445072748054895073717496792305148750861347262108514558690801702188939395123481654735648271945095454968795563619586724683559433965168292980528722641712558479057628879627498311237833422789163478903530582170664442796733008326075022827542840065513263899176290444885282968736569920051636354719261501049417691670240679512675086877097611579335875247364302332463621742105660145817602723158277654348859222516906331191974714917679777161625136239565737133327945420556877056067743656498566526148519889874579073911971699407816652833339113373848530055783076642240114693206602404529316537756312022312388814996848290205537133867501914257721699719543510435227837862908278694898493966844538370629346199361056118000381050284274060980849491705020583322073313521730468442474972512433798665787678986384749726791310527149478327187615357729891519269487611080018429389087360625367575034485930601083862907008828284100364375212009963855321095699505955313159822069280207825991073939607998278639419890799306207761385612002466736551007941562634430772684743014033982882339775977438478307047970201937195074564877668509018987814247334154951270569258935521705796128160876151411097939495017726481104083077518875888904819668719392481980636611679132031540887451849473554183437662557096804965699746542072951741956724925851510747146516079885548443287696675374439314596366136308403057117239894021788949894959132429562995974904610750679064822751553921208289596265789992569984219295568668802734781806131732106410337779601856108114897651188613823362575083892729311002761708687866745996877637423742556291631900710505012143089375098141876111637077634305242532702058659877459497147819907469976926968761964806715091265742264047691153234637336020018125316246308656657564269261419325099142646316691891442241987703991918503147284416172568801272354514113372045375061822912885254238954622222906343413789084131890936334027248286838681110841848392705090965963144955285918540700524002717069994902878557524052493769197210019044134805957839765237909802250009314591079298145969526402395132849252037341395418974066572035135496668469762984613428806913857134292085322373363329291088454768174957113324811818825030597291675525477381087470900804540504384786651737739373526081933459779286023258332331136203770371556296352278193328296076869298010011807535368652838201023608465548261469478760743873883679677150624074847802761448676477061658564813484380837626768573334795843467013243434281514580587984110354820481925133237487034443187958606894206570872362674999994329399906713233519255825012944952014235948323252355499629308774204223404291913724989813610968619265246890952335597001393888081147638017536720241590466995297153909698045005854687435729127777653597533716592160168886996870058966571654056485014221117683556235826766640121204523328692018097894539724223675239545698131139610197584854223365815732527249478057309685785420891137435228444039592810864441919775866643510679321661665718353889370111957495981232570746267185130555829468788320043510827652253216107474560270837964679091350861865779040524904557588962847185437804095746859207793943018167694816541842118319064979216245238033633590116288124535348748071217275357745231976950250713150514751597430738466817525228502580395071774010176287292618612460824121662922659818275152131450554308110522338307583882213484163135484053732860261504757868103015937913980855626544508526011830819566076785667943817344306954830833603560000313048816531676489676775542108596766428074456656625811516656702739369804911081477449203592647106197383671809720956735192140892348783609648588272334436674831283676403744503936004937646324463907837985536670978843272700086240417599064551960936406763222676813648214328927354079209681266609343595422760630814867248290870193621591703752499971711048074132903020562818706200304314931368106656520776658434593907919595126742549363219229237053652242903066909296228294162160444604241492518700832691577204032401582108419464557142620313264261796486800723452941737140121482039068205361527702074371142165972758098834902885244419127533736086029677657649357549278136626519938874828204183562786857278930187958478936335715571675249170298954264275556451784028832100322075691924135342327908536634450492312220591722019802586362390741948419631296909269933196436551793928186368621592490882996524785183733832161637592872727373272931507369338633662878268678542846820384853124081769218646253076907282411961636565153509981588645498098857955432259560862625881324505135477642360875681684167325742470573729489875097754404571449793263768797276396344773438875233662621077397031492845030817566229895020689465235988762100693658866479629107759204832708558976342247388914315011551820320532306481967047150761193799025990247979344548999089848264664369905750251741162730690723286785565534300327672673498676150557396400181946933881804537934300698524718827057120539260140858553845267000597306327728127746676758503343250276166213450165774462749651431153346778356651923318382111998423342356297831544812302835231798622996728115137184763074240479388403794757613703000926463909574232936944233042426490884003293158847391548889924955823124378197486703264524851469974468975155106744054874714944818636095704101149725382012455343717648415148452042436260400097496290535938579143634792736345376114806891066032728857976521149216985089407542137622305176847552238009620519624548538630916503374039279395292274192844808553551690132062191881023893713175658702900209816629700965176284741674576317551046680797203356336428440409785744870564997965003397112099298409410250200004397259918315982348691053712795931107696458605353202915690619176548098924329147492874383497030431306253607798707314217596631810517507706311148228042106526113875169252686113685617998546370608852838270944864660933507862325885134245101569826554208967441689762254589507959453574724396343953777880712350366304339835937108478936474249075473470272816483927049477022419886094721501498000424752679989637175600483563372070558719916519264774981726656489210764076308531396122260670316026474668144804283103677561752559041922496546345092911453301552554947136205309450999467068180488389207445495743074757771939962513321698684564850279662298757582207997502818143655809325364490689308672047621231151097686364630401168220238832512096253407266949014567451993710511610483466735842265572048368160790117717396762043181286582715171177716403868207972154465597510157641466992008485649146363314808154942125701250804958892812581621471268288853660384912499167628715639216717489051904241776583031224906586423434303964454782073304969534043416548249827927387432969897109524471278296225356831700000178848107864561164797806692970556774772023782566046473097948384021610878960043859565411628067704309371541740704048839163592324817014428156894522931786097318393002672188497883530624683495121447037453152056100914490243280716014393951008469561023108295647187189512764643803669338080269081597759045236912346967070532527271675279389517295849195969651189997684060608990228640747539040241020037732940249728218142063151052317609344030264865828728408838521178148809969309534154776481645415998947658887350739072425707567039297937290794047877724880083621733069356410622307099740529638366493159303540754048384212933343968726236292878584334824836070010664823532208903511311135095834367154228267644311287217916165846888774120594613057516993490262338789371530216086097798910428059114368373715484742547610920618823248759104839436961386381877983041673061065846255374530131978376168101182341255368287349560332051742567037215122766596724716849295515141622442113442671648550803783846866110070984892729537401139630718832075802612850466483178345572055590490588051901440826850233382793416610919236060003265692068711421947491202400695037781340106255359858123009548747865509860568047495301692317267420505358947134671147046127237656219191369775652823062306116004768192442918807334585664632463602122716929194793477581093288626774889469686075888284897424420062385365727026360027061841728642255038064215630760033337400114451160428306181543065645982604277703644765776677576976497424452020103764819981964217519017705025173838521384309866180523964239123994786606338840662330349074060525475941598903360584572448149120470475789111922476008067895923643711195908942844805489737167089546232828946431950501317980879461766808920813126392952434296289782853197631216310354169368530738849993618434961360555262227650764174000428922832315732562146673734880166868347706070439536671163409505571418356643426783364368767935564031909923215493133244808829739960565928315867883482901088207051429844000797970281820975013147256158269968247108708645503338337009155419654988413991919629106831739952434202517186252494351375032665965802481152639205068681445240657331333114917681230661251397031245124668903924651473188220284784738153204061100418294773574221488734882166577766267525007490859559724052599373442330513756075320142656037074044825007097771083914215113322944472424031501540916711408836622094403288348365138058536375243606652878575156087731309820343678014977076706289957293499679853419904152685714701374535356727960836202285695472645239067161483229487396381342555550043414725090708264764736823484016364384802898925307456008800810179334100591496207858785299904492613148836279743956570904001373129678564137887711910373401624732627718255143630257427121010143269806135997683452550313493507079033773403385698603839107347067742150959240414282675861569063558251875438727243331491762411499873591694432698843161558410002155279577724890104268226895058362910963308758802160798992935653960754110867773732749314528531695993362739765667328705469566268468987094418179891219727577043397440371079823622488637250510871438718906856356559386165322349030269927721194161427472277248874767298630457694012622644047574499003060162756661714837262429645168762480458796444028919325652934953452875252542074936229578630073170624619882353071559350216952052403142222202948175107464055783861531843726404848541646946661667098391987812935706238422423509896004382922102840165401252191337500925679896236465836015489837927169541888567631607455058196808319139646038759665072616365936132708644825436951643914671537302251961395219616812962884409469327952696854777475214265696938727191824585608783640412840277079989174468487991325213871621154581998125081965844706440186715090304337320612816966285268975389381160225414002288900267526609836911681358782391621898586091189583119767461637394120757915251809006366534410878937627467743795520495349094876327372597249575979087211597945847275724819336047290710593785216548133778340683041558282255619067349117327246884028568065098085250980929134258335602893832290315119507993547926207503902434571587584187814953732887027548796823024878458638462779839915314433629109933446748567416887396494074871650854692862245736163950440103326556552778010528600506443192756568536525422020715752113797218077910558627410234357161476216769126626544251770687494423373529273464552853824822404389485515597936580247889354746145844059342303456566416289202933992355619600059875145940861655634943588089629215932384044355449640280153565422758044356911686582885342574569810541313919378246163079146093832275516081254476111998706990291186825804385358667310875604038151377275266555808298084115806179744357914443644640973977774579292546322507224357643610126649379303105921161329374228184384566779303390832365610596154298378229740214414708841821407967360714082058379078906203514506591654487173116238353694981043393612839827703502910943735765615281767691864477478878224056620861441332909992701086284193797462094588266572497026080167132442404491880038284133945348040452514880899131543428201797262469932858910185890098161606710020360748195079904875084079500933138635278377348633339109964111539256654914976042285948362230257904733290610627590281672940020430746149535565029997879746231783027594081133384690013928972505767766128709963158040448615574576129684325795904111007239980243928275863680146861606311116849774329950068573668786450132685525609924025280133471668441670272796870895045329637904639225920818088160339771153029393962285729577517101695604462108575988915284975870121899670183695977074066873625637665067764238570616829652691318784925544278224226279918547049303162082022011811660744163885844327737147720248965669645377921237960368447370897527912463760250053884180037670835234073241943830242156134974539693251691390325645647918669228911119036623394320342956744208973349690558768942074813220943642168937607243008217441202543197897491321095789914076232785619354664445349500851109075258337160241742604456482537583599525353570535918068598684318395952555279804641459383536109255094254904476145963197564488140948884781810185214895019688173535133378648786758674727726731285126994393027363037613032483735904053544095713012769766569385723636480731029284087281264739361505695489870549077719532075571517171050186812813397298649034722424071279235825419942638017666530816605313351264169737967475708482886509974312284474504322143606051963096076286764708348531418660670702878160475975376338281929106897211752335121275692604589882109508370016090706503362845968982749644110161166982959927154568374088231733778109700849832805141962641236047322530700816462596689219474888523503858222517825749664502486024131859928861883848043256244149314327418979861519793745105795065951982313122616801133300877927618410702764340430660045130740054356363790834561133016209465083133463722232546031825223487082496827744883632269295567032180171233203609545663405825433209624594179332956286443886425971908051689070750666346356752449094072770941733081762801994975199781606305517187314040503109456454563113420332623803814681833146961831611385866680605742165198297422447837782362332008669722896197822091204974306746655820784218871861520023194313350906708040638075746009275326351546778018232684233010709313891923541746171121101775438832353437991693634091156188271935326062983591851120885317549442083876706206859187992488140567843686033740995671578544849372762769901542908175592636510727729416493119928494726245171518612222997011038629047188457039739644364317545597367636009993115047799686698453005193089196408706643380634052163245768600344038786432335114297143772957607961678529748255764241877326021577809394778408329205469432954571646609186213869290303738168067326131493507564139003151801466688799356426121909749238375345156245826870284379485040212418168149428087185056023933313903536738086415745601748320857951649277898619777424723899269172670224821955408334602260631447587853664399440303345863191334988844201280563712317992497333186583021196932214781423471926277959333025195756816700921422202617372897125413650061181255915251054727589694127093816231329682884793795549471423647098479442267868810001024971140072248875315717123043228159385876484427153172874145989228031059385274127979755555353221118454837477934154384752534852798603450541414351287999470992482421352619765307899294221928209104415172669378071835709675449927534552228079381615657376951160275686594423684628901545161205380811473824206995745275048537868649789457683818189153995718715971277983018024872141031149219999941977775788002471298061712604048214870580698793484512089557857909306145724287471286877117490998108328364571035825066116977433969445567035170742052861612548572721782162233492332860110796080391572310355184271261930182121132010802533610287036351592409252223158828331920046878532205388063585072932440053908609685654964018430438081987859553911148989962704764166674818692251992525363168598945009694305231083917378930581574658834801763324086163750759689371799289700670611013285633409240628763396207561155771337029159466853892446874666412705711125911326483608536398910661202617110647997622324744805051531098095828359075682634258013359125081454979834634523473943892775882425690492571104622376434141398352847645592710157765579447876659335949950855485904819786927980878715944671276735600521278228737383115323998164999753593439336524103043717927596088616039240211467020615383400122062891501583388670321259827838689417283972072818993565310669546007167866688382433552196385467037346329340546869536092419779874216016476965327182159936490256616118332078703667161884799108339439151033000603300219198189314068125020511412404459302877784802473303762136344108833299644478795957781152279043016287315386265458853475010126225261339513271648097387064804960171906792007596557881594005560682492386386071358979598590543705697285084462760819610197469056139006035417927205001386417330106377718424462601635638826548882056696011103587472038495901126154717533112170310717987486625143693602623633383125709259705258504262797801747446497169213200371857874163610819878808463702287816813008255524035783329947414621437030861230098914150314694937457037740528950653754682869313892544291815769541271742282957182153073757900512654710818744091217857654092849949745214199788950772019540857848143293240840262661744646443332849057250958411183005955458703399220394716082091922149582260283017064229560226535228215453682420095416950551559764600600344366509701676383550876114745424970363542512544588624559356696582035318743260734891281892353190688702289757338351212920671420926996497827538902859646268621161151375513050600831109315182586897232324930349101985294834167665294158007810944635853133972050645490558692862490560715587422345143532628437300603932213955253729818867468141142596076614748039166682187431356126221013507745467109736256438128986149265817286452662027937421680661658560268990715341773471833005899864327374660314028398387398296742646529166555837904666700676753431758238015720114483362865648545379278856369606873984424976418303967194502043795941027201138873036681398562866640596796254585199113350279483228903480794781961450425280425907688251078543792622621186277516498615725712894471835789283119404977574104605395518951867999521009946725272313685694106339764627146983759758234384148002430076242699292806340316121759465933939340718859920025926198628743177378392443750010740073657338954722776330070216882524978590211165291585867173795422096398944367927535590085664406238533083899659170993869208169019323404577519465020807054618751482977736662405770812014463360723499574823470096042418413598899650851299689085966257854381898243236162097025025402930912679445035299880799948509223034407982927094927271303326039335353604397904857982239932093802692777480397347394858036305010864431216137089805438193756020535639094744289056934165813487341040820964668758215228753058618968121006766045707188368442951984709998648532193898432299770347099596509706113145888601324014117252122281966517063854606235403318794690602344898959761934013221222942956593440150394051724146652626485135938173006987450075858046628689050698400213122056460601298850711210232544833337070727695649712055303389857698242871785007591535547872703323749713952462278313277232441099690302911979790985195779332263798187669808667508949677603546676181800064256987131913563415762456671983891347285468099330357288885626391438001133762593873415377832913087295529822870924204187558530172493050367499530314548558106596904855105974259842711093827310875884836941661284874450185255460539473261495428811548587126278617607357811789592172239304477107084278953782850726962706713356718080933683115482649984217661192444972631606994743269006614822501618696199528783968028744220200688851787185246543643233893911025253433730401380440389653906743751360434894198481639165194331328252041869647465489956323033518088652651776133851551075248131967604452491217981260200049262673628157666047654524006912979680026951625333850063811286083860019442433121668253731497075983372939803836347423047823336515373198979135143532356198483896622507433042956198103092845409127775340526973456084267051290385018062396053330623861195372358155674166834122842180761486537613049028021544205205415585542588600204955565298649115363797866410579738323994259538601372282085211951357470768311863016948730816047829439008146656749097684519179816339619517256318328361170338390389556243755888258050133789256479856072611861073874398851502840407067495706294759609115172610614453107788503642383071009664177934625929039456275593986623838410666691719586059434806823628438114936691311906435736411425943447816856213250004230950567516781955485633906000675781118910902848282643090945976092124302890545038991987627724979691082138583401745832851471208244709580757965591822424208919606655472260301349145173336453115992406087516515262418850315602157717051735693095461738992149294145116033970755489555226615161902849418595707653163250303309311619345823112231865559595327674405444031390653148765727426676713379994311307917500582262733458129676204032144649057981429159633330012274357558388809492885651536040190850566177066173835970302793541420446268388617566976184148703453552258819247235906261951580439620620604070574875467573807988596682084928252506650634967669491593012855655490039570287847526583226660135770204202283038252008724206558468416684426855231924056878632994528724757238040785337590638973473339629516566686520197680226488835440781524388146070331460074579619250562521258979884898014627769552618916795058131327966104713461095315582409540695391845997562934270985102872055231867329468648271848429848136525478454821115832274470360826206366215810637279924030054866957470190108202574390646477826383232926419967100442043193984897557211234574451097360255388132387511664430680015976438625138582678106556226375765102587791850824128091946441355942953083790663746321279041424435120450056866777058940557004278820566696326081620843105035453381007048176518967584056201751230721374749720340573452173044153952627232576062731279184866776402274240471928089945131840786869845221632043820135821795947184545967934174514179098692917494025676478792179530580470508943071617376437491095961098880263585242445452019592883366486529320835366329313633057597691419659832738360111828375787183005206578766515566835691750814800368843070665805608782927238547723284879266674072877554116807109589148203453740271457679467994178497751494830356227340248601593034535194452852730035856847580264821190715523516908504046325898823883295649057161011744266318499739273437524058457299068741203926390860962763621547090243729912403050664719851802645996416583554583857256573983132284548610578609243387122702943875234706087591924988613092982856489729741356122106837489313811707639602465488673970574735591840191473490229439391124768518010224679140255512450980035229573578732452126764508447441233167094408958327794270851471083390403085200563311874873245200889053233470370794599715346794847991973827285531783432797795586485117266590136746674446982386396282301741299859903289741277921710519110780704575864707510606875098320043517525656054522470701166581758198046060155976016716696800123196418500225910347130065163491214071538355674289275165677861325250517464329329636517358515017123955258404755750382188661871642677152084464791536439676549399423528525275770204358513374479809797597282846474077990601975603929271746513309703872518614072456105114186518802134127323706809647574245830569042359111143402627187763178672865508613944276826157529820351207783318149831621637092855961822270569355742281557471696155645096333597644146028031028252683803886143408004238716948106278520756334290627239032405986056760505222611918014680702577041844519799360604518712500597921264763676808048912629287377109495496097433152196076645807618574034813549385617360955382385131275550492617583334619439259688681729203467136026480801600242635645993138154996515851085856450423035297985004969265959245454109956049542529319486992271103031926806519097688310495389870768139253334417865319248373691576490911098992939542303321206699562006642822658222099669337627140024728210517980408299829467879865664646856278271993677961495341329840876125511981898138603395742124904214144365800917407193551868266741737616112516894528211788604586313720621010518762994246249755978818502056384284998531773389108600974156321051845637579369000027434141820532436624064916081259181453977152020554140805874888154542900632249952214318361506797386908084662767677952040337439457259674865331899002220497810953253359488237728294212047560275550388423931765082925497164904707316576800104665265799718624055931209358312665137224136754380301766827124903115024718901995609971638652749225059670413230381264403190324395153752824262051422563298739346471170957892986624399999615343766260653053548274170329219074723996194527155052013798689770306967688293992701148670254999424711868269891543695861942911199297152709417827077537780755961961439088378604606284231334166515969850074018620789892026105652208539705941047615870149149148528998189274642538094539450705845237231861426211687072834645768717957724436543297578264834067080092691961414450654552452569677280479897189953083054123990478319756856645439191162793902837605457990907978873109266248150060004779443729485639959533201864604360052133231476067692211175776928958754015074775448819364456924459380620323709716157702009145835675069245984586718252035420294721313971844006559422444623297035424683430297486599893444604291629643433246513685410809958946064002856680096235102621162557777201787252914479936191911872210759400560961986110737581830797734940263355912419531794059265185418805890328144166165834105065173472765320107398104485981933544740243623081291905194840679567225567569924243790902472398238857028252012186179687659449112800734593437456313417733427966342107210415360851697529603797903715862024735758951304936777921195242910310049179009710237305853034366041326205291328820500343190075519847301323985338547185014167245215541818951774001968244335179686821787098433139743153510002434779551558491733644765778413869747024072182140179598618518431033342064797124662750282542139190213612412494314803357195955574935380542896602204873856599293110668005755350373282642658725200408287842013658325396588649701599877180121030935414997218376934571181239885775637467403261070924214460340062110423896920208969324764957504270215341063808203310659994593933569575680102328014920521410407289103234379752902465489660279463911148443703070659322266396201437421823280162473412870983691640271312356288984899743947494567000100893001101471924361613493714765673082546825605947742844197169984524530290673604018606894700869515968546165468018316477172860601460211388138001449394188426740996042950892240673839789783956000240215787395148389381657433444563436198800399472409029292699611424461528207735754140919889114117375236008628032938295104967711295839430797416808163292218299251652441029243825463327588687948699619703294292834913059996358111428734271539617210799764184893253304109507446798911561798504135659483706606846993145621289411262760393326743606228187068280734846523093257906789301528753076882801649198779222483969060681139688365696359906395185731604641703578761839560543490206216077672793139898520593154821856609284803307701487025147077218372945424946925973677084377065944187771308312208919606860439475351824714160918055270818678664436490422952908924437160278659098816335529673103841219666533200688975616587322011634216233283664404352252239724296560048091117343032101301246412444054196583215506585812115139447158548455568565783055170155079042610792996614143736378169067598170974730615250447168556298827732111342106805822130378224841576619122804358549955780959834192521151754252067133257559422104667747701820768929236884712609858703483979202300863090176835702503583785553887721792498816096294088902947216444586606151877391660761227775221332528822745028645801437926153762570382808992964106919493465417347196109300559254225758747551969748193543173626873972811839166219475439081050850505334382424795179563294019480547102486882374423376862241022384360785019340648203913086831579046964904013728925951122391421605584607770915377964867425236642946281064070799907384161832691904118493911192052027226208954706543856974629341395489771686679717724583080733342115325259731430369011791579628267904569298133044962401129234577156286581084162895404006914062268190341323165567085450573454178567312588654569267753732796020330395086347394989894776078579763029973302146925849342112615035284073228008884188940896045505344198230985128686915358140685049230163152340482064333330654708900997487605314886223944634976399305203902304807704085422806311931119369099918372051061421547774566690953330837210828252595025755067642146908409030382894810120776336206376242224866615283608752522354087959274736250988845247855981433078685470211068440062971760598007269470658707030286989916948665509679545098107173560643771855705940113396121189837369080704578665206187205472469424774477839697806423025971886728602247208745255478498679090910207028381948595243532086147499166035282565247295973520512681912641159355100685905452330512168033095817825219934037326672438877910949242157475622457745964785049437172966641944460564828978510627541604708283446099632280171312444086203277438426915026462791066150989867388758994403716820000347781262511707433200817461689703405464084865313945574413267649753085328241554908631005815139018869832929390810416590481196616282215173645810645725760008025277487766841976018581194084514691345747945755563705408602101834582943757890775407411452653476633399628412105184958285957895614342725656742138465136563675789243004871683518426807015201391755082125830808755524737255724447336093502143717170716524159576463813050466019537006943874935150133943234120287062768092217456090922075804606983990611921473067333620067484264054033377336585250142330885371868776191724788014071396158906943264063009376912465177996591603325208564008973149277268112194762074305874681136266085136756702706289588759835482809354915406210043939723004758158298418212476258658950504905484827045470852403104921552660045121416551674739617282913947916944312760062133875020179182175012798922331982895126061945024695769496257057322436003074927217912066686798435591321734156313421425978179131771193295857224401826544866374758718710153919206485281770444450161509449875981913627955041688079073674126788360791659471609059378746957802262658753722521576602469085895872117259136867047799650406746196099012970135155810756016122033587409975132938882261063059653020963121680305006251114349064814517047128475479735285466094679415908191256097855353300291510228629400119046008588275290654458410814479701676830433284806002151399130215113767580522784003305876226141725689710152037289655876895171177585265581732907798928898390153906673109860494369521719385198757002640121611282907755740055143163712169046899762767411186381815340241781481117593761847142018245582540936649558273101554701194093343352338170005588244332050433141816636716609317717153068711876543344946812101981159735497934941963998293416958380288901415054199073580057632832034511165250096430406311715848118651810823162757005348835999876349667717865107066426053612770996554003501203053808339030689538333121547204140242447443801679718675764209644660342278366593792066398538245463626969905959112104910143956767776772467143281852402632633227750128420370349614284230290128448104515005536979408448143128816798887151108338149204189799046940678114226185681230779265468832699914675190952786381283476795079821861669211535446501603713714494736554608549459147148258108383431639382275050232147360872330564383125497312971171865882341196740831911240477423223614573223374051269101597252940222340900780658306047507380583509319889480970310815182725775633714698928006172306511784769114828786136133747031230591926126672112566696393353099598225024680079699059556529806351941802498959777380234010149182795029027856346687191495286979042367728187618644978087670597738418726677986188003744874369865611966548208490674950615652385521329347255064396910893431715011112846678325507652945061059694906395711348499354843019122274129078138374885322977468571324425495294363755358853779753848006995886744588466482942136763698556753269363563277635223404220378592347640449825320800285811537603709892865452930427336567438515771860880892372731574001618692585744442865534819366960709692931832795173073580926771752179184152382267309466024265570026569221579243247995885412042950065198617997276135873584302333364902170190221735033907393175483794686749065370710506740397035831542361760850792859404177794640484939142334504164304311447718328235615185182650326854539619817163675768595067573204936993929550341643025279897859212667126866953925116255053258245418439462280552692369466083626380028754029242954619052738090442955997254391963199057917519295863222460872706883337506214064665919750421307721662465732282131516233651333163404736786137352594919257293601437596830756583855575116663994559268776829914680701293090038457443448534137753320479499261830341007949377280657869529105954529201527715613351710765750470562591866198123447848016183468890439097420337013923480101062836932576211308134226403400664446547698509314289473328959875320686497510621535645370073302599824894782541090039098295565424410690450421755351657865812777529395835717177081859818683116214448566287747136187939801746208847173814458860944846304552692673998552411976204154764356846279632831957709676683310559894675318148398814661970037378692372005525193825954619288171336568984783474254951644457779365534567891499472395842734742778498377778049659509003763595632490280581707497222418347390247593052211875063236049585536851312696570100187831122655582524717446897700625671352806067649799939206979993503769758187236095090767552037788848230290709394274199376969699067547677626327640218376761239950985083081427311788892849139468587163818769668301765046656445712256628574220980896272773783030975683003385325141798820054692200434998768248724994373373839831650323430805611527175065099463575103620524078283100926935607324893847059813555343528119799247250141955923964732270065048534686306424070052350374879529496505285270876213571901510915395683365805106507747967927695742235171175145360599789484343034123292334231968651562409403819081375003370784828135185204428199285519088394458531810101492920041319910948967049734275884960770635866692375867046404344668604450042622616917584955177229674281434821797920495001543817219546169083330493595178549660343682155339797137590363382891455247294822129729835182835489976595283719691324094608412477179505504828407972648476002271288241907477659031896844302745683902007509986651654896229862307261959093074863039718711857171755748232768014512052589246045587590235554596281102252400144373183127262313724128957547015017463512448041656545531129564473702758852024238284387329279299778435984914922418250983839983265786720727387078859364465622152943081515538039675076594860229974469290024856200832092568127289274743285120503220757625866379310128171655275326346453695421489283050428719499532938038084403218336183072331428774074654438704180776308399471439699991882290393646400401292339468909477634219084527699494513392327386242748034234735532933949098574059830606898892239978133139237506460725385410935039693454561896698757831038944987427324264289554174531389633042037512599428465686494332021970616508692498469593911188716685940163031290384814176482251439738807553014918771861381231159287258330449160922810184908968224095285613063054983621092577107642539198340916800634346927142306118405181711107677173147861371480462971125325886833585090965173477991649159094373180758663266960065780355303504754615989718941739866751294334725288505974814391441206452395314307749737058868039476636468274153181621262153049156884292779815466030555769718262793145270070130789808441580089259162013604065730632862171927375493266380924759381904995229835665587093822457109356508543785926673149413187033423287696912911860241395809488101568758776660094384109243003995811239882928805039409665672699693573931477677825159828505724265820213308009640566816769295818090919169539023565062937421463290411880518570221604647942640424119093447387752964125414151232228811913871755586893683017019599850525240458424295332598052519258179753464299839798034278451794713289560041600585694835848352138243872498985990791167065847638492998385552854395643339688116426658608442622084118891660585762634466288845578624474706352577837394202996239083590353981415500489820648239363011852782131677270765784228005457247301073220316386005791576303011482075905109675151143929476992293986168481146084269844473458608804945910630714344010419974534322223169961214280635638829891422702217002417367289455879111906808677723442002503443504837630431810619094408367660960934412944473859565174689670270472212739083746568889502209086244859662440917471141001424845741983536338964063966462002075222070625340251278589129702467267526299434368099874498585575438925256506857741403165040107272773192753826526249719186294318454768602746753115207577067481390101982573755108107167613220129436092413257960284957745481370434469451053476523824849251626200501587235194229811777221153972196640863950422719884150222009489872197042484539189668992657772500024429126358758436462443657069305236587375276096799437690808934751512251060847672025681171345680971026462451112964603192151570086384934811636157491874684827256853097353362338463300976071196483402287594202829879018123289832470136973022523353058369172026627075130354162388833324014821799819956564455113585525200749924903447646440968447576944105019311663416048342715556244252552827347202175691562107008519010696136960181172355334435267813892462691340540352792769352348961882210788535969708539221596207468977793788180120175643524843178343949687970556134175026264671471947917767711267064650506588459618926785006940681283003711822731204643248090408634939194178866094848076010800755167560979160770604264806188973384148490117220453464527425199498768685764206657020588396117067214867151088460234887366741399492390451337256193779038685817411702743887262106717768328935411004585170363140717281495361785925052036359867913676930029108832607523242006426559439762536377387301997641930137370002391829443954324338229619249021240518042755820714058489484671078671409257820153448839885053321180653590546613441284275465842652792902051950335850736649424700661617147250694000951532669586843252705189210966048933517844975189235763702966755685413922659030029268943745435774059768387800522963626006557512530665682099320237584963452634676833784620697606283787989036118790016147978533766033009011716573967824392567974819256446469654836810808972011013810423152998080037527541146019276035669390520080043608372742488520290402407472308968640677550858770136622020871992157636345229925478149774475092049543795836312200951770626342770776904726288903780107004250507111505237599586417969252176549586255040256669374761779052504730487386591763347379443555781917567254446210177844204124512710043689679642850873870456538169684871484384541471068305164194461326297224115178377328869912936696320255588344974811012916810090391503580282891324362457465385767119544377876755664421961455204095888421094618112249419533251498595603742297897816368662598179069790428550460920359574340067733686992075226686171363059451810865698032527096443369054722133494724554835024417969993005271141538753752134443650749608080563079511445861140952020086823631501145807487905238464127876493873228453664243421364442440452652319227639582480838402438633452603928534405167947849843736912927814058027989519684930187203523117292683406368321882241563330796872415264189464934102098092935982488858565519087009767738580115008139401645183853632453022732780811112901127194177565096359703184376963528224437183119542699287178730215242528196898681240947114294731132633957448828370711710488258807575006246058001858355269557444342042315058435772792575432056517158438141705997035713498824197603189751315318126991660406433517857363019741077245338497503856240700472525745577655682863674478649962140106948929278098575440674290275703024081915097092758746880423901316753050894605174168986003610210962075223677612996021592835995959079439845869750870820007781497534617057976856154228340720946117206451493312643312938292202012830506213392711922884677674299357945337763116967812534230874466301631544892450195979137863757555379640194123885237404139612896888559719815948755552053141905598436160725873145856498369779727067645261724993599990264985321713132055730422425480404484841322615411540725801368466634937084204708631917453564528237003890740849016636640230725751242924107296621129279769417961217330733425368485840575910785642438932784186680559376130510052756861172757978150241085993837225241685250551604207200640906142116490149974337106676201218415824500539879720638808376212624145125332843666827253929533991828120333069586308209268651317490783457179989591901548076146574452225571661707342479611922938004823816586522714424178367296662773788491843456493861625845961676875966394246126080521638086962843221732725765713009319066870741368111521977966656257853238878307567967121670242024284118459472855430102463610319192777685256990604139481477452546318803354918519908972825276854132802646019395671122722949436212518410915643281466621185446920171954012342809173565594077568253948197167760653974968713790205288628201255360428936094949291595656752652111560017142370369114538835424269638943613505860691532282987920854273942334541888241160342774307681280912017533772508062870367539131873747158151029263038547310690508975613027126330703495260479100378354757532176900491521087709146073015424633409100474426648728999541078877847939589251795490980454178451512976672477969740390528946046149168905391273159789547532109509405002548917472308389243333720572743877299374962494530656736036224135441227197050870640031688536476498753148143534809862486968562040521237782086649237373588140639022929401995788299599423662502970487762493620064639227263332647606168191566340683252199541623973689133922215494521180975502894096528169609226364693172516418534650650384537536540905190062907418773412922377740365089706897075119143364871744741137443009141465945481098489612835611664930495504704010932707895384928461790676683503182695359156131513525189383130995503954818477052745221676282044415883312896161789868254927258965596223494283435628614695707082403294457363683897195734957691341586652109089605759474738250966317753637110644646289222520460674719002039936310629359257873504497404248343221120818564247247605462446595598766415117360396946707660227560557884005803021183708112563559916066751234659501154831770578756671090091405374167299546793741092379399764049862325235212688923956719913272564062922196280327390872532819859427629113375875309274497921411608243457478177915270144987060378628701221663517022597916667233570119702466160892481720847696405457497430151572349617092338724907524041117760768919745548423562079836437183483178921659412665952626630631594533535841223908589707027954292492593714057870138726228450318968540849346132303025481675908615561620252785253663746108675708806223644465252163741859216461259431323843292736280284968694916858438001819134782606474374836521490895154038658185180515747017269993510625159968823437557843233487476374022816325909019280389682937512751699509675605692041427040789677682274385509628322545207433029094295507414397317677012890235794231070283580768388168547400228625841224416272585719578375081769110180210201366926053561272343182989844318730457881456067657142192415210257100094112156829630356083730961508456222843611554123999078299533715092998578168311967135929989009908291879495280451906658880667699915916584799274839027443361867863887154979136475169295413185079346876354575339020923549574371957994696752434905956275529240721319672914502104393162848717244475590886592211015742750515050123571523515796453537613554400392342446047971943656486806282276550383605686375944946938464841595430938069625488640016627478316643500995001315547913827655805724481153177229167222354050686509827942255354155964885493124703593034312421769461605979757469631128668810722188435909113725068387441060746732530160036753321376509510983280291486188627091513693085653640293379369821001723834557988012039688933007087945655773926551648412661680251209058003852735406052546948041967575283450430844819213936768072517070809178619639342588424194031239272428663841123129249871123260374215077693177929112238409661301300611712895913990385004146789338468309317239293210606213122662112622281010955260988175453953998838548245723223750968901358986891144001256674995659966060853621257460118505145484102710053005992171526524447734291208186896999024946218262741795717783771312702247177913669249294806431624314804424874283762303341912612800935184364634129874838857010988556412129921874745459673677809232295530133120632832393911533297143669415224056111672729593367648960001252124590135648206272559479777931445424108432979391137756392838760300605228459339034727955232985704193668287182500178828505599541332731406893413813076671734827818897670838982040862663002634756476996946694147919688215755479358899904679886067703666756776232520313797891928637606862312138196446517467025332229151696802369403443815445081662092026264781740335433451359711857592733238909302116276564042242495933206576148361181293317641532274143336273695611071261794778692894876547220205275552349401461183313440804348045433818163471858880026122071979043249017616893979588610257394315385715704699281324796268224835716253968301471572693549847198211735736525111516793401396931797949894656847637320651831426825590182636692693578915945758569722842160677603114457002242019953501802681194673700556160107232311345582465353820637256307617362316494128250663945730219319317498041675565833120008483263383873815414188083727046956883112208027823840334615570432273334716047350443053191487471996834707957567989060951658581639853039246850943000707336793649213577207055807334666353759275495334084342702295120879165103071607378209376577788466666270877159269488988075439734305745267902045075242272061828409376997821858524369170661664019123788939337497901457646517383566706924881715495563108387089164604151836129726436044312114549407709721642310004182956694762659517094479620698372342424903648055009678991968432406701016407615602534083433037238841699972590939849309185350580159521099878282623314906466834223286036438590647003066119340422459033191980728763695973748006961776435727446503549561516228835040802543978692391985022289690054673262794273537512962605063458422168453620483877827185966851241577428608325466769065047287417586695937809242871060838481065321482550830902760974349519709319438851652158601446269701266387918998295748250444757869830378416574927274367571349369376920201166232769223392204098402320847482759573462059829742508410066275522310788012737318501534475798479965746821364416586663894693958606968514460524148033691501195982773510993290718259985380882826487466187359271344341468039291686804371660923712373222128630089078897244490570105326400028027243538567258857417082783349414596391137848414220070643189968477476531976990471633523361901187944992975404056767527492187125294614996044589319092956617971985070562790834466120076643768632161460333928899748136387626144842340063429438200419896694048122838893374207892311094336859400843684370792847074970988877585772216206715516947105951131268848606546432335400364385306489716433592382857033309010782888250308001285085333351022820274032772493564633000974446890842634720577566456546640167892145034461340472751722766479320359557378642228198166943532119854246732654103848173752696194233317186878269299331135968366189119254413165178594387885993100711453191558166901298851969178591751801644087165961246066056495543571985559189925144016842266795413207853269641871524776904248669446783710843456915720047777372978395312618371766490395325143825632964322395624665471265700234864547607885513039537624104518341905744340493167563873376737321189083228367779434373028356632482718398060906654423226202649399565248168597435217194144472648184718561904423772707708479336479879295054708602063742963342573538783870336643830541174027048173924377435626206993262723198326978665371839637197506819252268277649394450130671982435945471238922554284968664081633474031246446027390052912439152900407111989504392094511272326662951132507659022081243421452351438254042394754693456803182012743100298229280031043331554403409891854255438552984626087170490337585022551471855119479987360315918236742733857741713882261177897679983640969575059920785594449613225975254395045882673981190192022712377111567721045175123118777456246967384518268573048844294549887255269492083610915262864487548975887091313624628139700996912598224159045374033612862745903809365666593789461541695470744121023699111109714901360308280887460842474635084240819102440588672701611579931109528732393515544068355122211664164444670288119458197806592383236346846176005184856679404005254352356492873255916253309649638150189464181327319348233208234807742564691287490795179783790531839636743623961644578384378913512083724194005842663746154522964803506051362031039032146979637647245516000835714575297379150602855472208456960095936332943232569402582493298139091956065723670954606570842752558009964670538397841884231971241736386282676114036328905818450904018714164849588894625676683448170481036831603511879319779632698534892836230756109992302219713229216787235517210259556299267057578156204849438232637811982268813417120104647212852626802653656452930383539756341285581309611959876333933748982610464367667455073410399633114924218072823315499316428570069720091918539428342552831299050462696260154217518902031553932196115775763014203971731322273820765200540201841056641955352600071299369459641490884082463937404981410794485243119186298349995392276519951640048164510982259180844094003262663170335359268594532242155191090767495039540052180171609911639889012262354529312433704466199486662703535247983386287774097572864124316226048999047526800972756862134231831626561377854597397494477124575667296079859848757059722486161099383766714245165616383631511972996956683403971399949107284325186134521869879642959534329200991693271472842744053150781391644561977331597899210710517991755253339445299763317385237927613059574300907207239243453846433147245928799992844869949516270502295546624086832975869607335804303208365648215907758307896032234033317285389399200256753362300196785378136497278940313200836322229664513818796501003342715937149667341583657275940491873322856776287662309367676630198880259167888887529574125826329960072005534247465067189962929688975793846374769140731645929361502626135624605714332015178498761419697996419268673032331258924313073085211693925609176231982950537561810976425283011526295651383979322885593258995974546040481968616422520483930780561102135146055345696512309575577078638618892148536681720853517802579630889908881652873465326728575096727794292420829645097133747255370929478009257599655044645625611829921222034521435691167772886339144293238256446859828963781647006426365392679341184622588156821371685259235774989571987041275728229602312457425256232748905850451766009395226910791046749479592543829723590352623807311121367866558928864775270181497728803029333012609579102594764246454623374512131917464262623295554665825851732651170115841797298953799805181769690085379338846526797800433868891330314430246418334037342120485365455110533154718148835397195707644488201531130233919344245622131846757086559175099816143235820743505090919663699457742135675239354215282628625318207636356712534645831593518101806635091210289074180073753750950297250034522192322891381628478822130610733547286725379841551691841785510528387555343247796903673518112104149240609599268318753509987312807513728387408945635312428814240398544232614590481531889128416630400684613159521681920797288074192586903102268556687577690988262771835194430265619295224134188043841119477173154422990616644188498129673431264164322975932311598228561221684082727883973411562091551560785754486097145791113622231329526266822052034857262895504018778991423199721916324780400261494971696822326975433491043582032903634582033364086662839775878343188902797511738668742667582766426188941563066532295570781298376544717729355554248655817181930975769789449406197789228844419856188676856825566983031310018919631945480061178316125281801969659509394625566299566459865605907912540534129018377955834670126153828384994269881038591156696862448169931107478999541533185606517308619536902025093391787747493950837285573163648812745910239340323195297640715804301624663609154945202607607493775177937487409256149586497891104529313391609492977581742545697167185299846592704010803030939105559916466451276695994726527272461804133451595957753873696251628614593211020331650916812306176455940100720819972361482007298491331920154273728176483593480778712465642051480475993887754447868679205387788521337748148954878659024469297531499695138402452959156507712756432113590333115611817574789928579478058389287971345297389215226299651593518607275370420170794120351454045010257192562997050646806321265325573727036089591181066488944175824683993394313488934121029605386393183784405284487509843028729451514499102573514720943069978166231215511097363094500601664676538538584724354571658544662321665092483843438479233481657042481930839554223402582547108618780934134523396557917209698570742566091255731217037443764255458910332950484389511161038973401155239414556992307062633451679841338239719121757652247559958829193215922392133671560930093494095317896938525547733057615190015387546885883562586651430161834643509069974169485967140080847681923364197233308523317113672539135727340075533060936872697279948607567317689582788138620826858299687206838242974144824118268746946015433690731296280109669359862538965647726081770934974098660622553268273656171962015685165866084961020108083677792715399355655823098323238048431214828711738315870044380292213910511715156259423959879038333492194445091807681406608490215131848532891078274349018178921125481206661089794147092921347736782045789804287433342249761410196051690331204967046100686944923262923616098427129323284868703903226720367158146146336479739641581861420753312164343578125189272622114506983761282072747475541268230624144115346536322788262167127949945320336488123362091015707452295761466641990339628396593987740817500307413225154745359069472872076758029390821578560327682906236728743346498802291387650164431946450491272239815148006937408341468156355784938446635230328884257553743853617285502602150518532308709304294141168859394806472526549672313852611953586493951476111530847689459858528904263122913007316276924326614087750706312797221739654987353903420240157530990985426885337662734071441663517582468832777759344444344910023354073867967742443087512628126261153467563264964488212632351315607757537542557611875233649842543664269454001383784769010177870383378802046187186668729947755790992896125335285043782597656994779131988899359568206848456852246204857930686640153413735448129861307294465281486099496095963211613136787723514116399496958988487986780027481783787512375076300004079167690026397232637227815789631085340521159185870300453108610150532942209948742064760265644222508461310776848729741665814543453865457477538255421166037973904316156031194806115943307728730220830166881141244969730900067944421826579093529717581211456494665445448546104691691269741285504779554010563872202649942965866047658901041679331078745364678121895403590816830720042822937617244171667465893077534542679096635433945590392488680336420843662395371774729854315602248816402794001261065287725617743644866363036519282915495260920728922054757482399788628028245089729534309347956599712112463441902766122939298351447854305142616140281737783473919748325715429248208990021412496552242086869015589467040952100625870959696168207417184503424626632688939768139364752019204219839237096531600204996906339597526816600558787441487153925922509721337931132092801945799609814506572780248358390843379854405627211822151027195986010723154524608849623445115618324081502751920533460602828796747003464601356741194714793476514142817222853051819984191854371363905288862600507105961398667705880667914447403842970854764433158411769625085968550441747378350201925472100873149133899836073160756748261802658475334171959946318742725481269108531000955845225408169731213199108643894370449374295896122906170982530821024959286220814752281130019623348446740207306239223978398892091001063253511686095644314112118677189987964503831116951729837621259235684830541960729052160912418856152167091077004613782806136716019391349811594300088341229136893159264886397481235788453754224820041628379485356990776548834539925763849163897878209439898466269729018315242326723943660699317938720392074111399680733502899080665488603371914831600079665164011685233816001170766523899753320060929920029867802073593256514341370776756201781734595201059882359977305364920487933564780937228746187509087419059104992885291504456630806497309138604077492841943987932489324844021723014621403252479248562956220983232149252412562903602709424791910016186083488732432792950594431924379928542606130824763011020417898483998723185989756419018718938983266550461856470212102703341883259629483165389474306493641738673142446063918301493571041381833600926227280878172969067397589277040096296245854564978031778304876796214954285415561201143973062448889104781664159971234611765025155105167764830591264878984910778541564142815582517554357323328769664953913180787767602737942881678086632061268472005645017904572320319784279556650519861997987531324910344181585375927777982742955223786284165626430904732738808200293038961809647536426342284475412871647032203183225603631048475465663232679664562501208376196305943470060172978442031888624833837026984138849945003764563408883416087508144668765861994200997141842653550707807370879902165160188871660669534064070029009210514311215063208573205836625139449424175178759379996798308992244332834818029002375229364110764025666375396127710107943634015789803505765482071021367903399578790618776453002142660681764937004120354540745701722326225585544763844360420076567547301167902866271235580511794237943600645820556702096960387532807831871094267936709655167886375662778322439345456611745115023105464542331617808353324366320983434873174107806362176547778487596922744216128032135505664358404194565238014371310444935535763579008321024561242205696408859972170697184763626484316672826810870491728851207101298614492023709730223812114174480239898538158155486042358612347555618130455715398678225157776964933917242393472811140005462882925422011352610024961654880686004231698123071265956834517815134036390509072467095788866871761023021392903646330340858015837434052331164257289132096751920448915615599041294680948898365954320003504086811737397566928168107977518762153435169918511118720961057549463140972043531400823185088661064278782306908754480788112773742695648689539928848264569039542015317854168868533540193685931508937570952873688243851522120542115422237413771887606576982335834099792045959790143149270637860835985242053015860389639242340740164900396785473493876151563466394162366550897222289400076953211667805118572739348257208464841060292940907928994474987710351078017272554352729005762704020482081199971667765793215371096179373685643859161846594296099990415958885920506775943022642623356792033319950283303777629202733558933128757109317066651721381923634142776451960537492026463687960733655621963814857246082521040535346736117551484895867937436853926801332885953339173282003919971676078908885212139871325806381543837759957532006429580990352405036231743875380478132219023583396792907314055610695090951182666026306353537075954670988054998862727924405673350581992968450897801939143120028378886775725327627541634214748453598251269591189862790849749287451074025528259015738544961046757464194819047145196816789006225911373228860481065716373330803435257069749053935860365865447478842212126455096401122515584205980217145765029179697413113697423023651027268147188717516389890050114685280208806783088777886630126142233805321800346524444741242971250763913566036436692879317397508284676814322525255770446340262931490082080519926767901911091675997680421299552471357370909574847632301697256549424556905443654447557176807584643658248809198109423985814882873486728303302452970706808366348025768482060197379821921649547520333292124291301588065725694921110757287085540372725906584275097493836719316420618707544451794341027990976212845717199318512239819925516844545220496836652599414753314561553080169363551703515608867584558086502858709353800011533496045386037389049541261226711207047261816890229466455490346586235560863955652481500117011433098987608552479382594299140072247536875658222399307605735192791806413106364370304260068813285869129697356156154684952263369206831615687430082128462986507009831984074819525670449346693068330068243515923069682670160068956263672405342424105810056394230208238702214421511114833301929235256697231627591893237169866287939006065582272865308134338370139798880057813270600563163738419795441992637760517848190956722325146126902544279539453398840716310289490327229715588635017136020857245340016976607607441116673870598399160704277842256486383061952051687324796238434246703755622276960098627583050179858508212931137329830145099007300313228745945527631960281997719827052640871856322120205770074695022868112085163178462695104414685306560285260824906538421578402707543154991785435737837815807808901439277626889423111076690768327335131536508574882221037025142985664065699558342024803968529003092651179654600282918590299724490872839280611843810438712832710600012676266621703819413510297704956209429792343165371549957951199139024932556980920053992696146524721965848007486591263490694879651945020864028632898041989387877695552073301159560627387651057036635360702191476498814213438123979257102026696848042087752701983765157332111113939999839070175280039383673232618468074716521014377878285463546158173827062994012341976280175944318304964949673543855500508863790694743243671148705411090189816748551829861619914328185644293693286643639841641225721407319762392212316901734390423938078787799693936013664046019569492678293633500985964718768379753507642459806922267955959654538650810086947043037363092924052795671628567503075825641959577393993606626496921399660163036968443127304255548697150012699317851303354462864959860864604042735470858884849521819442141114624917475446125526599491220019820648666849970938134169587351505769043715938201319020157924393842631551631805376164908290582240761408276855873478389592128183922070208299126317127550342203835952437989547699779620599626519267364384442817421936070734681654647552215986561115180364656799329651686968819674765905485300530814514457536564407599422997090828237118389416953950444813029408162913522398160388321024435417852208489883872273025424790428425554659301156321912822289729448278667720257084645758083245702088215051192346540408598523496132174187696432094124314492017260777593673165759888804634234048061871820168027573540513706419818097084955967708248564633472419669146483862446953506504606443548574628841905617693489762365640429268562255027079796795468727005679042738825135968290738968894227820788843428611163998638909664418656660451691666174390899012265857174473335726389777032410266294937899749593375872864734335728741666319079663430249869668954188280654023702346348190204298069958780245686927190004222709268966764771113561124872720005794511115943076017859354111255769511948933353248024954125226339455503999442494562699908660399795724175744944809543542746638462615462703597098341070194767793543128650352947551233987541358887722803018621614337824430375040002123906613952661177999305952642495967669425520497822095483697561904083514185438628171840486566443399929681969472596733205313593752771128193282971121521478057903632750105480608513384215307383030561413183269703201890519667155140858311819436078593086296602019275489152299961969064725473972477473236307888054740815169948153001684904174979555370975378656711587543963814226373693619872882825708246139236592510929236284133586752682737097286246755829612316640696937364750609148702298339985263003711499847911369778423237635109106075000569639959777216772859861526979828752799916923404551884082536750460277084722903336510103242529419195567285247084668091033617315287648549894145704726340229136932887082837795914855495208569235248266803108197837469721065855979697124855399973299130952043683973516649690651510410047635166063234600677230944124205343407744882263404233313218603293873375121833172871260080489449889721074427809780055238714580044007528999058660329770320434572689917804520799163143145016574124814809012644383950853240641086441417336326161805985193787585361517853065047340566834577299715666468719608451769500748238910620289553381649828576286134469387031939000387154733799805887280490843970013696063308553753065116086350706401686599721935417029274869268352342578723584733467364861120737628187709691509344433586041072746215114151638285208376169380681389511179846045902560169562968570491315652481453489935863501705500554934987433535059708422398216116374177993249006717763118567759883448495313697487226056266626454129569246631042308879219084191157382763004464344159634841197894725637975740083536620348257615376895234862737246105879038041014787225511021447066131090900516112679989100065934198765141256728917996215666943260512322263790972321155498842954685877044949446245290148109593132474967967887252467751271275536169581997805034245855242246177265767043953722059812775611062858326669682804642730574756174132483424291607743504375244146653801923725632654739146447336546545702511787638811261330849457382187396600787522654611782835822302805430368715886518407149907894682305023075667004168827801898103498412623922146216103635435768280111095409449395386576203282057699374300267711532672635112292342463251264308131109274577932659033206743592954976911894392664660481852120608675592330827101425690529679552071883389941415470413305932930879778760268420935751425980420768069347171947546043212962347366576758655588677290064547128710458476972177731919678218373779210146503061930385439329173427570285082040242365432293704680097894678490721624915636336376783585470450583902338528548722633453067600242915035501034247476764664326672906884977120902182938305223757798688133114639976208478011454918159763973282800904205046531198021368833362589330302988464269110013171725451189876869345102470071569844068706175189454756102896380870013861660427944722263644449499005863640532974738365882501349801257394934352342510525887609747494845410371998178635440734909959661581440991206949803574798875601535981340252553407688737422806630607077429149046486082978012280289329627947658112931683017853158525233955227707751445820705652497113591492826821577021797223543267289482191978370160398625399815843922521962251812694702657444599038919039838688663572227751481210763579440662006811102454361433104006709286943011428054307976178040481874156994487816399770523913625236537969407675248982130044361475766206946267703933288021873351788918167013585390033625758545031403834324756735170470366394192494461072133494971002095664196247984274606751218768802518958443969576608681206029854586231167379132556751819871619516455093931765878361764490208198460232796888112450050937715590504763092048011549032493406968757572963837144414722249871756334852133823840128736521861315947349101160538695446367504030731408988334800257907307509425409511588633175940072858656197609709999756474506278876399195244541454000335474948847805755286364935021031506100084056211531321226184417138061543514648276438915313247794226375086196489251836754426818951032083002424771644522102375223736239239308526665376540974111373655413919748439967772180811071746332094716209937386690634204887421350782360087642090751338047466699657612193921851697566384794203091637479823620574391045193678007663548092086884795475904637477836728187136828470760407720349648893632513700520139566268549014882467123015507133920775692030360801879489520005557094410056719623078137510124114575209471323658496640173995712350277948317696269708604914949439243123838397819522925277401846989779235850403016889404033342282275165719186534461064730956433338891824286667128340953593308108435659037794701658918234388166161887852170431990922647751931592977315446803120208465725044274256185685460221916458451639110676308355778824364559188366794949302300300801235198513624441369653042603417904519279439599069568772944298377506210666350939305463950486992907893271427130256800636364215937762577556225068680745186557105128631910388509639698348476280870465677057542603963474307255489451509896620823132820798952709511230948902101309324301576488443463416184009096161408208839331640139768396759512736101406954076432388102284933218410462224230116703154155114645622155990662661984836717450411334453560595660242627710428958657773736331398093606719414580840915998162767560063363213868334170538174575671316338205925309085934593060835649875238244651619207181770400621349879580579012437846922629421637388997467356263678692623815881950261814414101421066351705039748085912101077394610716279150110458491589227861141603659963142832354028223518395665344360881438849617718778948549661839967531705607848095122534486327769933113739677596379253095087117964705858522651616229583321436787691908018130158495861532271245448319938994436035456681248413745369557077380203216074890386257150820946770955426281137381480015437837428567056580171265186776321132177235419615198184949853131233337643654209616146653811194019179326523179160105272047083837098540839766353002870773137922229182000290084416802910674043363142590137443509363655854209532478823509711158541337450586571266701556317827733194282377195160694670548074977674396750383549631151243173987336670044903514260892053670386950221962783901548148296053445274634207916591559104150221581950696478661778566043993616267681269938209159758568696305385221434589898166488651510324136270725452687876671377097928142066526795161065699238783438184149495702742268486878697090847510935297517914293828672044428536187467929989397902413576625270456184911653270962871521087688804577994425455726470755488171463488926881761642489654023337387028076896671105373964128997740585468637909459281173437243332719745174169538819419687456547308897302698529250144674143871752735506406204996120272551412565627680439866453240180782698162698674853497954912566493273609205253356010855129496475840183448300007720183418282162610483701755012160668944019257886544506986268147551313207460025882274603015897150861834032395007683044160682147335889449358737783318704653051742377344724123284162143489730741072693359492270816455854282977745003964009820062368636624395758080757351584891114068420961412568436818253607024446462887342688500816514300037944539494819389365530234973694583875277251509534690482307645675671144350500688162262311090250162554759663878193326675264910425326822980737854572952333719595545764571634208892634243454064364130451448577478962239025344968894306444969805729771584444209414571533307523933652243981310355246002217896214755751145346592445801930924576356259688922611191143012143544168845051277655628240874565137301554915358967311160348046470331920883204895307122428561495465377497599340617824721780294791049160064456519947005259631486437554293784049389329355857214647088340751738406089812226132766388023348391306785160832340032377507063589718247338909527439844190537589984589132631194079517198275802467770124940387708102804187473371963503919474542556288573945456119742219436937607896976899733360125172459288931805861962627339288011702772899656561732985470436658419385487827493005571811324161897609776392834268351517431557311670024775444819320220990767767744458965114474145205398311685247720044736197578802650494735678740717040656114494779260782822985081890338142828425441443134718626500549644093416964015084014948510733543287966577235924332677674868275746331707328527656522590540745973287916485037691443052098526575126224412506635717157063119852951021819413149524680632454416538418113145673827255647898234450902363551961320920182889845105284209781293161837367201858092850730466076925682527089194224319960943136658616226019266673806576114877472627782343894940360829426959826927693446181041899138817783083232567069302830295985220446471823915902089620315499115675329285901544152722760674805157108699765079282514527460778703747259713617523269488828559135367642923668355459536684079571876456188076014194385057373206156153150119216274310857668197552584499824073872326323956118363408588113197231500924890867109372877784363247127133484748341771621392148976350742906373270893311941385104146652948628240912738618258592307071412310596346422605088035239148513652424459842492193452755826426912392700256261899803487035753834211727294067032623848710739493680006826469243764787088856003212454112588246944549188845301332327377425543633295675232405382299754577043606230957665270271444341945003459748814399725755043774547087965430056582980291799910134179353188884218502821355004994899559295319005770017124321570868243530714157432748927514338266384356642472026903707991224154059169932230212993515119958784324124553391555823784128225754684891456459334947640776483262840339298622818873106249633921916625608236658880133217782528433075141481570184607265092987334600867735238440117161436045335720930518828508409504461824140483984535805794245465064225739944165768279619776066236216928734634134243811875333275783633218772285945739583993410322892683309537131324967106811798950168705878520644250258281307446664997938651229492838007260206402907393223030373256436272035848794444385426656492977542526914575208165336742721224799428183771230093301694277677814494994375919117088178410711641337980405495709777389218456519962455811103818071847747614760431156110723547986459369523858737976764231668054473940424794423612934574305724175851975039203474441637243902921185611285131405260183025164880120111431017629313235903338296158353037521855050869583337363017209682392584742528329859986577803534143744456277316633440878232555644805239636554585594643706502618376166269306662338877643764651368694943778098336884960844679269777584986362951406141423179263137271636232537899440034860689833301829834374953370414416191663729793220286477819881782489379112836955769699529853641050828944806165643491064794521717315812751627739595997627700081175272562601211774391428281171983864178324413624448499912270866831178819964763505217599067309966624724422420163470855546846673862402501920344880375952467997222700163147778278213517009380076463963518084402487077550645180534711268173782030149870934782997349922346642716798580226199165173752640092704585005280915669404425618500472527758586997005505628449680231587381614691224564714171388556756045795015763166125826492457039935857254266270469229680505092360636742395175080770704195791283663902505716771682680771617952988035638453760112448801669438016867558024020097762265982436662837397819136393914439162679520004410474708206407930431551678143099677928090298983897519691834131801338362632411889841448352133457153185518837799050165791259058687234678719576976690293780814003322133093717335148072772008812989459773637257189866030792907971747617653504227854423604106596583117041229102931874082351501303084464696661846674565579232844386304391617859562114111939425990129366810316187057646718027380701191677947653958163761577666615497112153215509896466534304130855334656463893264964441353372512310451244074378667439612709100316247852343580268585186194355615358052294076691899149850205741352288766456339210532376563391113524347449693867417768813255775167134646212508945306049642999200096989849471496978538544915957082543422430514635953742138057464361985467755001473489745221138736647072792381657297658984863590956464924437464094908181619488629861157402163306129381001516110757604910326448897557230971594512462647735611650413852887964222453896439163709714115389446446156614351415881540654617551091136068410555838942495204265073288695557279476411922732603497044872116706235981291873382333446414448543133330894392679906503821270485587560032348359430779085844320399123566600494849609149766825039650287892361569381254721126270935438817955996908990643278329743562104576902649542640743570511444267758530002086464718876028365745638721768581357801231524793253180313377030532398942467058342623230096846064996604670364712868772020623155872674741423417909895462809541272636813992667260982767511035270774167575351623131943380854391660752444126895728488900368848726395072166307810901205617617214660170459580319681319416545654978152232501802876908514546613666932211996914025216295428934611811922977858795523544338866804310523306146513866566435887460169387847090389840085247197579612145825132655805620974820319558905449659291193949904818583168487092753582764804242965134377518812879430209505475100671639402853298457226198359675623958197586275165994809973097843687726168177375034217877885296401550090184807529408971289736209281648912246331249686946679868662496572657199436085473304708196278894591527373007113929805709540490541374568210365600255396430262035609954602847910480337451451208548845373716965103731390747523063969725476865459902724715088258986299667976255556928686574063747938721596896580547102692014626579315444167672341347043710239233571338411910974319408740418949586041331582949937569148616478043798407154173469597362310365125457937336314013765374738898357220424262308801159164896799181964291654100855904564880094834221909234880016668628055283706829514495777657725249248371266816976897427497806205176643585670414677456757944390635597762778924378064081701185631087541994925897067424645240338094156226531524359527549623642655487430891465493423760487881882681332539840331364350938025199888762879825852905874956695956373761475714041409444482277073503995981260580836774843171324150923121454953039173701787210754063873122867690512538787737501467442162589714067508549862039956384432386959662645138540816746605418548545647863884666297069343970064276788909359822150040822255554688168803462451143125929287417505472349183667096757054797633070192728044677643933601673783991177010321376328622547152432206379820960873663076523402197043429402427997695644906331345593201682842683574359095302061501946718180409270397521815618820133626965682845399025340042201672575222862678392484928894439676466632179743797365996968465193550841377660349500543456858186552442937689120867214974167894630843454481810660396747596943599832451648323735706451614929227927754854394998384131473655608222576094091970892902932732541394456207731260762232066899182441245315047943054273349784702219875035666900830163482259582470628421594178223232258775200217034433250061367095163434640225231899634160892542056351295600865733195778736778124629456830843364966334769488991173103698016373690428712050589747969693799475808115586918309595477082684651887968485325526603469875122624117464381671053255691472874289152645540350752776363560302398025056766728115748519146664657188453145044202825870452744016314332025767709599254786710034546944471388011295625025192152050947002037330646386098260981670451724481159023802913744852104099070097599158491901452708962850918759833759886407263334394009359172845688060304467540571288834408121392398591885052775754548007762509740166360253436828519755465845693871410568603419073187162507119577574505328747759223804622897057442109313836017410555364178077085583994893407890034281327194627775114634095297038237965682039223469624183810957490984849161733103576839568034984493458541272361297132891232425156372265395533997679991323134126859289542654942571344428874773053944856058478543803337812355272315225385637244111707627271169815027559409546658319145714969468759830200224009650000720265865444255381563547155195354329709332115748434594169449453300451163077024398831133674572562334262272264379061268176853468109563715386397817831043717523008401682652851259105842964190431508507414628747665587183334925065022068154259877226552421232678331430504121043068621591416381652963160840495140222017283029182446237333178952253637663264175799528654879858120138171503827864258563797852107030118937704428886626197791106901864613202837939000331539632645343992389392118341482754225161932811338637056069879665471624205313796844370513377755351741854439433576334044037798031259630208558962339447573548088120571289322630793153699558838579813675238457419641645730172694147991175230284482906431773547335668271675266498497283811897388515239129227114113131274406982397683733966599824108247475811629497258491535213019268122122543848805599448814356721984828012808578261021812701116033339958232260572565238609551951080631510196347318810681573728672661528345249877541783490628354949879856760969855747289379813569462609012356404740671174512582090373975557137910259427495825240377455023205492602969134705280352483336662234576672964206944179640852119933945517343391754247857083708836825935505758645413265376140903968264220982463701168799629061272249286610364580929764681177170975304038296603731306485254206924280490443610190203044577200301422572034925600561488428403806081981651941536055368871617268639950888505757724826671143776119488284550507220114806999016201538719281383720891850107408603190501086198175644809707386298685380265018229794871722211760924356334691440121261578425926033323547347555190270215368720859331602634226257140256148185450196583869835124048497028973798341258423065290649509439240201982727455599759843153584356764792735019200800944462437352276976153420600508982455626804768847182088566766946628430934008746947271988046369316370411150064249002121144781141192330258341325509318725595026691120317435934390451522064032459544447257212317342039817892052917386933215113302011308938015495252215129889643295104054960961852620147045240131588529389247954277518304217452453412644918751400929624979675333846902737604085387635442532286432269825965063409426620142678908983754538840417125719484418960083352914039940556565158831765529235745546150332259691450521271164002038554807781958672460945169224028781437690690961059613318615810032296582237178902879705380365564902871070179492030483795029649757906232306577095639850462157764927967653379472153270656264412401013612413895200492184842157537356101866599855865406666645726360633836659115381386848727064218974182973873673281281808066412412941850827366563817721629959690645364163770777522598600072358282782643643994508802588929005274784561134558530346999087218802443631004328542855060392595713462009516480605202754464856065926260205516825349545016505727425241297813933145379573768377548563084243161045543387159368227190720269389695149281040404407438814232801285879838294257495282597347636049504360249847789147065918547126088810242897324878713450463875650658273551165586563944754316688102857254814283211161017035182259118217638597257342741772830009432016994429949896804140078690058185550451186136334273825838799366831293888627929273031876456398133881697554281481474561689593674808894856743125942855986016280076032206443712084516139771248898399755219595510765002526938690598804307293643213077474215548219954365490973212779549727138017691929396884749592894222960809222398760956389330136980366149684444940888616556337095524328151460016167765976026376452572652795798377308283377663138104990077022193422765030321974010823777492258134896915937416665091717336349129782569383480634177485286405483854871194759272606498419610432296809135539462913650298455561200442561000498712477359096456030914444738401107460608786681495979920741015144714956791801495967418294411997397538520925836315217339669753521764331116625803460838739240423575591401688591257809519701714376003534422627329216177204797674993098110683436343731314120752487067759187706635558437491911582817766269386145306439955122793768096134540435554790258631296006307494726027333839615572737523152624546067582445241804498175846978987179498900325629259363252028392741763722056480912202754739324509951741012601834253685238498649135772021269113170741313562106595856137764230416408377046098282271126230209977888336290750452716225926617475392774167644637468810309423864165722009215506779451389127096603751347274749982091597934255919330615354782443283181065035729243620553202837920854012357996039885972721610993493789029659844674917103616361336230258380597323123807446519479714417487775845310955888590501796534660482366304675530064884795080615892494115124294611835575583902064182463271651449973976551309104663016571995517220471373568421003298258373097223724274057885292136306612883941145920777827662170450055709710474895809544871896085327838329686100274554322356446852307046566827617166667241950266090018032518586884951321784781866946161511174974097093970820339644378202518223989695109657544264498309099342550217889869545738133193630750228066682503062057290408863984811394405662816452142783271596033027520259808246386362452610523757133157891591310767953646059501858656095982595768885893720200624023243548167431168291433180205328007696891914093068293843772420902591569401389150969103073060869023330484765702220016608293351477524427000406517888282495304544242455986283509578323616959315257096492439359227265629817871421510879265170975818504681752801369044574931026915063016106437867322745945621673615807166982740974920283102001450577490110260576698779514232955034808321152869348318583433839552227783046481799427662265833357761990456282788665667919217784249075570444845608729050996685855369277492944411718812399916279474893819949981371844040213503215178403263911674011117632066388454362534913954697746683591168314122908942905257759317396466036267130351357863736734993648027847358767697945549244855087014294942437380531000960062253418269442339927568249910286608662724799839730804934587852862943661535990025904534168672748822718606723430399985201630188092701460519303186088456085518169199454583273570652826377641204468594356137013506434152280639981411732116171616100326492795315097112847697261789559421047949151725998962220415999643955332587431676613174497378727838335555122712569281569740102692799258935657541774846809363899477002619943992451432059820439587220377547150290098487229630529649639104338329063748583673420121449871082968692825730374914839940153015700332847709999270583944603018785833957289488772663153274808703725761647579702009805191112330823408674373028275893990295967362479228374866740440523527365046869733843792059069008633884656695130708200533368480592356578421606573015844990898028794884079601675865351718036464647793799456905921952246269463998182025298986615786344036935398423250042377332862703666565908227928773784140304909024648780964635019517220094925688704283405434588161114032672332639678224229044343646728061648534446103170891353237043842519788272573403860270708342059461099494331381550173663089008383319515760163793497607022108635147711490322762792895035419819638568650710286037154151646214163028828546771645622931618643201499543687633816693689656791464344732868420844883540483183698182992204612675918758606199370522574741288567122322353931099869107574155848261824320847214251119370927866938258823190905099852388721498869468090151073675608876568242192313200334321511727862170568322135345566103891938978588622936488224953997648759138767208563867544719762063333793969886020094984605804938214271608865182415702611519029110066982236166557770682948926622710134705877311385327922167401480313398845615763966936087927666348544011642953278163590537271722069190739139791196050700274508633771866961921093775606453352488661404145482939479779166075310508208060369711621103419010709847296784026543848815419331758428465840542904899426817180107664539179696767514467781312432450198860686583883065887711009338869952808912825996920194296002106219910090191620204195250035025673626789350641819902945733829967291287182421155343768293647599805535471085958333083872950601512475104462841716055309746918302365259086341051285711645137240065556944109448978766626824388481297144071638532973562452928665590195160444943708194303578352477984055149647376275527151449334096955731548763381980497890601064771334951957266273806161462285679165912134828149396494309829253957863246493532683089133878796753927605156634409543056691901595355137602353607551334263111552942370105224439764992192842417425449780815485921380900214860411343651579148661725267298460046992574972249991867521033665957988420074104372355444845176916709740113774664187762560017492657080132313091195767520132841900450158291563304551276733344503366473273437131658080410962755984986005855778653993551842712677860841397973051403166870125076541741047396866057385443861372055766830673803114077019094621014272110256816840773158088752396547858620780846977236666153243792027182725996132158936996041178736343252349180799583706482343659104496127623722870298519149362260606037616651868013246623639717068524560346029493213447338400087240071602783909627059794509335332590673902720435371197917301851821769808855248354848545703462006823505084441304228935397923085319161128333418255885225324360631771797104658530514083625479373234110061433482534613777626196152859110839456781998970287574374117227693369653701621886158607822050411608825080257772575810207233195011683478411469644122793678669949189157707938801593060046818804066518560941354249719108599358070380132743668495387969664503218083142023259374004727608244259850350632598286304662109753034745729173338877944848575312969197496266144427833009881492209453115973487798405497572837964062662160125179816872372176110137480233547651957887816628425050549213965107324533947630119216579964537814688928016873268211540078091528546986989689138348233669424819240253733759504418291285844813020178938712863559289120670865333930520631057360669625437122884186584994153687601587792173925051406838014797936427899984820869873308046285594521963591221688273065962919395634120228631028386680453389416604442456945409782893985821697607122655191462112463114467676430826201839717664792300606677930342985965019861291383835211571701811179924507693020610090032033881016480280466318701733661528797302953272140256404907863741511655913259227794704668561441997691507791332199938641094614059058322393400260374171377785908315234510363187890339882169152877339608051355786369052777095022803488179127651472134241618728270977499130126950063408086219526917895496373047850896700649193725968174379079939303954544150943517976447880750327469500628643643687559010799512837862888297901568448607530899555086991635767318073870758723902794624718532170786238258188753152869142497875472008840123775228080381970113703790027160775556273956471086321694786330168893465919423894159510038919793180648685572608765277903513109079198240479152127505639778763603217884685280119399972968353953897814131621798386964106846206135556393296702409658471853031409207569494385156031026535506555462808720897920675587371127141554725925107665724388637193656982897696927222549831076237993795124299151672833769316767345294716050048654458051235402083106061292695545219672270435498273347102031870067018064415540448794530749026909079262808944253230513397776596809883379840067904109815943041039869985105892014732872344871052060532855776539798032385731345140508954222391636338353352496354828620913514962568658354940040887288433584832333452860467409431991422388007233012230227547452640010351562887684811467268367502164248432209410913555936246787422895319676843130287370864585464511409439514711945756098290537862126684411438081270125887369053553640656397342590922917933036046774940768831242410163039016832156585149653942862227363860965066492147813053583415437841730058814140992637815813755158008321607248022118698549754464812482039667619494395533646207921932029215502057378627015181978315946054229452556236884334348050302493252564980472694876080323184126867057554828690542145365157172968070032172599680631284983661743738029653225417977208778873093681192748288523350500373467607525198762125550109652037179134027354099690011239234224285713247203720699017441232499312155142340181181135393003337623791029175008158441199682148588316102861192054571602224529699910190767564017391736509595269577918308440754664049606447946766731587752463716164026998610123693101119454991089995700401527340702492718017062160795811154006929942069839583297407540160401870542621316997569460145619914676769471752893725420103263743543313977834396757912869352743327050589747681590852240478756035397142210594186100651048499963074893966861693922405680690195104457470752962442292177747147456300544461501910277793303838224188172976864426922205621443189142167131170531334693236456215961303184504046845772962622009268860049966745065980980611710401038614691478905602527491098144948946361300176399054882998479848658926928550072390363029854992330118279901168985138957682251346574948449944098892473057618777994346040658592356720196344537818333074055762564950694530534123805380065081069727923873339229106780602389021117115519918916353555288156285752975887897642584731695232545490879391489537696877657041733881122900662501901406101166516253076172444363907587042463950014317543848868221687062954916270442274312359857273354263193296060470067011127029094003453291828776975024154630589412664772865135547217981489068703591765998893179258609658837443061819092895928066296006694529897708317076579983058541986292892356160246948766485578892841765815215251559121269573492299679936591275523237009097933802242707861968880320150301132184889781095459156488478766938787299179310291733955691417765832283297620838574249339801702149263427276426805614531617842347388262339621912851492484327114292943431929855627097694137309373886276853472603654666188769669336030500472709437761442590822002566164842273050815000740361112466877870462053092873950998146610198411360328759409090949650889477360382104834357416084811761974605777644801172890262589798440331098437927426450203162188987212187837341211229356326542209643132548103718152678308657498874871247714062975400271202024638134595218413763448208244134481183806501359005146648284885362499425781924672215408938552581471110245520369003111700738224060045147096622177843292807500495992886678514605397768182296142266395383342035496942067257433924954146691186791478153590565332999535019017612203386266371348234801966144410103290836320895851001657588024626391126286337548119774687455486637229968768464148464409324619425834019465530265802160779880981442242143165793607274902082772151895727995756892134266211847162322091869949267854405148873942120985107164622294201398328313655589096344005142406696437174825122983874477208011852488339226320408044213386609140428328846447955837075988083271863401469203811501738211921513665766889268950815710222143966348540208658395131841097196836271513761090897722560422007214653492565489406779588069245983912430667194124532020293004046462589945945740154681121562243408038182058602364800954656059910265715456429230986509093690077373702688278963516071686186603231951182643810604231157986270229504697271100688084604411239784447317157566276348322307747268421899479235899648877295021069646638238641329032463683648216415783580990362025356787218631957900941001711439595768658130894176081329944775825979366157080370737671899623151086803841336794934822181053875785835324052336181638458012046744904018957518771798562084931403261416740638201350372440681785974838675794234886241811118674569510396393782026291406415186869178734284088442658362999271083383788738556257280648813444715790567157326704752067938926477630124895789983948057316416263642470893590921349647274093256532249846133311665783439813477159208932000934644707828273172593126619454699355614944472052350908629178451191470496718637046763433293910334594182906732657892192283794784083001002625762735622359587335723665971952079290057116648969168401704546080178112179033566685583191811200159643720512308228639961587719821922910977517431447920483996040709139166747653266034043938880433125457483230500821222989340464798297823413440319816087280423947019546289027678798413113503432344688143969062486461277701199881799430956314038566804742106952879977501022320289260239164771777725018215708657703307059809250537364619635525752960375248220067695850875193336142091142081882209405354354192567396643518970750341856443357966912199596975332386085063724505193104213545693596224735659432085253988125047681363963193547847626615319368813456817084907697952762999710760331852708894913241629106973064522028581365343534257491209501173837726929633577150185914981213123213644458864287320602061549318279173734431364608491844268915517354559076827560761579802007820349617466941249106460534645375047444577080130383649096488059301525076277683162561219137518390250156034463103262080815677372815932793296483765136924901407115837396968256584418448680290352678170422376821203098549338314338593456516982328603001087026093877913426307816083967293079534408005375873454715232295129479824850163666777550720599840187854937598210895254898158049428331808571928024247430846328743011127305100532374798649784158736000835436005077085463728796966736380180826692541339008599557791294845879719843757163583955998365932893097717794336674857083531477206275826959664240188419076288198070464041709790005148505656787902280887622340547926311025101622798462801316969158869654060929877924931233041170026279459290179325505732010163215036327276040418555401121942796081055602107089561731185627552341136713545506621730195308707722567474390758801181981684780977690663070186966461380997961321322147293883865582422722939617570441576967407702076266429456830188890295868909809266639291354259379538228496229799342199468694746506912962045939396373821681380278177802898397275198906149670079680571807412936076771852972977723679603384023250386413081375280899302238937523911758160824448085164614700746731179053109024397298509920455431798064081209941045869228059010779669347790739804524161761545433954633957009657053510169698614776413027368055123113074377705139574933414386076605495856885640692244278294954270069401374587292371320589992623155956523017887734504037840311949023271947079248008178149207895414488516855173479731141635366979986904312458428675850746187723969995182748242815663427597439110502711923999732894996947278233049509341777810598948159258190650775307008632529648794803917162103320375066625473515193088867200261133011591767223514025713565809397515806973977799905297255178854185922527912484713341763009209822216057543703949269460293456864484864566606256426736028973912725596977003218875432462525613674653210133684649555476024397338107935771462373130223558630990258206535296223176457429143787657654403653584390235340655908030318570656107900260519291136226960219134933151983502352881910595827577710528727941214516466001579183466902475146249355034422827646597446613065325325145208087341524782495557540278511988992957445769876904095472861719213354773069733028804867758910965960244429007524621467450852753318523606891544049485033856143632527414409944803623529378316680719355798351021714346822486044567895603458981381514750826814605787552237626637747287873205746024167503004938716757725993474256226024994182339273984313143680354795907772035193239729332340697307487203724348804475106909303919109350216225643690747899202370478596911169864079693260829004758957611077436247663921950351044044001222777579692493077588371754851782524056017565819778322408642458902772432290159878344690624679700061122800341903019800826093943316339609792076538218109362008313153143448842477279549907307134232560328365174145487947554725207556090393497333471035785222045461423656410199222297281169506278838997671059451724916799701893027360342522363592814469863484641819411700795862799745898357501035333136094928855109139616786578155598521163530810339186080658484820187601427324802185947065894029177314211267716740281642536214197857236497207621493799825430974826588485467435266944765403718863608435336511084940233057105106188458938156459422188423257930566719833757064559430625800529968759415197722723582848402447461158983329816561020606761195554420980575919670492331643970601382133275517472698348825797425877986693651554023723980689630416500276696181612862019279244559405803322404874436496228438912514303148645403588544327484857102223869692792381791396797506573088914415522378950585405754987272126593440774271344072915144955819899933565151895674078532770851701960075323393370386971507764693194652592263544284481585161982547614139490645822233167792464740827018946224116245776432454018227775580717232104717910786945096568708560026557678904405327488196883008949083620090193889223724783449506680623327540045280169426835757371578774246839643509453740577916067681489380287595037593264748873960208596671663373553469314552773625644269705552887192301611438833821624900166133045711955272135089079065374920397047247689909979702234965559354604618573995065029041158557921198860327489000193030169492024284528718956680640789749563366938459427414576779062223737398642646742025757656115213475894382484946759709248066592984853647806558548260516037884137197666588700823855087612469812792681306101659361725233036433372044579400154208507080377035791530880713654598857497569158328126511381814299482420052620705754764318072347550543722487469490464329090070141034353902556526598246174075778807506146722130978766421766726752762509521814210540927976498612576638654853952849952131021586386346637150134017583499768596489177092052947859168365544966679635895286705764871827523852647610651224504731017133884919073622383675282763720734462113159193360852880835765129234785172029913091492404684686385544993126849578381294319899646043745534275595156909762962750736600279382019745360593373819581371829352557784920211974022996708266881154729027673884167834107258560502452937851786765463188307566735764423161207578258534563762226312970157060303529193105288286339429273418179855391750031740919783997220338603865612827603819761738039741586110098240542136687489994379790957351420221964423811140183302402957641202506681130449552978432495797038828802165661344625881467058222427169366778157680436506552318538834290183309597108424468272598600899076292220866369163706334717236752704950870327774399727060122125790174682957395081400605291794191072718702233133802855671037642065094147376802831747725288480936825183892371279090194301798842861284080113178525013823621878006034993731289143480806910500857360555845827135039617582483635256266767387170891985276846960226098609051603606826853194099694565563264584958272826343735488242907722415927196299816077044640915027642861406020441040993364664878839442035233938324957347785282491103191033479512976893065344753831096030135856083711206990756601928339284815595658071378135433822795200365892789747924099574881321466612364466505161389466075648899989153201624211590813640699860965811499177175028768596009299084129311005742922217107480522815914133214581308282640413100960948956730499525284382002970103631430143388499221252034031846337975547754613905044141553863512289391954075384427734922785207282968177013245036815981967545718478874246810166791430642972614836250933509466010630435049835948528558997729461950917134857786419308026214028700974162437932056346645588114814224799705294422505104666012049657688223519492075424695182609785883136031102087401430661400038388373734570497932346368964507788061383677876719905800074260961027926718764598251947813457230047980595108020840301848216705722073604172958624775617753103646589382779036808056987549367180015135449388624046178057410928410675934817895913005472610613561798472873452409663819120836872361548557295369389980243537348160316974161695755291490374163968292791139752744229086696198488375021799022443375137144554978277516031540198926790418038040650166045728883135939034157382680058314139663352710902339963819900240872496137511935365841379029866887548236037657310976616815360320442822683777431254522974774327104337936756858430736124399425911905733408706720174179262615345882643731114271448038236364813481955184547157498510946795983894742214387353171434352958218567143548979361687855642990344849296439027600487380396980330677686725883952244395469658754190973745429434587674983430277631895185590273932743029606308031847135956702307283105558776303011833846655114529556009605450360116578210859005487072344203959353028674110442576542638781092376451341367210388388083963758042943547349915190912108343800247238370688071900200318966073735455490020921144553665106294408594187106436998840548520350742481083942158277832156039864410580363021157374353936461790784509872030734763934126681322549633269509389023576486869307844110042450384879589800446428254304410922993556648044297614510186551308321163359689503992877995081693854719958111320260468261449670996960573099175312804989420741476962677800230284523968063628984310572484803524698692197996818177362677602429899806961467725663083658150410557505830595165087441696864322669869023141165349915110281200971136018305977275632707741599611986260375208638626864749086631649662789910924809730615020501577817384437701740494150740917753464271017337638446853318656804209781338241920996186065314163934071305225679185830839849005350323432821696720042248931768562598990213399287751014590381294488249755299264730117386433179884928609941002646267482199380160906135621076010871114431965622138862328563570365400038784861666639825580303605954228432329824928222137588685152429348279362584744418135448040136588521467069773795331410983344212160735521308362270153811100988470780095506307078708595304039509566321038129088823669579973869630543596895926180962327634001939573703387296983265925374547129350284499848371753398559513245747403572700786175765374028455472734686545851020681565456945726571783255121980901014095276805587103454552411402583363476871543622044373615751585473513025533261535409056010111350519272686027482470855545247771757302177063816009833849636053699923343214302359008091760088687738805581963060775301298449398488003260723471194928650254540321774108601887531259311785613400076877548356453504592032374575440467170628760262860910019870304804334416429532439360253931067150901913797507155991182452860035544242652988720916177467909488457437376776285573723369262243740844646596020507734479929354030348195900560017550939148674972172802915647247742289157323519362324026598363046712858226656804062927697114957809590319843258103290363219726970895196607158318537604260378193947800640250159470210380248842983031567842352065931506494645637235522571369285070489992216108413417778983273751618970401546710641379459137804574633108221188766793611161192006610254397939290596173072358580265847406915478377982935274588666410661211643234623659559173371663180178758540757562338442252719309081371972680064777192460516851513736457579465951321959086137731355258469028434427507045197008123434782282857947341439593907925553109519464733587725618920035257231433475621678807587044903016195211223404929960210015458594633697014136681467513386352388698633896454494116244921035874128255706350362766703063897871057793530191009380296210211417191448144057583052843780167641316187359864985933938035121641206416426472832926515730051429883307441463024920464029126081226685417825212901703588880541457470127648729996078902716441513038801745102630270655066400477934598771143845428976961902640620431157319746236390266117970770996675406894681404927101712958851172619686873012034325003847680259264519199196178192509984498034927247585882079632181044332483369486173958068335517854711741470458220907647154514841430894868596202513695464359309628527964681041526643506067681968558721385332734871408218503618652283484657984575016542523943392468232639549144705232374932158250739294505692973897066519118674401679707480631931886730170787057587936135644135320229711520992418840656903404898790397272206286783887066955036158594864356292997288038438271253261903903945379747672670983038644201640492613525738193877627747003849794492043018629342908027125198887626804417500642513557968295693199968709311181536129580095694204847759044969670849569653380535890504751310559970899594431179566741419600734862484641338901316759477015935190400190146174203142727088299529849460584867296132483793750369299315858826758576450236993660272402672283266953190814828533159171531163926737390809925798943021262066095392632854245114967493762809197052169010932514596552771673537433293212704290219009137247800830661246526485349272312748922113431771401498316739940094134331132473603576376839820511148688544236850968138824316910215134380521621517230603136172724103734985312230798702640964002585678461039190394889160486559861465165394110300721792397544563152852256998478575333881872928781128481774129070973258065442581993925263053921069988113518606025957839434208092346017546932293259374704986333361300973750918376549035454605731369432800850419366559813606093022563899541611247939038395903738383095708229682733513049252888555582655448335035015671389672653176447815191945594387534725192127617145336393111170591322380768431582005159094062331556170681203756500154827545693990717085110479308071566437498519083014431826715930680069880426779009616832515117717576497659401389823656328064331540987975205608848555418740979038829498033671861834025635575048181640707032679372842936848053541534602348796616706140294909225391361050410453361748587396579746588921846110742492326282318284248278446117785523766522848865027984888341859113301316279266377595540786579454470581688730926311829183642245739124996250417645551668713868882400671493347150557397521732064086092495337299891402377406197219811900780463791118506513056750238137888052367978723218598634369073809449941323209867825190285295231331925453765697772035018332493930064514963492116089573587918893467121777584581686002108563515405522427491051745067645861707370880405405964895499728868302903359957673007553571027854949625732411943055001839347715361902479589104265594771514631555279368197305179302029961766669006420760925604574746745176077631293389593918557056607038962962505918531825074565777695473992148659572648001536105005660621012616896690677874381621667945766835950381927157693458749518921541215322281242281509322313800186816419340119117088711889845098323196497892880046998288527930331539917195448116517611993142045508030018780456117386101948552844126856951584415390606510934054246255679637263236422383658030874589281157608202075982421693801454702268519264525995762967990284220985218480493657288764649278134336801068301733638470621991497283147854201368493966374420069685580787225780133048124201529063427405803129122074451059781464585636671243220405501852466317981737808135299843104326265445916614433441693511493111347794925459084538147048082688744842587231854497557413344592456918313502299630173778505307437170077528597846751247158810577718414231624170047805527106950267143242288781641224148292904423381294627420465244943966830210325988346838328962248199241948971307534129429791465348463773225575799522059736905893877253889690827207323171721077282621694945914483437054921234464922475893381056533083031510965806779510309631948005566459291943262522843661763606815484496939508678057464087691630871634820197202287360862044863436166006747187039455649792842712058478235889387078793417075302621841757305171442610820003037396071911611225648507265798257363194780015236835841720380775372602147765360761490421261227337815131283709137804160248557544463269642612080167922034715613967211807962922133777992957192087197345790035090444224578917656967177114154923294293881421094577997648259028810865900106585937669254858712777332514929500231744768437225611070130031309081394804445088234333165691041742700737557892524671236420628277986990742363747718742854625390205716964081324369667658253187410615597855219806560279695608940177001837707391832764998990487377945844259538003754508950196924411751996473021235228384436276062081499323133932985878733755960579727058664698454435373003838432251509110034719962131956423628045325187386761641638046376841787177448124631712818953087605558821549117939586678538270937455823049392202741391921641559816682287413849931327654597404821018251041104516354118641182239608023333052287792505900105069640900267972225082724847624242288441393560324500546466656798871362534580526998807644825916823319373107570306425493802607395734670861077114954631545143305948355764082077204531260416408583923032510094814549634134509621653948987120853055694810721312654548897257172618969613209817758298516399554600491720526657587268062903171015953326897071312797668004433444297012438480146458077869999241741816208379812054906901288056333481515421478016159418886499643913765177193723853448464294221147570732556571522071666360629815390729633167361113290805830729772907621469576512240341490748285595708639916758600623908406510275450474032413489112203918797226318178805024194796063622535996878259257403232307790161922867589200901960987009089590919727245411491634490618436853582869168227333074508661265498831983594196612815186667957963627621080715347500728624225868494098308076891952413591050772028837320650498995571055878240808599198292661673997621254210748091924547940647736729021399572760768451310173625181282572623249311212327426187135331521318293830866072448210583761131245844321201838212775429554886418499534877431111157846801283713540128741774752830201921358101074686258005306844846380511674304323719881200742328980068956755055916356577347407003944415935825880899301680206534632604277732413171664593768101072703495387807101904760919376479149085071530723077449566619966734022221823820543796814971981203329991176157915540329156036605825950332269164384167368152928169755746961179520407064737149265906256654781898231371427586183537502664773439300930444882630613007880303554340428301644764394202826823044574224858449219958564911451075117276485978623373252941158603363198379398466446186848373855070942945477304582952923373052529108925251657082556547705500718417149349735960138027728914622689201287644188815801017818883259607000473292497715522569288844201532461053903934756192066215299243769293499076596498728069457525573136582434347127421810403158728104419443786870150490215675642287368730559238208962463427851933063200802644365009959948396940754638714041045566771295020708698587515590973654574677556337646294104974259710898809054843457630428726989506283723370317597593008317922407559271367077709237842869662648899849054025221025989167020644143790726527978546012635662000030050411578222164884108600312755128391941037433769620063277982272085673015942764995968127640449652943811801497228568504242145709140558562482860672318628288625412425403431157961871812648687440284444448457535588295366628300165139780823370228646066313338316110900571556423287274166443960858655147288714322386846033656033912261866844580960038642451101015449992656213411915991064828094210540203634197203248026926853497714665843782384505146396248148350710999883473517809909184877802504055247929175539182584607383075196586306616961028192071212733761646205866608054337426098133924994141123675647826682051688008183467001641447760371896642694460037015005599231290201983014800560328846464373198674515878323961654001476932938341512325958050299684708866141151290446596270301816894872383749440255668558409161961017687785898094517849870670401368221867882019933388129815550076491954967491402787304728089583595826922540227871524014582839443980555163099286470397545500119263967725414205171421901778624254327994568167072239250852126004901030694575102978667160742470805439225148616701024616199666198960797848621737171161463684249688246862623782705419708608127333731101566879094450877667253701663042723555181920712535202506127748139624948185073607376691312181973903015472335710760982423945779657706079411856966244151535958027407809365408725589938365217541540680994031865543845962589044533898540268178344173405686448469919108019372159646702045354461681706516738877387441521085109084968996740832745382784375064773149952289307756478424247361174502224800380925541542759871554467189435842871901301743725663705050265960163763140271671659130637342597410492452599418427165497498452055098094778974537253706318077416167159542233686629031904470488208087135851826949375441041073338803066729762260869681105383191057265345161934705688086263628997602324026301045889484635925128346808054185893596979482419048989378548861321797309182887790637711864387298289918677284899702925614022021153527257247241358249569261335701186844567367909576333577665715573377409504700556838993419156194643458845703670405288835312136268109033694598080813303714732507216474563900565347974170671482692089932108925342618447372477780117497321225343997784893569592128657257218626643974217092178572799045105528837554917448323329967091094658577371974108173639333214083931666894100538285543578253421371309966387551126081825189204596285260839255519612895774582080343650087732768266356610548165888495959770584369890506223206311724466893195392230179629792860930613401727537264008052016566866407825630158484716618559740133034610904658771294600881566297541701234209923794386511785315169832293972546518739568704704259077086104823174351913622115737601283478193592762864874627939587225892699060301952704060459387039830148943722671855622836283128543195461514592657360669134903403655988058849319573931612614473676077772930595456963465376681724422927604458306698260455227095579977969072915509230213024678983094553896050307129912729127337467501013711787369029736718505085330345469532253026556233571251565995851736820581936084016467462107290198479961694118401164022762274940323013608331704999482869987675852158871840803800986996623780228302776386062717154950116870660848879554057520231506004437549302600479855578226573385992095401412584882432078434635715029642249320343327957893354799903991596179317461416421667701358821500838176693072964431739814706512763929621237437416797155036561390982835771163505407993956019126686285856718292980358274049745466498946662015581314826779880907388127909989497112018613621998408581257384588721583980436557492513417729121568119800466864339960867723421370566475588496395471075276740602226936789307424771344770101004736782413584110549954789862696298551333763011727271712219695662918196761068522469041666434817458868508029085781277186858014611735850278091746490120648494715834710258610263213724009215870610960609654856663109021167997688292503911041206872418037936849892826695716491766299412227496528679214239588069555643729043602101764924580612411454128236257725524466198159231025234935335247923736807795748812487278339269443532912423937380038959085640103224267091361699092944975217550384484124462683843124324581405443643675958465156262613328954655531389915201532953748536922569180068989786571771068334193892771334336455286438804249175191700430052982713289882695591513649645680816931611255241258857988780144473921118615191383091687457850260479849491154668883927789710025614191360454456576848453452850710736256822886858592650768436657235859787523915902230733284932485400743344899601049538522713035775075497340273034310882454445690734026998227018551643447207149064001895218505657442926040904669120054994577585294454016220962352159951486874532910015922234917108956790054052191726277145067241963294902020322370877202788626129936053721307852269790742292213132544484531250530330281123780518926528202577211960935253132351995524006658656076284566218842595610081018937357332173190741148420097721365283518546452857595478804250843135975724601081405544586693223669317001614102636453024827961495871056144840057064275818592809121817036422537544436641466109266327669786646327478289838854557854175038639199158160201547141931874925579251262935284565350828397565116372906924747390935555894231474029572794222878626588668605746631818921681706978649610535173817876256214386820047880279806897840449903536633525012588614061593517493433750086548426867208995939643822608727648233541639028518935029976843414558370839779401970190905425999239728102176110608370155878833903364093381288678730986273599383695866594294306169364554599588780492542738231740392034906859548923654946965999117421219301337102535118752421550682618040567426992595248954722190926949102312441657756502114755449504632779913727528798552219241062397640898671483575133726305439650654012453718154778160259879493088115125426162726978582646942476604855296557213801832313612063930588056266850095685212851086224991086968510117250828365020487738606118634114727222434314435093053070994741141746626507054681521354419384709303817259762887723931922849739887159982938731083971892666048604121609003838271654743946338886292387745822076982859053897054425018067560528692021283714495285214985979989628675907178981623137547060241872852033284653893989454878193565255848926620460557083267163345098534785845649294085961401126733732275441591195709886535008027994488575527547212627437859574834879048754174785545047554474670906736856084413973602176579930309528592219008787280985145950452457062576205283935717948271042241991008976650831865661393529725392247338266870630378899379381545906605532485179947228119134387840075637856767258986623311714918791811157689030141889409681079348596827806233521751724102678361741186428272461304068634712823797043561389217731527851592433934990769752486090512070298592876858155075510926166393982762961979775354821772512721718432321173471779882372570663490179478946178956067255379016442384674773352511288873355136099351070788001205302206614646487274806438771016956706940198170596036330733989262516844053657714193037402574065139286950958468877568308606652595042637998159642845441376310768654578088939969473245643213031337193651312606372171783484644277377705809121238275088967003340188561922290815901423622512497608687873879169564928596134394189285160667081416851201266436980081180431468395933060595970708133958119351393411491598788232071995852843050356911068685011641843328802353265765920332193301548912087552993654259237317463019285794013604101012368845246757519084004292573403914008104619657129604679009205727647100669350715873568425709192783827564918464234688482204695711645201399815682327156429438165928117230450526670340475113108752191360827926247720853880968082352120213607103520774358906718572464531154327646309789889937364262947782239691314667953541240491255324749571473686131903074677511429696989692878891207192097295742563152887794938361428700719304610896098986265353390204592285703958194278990731176774810250339519295437877754443836528613867439959054001450195196118557334918889809381016977339287250710780337179553472226197917305137394325582787035237884593036112645556203301820419334169792038501992609117926039651575900347102379066596698963811338888196412901495315538748205252215369793632837370427691513117125143523536165039324791082142320414374612885430423255199520800147000419474814338965285957822150832740933042017718957596524351247559637243086860283766877532709418602094522432418749613221720679784601708908665816190726325685933194658022102308846068724882880434399694713355533680592693944911463043029951034133366670064149274489039847181973030706634355808409073351901936385143738657065580386725752724279980408464604439572705625804198309799645970152035164278711323593609933082179351516799748626899349252342686653273928555574295569358552606700752350969509085357912259792369915895980725507731863884290238288479488065655865324886883741039650216743192049740497729181500160820670166335854557222011661495348903300182042224628608765950041072098123214510627870855181709361878536461395986890272550492397425681463544475521027343659962919106997417902081749443020898065261006102282180105044001166072190346617419461831727595719722090852710358727755474503752423720414887789295649416561817688819693749988765421607535602502174395529428473063299513905298906224995872862989003410257314718644175238649505752430016809778329542430049151852063628258275518540036228049571790154591321515469158866069831885021597001523299302889937410728623505703650549550740561287013488636501572597397289309458572661016065788557323830150018662053225579356872754303564368393843207510450343150556955216492565815306562545602213338242726295136513012099816998131184445217325562400227336455316548498333305648587253289678937422075315446488290459053314082563362065656028817009456237555328180668646386604576172478852473453611449166443408250609709864208912943506899498449508490434267290539585230588933551880622232257941587386335281252323670465842247413749567959298311182109068936908584148090892727320105080776097711845734596236987322886154673827632586002843232599840286528930086780261591189919562026173866153563157426145809643834290519387814976471047612478488996972182158291180453145527960654704810091222550850703384971786473721444722270825129706887663375600016900108874708182073580986200449279770670993335583860766891802439789110839863043812694249637258749567948537607210900870958732619053278718841319248615920240957585041490342702415995718419447738865302447273820060240852388920998187313680136798390461720175806173328035964213483880794947291749821867999723494418445805382556477576043942658702254265618453506555604720010762243758620718018892538641775129103176291069400485237210898063453681723610761994369518131314715829557646388239555819930811589173494702531445146646459391380114622458117121222604869675019692947043689472405414379793042876345270505062218052596966458985927901386776815522219594728107258614828795271350006379132655112910426683277028264903373041588845131339828842834288578865832891530370800819314236181179056371297873689881221475765123046296198122562353097443724396795125860849511423742002021442828521995494229583660533794920984643337487968511217454579131669622224925942269873635081737578789004894766235422839140327377432519740251428368285067923272529475152175077204790351634367913099913009488213836987539387279494416877164154476598662053852699631964590818440273738810750726788582543240439830304700958243498681637053227165961930874790222391543304201605507657158830506534606531344396443145220213799248142706899137006409202219031466417074360965217833037974024145432492468623388369567692295492236295700036324386483430010735348567198514416640849336466626526806354156749219571982198750060079760987534215390182165705024963353412995187207595432925639491331841665025621603952911362179340411680180792223724094191991139664304744867453386973088891834551382707842472029670592214362540478541588833243763221709710105088313142585400293658211103877722028886016949010440112380566224527495932382430825777262417711306923349332309394628358689197508077892475192150805803464409773113003952396812181257461842239598142505973790788710234260655924531559014083573489108753145876249629224395222193026262524102137912816650324110394493677331548568843789318176529224044998813277594137679947205797606280034764204810542807863811343118459939434844557358693336395090793723707883318225796194823549105767645777987559390966680730891210154004628657921660426539888632248314770554246997343495484712146835020075989323155259186636436250574509493900579273303632185094885077740300332344004883440139153797615988533521065392569791092664689262955253698874070048683184227273563080408595198210233749368293104309267611441914151990167796077345059266744910322044635820303954220312216625197569605616442641245285725326478379202080759683463185240537356851726179388879109586973685118755845895165641031436567176479259553521340724984217716386352258198064671683217766834024213297559812972699712696239176988098410621168529425211701201760627844787552412703626262064193117382984068815974557486822132003208822376602312595108068683333828953308790580425240104842014135645462176753304520148717862529802725946305588996576383661453718891507175705621890843713192536864135244747275229575278322228605807384072328659494144922601790729879293404239202704541740870792022563173752163081460920695037469969874478006300873599442132368629986107551859542642292473418540453731243681338457077584751334798645126414568038533861550264390092225369593405007595424244592759411458328443235304751575827304815258012393294458203451276664995452133307708254476033605863038248916819739361541741241590619971797299687391902640028064942536818669608121718354864524816431380644223199055202011771466516794930863990476441261020016315833025352898915203345058282844784548461618272401212989969603691666030286899143031234443876020628044732681639903027785700516170098919470526084751970711995362712136514662709970531153687951754976929685125971405192350770344351268871112713683134095003394620036248582293944131545769787788522351955578650001965633890205730540146865001160897932089537591720496424861388182004783431196630451774479753234626894021994159165918690652363759240020384417467149183342408386285444801303230722008578575899752032105659284191763335418042016722425948290769017854834367850750025605950353924078950028642333265177374996304591703606770149389706668701433918716940353565578686674079416125760647356526075832289215260206526920704554878049857541723535902899701737436216214781266660740374046135925941965984867046076078469598345912075832252312664656395426129223388504399660805307380693690090248079075588500544820197259404352522483818583976094035757820093628885640248831158733415456293975924742863687510860359745396511952397043856015031249168059332460781839536864370411730478341385513162879250313854036663616851152992554388324667869382837944553794803145180336960491918035839856874036661672519309410914874659444313543706611225293397398727401176377869116450025969883695014674948283540922710304134018964601650283822507995325214124221043676972118906471727867588651826625060990594123167218319502910606007023659950479679960964413913206259049317238730200872756277045934245439357738782344700024551178121089792607541117724536148174369541272615570005525441795816544610588147070809613451553112586621988474161242474433772353741591837730731755604148375732829566665871657648458664658730338033330896101445431706018078661922125433515728878864722716747518537756409196479833624823966268441545173852008221888278627830023742384900232101162741068526821866370720766622644454560125311544210270014706117478441393657013362565275637270558606540009440156596613129398221967671977867094001881088200690242603663968765002443341556762639599917893102919371708379714724295887183151620466225734356875666000402586313114849861830586970809165930463331318435456963951889071870670060213968081060897111942319440934591454808384464263166739417047956969983446670524265436341690280775411418512603087551876725776133561765007543313086429807509408644439582529095198929211924854203812963604059794269280523805907003351254969293663419700812482774635370367385369479623607292948680503267028334255710383381171740592970282157108251646656852738133387060228538051072016558595049736212411737382391381867205931328373945150252813084308676203683129628521713541472447434552327236563739260638376076383354727731059818844766233777133723793633918018182119742830721749762776908349044939522389540057120308147754571497354949627596470771851205766944349762002248052832516123211404735689097418916913499737812604297420397476672953523776753939063452202603003925506334875560929046672384140812792197642308829466362075285586237418974354712951082234044056739825463198789440769404490477527001203124716086095544941952124214383285263957211953136351641642473552036428220494988867789879841045949650449657592907518309006725727870308985763986768368059464357595814118515537236072789460553793950506914649849509661100225447599068249437031335118340407842748748631862994134492601109381399474374346216955415000488101648383103002613802478893404230789672016966494847583254652724307203669463952559323751598741453406501810941378788835541785062583351790049600240340349361966089558414090691812188859549808307967446559581431431361174379016131474616934249793776718603911159973236803301312874645034051526274564360371781790623793152798310636662070028001750958149287096033898189068426076299305044494627792323649759656192839074540095770699983699876008681760427110551939685685787589576415301171984283262598687453359133672639003612441721413449089818509317600582617289598729403840422575279524247452033368590192938259555245612642133987842960782249256859335205181053122354061363273758864194878535785118435240211031899943889242807585457836599793461509388465550379637699844565849374118038765859776949282394823309344084392671996620340683853844093966483606662763050825641260282996052993739821633687158394976364374103595597114950822782974654730045739082037581086439404808942683828819945165714318533923657041848278547928757013222467011189929089704387960758561589965897980408204798182907671698706716683294844731247683030286122571096872863719623738564278922823859502639946838038870872273828832718656298548492077001509684325165675802378339101002984904944926990753361142063933042697847763092722424883861063408617021267448717214052590069498149448377198303651382111643065867330381579470239229017833372696460470638107646947444127104829444903109041358880815013432150603590397518367640929288890669854650997887249717017313342684388441950034225936500215077572188694070796780726007346134452752905411856282629244668258303736564434972616626509052741257786824548694731749049515616751837823786411928935689085040455925515377885359249157094985503978849586985822956469242721458177097624572642763078109928664651795037921936934145014147956526317283541664834827987434652391609128389106937766753290421762795672468575758252282744146303666587728773347589173648456291320523548238556931349123207193937696369849615941291390070683225776844860702577691809005788564374988391553526720115235077961262403728961348770316515594544223423805590047981098148863691086842180819828965374713420589289933469370506317170265225480903809835865838859006620348424312057955679810544825231826924279159040713848923796056788024784568782897839091083664730885071288245015122130234981694230583769173080771393882333167032313900100080424564596717560426237442863937681717610161117405368589217168477439908385986709574800247884202766228274156119628135482273203836980631125559615039576315874317751547824743183429885802317272942178839614208012574879503542256393424758789363703297167795897916294757488195593520080077367597007237263822258323484102518974396633759810338405780025620777871243349616871066300864927146525174049522598682791936042379605826371083811933526306565473341208808161090774629339875804972883833775752671956320623013057449676274003834766747003246454027394778515577859945510698712946763672108189186880270475666247751286586902367862146435758516596268171294038873892634772318692231810782489110166187344486118672657772675375112518493825930369030521242551610595397806738543181593695440796227036380297809246140606892901188007904375503692165302608442754163191052238482351878620655030729332860028648360516148468158195007897542139785025049231035182464891068460452551831166755484011322697326242507329955110376771155320801640452605642429505443536724590182854329327640723094748877848495926105577701116265531867458762052282248672196778097965091597460766022151796779128872429870908608391772235555401869122545232020162900645568145230233604719759697815867416630042737191742460803253152369267606343722671553995005619099618701973978841786005545125171131797418123249989103229330074983496984071687475919150356422573447219051149276391153657288929479007393435874094103755209789739796472620875373678280782676337635772576854163952197247760116315783204660008149753862597116748762861097503881030159306086072553049662498705312174267394790780158468937542431800380996481267327479788906018643663662376575236962810826007570961098866725502029733352289049046673111651312590777228197997961854911337287151795184516507773450016513734491299135306153444810091706705030873362901165871946312009339939799586372429920838257834999687208616364834945122370708216164012233556629455276334528204990734268084362976196732071905870256499954830555754568476011769955639688818376104409139099747003313485690730265924438316501794461233938353289727443046020092653771932751975166092482959732021762274728301912430101622470762172506175031158341023545907545480622933085369890729044492179345749644895664472551904680250435098909125959031136390674040180794983536752144496831933604873627680038009368056140410174742500143100221587731869712497887532731635546086841653948828429226013009279236485630416732444545102551891156642404691403236968024919547641085195453137279445677610038611976188377111825863816134524641139958781891422674113385822704738609850907614841005783797856275076210845719962125669369113268996342497389495384121604301462755273041268914847506775941347025475472179513605428991183931866892429571943528836449094764783942974665708830763532173161707967917724988785228116013180681024552296197117977276372317731281463612643178508810233483939397522709087407353430724811675599641346281864573408689444767080925762964147030116051808093791005962078597642300215232013670691725351309594190520972601932645053299236805933418823534568761638578092215165038000283548282055442689279422619765876353987334555799649722976848852221997109591790105730264005671407342170271549560142362049133767833553517046004956144505845228123009328812107897804352752624114388380017368064189987780863185213748293566746721414759114029969297598689411934089090381313461196134830621382079839815538752914402011450839540529771276184497040795004138268847934409191220073410191306789829414909604122309412275368466840194566391929538166236227913920933415947465451178161148814748966608768438690177982267802885353651453257502539671535859348802170904923700690633252038967518609137496786728922222709848022460451509253452328898683544372684328293875599213897636583468101842986113707309355499221140614417028755256152213931039098390514943939121016647913823716093436212021645532147870566318139696138717828238165183632138063147293610861738070685367449762538441873846246637859961318564280672054787685521501406073899252564800344805084538634304668597103561490670614058225834956871753142852363201421562117120986122043661233476430524350583800016681671194463429959381295950342252769579863779004175178432975829532184742341841741124115208223051757489467298864239099655382562986936629560901978461844237422943409037339840066289517346021309530089155589385393972598920356739451359235230985339259323259911265363448497397165556066924798050661575172408808361937452076789441472436752416633563990580124101817035495771124785666005294686464838303136967831789352837266530880589642454444745324842211867952064305349902577635638103502797783931830690907844457793624002833958156425800315176099496491223960231774851460890735414697203464279850561177331428575131739718627469389089450112703267922816040319320658623052263540094128687547348760330239247197120778034469216045646620691891313071739356511389281161763037772520394866447326574312276105272178572945302156649435522012502937163064033667447679037311353097156188067249822886533947827992768692304277757855229909258508808716484364687561030503376877615287926116029469770245326088440081483186420309442672814944121945304016492799101629729990376855620864657681810217941131357101216168709049645472835472009189352421271695461430417456047299063853756276379370764894983280584892105307110157958620177161770062498766017239142938681215197787433584605141139558011974891186258464853239136618590989793516197645384022457622457069183675654506676713565565954969092014201768873910152755895950838499100812890507001660801675754003444601407675436137000880392674854374350904755172992557227123311409075619879709224241465458606357829794902743953606077351568161028679303028376610861201736112436224375119322417738188594988331286636230247912056763398383632275920075675362262652826876008321396521149224695848061248926149174345256616953442084598334825563858467117993068782093025032201848828272130505874838590461698815540245266641144036180725934156900307015394919982368723587544982813715828080723448383001173284348048453213637354149503288353704665935610943235487184297146926765593856918322969128600607734639965395725587430111436111968984974911004311604180989813094283836391803299355534613638329126220460321146309668255705961496632468347649640941688985135051044200374738781520922096569034599310246565063795865931812588686168360571096962922373165617274998719059815130449776036735726780143154884747193770837759009874291191988638981730379163488723481445463648753772675177530093386849568222699639193500927345863391255675722825561416248990200583095789119156917590153507113655636061347521648309169025355385669639107579963658543868782152851391836205910512303293632006359210014874199652941422795443650023491129941930861629432127761146869993927981088127248815665779717434975260512163126964560161364791539598391056341800224851294030260942804157390145252424828663628964456488475849761349006260037512972237626801808658816203113666388460392027814357665362266207440106618430305089638379697302388026691175239226589543946512292876492732241636405588575242938038826020681407213100622868185964186303378100282942591692322143764443970837532611027030294846514322434769239041167552317951826013849455470818113850284529287704566428254731615657279367257706018880965787020577040136190965733973937884691173451926857958138681966056330683334589152099951662647541542991865090650287750284258233461821703580633812143260506416106642522273564972802470652616053746584377840888265279590288437208095685298251741811129193582906938438521339737061086532961631429337651398908207093838945861532691400021480143297016391491369910740180647361654677837847775348489111579313822709150518682017065710709696691870171820456084915137735122211057247036000090743825891934144484702584774164364599670327275032343807733594545858730398644852716006526355592922417807294954876298718723234395052164583044320746965093892583397387535747473402595436748158418650762044468732898152201986228966075755818285793602895971877800311968306348671527101639420339097077104557520764807321349736691804970353761894492139825292539716059763297095192099649265399232833808145299522519026569651967170272902977675698440378560605584611455276452567092341854491554403716593194720659293105870127344847280645313158873405581115444719713918558548832540340952619530991246022506389952074444641447599067893710668390017069927978231990678635149906839825966691918192130327043678640099438435250522590747536812974229201761287768107061945536890171238948276250300577145375663745836474245739661102820779214198157519302771789141589556649887458661315348590354769390485366506085383499341942244082937497934391056347356670420115819737388437336106889372258882419742176479092580395262221124671553263029271330162221359269487832086232275167805376883404051923858066911124740206031748806389340648144149867933401380197549960971413712204081747176927318937500849077785730434017481044167378276335829262326681226861031135669956666873024825378572295858259182974407326784097363391474233801406956386041396152287327355001540131939505051806014139656585147703935967380566353890675271524278966586445761234925863960454036236975767944720475795468307403009139689566144664713632852389791639826760620587126166514543484622494078733698226873548545190720763555612263580797956063514665785698425634741314251566485773404520503964181244129322217927869915098866441815555266544358048719677196328517852862434088448958249086519878882844984974909985495807482965898304730298959259127200491988726111909650665204323045899349639733059649093129125269641894867350004656347930933668890061080687109233699032752195216913758695860218188551659657080862165310693477235160604378502585887668131986030341703090676931953102954850846456187662952136468835259787050700354637644576252689535936618651153063261154570160700712221309883402350907151320789087195834673920191858331239341745058504640645171892410947116101903260065036860690667050827694745610171236497296540831237220389950834757634195147956789881832378083085845898982788126525219615611928884841856883521463866892972376902516513510164848019524019140582585746114512188801160220257441291350708372510042320955265880597048191220096739371486300566931012500690065901844325850026608032515134217475808054494553158489586340292537053979871189672882484024019131036138158087391049961061223007533197531666601332103026429582905162429907539189006502547887438845695428382800660093465480143186545552416268921902638028109029858031256132898835626682051251515878089160216302169194472681556227346385271224527761632405816207576939767462388703156128314427212569608881605557732194277179371591462283881037361728940765077361761301112152378622073673997491102342260641347447115676524069184282943405708710211328231425691929224040780307143344852051265586339110538010993988438926070329115801077069724144323312302988017148488902593385179294138801657776237359456901807581288087234308963910265883818030810003901235010686264264347182093850320150574053757207707184402615768862407955509478592737344022919835622236448678139971322411471926176065393911027210507254081337117913039388551093960921276212264275883002684974641676585209575202549049060539898834391876311105531748394785223010163308704356723814094300750701706292336175578743950716423429086648664990306780591131413492526833437340547052919342509613136414289686711767715545659347734307825713322180881762092342544273908184357280654587688334803649409736389159610800244051142869818019037975417964131089410088913599506987911344269755351088335616774768039224582532994761347627712934978280094352404508921457268544989306998740442792702106473404905288688259301181055159828238998005891123607659745149865620592417827453911799760666323238767461702182595366006712302930888768643090364737588970318975174730437101584108137375829363078414796421667626902123096218474502160358561331826942533974169905024064244475633298169397430803032770039486099702976176496256115321552745085501707117462573741750671067207477017017771338480094643992630900514390066287027572690883844613142797309967906537246995376757889222294773819594306273201203581912008240062794302352687955533436577115025487415815291508569743850942411335789096399372125461633053713986771197982395661456582463139414517920418913462490792876018266857191988986949443096061276399278641208037300643401886851519107651539721140703739281364748798199380055098630268781451471348137040988265664248479693521132165374051476868595768747305112845954250318994236954778829939205125373114797838257774423259808837021878292232475421714674828111076319913735491419405454544082236187009920128900403774294975418821422335968140783594088709201045950141167535830969270598386525020305366271036931741716628237210440345356424135408629155997283618320823911106728707078646557369087762997928682412083601895908182887270975720263743228406577172874910938596375731054925504613292554048928773917712807003154490571533116628078617217466775690733893638299866717913475455848560691383908248857894788753843810031757102533151686921383535182315386398504561532381721423076652792217395227943368566727396154682787816668389470400317586382370954387548924799188677480317781607012779263183277368309338139226459147620187013864781882494103071575011914889756739311311351452386595845085260540607574083195914900243430942239512702450810243641344292308217711211402371195620800329277137759201440742598301042127502918343523770952486534471212231244000804479484815988958484791640288763666820481713752259751003017685882855070733644007630538006147789607436632593188352364386309868578957731505801633529358571654827615995991709169678410055154094208009337113649295175033090886932811852697259540004286292411727595099721284818275203668147003570049529058771707622704112090929965013309218849832081297978392769234223524249241966223886512475155762047720936458101811318413940538629846076839800915555851760540724037900731222132942052791062108737377108817149645695401744118974953038320157333858398552590344641676207268645052697246008752735509229642064937748578840749395039555388187285183939838551179518261591219275749594596286539929868178788838711335195339270070160877929171792703521447610026205699520309582444743790928263740722945795792036387626143173365019563842623403075845482966803154961800703356482905164722601983924492598195798705869797961204970403211865639608421852395181408841047582942960088466636721872528687378086739197995520662103663625744982518667821039569425270508238056465469782225634506904710627171397796960758057499918143005164128491939041741768823565905512118656207502176966005235585213221362324926961388531428292576895325788707796006584802218491733662451591825969314615234948164295278780227136195417438343554988134334357417459067401184394910248158750842724199946059176113554783980406371499713113990662869666707352644429199436560575748763780145377932989691308290926084877909431568950480761614180433282478485235687574384065966773504945169120358352287115711840367534655079026659180711333393120335639584381578360945232296848808486049553339588417525364323585584728692986416971011492712714078144346306057350886274258882118806613721905840555902639470177429698299732345718073187996936932842661187810012123468726369100169070971229821004660179246165666986260181739980613472421234637636062933472660167865795929477603172189395579382691852679306706228447400357942713278553095231992021182711664350837349644286616788909309492841244378075191528621772462273557172928690679168192252727331438679887352501196610012603275310097973186535360633462755900576567355628331505274618841655144124388750714265922131106624633759005690882641525280389693443174220707126809984227015658904185590625834180455784463575089189804254958425127713464953476635701585707129517748770397276946293071908640158653318760518509778680134237009857989451107888527563851044569235390979588179661300535455915576678101812174358657923449866613735162704998962289114544482515797722540393501822899171354666674072362379322720773228452809281579638871920384492608096073405931105778660474075819762405027919145808185633318144637296322864812911488609355194404775515533769916074610671264977428902927182046283428799241980356885979035330210829449786287299453088228601389163901512680360721052301293783824422646865710434271268470558923799261778287015755881807436094402620052783424681054274895305480989122690214444191066022254096458136411293283286654333635048252605650197705621415447622076656039680292672616204972834492186747668595428028533745254790139428776784323875938041326521239955568130515069802610725052109738693410936793271724892592184295197100321681614148238730940143343117655994271241570950054726378438666485238367732998527264614741581151329623100202703190310661769517134021593142601322965868188444773559737802878890689114364813398671172060362488181931085258489503029896691194366746562948517879919216879241750356121778155564341864814211512030377729056973082506527569134137579014232054537892279401699704046121701772205672679565923297084770380630938988518118052044949257117752169876600393504942953594846236657783609362622932446974106804235217111996092523859264064374060845951070088358257002933895198620798931136273357275418046725406137188959801622181436894137501374195945882796278521731839101390365683318480202165620956623293885937659420205872708056587715768522527675621480383050387197105400201882906963641022637337438987084866980639753946768847123838835815473681362550175620179557192701251287295132997970638495669958621586311325260497380332994217951066666808262802946527389318576878369853895607331407854284931854256270302566734820726005864253171927441476968946390122517003614220237290204520696807992774404280173474494218262435498392977152147829866691358170086323194226288500604775371483173909399714900357410980524891068649722686750055210626009078116160216804669437301070149109950247236006790289808071288141439890146254074258118798405655457459818410975892024305074581780506056980647440358369374434922019608391762270027446102146094274550726869314018003236132367128674011502070917202308532032704660999826692565330002080525270567551457260400840804088377805258006212795279314919464692779229541781957558378553512612200244301755693382718884131523152684661907230509227726810753593651721095244329366234760590584123493920480282028325132221833667829968405117430991718251014628587162571886983634876058996581026805137618717004325265417948067530368159035788818784430757617167241688167431812612500446301989418164006299653488073360855415831490635431738999609425699609230110691708623252004967318606195000411056918514763279716771916413882039859673864169300411513924155195131005881184125547362645585331230156144917867012779850511895659682052579167788492856388001832583130505845146454361881891154055462503157446772816414907069914151332227503328978112643526510066749163933044431089258619475751944841949913997556024330181401681032691078254892955097027135533443410659390653105919022317906586434906092988521631801235270645898703215326851367863074198210637036381497395494466835957371994729115664919027394121546891603670610943798468921846572674063882438698387376244289286787123978291379847392411380759886252910247267693092057217395543965482109948776839285338705979633369828045585758991235765725468966968946346370240669735788928542510670486757499551431168578952289225165129169972270759506523712043360100851758376978767681236751292770302536130610624096772551985885704711140101556098750272127571928601053778497341517519953312788542104197089096558770171309194219523026945469696806612538550185884294509570949365393470454087561187995149818761990838019841129931792007718553194885834053480071251581688656517901023335529094497971851892394527143822860066949257723299749250809380561898242628532779357687465773856690754989248348355304378460060780727155516026750933515536611542439002807739767688756464453669967150333697777682842405351728652368368812993635620966385784008646171649525212537140558590462516836960578646165839336518227858254122980037731716594731941098808328829716627362726969778761503054157821885366033765099071992034747701783025771853562707375312320279024145056754792133577950681023185018728131654185536527492048340017420642285907693803925219636535577599144475444027780525005025592370136054628280799861622322738238593165421468844392663195456180184638129893231394745894137832806902707634479002388293455677408385132331719760713776959544008950602922465435568195969955647835454370396379498509522259571167334382401583416576885787813708510708067564034880198964001941416375693841970809582192737275382345321539438521317487298517497647792232327367216142049898872383690034769840715895154777849696968839922209008118617575492249054761227260169242056505034747049825655848146688335597814637021278085101732387560725269738528669744537739560310505672344854042608238292304144464651752579283968101570173683088304350277747849271173694616954600486184786779274042769399006141190896200188281869807395273600347587295416401300465268558686257787582148704526402858429890378180843176687865519146578979378651921580874204894521615751132545003124146761679732715418887120586976287396653674940585102264294930091212092401205081126074756680118487130034699601262195510988135749884916538905945180062965558813848209833199924592468714740290687766354761368904094671111164777331088140028394449769405495895885237397537190320780703725505094159507647915856824077782139978445635405534379830267301177882900239049019940035467974563673027378979858609433242855373696692549567637751349144910549080354030553607473240636564191597125577131275734746298646206662980827158732727702938054876206970035610799174068978400147233240160477527111585509300916544811637036032931821671833700829015264358589710026128582570105574098580161165501610319751647946613867749057254634658954611380215062227434707683337258204399920015704586361577688725156707799191019265056136098118937541968020945932753337867345602687468220568680018842663907655030956008012698652051058960072692509798564242153646158790511070216102893344512276944713619844848069687088216064409937851818987864123874544976819856911969163096412699978929805963503464342748630381906989018042720277777165330332584233908883735524055936601233595260449922017338837758039980959590666379712126430833246137095669739605409999296479304820941704019302118557857201244594046230361782314775876489661344276389885935850198755352648178928448101025946981919220731199230558213045944135956943403124346148654155664580016921004944386974232287737688445661428874605330199064825118849315575151062916040080666033265721075099682997672661040245385562948351544080277703281574882292653434855298645980338193675181251093781488220857298211464424262976167105724516066251316487760064064688559660884403919105870543699341542420632409458241112925782982141832852834438579658157755829901798455044214953918278756908587658319112657548783931192792008482840207774147121030976196122009118840336708326923061693560649392352337603489930272105160540283230380491675287553911841155315318109098369842101780759635541895337000486046952941734478715690066984813776386932992286740725232780973322856798398740273760276287106432250602699657823535878449893967728772812010512208437316003092599907004322878129141786867909526743723653880151709930275565713017819935423651578280842366369014871939623977223640484544708363207597923241411415468807302186563884629646578225093527221114477573490891435449166695782416344736700787911467138926941734044263301254215288331441997807936022661291933176008274585722359254003802418770867748856142148470708308310717242916841588134890572529053795775204274520439979592975984183301356653089170616228757016506210276390558953769797482678643983863051912382189006132173777873094815462516608539015453885239439222781508245411564452788864107064161141571996635979380582919367623803855178769748762674688971815880611941026777100687158558106995734663146683678557860353348929162002978776680322758263145253772419455832641033411161249939820214082008716084654539630324526337882492169995240790818137267455168149006736565670822548578847482939460156216375608287911669743151694810697056953932055798133300641303230834804171094569567169906025766903576346812055536086286572529118465728391497874794237078509365320427454051862680013989439934938238941527576217277500786687281743509345021151800497135215556232468420082899311246794368709061025827080914477992995978451212143037029250196675527097600111123019805923240260947575497296828096550125711977951739666232136920652540730038777313589369252413671625506494278537741559191681164365383555520261841611870506853101302914519560905320252006762026884386000342136283913414611760359954860723438043559335914032947866297422060885732132997392911677487116377232499296063100723970966444744121513233496111102247870957865470625992825562767136933664084395291610946049559497844719740796703268353404384765705192962164952226012112244650063785005762386049121978874917397908942080910628504764174296363761587270100017355957372819933574974755903008395602189473719118559515611515918275835031944676945475223604703623366497146880767947889737949989734632188850591017424501285918473916793814193389185916805357510091432168539931997938897415335423773030548155429597004523136625246668939348876060992165933855043735868784737943077802410901587187340460675851629234133354756043351972124486594768678952451273410273183421780802969349118115635504985354446762525127721746646264590170121036447924946308669070964545782882565596665217066488462341454511439232507675271398344981397749503402557395482243282347126418015622914693022462622172254189353706461318740163282524716199461738995360410086502517723078684665462563282758835942349083646087417400803998436308397656014091823363873351704158903721045921735030883086767174809350369784131777771852101494651712176619691445232948379077854638518530478322164476826341296485182489794337181774345839133583647613273688043189757179655755510073806216453233917134274446176315196761840092792830583223912812995187116381373196628747233807329146824013731650946982519187429439537000934932135820350252977479805179697284751336960020497755733980390577174735358095909321171598254101537244467692082471460477375220727250387330343894747735222587717343920376627938582136976579394858035494995586374773611277742976791737674909453642072553294744853141769745662167829992509584509533632462535839720506842051570677734322508871064015929009534258960606365542069357205272774176726470178835046704733292588548391006501029947255173393750550294069229010581448589128582829438120626411739471381812641594229789071328385144008887873906800111249575720545692941960856501814200471782096685977311531185913068562083932986788124126527512035015968150755392085449784360173125208967849958744152251037988091461947469072001377470493279363850969757588005888159471392896395393652380179369028645173603788601577147293989001445405321477447648064870418101091690607115575187933404846158665638180405330172056116191260056719291974792730657126651523859461735653852118704300884968997576927620729977847633915966224712465499629239618598350239118299408777689552981383870646453248249920720565650321547777576546908946668385317637314467267689056558803735656347005857642866329095157454409656484435843514386780048308701681862906486483068619541691001257424852021509480734692699849087309254913333689189389239236405881541053084185393726824843349067265253136290835860448568043942080098723364193367625732436745486835683274915115779114846781541418333148882482367528485145769885806094721439851234219492093328688295103426848061263141727294049401498506893158824092290888702677710361340554511876085947053691316431249974830306181703965443782930673813136282505135195378917353043261365108937148405126873747335537710032329951510178586900815497711632701284535370841671022477440333441702475375380794421182342131938151149794328679607133280014174712714873206523262784307399071860186596644332124961936788736897852137464379488187949200678341194683658915834575102108794080598990513359834009134491535421784826883509761517151294349847711382447008965576673238666845602027786970367156700775628981738234605914361780902030937044912365436703065227554820923233782713890708983372971899107590044344842863467921048916772572898079564684854478609340062416884681646582303276593022237574834602922616824796804406746007153769315707958699193913723227119938017719619184209337021621777858505012579854083751017146785347369695511909962683297929945284902174770079023459482969869550242424784671221434249000641370548031778390883431228867331691999707103773933351986784978987343822560418395718384681139519152797847756702098913132290429653404016035923686965186362847805381455487258577543591547571492701753420375144583104883887512294997640965333702897808296381582395078077496280045695901241486512781898630921187029030660249385118976988786740314429826460204246446372802564829971940400880654916619084170258352521207560818423617191221512668950110231355555274401106986830334323728808499178253635864701111845081383934980185517584909298482107662798408418193270747487091408812354672184903635450689125112695607607302058813323229899852427191010997563907649866593486028148542744691247342655703940074000835253821273206822733701736578041050824877865144272578287041226064179748714835229954275011356100364753840075545154173933906650704660170854960266592349769092503928696208159586642833289556689148013151551370185454568899965634226948684934116330602333250346270318212807464487034326919230801941276823610110569467167776925659861064766472284705928105003448735688012904805045328406801836083438609734205372917900288312029595246712783735113616201634271438761740756078966058278628420615672861381573674903956076369322248809737818072313250231621446527785001843701591111586135468111258518044050013113111133559890802929459828853605398794279159391203248080726417152727595479788473123451250831909156742560544420139980750250960330864517138332537269694629302309082290098702670342446207652732668499201371557900395837966305164395531245448729119320478653533101738291381016692664425357646430295466166001136066067271210258322384541504156808950989967442126428697317233799421415038810447652108205551943229279066579609988825766446297910588415375595504147081984423776281898794280824108501464810016221119460082233953915895678973171921824651853401346288526262130116896669321412326544249011922435327237112121656751603511625416061294630582152957720920390513017378344559704575648539105924367483264612242576436601616876546648192028494609483672486976475388352752543098508124622004757700277310002939436974407330626018353791035563382999559627962007809394672065595385532239956937312227083205596021155807127950704890179489957983724770950122311605301869503382935707718185295764377955935113553679502716339486416950532114603321098484156062887610402719181776695899491034521591224598235310369941609027688853296408583975769762240834661291436182049693745459922963195050220731155377149363858181012431169988389250480564724344811632053490537953337398474590982440646023578001735549758323810949561942721406569855051733079611847125196713085470127762471446993104556990710648325724107923454739918645375962813624672889897457964318954527814445807737101393738591595273299491787895367777179848794989457455282324232806094959376384063751115309063365970980511376848687319642824749043979895020935716356114819381367555314401924131740088786573008896018819484744456522793102050211465091813158643126943791720495044838578133960553696202337513202479464958466281408441879799277966755795143476100776015709897319856887393152263182287242326116374849236053286050802842784629231241940893353326392986797478285328429637346120155763076669930147667376036693884500814667821662048517786136633711756887587266364070397127003648527768129374193652909381759817454923373405769877293816487769654641151014821534227098782578965864278241920735445198167281786346958767176147121533301218250443425182991179741852572890560936622714753855328766567422977589489390920616463346344990212526338828825246482538187020812319412458170653924267151015932848960075493472079117949487673550716354177519255045030765588485744626646662453289075161136417219546576550886315559052530944201553454131877233119052292980389273873236114706466286525887437471663144096723446116388394564146019138736997309566106740405814595693334839743922851912371303943612383626292244296408845837515894850552394869648544049531583874592468442160850932807193294931703989304490576877287738231520310834259718030061637169032522801140903478131471142878500310593452615448896153624429028315270782948808679781511464241413366960944991082160476614862741070374569304389593423863582243433831856308657019153780287595462963502830809694896471864547323773425620003318730397529070001797831539024364729662530571653537196873691834407899852445109412851488689786891132268463220099401471822323607080958596631950363579815736351089796426174200370056837827725212264682169374504830123281934861826314945115201258860653216022600808269405833798561848982144500025472051084883638547049779521162787883994428708652314434896914518039739411693216805999754927015089857306590572661858350394123614002823160045985149990795842542100804411500956372237032348619181405956579375996897498473290686551665386196496449356325142820918331769079253910499045046158983554101623991868684638226237927165714613869771225958528700348701951900858517322806718252139355846967861667073930680369264739740037055126212266218872048175698215892293013320831122203510941410011605151640846166171152894899529121512266423999323129012983348839133480832680022282702316189817107006370027316977015220813581650268958073759985615183440092420213996798699247542684372227970031965412639913833298301308961901096725329366696710379138423815713832583921450212474285955252916886073772564313108091281326237055059418654708880215986247035576954581338480197883412801843951968968284128529735594151781738577160408172351245542736413189083044985482405511694244121264993502094064043512237226563662665571761281775639977384173107368786028862972134836464168540578197205284106347896372493197165333669831182455157368136645743326262707522539388819913072026808867196819890818252360138124590153639993166795853911813399953276127704445928846743482054502923249258390486646136210975769598638749916313225528125965194367228221377133100004834485419875805543484380751552412773513413332693742418477885984151511856592645219301603308541110838023626977012668266856405747671949375211473334760943420130555167192217581861986295325225849312672273468583843252440858741523198299486290156652356984960069125000359666666057863333906726468170990476377841005434372378065802150366435564393102922051762591878915838625952242669038043031518742763421278320064380657650851746603945868031263208935368101275622146778189575452336011733347427456795719784945818135062749334625387612098278689256484286919910243762881891130877403292855823142877305701972407936639308393101144500861802381727449575439935701991059572578535727449972116662202782436273812854290082928513289236819856285271004360178123442589388917451344708373003529008645650269349891533781739484095968132593692027225114775725412441248493010996336151992778821555806921971579208127256413496607985551821556086610844990713707044839201876518981919666171807064180747216777827404226180450854130505146033746365980113496369357343991788483589802231808029368046368638533270291032323772967474200883177602267163145676888113681994281070014578044955182398112493845915729320132096718725137589224850687250350091903181412602774175061185767475383997699145989915495062795318545810566149438493008480086095599726895842562258644969896150406219854425306136697055689359380354223777817148816620260851559234630125124645159180931622974856524491396068057394071905405893849970364636990630506246263435424500691902063067060593390447842889438304442578650297727624533731186910294056219569927601899917850255188587592714152954979008957881331226691397818561850385427282466669290374840337503755386381331162025256434364231388301096705014123709285597493439907661240592206791545157308132292037004552245576215365009520459336905166232448418707298244115998850136135648516772741857864367316803705336832411079007605744099402593147118312115662380658726486691105805986534731417733995835126594660208669543786054538448833480188744765098001130347403065902069847655445098389248864720425040791163081132962615533062192021529393391005208299856766413966449446958675985357523166093182680819510833227531153258238021192642442817887840964626197882345738489125054042012004345350583065279905256422134705229562034808197586183186385913680246446286428025198230797392275182330647694130369244373694227423804544427512472210752262785248989002292594179769198941461762568074323875819133057346975586042838190401900516775791146502530496254674165078100836313211889158638696828988017804776342257396966968322550848464338822215975532311390695485717885457709673242583156068337113736544262042013804052940733206648282027927380049003817098234988211743756103738728159691592113716184549369785814205149925492674003249553028750295183018396680766277065738788962141057621595673501470168269670286477326838976155021013874170832140384503059566655794428421855099695657670771275077751497110280466933224980901584822664826848766041812682429004248112983150848699137998537594945087260878375189130577756685613262667413832663498651575570630355007008552960292958551840578927423788553422504287108597915172240092596498938024013296737057461221044778159118576320252060748971220246825928325996755326608312228270018294416732225554013564333772590709444603411526643561732830293010971887346859483889779986972533129477399368440351754103549467560280837293036886975387826428985062248647444932794083161492931923104496775628060888268306286061588457865577063148740769999626401141549873157933783910033608221553130361224046490643054013459989104790186381291077377464615988414211716851016310310951275655143731066952909606556315636052425812700153029138988527179103635857813818586771952177555562330680093916355382783271926224199067700895401021421302204847203266617908185993371306989142164929305821192758177070151239222105391474164362436583150535547649425999382393035750449071407352829654717932176442588220947025527326735662644647896895012801287628917943157003034176795083858751747506751741457893092908848603092348182229488930654840998186001874442071599898992735901701793798447694187425077450937925480934655190517399168792163088822262489831839740862970815165785146317955425672999133693109131801407995370384371754238171206226627904020900188656856425704260298245415308672960334513440002679447054393297870007268323460032729123422796924213329077366151676820177419229159030493787833697530395526642642518853048879529349507584500535092216859808439016297974347555891188491400696300567253041049273443455063339519213554757321325957787717019994790614207354376120930214702805742150567111890699474219048315719632846712198904264577855753690780889254575482103525466127223105151810624060318901434316345763419520451686213184668897309241088367590643222132859113899734096528071288035009387256568387854485130695796901671496094564929610712385895863630032202416124722686435794718276808214755764523968118372032134131948897257022853341591626383506152104407146765356237391016735139542430276041912346932731236370171925088934895883243589444510272973272149060886907457012712010354590781680115058890083574646209053082615422676876085188161582462582252279468086653849345112122943302963752872479450691960874633925140561670579501632529743698443309860801286392892004842176182439352645500972797319543420228377657363229438214051110838421340369792590859093680144143610681426163278429868840773003676617632067354779779198360071751366762989774468928557817399283310808385586187064907619033217953902184993223481609802825410731052313410999254085610514359513112629829058810460828801300064640657152101170475113429257399892345676880318097462060650806839449868111113918173342591406339000266110309044404844352254268595686972181613637216431444447064694735117480388218975104212980894045229230011437909856961369259232204299411859614202982812558042457567464651155779279116433338733834886702355820645018376255867502741503275584834128590064280588955083923126754368020920446176846851246323633222747899037993106639422942009803932074014666795720767166131612410953528351767304681228522841273105543018864682806520019221051108878925936933262344198597176228499797030364059654776825538086131177825378921056897762747582121556582874322607231965540122790175822045917519436192481015808717222833070218048811116128344704093423663844690137686681863984544637335436331520801609949567056334555512866475126649969850875090527566532728367001231254698297236553706278954345533718530974114245264735928841621961107433500663096007077136812200407077212542167148541875887343780739264243035445421650254738929663340714625000144030061066717172073059465850571598133387341954329719748943871926943862902548054464791847531823500676246026924323974240186295350451078296245068497221705224944802623388095187564149401514040495753050718256485494860112660516246625763094380398863620913837713159765683604245773190132157106755776037559981516945797402590142776617566503779083000296217349087149840847521250296084469778446504992657595857331616632374500955045451024216671000006191405174925804177984900322418615533155789807168805157502374156849763308661251663267628081689872920507237644369558053014533094958698872239583377997245081878757878853325903220674342978316430443392702488268144050483050954421220906585558351385869713433279284162482085603562605594290057115113616759729518325205013358840858339204734810778852682938591890182883614772782169349623491855555961659574472044497418101211229326838091173036623445096870872476727136717141305836001987296445969297614563244202335657407214686611966626306850598539925744212042040871844441717753453237976167676521086890819353809106052049694179554329228780417915210795924125364860714660926545266760193035602605841512447214538878764223507229439767294249921582858412034905163031479195436481885319030405878503995687740865006796127595681616214388208554806863213595880594033728812924106425091464784853608068800851515135788398886716115131858482785779737096461857194093595803198642563340380209412500874053460740107859094633109044522205003816482512593901656726410955915485213832237349574092777113991618804821311675099517562651876053550855571690472341796956602319605858563282103476683338735389968594766441403868829585138108970681581895841095263111842681929887824505742971854976025299367020828792190134477804004182801810637716572697924872311123630147028549814030659058028079330933922301438099876797203422276380989146464655986151306915756127222636805033472043636116165208561578053115161758101080970612858859879356889895732364306594917765026759390567854230972697500282464321200728133907518433153421450557726911888879321953587520169536822186775935494748849097162261876731631342937851128806964945573457252068796569348417921772591245731724794946454929964771244278084107318764214995982116144644361153249660908218017469269848340146662548159572136019399853394552389818473748848549537616207919340373218652226129043491272554782077310432734589424673275310576755771464862364180008207182718760817300533696136895226177196739683220270133440074485387330084106842379364190562474196722506755578860818912129357515426354108230424362048534661721781476685129836371188038197267489706585694047224946541401974857247287847268304090493621957573364350612121130257494118640967079853042473778856732081488453404217741438261061745903964494876169340738119634297119407434914813171411862813806965227423633250551767569070635734779716631635899570601862945484839993561251453901452898024915201006349443574256592458239015012761756979655828187842293321042601189573115558900810087309563932870495251649838316180507151682009051204523619347851307500797021821046612971795226209225903707847752187671391500626533623639561136734315231016385746657921304283679724653519268383150360157512833946967687067132876855609631045326415507571072751639337599947295164624866787849741916616286230943165520858526750909631439366829518868810794934126065369242430974607931733302199219606876777830124828865966132776919778170696347608742059881147984094915705764932828822906355856413943397211309185204101302123710220707976771891953329292429656141699993792985469865855989410691121227028725548394537655467933410005399238202203687851812148962236749727144818259290230255849884121589377332229505133081425168556854671171751863437815560441888485750527754082198986559709470058936180840507033874294797528313115239352140251823550325828150015397160938961565689126975432460050762173889492261226026458885921569837359426422480477748786500437600966490318062920332473400244748803301800578644138687298812483607110012984379249596683783206909337911549131919147809926409705147348511393433791444934677292081137001003656407056990765476546849671737637132611243498653807762036943889131609109122483592752289605725708343138637167565210401185037248573444721090080845461336685417710755471643225331717798608454220558387584178518288845360904439061111993290760789972171273927488255744964606407023864569090238311897138864919045358418007530324700273257169654127148470503028927283548090127705089665096018091402207112977411581730470809665738863781200105827168466484069083147848356926996205433492644787075553452915689686983645620929530655332737209946322776804613302280236619235906531586761650699809850877496429226269267752885487483278098531707503516024291906509526117052903815610885563156379097889950632164799705166062488298969933456006685008566034840252725990150620152685582316609728105578048185861926580371621565987358733431694693323876036763977319180112531049987700916599802939720995401993731952494613117803032615848324019069097095666642178744617178512182695185336731061964320679964431608309610368693033825477085924348100905972496398633393148506814774082516900553724967496997794216924536925689898306427569882841537884098588335762468103202351020270815531469443377154649751935691118007130306656498265425693757156520381585863365826736860809962875980505938791776657177635116484503463578090290583908048125335959406288079512065437748987173546583365543259104235873415450280866110624617884321787224126949312640409228893982140836257580154440365677042379026774614905358379237468652852389734475502903869451050453001831792982567280775921925831358191038232702318396453813255978088903475872329415444666367205832444971863740561735907068836792281260182454246575549030761237603569423015499026934377399156261429145072532344284828300532102915416265919942049916399776679791306668528805102451542539225586948999742222141629762830887706144852366536537295354182706940265463649129929351038643451500864248107835638327641433745231720101516091498264489986235787358354402773236410421644179883446185826997525857867481566469322580471745351144364133708759459393794980360702692509353542987037896278402514094091844813228699608004240672226880289595611449228041942534744962262494219061517586211770454936304995830996052338004100099567658766327239816375166362923693470114334927398070355829385826273505914299073634305024449336136880882648915268771862308776634994450996563927862902966260557015354099565061051883957514402944299678186768495309646063585669931448512795468211197722923341796107897194946989650966998947900613573924538760991258048812146460836610129276208927803117556129855958217612264178428499109774140803341876099847070538576960297495262848634572429015666173743513754327960937460924965015528987876052053484336144152969152792398519243402366549239143279672047578697215633341657758558796163884823776762600055114352005818456754831089331187266715061580504156937043299872424483463579933115813651185644898474962509139393997410723072437144593037657389053124361747565333802061962442906100883571678196043565655628727749175637659775889185109024386977002081618200278192034055474034236555276803436676896840721093124226983020511617697255768106121025729545826954416933383132141212336800880088732701241604773312416758267953764786731679909957784136692396054156778847199696205882823731171718304375280578289229506220944425283266772915861792138741659969231225983689964458052474849965006319029722598018789472068935837932860045152663562317799179686873519220027414445301009337824978707396328077106355413651944553506915164569620507302138490880471597747240001181228632537939230467161897809272518009747935556258885800025882632520475027377805387849370494580349862129813002278156280885521344145621418374976851703727845340423810264206455149060234761601200949108549330157770823528308494787645035682044487887401583423447887302360132105015594674956516734106834496066212096040932638498437977762250281782023917707556991857512755675785932155809944920825220959571852509423586149177634161083758611999766606683754084656062075988951929828470828506683678009810789700025059890608248224623756939110321751448255499125009340328394168901342525240555197360273251831288825425686067176440275112331346855727817405534024529937432631265684013243803908942901242525045107594203549668151544081870027691058724995991002434774907951950105305957570678695047349188777619004695492268707203316224934250719078751767675978646021396858562079608540721877135626261603800708935266438374457498027780045262785407994508418224047958841146453976777691425401214976216223326901912291084633561080859884894161556318423258171099481750178646497910825971954217126869868188032194103313088165855736349029352449330710923530775121460961087585958264373962298837005117384022045770752797340061940280332914913226857314106737977458598772172524255850121816989809175031125767839269175630157978202513310287469811287545028234378805620789765703693186034758618844952054671611088348164399884487757961296860239723417173472931579492612230247297456693125933830545996040305331800464889086947092182148145958065390085909512655988501506907293122030190543502872598317909254271621793967779348770291301105167395768625231383575516298046511571401164255828062856621482585241952085473489299053368901507485392739183623884090243183660011274126948067823171152074475804101015402238214843670213711835221405534417866922593543675921940763048682351663780565932906829059884863915006065183010163878861045481023172782337423409904907283301688979336172827598005180675624423948724708264474968915158428861633690126190363818210218410826955805443140622020271303909461961198524779335193827981582591169548452184501844653612450798131268109866451897318680653236534195381019239622723287941979040799091909086806418277647341953364808123759173070383886135291569477291979484705343762110883042338775341192855305594993059869827519789481398183799887809460456849794064148776392867202185226367798551567114817429435667895244912040556312706758196089988685028330300233360329329985188688052791159459865764587362057655032809572532081321534555714210465211550084370506827065943765233319123034138657526461074118400643671908777882511456737162207975525946266153607721202729718020246669951162033769501446935151614206583801615506198560349201271731601496272077698812907806046328915317783442215081671260233086914811350826433400199648124628757231636368835806031908526515690236826821501758488170454708363137815195562967912241622804552982262171372798786457505318077518650066841866188573231039729371956641017615895236754435099660910423531622214723321170989290606860856625374796218270800442296567899742108950545077827346277136317498182722552347336019056810329522399251092279964712534933911199455254978215705946451356540770715587080904624626454473329554475455937382101909916361006309621558747603668857490246231275656550186131113429424449279581148111805729717592227086169493537981467569705297158350559611350613887735615961704790347130080607501116079610787103791226355086674655200685326824311894071285907082736031723062578319846837600125230612508794286272208874501429116060637123818996386258615727703201842591378188371955527934289184113485277338729293082667550418540274552366247507860516115241331571458917071521819887771312490443437153002124674007386409708015066569522462822285674592969947329307467930512719595227846995102210163382003135385876922100896609771780224485911443220916009246868681879237543609915062679314869562382107624349783021601801459668620322886181670358950675158820560938461942360338409139551077875880200085522373351641368094782682117198250793151431306969232399479702139398167562343716735673897860215150633228633777058972299255826614833535641656978644721741981283086202616322881000462493711265102916993064115793062742752018187243421411373178632318940876703853550295061462171045791042753202498710897188223141629947814759776077874175062520399177716426494333803389315659634646890539441736073610336368252615825509120636856356950043453530237506960540291781566921375267205663961304615162494150371865178619504367631370581435994139648909029902938671909240137873127752834242524815005820314715477567053764801116498254403385765535727638838686786062659190114745582711465576938581460933288673323896009322285278518927385063265736396189284587516258804599990823927346860291368894050204492484017033282282427069716370410603130238546672364305725052379453314390350516691292842926345278375919538044733095126223756645362713972955255828461700405525863328911592441286261876948426974620491433024537086287199444458573261394570037255338142980063830862918085514553564991937005518765889016196730547910444834332899889750903978891556756889608348519375418204883725401721031500274887949880521465651044230292882973095525221144989966695059088410909139162165356225731401584983065968571159879146215988999830753766274627017701503135161382913663187872653263980889230314354210798127630372021959830931962578321907621970548276240024979050452555246862219756229172397210038711226067240176820437594540853984341658859155311767835448482520357793375552361804006037314850724739627937849688263360327963418466007296385898801447282510539827745183979702151585765949181655667064244732073531692991078399137686558809962377271078354430076863587266666837338795428979992920792791332677306057692893851493871094674189372883497543984122476985503486904784705007981283333818105513535370728554350878511943124380691953695720233152529955646777598724598326001074081529017484851555092263006184282085714772386069138017524262289008534283272141483627590995209650304474504509996503121148801816421486842150584040578436035476472169667196396556094468239500682926712479904591435461808810893369315994593323079842984264588733457428723037382595684018906840746926862524666289672777080273591708773321268023087592967731748552436000438468893294956254298740597100859337202840759039824550420635349798966900802653977629400974574198012914524281632879206904393895176603904319562046213745969975313248975512929675150269362752013047843473508515397368289858203381859714796807413980703471291617557435139005346492389981603685286347314629081822175966409954464122584963157107259774247442877597640604058134225360381179473302498052626777039458798597602630291522395886977371469509549739842415526463658459494872016017615353473063878637535741696197590113576122778210546784517587623474150894102542844243822300264564657982907411984966756899666976425160847667923611386330458408249093252191766098026634613502978332594251154317882892469389154257091601277362831728028726655319029598155757329418692411895033953159640083931529979686193410839966083517978360524746156278479988993948477603589245776411305350874406880393416135510023888668168266518016343641045251155173121527868054858109080818833098409388586137343404774111765556762474093687379378875031222508096627741145518396633514734509150813451587707929425294835277328670131726380536785570371836540775542436435872010827500555711785601857621984767812917477750271603331387387853018467471672487434686283364836476110076464504786330308653211923083221985137950961938376284138061342497859278368743129382131799383634636969574230640329666500570770626255795147071760810342851923291663921006963914505871130571493744184885364676495600744047328652331270131702719727399652445125158753403166362168610601132853795545384652691818831234893649606943091344934526697955233931235631465910004584682774391751862593477327932879834432012516143486685700864174061131937920890109048763601700372888130262556529626163879785848671313813992234008595894516957474016202687897712326883627473625414420574299325541619029843714825466996160856967071178524275092694450437431121003420310144242882606604535656339650223121532090474157182878303954329215662886685732368342623373801424167337206860447366285986438012370076637776718307251563097360429873662434654934061994447063354414872960414287994735265752503010255782364106006977664537281877049697317430163417893838553346443104370532666067441862468672775863815647602544861856872221364631109026022122097603452324376723516879337787684248123280927279196221272182662652544645387788690534235053382243467335095956172719376576488631313329100839470235294316699455878375638264637701193504753526609771068538526925572845576879168651914123956758396339277056989185553441078687640768327021827194963678765372789005242015474352991183542768307079313459000942852965989578339622500606273623255147248819956626275759575884989961374512069920429738066504487378746959308142429337849526224554259891998506457806675397684500455562981097078950039025242490921926400577432764110566042095084579939402410145608924776557867437597743299097102866559703698927455101387203807016602035002939987536435379987811768866844050234853907844224001275082868262301357703175079307126900531854865496464614502073939124902203611354317510747761509456778430665898264527263451386875119299289172307387532425712684132979548463100891357824188790192460434458400559335068439889033828178117880149950942233130727406977680289198499050510520554525080715610379538709240038761921545640842880692442508734175580001900537594857685289048766351929465078435103949620372218074314621024416219450738765172559397723905619078734768931015257231631976543002142156858788896404493348626321213013590942606989667120078647167345074740024350119627523064127288493217274051494529636441497400327803881176922189008430288597757963187903988387751460250888118366040576137629157834342560620054068928052833095547126656058194502973314092818446948320388733291126834622336931203280379183763408956636523495226267440862113351970533898435174092592625257944790199803740334987667507288009092131807560353590298410102147239301451392803401862761236779849748585112573788881895836504264599006685235856710803234256376187063362100325019949757637513716416594386858845676570873338048755686610400109348044650477615779051386784072717837096619590327785233815165679565254682014219921953283653803007437077240740894942431360358090447837112564371162103387298251591137080396911546862707458979866775979584551684036564737517744084424863058748273037544499105498301203795813553748835831957395234792142411589175212415904535321567765382587272021341499020231005296716830859789619816522648019665412099297824373603088557888886325496080011278630067980459903282374918348107745074217193161582657789497972515419543460788477860752796917437270206364358498733321210172379884072745229975100079731639452967161629073435881297855589600298714679057322019025505118145893507435183543155097389563982911483906592179957303601021543668411241174664612598063759866100731036172560312533464808973962313796428122571495978064117916745305822912245067065176064166780892164732622174315149546505312498052871407766532903051895203903036809919956987343556631512289926542764439367756802241748226961246093958024403709845519400539328525170668902285453419473866850569503097283775884560147281291413120611742016115037517684084116776838422534864802559964341835806190590655972829867579116601690333424908735813605453817502690926679544569974079594389909594033605171484284601957232037775606026935099441319701260152582058008726213572373065087438079636946072349194797530658881865597086452106625794174359290966231946125126487779694120806206086118676999696381809484284356478788119053175196685406772130987993896612510741598641431369589398869255864775799603102750199969000498221293862360015097350399310740847376417060450576750453615339552079236965823954715304231377967591549171026079709387661929676341124384978503712888658044093406602478104850783073886506322968423761737526033011434372059347381614835945893537441255781752191525126419195623901270369621361270957653221133232626730720435149817903515911925389899063123830879839265879904038076472223901243690738937997536925638973548806273583285216175340190518233829828539784605469351661595539554459000211389212432716189685999077769026928944098387993812591280887830663210517551705049427941179964616381876803918403313150665706584251121920982967774042326971894125374538016200882246712280344444429879928249017780778619223186209778762322707569939004797920536309441875696474315702026443146838635621739522964268867286192593187601336487150584083822719168427916270904034431051011125977196066175190914757647004702819720786278376948189207653152338884702370562115260577793271545560155927730937553221335229299485394039056454790578174632153946535360883278645579272918016949163465395324567651817592534960623279934774986354239425194830658259515278297042240876615069668300649324262507891419603224224388577234109257551880123720542352613455920782286710876766447715346980445244348977136255015946274717573109995404315228909447844141148235215527193998898030917249490876413248369540401547116526446666659649944029818635625396469792423795503586929640957109550236839444267618878777780809637355957867454743988993810895758232975124148949649611311306078322240578765856593800834042561515870913310467317051003065005101166445295071781010365810467996169610817734229381156104888511931846968322346680443286749417955678318112363330569758134351303305660137976359735241022308598964287646470375592303503225898234529444371059584996794321398322437818602996001521603266392797560801261809628101345374185380805455818502579396876120393458240977108086325109007054703140779523981631355555348466284785618269434658315520465744874579127943143400293892442553530290574532975284192842586975728626281835686026046717711982273647495295956902037228186105165945445372123759839085532238905177383137416028300825150177443170647066230638476067732185443057655260056452545585596051871361408552481560062427665824946437272174314118532190866454276974257242149626113454993706847538867994174946009117628102070180709459762616304066257888958051320907245358848169819859965054128804135544407682299016200198783864108108744170574413090013555837783975527119848531316224948018835649759577205765820341858317071066040665854763207540305852565651010074738286850998671031680254913389007675562437889060565259407719230234321710169175968061141881387477599080730204203410003822204778523843847289240480047374305867453041237027518377587039276512857933320583052489139376840326748923807154175062099652952107850893641141833711810969926619109803555697058689018121344617375704832540323288331364102777941011696689612995443180421252699027431077865901184865743425798376868802297104998639401748375625487423879321631046423928289398356683238794113443181322831787361000068099643970330564411960554515746695384109263358098386414770600283536914331872057857684294302529439796073223653047038932148244155719255209173163582159135033822111257931588745199014809970090641545953696780375393200042086434427108678722023800194341762977329159443762752767275877272938044110995928671107491575648567993010699808288974049683337908665163076037405781171561275268157944958833808233527956442297500960788309901284424488769951871321676202110499617973529967283762505934431821949639945672560490243241928113411855909167030015799092166276290300045871034428064186835279514640930945376018061343665333436983107100463864841372328926951045855140820867398696489219618461476878410192354016550487776144020549087883268481569699579710001752234975928928117395327449497279166991048376423267462479700752801703100408880764361526772581731337182074708703560465031927773292422875144712244785817288704816684304398199045932872487288557203139627344556325425328854317064654603800648542162821224302438819570715802601982007130504981121842183202998855911211848813866068163710321112516530556448384342037059878196467449441181497098673044005831132574532026445485978965076781005418885212792825899324107994837358400396941105882965226537006298326243653903210501050136756242604227443796463393314249033804581626644925808024454016888630808626284223774582592051555395863673425776357829838819799062891806281211007262612990670377798591475152376897530850343528818345012014563665367114163081724367063348982514563328207685833831656591633505174592706488264166479231824802832574124238414816863711272886585315850410961775789844979469555259504369522912122576843052872352358276550579482262885082295791592356687756149094558719928845593425763504761084612126967848830589618410370151965978351215116769174429108756736173730484433071023946608615473562451623361384665132029519702734876207996396540592611876604380653051465991396845445838526764116767544793668899618318174867041383907211930098742509743695810804311015435549874602548525736592418310886667269438131904765762606605773789608533250159340152524860860613843697895370741232857854842998105842258351571994147469594075315643498872756481856413628350715282024559596210125154175967967087050657597792022979055558510669276067164244556134375406227172535207030031225289223535769088521308399295858341347281833694346199403076414960900323098770822033133771933159586264685124909208264880447371511872811652532983981912537513320321746358883476033143044865400462051404931300463965162947168893687627207441639745307753967072963031486119364560375231650155496775244330327393951501630596235037709383131687239616740035587510814931055619740925373968398082092020297487743681154047631078599154397190740977995516719184792605257969872803502689556242957265417961518537021634405768662903371882625261830101945392008931330076400536787519910391254041189125805030919540166082540746340468516787289426883909402145024659788349786678690465471009629974448791323947540285174069071228720422991230756856938503658891052987212684458749959758960731342767602702624165055430094196393688887586966991295369532095644228375951970437708079419554385859133706033406803301657399311550830220685526707779441965362389389978815003563593725770374688387645948032079639574717187347210460673856876261947261067662712026811034324565074259699429244973881994668434380168800258081141121892336809239178379685959048215225971757242476561036020808243469502781351120261905302406674693524538669931915982644827646927040515536989997455221268759183113482079006943762314317595249712065338557990761219386217087012482725406994087216127999674820646701902589908000378823417351615287714331071564301171027643494185222073952730311922341326011997208486494551179275398989752628924967406895006328895048454537036437343151480729877421689584798044465124571246402586198519027842783048765735795856505958318995052499701280009221723379717175433289658485383148624948355979478540045620239374457547704188285675825340594781901614710235872885537316184595451965164834557708249704047058187078335474857267362051123242365562877960259457905013835770758271932142881417701262957131835747824176930267230630487916371760951595317761088865714022692486290285324939720919716201049347137557849314911305761284368669299986170432710382621540001727559761426999656017484489620911801581120077758391776159731688439633636609877171556009911861786267050699229511794753213802443396088341373617895511649163080206988372713190346997291789027401950706487640347641679570981759467956859696643927617680284102223242239846654410037335401879539814399756529855833714808646403605963624796946090696399420730495076107409725508418873943488475009028611599592514309038108460988066437395279148855900166949735014431647037516017151061129001798328462234783901327791444002524376275608061055504975351010389519930247851439052634564126314708060136403892359988515301815186108715819083836121893206419508866351169612598047923081483240365963710911674206713722302552092928360734842390080175625061791002350085362325679534309811932371186876515810608735345145974257517369882956191239220768588269601962480812824371249283900553636874043782356182028362608924268427799005494594110521626835490153873124996798785294535603965214325221775896469534590082079709794624058288939692460663271869565962046206407770738880033868474354239202633552459539187786684967895632068852309410550295152619117371184488175877109800683337128439427913558119712566467261013499852260473566213236458747236543203611863951291066629431268076887483268704423289360651009815867293171243214686589879706021482658740994826502038409606294420383609011426796451029425086036593305875158974285252841661671681845653982190541666319274796335372024989578844947301110673596523269010223978371301508111826323496693235744719624579012133454678881370178954160904443742564777713341902610744415633662957674564132759933970067212670076163520913813127547561535840008894139943600992924977058722663604428100412409791277524577295484730009135236565734844430231873745043514982638928109821919019394555894344834016015996133890049360883496250824986317284139592296084259418205886163044182638454953695887819098913326535623790297144095197995967942109997063039003573434952000341073402667129162002060358450719497467483848295968062417468289318548969452051949827856659156080536678691991795632943263504103255097801900453466825476629098239922712189943085877349816244759174705943481997867271239974532239081579988676095219267863824242182937770049628753946741018979028889029629770407552036682108400313046160072884336517935972506402367921694428758538708390266957915812492056543984043356799138001856093897032127329916951467866051489254616134428759125331960770700040278866576491897026471733212684547182167063463166424469974368725414317755369959984444059033889859009576030833218986911829631927682861660425345522851953103033264264074286653336851085291713178072051583651867306838457867934918398368924284069568688797546316440361982386285182952259478498285747713977457220690687087675240652224258847477203774618113984437349105122978837448135898310965074997086111559946807775393709919196081302573232550294369043394507743866602804833875909192261289494349609238780595071236753605979552829512686457535643295267938612610225704764176037232114048637324906907821527500544725172308063833394209707862816887515556456086628298899056362725230740961857359898425578736058857948382369506721299836217366214271873034259135710361204963926441140119813983239142843717791181009149986057914577048437773602774354782465647332544456476875803675000425881170880206986539930328134965297876212895023576163578886823260361510100567642597640312616909471245584098371915682715075133258301501588737141793093777380506041941976873882020925092884144202048355241619880795400983999225183754234347693461811593151156902345362155346817346881716532187864413509243225244103907790007221123795407970902140890640092654322388051322434171566370833095032274517593309122559053808156725285252608060398836901166000367140577500466340995342703665197163689436489557971213208239871509938981730378868046764993430578831510104226560298168433422428140818252668521860639483602444346578305481473532867038046204576248391563126628736075044211066767458198914038515146906036544540103397357908558380457819261243205728001482997020771874916699318664755084896715690525818554187591730762249193422962690723379054088161427718190181846181181547797626676327662543459673264016331313680846003130903718894392162493311590565596803822840792285184500336769375398033254563496465018183671665944612414115253778313875999094065576079380442960452967770307372031172452333303537369949677488272634350313109049069996495691720855412232635692352755371292114351062036688455843767000758288687270263015942439426435440389767025824770578494114159502376641878723379443723443517936511338166383022800717661627760708476108230281181327829529979599752099050378537428235537471966962016335294485378944978525218389766560450464869712015457720894121265307220351950548427963290626260240419756180107738321419900357297787956200078098517203317877729188409185954927685664775492700908816006847942570295079371397277945479320114440867211956743011475020418831137352498171707464205808638885887816211656551204110790419414502418368108948868633632308568784491124525677248741014392507955177496717114400467992151227090680101661438449010810424075677730916269473735331272680864177839054711972830609376357771434732483026518298693040641391676365272292480794537139377588348042572855040253533571228551825764785374807644653715903242151541592088937086342963806050532468343237244670377823801972485334881038973891501274720337261671795131144367680222899330502068594933467454380881747018966741203403520446477876697163881066767020549482420774483133795826318130373106865710213014475259309106566112506646983750263185511754025367488822404494318477916618228367422563524800491701679564226161012922285559085186606179482849893552310739093834447570336133508426658348599089415147066252400313586605409721221221706250630501187341847236066113002250514950250039111519748853383759325496833760479119378588590762414028601557050034581324108241579080722687546606555196524448319831226610284529237122399197888128584311717213924968036112138674239694937245889376241924681630143197898940888152642793723386165376026775172885912480799063325234645838517743184371548665007178680648769862096113597565572989216457568184152445039775933309423989247726401685513482028113740602968656429615178864584134569998446000344978674466657339123847239778300836068111768290261198935982481020845759626562065633595558932334433391268526243806099532012771634461665136330555117221910034618455678799425611704294935335531973183834380140726396308617448592763406107516118926569592277896700571600526252115150738490108808567756038633731136560609555007018052865782322317601215221666183709175778540027431756977326209450233095388984577830068923555582964377651504567718992970197248993946764318103462140508978675924320740616382501180776048747501493303154383930412187940699562328250351265304251930189934046800503915346534677552884001962241715628292021798819974932470089564890441684405076160778479983122011361300023836230672950058258260563564220322683145760819760764741218005046640754585051177320770878925544921221345288198951082513240457988641223076417721092001917755277678548278050095560848196131342751586766517376842100938395062377062663767377925702999741815221546666468842084226182370367134797789255420077303456477742755119662170992816918275774176268994913971190477814998425174406460498715348561395062188990325348180345931523249004809352837070924549768224913825582073228772106434526927060497536856846601894737985873477439130474986979187544891971353984585222230985349372197280458588610149803318035494428039219522942440934032543216903871028983530351576391620757110805211118909970734326631382842179213735208884456515489725788822197114050668995918953531131339077381653306062081227171504819559795112785320062411127453301283371808851628143605103517102705421337877342861948812198990892300014676719853835404908966640517977797669668186316391284889139494815144469169506661986190225493225318913765392827836610632974239677352124852337869400940764467948947948631222946365530457439269033244412656553119777807467624323949635229845869414588838500104870246995984569331115353144572630215199549716410909557237486867930304704695640098200402608377315719433992997278599559761020122141165353066738234837976440475635828034827020244422302863430910566648858179315418725702195472551529775270485946151488161104901675971101052303114041135609224823960364180569258330950983454203640728257882303604565007277020683153165132105915118452876498543096978502721715870948138716931258989740210194006065072898593600325205188526430824624634981300358860342517220580568188795499315405873584059786247273231522034218887141058357016215400778451871061390715442737870669390430338659213710790564644118185817911945441582605335976014382814765362090321782895719868044171362016569248654063040002801359660092499178047567012888064638796239222582818675098907788359499695894648198351942849613171718795774805536217198917301609544628325361037619372263696754794309466191601689564843395938511670555216171908486813121268554711921115580173193853932182066251250152343355705993680361066545027598998670842479328196116457892520292537031732711132598519108300063148488878787579837752232583710960521904462243563348223142413167911438314895987962978065725189050008482023453320788359770313081858106460342280957422552466705140074630420111386993407044857718148170824243235349892192394707394125522635384531950595885581740508240189198936860505394637532157868993618351954210908669990742298660668902567532529635562797987925544823326126562761127205045774927259722037384422914959989206404866293315713812176001801061026317181341769222033085212478390044893003101698483293678008924413804370368786712777292967316099276134841702541650436856236005600983306517609378663371411567667263814809756800972371892767040364086838696141843225052357965683179835607166680195578995832593065336246519228312920150382080729803049113768626302180543077072113775658832446605696360580106421174115534683192607710699136919577839804166597119073407215346977649130742588811473577336184409589661582284945672858975716509533038631244288100950336653824200605853038929232363046751545535998756965273585239208268808921221095452245486298101895357327725212262783877628542323494929562660352798283787743199554850209818529646787289541000706734033998606439252915086463832317991360465027312009557049751881108750364115105260426809877107002822532211916447456350449487402670559730205722439947171225098045519417378136957232603450292885003404351789790563022392379600361342395823936853723153588001777571430308515444063502339484436812057087160897952620685812120178244255123654968282148396111137158713992802282013016055717681644969761842371558440469042049925139980190323218486973751252469956115623692282084126381187697199782005334891360118113946550314076836339158849747098794400423321850409120781744757314433964636674946375400067294788036575015459875958462000477148219635121555472464516642393805030182466416471190557318548249100499533918763473512976353270227542638371172506935063791728914600620761499305481127471794082323880947406520953626281427657964903651813994592942683203613315514132312879765034722329346799419780977514417510694297767754938410990337819422654003724788897917686884029128491699253137985202506710695125336072611334827409245620008852594850575563713255519107752031828892853489355753003891246137956778612602811855497254973570508365162377636433179116736168701345611009872899923713453596915135549229621179881488102726868078374811015454099180881206215166239039995345769136751256429422068299266375244831073173299498407066822571141282921765764989365775065121242255051655935872130517047691684293123501162983792906058069793265591112039949012407753631990374804401028224719391755636905044403225139145360203406734725995123904006221417862283414812201748832527215285439480603431863468965058388666371899615745215961091288755552952321738343611905312724359625758149402047219180335718479086812075252327727536326466969391843075287070952575828160029853662926519207051957874540461323557603138139947045301131933266476867118727810486967593338817967673937440897787670197727323540361003472660661869926446011344464522254956816058411398983642225920058686063247181688007444186814938734245019145157065664334178699519368094680258004018722865331715906425181380592030235274892908789633454255549206224868120032349365463876486987582277813955477981461617850023044362165783363559835709689374519225863490496987840314169888816705676449718126859781193722490179156740691587134657184731991168748313292680651816256092540702885083557184874033148480917593559255701912646311116351535297470756214474709199576075177802799932758448755188287187108659855748231100528854799217031103463778404378961537316512745871381405511457046383656666031325061670638423057695315228244351000126998925539525626842868734166341339569645657290813883025345990446732078727552727856302643616888520579893827703413165040516096119158635806138349771799694988458805836147784188468486996256190021605412059768400005122639898670342496107857631176356202228714267244621051657062073774233468137971722495195513077381677258056954247590004238085191666339838470320497237088136895127883862188615059394446950436285415791071446202308094922959894352744814622730940141770775995037911510517056519972972242428193905854092284207438727438070480009342864089160003735365719609774551566123609128821535680070438139527611680666725861716415193911781351571760119102630324229816893023100793069894117451521368476359309307566084713660575631130819863015347581089381267953631597995638066953007958416849029909706401447184500908937037045766642947981259861498465603499342715605248759093182470601875150824250185525061713385131775450554805058961440349062400656208841582238875626899869194421729235449989748124216305272220337301366767504102806841094277937402303138652060681493033770417589032886995682180465517030805272033590962290972209627983801799331386324933984073096830822857699664752756841634745080884362655565497760729839792969208831363512127727010522208138266835185885601734716442743274783714651846715538563935616412791544260440003074454331006197293438755928727154776680675796316652935914418041849752401573573574525162789388899140233224934398085738790894978863082495829426295588923652236989234104786567792563885702779762301663033818267126915345391344591744591008057551756161597317181437237560709688179837754264703812208920246738086755730651245294312990139429606691244805620086192957702411973392185425232143377040564379999324068666721882048766027494990796282660624432677770251335349283153711877261148638751540919961274157130791828721077105207781275240615583774741298585989568097264080609198355024537655117788024649844159490777755838888034094604109521748131846326819162999218299838621562864796517785093614854347421056408509899859823173344134269871664801207082713284723058490119666061444347953129606573027389933789912661590600658714276127690910340217554061288579764037588652602682602659568697679086170430873744371304734977071617446412520010956775846745049980521955021917200205356649525348727844329178933502900810647253209899200420178337499384383572583600584152721278754704581601524996679400846034707043490638469300108206313222602549832289075673267194659292752658504514524561085476343587378051273375761381671130271963138907975426706052115989810546858867254525311588743009019366888244286416052453750621113710705451185698790702372768456848989933306556133781545483533508778826005361287443033980016880915221285809915643880298834255382109947650619912961648664572029674665727107069136897668612460147230863475929979903671103879368842817204519135334530976974458027180247237771030528944633114707484290175080757503894708533391546671310155250364219161529717776546831125295293043368379134966467714347851890322636272996161994120595405419708238611692379276829629889368254687260540572820440667963211620770407120212865433664285378074968620103798956935042685107437530036759894328064984661927691946010297389659154729502435517946724052125988107132542720657767483044236493656328232411556172216033829647501473418680659336390199737321725372746006044163837358261215108892525795123159536303495984858240535029594013477768785159158049855113760119531937471072692227883828159576852902351916682480292276156269777787182919937327291338316005607207068128495569768673870609350091581268790376894924885722151370443869237894050759302553058614506056409530335798038510108691892155037310035840944366706016239650231710931851033740411340059279511463836148591444798193736246537498871461976890163068421853282629194992580755814449242314199768496472390603091021945146571650939813564309797060661806943549704538331264595976790082221654615283893975871258673527300837535811479264736049723927093280711034683747753874057711798880869776881549405848844105640888454714501898746766121331734409563715571352198666951148828819590015624928589700220289527152374117744333976170713563579081895575738791856757029113119787816736565801809317441224605707487923676668366273310468755923571533370213588532114128496019607225975905372671957861581501727028204688754709466105313635829930372050653737086531651218686531961700996825096941473565041257611786605770213916338743592090570822308842362918210915919746195666700546392442917019415639935319083303223065467707817918008347241143599761594082084086152798953792204078221916204405768250708825064186680441753333932566719712626747679838630453877718310794125311118441034196703294610483916216943933868354797578937561198057653229431926183182941053972203616141233744155749085414953777109190972011474077696863078925595469311757391882207997612610339593667866127515005295955390692559974940444128540963078469973606822789630492672446634384533745136626120899407087671197651594953410249144317449605750224026591964599599859422955759957679051253385395986607121947809767961497290028788400507978715529506928625096721055909229474272040378402542098611865306795421139367366506844920423893921484024238685022195323396551084865938464116520424493562126412606698039115225795132775971604016881839492183220474213265707571579886197393406599237402168411651164039874105373616134007259629117976723391654406805739925188880691303149577241745714850436320055362029678485806851639460390475822138253760533544044831072175294491241080587715236908885456941563094293513742636643984794479273011313739478381790575108757459445563881516909810867648151364538599644586972576406712050911016110876062824091299910408539995231546325825924371165142889657677694770096957657552077170033255075196299264555196889575465970056900584128722161109977754714373681981588070371410273326588211912472316428731640636322289063224919451161011216546990128599955073653177927373938400060927966815811416280010532958477410764136922690276334417199418925327468774390925014099563274861276349167818049796777773210513092186342446155015011848597341240060134097184316317940295870041639906192532755864012137368564052109089644890079959224900304952672768312758694442416934761750669341132285389946096214222143731880172848968389384380812752027721242858999962950419385947981498256323034008574167018189635631927797969480567214685590249744588907299335687713939351512736558548316587405850099973885809968884523804518306006069449693576815578863167668703909107414679318235062110772610795146647227559639459020473845027821509667066779506543876781781393781000220176399918461101306367207336730747688294872018654483196195577946798218772735225728610373646947178955279420030261286071855525434934174765361247663219744742806343047704881622498618655643689186536738881798027475764136849754348992651595288202831903872737318680692914524309796461625786575283499228432689284111297935715951197654160010374372934163324711381347862196631933807145096720302191153595783745875585295106842615972906326618485289637768173071860330626376289796285074322312939450523473893822932132296419848553800642625555787392327919884196961433099746055958469741258550163653569797925937390334579425235707431024489233304501158575294223773577494931794446215634589027447788589995293258515755949600067981548309434923388232368317115944474820135372325114143016412105910370462485138187044977756871387764560552754330997849271983451212720689508860984925838824066947684976670557877942325699719290281870841037877566793526565239346729503092027603718926725999415239613708553060050955809091575927150771551910595690758863032866441264115076064885167379827350642898002903469327684065481888930670788684170999082391409423076606324445075423295173222156357931365791610332475324542495593573309691452039570987967084597726041492782160224590669011905221234880447012666098149540464489416207039478295383869380438189527771670018748089766035114338953582628524260821141347698005765483415223912378967218362305258144658289779128087837087790498456405655435923324221005990795704653448029204128701489920529477932510747460883850311475850278727882727490467429519455635143949565812142118263260407686336068053565558640769073163792974004793167120961767114688627289138807620123982630640136181600018134199714341251240784029966548788524841353187550142386148375562762132514315279598498270795805446044776652771567193884207542968973618261932653392388083648878471242909693372881209504163741967969951911407184346197592866080669811593444617756867824920179697972877593738349367494018606614959204735141232224752727816570554897064453404493417511107279752081387229558384491453028013788191400719183166938071012244118307849134919541373713947202345042052607756071664848697872840088093110887162507858749025081122404663566886843036968838981025062898314861317313712463479226570983238580580829998281932298680192419456193825672894235106226214524999450414507979875914475087376941823089951771231101666264786935868170799735241586860894096343268908054880510759815624592211166434079485428975289004959988628651777389333721967189020346618240009038856903920536828265160701812556382699672820277304266559544416305513699714090188126812905889582921118342959078918741840344162397446828193086591983104618689095142391734576512870536386103746910740601423360536811521934994308982050832892643028025718761654867899545103453489504554295840798775859741208049599281607268454229472320938849167200760468957692034608281087223761497991839688079007850612383513802904198873745530682478600565272912706162743214883110994113092867731458994025085353352654587978645675210529336929303190128880815098556094522162418322971713749636091639795059263067193903016225059741004607729150052041971320544602184532360021733683719676016404527176838660666329658661791248489421103729762729475298006347131290833004613430057192546522248716459314289656478524284433226987352946724255750122672966595700541695868732380266847535169721909292376178661533536296829515275669137625442505152877817376790310677794303893369840240367095977769586285751697985508361102757789660746810400049333791324438520345228065429233069746379672883396554699017282880426318007350275639020293982430638888839080852833271025696309791840445747553678738035163289953495948248717150951886528138861629861362670298348139473799718026758568158215046886235595660538534919641417991055929519108891058315584345548131230496607639628146651497652877804165743395154967006469186326236775220089521863021694030791820021700001008964158709092750179840681164453919898604282202721150311699497798134823750049775315394980674772653845819299405496380484042845005877243591923733354833034899409861566920997323172080999797390534162266879431086615598302162199693710182832990213350881015423356075189791384500673898403803728343443340978795997694289772319467779969971705888680404643198993566772459381680344671430195156495348376774532185926433598178817976954813675509131203921986383188860326208855676505460527223924740395951329488620539157534443785871282899495775528997575431061167846187540457931824318228975296937318920442169307283760802244689175881525591526160748930632669340689671969776292533608054555314232994203452478572444585850661434823741823753347969769085589685248984227367410038061118299186601887206233592864260872002664139925596803229895647303116638600245255957512074085218910327117257411802258686431367524601586916577752944902168733610921528353690068287272179081420314767706153834015317380080439438738373901860493505246036405654229697657990813682004011316690151792174856897451668307180309098206643812021048322888783870214817990406941741988261845909280424579588393762956538733714117132300317575172500913429876687685349552464964337098587454635732923673057688785792920800661807282306995005530663845590612994566818763573215263442068092116716722028170796761087983730163524560577817980716592635308392869335818937561999357616885523240537122582341448656203606648167334737284843683035501340133944143759483831480194809498944634439552613199772933595910423850260641175018388141581520092867156256485033571001384689957984225540583550422652702532888355557844384269120463618634427274658675107406215568576186799597830149756445808005066021218610034985218686615522178270504232849911789119875949518963525836120554519103005969929957721097634630992039086829073914933471578037154443244465925240234322319441745415063835956257854410018707789940727669103704713458858996584906169076034809184201324605299910659013916936707505219261164902207028283077253978703738242214068640101912019433610628150308733311879828573779000867234152200997976923356850609778571572435608808480575290997749995437686567131058165695734794433904947487963923258843657563688951788453440297968920762140762788665154468766922368335208061642673452896278362383861282357954471283833979596663985239326195704848912348616692131378352138576024578744492191091344343824569759454026440924197615320873549110215626286938750271530496127457072625299677420771391584659299798991806254383203085980962756277485171553733833096242443826959884890825838672125130958770684210918890104456016504925430637107181339355938731285179748861826362814304171134647361494291286097764690831502996877662919439934992382314520074227269199166705789783085551565047248973708439405012013864954545559799851942158360827066816993330216633546117278879328132774058285070956107916951260153428009950224483223846182099667030700234442697009712142026421918558258262966397912210840932524006521827467554766253273460831925744346378480534433216528537963690857905023480994117420579711209137362860618598738617314338494880681539024207063104487198079385106584963905240044309713398827418417141076291071072312016915776357197085804490674383732751110059458639975429248419737127191213087236371833822512288095029563909408007445060531565344015579814799822701688295945637147139388398179294958958504413351585047975428573192330514696901726498286636867576398605729349538742631043192397286617615775589033760997651762987812938856717178149115931982637380084889516655310094788801498291750651694812914277203594719441026556126899507807708652035503354003212105957139665800733808397246538288051352021185892313875338480990635191931740052764383791914635873598280002540299373585380020627435288186194122943432569882390937715539508399133667245416135168664346506787410168322238691936417412416383752899533159986332931590405645988926357936169900818252090706024785310119003674704550076360613755393883917717386562122010526108279726010200143356979997449016289912609504442955935635770181927182342289811647630319329813267768223945142865039192699750316737784017582544519178149042238647350272608452799013769091310065640676020842331351221244910199173266506779335926045729736371435027115212930010210866606646493960921561500099218582128817116987917596819766662463289674591144818922447283474861798350336564092887604043409604412319354438549646866841184707609873427980485950117165440652616721449935538102772735991032601421422144370263224780401919327949246158383514359759611390371271844064914684098050014534857336006768656241292534080048089913321882120876741219770427760274859484047816746480825375419261975810027020732829185140136801915324455459136220608655239568918381179904755734722722683568217656841937283543150394128062306086613245130345176577781158498792412237359636332055873567385241814413059998807171129231811527941262178127955950624080311533630029442397926711467458269831037613645286706325018975888414396672036597717539010211567133372550066272065366640071997070900048463565182631022861937850388842164335459705460469522645455583392361670690827730657906947997147555692629985996824019438729159403280323148362034591708168159588013542634048338237329303112185253154645684326824393586369804409475738100064523260054351558504362893476239848506292159083221815212768188358539804526168890856131572708207739184067426869868807511499282640966339451086639545735840440143084920472110697472745407483125550650676659446233186537804015359042771399182291642944474545895414451241763342676114428555482214489862085027604289793153089360422975563236195287603613310737599569494506988642053151017905689486812436282719833363803757594911677793514811436428688153911436289447511766421576287365458684439361532953076233450795048410285456073071049392062578652083787031616489744897734035708164788079079005808517485847203599530505379831859786547449970103352016721954005212833751790784084030687755624084976259914315555380083049975126561608812028847600302370856601033804190442721589468203491130022589317950247922645394346067131225631740236834044594005196815535617227424990226139607891749638247109262598243141996903879337052636057903398943365786427028245061740221509791374322436892413653171061864554595119231240596767746453817926914106524195038672479345837636669930530096831179779979574858425729122231203437716628630173657048437592289039317411997792643532985966152533502696780667031480378575381339198844375771528302670862505437065538086710361892987611488289004988041319373917049276182024163785045484886153231932265750708513789069300951034945884242788566729920021597238170450657696474899181884310924978596172465147448026846192520841241150458292616405191485902929266414129906985988336701652909942715954342092323341953282660645648217384439475787453900253264175938294564361480608867268624558131253766194183791693374760562729483057375682627332648302512600152684950292747683010837299151419621968298446047464211382833391076528597978490838296583536018307110615810177323283481226467780596551635422561640025145675085084616777957594516916059123615291052665382005325789194465797350534430929765742673093470363277557625197019441051214121348209557836591140719263961857307423055459331173028342524112691217166679085970273964374684430420946894182206410096175764873684391344826117087795144386520143860652431072152319349936647493392724711946691880809881116108576759743692596071278004061860487095431476547162368438103953545964784625424016401795681736586233060321204592463589628423105631721973689192538041376416773322534566208914032224273605109553255195543127399767840084622225200157864577538261849871299524617094424480798776112351680800808965322166364281302939369125811270293609576247574930067638166257246791037459272003301171896631531224588543396535216010016817457784857751860067627537239492164387963722909668321050821440921079340735687900378041844965356933787566612523947272635993324742462958701389652494510822138342003142365211858249254471144215716030377674463656785433009771646455910975270756485819640012008684598451553177642025616380299810534480938149814148159114194939680666297856388482323703237598007597015687424931426939473015883621690429978830493841689387529928344796940234337918054251076811120278495556451787208645737857442036068965045446663691593212966605194242673884731773339760365972115619824060997370848225390868646881089518462885931546284213377962072683877821356263785275681919552814164661202763984384897652983034973714519200248328245461130914865142360362771489213865871216497927889362030371519289785964404377110229045505711465418266431518884582945919022463631993388215749231742286573864475113483797638538673471918041121114130378036717763034379519720659134755903376954738458981792234493235922976020023943369849444999806893775828317819526402882487646582079035166160006055796203597084308228806283285607564334792666627689943656848831182958394806769980379356776541250808507857020173258368137492510222299401792166294747818914681918297549196985953707954249671983221896498934659229203827058960871756454736769646921140833872859341306704712628962317788406526665660427426838712462623252013562760827074377379827129367376496790804304502121412340768978448840292267835588624776681529864578887527877124001865967303037129676546350185637435405269835665925572680847544498348910466218296085196916677432519253851378322880074447666155993025575664419086547514021756450079634142062721434248031936393892781259501717435450111108598694270092709220273764260171620810949929506470456161916235365309758738971890160953621977965050346778171491655623269267552118841207383025971383587387736250598987475403419170352643121638233514680139809012357043999379341161644614368052419386946746974149994053061328837918541345094465634507751363453795432043889654573893308606364642332315296124559023373387770796687842660539759619830755982134975492611069545377164049715499451186531664865154644599481902166367552104089634058784948249038648845877909361942453649742151669122662257704011885397773683901651567275721771284217727720211370216794264681454881994623918576953963712861203121755539095508382321337835137632528239520937160119685957579585228287459791625694051044734569320298231803764445765848022968211932498445202935804195952255762608210773232015616351714817486886963354523025963681012959765249792177152532404537978555925154592078174446722976359995970762156506223975409500177878898983769749012173918420016689112957546461563030694299376894164548814435375599842032181201220711480199821175263959046404257342245757369454879337735427247817714243826715519983488387929571961094625911396148008484406748066162915690358330412198303535379526241927796869143698436436018516249435556423270435682577611714368998604391157454005952684174632242928782781668917677302021544064288722645350554100820648371073695353676090003391444848037807040940191873101550615879807670618274210074250038116762039740781756017997778160915162499729941901036583639590332289922910617102265489108957038896802555591640255893327375129771499063376656764718650370665063448428248524877134619118668034759599780791380245069123664626626812206440019098070246189288213593338301783674802498517485474944363562432133454634508281591501340700643116929608543858526902114709043050983330479797060696211940029824802950886840095735071239481309569414545189401552695818222510687142129580572837582200300334640308560975563290633386677183775466009719082082524831801308955210898139314517454244557344429724586061982170455505090310660702045413417105133612959027808896662974777787392664194455212289679866738412330065325329759558347587202200718222774967527857045871427415390970386501005554159449604417138967949457896240063395442553362489870192466635968472122541775163596296757720161070750625410528996552827506477840992520875349283938664296899005356771565398678379413085698743166796622204905030917541064013383438141721054010946249507679783564493032633909225653249004398042555023960050830520074805942566743869163931063883919200505491973055702420557848148644979872517515546612971647559442527251704253820975089357307801673626327720527246661726202838094500665106814861581039646605461307067125032538356095584098330903233630416143444822549556879889899482495203745969110477076474493969902069287206002045028687961079440403658816947582280948158421963319292865942883280767131942232091923733101304904588947278149015600051600103999076573397169189159963644004888788002638973588027204978128386593924301432717455406689437091251625225520744238846412999716967986385730875018480310780482652989327419506645063519704009104356462877714836487272168467243896751459796991327565209234879569843800680598651776084961610943022265558336799865944151930563981829436089717088098112151636060402805691107230488686536222450540645136892279170465557627210553319120523197928741905313810283196584127966278794367038327672777670623054871345006816875932170968360206543082574094311260573742158237872704209390420030488274967794594291699352084389254590319030974447178879015472849052908959827897758987221515211416684617509396615705859972076987471187688004178241081160536090176055851387283295534472767783099414568667158698549463575794369577232123188410159712395161894940133445472538442545913528286899075153084775461925503054189666148281927857100098709978387823559613090076020751484685801978087343523592856495416897824116348268603887247637720165040361417447355942666665448455919077862284965693848767467020752927673299899123732797713130386456002708853528878492431476317384442097390968406432809727438589682568945010546262046451074996801106132232854179771703550592750599299345924788783085843631697154664738942655899846032379630710014178557536535039791851855479758928424813961514648675335230838255166635587002750005696125263360559422062423105311566812745295974172690785418691590285546801925872825727654117256581584392216539307306122462714030871543590223539859327586766541252627445131644541282438167577766700593085364910689912239799291538941978325281163811497182932143850948295639148665731620007225977601758408037924627707923578022732912158237552757147981719993320142850311428409818049516341363863019308118016841262559775635001377239807323569429424220096050508412406032482878799954243885254480156840054796362891128945878073039403135018368198651017165101999933313803516103663467096254819592709547888131343101090739539975701154872808059893500973528282511916970800941674948833451819965126970257188668475100642926234114682581984053942300388353259134090359550869012289756960358013007615538266202489184526332871161602832632152871185118263473326409699745714663740423403838748672404608505500434525347535265630956397434378228732372534537197222300016753039746054621574438564647013438051322195360494078231258380751897494002649000086838749223480897047696607254833171084141238826281337402398179902084481320414247854088307122879399540941597754820191407113610507439222834385429815138352737270505912310983708843932024928704250939040098833063036518701336490838691347404355804020366007634325040679625051886518975897171384239359819155749933184587366752940618865641839084342213539631853210542632039655381925129829806022836300301855006863107854504356178101770917049457651011520310502465536656951825683492623728590814370453223552280044158375457330032945876660261846890392018559229150170099266414007095402924738971965409148190396474586902312197801983214057531772151766755593397958268600484367586906600886475651879578644820800157179116584944675804021063376192383731655674068797830560130771404032018013591285520892343530313293687660277980613890798672840395399897484324742724388979181531196668945869349713133386259324192625747532452616888297902797560036495330837469596339940580706202321745694559519248557042040403049614574685614880489435653956418918797636033207737924644644840029739812317897218723705346155992868216760328012749706080297205234086848066082091656452936335318263395259937220796021049769819087160485097928480568560625214274768705087777495486828094399493711512807700550133298607660600738866601994764728644735970623046531199875798921938606941887899849224946127521008345268870060126877727211675310417943982799793868480673351044800672706468404796472071444173143777884218236069806674138210036646739261212120677961149767325048815903344862501022713568668611083567097155380272291508007661473325373508694541041920861068181167757380483645110470400948215773604443883038049043745266490579000326520858215114582829608808318112580468337658644524441643622514709416466697844693706750111228685339854951834500551499696467729466931436130433476742852008964925615044664829473986508611599332255401875431034226320636841599847644425455513510571569096996776098363341825314306663070904940313473120431561643943276500564213614498969657011447733288667608403594898953305997411231612928157946890144304951018328271257594640931738353994337647326139344625142089394561087854643524631857197481946221736043599853782955834417916661445799737054986571596048585373757393346357670028907707462732066295515456912531627078780649411377993301170724624457998370987013592305876738161824944667650527977606038076528210425307399811734281344744385079338982919545723253455446517359926426615673590968562922421479134237664770378877549965193596329922657802360901016382982066342897161311695692679742349767432651688162645278952620029172970477080267731705317480444656721533837017752015174457035036238281685213037202066659144675876346880225740060312511459310517532088610480297365925550214386283964114079515444245204266518260735339146163023851812557179368471254074354246750111222899436786904826911758327953248710546593720407762535014851034855204537511541875215462056129509142733593020603710937542174762731943550667784342200666570787861626802226684772835721498136006905259823371454504824093719104718885185615760290777446036792005095479972050211315198053214323013399112430720981709480996319534461812239747739032489828240051000879062630528724563901246473327665626900534922312775093570985133101013854640993237886335390599971845945935728228993435146828714741433349132483881453526037490628180951312336425109069116410799592761320839340338673156765951457523897380997516432598873812220830602070569932701062916989111853961060576091216439890827509287425312269205877676130102910907148404486051286614729879219309981063376460353454912638924720046110308262692314185885995078684774315470551536671913916675128232439670991256923452539077765532672528166392118674686929871091505548945653964432146903063416043926075945003109324198166990833455098561544521553321755867197191901292675476569413668951058645769493216679552710114229508282736570195378923817360539089154067770996257175217209468694900624313470572010850960846085435074366035723040361150821692757131453640114308328007179540807885059453520041970598677899468630913347122177044970429640332476839924346608958819423594814805744979504793657225894485124997512813992120900121375865797071551643352957264025335449102406523674604414088659766889819053078743569537429887518260878657171973831936013212150223929494587932679549960846787970688467030805865649206781003464947843929223279972616140511939433392279515640338853136468054322479287931997547983882813474207329455804783611028118092463766602519112345976110936183006536150707687082355288758143739854352828722199323414351661062525438645627075853155501578380895316180495820273102567385072882747198616273268054899084177915890520672713917961323095177739914445442991991831311156155043037499495774371544605847718893000901021219229178281144311464692216241398673790617950695766541300659317167792008564199784291276324713254030859700163896870124766363426669933230800215895937394483103599453992810076977917101988766534212469647789186226922924709649591135084299322705903520328722014554079580574306301346548307109590906922250088123760371802950270409119031612513725590568475510124655802006191722972036363406252882392286334556151627284106835688648767752592474846816025545252572360253285531746168738531707003594729380491417082723852650634693695446473698578017328343525411261574086738636766293745237193997418091988429733901086152096662582173642750639236930885331971049288855600033584214330466894546728850572757164683276133253051055847393369602627948707949492561356985957303445388039745276229710543631879382599265189622265326392718914865679183807699071890116262305421608870712140522568461825235858571763397336049880311568175358105627300330183084703268546084089718845635672798444147145165876224468165390646556903711347458813631455869184107413979366882661133386154521375317522850254696594961713360097621689490584048249757146336132610418822288633958289833230518909722677124057178601567755489198460397150248752174624572566006235428239829813557404567512132907919141113164747978602673886434351301960714944021996789909517468849884996680820467042306402564035018841784371796119841379465214352831377721670064958376779468855933979143165187597977170506390370461581880614726435647634460726517816126310510316702141623064409212008358045998793720489631328272561001395354433335099443063985125822450637112229352648398404508249123170737575914934404231141532874165877528379875420763718950132892778268962553958908778858602890228312831175683772684315174459118879336513184489528821897669101952433049400373795958783624405455475645244277380891602603388715585313911292686778122590052555348154685931477607425959933127477821271055624231240631468419093102684377843095050817680219275259422204111596770877148390188187819994444301405139265712172894392335134155233832142048536089020550116098554419514378428650505066093940000801897896118659073608130147334529944031149130685230238863184258131436468584811707935041991605541063556135775481590022984031025067398105123785567570815660718963281489232695806813598326396035033034134420046717416972920377546160732799420686643033333564851284889219406556347252418959310174943437263637663798836115183758375360528265898844170890385095064893310643004746276310977577398793083985028017080076053164810601800110906589106308167815308998774968797744800862362318955489193938359031753046476271521001452574548174256768959164729075886057097542052122215777548494431220878969854104949610980117433139440137878716094515899635280411561494961936683677105618476700155195390841579010721670275833533044623842420184012675713351381138664993470650274736897644448172174041164526063621720762950863739432124473653506879009670130614302520976956401839801603008317184591640123803478917414930815008362887391064268376789672754514348383082070603722854750585819939607057215901558108036191672055193657265710779510816123495225407434122160508720523466645462596452626554707679769625878819107729656410799023692720177123460721158896595840625166279892010843339788295642483675528079380331369796177028784221398696332460438729157961692164820889311110247258950293166877147435896037491455372427013143825821992879960503589270510467083496918323974779408969780789161596910191749557094326723436116161140106769480113500416263496766510245987158331717669840010739045444725348588555185331030711763057657322931539662131290163780912507349496126267663677018210783452980962512308152863030256455738120659229590903716459257172594722772186703582443573374075331610071629669624318293488893964799459617860374114757373199467628468591847194560325835756855378597647904432953512615683481900794529838513548928574531626809470998479257912461657990019619601909042278659422060731950590715280497588236696349127726634955050841491929799266946251080828138439682950310714709174290551079987633328149595473526362131344576261424215916313099420665139295480944759759906021555900974244098069673544478184410112675437045648094631440602876011447972218470424687826513161079554680000945633038601086827200806263257607298038075246559319933296608537370540715081126133455943462377165859709281324891924023821358417598022748080686064176245961930344853523994237697277706261548528672477615420796232113906076592980385275038740702392223783269179743403665807700001571330970967435549077389522666274612614247905614359749913536473327850669184836797580015508655823855611209411696346198165573292142570833550449144366820610687571921906684830777370735195831357413726078919150986747860127844522716859001106866924137374559174332735588887510519223639416445800622430676466603492314978188404386411589248889011987413659413224530481581468033734152660320347353472306044914032165556547173172292600890718937262868268159239281189492063972790365384478806903713618055766482986243741314606567734146084092899075878667107771642220066070558633318872343308731471708992457295596709430672770073407074671354787293355483990873547965200827459315526946554365324423210789642860419737794202118251383401579909149186358195222315133062251506000218076138141021577404794521940636282708244607683243734337370320779989429589494852747618431028016256920372477150031653993281538604790847526068114685932996575229913365263075550011539124735374881886012959982358051705332376112462727543185400911044309532793390272784708488447286444774504645938056200747151187784132699338182921687430277420230944517088119360369992630779075021197484845330713461908420405036543800475891277648394934823200715893664541761352051478977244179752916845424070761257497970886454982199775291272502996204631049044900549710354437936501816310545894957464623278896180844424403369048784655827272138850458778446251680498204994390411029278994804690135273698522183899573213219349712996800187798582805823962503712139206295960159601975801330847866901887511920626243776237993596179458641710869927333243932580563664677069289362399186562111280722533681165573366046426663538379525362632213234247409293058924854312526912001773447993070169875209302432519368133456807518295359402907945450006305994049686919862432938047166490809245252370357926674156483462657290766688094158672149338308751030497384288162973058090468979629982338430074501570366478720134409129273198606148657631720723119525930514492556304253874797580480052621128001190366891935283774500360123043461040144633061515122300150732934045948362661356102647525467229180091976102515247768131419836339360212219293376467701700192317073657977209541237955049873744337563107484728481594861550068409657908650966602115796534072321398441740827859178938162680053327903442240060371471652728108560957668440839981859963411834702280122577453994629598540983576369398881028545551574090326169875048386955336292211660681911826466446268375062092514294167025392477102515067483888258650739926418193042743396992774666726497157069048041470796500491796834632629519335657440968822298992362777611274377496825871669083534479853819067075617818305096297900213158771509114148836451966790637657055556476176795819858135558680112943193091369625660055334078856406103071441968915136053532813815961630331488789648181876430427167247128706674347023170737886910730765137625836025536614865157405028851985564029155073239316556759398008268123082599969243689168806846276929697598620560990216558757285241953619984650260462841213661257474570482777749723199730505884407483905366383177412907336653543989152667372727112523649814527147317655554587927145082569834663928891346058383307733418402419904863261473122766749234016806613330198515962506424656878403106690980125803809650988765620445893896995115994993584542603061281717747267846916981981355348174627850248975997996539079582371656704234907745790429769985403078215830978001539250705857862101073649871454818911485783384511699474455463733816846774187106211046077010309422911360704138956971942682286786337093548056838486497782635355336535583502407122396337965374139218469432258221349520740240053755172635754473244365945541424232112818924288314783256387280021428852715838818712988124085773123337504366476809618154178161578108832139413997027353725507147774039941008279553190549887514282280801686930597564126477372458617048843759356650246741436580088860690414255034888135628574754214572629302170226779262026941248323598349276188397056886923748341182576310561814156398023941587329397261776882907030253729571735086746771841969877598986663496960244733648037771652587860669827968636085506702336467446168643167087449615151564440144031825821074925400768649965328426791498905481461735953209646759987086285563278186926608822997145030063139501243465534303841058613962547764575211019739080869224977886569124825068908542441006079670875516212877010088540627047429200621620813676477010625005856590267526904322912472629215466130762965361328458836549774353037293359297247261840580451692870650512119727097413868663025052414560915930746295650223353421710920737556628786733810966170059595427772858377454782823423982122674342655155940711083995624570754967585508533289355678831724803700383995957273140376610751913623420532368461300889224507718300601237940538728117649907312435194260170770201247828041228122182696646233265050646504327551686667394662437448280516184111174361715511868450187357833679015347003511548962044309703677089168083039764496751196690274806594111536583128162289358258462917284349759496187795287059864012849776162629204243256756811222499230731020686208015662695018972357528507481922662243528329102809859090948970586057928604621850089831727056209872482629816803260016410618789950128334815730363386212892615526692090406325763468915714090065484168560908933387228053603309679249028689845955214449628630031651846850183555180982099355283385448937088247903323624008615766101533746622276044745756750389594119509582167229374896735600015855965020506431107887161858148254163621909143085912908433697312309193206544995196089403090198561795502560514288375623318860689328458050132112607317672205685083441986434415835741386783694167476219025180896268970086804373519301623439414741302380288127041883063845661444167130511044468945831924852812569853855509457883684207682567490536710619774959383217178728268737180687078821432598946121058503207392525596874624547407001396708543282888147720293592823541754723186509536991160951046534099337128125604447456717237329179141998758821119379672700044956295039429890167346126851259995317197154173010451712851433711101156171413407851402796967124177849526157815263208625212370161820146150378872083774381057733569660145295440091971395106228617122607444884375699964667928390521991617343098498995533811518414948390697518026392248686655302448725359344184343790758216909078997577474153855853758944592329700290508147852379846769829515858077754889087027686296036321628031419426328238122276409516707105162464777885531275208687639270353094582903017549217044967011007774389283574169861924806815615577322130281577804015515014240970789187459690364651669172072267839431459978695971033355481182356912398072544218753356965114775159846224115476811406315872131184708929464460488150037092457169930524860142319434562437206614364745228478948449467357462959855390691414383035001302930062403511163453772304705679951932156035406609243730555139943125133383138590865583359750064629892142583002217878340047540437086928009175284278265327304346341267262099884208682892503177626733359351911104965104197326467830625188715848416857617611712255906278962873558629357360586016885159530394852988099845569787520535500474241350671281999100483302311764413343213945288561029070440693943681771460273037125316636698100549095149306847405250070926951293309658880604026522577578311048238037530598483274147209337875068239469330731537523625655316708561541898725112745282814391747058251190498770221560101778064220846038232306785175913461159282190716264701760343570644668310751017615302586160252991347041905047238679585651133134490292799203149210700670277111333373934939197112601286581935182555891886980879466890514824188880856836288169597661428485502938384926046035278420558614491179355057133667475168552048938374669149875667451155707067928104532626545471686716021418819837971728630236632227973541952367875106402084835865960430474414697922715364010435841839040057644676612023185464078499634557881304843846500608925068088464576307018983776477266452737098933863980739390344066792504649585381268995926535149139871100793594717084731914792471896432558207513026593787137064385204809052773627967325342747588588811720612452939847042855933743964905495449877656314893394031165532209536493573122216041661782618589046735546215839618297941937483109602925908625542965281035487219952660452011080883706320226444895463894393492386927735630916365515830470356460244420557483817507609673680188110702865868011111646770876853285495502484479323513177392356049096843547316499431650717963153396892337402798862503741824071343467945851517432398783349971746733735322114096172016212378992870442987315030024569834741741025565888533166077173161423361858517570467248692684199651211367975617299450567617833610733231235997677216565485390786055508878121166381332809022960438485172020298989368120179614877302993335715275111996806348835857952669275837189103483357237410544908259657478122421429365471947762756810843083229903811056448418743793114384053486070047600352959811510850095638666649116467118849254470367269311660550636838288332698976642902647627712160808456841651040643418793917879981657008596536555195775349650122144845185845288521764962301614215556829692028322774113136228729708729628508043354773272531646230019093059847714008813509891982528651405378713938180483104243200799072945561694215083599208228603785553831416306292378700038285345222269544777655408136630166188229411742165235784942898675534538120281001715098628215946878604536900310479273494629837314201888046784291491885812822426255182369532796517214183218009059536989975451555875068244384279647549974554816983780917750139496473158695900036701045247527430631559064270891737629413219741097850919832139143291530562019952422094726661870342246962617611623094665725551972082922838455500752264453513561416519087489181968402745984062103978943917755315929660631940988185477724250542240239476648560418043111834173717730767587985456839847252353310046082802511016780071601537988191393108576260972395405002759307576526218468904715499224663985455651194433198369400981001782136107522683367769650837895141618702825269500162514191407002397301720520105833868193550782748277020131148075119720160908392290523530924867022439941768661611527576016170943228830179274026475132954440152790261519225533989816856595770290344286175391927111111228566733104095312132902612089895130709195453925926562804525464940978266357945780176873594514425171444699129051686977567841030160739931149359051690152772479797673475156279024642532817884620442014086977894690913554238258032860202251354899551161570086792119520245625735084048511755451840139508266071215694163640167821671395674863873377947691629978662042517608166830545344680541584629448929767229324820037382437387466487623236429453902961903017377929271243395170411177239727176914421821646263520127858121657056465702764836682984314964395100941833096287216546524602491607315076419387581775650581737681155211912780485304780198301721236364269707593896471961062476922971567577497199580122190755224168572165536916139715131475224952241517198611043368820785283426007985203568926969571484313698415351437236119975782998850052270558356942440090596975665651576617940113402194267155583933759742263294006597810971461619156743601736045192100623917257854665250916667094147456118913068432808824281345583688404729872296654334206573975240099826485980335325663786308436480659472779817496859847831216260557017544300020417838123095472222464238583423013380005087621251473358871541286663127550430569941912878075516701391794832847655894510817040346507488315832762226558710697101275249350173730964919854884537158403312452529548520051198985272995092897667521001673425357628595236595427468004274135956398324860737993912591971827598774792468974504346622021209384387887090228954914079490307902745934748744841595600357758926116701007870205886143089548777380633420337138364832392288934366795851405879384939907662730193708730906726750918225317756855214403448789536116961747157534282926861433665328292510524329011148512321136737759755911850945690842811414804676801871026223121205550398495756460190545531960184675531385126834280705497354902825647171606464213663628263998576871201677038071419048614686906744365311002997459342949717539551257739748443086210476638526970937327682931287708292436266306956721221800412685280786574773648272610041084807550353235129446117434117005758434500378160389465919482235472285077791715818219784507429819929168562996463295390188243319733893005872415879579083884509518607597484463458186243104986987267462202697910910989613283720902859495246304938783620718193894393882557543614371944655053535052547795268388249844598995161473886156597045033305933343655162923603834593220877890767662892335840048580458152387948180706214394368952181845440989651649212539961698933380275431468485557347242463706784345572760778617673671989279327171242406960462247912095009274912853986022362364392831766316678390801756676179232840216365294725060244423530079843201867709714818092390164289928155709480919701402281615764678862160299029042775331639287251729938178122841936688768617363738103852781978887212994782207957842113615186303528257810252562981647539271573007122749922657187668946726033931655043268926713360913970397469259919804904641031703413065793407695810943024081384507495039159492290802735081215909307969435392642884388572927635735404847723121862640974743180104474678654384258909050349598079317717063685231725183111121174703727431246006669700631463746060117540685933530221961263598198990156055771859212389017559361089694915478344827061288997017467622059198941328886506434575623414686136583401626764444560321470278388793948195912985284532487441560145136558183107832507534181834040938769063325898745335458555434174755549121531010803471266259541803410527165365013230123713770220157677477756697212758695841255006007695896896172197191022554802297099154162825015299506417260522554672456283136786037585245087264337905910014606620280135469362200738750801091771400765492834224472919857414627072425112784150499451156814606549726699414045204862761469240700634187010557719109316384545349792030311619776424989387209246128974157590849341558676896372037725648598079348942346600035382966098372555115729048947521843223067511569500816897438228817652332384553963678144280360040821825393016726408095040864983906056800455806512846477330298817632700368387637476463695830118608102967670950308872626205127866020492317304959540149284763088923888711055968043775957661857657793840178347190145171358909971287024149315723027112523821962085761830914621818387892861503121226894773236330234072472754475271042445910381176167203271353513283747978377728141051459890731180796054700197286047845751196066017871365312009236363312008663517505722283002587592128769303730242053635417624208196117696755005162188107623760927536910196489475490234649478666105979029713819699976678396929712165859229868016111198002527511672328335002855405545512910154155050672173188363058293429831858580429020461810302673584029437642824294432139338554880837195977461327028376812691014056169164656431468686355828119782228070204443553562571834195310841222730549556655868898929000685362879658287999274668401933810425759767954871964397363346156008239127236392704631815172875889684800706236998339826908276482226030271294397759370589555087235879810067643231153873385865118149339156331477025208225101584639540429509230268867114360801117700670673693889519024513387016655322382455906051436197843452741074621441050196524005183729415733500654881148049069525953521236567313771584975500479392611166449456645303622363369202700579065858544853043716456431778776240570625303076034560314915929073980943806581107833066459446718891378884996023617026221069255563053179418198910716244829279219912810263835377452860998318241020014512878291460922966763127180944593835925761742291006314653176761113324929861342312008173707093500617634363798333646055799281080933827065156673329306197699705603370753509324182797549197397629346589319596278306157861074633291095131531821254597539881785963306469990279883484234797357029091238937082077264980568815690100526150413276769760569103934443914032068560882976663147373230731322805550264772139551572741626325216233287657674403717561223200050256323446688897536418190601443732363746530097553613016435375243432083430256961885940053979372297140147122450396958838280384752247473763485182084552825404094782605219015344882429592196516635649198798764596020756837433106897373911363692645677296453110729216999533944927138159720147989754000194803135220721329291365569012168925720192739131352965216797200585983041720295092414537718590097140865813142252107034153286188513613216784108782610491032692715458754237041490179380382936675522757424253821124844449443091530445677235797395693930748758422752937922442582287822596489871617967434909251952042117879237959197895173351849618850956663396569052013818154165861877212173715643510177748311185291652796987580100314505369902952641892147786205734413928166472665851938017347308143308494757838118590007919918255649009805485865936847304059696202886936987187828672744666126734607099510214974703850467867620512578937308483646472939471704826158536088792891757593786148424028995485678896897080164292022695713872331548332148644334053518646076476637663164282718164671045414372112244429373254181089233379386027254038640606626776118118104973207838053770092821348012501140917657657217132207879401971422089241784618274074012045098917065883530471746897507093444014176552229290715405095945848966393368439556125118125190655460518182081071412787114257982853072810273177934685568902364517731871052340322612292293584558742024488772751078079938068198062804902551151100608368165596522755510740331833352268499152966193834030466919808115131393393153929655589574015606036277942731491596548823872633874210309375980279865962916659379151377360805542172981523738715060269992271789110880241766763540280213812770755955784008463368739824577469442316208810013974275929822629989974144093110155912119699565212879344478987968775682080922135723999707995222232552031093618423714921422933622904850644594696508067263730115510604783250289141509044244947954462617211942022428578775069013186796176058915732804444265508786958227150755122132757131727401876590027232981196256717161926907117514063781709050282787038887681588513973057649784057770967607271388205844043559275561541941023588037347544731973138814640239073423290266464116638662870875436056432436923911028714376083339587677015142190129626495718844706497122775017483721983004824001123582186249530364030935451637110778897491521857005605844955154126697415102931666192004808187355344680721809079869342566250142612228727918957201551434407422106265989738508169920532682081029135072065270151503660919551886463904595648754903146853181661177158360271056544561250660594734354964430586198509752971507435554725879934573499028252102835759602620788089197982368342702908192667490311861868561353794934755903744326302869655649643376358503839825674298908104140231392003801156845340996504631980043677670296535637721180360847917161826234808883670434995264381426848691761856079750008435786988844507701862441886938005900625987121364655025590175022521717845610679516260000250138865402301440697040972649029552926480277795064532694167712525626573771548003517295158748324957873431489457948694431882848269038343102229071677131990834542970161986688417854762784518980038425534403467843056779579948031276879136990445537921406934517945375862105160122035529341905668566503130440528402324109255595901690664326581161490168833609106124392098869722298647604823504404760497414239205801771968640589184920368501039308428558360037736437517317082420111491625844311031793002797423323592554011539396605417168543325297619494599774205216577407108055999480254511506832498322455811377060780511883987028471974366195800998383529345165947833864903579919504700821195807907661272681185924500707447633325705908395096173559962342911455173294387703728410979425305467893834795224202572117783050739207944574278482463487307387803521540877340109122801979414118277190498664881112934668628822575227938272542315800230979700846825368411796763347404166654652612800347482319261992989295252042791194843141662473737410635526822812650747418572775090118200635382715273284457847916616297362945733535976656274389220436832055763066014196167237638273651845860475793874385813248664676716930058189623340429453695959116654727740828902032298853418375741373685368243738411190755589426192149764298895887832400799889359716611201852949534605434971373394725912303168825096503782853498501150842277413923956016014877183040516403343340652967642284135316458317848130536025304397954731304637063699141520139208506666147697804862724660306312044389583081810864825019032371595807891851610207723743028548955440378889221243059895452321412852075241087358547301720423272820331463749611759342693114355754906844622297644863186746835877990803066532575579819769320077767176950783329408383490268921891127403192180110501440472542795476840231020160003227596993872261560822268206572457190460432776893059504763872677969036752788387491081307961594479005095415054736911351080088737653075969588317106614158184457640374957542186436067231930804342522378224562636859443013195266350951578287020985488672578630703066110252664220205327946549130288892305702636823676060374949149687101794219748505663171025811603337786047417735702306306210282294809973422525751348353101736309248168287898233742967816251338267777651465326732369562484015070397040891571156228908487039475917417384916240056882052600176651321575968058478307051199225468244676677812968798058977174889421040294200189043248064603076178279400637162224535422047186546305834799693020723624843673033897374846318842433403761016406325643693042160566336626100491502224501260429751272950608828233500885950844682261849380385082293035210480019102750092075965960244118832948678338329130335171431075543566294157609042830447948994344099842934641801025011884226907536046948051360632229704702553795586060826999962955177268052866948528338863356128128621418677701363791669605966902938442926437358269958684790332650960049673748634578356303277747922633555674879450579302648424769651017783963538832805036986490871503500732309002016913137546430811021098368090082019479688086704521043170912758788304523188216879281772937150698330785088625834268632594171843039258912211910793558374153158082797424367100666847869781526648809713172608400433115405112191078409696298674248427815310563831579879687077611071149787069854583959893840961281709879632373989508467516796501040364876421111114472351380581108139573481913484922243139481853154996204090600717165797578589703519340650188445064369268963135576255814339670889417161177254013188232119424100305350258910139008541777882665789113847775872736097527117049967653243024010222918136950556303826133041216080575309348653981615409453906139306314251319146642941049884088697882509467801401891781479095825924687934140116154146361073049628468347727376477056774544511221464152534182697522514452252349160052555615130609637316353284761050905713732943124802212631633273783533871930541417303392260708573427337625879843997519143460877301109887961605401761062467049939994757527361501623863986747524027290843844582467581193481669678489048184454286090322789323035724287597640162222059995952386245636781183010532702756776665082545904675449468707695185053127388623934541900320463471290696967208878999957601017431619686679549124959780672726686408231576015507986782208509901952223681203176789342493823927917566912753104706568600446635760083091876250645240113143753972483232995682445251478669108626868447526067517597932569378229635814435059427816574501091104003361222106494046259816714104208800543011230419268290148763629546317743884739709827028880961599705214835315621117762040798861539630738780814853439390419672393856766862403528566297966384536174684293449490396890972571867021078296972473969611026252903647725592867723990189327127262917690693625190591049908991530824417174296865572770268604494634527070881896272571744319233904248709527556484654133747591385217832526143461524718744730620878487047260801386463458944767227400417229019047288309051507008809297128002228642734416802326067107115489376847278916218760925763548923317308797645473237769823501181881606776354612621282518412501119844131928362399823409426504166700513273137534369751463372644792432671995242706187889983739443595537304461776144409387100187144548888775803329611114809408251766823939265387693065191003080654845695157324016459424096364772518771915206295241166744645318633316712700136853088670455941629200520502064576839232731506713802339126411454073265339896055241227025762115184622255349926672372669010038249202789862105686312410502081649860972839020252712874786485854342118460743153450917112889695689297510902636135518915342824959301526170949310889282934287667465630554582032830920739731643328992774854490771403653259472975172761322875527017365062587462649250220787443692510116591656855609734456859849924184024126809515622947705221854308407130322819262063030485716271077207150235849080645631124806176450296132478758003127678896444251077064909061705474030956391230818504085738643968852008665863760020430413083123598169471193334036619449632453022642273333112867588846519738834816096736673959770607309604132691005482123315703703117619136828737449432779553695455334845210493394702919440874897873308879950978306107119158802138477341131383396962729305120198203953113507527149357931127147221410369790981146965061701823204904719327131484454009464216037558852497409524956375472174780364703718352175783187168756097576207603933507848895431431388529667043469703198139936825794011671104898333054810775574889694223542093788374385385841504738532402803677764818923141590439713614057477946627973494646984350209592401116676157390948821983383466267344955720475520247380227102100872664935787411658015945484488150003227650815536971994154465855175454657709776747731032606970499169813536725521680661196313663017698731201425858304717906887457513566721153262509713514465739451398110424043761904644520010736568631279751501994552997885111160691404483810724765399389494150937180092768401750675630970422794269185185842756206879931046379325050473499337247818912180745579192746801919981314216146675295319748521070886630107261735599830384963686175227832625911618040506791130779942100034742271732515915043675800458059845550007042100647124170934021690106746239544103885427589474343631987590381324478941566788296364585828751123825765797061298634746748804715799218027834371090765727341028238959270668479512143142648500944375517447073560218493296409528533773025268385914811725883819184736279318422388163874556345038369218622722144966886258304915551214880228228662155306629912977942241355262747818354371195764228787295271355012196919784049401709113296729576798376109304477812356231362942546687314950950353690271709559409169922589256940198712329067155744539669122051099133568863793155049362045317071553716919705258486035071118579008397927647482179899149583342207623279749698630729457472493553933693351934895083751320888355406940807492132058487698501257425074059100255080165354426790970967832332140879657210793116305824909545201650255747560455747021376776280799928237940688801606328582812419956098314324034765481348313574409106669407506302661492486778998014746973987888259355759860492900615305330527997568707467866787415280322521559320106643099145157676834182809241544851300702227155563332327427652886222399603439002511761411366669971552099688828426872045025598871513469897305097959551429528109517456154458621612378097500190228355072320326124605120510347714794330184988810197747604767579728703830760729767194501115291655738364606354544622430372379323816842048961066271712205115101324857153778514703411490519950221635248561822840293344119114472008939387162660894917816178272370525084036609343283744049689254250457871210182513715937421015605806283686340617799283645171699802710309002960162293364631543764761520447552363447607296990947215503460685498215707238036277715786270321711535011348670663427124838491961299894517219318819476786924172502247188126517711548696654010492175582605743959595687415746575745477116831182566252086338448551502347568521224798840859981574462069944200235287130921467921711159935450627894431183910400235822614037919175550717714552279931985470789668521847384870734677729360425221417434219553325871212498458010755193305287171421683957603380156447634702264828445853018657602546188505151714562182628115307994922080731188544892129467086225569257085845530853957279635556731501520397543392770344859901076833838626919493719981641918258485613710599543613072059253748873468803795050800567032911378140972623501317005153530124887805003895424924196245400338864014591163588464360414316981488484777941447653605288573719597775149093777569640975594784446880842655903667904644596517170465453057185783475469750440624269680824151692947431586666743487771878324675468308071644159241677989927153669186984467163518321003552545390851647697383552606991885551367868574070489896640795092149849603584032414268222093952201105845743127788427099020248481954057471475351781745856093656196245130029216669204269876578248913824092341138019292600196140975324972327002660299395207300051505618364055980368192874469586748377603626448756126439677418106733150941405309831220108237337441128787768647168611571386496914384906487517726238034103104830722395031996667916359367567299895096042679486444496861939711460644727139653632717668423487055556343114028394480757941162538967144092774402135069057076859573203870496856581821763031506430231382975312230273949783492638040754312014364804408255981198795914649478108652394985020994428986780564789768025011552512102296841812199272498071827935054497454989451534615795099225461768914818411055108445373116229436977566746475430950868224826320900702361389653832051997581896730609717364822258102810096932413178749685598869088321733035101926078183127465412014514525613200936944720635202447385178488945788921579204076253830947907912734391174643258946093949192265055975709907892818305543437717019828460680261257596933325248739526251120788143137780058167615494183327760605222922788919638407391843926018850284309932602732228123181646058133354835047977727433377000654348523396372467762662982489002728876353935421591496003468288318930829242647775449179693465598483497417641420005018351773012903761055914545732110028150062841153541268931381908656886717221205594562663364841951869095581520004059221431831104940086602940658657811921824227175874675652629121289655887390819557474944163102591466616818286857644384767814604944279767362671056386977658682733743091878639867904655172526023111013809514206643590867050874270557058074079701948033474097531303105645922238570948045220598902429386059337507654134868975233559581551864547080039745871903438859608066355207204333207449497824174653240965834996382898657050303433128712486896811721278157630817405044848063047496450961503457183515637551688319641103137011315693207561532352954964626670666177793824413707166741908315737752370958950244715285451683205913231002764595556607650360232432094538935013722321107660139241947941706710134200780567839971749719308115678453299509385131161176285364104283945608887616377869006287844986753899164498225697639007153332505188845498624341171060532358143722326439661658859071978745280125435403963241945338994636615744622857280589024380921204381775388738789821942200637640723245808401434838818903273798358220348160854380194367098253302805477871585710603110329551872722789995427328840870819213664469469781545328386021482084589806193367687167723354059002933508095291878177917207684418297388275991502291518377993094777968205929602963504477053713319648639192382338669309379851957001600720453921941037462754457481422928175818254342725635272007826792166374618068855865909455961340567707320991840654026678395989489601157768550529320091461097429890190722685656719823129112870354123045561476111057485499652930994958339328678705847103968998308457612500305069799167121523042851717464652149774711211539852932845011700851504623470076423553451013008259378389134916932174866736631467672424979796094053377053279087456507642338799203055646248578590431875422944435354654428991186863181709729186291081770498760957140762537184832653484648953258611544886221735817179828819757990135575492598923353203453904607305520634491844192581932169836135777499173269813623722236496157636637398319819483294764535556176710579903308579508325534771746383014700594946037552453444733693651572233009617220393006196955831829056184839586112601618129374232920182544665298460575604977885776002985071040623679071047559238455741071563990377659256962707843133904743923351569498884290910198485867761032959551732529964054114036174974986223336661668327468402751130082900343839944594922585945764602318864182452768017283422449109772501023893122939565942371857644723787621846901160883279945315226858271154045359324045682527028666711664703607832344743049065548334379661119443274544511879422644537211148166004212238221829456423938282423858784376517762176157123621270691748911695224691585436592156538219555647327219248192173472852643566462644710024692177095914798504960662078482653918085716041703202195616647665740379059058776626791926596945902278180863462631392667894014662714911663334296838838092760242914707578760346199630270443883384367834247982282398295578272498988598181782075153923368363793608658209745660272914313910395159829277844510409758060082899381793243769926299215539674776127294180409520159049239951693268391225355648467118709179083827746456171792253665605807887576378843433868076155443032842033267191643151028587090567214577142433321569377365679183886924010618556602406833505831107087157237019654229442652800332648697742099089702388549630347033656360625935218957279862158765988722074282279085264954598364814136025474449837494778090008315495512063881843822557335780326620242671124305505250016511774499267069190381600942644647107671022803027828102084413934377738480839472453976321969267431170024065097467726900875761286614551810980107243339230604582979119525895317189128887884940556564412246149606934620158157361370385385723149600500992720597679400641878976411289486577415466757252226420859108324347054024819344129107878938916146780427832042613957301716312039435253185466499583611108181912880957278217288430759255124708176090697580620042291752116549054560814863675265928164272237125195444223516273160124529248664539237352411394757326432592450412420400327194726568702223381745927258609524990596317202254788758697428244518848047438596657728408281901777285852545841173353013410505304190052532571779036771593136664155607506633922187177212105714564765629776786874042299877295807031694079248373379315187504809018417661715812387872057038300615247823366664636229576585745716790762723751745258947781653606463748406359467941460933666896774990301951617366239133024327906279204695528085473506103269245325894717663597833755864608866184442344448078500987930144066941966286955796631374031897533892991279636028054143824397199870927165572578693425109552878361816842828068238887818573368774081350107101234793912421681924195399973817198701045480834933730801588830292434347199512526647952375784525098198436412013805656372697571371434106250217608312279584766648722168052263304994734623372004626212691415631721635794894210092216969025079287282599170500406399297720050515405829754116567765019091030521640693843749066994452713667617725361655496112243940535063281374100349673463747276408295730918221756282065745730468200799799074212732331801385198851941956913652539012224474063190288057722424474986409918287985774909724533827108255010477412380207631224536365247416553100497289856592120150583870865762157075342677266545581683415651631926752685164580971589393261958059994199860876970506903877819094921683137347742930724323333867737359954130762987047282315848873894877359706673302310844469568036161161047060923695129828364557361811982420581326676557854366688469859711915173959937132647450825264316652460542156840967145209704850585405522747103301084294619453236505145635279290520306479746934872728453580949554606938932658587332213017325113251350575447671362114818029153215445307751337965993365765557338294932858522226987406976287156850107885057969842163766339769583403486472199040489669982824757975969220331529445133181374073393655766679454302117866612775124001195049267019923175451944278197643867363448092720542521814626506713499039398763627447917044351255802227805192854035068249271162485457188206710153330701720123649981761298849237598114017399678007573110109304374528814560546491356333451033516491482596066663378957187151292429103860453958453534532245213080037759945394792345333780203175838104555133576925519502193753098534333410003148436185325027405463575363074413350799777669756273558298429211394817909702839958268424803203710853546729426566252552191619445388338217969559612700141976264774578766346807978087697859386424901822252794902540418289283331179829992237407879536219138686826280557504408037936702916696943605410576331989247642432006587067614901454493761906530597473039171022957453462425205331615917464852587593092702640875640233145656954289440429396658719047609951638018259580519935997889883424370711990434590179841181170197119419082333442428992037602814691977602768336924024347642055259043904116641327807326902103410127601010859544344131466110380715697208209644057015701839447948115338412780942601461460197813046218384518421945469001463502164359650408245192502776673596610707734977594548870908414467003174218946868698293919082290408896658418554467859307260655676383360104852853114398819104786539669123674335015868465000653024139151219137106073494479855786278260623767888315827558247121286065636556241990461494371705722125502972265182726764990951889412384080704725799537996475207618454717783653155016688233251155846125319111917303614840106709281979079472112429357377356799012741715871559625259211293037111766629170086546872978501864519784259837486069894235058112790754300106764181902961001261769696251027825047603558437827446135462360278556171750856215292305230140728639997642949382643347158350174692937054138164122052738446935113138500719069046494140944360049499848801446559980312698963112146208005756069517706389879234887358887601562893445425884172278571431720229545853269833123258552879177515232443050935666337433675773574827665742466975852509146339755876323752389907438715263808802854881820602909347806398911333190642015262489715527878436487791307385821893540346708050916080535499062517463791671115069318160027066418308551978080515346742101199425404003638331664818770270063038573293953771358677100572039431543060128205810617653189702355875338180150330624043618035184391957043487961746065654343081301456271707314988208300004977575994589707006938978638956416430599487123594743793090508949333849410460021821372499194590672485121507090874626642681078463758544978836338020710518720408517324919528447381830570271950528314063663295515458454671256154979436202422701907426170188265844628871935318887033287585601419734357210014654344912135056215031845964406518031312446323362475003399850146037972632517410589375987402939205646845914753241302369997071269075668437452433349706302245976454842657503227013249937549221851375920985444309306234117338284277005283318957617623175197904538305877791339742897681334875784804127366614353637530697048893200546005553893516304712083554511432433217476972355632373625247115621659676489466497809896251437980648551856726949685058416891326787759893172187709337672541159421458910957665965027834741896831325367961557164709713660891509443013681939468859117913195015612803436881131582283313337043090857451317349193663450640376230056921475939375944514503335042130985587451065485208293949396546483670950846127826229213118910299969829391836114684069326344991332234179777738159165399907052180685239369632972852787668082021772162261568111248330887767468655073410926866330100972454008034391000118675725664861497853562409214241590538988727946091311415237193053450685779020846385575657816015149892819753486257282311099696971573885876553341091590118110282850966341498668749507383928391156448247263626899757136514649817159026037265844239893744195916438615075423266998718859337611674195264814760784220010270504776839865503002767873984208972130363976573451555297746121091628238447626251865501845221441910786016737588334877765339151866652011508149015741574854992204210672795468698706677429122757833987095071067168799680644439801161138918156648037308524230045196027751419417384716308437918865588820914413752241801623426462744069882178238370168126150911955906131396784313859819073962169099899175445396630786152328042778713609315320921513402267306337044154609625382240251285476886384163041188815205371863420762342124188402757423232113992875154325963563833960605808045047401878663433475077877338662833438931667375643746726249758057957863996762620030475431405700060421649220071520037969531497419383594393543917603997299675554787682330613717711770455343319585744319058733238438130914363176283303152350646081745236299987384065498458311710286240151954232497695244704268761176308064141465175136950872083778502199014343085133674436964176768916490503042657315898365611303521468371456264759678369516656581144848972168917469655688738289203149660968595028082340586729818258432984639906689873712420990322991249456746474478333821880341704747949231435950794227901721584813211097218106754986265536673454010795133553744242990725540708015269980592271966174818342217987294475520063086939600380332368042776101696075568445520888165353159224833345982713258681895974708306678365895216593789464908551904416151677932030289397793982452374106484854797808358975414356465294023288334129770029108824053361882927698100800006041582565419523771210368902697840084989026929470112214795579130272678324731770623654586611586661704393636076086086498289247412348195333904651229658247883882556687419061302997180300959742791545544725449893644729331275617728213089422214396700921492906242192151671782479055501662599060797489635697583451959712682245424352703886857050765932310061786254386281399298949187527664735306753637585635205188458210968076584100790468558594125403688245393087313465341928780369169947036524806283627406958893594154282203476235016108533611959261987129896799349170791184676909795505948291961847093166354351725012754063295124200125553819043157051827905580395000217314207250534233103662474637166868761009574706912256789881643015345800216620678617975393937822777775596777873049794574854035267205575438911929633733779880238745173664315117817331817590748427054552889721985355270450109667405880401001610334409726360574407656951000485396217066105269351810984335754412089623726329924131540804793337168650170234849116413063251842118317855100803608578518376689682754822272387608537135159559978141666543047901801079275198473442376847539129144670510067185770065575814369654811166155621239728156885267833658200639237415702575697076425411045301463435627489344224546909802260779521942795687393532212466001858375988771697741591762225669078662231699584832213739330533673758659383935872715965534129224865871317064917262364337383245407378818910530302279137090214850728873857086015140792729117912323457360428973559301547952592477144431825380121119707753885276202786093613031926364929871766330307654547505319111530105346913411775399146325973073252002966294637369933447943924931882833569097378417630379964005106150761851541511012930757669199136922470293484363053402446486045561083085973588387448403228883208354630211614387817755083280502491165051030164277713086548490338446295821709732387304840248789248717117976617754205934017101156344088550662853490280968739517659425650385174172154760087773672672554591121830315510797601361181643945192555418548857626240465277411157489576867932429264514201584116126477389121047851678275440980712861547617314303565760577870153353764209611633504296379883309839420415345954563942838265048280873492409831309148352711216176230155669002251681653754556466861352344227759784097513049321043989244974289894941996062154380544316579966932946931373323567303876647927899020522624713973077474698101681921387568291405952585736793313059374945006538649689163128131828309328317917617393767693443743300995035423811642222024302669959338136656237183915096499593149017475315121239636496850275404235383128431441011860308155553330265557253219960856749416285991448808447134094088037445729965155323479984214362668342033596819764101838082611399414171629113091276046519555173975790296744336592711910271259611320517724891055180707300810673039148453958532519252311570772115240139566009387913588968843907479715536566792330985338599539605047006505301319607652621680532258277737955599486369876116493838474494053613126047520391723471500785100337977082147305958727333862230937964509893792186714732211718012899195661316681969168761113500021524970540436389418146746510592380496023433219991884085746741062593202055230070233204464956548732500260766356940014788929132489955312372110621796107224492588874346586237943495265441160308480518837860368043589701889558690280177479963197743554331234514220587685871952127538255883972186079242061101867044915144740674419804765105901319668410955077591836782038463819681911011272892288975775350251601909117616136239240122551271331090715175705290106050329482683673513306485948216646564564014547658526921916054781655255428484982808625917529740286015486006210480186346899934480024641414283828011487157764329355463832300320899321411680240307093412371794275301780495849777487862891643234942605546809162196026563731174929352351385319239471794906066984349205873805546978490659798754477800477856231584010092347573044502021273721880503408755616273684528604617117330336909081084456590954285166010814512419826575520455770466742587346275460502665621036798678094904432112037850271271817097996168598782209545717880297836213366584420736670689911031487084786234620594088595419368096020686228250244684151160059032514776421708192381868264955605285233885153742590510776232768737541760858315786619570835673250680355063711982428622412731665196145701700833315314078251743495702913626799529780511689731638822101133644000397996603239921704154089414310508487939814897098657412427658645049188001749080135892206094568989177860117738454527091165815142845943536707810251399215165094518683865594063389755497229122841065862040279958179218762768313645272178946439430836032124912428300009145840845437534753949127922476535424163811134431944174225589048279116426811247925073566253669719202113294646263611892479214351905949798335532404307009310662779323388505187869889615332526532158265624532573412161085593161952782499237036589444994897061181499388490384405614439759419509393533865424314481404548237257602633530904128786222803087950439776893820614058475879702706331116783010628548628243650862760284865241910873577352846601445963959182345715805817006498196870978269015334043198930988940932811996827847894315969076572342660487203486401067816558594754322324100600534012775133962596021380964387245991310030552781787375440536515959949437637335048913637969440104338889308349052570456116541042007136143272821545689196011520329524276466557692146266744303883683705637524075562479697892589819654792582420404051724002058091517255627896531036461490045698743302778378138617897333033191137573246796542498444332858509664649226501643913563870627383033591164696213772413951578468589789881992396505941356893667467092458044366081939964744415782341634624131095943710916899480313262546555706968810884384357128638523051050079859099088423194483851567297311885624231392690597213351528361560019522392683394289708875139720959353773628436682444791034118559402198993638049850018867947994643787509144412152193244163360125458384055899412644548189570741756617387088205874299756817974484757918506386382144520852333281483537821477030984554082631070089114381264286987565179499075948636452511919244166265628745587498819718555533555655944584918777362476652812824461126390533762275801632615723254864210818067044519157871104393884119909338370850820380856000396829889721956426712785640009385478380440553313273879260916532748592344099435815948693076948448720847452689972864264203808556098908399050093564571002390712952109441557035950262134988805697770452238359891882542385268885642910643678664753087830348034474332688201969904374301693376734799541950740487565314169530114280963495153101456033028045748635606460888513483769766454498517978780441257183795546599706887328101355522144900980157331866476593194458649268499585094136865852427849714506343782954233844070846377533266357619761880161922136474610382275233052266504424786143215842548461584040680244722261328701354106137988068964072507429846304280754594778513962922588992956023491134897260966710052363859562611937592251973553327312817550249645892736964439296820096593875773335259892993466888498700177065862891711398104494764295062724980702672556604688894708422217290840313809892751803789143898474247772483780113228454075006848491635896563420124447823072980377739570106913814657676397288539008944099286201798663003467859715077062405768472319049251470920670129961969447479798120000726463741628707545296944563519446790053008204242809008137875954966665327174675758683772855080034829326217104228776775548791016215720454285897016690831326502649162286229781737677357631190426248427547466088215262611850255398678909366148242037090786198070037350462723620618519211967315150579217362891587652303131732516137497985353418554797686939486197211460346352333014360155996586391403738080823786720539135465748046402208411624186993719333893319209539450260178232715044356383314760053918150368169251430762492047111091127014074261570716596795196736193440099585385789431891001819784145386123411448623745995999877519090171970060071840554150118386942771026157384000637017747745865702257341666323553118425866238406168564454138679644933153480734767345908372492537022305044952037633723252070601976019188753594360837741104820498818851376622994307134267796900600561448322895524835341269555571212060852604024422647244599869277410814941497907587392561154271732060618813348550625857940506716488161272134752092691804523124964834051392643384451698640153119263452366885124778170648207060347525325428219818255401006796745557103623240867388009620519315386469234484518670031811824883137300115603674984135116239930199888645550578483154480169905488982742917697797077363195246737247936092543383903427209724916409419484702302110252712669035591704417744941309887152028619730788854836090867062153396382031612024574865294030295109814808301374071476388354134094090665492001358398652382498634938671149837722616515732709855002413309780339681318733230644666451862101400966254870856997346959333358559202665286620400313703602492840747580331218097789266829634012898076003374286348177112412520371905018436772825270893235664115853846185681896659245801593985375207306866859297524638875012478370914441053389488594539414598835145706379945001868547346849285024030372090577921935937893117278361254263492263674182543862779998334978109386675102908585369460563696200500006912583817275060621862489134856353527137508198200858668098857472069127541204106457860308438085364634212662512755109373737662520979154959195865209779110223968172655210954789975273727726548653574318565532305257611333386074200320595035181393094425451943307789067729812331957803471533779677182775696313371923825429585788845946879525297264259806857070971978836405447856488259291970744490732552182167113673406476596412706950643192927938511707950496727249752540585100646106383168946338770787781758206431182955458773390804862812623818777790184024635396511817497582824968481204471426705398547774415860533718485464993928692477230207607332938060906939915927982291545060141175973885144098618135260179031092668136596497557714705204223345056635309477678096310371763916977313638144215974677781455410319453267279008815147076677876279746253215309485643128174261823808186195064693033605589587470950078443088019567195995899821608631652093179817075002396221196223169893921815876211552509378505236465699593328543078913197422230966026053365438179433164965069568990290922819101645985503791198963962398818400885207502828382017659552242196440353959994699900179947574564263779548187385201641257688227891878302439489020970061749229708426682037693672918330163242408527885979005349784813572931246838849924207840856703976928152247812048969246841927258673071633582030518046070205798090181191389694715878608166536165442222534279218296991492868618253290856328779199173108361141137879399441616568950632460118936223997026810077196788109302476680029170372860422883786477411558347207741445399284461652747059146485712987713983093024097384098683916594691092533380392264955691989593343172777734872606933118344344602693713422509954861711926623176385681222989163836642543802156829140037919844533779342225910824924741756967989780394718400815931843974769007986090613104156690906405308178086467233025382576317308369285713752216855612815662197392855302558686483611578715145144030019268712055248579201567662353021489639903241407114540102876649057286644233990731263573138343807515231169666129905591492037560220809674563937737118656554595385690638238425414580767749910600070899658386474810480960770744210989461988026794742468853868803886905427728475195010994621976319207627690224434785271510343639956927870629382428535737777172111544758534407052415408322451723572768649094376499988198895374934407070420410069398248388963295404485677855578330845566826259430657857458457525182096859434558473602537170899722538979390836216151057404249362031218046623211959262562468937635156355932255788916658018741321090120386344315181717578578272551010998851946755663060606715377715477324063799511897731291098814980111920824924475205423388836406323696840877540728687040061940724613199568943977656420293575810491605405897666867453568510034990283033345969102706535049158431005870201892690911133737170428608490545344789653380957648955951063999845406243467099989759116246324966069650101038542718953342131251506288915837512082547570506905266837745494362704030490473134296019366597058810477155890933981037221508063965031032186627032520509899932132842211977345342460960622879917374482033392021665521254080676923946939480106775735480477327575931049728775171850193481813802668636160086381497754097789563219698053843935321289756329228987475827420195746922338874479842610615765342549666297264631156787694519805162919713665846277293442832863991820639858757841168161410466591369601046254032534355624622438617408471020383123555698589475164542375175579900419478955718572651250354815522730532041983933850969177627400695132353274817322209760685306280072255960529057970046628241454277660843513054030780409953215435270951106619062706135454340378081871634402161556923457542607402717698331497725702861322110294410211784045945861844279214506976068333330932480471381989742197415646531055161652273976837478266863069584120811711588128561760147660028570695522478992708363229300728089766991788003621570884397216261627025795547405866445739591270877901310592954584666380182644791120223192780686275871125216348481142050240166612337287247286395834752179541124997985449965661012665900312825578911811156241398818124288436619679622502436058153784652750061472953064864828726887290020804870481866606780956155586094444544942236045740139832178093222615175245451847858348925660717771858546033805544203158148480607544453357721625317009808142649308629070565779775034857166482698758870497799039036323946836788923417506918250494153115565581148234088181900982607047408951806622717651716559517948886188097767199203096118244943709635614703750264059199199454449707158079196356946407387416639372984001255118397513773771763463384463134192103982649842452505289023336186470618433571872811670989331642977063104070685793958714329738726608414865096465297643346290338698843210129266211667540925907178795966256595874429966605132836908036521345248951223035339665197309744180060366534075344788937385222028606492653333354481634895112451238801237580243129219615847170352957729093549895996566662859437728369401844986826437554066693188157345218997814769751090819925664769773166390519186549162666387192459995892827794063417817202435744442885538165073571897636212203100462059002744825237381380707488261413774798372413070517632419463151416509579795219335694307629706578363297632425120812982534417317884560068997271658505559746273597923744157561577499746795571196683865083446565655879998102513796447160622748028080405132210460927499895376579677429746673509268217306211820504282643251870970550750216990991957445299916658515259707781601216514881331016698308689992637170194404324755349093529680943842597734835626850241627940971840297907784012451653636131155162053797626837841021431573411365386140911104503828474485538286394331097186957617676824172278600605080244203206640037912728421255607769700530091175342963623717992345134102623378845328640225071729004325931696141991204704897924692168784256361227991934749878724742832506606130527355574345453490849484034049924512490227034174557605560613280607114539441807546375774387936999542692368965344484933823018852968146760240740266275586006379591586997847537328327488879066693035073183614710669588475652362782950692734588286251659840660262551852621765537921344558337931287576834115648355624336594785719090616371019930359542146613291379967062542264457811073440509672672445659344299466114707161585928794755611596162848674887738610612923003972574172733107683223507046900269974014760640639161850929863650856180036749733602885255691486937725702398332737829324642404030282196916639213550565709386435128664740991998138672621214527334018453423475056645030210925165133966269721428901331578647329247615354280762131319387950778673269498467253548210597414729654659672052044059771037209106530093841203509359447448226705455340483633738233884830035199463535829846467740480992858580127111573805425057158584154309229202570147831809878631038296469589960124681405454629705188665325614831188450225759112765438842745739292407223137765472420498543823296830922284860252744021411451741670525680837116280750480454256976128823180879720261299887193037398747984099238795255735410563906230687033348307972453922666305271938558663010298236231798823462309764725104931249243871465686169523986422028725748667623602678836036228389882950389761337197136860897820134080112598500331974682976090344228778687428127510359852756668258906687534607499494366264610049343852544806406724150169748983391174480050878150410356988903783325149332666032472682834118306848058888760613553146642225032070644353509724271011996054315729768452552948849463994694926493686051703781307434178132396184371947467635633281853198178420082130733217710573549521753125515482125636959609134176353158812279781690578631989277810003011252260969525918015725638652636869627481439619771078169667888460019475921641900400084868925380363445961818499787364465987286395843939888886956055066937674943570838043537143880410650781870856675697332622243896148158497405644660999732891001075062889262911442936733183553388714239419565371323049797886687524022854089093824531410270513015488246497560794924590313280142763781309435353233201421163395942675828666095588301549084103498525927360588610249648847150928446664017569152183581505974066509010428210340589789668529851599921956486584146669780369857104665173611004143242320098402380242358203440163537690682698723461032527163214750581602459143546053776452754652300556543649078348057739977866133260085607393385250825658890109769875820720157119628824388255305637952772017192443788861077441527658207737849731980532909147475292698805076749515690242787672402781402408175400103892304415931181416265025383864055629569547347206273607372008618837589615179952779937029789880669238457639844151689103815833447684868284229444652754282468539500688769784301250436575603919293140005666571551497990258745403414300939384988426578612559736350041461718558333259193430159677767953087974104036343820749796005891807194444739602438912595631060411379249154122056042316060874024508867967191002341261493275884536952137543314051630521819503531723846921446316872388734737895797842167865844859630986172620416718521478517828497255813046989805665269551630040472027870256007973255444490005663469134485229453861624535704282683415566796361228459839432999617657964490343609087695183721080607981362351469571788528778290974755510364091524587442304808018480891955710331492533529245081193835620662554579235866037922910727077913660252094650981469218802402287829331842007278331385952494027082588692140388731141995120983913676342127863531898916500327917288903991969124544708263428618958947110423996012724420856639587144050197012091596891271924294818026245396043902257402144042589003631622433774447252124991335162893035600836598183381602585761676036894389385776860701224249450372014922345655445418034381453133040329464740040020368251705775694290970939848290572648498382388008422878008233279626680031286850056908076618503384638662679888682137210869650471657663399509557193936245830837887457435345435450649668207548567577098888084371346172298258687211516234305387999445524563389235435294803650488705662552338817120325286829312769727272371022036764679214941011514575791202304356850231687713946183794079019508733067006988824459868946688963062080103316600476151427330207285286502260735800106608157568312143342126893337857009605304005097616874693114910974932619050855401240157199984213876067327909487887107151383610095231794028731275559233146289643262533558861622753030816974083391027567294574516383924675020185107861365244873889671349839385999377199308271987384917872312505919838313410384711518118340315146878403695619425342066422889575990423623447233267091013300553633624860797537293432680557046620547434202176612158621978040680584070504258695876569045278117054749047768555695673040922579575974305760383028788541092037706186843312295736360948979994043385350998638359102747787405492038138771386500249378623306484303699092325478099075478924346185098453875341861488034857523927797088093565333927498870928632070746285415302168885286595216404181415430753300142110681423184330577683974227510728465103817529794509351363744717804530024625294816075237300190991415945419920460684258678816692680246268248673714611513312590987645138572810820220300759304208676402898367441138466958459565049537013781700732981619548296475878786632810437634827496545673441659414242053360427951159815522299471650352242159381511808964904807477876511413778137441569318014893248167456741336017991383604120096454740990126169918552568105436197521354039158945702075988428388029141637826593636530486249769688345183181987621871309111245729901438246232372131937521715044471664895859807453346801873336325302046268654236175797784145244668934403060226024992831847942631316572091046116105668440751419348465488680674788590307830260998067474867970004446516968662008694408769922587493088541285810406810094053738467180356830428618973988531737777134412692289285710101140424687861522480430181696919966779601162120910445850366790360335149047054538304343791440336591749150052868547246487600749649405755634218968602616222279363583854851739856506283447145882742941896162531240628286853394479624186737365614788768284331905475092002837839787984478035009768651089677642403509535914939044354852502963976286305953522631500954352417023172118275221873597437445825560263434306491434959587559178867166771707750525324116218896660062683939226813718483720029275780468593423361489205812734431782832481004727310053863940154804271743342542260594525053936981837483094794037025773710806821971546029180714759706023412682692122811222011102672545314041233990177030719959900937454984586574196120492355601330241786090819188696180084830957796662007405942428197344064528918586323128889994772403203080383532721643200791592380796578667610940507538704072148284203315645929306684704688127123304855895105671285665447927474508914170561975725329305291236588780675865779098320878321470876192121616811701449445135957055154855719442206395862317211832978687596661539716674443336813913790901270930602106162586597843211089174979037788989614259684308618440342069225500362396397881094075429009213033395553386258330695516374515838075460920891763682647556305672565898028119247342430734689453572578507154579309860579590074286163790602240173733545739637708675744271889500629419061240021165644085779306109770763218812367703818529266409600161621933153591372100788335549704996637470388186782458911068358451696240743896911126660420822283009229884365298726557363217737328207989364470765260413156809763245976781733862014405820754937800036879815150230394400900934644871188709573364959916370928611927739328845505214802497933691244019993869280438367960834440307766166160010930986492522297072008951352056778148404655705259284099693221743262594265263138277646228876020195995364390584739162160857871419405975526809387164002612583793357591216338964145189218819510475851398491518553662484196065480069419095647963098929998972740090061579557682053836965158246403549246310886534689418069933687582518927115717779739651619336144015628649166053944759817436469178580949937736474518391977135833808222691059201142924936639430480215532380753167313450112842999608064906430087985350568128819714810539357447440367636587938166068799488643226280548482410725698714874259705896677335689228140532749994224707137927458190660649469475179561678347190554045148804133089351793488327735658290660350395703149306340032542874144665531012225895852959730979668898780139758332475636837259052105033190585695851485666628092374663313671323065480739647996899185230762086838200637400441877790151049649207820573685479515147691622857221884276919535315022410086045142150211945194810046989803485456184473276880666195065348817415257006648479572044417893359761956486924737594031318521462909540684902078618481665528430207335818413855885274415180808961940576416527401154674481022347909200086743718009691684039573490076979587195909924259539000455922044395426528552265943072880329979060347205087510458560594461147344166652974317161280233442482538033143084621162460688906070233729347517920472860358346017858052271075618844163705058172787486579489291704368566946777262895992316111122898941428855039996716018633272092529056614901999354032549166924710272779587144349301208565050181881849367064371062491773934139533701700574594040632802746169504161491047744848360255536575021191421916863167923027825606908655811090038925757558837365743813267888570497432089952797007821036103746318798305496838716859799540538237999801868666671554859568431201761644987960136744236866315857201280314906263251884016821669575412759787702564971196369503417755042627847810457425373672231807252099858877909784520143136951850083804261755855837392061596650539748655754065090078491466702019385618677706069404316558927521324551717534657988290018846647479748563077863866853122824824805932504388859394582294336694786068906072804333036952255030334571512231114173684669159447809170876048343801685972520338585664780963867897277727743959074536636575939978647980836809789081280209654304908786808950040624412654111298441604534208738035259630492197626551038317783382584218948270359876308322033193257858268052010338752951831821917661637631328847877476143016249453487302695154806569572751662680789139354181096716012966213445099460834266110499813772982396594943711032231870500886323712666470519112711984608535480640098633643154412419124171016013153377793381214087450042282199675843198090660612843156018611956615259713047797845627878854402472851161974711719448774851973616264433076067210664182145770814133513167495837000758595387939588429217527523664257616119306674174160879333689013930175781346674357976547778356973111101855529828194476875717135450736947800284768605839199938076447948185022452674959671735035158258765922041636654923576561436723826143695047813353858066700162843765668932666893101717979336131825250858548034913416061013342343296456333185539796077116567641802768870279756263673511770253200711625351681073201639347295613043338262224321215911361765816570418885866644390000413731408445356952346470906216263630319235158311786885098725183389680812615986108000855596362611029295501243338550022306502802169853587514414411663576655634398121323085402138116143185189905303818635390664205162358504059816182663952770309367570172358569717775788886066441900172346606040348762077319846360957468906293535151335185271264323113770897510978549787762019224867790747515389742596090299957447237115992221094847567735712483511393684750909281529528198904665393487261665095714481798643251769192807781848750052077560457012475223082167437169112060010549885436668125631570718026253300378189819029263258093093166710848157378021657291345454803005497862944509894297494083876423340217584900373136806392292384430601841290227767080369262455630636715296810601431750324859576642847857689480460002786177288697803613032539868101899055217412398299211664894100302469858108566374306499552938992462157249297909574751303161818285113562152105945256781594592610030290261869103305323448723417864757689315946390610737347478391498697915715062750409634555589400998813826890211940990160831568271797768791922457220120664603855910676703335015831228114933206377331721832217089665424962101680688252964929707221904837572441543234892581483774190557643208883702692958219165683579716219479619007538428384164018785229659903716028557245186367396555227055313449768999068281641721504331076614219348511832837513465799307973162508047310917660736239418881187099096192156923195550163564015768285729513442334366604379747825854235015760623133816490428027941475819928239569693388139102076283050262490533365805631839052474315379865876263027128042258186876378687341119353841042847652163571265070090794755189951442391679614086961265071257483645387029050361647010226166930512866730946764951782783266174307513051895223109585852854727188666141506428479411510348305834159861998987931197635372971354098305312557894508769481772869136242634987136701874194746360461142429724677522464174184681649359398114216277412600722437863775470120880453789994018006031243754850688093190008335418330479475272173449464293150115263069172040180830439930328224216666465135458666341117892549579468710493428455873145129987113691480917397500733564341323442270968944636411646923507035529112107601941183373599890959027772968447510549190428550016519016424544219898470030658525025635383245722808976006935445573744732363847864871569616904111410661151403666425974680250365232901918473702868744509135471495079539987438136009884588112396471689165712826763176034988088280231924859821522696043580254462610045706082487539966830322793442408490460895945711024241058142749209223746760138690453479500206745388132654811935944342556400282583513329854837267639959321914731774761186315524056218585575715744017356890241933801205341348324424126798517307238849157153767811714122391650745091775278107615949902997951430070770361138027356011660654416017511404557294066424572299951959760872392364048171588374365252200263784792645152381161501663543047643455680944596084090712514638473230491929561463033662174575778167430781894069917811800818432349134936998791766959141051539414399361851909706507041593700669770891365247010987150076095197318026080928088196525057447205008727494625571851604700094016963828475459956446234257142680381880821986503550528606390563935922341207284644700424600881661237537668978284154070289884555523745330972107496076746665219850156094369390089853284209051466226025116161646211438822881879258973582050720121852215924223161804819861406627920289504540567962282171983234990016081546927461614536929054161560482131938409568381415042272546737616054905966445699034222073383632049592612627362180538079993205775037895594909498299410448025863817618860866604601757229665258370346823483210034785440995407843931036285646562874069980480323562313639257267938559134661062855474540828910102265696111886506417027611058587522269775874844610574442022042930381411934662699911817336042366252452848501822208587072481961151908272581133017257223608854879345680108974414624941590805922673415646661091348083689094656627437973680776429850867171753436216073706261325164995071566166066561177716199863259296346875279720382184093770129828370026583903890921627311388810980030588358447080111679558750714576283954842550559208026363180581575837254471533966998497278541090982618496135826809219719211297047364518406628339593343160012305923475024537138487963896283505988072679322164186941214844882786944289104630621005030602518920607526397870521356480928194470854871768432256072961451361472048359719512147943119472916177919303173951791642736772674483015990657385253450148267387142298976001486465609665889314024448978003346992380569319278358369054155350439527012362826095688533261520986328578152984427142905787271888074196998356405943728507391231417087781677771287342468247352631575099947917269311203856182992303956115086284978637149017831377796128400483158594360606815197335016090683137962252497805174385885808839811994858048915497545443247314193268414270053713207098270500704775927073368560906428184316503761910882661791038284184223501953042870882554583017287868509350996651590572297938998524310947216094325785841664038336534875395604103847213855032762686894512859114789482147989805427693170496741732773814961849224159138325758214890584674524507516781352059319322631431444257553067043115867263888608271778965392584575120911437396511864412588362627709746964685171743147623495782998312914646893240681702595121074705811787116197847316786595275946091537638252199988682804965936230360437794275662630802164391983082984492528332385300159650141019842812543807161293087574567395753120150040645664992023550317419053202633504722269181573949471908741211006400048784893004865862544686776874979892236583596164253604165597651693311646800501313456820458448069963257465453904268126777163617574122993884392013260613040313750119851911466553403641450804009409516723804669881283915700523025591708741499526870880251764054783421948658171110703867800311757826443265395104522014232034817459989843214035229712930623687320843106920801265132360025518560544683338766066221320557705258915470748987726562628930268179506485821735387919952876589918010971704941857514913315089600344080635511024588237014905971227421502113050868260203890138041586311015234067729810601152443491443264989669105392160135227288165354105586056995453530980676980022105574608151075158259407551123055525441031706172046664189872601601344083726794373128480284469612110781870498496587802165096607656711320761369254268757577913906155136161424580137932342452147029427160043664572703249356528970064377110409368158307834275223516459555139944440911879308533285789208106132721539091962241134116480448772548722060881385086433301634306742880630868965003368922267803854094423578638740752319921205636463256888615298526442670564456122340939070057762409605741456178154450793677868216841540164927642009561365492956112987650796309127077038785962669490712329249029877336912461302651528055481990671364788850041059314870008042412290305368788991108935177452411022526507064555300699765249006635339784025161260179768628353798008978296355453926981647058624347735412225363998218303951860810718965793283085199821595844380450705442436303188654932050751111120160813484490090098781632804684927221483790910946013452245306470160082684189159622235030990568763058926361026323293684745066004483164377363695956674472820906572295481301685251626566888417917984346261497671272365399098585909384572216588686495365213351333453764553809352732309325861990265783784602233726380472186207317267212463409255001122270266465431084008087134472283677193006616640312538876216071553990378566917848553447808950895584329907204784538576278060284064650277020337752371977645327134536731747836564714454564047165168863827250299351429333230255424307508573582431183768332308849626766171599056721629989989872594349085685005888006610057667918114167702914510173842060928807549990789678071767713301797198215582371868484980805164411176240873713670792735304934246909441430219926671917561865432019634299566630437998369198483727582774884965989387801177216401765592886950332591822652429778947957885695067235070774451855003300822859103559815438370960970213892695986830997559490045235276714931343429064521131677021441044169649176143468672337431398562003623191995516071802118849433428900679316924971113134572249150834997208261107765294149872481064225503989730540240466897439226033668297287077769043125698448120047735555067763094416071960504103172723019648217089911677301918238778680275852323113158881713021985181006546192720986883410484727192918847604284210239615336772977049724057145253821392064483102779567596593395187830768346000646758434084921020983492750995351117733876345286238056225519013839999088699633044145637423248077718588334935227696630075502463749762240202546772830090302631931512921822879672932036354826129029605126026813906065817313088256833327597949040554636395686810158051772888317343628837631233638179668012136251033986220995200576780601144383093254556432179400479023936099549677045817156486493312795614873900626173375888763495436105841825161140461557917718679961699198789528107883347006499846457101412046019781656148650831980724285338557100571846028028045652994298938495432921142565191816874265338277864576173766679217944316562228505924162377534241721800157514831442052361956479345332777471446770062919108349913634047208211941331494418904234533673640953353686501035297949875274704292648465482651979562840424910441401576841647628257935598569160542917533934815735668364782403101742452266585138774899673445625265105902414716057621727123688733191808155861636997387972767353681127785310399313717868923705424096269038160575316941017464409198988571061561105063760636133986528245234918688285981378791165542841263264960961320468391743861050428176754196783881012937713647088832698981353816095915503849330239713754100333145633132549953631449002032488124363908091157264192456523035473913697441047759052950256591689981346634672442581888873010653026970168348513567354621507516056107614939159738672535572274969413713947768263598875453941467975911426266693950921524267721343749734662783722933158461856233735628369925527234074533369517523144506348826581211235498842730187049147405596832693042978777985091678531189386787147819407422434498797787547282533284682738765874766153450082032410775755777285330063769400165699333621970228036732952522903871307060685508954226675262850645649560470427518940842687597829295018233309113716002251274129589634004408996830971940882674450067054893644947613526415993595423656553207034315221541000802980116665535945286837785799031456549352882555757433582194579338118874333908707097828338965791856137563422933156019527435240173092595321095808303355958690103286200986840973174820524951994525595060278929638071991054932567573986469432025787507301568691441459995169423610811649313053725302066083866008415835483980502540822070486045549689776209364369291245284150602019787347282516282756548264190975482522952328674376585213348910807717064420403706838269175796009534132120579395774692905477857436331026283639961165751083330282320995169684065926904275419051632008790530480016193466592775720980808791972567109599560587313661447115086493647390880173881253674474771125122290026647642313595321234075201131117561785976181341932374354347626820087082661136738553950016614236401187267966256047599935792608093749464923612337015116754677651545776675137177119912074387854175256704275461161786279477698704046746916695476888454429536992875884953902293817858302839413359430318378277790171527019744855362311452869222899694175948925610894024651992843469372748754317631989964581341807860405130914996544997685358334392848564217220341772580413305165051251407895792500494174496801909493933012863990860625918032602225645191631607795299664632359060416360563239102669346161789207524305171379997717758651385632310900016484417893144957575505186917322734139815167312861775685316052983845280271493332292341275574079104199040311174503009940368019146456064922189408656326002976756172708631437634418950794036096109518459591933291300877702054128443330562104285826214028087781904690134012442742678165266625394785986865810845711081205798558490225230146039526024238911437478920688451916001341599731963320212699655044443058694321726175488763344533377063517496109226533157082982058196150863755131632696484004893702946726007523198803296280203514232974250642760270283043602098094648675824304125059423034103666156874978328813303420115950165650443484633535054451838422081234400120436099316102429972236251123042835578132843078011149910302352896619653680977841217725959286948544561011214804211173270439023498976264821471578074225628969160614532562283636857869176518533316525956509551889029095616697461746002112722402720981075089944712531073809965271189392013724555910142987064254761738540003172376475112374492640543728675765868168108119774139777940631082357198707424516484439361140497351947673006849348983365998213686862489314041467935243814668568989045325501830936905369097533259098160648981870492153849415649892097854810648967204814542230972886956147832526693971217607416033329417703511436726721116549414523412287370063994976034933390941416516240275093299270576686184170089245920117198218563073541451318423667783937124976561717833442501653098032138126275984315508779030914672177657413042934715113842392400197878945263420936967394608455244450778312708586237175447260467760066204989124392387374048808642074878661286106057368767762106714072680453927646793235509992776411504424492492092135174067959519327768555337021246183234414647491746134626193875416635338627806862972928751778048112880314417504541456543086224292606017612188099928316306900173770900922588723062192546011523604763423624083411836307162876947338699897310748238888267871706068123131594754020368448181851420634839139226335574482785934243710299965055148362616424422275347070490055646967713805732060677977848010366357405622384971614346205111999533651487088016084242355232651307772933353647971459602240374386799777614316185646918336970068337747247944507309317503576933163685337929153041887486191195397989564919928558519623994132147865964155068420495697501345900035106385430533056391449646810344143854774715661366636992746581631001779737010410973358108760669372771728575113997113352643609642198741568126100199692206189331960120472624804855668353474797601493434743284039892140884175427631977623265929243152098881808409956841023647567537766916613452955156084748977448297607490878210922869269580673541150957801728778780759172983082213300119311621462868939825453003494096873536769176475703866073648221371719422696245025306875689749541183362560271792920290780728358348519315867717638351650739759618574802798630885554640342868450258572400939618762573748591609086025966602101383622112779467158689702781097745124524047504982326152000897110880861090970248146726058062101205307715358484827558148041626470572346521500258998426561976432193611062070388853406549555364943621704984480654161087615783059817234400834293815134200075094822306572781322920949893407538631500245868957332633703067714295394192242485268240856296554894016799023042904377515580155690349664934535890768231204929065377128621086394549535574060069448362474577381107587532530754327722980121629041232332401486023195247556075461338060309068761965637700566848338015828313274715870206564731847951724088874686901483862226105709418841478113362496898251587242739078045076550500061599900018527140321430042751242154045932103409227716825596083308275555616048573397433566701906576495229572373552460496235164784595512951054960135348911498010265357765640672301542207396636260586341550770320526572328501782651367890391493602820147543734238144618720982175794403860661248039581077970076701790881596038239157562221818787919445755736134858378342020567411943468290589456415291116092052302448997712660403699317642698624095994266793356758254603778695314522477370601147217197561970165681091529657048121425288418225388943870354329929228983917095554733079346940226250734726538771293760570566696027709133737343183152046436886982375007641033955009114823106286275556008757558277832599053560930229944384750273380134443177297099945211055067055784804090602478170865622342479009512813117890974095488332176145013535948131526382885773280720561093438790358608118780920829688207859829760531954877766492953341370982539511811333669835897335695573169924832180688860511495804634961513829186171314782433789444045718360029375809465093205726246780029459563437797899869236988856029444049754062003893184571856142473211256092820344111459584074506469104331636040288745936886539342036598086015042123446302951257464207829506512720227779197308607640786360729893841234042313603216387286618817071120245350921786291376323859189422353925183124486292363813410978568909817081416633829348997063442781888914786572184010508269799339995988945931875785818858126146990413600415603427825824763348033889881064616159306807227021244579869148871574695802053388298110249446655239778049647836821792393632091679315267544165377850979218173206843770271857448216050928152008361246947184715418932234492160683363110812546948308384671914715821006882917810813727663743290201167552749467172240448654370308905806285818391591497575527496028398422117245230384129541522789975199474122767332593635892935925734140394986028518312054956524104299864061744763398102175940133185317716104601953023262272614460741939898960950974456586634843585646573070733754529837907640460615167899579919237020497853614339728980912706981428947574034035563503253429243611806984534001889506551461381633222595844255897273312883750184451591632071419834730453760790224982642220855094857767473486038918377700565546588367478351177243553877309071572160406395202656324677572564094132788446450367462032263144465727731664105703118792171038846273461601647721242878779295174366657063331327212571233072935688095531330175021817538829106369867177817632941558096281393605342733839060169173100056165208272436793537273573209842836563035451685320952268391660784886406813587772990809206833635035279296463784551492235504382086490661654223514648846684374665297166431789468235129530063191868645734342089256363344980490384859549162136919438447411023496551200364210597597884688092346581369525144523880316193072194115177267068450437423332737701979502976384997507791111184791217209431842179882097538422116114509707640172652584664830488291583748306012692322201654635053483062837371377260330660044961286669782358698422383627676694938972700975717987101012024050632101340923083424674602102442319920453179065632607462594725432095909010056935636091863214677669049039746936805012049077221789596466299716583651233211006640736865292709590751764812319370255580210404545288959534359719507892653630076188344678428658107399276999737094047184359235257650111275734711002944679089470180062198692120079298706363302292076721654345783681341926813730461950580387894125654515897080950875588313661782891127365645076132931673927247714140588950010871984883793800239354456812377190724233260413663027307268991044551403157095167976132803516874063563311566029942867190981168267010923718080677249332898387698645683650288405549527279747750838924435955822023763561274970449729426464810021031739419830388232004418811151201150577280110172236783166703161197086770807090819615456477855748743851508343516698573666917200897791978921192732449021868179664452725947412441619986985101461427228641142883546769317866849428100423008158154847092913549050627960422727931539460891785626961786727848119184018091780513921234190258095264837829758703118663760319232615354874600685300527288738998563153251447283015694133032480184024598834061182786283965800178861602467150081780715333418520413998534260760540018241639534578240018854330622847696625329468299945234465734103536138480557607940296220724749903115067288511393129109788565522585252680320979455046466936754036527937601506835036118248393914135170690061146415003941108825250489809239627140337004162577820869582700652488772489477582785824215763541843783013769597175033681207168850429415914310281569064010149894783480988714501202538199725985905675700788744848784153088324582623054829511607345919626925251743373579326608221311403807172784565495124814491045989292267223558059152913883940148296053139357696891533086589398178086060347352877377192169372259175997448608552479944569106856995517617550117593684671095829476957833787505646773284324806351382185770425454130936489910775669325049882483002104026617536155461930886054982688239733215773678194489857284860990894093818360325983038506145763871234643850931742502485061563028364316437471398960633031578195277628470153938743866855194648052148461374064343253460235162155816414564564906254714545864100930185555090676557458496537012561461737036967346953432722286677352469400786334351963901574197155970998536416103018351431219803884429238026681154216556368551469968630559210529314871715802196736799876369583209900787232279043515900108663293983668607633913348749604962379958648551252970245845552036572350002792678092151874651980365820532836046477264468883586644793997270756544419916213294959087088901675032992270586562822917508980466746228424575791662988106301236991242716244517479452436700335522596106977942205964688286480670415470878491959630086513045806099928287275199431041303791445423307886884644472500919233450870913019449725148934770606660566058033775793003682218832110510700997053768690347705613734149668010364285404947792322120311542872379682136800661104706834522407941959164120685241412246262449526330642690795096280986327569106020929828724532849415432293543528872407425246004876760985080235694002865303069417432183621062058056442892068144376599750088854375901665283903394538432168861757054867563659464366606940532720870657747417920117430852832025574857461473090830019262101397049170637394649336858254642717570364002910000259283838747016149617032008546806208088186962913585396798533698930163424842283291349575685272904530508871691004757455039951756874573734340269036496939621109523494995953036314106649939884459726572905004591771779611862866977607278284726662423788229812461730143874920388226748428588410065549878028913130812223523848210862017946584598925429974303675632909665839531086329148069413816339647868254479349720228246154259635014505050405262825750987886668051599795036823129437132246882260583813967675191581130866218019083145962659717130606563799897219991522146615058874088101827536819472500536691848916316519995133604090837850396817008395544893731423798829580979779711997238643559353976445938718432505722993492477765339333738145781389842608587884881906520228862143170641358233923024548656007258902776032845098005388347008592165660360304613500708713352282432856783406159684852545208027056057056683116337973299451642987707895890289662643965741937493746433327765760357632259352508502738622123419535498966944748320581809534600641991709985613161562334646244729155401994612142986038234023353658062075192908621857775448916978325577410741131798657337739887332932256908500090317651678504496457061689538656799213440718994683595139369031692135065615759361799482585024211020284861385704861421856048477693972801126823934816764469573386178780723789181203506475848500944117005096859705514571146755413745726091563551785648089197883762828292035692134632432833467360009075418322836947065545298121477894007035859804323575883922366903041001583824498723021072710762960468538622609863459636803739462662930517732790844348883436845947873083959590770439822335121248564216160543997250004869776859345972923231313030445003414471335558259280508411941429767868304725960089752352654158209062652304342163476828633681698510011679506022554250900161585554436570228038555302007819307258625474588712385771242594722556091052419884812793771858699651217620497997426348343392714211899184300027931473107160580061546353876452470751990721352470046622082371842016514973731899069176204368254178194718157429835354541904674502680792280643290848054302434316391526288423077190202804599654373008946628311988656499021609317696357578782895336262385137406960229977107667285161769028162281298588086626515899638968408735008926136846301031778697034839439894567719175729120749712981417483945391784444856533848812147992045792712189490286938804687169535393820566581604274506892993432080250669198225492687350614901166263109272450324503410569943351360666095332677248469312311350682689070279400481206703307483885900782969557708297361357718872951517515228275844035317276928468279356386827872473012427089047972663030229996568297069416197126184309965731031967837171780256416215109453098294279793894099093541344104222600746070858425712130804069220079420112581829225427927581542830690240492838232784941250563668968667458912174485441877939063116909152922683748162569827055862603164849874304247092312016068799484073726925249090092239982478951885872187632831095750906162852762270373616058331964508808411116004917070540481184427473970026745332881886384301184832603958938712268278115189770920816228036951022242039784275957279486614196534941507729312391198486495014678242131116783478168562303802355128203265436747275161226781270456701122051287015970525698133813900595235688668542009093985500337307555556912009422383675409062816907568069064804777751028793153724187316312121485334306691073557953814582396004644401339368677808241016905403458457384768825185626726855692937945643907662231697439112571606497565324293196020732848421327608628826898816407596401882305428905677724206284256796886923932468115042206336583827229537300131088958859762340056771169909547832224077489993551762347780783517467934238736767775884321709423143026084584401729794095774983719936994636204242783216124339707480900143199686961137883602235271565729752025168703829983269758553217892055635356284240997412602370901545851619276191463532571118678153670429710552581416802335852934614165192589849094875506848966066831441140283729466252590334839505962855157129677074997673834539388658177778300988827503416660915712331619172365922562074276197527355307892056875238581529067434307410427098266071663796645642399688249373453651267529388966650248237375396787630262018443243918573803692478052363348135273945765079891346469475478632527248792266225564599947586209000036425214820626138276996586464920848815064856131368843977572373173937704135976174261383972871225480175158192246853424541350611384269185786628827566085847942589631251422593916089806872446016329106032063611112523043577494737987686711140554144696146062876373285929876458723007623767483372171130122015436647055411967649132539160886843676602493280636104665111008493748765706725348432636929615279013329298370990550322734365906313129875871351478246946807408813289847693334022165245547581771770666827707521102244033550841582505034102713427719830191161182041808386092442776338732589454309994286408320777082376724088642855053105051176672229756760539770175709787704762597526807648203873086045796552176627672679218627233064581132888352127405094696528474393543839537292742044856112745472402612890931593293284565474379101055590521986756517534926708926772622235946999302566684821344650414858730517755138146295301230325785527685267062797900735274896685454963041200629616823874783836195321476911922463321021348394922616229968537529620438498046838991236957050213700726430847479496467845947268385770361882147203157417993506903992311588647338936740639227590909656041360116096659582571512750132151106746536620168655205836014228361311981336789422504284239743020997756490060928288024948760942298258101789254808978976496803495123249526570577502929490871897887227004185702065335837631845248271470601928090381043906032891772107801915260549983795331362150548961623919618959277086642513212089313528848808819470810137347067141138745234581819769990499657172490445671263870245325939899190837951460219724257022138827224689230266879136779818115256845141553098381098455377427854393128700995267398358380580120113188998904376729022767843571754885308398404081673042000237916265310441670941837635036300177732545771662119947761811480800019359162894278620105067178604256073169704624004909908419056911168638768102036477391945276773625229348005912124782984334332155324659764128286282885585384135044486019515015372793449976579550009504944143374038664031123578983751378788019690069106230935339373317941001905019304180480958805568519001176752842131909753678568690736287218200643749638267503704913540419760906842208472038848617174117872511149881786800450996174993921836888694540787907938666365165236632864293953952856927885175810706138770010607614838015510981196479450417373250536157033169085127742686701598512613614957805443626136126871299579364755318911630706374413214912616745428083890743058152450936825254633038118954718008693126476172110070692240975274100024356037536994424941608382307641373891267660301313461760645539836563135375531405350324703202965922355687511126254062046169518041816330941125559631168225673295276913401689786072401648942481194299300552973324438802979892357863657970848852207885325079338514473422122320557924413343962851178688986685555932584127789698838751294809670074694032985895210786480544933410708082445661213421394772261717190147642555190847971181604785471113534074638527169550541607672532045280709038409268738936399856267110337255834194501313689997778296163247010069892346911966687126218948368206186685701342429880940231259484094646234143698972002001431375686090856588549830222294797769192245520771702744887059111326242168881469738744720518105506439592378935001020843240746975281975808568761685412608643316033306399553786045058004080632320690333060343912471569271360197775601734260036256326296983052371041176014207204050466542029769642550529927151635123551479951261952194428853661023372190470151224519887966727198996226267314979226690725411233062637558225180882324279245750204531685048913594142347126264116918829815600202800851687081850051372263974373072930115081392105738195586720394509249909714513670732173170679019046052730062821827401292540244758593447098342071453844822665290847472466799583193976641975681784205245150370058572095509978054779890900423145567407149323986971344058283572315835901686337273322986964822677010528333358915603015339943482757229148110645766500849939987590037675645819580996984721188379736625545830848065842120890653279161498265977388848372603164393822708968662424193644962935649075809317790480438956603093275977385307981403883443298236945640953896440167229433215202047792769447776277812161784758089183526439717728931179963289253905013559890480500120082754072334738873615926467931842112073948069970245011406914999522351163224810541689639223309474311679355477009353430459936684344691991751795293583835096833633383536117424997008951996331894292821062692351730404618222821266367364261941605695773340444436518470958867418697288348773782925410762449287646872971539036785963644487036330716876377334389176567172557950873621979304150658876297039488586704797959214576287724120236040160767432398482514890995614243535398214778152386492403333735769063523991631388938515240958310734957150255988707656535090850774134062807404327996300814362153778847110733275644734954079562678100553701313272164012496473683195366802820140065641745463215837805767649344715410573242945940826281940873553157411820175526065957601029082160130290996785406803674602068977083405396255873611356938516172585077834235629283012519982849144777683817955906563774076791592464590493977959821413965650173506183950848523835915951372971611818338982430086106897142744162198592030818526946194006390810316093108621668868243351301871965133756125107867875816683825695194101636431664803579285734886870476133723759981401657313683744052791170475746259823929695935238760357633741171980294875376892052990209414631178961785574774069458223959802052972291129500666687737775519435467733403227796798505681106019365012302664819673969496875380848067965506697504764770950013108522860051413793805741479381750008415848684192809378916450329768103973268674459625091366523830488826724664878691966668849592023682399929050917086433511993777551195928170725510132465394613590341847006636835183376843026416594275638529090315339085318797816410921746698220330172426688802926282735993569152828649742387720418947692796678204578906517919817141130550328466858200996801487286924335830698864159136444623650410552534787185176429309603731457885727527117918188436093269843282385443616757195258997152717808557333431108116015907943980259221986486030129339548834272387715312826149921512530970546692201530519824807428717901657311448437611634149318483656256467928061120993690513506353800067770271869290443989994007176923646164633942416463156292803054415036573803317459916271302897280416740395088995215848439902299019087396481625574863022551521338409040022921896416555958948228147644718372408119763463482222157802906412163208417221747411847501122914729658925969241096757457097275594590743592814517190014821647497931544883909438546754550538525364226030581270988503906413249088008029137622336863087005086467142176857133502215402593166873698101585504146821683456468704704666141759438165853936847416085200879172194792402360188985748831265127820347521223599132885063013198385011375237430914484361906822875733486364043076568076813410270146438144936659265575907245130067636586173987540027648708867609934810298269868694649034616480652400825692645753814535426296240919815706588936321560099364372902974990075846742423836406858981212456887164513312735373481915088056451676550930374789565435483031132936038090702630311547574352935288978649655534900076968451269230544813511467950311058157650970143248162557053607054905379082832828235166214961850753394500734640477165080941684353782974644785828233080075515385017505546675467988297816145342408114039158777306832817191041702988381260181098445948092974073108399326851472572695851115378040465426362866782482236083488944765300596023888983072174640956027059895986020643652829691816994332771349392242861442411463243225418644267746209151726500837464825595423458630954784494166131077801487679246734149443357494810645971778271645188148781365330247220404710585545257646892876931010908080574948332881030807439613642197445012914188130562179546269106282195572321936953124320471158655310642435088150266329385624640900310920994376080509976650570495975840384807491658466783631518784892635618844230651873863815002831394569416946075711691458404315136183366052459031016120760687597526628661803479705279395003424975678114903915364989200308148997652750112952300177642122860868665220204396166366492676860925827505522032211072270502343133135552709523338687263844862673317629650206058476461098489879784579708567373636446805670727688913812724389999450207600156030219058046100876060188114159395253451125237024628415061872290469643493573658101915880601570504306898324359665987743467248558779511568408695706651821542325636967263507263397645918743558855323532005058007362394227452241091406039728519669346006858994709386319051605105608644680368987057125249750068068709398034488705416142056552993267817701975145166418670653004408308852171103898263046404863387594927058344512650719271065395526213448567582113282829754795117945969419889664268476872416332674842530037414305941890378577820445228582350438465745356243574403491746385246616704875318725847745510727886105549473117254490574436363054344624717122129937036129321031044448024112904454470642527143225903690339816847216656383511533835144799651012371467883703223545154659643132676769945171762324905354156054308585276227921611725200705010662330715327360808250204847541923277672128404360360575169340264207951492730210387948279599554772376353056392595598433473581657746870801282109404665304391784636521457413346051323811733099699251066054257824565194814793949398061309221034742088643066095455917027632634711485674192691236923387056628351778600275689556167090130044827666185889514827401090553574232889174804512359936020304176579619867773143981036656065185763504149469809834240277910735075717183139148921407756733467967456145743676710605952978195930661663279875892284826097889766019055297544171381773147866311687450182606299667332839631426819291828431422156912546743868974404588896159654945483570306924682293576348892799528341080549111296165706043286816494760995899563979725422415094476685697974517468107000132183373194387476331412872518915645100769662439551955640379907704455855837928907603211799302287736038267851288075476595911739680590108186853233807764760195375184522539410711508817748292643065057265587347252645084193329795612331381318256349675480609293223468709229666730084912398725010964794729575114321747356823158184192984318804684514433106229391273679114043663677823484591214578034900131138387111600851909062173763711185151230166022401832849922097381462147301657364637031228194760919742351948742597827721411175302032070264557389783232432073794625439534072116214527143113820455464860880755214891056164665583447429611447515853362499513668903483785309324169241293433504372188967182126896761639230026977281540711736579371403962086068093052228582257115328637907790384193858688124189843665054491221902225663844578820511992159984749150943974440892549847346640128223914048049280973554068543932410009778446406912493979507603650008179462649308250755250457461912847747171631601535530072833337962499136444285554081899497804838524232035819963330172247707011798594827847931140033128088586756101164074894790527446951298799566998155759741043074993538808548658614284717285782216170921109790135694662842019663278716368168526358951869795961113672025622451414765837508183319143303859402383257655380704589978727224870440951433102895202513631168188788506872781474126394973528736116411008139431173401115488068356644103571334369188149041962912472075701779694749341369190318905683376942119672162950053354997123946796337724852473548137876895116681279879270259734715282235652785163921768417801295076006679126849934708899607520383478848045137979570672604519170082472219052118170782256688295113985637868254732473346638872850234368502573525630387037897017772177627872450774103813537471061473610918568652967708296924157435889235861952113600290980625514177349759184758308360060715995654523635535666219890164049492226328048676781665647615493600265850131280040891507918880989787627222613460545412440753127538991082685328139636510586108137065035768888574290405875321162791305914695679992965041857569291767678200961876400699894972212379916898035383507248935521999652586628202880014560240394620790448164621426825606542089845339306887203020916699335694515848250215553556725662657286428182571236961703206690563297135065927660753224094497317428707432069114779395469049575150938325701601430278162833579635139347466786135892837829214612768249143536904727422135306633957301468108297972306381267478838410992554522425216429993309906140447072775448580794563892763482547250386241759163988175013577414653367103199890610719913839948912995857435773346718037749324370930018402252048109934382992342076989574837493302201776497553892725476425154779973333279164239713922877634452559331159361985507854506223596845175813741604786378002276043445849617884451879624978229007478302739502720381213089769519160427327341530582625190288870120422238554922877887088499935255033422748745082514095381477579802671858989229805781907090447278489654499837895954080829283929478191922020125359039920575070451126054532833333147398230761341066358936020651205041587296833002643923336240959515266392550921291858960473681817976061832620438072999381445891651692026298658461092758814605153322481433476160653345119056663703621469224727278516569562319541540092915623620572449845892171204856692818977097272723259563844830525883030845161921861544170263229655004558197347616115303516729902176139113441749261738121008233484194676093451588737179366026990925417879499772492975980632414502312304706148116420422009694738209236933285298009441832866951547477134016803090364399198866724784905974392239980210252951377193881154200080980919007686082143405483783094940749154348294441867934036686654336894926044642765902245546786353536824291768276978712504775250109911529724535611440465868499973729536897427197142492340898652265139105857845661955559702292632344219654234837133239138572704226760757838671766391285483245354567383767808399487459789731245595088043684633785288289328318588252041997307223719990841922833491728945361267963016979715858480863438124097424104862256183828006128097231265437298072837144422646687424355945097224286148784314261376271665444887852231129400824599018439116767583197101514811076702112577378006065434913798607908387256319031830468755771893374891825492212919280698736547353655354145732730547346816054013215827893036777307490713374731569608246248987382621373590730990360173691170783373345451021993245556398081560052038483593556827971403343449153099211599414802227193534779966739897937548901023700203466962763937437443990744159846575741214464342908525266042237394000131419819345548747975725692602774469595393139867407874596878006821720345192601619698037611397958569961631907566359325635447922454908068548990009370998644517148177095486956464785540081445127306030928442072677461592514895558492204525678909235486057146436249885776751444956104717944290683418638881311043936566122835488580745040275236223497021061752142296582040353068524443027990507188828785149658902910819572390905176361351865543131884313217665033046535228042361872379394954392984268013487792979335174514146879832233715664099017574252002443207354589204916577868118159175931364826518139527033647917853032275936617488001348395957757612703617373311333968455144899593971349611755608585550135815982174420773523563695374379623770974092969435554611380949024091639136487052452412961007071434630470367617408015672377557455367334942678487843708965857697433488933192188707870667710744479388328147988924666642860967434274465884493808943290162808645646270170535854103570427007363678340448613431043372790973340818513624570344144368107490540966910330207414258931533167104357147309000847688788524210019861480129392224546953718205852642412151685131939978246938223192023626441090152314038669575792727013922318296897873465823663791123810325500977335009341891527053405486831630004367921319997141814275998528174777603966459918408268396357735824302999519625936178202342043856673521286226647674473084857741480892483475902044497579849113772165316210977276902463967584985346908592853177764154520125229440104055318956989585999592556494849809666737428692003049869374770913169043269203540870177150450403280072751463890453960183883874031990870939571443598922430443948251864311665630053824477900592379283570493117914022324546170485591727512336483214564544786645522660017937009141924414832384977525419068318160689343648274326273257659075513903421773624082466362267456931963368329903072251241097121625725586949437194655925645065097901171212176099055474327937780313043096046380767839241063111356295810139391428804885749430563540924263471128141653555798426256910779873653958580912646801764036475467694828203205702595412781134842927588979091578227119353329161351283538443470763753706898064005459204081780170809561469423539953475275485274424175069358222168244882237795602089902270869597983718516371601090748151398587410070364968051592587874667168622256817255337564899708962860464192064450836121565188855315830101285892073054391055925401085949369174787801653100909473301871327860321168482526067660646347200089291766007643594321258695842994896982352960961777537038795966955865880903370288311127405575173189403238195677543785003698791112448482628224343907654134307989302525730938267107748874382064784195909692287809092489653644726293901694405573359000475478536648399695954452349769740808841121069478813908871572979545216098817093713935697562303752939603820262598024891885413391158447546294294287029850581762723274141297073486771506506377073412235263547542987206138504637950152544318454443978410732564373850674341539754606416529114418791991915975994500505574935380777769046027410744475771979316911706631249267295188022250967015125501266648584238564717542794829968777013353172817228385763970172941945639105561528882280367750203218750576940746854433238946723739090069932689145858192606455180652901094311830573909545729213011029191207779835661841460562928954688544971933637861044440071971411972014712408717069716768028565013949666778715684329891125961367535200693869941287404626054621032131862195907827874290493173929232676071528151862272702989848508012478737686266724807548741699920809049920598654769469373121832623772739986016082459148312715541180693474795620126058623028414161913883881127408047262401446033840671504543530289141765243865561006233695279874742094808448928382582087835308874074096821165323616763994911415818616227937598013595558056313446702714869402859196655552976680639127994478364781282674931813950819837323652554491571291303427175706697094215312595582113659155094917454848602152300902500153103959583598890708237333501008980167835119454472876389641969846943437584773614149511269692479666767661734658329906003743854599547777006956439672155520747118264018202560173101387527046883100662466244277592227593144033578658338038985875531353670259145187442485732547787527847748629909995948481997831066883909202732948746735729393999633751794451383576744200947437941862970605057344791041461602260387109590646751778682799615066424642877432354450061653160495537134021257148869996620924932971344129288836356413452765207083136340286147698182392282756699962226034306255116526767018018094363060201884184424376229501424696327114883765011960821730967716061959984881324984838836173636133818148450335735376835826450673547548616079408850600688134074181063166445979887464004085036184982114301964637872869506840552349924473187106881235776708272605376387151896444565139424539132869456797908869916226898623437625408606595881123093284783346557619167291566171525568250260456562488264220190164666315522919321091940014979524535453515771189836787187534394199562994446412824556072945022337355489372795956875337009436201376858441853552411178674314466380053146268580804078218241076155176996566457673152975519291436603047499049800274220854695077064654961176580730787863901157152853894766189530963139495751219909265303458456519480733930875478960122032937856336580573487267968028444116702390478568396214212870521128078901728305039298277474509366635020334249576285482400921645462354878439378303462184370538824770751781597722305460097326512313306826915684239866544711972629468101066636282915106338768422872224372568737657030830179307073684901461592347295974183420757208327275034696988048433297160227441229202907431914001028117475702121674813984119337662363405312981356991736960800976023324155271020239283748226763391754994478962586293755152799394758844375174974984526717980648179512711386587453549858680012918650034587594089780818669998918826895950907998383871050947589520707047224757635841222969622656728292845658877989384753605638578179636405307797268431888210063794250486104769357986786409859262226423077155580391872993159025946776795734760706606180062711464473033348505469382537379686363527251377780434172232412484035267851572045415784770782131490380855012024952495442144597181105204705026321619334965483806870297370940936750288511302428570203925026967825207762947333945492718687788440150679828318745833383358290427310068267617714294245277118348255325130121904818904867384107244541584126686420714387163326042213375345032562511433038625281626776700903258102213557647108847016526318357452937654439570417727316195394968101592726915803737999582812798559566684282290161001402021498052068907379000982239581850685220846145684678076156330405159869387711227829750253175367560086837598651508993137286967976755219912743749134717007824058359824258451006930941373678369552758284876891194492681654328462272386429945242329742721031539329788502443333871991123436441550021922257781744774107835557486876627247351325262111251897410813316738178965117400871219495270256788605566475689818408804886445337253148774593260086590385237995821549422599877424724695224361504447376597121302295612023351624595681503964987141171693862556699510746357325551819855665823835585472943089452236712804458584846222959199054841045400866552727094703157972203820330681586983329382987598430872023749549249072695603451365570485113400833412956634249656783443770662669637715865223975231790129044304227498660411275058157095340784631412216867048048792887257823301172299251832184573205311284438087123256894461319139782593495865182762752135960682732937467661218680945016267589128293272439930046781960356525483474654095550554177219643682102193005018438987843913402979388720852460610456477115417519311820399030019117763298506029020613977554891029617180453946244661026671514916353184240304726745748844218956725043945862396966447561099965679171812724276939263569349040386089612100801944152356958541282975427523880249330613898752477075789404935228943668329430462568588181486609584996800700481361877176148103408958903975419472260270152108479268936841152902715171624576910269833920507342904171174218373326516863629188900192659752478983303059181216779425537727188877545207638405089873000682097708388041024757865817073524642328457562377792770800358036751945111562763905243775015279667333451547814545424744329008884498965987486180791917898728558096426981529438425274795424453797505058785817189930150966793953035477937938602039839074674718015343417949802886408774234336658463267429659498729187504190171495211739943130375958729182163237591678250594841403639244928004032924796356749116728033581789888031894877363921469540391492759441458606479717062789785253389849035821539616687948786877088733114185645744367282530409292762851700869888934604223408451361203406358359507493289409861592050219035077977895376990599850454055904321870598006344556701209044400586138055736610373961652851568359971172853097346952937957690290655412548864278684994350832127979380733391103952855342593564343117069259079702219795221229892765090799340956861521275843027492167234028502343560588449925638622239809657623308832982586517234606295486399650779652433566009235613502567347932706600435725064211580849365966764302332018479636409052144794035258202727556783741560255402127981619869198933023490124056689596001809484994184693047929694982990815485829872275854649975448525469136969675071768936317633007565725207385611700175378113197016223828881775647857847256310135306326231987443003941958978767514757912264484213331493802029202820361536373725689153351170369154258877870969869930173735504760545276726911999564897731131933491017210886263957985499233267845319288052022302252431964146464976762595707027859496065072284654493559802086278382712197026074795219195950107997347417359302896672719979088399406690238093838653626378880119264430692863734098884781542203983981736606523715218448714991227912315181682101256800105104269430561809092037076090961278030872187641102217487338151768399098563044477180151756952578580983744316738028206940699206436182331996985828413137537028504749218099234120949055113714255322327673419583744221271982492477451991188268392900724730512521767935507134531462529820803997900826853773269617526416173525003673642796049640667723489297797789892611031782628118420912947040158903136047875408977002493147170239535113363767805376987342144564918582265498253457189908712641816895697959083645156719308280179238185057768633141924975423439591930320837515204827730062539032026579847881086972342606163081738944200900421744567866128574746615421759137153894848223652023018106225585736803765494187240636485350790585215369295851649359713673611359846553638136348198059564845377383239114860157726976931148854084990950294247889149267202970667806762263438249277127138227433795093000149423631791562135582988294401407943339126214383397428052897368725704761965416762480674719064057134582256604055678028344037299394679780349989768647128302197131624866185433364533575749312367482093441825733147987940555545712933586219251411845820485017339082933454979077097584430699017376505549944216277425979385200965762469975373983184604633619451939967338608740745834413112159634395390728152934163722889055222810657847539296281420392067497160347186361258460319775031549546971710211377169446897653271247830368706145073960351862347266324525596620253373303152373648167429171446077408672043608030046569006623665064632262958700547330299442554474774158171893339911035307908724572023387509003406913812405167128029579503470693544174744675666366028833466098355333956061911885954121627985989662055402637212191804661008560857770276127205439162698903446566779989248003702342416381033475059070947403539013942103098841452251914222857808186598613269288634910118047677219587762899994855534111125624968596706057707079481498116723210754739421137951716407692165194493907701770586587590785013483485244251742520427997318338285046845323674176504224117428252934563696788155431829042845182608001090377923463744182362003510602110407672051524169755814078032272204470676566987805791987797565136038586376766568433412207282168171848328424559376464730536016455473560574444965911020520075605502366148242468838288893063292958555016047448416128595734408709362413148506632626438080216375497049086341662727411631163244191264787181213055412721935271079985648541293965863381781815296342976698536648707343981893083610870069278706760542866662079710615991389108238595855166355694260512380754824234799429812003466828623909343998514413097329808814271577427846960443534564634756791164362500221314961224356149615639376296049708079016462026394169083725797123288335603895335542517710187171458604023466621666871665083285918506915603953308051762132312631313827410198199684575558636017935641275678185999504362637180554588782704756160087790812698178273316017840733523265588373608381520167236067513546675760528297143956123571723475961500710998899765275496832552339419392854392352600149881909750595129473638050933318131511398463288207377972677938082225815153327392112924511894726020266795080599046419597685108734969895652917284091708203948280498220407788315692493190279586218408511791816936592559636374212178062411594545326405722473363275420913867862413162367361989457491923586987147592256873860046546692898276172570106433120950523680811827821759859995278641582742513690264970606065212208781190923105886109522192478016889739527258893356109890367054392064950143521322329328912369655675092340526707403467953701838133317574677191580523158446032521686962682098119058071152459578342912293493904892723111625533598925396853834657920495593385496666066869604143321413569340599063107074597920588996657849432730437202493639993910660928352793652238405043620674317343442503936944544572248165924902363389301005075242629571819264433349937792354555091756675564411948431451721231852562190569881347387748877746873287990225848548426089390573404058142772428202194992753963802901768685241343449402240823356191660173375402919593358557205129724807590017899255979848348715842745423213731311278073837738181597673513638152441521693656706446786902094428057078514123370815095945526516441109490221784715751287168519670252818571855296230853727603553220081687835694121489973651424514654908221786942928876542118291522515559316316887746793375178110473462091632929483725718485084010397155600987845095642488324774401243552682726428835118971806618425028587334388965369120828634245112043979428716074034269501274596372898390016889731753240950120269808854073524841420844665022460562763298581139543033958693226592386353433426231956363786033497619599719815001963736994401844325194185322016722360026149377117875769340574164341484007501393807214547902302263832665651218277264025816439829220194384243170229900363712040536877383646604442634158912058090985090411499139770544152163705205623841424060913850586040710919559382181017357737020909036307928872257431500524089763095035835797250472147660571782488875749585132164541740727014200521000294056133230243113696017556379801304623116518679286188861243341809701252522000377700303119366018907081342335362740793819021063786252913971519237001604594915617808182099986252786439079130855291733390253096053636866747339476290140668103180323783196479790084364594831435724402797267528254648915726300359828107373031727022489940233537888343652432934333608903540413782404999520398859590014556096062129287151406218607814286946199183870629386581152391479514134596385229154414049573666699139987003232046022940671770027553837616428994913161768849351593927721151103551858218891371613152207314863382069866472753625555296581501918203875197996547716545787629602001215467042430133592386821859879966162378922229014488633127597483718259645806847601418145799111971096279786982482822532803453914290220866772373053385003429669083947082094846049662773435078788669532853673179915658755864887882780476564874523526544677616607856110142317490905357830968579509749959294906938220483438036752149516693774632938573932184324972733131109289822947735780797096045456807006369396843091136154634878435662221130476952104643660051865247242315647650953268724688855143978635276678137067407202224028194759967110833749894018431459815504823133145080694480765937922952505551065593164397689331947800383674128316020665524463919659631775431830001172589305654488515373644020830636064007044058752791497891061813060185930513282444414689916274548464586078878702337107747832862237999465815706126975050371163892445498101691508118340100941259354603261068123456843680230528186467029873999966468840492662587569125542903994193015017307970780040651922108895958355928955020035166957128012087263336301744706006880473014618956433885971427840824503468283247973624075105290209775315570580904208648545738379543534715650262439563837449812790537379033277624959980997564974736254098983860112781931700290749719862976316076346645878005385990443574849838872565891089830608839916484545382215655074179708431803235737008583463904460923212229158218996026234884506466847467982022200843737961089734807475935081269249955578906700529807380250224740134325747464345441372546956353731671726590210646594154717651185077984247401980323606928918111357225489296144758629279141746842240862078169119104314352869800446557901771632210996101360982384249626434577859467948527372723866303596143019035259815224125269174775387473662164534498394279708202929969735645406010812122567202493733538792265837587071367265955898548569848433005442972011156201065295872542491367207169420686354303705175901785087993309961444452976915027270894265409678357252824424637322206023566049962029539157728636359997846659476075459098847415042836392334760355469529544823540748366136150920462320137104147436405160688187204164119924369870626814449468433919892771085669639580690416487524180951550477836094483083639059628634444877954220128507870145698212084776882978866740280990326121658916170563096229420624363176031471398115891325508763451956796799781676120847616768340762385903671634747966262662498825595478002288332172974045953293850743789610894871085132044973294685407836292350698693828125109252271685096716044794792652720100881621643861758529125397049207643374864129037046498943613187734025647759934439869915864534571617597707410626069619944799808224019198620048431427762481820064658908128365077095644545534695615196239014876588209013933492671576543472114089577115883972262760420189145359468799188793413949156197425645264062513739612432507886887186693465186377386881472474636585836154821518743731195585527070238715529465365278640982700288950092990775623907794668635228949041504606522806955755821590668302647975166944350361999261903919720047163990148126807333307217940210262896909221651283326918226112672897580568550007614603291167922920484699924811980443629873905780299859912185002251035323213314373249609329528585832925621943495768091381215989982084033496593061472812817459343579928665427524367273167886396520981594208731683567381174771959512380951135223204531590255408883274453726366857644229006662368101954033090497029695766542253989559728750717930882533458288342497989615481372300981041025650490331069391741294702303014902512410335646443883779416821861546716973104112581881171125211667977813455553880079756090547137745854795761242992393915421909973122923566244470399775181268082484131765522614794230715339781900744874403277697389866788939496219473016529407747783840828124960672245500666588097000867552930716061195475407489154465587099831106070411194124517634197415305307073218077680886406913087618653688299354839827078073813779019810981987348704168600185869864485724269389823273357471183149625608412249274719215359235130280486319088268953110386232972052478609395249393088893607360795350446839821992850934080641428545954118127551378370415737495535046844719912421781284518826942667610646297623775865897999527896542014047355544080203569464224632683828819168938099417157139028763332723388650098267179442763560208415257259062739915905592763470856245587140324599626822183820007097849754246670436381622972655440080417899529470139760207802077741842375434958580933091929592580961379770647487832604503739551469519137244697204650947430588487903115157626962843612947551414512778266420594149399391804275386475290486083732804299466884973323880190731060532099341019331003399052002711133474074522014858101144896450752907266118116798825931502855623682853589871246595770281458948057061957884627514242631848926396139776494010926813917870199905679598086202475275657773091609741696562492675189873081687612755381691736106320346381347483196844246780170430724140244893905501801305655308281708757723262823861550917106149985194674287881956915385669635909403212366709295491604986182159723592826601845714221721762651286910516810814900291838086289216383738381405656241604292165186644766139666192836815653593429094421776496403158617876002376243595580413162679563996625429325473281042618330755394341555453736438156091993031651396241989142024234092122602497277193800822935391569019809454158676612042850253224948742351703471904746140757347557643597007421110100581255283092338434915865703659538770608748655992570490894763427398986167724977057719149891423540027259190721247924010340853964848439180832103390530133596347192800470611166176511137501398259599467858791656971658675053996581258085487941761410874120175365734280415935360929372821871940504850744969563091615566799060609919691169424785972016545200013798590343654570314071230865613709536724961673330489207817479956731465078284872416515718053717569990812032199399660377195907980072496812384653576404923114283849576331392159658378298025037507892964058343810855003169351777123000244294997932290878170461132354919941573962142709161959797149303271739778130280367598016447444749156331554264434650563156395149650120039248659674621562429141143285145773289905120257253422892547054842129363542836034586077602461495137433204743050647874826096118477162321122745367210298313789356152021694152189362090577479548545898313679900156861212570927963325072583887531422099487805044344043197619963776976749491972301921582847090068543574399762276646549037697482740820425660547907446346248839643922068772293231286963287013007499323697888623779429209306880148960166361916094072104926421491895807368986930925230766529123596580833734681503710026709113219726696766679115108793349552751436855764401995718633160094046748186679905036997342626579183284256338124529568738875433534583584285860269046739114461886589398937759592413585169943700797136473184457255034890882451676537269357709719387333735259484712985854237059873358083337554741011319416645928029421397649148400704891974542518753372419544562708769845917844540141175565844300038325355401266633717951592372630018791357413945209568803361862896402945550264019054719346958227608079245932500951515615479275892580817814596245794460901852054672505012775263833537742953060535902600750307842994987218166880625503183600862473883179046468040841036319993733177482974703066430697430077102710590825161237936357797795177420490514882981192979395021055154144976321674226600155259917507532569877790360019309061618642677630115968215960049145356950679611255832378332152940203768474156305532670481268793776130424170856930244796987933645313346703407370921263989817650918538237232067562163447440538254692187784594204186645438459448144898871480563644980867431242992682148587825203081664829163986270596722874368026797033015733340420903929679235929826968868250701816687951202793142869569887062923470242022885964123297307150727002591066428914789615799910722229290352030379478657966596328122837186625376826965000523014473566892660184765483295189181260769443813459497011038474518193521808609716343154238426512433840884924723508173250699985244179023198358649715043656665001225168999406379970743529416102296723755164869420559951923900847929786364260488937424429799535919380548247137716373765050285783495156106237287826650050518448992666269928476367525366811187370818806270745690911831407757547704378264296778716736771255332669697961036074854623189939575517131342321030046838950432958508574814361695594841634888670994765602450158573310075074258868190434423689222245601153465937072732840370191524692950474054599642703791004538753933497176453017013665664487767990663544055809340040658177256644228844021628839050235081891935944658020440529635671731196096344138169610459379725441616591574134468049908681747175957755526037997924140353052677019976033494108540096173433544649415285909924879365142323685970783049840510545624411826277626165183354454069474183602218903652932252800982548730879832532604834192017190128860846754215299531808117859908330890885897801814525833316247809062861067240002998937114869312040112537576731211489377948024067401773471734963620183275786041482758319553747778162111271586054141058500672980642030706829978854299858249223484414668378795379486502004362195259312688884401347295940860591702030514464781487056956361543923067739343767225565605103459354224122021563800868944115637036256855400189669149147991640708621446619823443666663486624548094483858839939982287829085704871552909483737785032869392105286300049169262539238689706287062999887451910638838106161515888575939533222313396702900823613233637654459980438345428728923164001651504628744258676190640030432736665010744045227154894436462725340027986034421644749069774804231252792406565586516496386555970916403529077612443359125339471384607497544305786701940344468107908281599068644465267808806123687362543057993936391168998738558925376728562324741390753167969374002186097805999996700245826864412799660486536595213325475634707200117832230450120052884959854656453704585091945442825205513230350579809223809254854278028956810144638633680309302208941499751506913993701242104734812084805670317595821870875238166928499480707029121440665142140007269923711207788345041736407472118359680769147762642725211461975923651563141726185599659523463036983061500559581991487195469456651515016259739845752144454973910934808651350740630330035175901003711700319703009265932606480465445657613314093643634455385061775752540872338560620066304286311958160544390774946839405386086539899771886924934198481573031971863616920985878889381582698216772462222050974346482212000792798666773214828466098352179802468087878579503743672949145338268400505912949607725143176803567772052996996972485013802021250357889025663080958457405634766528425047960315719189562374320716460819706365441689290401511496045536709790971534753290539635290243337350782087140800609652860796850770947761094180426944902831338988899778613123535417054800843406386857986761626744093994784188474747624978745669799957822864564487814953150447031515254317500298835863421863414896810389407189446721384235879465738543746829421253353052441822431438897413244730052700800961319073015615095932003380218352477619225414729371564943954689616019180924078993089795878514456822513454455590128137176156861816187017694491001190888495513652425616817854885593209110347245882782084039853772773014837578011368887784463491051267060119315999407176271606552494063348392844812239839611056484632988954921319469443653615217956705604636560624933426501723474053156226879070806500800066147919162891169281776919846411059467744786059020166940093434336318468808847599095781728870672087758383095263408783621352959400905575593748349417257712188470919111127222528785923574800941122055256433636065010784959766579363595991332684559886164055786694759935049620759692043995963357753642877325278936502109716156003689819147907751862906549546713378465192135506701674695341030846119950304649226483653587329712669858431473988702783085830660171538685617757073348448995891843154971755003208703893284124745113637748098415252772168425433109907321961880660698997574828566139006495904008132185066437128275781195064258693258527870766557476475948885916758908887682098148118055326301292102591807106011216193783008080556256348526807339510763329648719470258977823257908635875860942078188782155888906235973068522902151357668244005201190662621493785516034284031154250562852151397141974670735653463879223144226061770387321714113472772035486094273659163179723093004817337068708869555492679670760851703569166420791870260808585239490820036301254784235437012581677675115437904969247958861787382805918236603396632544875294176432408081459668618144828935547891224694548846159196613033764852870026174533498668563705986906378245584547119322139992151478416170338896657049548173648191616253634886760085365036263829624763627871002715157517312662359231989034721283535693775780435813481622780977441955913315736202622045493817702803721756372171461754706222716566028800702536391980515243777199237785417023755033793706681968878754855095318909264750293351553551062939969910724917789883204283250353472156320803729336423443215880341736911904549290833195537942126712468564635250188156926413685056454750102099825404796174017906746697550069715629368818428232302893444340511728503585241236613223684540703235065158098292093269785476875694475674308939229069251075371996202928038849079920524191443754890612579175228750939936602663413928515559847158792981330257546374216824298046899504644710222180639867163791050578941270979967748785448796780627047904774491706489925371216711868808846853156210100329957694972518308223251980853720662632341989408598536680151728876094449026581142256286278529782620178689358697581454030096177935882359565355619524793753263551572636109374415411265170651537451128779334392353732673397713589303982357699151445805643879924402497207633371393171626375302720972565667588045852229126545626332440922438041543122896854442363035425363444447664867580532105507829806316225975313077387614964155035874258757672880699801599305654031169288345454315093742543401142437257628852428394912387415219100715776262745038829981810426074615897340909568888236469174324079567648711312258060268265574583500501659598468501683263408630799933105681268414374874259425560063022571923878205692285989342529069573996850454767907558529652421323567181026640364976947232602466419752990894949150449048175705055647099916247374611788819297504602967900116348388601735286581455299062950377943315276421869089284474321262911194092975550483787158680821089679757125131324559746577203644500719326543854718913257957962750178379859595343019075154029627211418534106310752889824910403462621416351521833923953728765937518307476470397452649908278956818210982881252154110253701632679663487290495344653319429988858216249395726112143781367832214924260317706842899173803420377437730769971653762999451351723862276698624947956641711097538651131157147356343097262727417559032576250021801613355805490647341700320124458833563357366228407198449970015292073976494267280633010602833376340045178500084973155491705296165725487732436471440059249702476866953328960584255855471982821859534073027488077879217136099685728740733800465410599056129743599274340105397046247546410952178227091099242575126302430951566236356190056335710932751847949064906249589939269590259873320818594896055815806524826118879504222419344358718574818794153100539843393338211286156333461501415576258465070705538262836306959647512994092006811237033625936852633464694722334595960737050339768610824645351392091966074602277470399987260827031795033262604320356460320463458129819328153487104429759424922091413284382844629666960949853781999960712881960947592822074292709012200827928592946206381067529029780653177499221806099833784095872878094393178881440087185263475072957407707396744003938961899679394242441840474413710510908785616033103448432756841806097778092961475359697846949566760914403695135469734777796143743028439196066931418011713647253101157330258649862073628201260514346706178355617536748654036757880899838370377778434173002708631621019524543154610562498940285688276555871892247728955828802060336302261950644843319328820531074390238965180486247262866769490471550026800872001075298699524569488532473266445490699032068223137823333425593282234395967892176832794335233752809572285006984661780463984315766835656342026557757287528172669505123397846027846878614102806158658666393532391809069413927553931622227461870220667921865308204396468444849123815340365715831507615122491432096387398277450388473934177214778137644158096208000445536825681475030017070380943525268253763577791980888614831796273143938999671516277374338758820723873669499094219672403976326189139240600662502681502038508317191317801601336120693125939610342027659830346862055186857682611418344696010501614070299735280035514593177919483604570984392447651125391379614074401435183084300397301279403767412484699125725114578501996413730117305371749118490898258255787346019010991081074802443363976809563420472537782097113171038455574610603385336812539929250812640350924395162797162813671201807599413817835942215444066629655869145878952176211401530935589038570247077837903370193260215646822761482782241125609645938865678840335162191050454678531314723760134695039125886437985428132674920150361040863695301393791249424977879315609522919530814830997087364815125977171477738402346146275521631986049551206434332938045318635054857062419467182355057393040342376844006370580175822007988123289435926678695998766440873223864100463631784550349373992767065129957650479296366532433769415420126989002605588105370303929046341703837828720240016871065499769404254182712662208216150793179384591670374477867024888114882390754975463823695991366742827327358149035770882871309208846377418713812231602270000058843139747504717386764866032559789916351590468573221685421660645957158447218238831985722355491564090224338186006226853007703848388931994061043770103271403346872426078041482905152212680589553273879401991791206847242262435411654312936576594296483938977946262442429782364355036781134858583125331812296141729227882271268536241040805443825973646997555485807439608386937331000117689300270398588424818838528957810687846900181678010669816611412349071627066163056961305428467780661195754386965001306123218245144729334476642142893623048019351234441269062368276938780198430591185631931582831703493531570694676722875490693148520536493628968876640486537651338284562507361136190781454906930961955666727912085967512484526893226280749476333421546027143795216473081161170871986930890214392211495587085247928722370125926806255536385579606139342067364883505801898182834402499551488978673216835978778033025871446827839336117155653760011174136401615800365965603374907874777832222910455949765384388386880284541131270037988850709266932441927093553165061934471236593899470137055875316729259356494530852388192687819720219840193249852257779743396233391140107026039216302262531905730070166582454353468058499467424987695366328830965011881016907536089513583136992871444536622595453346669417750811005326587531209070190381088691829461297741669280363153065180483811687242727071091796208917283379553725965703422247414399250507154167491660387615362497843024510355846446434454052861139674664000122500456142107913378171762631846892810857443736297742255646465128089667314982880265974256441567460773109235173632914260701528119706139858918148146315601511336621179417145693873260559680184993950349827675581768397492174285296030482137388662489720738568154743563599748218843377144067368204799384301948624027828636853571128515959831974501804607638276572988983805336301328817349551018836960193637017264501204336781481828409238390941468980718089238938588826585337689111764860886451021918587769405857466819907795333454967176154737921083070346554787318958179377055021920280830418721546798983391956102256049420218800956273934277000530666874937631276892557485225709461019073044807623530217489615992678662779601715861769099166645401347034712078287673584476303632756585937088189260440058640800142356801194534524726616697564155232827124234685443064548764159607341739801753595129537497984578991904936806895727520393828210944383264609561750082302504191908808698081761711642373071283060798539232516781752928547210647507192621446202774167024625149715537014238959083064309658047340908112810622613157619680378213004352125516296490772852623424024633732709261958188900339621184205645493993001883059359828880357541249823963749984741379830405332797775784292305426892372282513801692866505299249143370621249901105037804879582857007269183693029097181348733123472573773755015799026743122789017673105411485378120974715977869938157299609506121647143334105296896498749265787172952907243192540505985679403247379194823107368136735248908336026062011130667345903869699595214976689153299029232456973958346351063694478175972880555659301288618021862428177633606193015771567285303815479880573035801832333286560889050392646210637624290395898375269633355669986070330338499667003244411900057515622217316803161440955634950717032975665246972524372156297727785599505258647276427100981501486242516360920538964170609969098386402880659937500947995400830167512866585029127231968691057142087427955660277189211338785285727046672463610978831945140349424432046462539255529100805388317974128913999064955664123007780990730923468290900159988350699978746639351219218780778225837445059922682476908795225411290593143498238526647326103299912224410918416089979708231454629821090183451914490431918300068497449731580330022049839402753922648296191118379847741905410838304105378683609939934962001017836545913637476625258903232354456190495110405004038378682217622529899091245117016252615436262101756640647655032071605308792897740676493810864863311725005837403922367871413238418363170622500064719230391124419853921832039279539604291364548121976325885017307656088557364366859742660085643514082376119756172765984482542615619198455705429241626224382639758607895446924635979773545388199950113487519340556249890225472102226068137847230741796647864792312944258181925866524437717493896528252550560323220604650851771314059249674857123820544113866411484639542181289187204758014662426377138576292498051140326864184438138496144131150288970100592278780189311058441377869844015461417663507918770732770624509540612876926582219890227529876419375306455524583564001926064060688583333457534295712200366690256838174648958616637795353917196961477209367685142579512478596798707423217958531187516974036406290690535582824581303442018893090791679332499913298311336707689049235036445175104334613313480499384098543794676358204716393743887189925344850901591299631126506214117311300831052412672672849341389982454221497019928425563109863861100568061968547390603254239584405505569799747920452658492199921847831744754149712099362063248483566550535932839397308022458048092197602580205579538655105290927632585916260716976079461419405748792688460517588892894052065586280424817840914268175696100985007790722791327164160374629692001590539905949282185236789017485402498469242851473516240031913001417513527315365229347694723728955587365510845432588102659632268012530009983793524268546321324071613176488969826540153351980161993654484235319548959728168716612129789044212860221724798930851058590967260650428361756873254595501182212173429017013727915541579411904951313511634593213826219318916774082882128618928864126376315670030593597052964787866563863850207319246635897090289821057434414321902537086885042201356965152252172100448824806830693693859316541158016329435757440943616127382769413753499565222388557120906890852372494777940858587687940901293549401486538514368859743067650160709209967623626752984975834815652316171416248133953629567800655073381249922183513589222945188466780578645706645809970588578616988765267883550087792143207938361850291528225499199914142231116945645061405205398226258011891204157802168286286067704404126076314657001016358164906896288656096814936726591530824074775806983492086686790410605761224992308816756247167482417268158125391489005948945869024445953067388742728885970526916248298478262970851838861230332497417518733167821668258415941190794040807266838219482594987640979388392901015042287149858506359066479582163856789807234314221775105594172461303760552880596722910514684866705141038615750547963806389779585158031724298341580941876446633817036381097420850330353670123325460962518711028838413386744549541891543837832544263917212915044649279872978833832973244724848677544567946251467020548775350783394405045849092163005255498709109053501265367799957839678948343497970544783523242167931644960660482732345901402653132883516418510105942969763855916926983298169300778497679206206358417322964678792151731764887946653705505824281308940260251735905039957475528253587033242702992069887665659443083975482568055450024626686519469719260410142914424674520420246415361110418790524141012658006136017563881661700626384939475828170025670303514926789311674150061425130648682107116282581084458914722335268329792177923387867822169837509189448333670100121047798639516408210306221574795351206432313410754454334540324632619700822837084959369028158720953254484522659976065828523614188657259855518456392488609018992682816526246657012235575266250361270314546409348835932844446149551286298872698218048784709447918276171617320752896718078858361965415989054803007391894553504403899125439807886702472763948922885654122484397667006659791379368495806126605534850871418426890550646838691729663227383305946465352660297330154001815146953824776673732124894439338446353559448444825779320508600971155217765101682006416435421018145159822959312546194192258830225002713253500444650091434174873859804977773790440967164522023527936890100009539368193512237186609954512836334604704495936939437450682927746111396836342481953456947568832069031420037311233902612621254415612692778030499985431033810921634502417671708712061743542024511468277411664381090567782472809555727592145677967569663354931620752236670155024778423760677077335213035489773042921984034689455058072163473441963693050485718470451106734908790956111233185399024167634306068837560798879023106256558906503896868735324814762216929472072987850047176375635190199809421890683419357378582902345140779170398896853247089660183774293997186300648110616952400669269900306055430168229785371027065073967022934853116537503786927903530194057017144240789968128068054977746706722676695738228917172186590686800238869020278369585940150743746130824405071157018911044673047840588261473641786760740053004156613645440478389601134331054279351720490088744443942946910743135011738038958026753560470258311088062962173515383573983869550802562888818757629458762205924185089434675538938848034795381246113023648469469551506642206868580007334333373021514445317770309751659267981633495502806892686651872888940475305960684581015757499473695048354631400184057885409243767780139483861644347813349828743953647992945890862634607235472763563968252713344724975731585186814237273148792480153146538664114771099962849300174324134820208254150575123622427978771178259273504785987466132992673474338700861079316413303751499899908023572825221945768849509310158142889931324465818915988581459032962086311605148171709286087511301295270996298511149910158671774711872054711869136571848048820818698226194032262817406145641713823278506077832505085238349132805230297183630239194833819195987165313186512166187665576145118527711422949675447370833925724610895381858131338576383344581634807194625233767586562471792769885812520036238115374681885257596892789762513310890270972062397793913864509583623105004156651534670506448375900874166584416619677410912531135294751235554620378484772970859919508593107737214879476418145779297969047559681287852547224983886753230491351863554597972845889927894792454705833095845704129010778536252824961424919985228376278745221835009631579794106211997897365371030252644978494295635607905552069150929115141136907623697652582909880911792398346285678280657931798752235184056205194105834118001399577940656985743582889093785304960559982939710583852208555023138443358066480566655570041966571330702521903548916722160634295587285485054782248216763660493738969235606390338366168082780321723787384375309391509446161178356729342051405433915273335008262485728504816082988567831721608877260520895255433469990582277794444334159452119476162818027988593024213720279841655040704328047543744723189147274950796080571869258588223816656125477024866472650925980862476429375637262586436780976187622084712153331960791174901272802846494026826126637249713582773826721344811781033840201404115714737027443834500443942931443830199175644766900791809022430847631772986284647631640226080493415498385346203146413554509462540418855036202803969067208044251010106631193625495009773813744513228089425530991150679649432781839763003818470765693013265483319789138787135386080789454744937258047891034681724719828540127315865481395379206881483488612739388958220021961639884107626261743999489549989030738484626720084460001258001033540493888821169455174810935605856575491094229619681689707873619393155349022252632505192086535294578977292646350408777062804541622332280560761914831599335207151499200330501594760290864559855078056690733975608735575872109458716980096303356349409071840423562018292210109167316047969284973961527716529099840190874806499495880521191111197473537572763311097245288876066606193563433926259699876182154457396600951776506752147001258262213897310308240687665546548572414825194996330281288752269579328269025425201068354379471546837573930930775149511925669310708664455671028105686108463334661827036004664387840804933239879546057623234591167616797233434263620972664291914729157703386099411275417222458570785495201073459019614118886214747833968918088539685580238215187764953058067693631324395437131300349977882905750532671634578984968779595736617849453889350780482374527847720111650820440722858116625679416593013623204844318157234654722033689413894249193471598561631497645294271763674159449788656224833936705716125606304401915857241731956891446826302589226176055256565659353657286954951186055229785209262654729446630825754121711121112410886817570766928989253695682563731590907376110148625389159242581787515029803722035253282319817928117003243098933753150458765605002321420394010781183009197183118021537849920847892603837853563104624917817100872114916723764853653442698147969424610643238976889362560243960418694853690858266215564780877193459388069899070083464759980415215454531668694496163439810554548162975163189808380903425967481264116827434966160784279792424421633155938995166995854612355306534191271752533250552269676929978131430385301043458591343363845426706579762687629462532811255316666657473494945477042457063695485175030333648633559471285957480532753821336188082210858686649930471358694456392268254596543299796920563091602903219037333012574157470103813201807685321570394105296035268812003064398475679642561814049789944370312690054129979377711418664324282328703246680566478240651269042139689807070102019681677994058709780918469751966648632562927105120590575048433973392287630649250617882634751825574081255728485018483281398169645641401549320824715230614710475865889913579044871607120696898995361609234571883874686985136996130774180181757491779945735205579967758455564089916540478384842599058184124600044881858990055158098186983883087176633259845445995577574023405724965705850092882050774208212877458128305350455582920951234065199959604707148805994974435275494130969007811106077478672335564008068902660849248196291771338067005961149512053411147330447647845142754526837972279175510364289876000366260245541477369893917867120944520301288165142293298020162398906846972258442587074556638292743505808218024385635719306098694283765660122939824381900002725079388662966935383156908268765806856914520898783151486733816814006537857326135224060719123210048278440899488478357774600689232551554907881337167225205072706089206312034121011521979879544376813942359494211067908136918391662914321855295096205058851565115509375904094573004323034639958346329546299150469240413050588820679736772907064792324693567313509092374097142709193449484520495145170398873627756591519855341760949309467679820464535854561341769351559588139546808984864651843956474627147546059735258855325400692774838952198473429111834877581158809799301659898420532111477942876612753336708429663114194607789024944123359204636446947154268795550832156520248129006418670882462329311316496435589411768309144258008315636999973525891366773696272926204222752958958609879426756720592719728260391084127178149216590910868930878080327696371249550367517354795402093221573499116649239572605472955555663223428064442081785363810309503321084559999569030998032277858204377396657530515378671285559130553665422947247412374924101512299372482666162024501304431314974498036952984554770687753694866088274259109850771649800869481549128885842814249456012513942044656696697452450107613017192571526040166636746804132617553803225003752305493190410542219108473664746414159032152513087566868025124431337976764784866992972742325162339821304550791096362625484773796189524527196364616388363002060214648172665219042134695761038056453314782100445587661851589455982255431666989906025771703770294152981226695933190489937419881046150865513809923535426492845169465439026380454637019203514813816845739538494296115009161977057072371883738391622669509683435119731239676632257017986375615688237676456994517218138948723484446537608212212301106444109288453068117067113453097495042860812985804345073372369026369779253354422861052216479178962807417432173885876440528522578136803302359791118211380350962121544822031956013140131534495351611574411510689688364910612628346713974305543761698796124507469097079714732620456571626422238457635478128439522850962036769382485425652044315775999311650875281198447233885741849471239532432919953131269097528772295241191966047873754644080958042122332715104717962441744192459233083989053799063471647189162230541687759614042431826738376198614148647904761917939957346634553856532067145657074165881669140623091979956318066534907153749283538403237620724080337838217209375827744776305409691955314476442620099563606581685831639854600468447527089252975796495861023431511739491756693368121303167557764073267474131007793060311597998695767667457420904728508931595341048763754826506730199774801291495559870010724349387279753818443596528273707801735913458233510387177051884750829612448925027322179859543730101629720966963749635522840094550979527630617564715009121876741091054641690028052441719657491425733879615506778078003852504354472475469064113339047010089409653633661691590241768065670431610591693817656850760673486394556042687238876406841353932480146535408030489613711808299334754348839819300728034748932105759974643899696013971673822068331586699105954727423930506670635931308418790732237799769147003120221615588350121046858239447704365743410610266471226323275026485643724720839177426967403180407153700680601973667024145318585579865854733603202259596888083659886383567959884370978252700251010225858837024632224760561273261093609718455711037728654804267491314339183052969854452753694399295639517435200833366322892350347220355229102981084749143766895573229754069341346858521240912998065566384072857420688041142111484411433230124189622088257496351735048104859642429981695058485594343389119885400953934321279908533985736351431685730540261971943530709168679336885227436677466510213094500577104273250121289281348101686068240243355335191871165535533245497166035184888965128136641277372911901897813844675182921679209933240545332113705430622760545887763900477391369530005830490184530675588229262540320764477505802001190313566172169723879991029098876639791339491067349914273611585303909119366669904749771772300327548869283006657751168542531923640880616589750217463426938925409490829478060814572542238666787720320556493863916420163649864422371030532754815924398062415033789467954022226322386279369320685514706481589189576460070999248694422384246654599167743309741748193611896990249784619409787256103604409967553617319912137193916697305626505754868849897586069927898237634193275466509428060595188100962755480961914674857944988280823366315358125477967699118840362648273180241243027794207216232157817021781863484606453370412527765731497256413851395424100214860959769682210071818559705393972207258616126051453560914069739671012873249133188041849511238640276456490117197343471354813482400935073932125021378707388674899392072279789814856053801016244862604032251365773911893826148874604690446639946947112580494321341537229471977565808249596411336436931910876839041684603003247194031499334037151183046121293009634183863570308896722047297368914325234482258728739324639595977373206013012834077571602106502282759205689845386855823929517336362408033157769150332374712153826154379554737724950403415525301470059937026542011976947695804160661623333538204096191215028749527964603291525366648026880796776963164272491695069850195518597938413555572811698325864866474392688649523113539926519933538038303697129620661153077433940030017755127890883012977846829061849867745787747566984957432773849981811949362884403124606128388736631861474508431224647497576786579844926092757086374453270987954044150382185669440493871580916396939250293471022222248423709586863630410384239999763811614759565150910259704493092217590765121334345176288486377631684544037512282875374713939684007454053014811671300018652371117478667559919506220087603902119233989411324651253124105475998930984072964439624753808944051264584227324547713474946951790512293865221420448808191747686940606128007160586687271236589156845218110704045624957983461617530185571263436589165843183988369856181657818014959616956778212364705838839468680853195578374269977294237473661899685660382945087921034568931164717985360908684584105296780363634128410029594602513756653797285552362398783204612769385168994283750659873284015958011448211596238465476609144430019250862718575171318403005645901258873995188511284973736331201105999944059103371427470529840838701532190603567088518093247055750945038029854491231981288575298223511082328351272733199021207849417532289160802016823564499654233241150056025322926953999467958856838556087039277199766458634039915733070507787763155251794401634205956275641631907763588087280286734565211245495283951860672807685710851842339732978935726718761310503789436072575687426340158522064116789211033978549428576923168714867613240875727251349174332878921456766690642492851555825103460995778721362340471870021126983716782288824597819746286277718698512728959802648380784955569509908653489711094529491253542466669540125302006982864224096910463801528341885972059938621754710328651887961871937742321743382502673399633974187958467805381295140065606933729488721652887568338330109549965613718346812353340202811386247841799394587491370198469720653263261160784370641465672114081519645188658746595292936760897979370929724595894815589834182826489823718348516109849359983962932091873836752678031946599167293316396649734579394869014064536321916422593002712111131399794295796973267511060014390854674210594136457518002226674483834838846356549247357986464110178226066751196570241840326689933052394367585567274253504414418873806443866884349097318729203457991995379576411759061800722697950367923238922466541065790946586998513158751622140345324761311024582014715341007165431294422844822328172901137905941349366292364049636189138627053217897661271563290665750599489772907408939062910660776774885303402929997809443241365830668795565011478827421774202968669667124361006059797159776719968190734012146616471918056945852186973907184195645048316087342081550735525638359325436918518003304685941272737034685649206456422592826860642893186645943866230346461609067056469154313117050069740685451001726750499093175607689876590316148126913181008394920134930146289439998996373580120138137203082807754983140652967310519236501172843068001117455930555729724538677794243165504834854289954817779912399232836816220475739480449792105068304013911516503719169359104465637488374872960911349821863906066128940471513214352510103434528778310908678208886102549896702273950352249437746344785314066496422851746017496613350713365705297613154383608126150999429292512151775616531574591649944540865984950831204986040323086033962812866704568073046354516625003503358445200547207850201620253500888891634785504107917525301614070330167405132561730800976532545293667818050095097555850415306414419612391929552328316479230284228452729849007568773719122495565665296834501152558595382372466149385322337267108970232279853867667796017099234622821864797584305598373418767529882908700196552259980595188655721867436923044371933644467721061734350739961298189626693376125299388464676171198410669104643743803118404233118123364450656279578187308540757392134125601174677844652254065825275610446393276603514310314608999406305001827486874933191910266179495019290130637891627824134667728212151821619310901108926400982339290321783307779563066508477182375033775317236756540187110668991591180946209605856954285929496350483013789116573686910744825511715142949034566452388174735849688672687373887217617296984032544966767726655168585584069207227679216313472171292745092291027897912210932002559434006911246824750016495720475417796501477601572616660909544227965478398720956567821552952072548600137898156596702240856016797397163393954502443382027591714719036805146391700601501458023171706475411441376655205598357280458664201338967897823269510829489612777567214811954879714253044676361236691005659535166594968815169824146649370378289606439612025563838934901413507906479040223403152019428143050809720146644937733337641294968754730006772971730626257571183458315318913904644678470732859505489503899693931719112339044459107378245673256196142729191852299338751875433003963622261765284005290249442621639240002385050937110555663343494691948047416267368565077037797227102327360064983591551255861120765366845518466609721898983013596273946335569900757098213909067957190195788494089608702446709869537072297002233091005816527246065725721006012111879021098929345907359808563601138854203821677895252654978973056799850817327243160169807775944076788909202184043927315408811193700706417363541089476741544258376668811837311447980790226493886285564141700730568475010018754553328303629827524347680261114162258014219305394427221109882481670797122086020165140703113012989241066743294368015735196094775023481698996080572164437357526916564803428842887873883836215354650381410831931197725307172847895824456713974533441233179373897160732821383398594590835833037819177767744570421018758866010932950746101914140286609108362634301994788355332367001391804638459739302013329225701790532914524797697472679201316957742462051798302380111506275544580664238983533939685688855065114292003434878874434155621773989208976187060613051067691358380717631685032998264100271554457344378246934501298950607873625322253700916577134175714147078628521652777248614498334549017822957190828228613482848985910115801320693376821342871389647281840028519734515620754736301239354914946281478532874647246403156712711460579244972792821469583983066636297467634045364338960585044986243435744314951392868858515766461917783647517001240606286311794239704795832603693391564625272578969812005962285458259654101710215068168359108012989162432832912832826483801812901232415650062944857480782226736076638005809333381455734522139062623002647063609714644683872635818936040088974572495103676539579369044394734555727161119412303721461818091156741561998598354726100614901819871394935609009416246472472387659549024690751454909325421777503411850539285608899279351446137177538666477287345120600179804806695325640732050721796848420847591296610473424085382360568660290537394227983267391209031056279908285964574271119812412608068328207684902252108981781825517573272550696102997040969045700926623674661634227684823686484690898931655132186911194706808898253043307829160891083838293012607083627408621655949811819922160674530051350458506179411880004499983128724811209084910498248369354666633895339584312356948770995363496079032281260742252470298835694324999560042470332026913709262952519564613100665289867682019321036265892856749412746630685330184232160565617098331932620374294183869162167709193836488866492130550542663140196286466757756879820616878935469985270280517113348351052411468579115267422853689189098437583712844786399052219244429504727057463024530869264669587580689065631653078556305489047274680646625965641657337813500758822530769772887863523003144715209616158381736728962609340628317337045289583811329486051904119259910609127326820583175858490119099633195112481651782259686646249002592510603242793019223923832762616490566017042994745054208797073538852350961130785429249021740897951132531795013063079319207469038760664104589337046647756924327579044991296062386308174918819000526793615896353655310303949228376865929068818480385055670339363540150395972688017731856326755919368608963682301655335513574390979256156311521214727876877602464702334390057836524114312979109491500359366413625291663003527803708061818254117015037674622162870333138541077241316720315246731716191224995556059770762432072763461014953447758877573643232990660307999978722510808189148396945427427437665055064651882228170904083940771985304311214662480552141387000865683525207011717499309191804971879360877402300629111039602884446516008715561894739618369935954369009691941937527847433210687458607894573703388161639942665800289722245486584911265251423871753416219256834893509518226570578411596253719265432861681334777845222741019490597157524113817592303021352701439850120685989558715472981982479652805076839508706413750422957088242896375814387549433861142438684955735239169673580710264138275598160491293230844527584621543784058468918685714944669411002232570257503258684924728804410228737215820646760589424485308834044874641092868065266432987904218238608869593911725231473685210542763215018835001760428983909506617397904092707658786451158532311982468875431590774553179598451399033498925056347736319189060815903136093749295247918220128407167408921833573094205601392166493878518862861460391832939518798624772443372844279319760603033887691056822145516277863464983008485238272691778769924957406685157164635388137443143051038304945927757503001497954776668692761022621341283214160432214404371066655172405710815473773505238740304183745139293334689125455535997301068844213241478982967502545157704915334285557483231649516341744207116447948981320252765434050233196425893594192665568677371437363433541961057385235406940360349453679230571857306750681777560843955177057953621047460975974063293640335525881126863528206026538361044126402004127367269470358668142263568769807160338296604494311547708100023768863463567166443457336919195817931801363595533266246057086660213225185594141771010560193009710696333431734509428703352010743051736878603744612208583412776745731722620166624836821912460248082802808218125392698475551282779106382376846570218510940546509498840028704897237886003237151171371777020267551195488023236529844189286683197570589329307538604471509760815136323904590498383235465927294291283305149907854994806384476398109677187611978824805368387937728797672440084587688721777892782162186048017213988732480972418808271331712692057036927262347284118893322872700365033767114494948892546245409899026881489261707277021451848185939292324645319988464243750688162217365133068499280759839945398278366539317381486272726632042990822490183662755793742815498467979833634042229455455106879643030238239009269611999972752968431261622657020050408078383339749051798892490126889668111850426541660534109246094427822929405807859030759434281463930439613020988627723017712940383769327642931234875592876258508715538915088381519029104886695656691950170256567305086526544971633019113586776562371799300651508189269978877908996698487178292642181242017754630733622155551673279030849169400403235962857186720027616696721112994510866688207437337448411654849559247778310729857883956245044724768698970747837335893884804928505141865168920352102013205015986261231687141350089374122866723250790765733876187146736083211792389441669813204929743499092698679894688054102174143892371825375551096902180828796852654111057923559189005436382527581644583291212361519263207279389775199939348899610214321704728849152198981464202870466267156132867503826722965348130204432285748685862870498042764640509704828098628165479346680064018206446572501090667360240633976192660357853654786738582715008889104858788456499248737331071513909338493816597724390826016071528653828692019202827240293314439716476971715264029741705775980220941489226993753493741146694491692666304331720780177962239784211152421942139258620592165273072632349411638685551326433944509445722956579293326292134959798654948758715929517709136146867922280979852906187326882968636263977483035912191500909127235379114343997579522236826634487165869412697445398853440875322465744561441947486309101360572701303809190990964976585549202692044975616752665967346727093661098074207690497182361272955186342269718371301972625799675511687437121606942935361051596099113012550377772948281638030779221539081520368337642817711314929440377038951012797039347251460766388690039625161182501710934635746391985209328751415233741936843742483893488442501873463692963114844617727265738375187524158414788742469233737061924492565510860888644797868262209499402329256516736249481907822939276011550873838669204606501593605637411509944624313100978836401033838850195282582929247247443920053399730248645292492702247958201075517527219430631241551314720118106157480399119974337953891639503326235851139958652935117199921261848691803880468484865984478517184014892542755232682729304576097234083204651646352756963880367485501979082584096449581531551333935386060694163181398645983944438642847209758869386280612202537850189818434993549515645011750838910869731912149976075060843185562913141485052934616569054740262322493931304063306276776006082228663322524389776438298045250394749208035827716972818322643288232474132318075477346061621711315247999629384772443101990194203883096647406446711354542095003953526946381842258083141411148000619254861478757718448062951202471376385810996274518173815031415734433400312900535238642268514489037451310574894184852165007359959355380468140181723468282658184568245314142343082314201954978973531160885175599701738224844971059003512831352633137561573320671135954842341102497009966348538221691674195341313355289620789708606226865704255500165380371093506593920804544428690997592844849411013608792381321461132590950418630998156140820240914881578007683813516837588048550945652316597126421007281416147788161318830163772469395796342958277629919996707810472314629371317037175573100256479845970086336071711189297924292924799600534407728888798873397525551189871836488201203404479816506505082930465537694806899799518053845842590106412076742779995936733330974507051617027590439109023533084057998468612024501548919604055114073730799314709747925641223383366143208768105164254611152053006715978599055411739716648084204146185840152658273663533806120797962843977700181963338506752298943970293338981425410804722751805968744087420709108409043358592238016818660064071624469081539054776664243039445339009673343865470622642173321938899032513027654171737341577959248387611731186359911935729244409182373716207483284207804425854774893257222901538396765276299199265147561486548790433119566437915621261978351614253421090330636429153675633494478508874722647611383206265842081443425993531872133122843554514712624309611026324413013619622862593811734569767068661864513855000250419421101039617706446382712099383829840162972699750578761446466604240539761843634192102734654899793582223285620473888865757928156173719289156065040060625874658222811581870419317685864401077778862259017795495289339580492812434321828216846583892796763023795859298283518243039907666440230238895435689343827608804484013632548808779505392783890343832620187674162194886220184708598115513081031555629206564091978819854376396546354575740740107755515247457907025265351418070694416637807160554039249840098242144099700440744745247976705754754659025311764119756611915010459867010775207133008898040832897590799193665710514438719179800923379356349333094969289003619413954057156068956701951227816136923642570609026488315888652682528646026772906047150917122248170089109480187351564250790546424270438565615055382376849934238981225029700961781025254434157774957403740664675818791698068817607287947662132584741671125564851412398019206255063764303749312388853917506721438256655901136229110843305483833948060153874415057788985073789289675355233297206861827951358318182493617735786256399455911340796968400930706511899718072767433635248471706417699463533304349709829715396989873914460437679318163179892809223434921295369697759488091205595556453608026421288258762664811825963541730843588529743713259206875741358978702066052925308321644583233822042562064344650843924572312733552655075699801548042151459827900829791518126137832032402213784640821739971894906100918506044516608459329246528666564045168922104602022333399957725381677580209528843031234197990051394780132247778997998777473547021741951152358946347375378673708044715616904448345123909382570261405464020167647878028480870704018336163760642265581778869912353272110032917887467630766886238235273794232819053897020936865406498004137461703767706631981264466118726949075332765166052629052148265068181132690849972038364963341049019913478494586243530752275929603610031610044192385570958960181350195046241882508730872468776647199210706253392494952510414302441257722249538847177613669596171714795455287477186353565357354291346894977416310270995496431739155947287259999143650110289302289638532824804392878765844664581196751648968454622438402289387318543634695409890213555850082145881854343491677357128527019689270842708261777597198318296920100967302620913766695261047117985378249878819429590934314989367399823644012956708459759321404214687963031971217111378474319707573419838925839521921014969002561704611260741371268300055421178098741408632892039518144409001298228176536636265088203965874598285859915330242418200137680615097123256702928787903753135558540172848837980644719205866743799999211839448404359662476867542145692003999363156192442666199044078512843646026564213775035451321591847574392462712303642132327578579751116786850332876593184694433909020047747041802539966059736434386341855090373831740927494623347624774138088790943997943518147575445889277783462726915878313257414286744608296993761150835155811224189587808779972710397137557984461427519240089655323104389140249253241312597167777559067384981692803777514257247834773987760260011827053992326002701726940599003163354948934785501079107204167744544660134039687415566530661200919262070122236861176465969426127519880400080703962361806722476931714919745054393646254964108361982876707074519149211620499038141687610238974741870216779583691778714606729009981528694638257633484239779643544154149177482336390336494188080944829128515452779366316546524977141376065859326066056836137793625390765904717271830030427997564521426860909549097179721866462142964850426930917449185290511001018748748669198254054058728352312475107993760457537836226520785828794149295072030456818432860184940383621419066747846680763529096257023747068125588052556124759862305651048081989198216785256161803909567588889698505698541707561570572925787390677899651423474936916597420883984358554472876789694455925166216048452321569796950108740295190172161017519064804895272428454045202893524980203247798825465241594206326808266399314116160378723363887980878653485122949947571770318508393674187274430747216147739428023230973681292007277144294598523719178172359026689859440438191071732790891884425006622181419560790500041058843628582711850102498968274445132134456671820452335019427737196726095077398295884268382766889789701648830429636703732273505294430934436249082787994831024428377988809575322754259011251814479041961090413605520270925483654399478912857029291900358232197831411780952890716658416645316582701414511912153024481612209392203741892632255360044771587883833567249225533524937745990870520625413099022687253914587203000788603878943972427365656276117048606537602585942081723523329934833020492452109205172183818737351388786104963985986856122815412385898977779648309926974200660983712635545766401899424091807208932162875511833183821767460042063237226115796729932694199471013250719910713831234059329320138938213159663133904772901938510676467307971801422393038804544335037648991476696558351922026696539463419195436907066716904741863966538987876190359197448223910107429990731676610607905712372367805353101228036349396320276683479549509425004611839753274909600723087258491187653758570015976003681197154988057305205271107859485426320793618789263509227397061421787075983045819380430160041798157954465400856311052073806291191853790667573220183024333145535714734841121346663031989213543467234923610286353362474691625724663151884199490261967292120534086297258552996931745205750759739753193402808284146779053073802135648822153829520296747777621599081388282253685781730256756594183388342058953964528317363142836268977284458943482106341063122424504232993411679893090764455784334868441842720507762246174760757477877749189749998328470600837911966206416033899901603746583556937292603246015068738238881458535920031488400761887579242290306932988906839608007322501735893363589057415349271458082225738556977662251891796751747904297158269258577517327943442429730101923905364255836803744960402174251135023768116910279613851171015678887749066131725853201373011854246047073481830187740703269301714395579916545403132791804557231827226276860702661077890762031538757988770099061124306057961591455700180511533175073064881322146323053628531337424078853930382252250106235771208130485541007789923115113610524091272332586929381179070639230673399691208786394389943329606922254736567907373094670579522304091521495387918498486448708539021902833754931505409143727078799558651390101690713470847265022914333008577506740748835268519821264688809818817221121686966495458238797121942749601819038670134628015275586854791363526062438681271248180568474789239003564091700174254088342661491845499380872477929942526695976297395962038657237558334923741831396275417767179640997132755189300091732474862524342091049258536277004714840937619752194254952700429535128594988552967219865321710586428708702418343752207056510928861407254819234568260350555591480404437085915876090737077571822806481166289175984225781400133818071480443879869161904366629747874124387569312537346857219932378637429064422725246667716356824747654277122012372057892341432211984404518067021562456757216729459997670897671283446393342603042697476331847875339699362054260958112761407302756304904762839131085573326670189749661825908756957931888614114363200736828769154731504090573112127712877821454106029641483988777889567833240895230433734547068989021820178164167670268815151842675576471921755387898086056829813085370450462466746592393255899573643742385580533611089130516209904466835052424452347772620198288774929663174881848919984423541169410795293496812160326733186687192796574350576631372377811556109680008564389211629322341561100839010069372251172878013630504919991558432867021198634257879259686036844169792492290062979913752021966507401972419737251530442181852845179733333791044467111491719288447411581274101193533448371790825298843637187855768547209770198479065200814351934313841981963330211207983482884862986963907170674842562062869744513830345880540004015337490378735514992211181231892355270710923495450668619779577139876371089426030287001782980376659625638658206704036606459793904820469031812219093720884982272117454909761158858954594741686658829457109211702174027157892893509825340398968506730805363835943425577005324767026951795124293805493140922559766485746692483742801814507905488996580288483484102056516936278900445741355076144155629601639156613543723392401721636324874066966957743591272356304290266313137508878908738165834135043222142332743552498106104722862903448761685322700091649287738398838564459844231816127693310954546737440302379793018805512067801929636481896182111311841162417869964414653669870604774869746523672271102239417173543452532340805773200335179989791070521233433752585496859631085980130191563035126807702685517693582434121371762874158513325239591039778729232776515415418480052230120944980783392789066525660756638994357370005228262109092259351876458060903553071506089461115948593857687599998986949808158122764314571248831176126293410369038247011711186279341381498926855068717139768239101896572587444417122986231067835378589621052862015249018047812646354690446909318939869660881629240170907018426468808089406208928385196666604967587304949270719149225415689170981977751445239698577726074308758858222144704778233690719971194484537677438996003236542315296697206177890451422290800553079050490686175917628472766491891082590438584069583284429571347892816500017319500230311771535200964961819452619925042985301197083186208111724467586383297254594585009422071434030119367945290698906148349470538875966479336720487482021913343483730810226831765211554132459833542897007732554234893456632479038566860964336791452269658227087742571803228877239692962042571615073945963100303729276157250995836046798114687527711620985843326024915102668658953113579606422073277684269301485935519155773035496848056141285035808545803379603799366403302047976506020363174542594789226381066578758091293098726550402337063476033459822393408902071577180325100806963000288289665074198787008367778387149681630672019555420415947015175026365569314836914862601573338418067578813496794236545711057419235342211379899513980624056926275745715585390763680280988098284227215009609482512181298938455095481134431436159589044026756724186660155685155707417004553189732723520470551126829245097017710320155263215510071252280729725799126158805223174524237379163789548130593858217843226091684002692017524739439603899638669198470957190463966967527606091011238655281457441692855219399001064673556981758541665819312346799663112696545179295537750046636319677303161493164764404412511449184451174263461074165693835728544797154373169462288372290594307023480556901979530186060875088357957429821350359112664841946531269834602364545916586610083003500377455214382950676499784133464430539943271736847808824033931519822918343643358846789798415995130879624397939360155719853820417762960651913919770980208120327798897689828151542993948616467623307942658570609840308889384228793831636428076144255106872219040380337936503305264150071459540019375313371143957709701410569762819100454573383851816299680646757653075428117425931109181960191613265871638925397703316657245119597989787969249679785830901095517413578122257005350248784449666243568627965443721483630421246566930804647338769893080357473030893314588076256236807587539102229204378578865415555966199741180089610432323153056186856203730727495290395156914542393463722467879152054525078243328889225588279481006291865726375346025807774787559384909541429024637465770393813191384894254353856864092094159607140726810900321503162650549956089469684951275782712639432236740617725552508646995009158413458527214224821873499335818450828277826184471958555932735563532954282799432749626341464838468292085436912621327285219204705307197116876733972994272821277642971867744829756879305423048437800445520697270431334024302347014659203087299675471716668918148254786669757097227975178691017795624649700864496823129449274849965193570201319090394552595607783963266103536547587870228326286960733769238634795733120103020823226022759472095365196536183500662388761192968204269699724131770814687088739795461362096297808226123994073999815919152650863693217581679020270245086976649706907859153153771755322774984871060474686259588249325143938063327049448624402708932009273661616180494519935240182399730198021634794901807028650346086227357281077182350296874352087986569164641034105705263626999972593609610898253792193636246790760346804720329134597120215797082496760841591026970661257082595267088810350336321862232215840792965856821117013063613193564448590236168261718850825962040050710491903971256372037401600630759037703720730175142800460609574859371139399412496797133335916381839288772592725547738118237081033752317529977182705808256012103050098473844449420734883068612224189227058239092460331950751411414112949116644445061592926257531179204833831930125400073057630083588227331261930062693433015211871468963291188598821427075417869366681107522719721586415823149923207785723318174376116645283756051940775950277085308142808990503578012265787365184385049882654800782431622003146724557013285920196969765537427993801430603202948960613670879181369878518050187833859800195068204230597350854392211512471499802809367447901485459856085912178283158514142520491505255227417647566224303676413947205088818236890406962528745044934154823044619639159643725253961256285143286301503478874023791905508400296042277367754449561449457022767864542374321550411251539254360086146074349601213528338529392048407358379858846359459649866101362037113342504334609197500127172252753908620852426850643520603211508667729391891634183007930781671253729190973926147037835015719867254838202738035692594389321112684595099168490106053736516294646781770532354279713526460878607045533774728069807318135639040401252059296399383281920011558955862158197694342110574979027625787232150010621022274120220667507312818708215505425358332605285727554510648696571101454531650952872230234518804693782445713424809031406654251407720810059392220718437917746717550179299231820251639808228880344121257010882559686704405085931372229321831892243836545699945535628501659496605269206756683974038695339153312309879591532985032367423324396245949194838357110496312846950250678417092691516563154911349657687454490470151253744784350799671404877866166406599223269156298144037857812086679516209966915498350903663592419401098071529650396455617025425181613090312004334489901876490758112983804116742328346125492453131971455652585735637111869148566883622447159939233297363531675686322685029562166852694440136083876665486267182152733867054272027073904086089947967130423082814075108702231596566790993689757197261872425861384941891192605282427130689380988325066388190873610088706663394738344457139932224776566100877591253787422378084759650542516822633360011066034361439745532044644711906838195311069416455170825334675770606287339152865992043823462063124205362099100284442648115031253910141016365529013765227616504400165734413631324142089169337485304104922568568878655623882827074149585496464190739794598332222071758783621472884887916240205847985361194077398645600845999991325838814907913746107658110037329843572514339965570492771563050407048809278350265192830537183857370543628490833993507400923320800310265386501645574886265961739731035906308648344900806679321987527794648650277016977778208670591752271484340711102470649824985742679020912720549999109357059012240378687424029610766792720867408175656652232316074168439201571580099016824614113711802631028073095225142790314360350575081010986795294805881753329255142385796438617946427312302417013373852773952363588682039129043741023481553954681919600691377738391338367684124871920642815482403479279318066758457828321296665393674850088049666157438257706024965916726588709585257592322922741713686684564830837084454743208660914838884922101796860510970938124826432426167310424553095642332593892458463299106397444378182550898063739739389735848244804794921750094127564925792482933437383126275985908666772268665780900965153778688241362800962811785279529846676928123365344055043606385976435133801472165677460093855538246017994233374662246364980542782864866632150344086078214701737616057724674769599513334449871834338445558428632484530548109121429904417677028801233524908514998443912536809257826352709192675188380566864406779951214251857448325680528680592708694220894383399194164571614007886572591124294501015471627885678357599349135944440311081743384855099292029267952160842590562933800208788153962730050457350681015578379839331604293299390502881411681290333197651639809616444303100466825041597337056796290763808477037964915355416705861686480708218667791938769220045021578516390355122921354425037461311918571586985674047058330995318072350012344785179623718127722298606012070953606735970340678551011262850476644605845668196615055446131906880423461006221461692513103251135956339252845544489079541078706868987416473224598006122863103154479109779757915292360383818753450571421546404970389700235657543689847057126030964413471899633448620363933351825327543303176503621075497703747984244233501383350528525162405481272472966690282515365439667518617891584008477157200285103175542220180010513801703867279905482739298508155905552746162117320857838660453783428717877790113415308834428942418020639850816333613642539976762405393121415657426346923121314414575377457458459031063390583057388288940429530482610167257226398863080380357211315800638088093488029537768995185197772004819882746805694014358109870322171224924127666081167339402019768244739700640424851137858382197692326231051750422829100623260631464099411083055707289147497205221178914139438400061081659812232530836702350100108357264598706118830448413822401160521903584063031568083147862472403771866252860969447535693366807109169910727992881858397347346016980113357814760859217145178850585206869975967942187469141588499939120944346715583790758469720726493589711782340960910968148645348271124921602830556814319795735755855496318653674536300386509806961843183445933654703898611409885179386549503405101556949541275197083111766214590347069722272186161738624127442989621979790562973382300001870488916876604265056904403192359424814288847421149983913878744367968354931606314052547797605385878245643427632753292694990976993014580207989879535514466266818863269139419755926159152268971867250657345872705600733868687922352017589321854900088186083257648583047920775530044159115258343187286295863601552640133401825334307853391823132237413175834934330838024902490737263333116120818607778674894748681221578214257631026231339371931252336304441546922967052131330339804157149070733881907348884845646582170128759606928152504600186140633670374923035785529213359909755604766421077544011028887943621222454507943929154942201226269433745044085827979142164029521973040207707290412490497990941416281753896149475238519152274025002830207959521952439361935982789168887470358014374764819677967138981629541621388569574673934783402706090195427372661872517892921306437961781470901926159086319240576657099992255020862322870272892034484376530362103219314494276752705183854519766294075928370466482569451302258724707476816472596877889829668924534771028134196630353643871595777357332173853459242403114054167983542727075969050024527228390847693986966617147547982684730549926661812794093951645772024248248366474820777155580802577931807343884373902265269525958397914159954299104872783972892769011576338857031031447329427302295132346403639092518005293832058122069794706459226003016324420128314419186224712645627140575134741444502063988477099517308594665443227744845251601800119997149373632028273387278222763257035689800974211905545627323388342964443140808725952119320363831698200396482928577456104539257404355539708864775143349945326991543306575440609338886548916710894822744869975730541395104151922665981219839125073227898731193667465155274446951130541868207181448667416561091957173649658532917500238467188775392369918962683487085167293769661207320187828338240344166941006378312984565279882543156214555597088962041991977923389698593711803966412292266833030245227582874238086663292809118542741749804703475000957064150338243560020068521204549996198883372856650936806951629320315247009906587958622794409881015538968754155154228525975669842255278868895550404567296201152507934660417523016468206975464639707274039532136898720804437838661799551235782104394771019667865420892743626418934198525055915110934431759199335227236554891562866908255074081079350693992072451328678829351004663701800375919922858277891152365927972315981106402561049564881512916650543707767622432964549974581774276756582811633125525073213044934158144208862746564636379999204144940520573979244692993506591511283147192283318621943353258200243138881980846914360483491209088679922408583954535042362635989768168138579839806958029894569227723306154919257699484237593318391381336305059104589847367285440446864755179083195924059914384750788343495412123606163820474665548569325130271072787153163507529645395644341456916628783038399828734559479717585281869114773723719634166275088970021915941974922090925567936751196489685685386881337319617629137342332828204305730100481512157923233858248726990049261175589151623775097461257089401851499782367187678210931229787023789131056399848369494599892145090528487039545068714299108479263790937006425411928120947742088904570112165984650743642998346116193612560245305460689950481270909782572190658569263850605358032935109233997526585766696938902624746061383973465571803939774923654967085708959583412342585525347506374113109921950653218857650871567753427745664455270521881166031693232254931523222426338673793977845133842717298616757999595876411949649997421347165055328733205475892400582878905018029131318961699013383945524383951419514542185604421334495488840608284916905270690497169570054226091464377553214779877993355752114839177208449960823750443776019208386185092479562736801453060383412183147663241680040554351974879255023929585033600749977804413255243555139697344241045790577708459094566635598744824054401981423184020089257946400826495051494286953429156859342968226478042731599069514162220845782058387439073483508551249462906700810286869615430804712654324393870088445570800838155667093931397970993853965427015872879894289566461680217700605357837201714343568188409794526731160408523394904168599381384589981059312094881808377561601188699634764173826967264070490063949743373592371889707640287659447852214267264349399999891266916088579015190314852925272748152742458718492370135320321227002125254840571513359219168858542639210824843789864043326089266742192556374725176522600002799694084482189863732071506490150320305665306289642936790143996397150738731161098887441613630889611201504978032599027470571729707427581819068046252971769973416291975431121777456715040756690008087650734738329087345174525177473072836955447821938566750738911258427754869664038119373218560273502266024200249083859570552786958803437283236454181737250707250424531150954694720117978959999041901947818859719293963286138038822205593625364249303964691311654179035524178602877109597550264110687248528639295469599856552183327982304527502691619996695254526064569251045455963942795429207182756300869767983284924868694368382755273566460536554977420530472781257063100809799784815568400886720861454892673064720753696224771439349693502906452896302549655560545635948372949699076372171467181957773190793326926425610849353770167128023404496746173200115672404321621041984910759926151108028069420488740330809345189104823726911304733678071619151029178974182663902733866778951193997420377715713394016045334654415001825635545175712207538410950968287222513917548024862904299432803607017501524658355604362892075369972171600926360918393197792735657912615453412959155247265314679613441905069290258789030188779130411465454069492875274150984922918337654629757921851236006498049118709050420425988578970659356178494509512161811100463845664429632271342381226558144919646264823449046856887357636720002900548480737175443316192870161084624347818374809114848369854809027863789753060864705031940871527161979585603335089480976451650586319418920337943672417765993846598883397162934118181770933900311680255166845187989246009322306244123057657849102550971832752012212252361355443949233826817750458310192071243954912630150317446786199858036110737256574326683081971663949359280901698432073914750810590957290533852651107683295904759523345916725895787344505654258566877503319606107116334847480637393777863440503419412937120771890923696009214942835053793966460925495697365076301436511555665027783953933180327721441679664983309723467515341802562431904181697849259140198202075276384872182992914366625951712922824046474743593457158050969133323746543439582530817212059246826385185194672320789259216236585681788114351400354116484451214490667052995471018112974770855138040707338753304788520507253319585330703237622431966038737778189485483036794507639693573968558771544256074283978470439684250003068664390338145314729862843590883409819998066694212500187303136192781680673843303440510765834861791763852970256802787131723828887074463754361660984918708241932753608485750349507659731021350481291077279089413985997800773094585344770011235298700953372246771875224670890369241583338994229879941526346670600115463559900738822011360069706240949562519106567255033627747327561205144424815374352125120089149196441792625066251604566630964033631933218292647771307769389970319916394545640983063560676896057187489975286852016264810358507041056439315367390144792288579904251372960062245755876373500787920407376792074881786092957681035550873996964697945451121309121925643613821010048088919685689955208478019205983669612029000745773103085020669838438143944737853432504172278893035613439140862694618613841918654110535823849322150352802208914948921325002544395374201352075647564967964205540947467789685692720913078547836335122634300097039898565726972409811491244240985440581132201582155061284739674969515278056643500553124936243032365037641435307614897416936084778157135024559270742446674913067538224055030222894347543746000276479242517110924396032277691580373516489995176837365473547161189935547230866549692442822102739645728045602570776676688098405433485594438078016418413670873436682949527667690538385241526169352115688535092335311923409495751909158777432462185860900614176243702857415975252939120505472963699950349898698746317675636207284058377421763971621794295682114619551659812252637320469773404908109936394805411435999347114011026695763497262272139964178620547933356522967338000597033248625633818023650412457467764903763117299024713684910843059404094712341019479985129107013303122635715946984658641948690298477473751993420294187890484073498914373202263119108667273793071109384283825666159406479935585914345367405812482800032768506861066217560051592472802008338721039173503728019157416614194944758422908818554056752277813046506688765435078470593648196188176046388703011251175645663261103342125152481165579942074698389068147288615426015810135046794412175858866544274737891859831200679447990815993435529603588378302664663520211388386196167830165576482255219838572914250089787359046139180495922002174390754141584520207069465839471858480543150775362767205141183711512435278898811936302156184657719346491192965931036706179524406143391170386595172052833468601112615422898157091089887414008332941138165226230408703416171302993559389943567181064906297771367953502492010183927131033353107969039816533497975608572397293891436893813074845429258933105914102693693023088127623482292493477902625726289396756101650521332107997600636289110623003893517573572043512384730384309350739367465393578714820097732399150814435126418804396595621657518972976922572636600339599218665002403504999454674395278638760561784942949226534640309446582999971788155406782139612674616412451880622614953286244746624864132378533620766717319088511480900396179512248262508092252592292629966733483767239859007905264844469269107888680120818052659637417814649462356590609916938469203077427307685348251055734558141325217886825021908699875456332300500580233077068152448290132485095105597556845647049824307246706494666110600111584242952473697560914210961002688933617409232000345211438799117552522841694041502526685341815591781974862926605691415195054543869288550362905212884823310438875169322089774785928565977155632046529884803557907433763088317115100140215405290950837353662821534292710879302039544110809403950896989423648884562248125056138878140515178236484508942530983574067936259295204710945721433549352479642476283761949708904282319639131400052847632364566866050927281489439548581785720659304760585631049194475227667397585180030137321949158626026656632697335442916201984375365279439820787946398052954312618308738591468472738281090327723811329659065882120882399427970102055004565506783132462039519400661042693331709659098764677469218346652437217607413293236371493232610431775695991052721033244143718231081578433041556835287869465397978599975276544324128887341692676036751016230030119659988055919818644375314809809869488521701033384792960114655126539675726366098875070190146034677584148300530100709827841423136028399693582088775031404798536936759737571236337493874720334205573592804377282285527849669942682490392758381644819342924357282806128885377574081685250378895842826606183045050033947181226979519997723141424058706302717638658288932097087965290210586970976214896827514444548385297645026604378528745536142525087921652244281858414930781839181735132396692907145968679406247938202393749476396032899119238830552097908788131414082964283434835571754511435820437648003187929236805023604071786746704226019603004235742266912688863845595597149657367688864983230953575164246378880842315438381411722013451761014242580788663720401726517284607487754913535574410190992614411503076573119488352074578161292991235960665900684779971539435396334283872608165725969899940834457479629517087622864365232091142111744601226171560199242835114174314412040945986916624008074246362281459015962421567840177379937270624516284324368032895380615481851020261713959412042279836335784527263618211715550423949706363757144291063666384440443735123534398592044655198501408326587159061803064169012179867771095210181393713477731358489013379996478958135652133560582401139009380054266832304453152775287390856752352575775998876826990059175420739957806874425788909140440171225913034267660858345664487341960169102119956023157868619636358087824242302915065611504890843616358313761269653757660578175896070579243455291567538365488694031841051140426701387172813537568550673026035928543155155388973625017352185355490260437261497131279389999175171591790533429358890885947939256658252359786426656162107388907148339827861813370612937529371140895807330020377093459453615752398883125414898768376527935812750647991802200159504150919795667058032454920028936559194222501421411652265520779332129395367431185241937719072721346476929288366870230366673539134100445223861236811041361413888552651946139483574650651320518349068492818625218326085803376550738520760519862064570001289583919344398138408909322514112630820479263453342798225235335341205574102220864653924713796445284768494676162588768061648149630588832153116765045089675950765703812961316609315429362736574375670783340108852138055489129280878445355758337890804627737918942413363191114810415453931181141939958525451607249110512360357787231057095872900415887090689725902590757379329726853231170275121809745269624463833679677462439702239846432286347035843402193397373126395268384798149414121270003934808394293585066437113268412444986111322198725435749423485296705721976616905304137697633304140811718309759449611413221932718762845449621836160988412668884902182303553424204655965432260165678347171423044729093519248020040536515401966896254547631976665028013951825782526606240337768908714537526495075461143464419947605357573750400606005858168678273539591603213528105891000630171044076153651810393444817379211512578286233852139463840946342317737256285133374273710243242513053299602517790542896863772956598532479714313448740851435901799760790619584218409387202576100810518001214789690115718382151193000129055919260620580118703705288166148330432254504199739233647893623589400868888460783464199325050039115533711173060641786802028009840515613797705755710276489056051486354455395317712912817595312470003669358120600870555289640106322512824013498808845289965742346351977182017354578484237161530987141340332421825005775244367353142979149277624209720360890806475757859172988886227080656333733893728955568084230688981307774389300437489672853826422751429024639395463756393314027345243579744017497135692718238090490251723646236275218655577785264850385496904116317194210121302319210272428372753309559233208406823712445418006736906230948956363184436044377283034690140399537410298847771803888971412354108217315754058355195661648762353699917766757015636602873700316180616674491857236693529262111683221487522038544407737848471681132585599373973225735903121556071622798666364755194191035805931338033358302639401341566747607916693574267261359344405665187721643142525716761843669903850127550633157418341331191948012010386980617520596158366125195544336548464377068614107225794593057933924231883271971900433680969713710541176880043181061717502948580721973876480810224973709364162614250743738221420801636417597922669243586785570106592763620094673940722538898248390599636964852212005227671875039041026997944720500991121543590549378265299504260756898534174906050258167312013147345560861854434208734880355165564761659806569828899447233852780749717204516346347211592367845542340219273575075032960345821391710664527309316455340006291182160296794397184860523122266973686938263410924909178241918828891267603783639476752914249504220210805803693029834830714772896685497873003702595724753887890035703060819063906787492467026493782921414187311765758950365317569347995166656193263698680274643952151531761582543545577648330731997624850667345046289898986553468708842632300967236963527906669740958610103483738666283751521131282106034472774470412283175470819285585225961456214879833223676044350458593906844712961961758512548288181480328648747806115042495375581031838278067181822717057917398003863319188069934813265489783461629112867937470209618335919573562669813168433715198065611489312734105806024791732033928072344664680477306956558787847231647249466944967734855769161409067389282486219133735416691977193101672026915736407735766501778312066995446598495702198756048403655572477244413108188894020566577325759225368873871151916849218843825209494248827527379291225520139999915409951914417264583923242173827836805191718299058441500427745244907417743714475196598622633268514150970398720726294133330090918210819014217566678163946718760920362806343836459892027315800059308471715000415287378259629757106830722443205664502850966948000663354730371722656551930763352650880845472097148057319745272494139395500939567299076481169856320753457877368928129172913341752406827383096109722483334337461553138053788944690986962624649479089278716688024603390733744804463103567070352366404521809938924716485438729212039254623463469320309876828164762822916683222017453719830007225737409375674133828789104644836898111100278785072713953946572380353845998795682665941516038144872275124688130975380830732938686409410903606081953056597850159278105427436972030656085024279181025893313419811567061546797130693068123119633392109858576353829383307254106673039002978514040468891322514578088580356171083537196563896154288576915487231850836407619265446447519681412912503655487129697232730494780667191302704280173440012651575829507481313826983498690165288647121932213999720848930958587430275586148111800041499366576627653455962490567852943767203702618057602298452950014448724576026927513484136395634350531471502375377628356299948727573015039631638325016800398423408391980402954252387240679329905525020283733504012031352359938370974585193975886220256823536141735015555598951314851644951296170514402790883071936778051021463716197984870764832943191329535371852399120227872710823185811030109744221479347825121701325554459429828170277014692684230357534201557121721579561949389386464200572637145220957185467870371454889663206292156484146337260162946701808144410567685368118203184700125281823714169353274708226339588332511498240015984188458269314037879200299291255771167215554157794767888797245991033329556427851824973521393074961610643163616011912257434677682421253736837897239313178734628602832476248993049364145818565574095658826248607225710161312998787306644776001255649123318029049512746051810221370600779451179890225075065924461581313867065497798293100064323676129009585681851563493549799344336634630361820812963460506377137214601595371075060293592466617623886349479246915728703817473950982290793775415715632687458226032448867006811974499739819595220589167599560285079411033053714381372136503352436183447586017378273177696561017104955555427958160939323749412102321052067092044925226188636675270669082444967109535024864989960902908462251502400737483226897888285825054475146453327372188701006015443135367698522460254236392797358280766367292429813046556671501825407348333891230954460800332979582071032336702717227373957838825703330727772122879690332219622738281364697346318421518502502202696670857738288919972972834340578252949285871577970847319953993570735574306226894524649336501690707497976144150716982412687072367237404030899615171198778040432407994869773714962684312319524390441858556769091764423597145946158854485607423084627102811242308270112738227933259954578028907247276938150608005620033268943512274130932232401241847359695608176467287905860935641889966314571766190390308747868510497541522966611505787715295623370106991698941939699951185682013889501611891116998476628579861645104568729405929805065301884193080328828707892838230882209056152953620161013271505608567909893519932659981188509995300229624460833993942211071771661670239651548582085311323008484637769580093365796859467324552740699932549193650571792827341854662461525640487362392311467644411738365291489130072661685729798760687652549786268842222160222912671902924650599787260446218816857352636424291618951903227953616952350374235895031532308937214784387673431476711370344078535579431891665436637940931319098951051356284133911601630265874227333811836100658401520143305517527895618203680597947182583144643260717964017551275249505511601181790270837574570710489010866271384885794458249221143415720396394869172785739116979337636525341269653587231935397597191901893199387086587571271405748987370372368465628676672532867150643318642296738627429906351578967083494186925429096944931498582744585541546753273675140126662197100273971321747118975872172318851339874151445963370750389425004898698381859645472216302073735032286337136773735051558867600281245648371227292168282326256243713434701110522787118639959898660421501356189975141358565021451131811461042193981469969037089931165821232870811724998224125400765614818773117299856416225431413549226493658959617075905129666814412628245878559515244540923829346924759015267915520620383909923990660298720982067933788068285612020555670234007425121837816296918060653542225147718193592301827261178158586727917690998356055573168985223432476398017465604641400523483430976933607363378677802071320371720638728962750112220922644147920170539781653338622539738043855417916471359744510933553219586315490282202491029414215862343497765546260798742692503825957433861846281546471712216913124675231377689236642313782648667378541229854109156651098693008914003231314666122849431594359410893130207547750291695844767305796633231545484756928729920581933043351640330622170065462630704990955424857058433891243345346930603569303971969234419274402377936175480687442719377765309827437744367465540553838631116487813871801065643285415081714608522546495037296236361491902552626971823911537801511007339886679346358162532410431267357657077682466938647269856515618772986816247655416727365158100290904000341375565779894099563922902885670403819598484807956140702889094315048097056809074594026789628769982481498101344435788059634535027797548630129175342110587798326226789293269991192274927519526326562450425351546862682462417176443652518809164064638429601429582792942901685339346401334809773927163617085265426657049651639401895214736268603102453723543344705867058343247101205187491785056657542800722373784071124303419758765166250388497238567711862164901294167103962631801799635151508077648179381954825920114806401127241000049407506275586523458702891573824348170577359706379161718965137120679646092261543871503232322515868888955264920957026022999180259030292678953194618104113685464207027699362314903073323345349632394908825385288988466953341744299143941175665616482422762992508891938940539627415525102948687429942990071770881184627723221228560102415948460936648413767114847725272756374597446536792775864540058341345097324596075292456971242806947068869235818861243499155962053478212466079359166920424239360688045293072598401298911951871103835162549320894632718093377740081268266106703829860866871246433260334633179106704788678814196037024284468047913272181803140656356630784889110577883582355374191095484651522146120126323295739303076598925440058260920480781507815329529460175578049704166170643603945474075136731196764756116675454319947789506447352042773195257593553903587457629713037346271402055784978120005236835530234189701300164655336070119611578571421168031047771438183418995484379634740804500180915710144937655853028786182438328030562592903105642900991644192016102433180620304327627366721935829118284011635818479418699515823185314644798728358285620034601100780903662666224495628377748420135480556001646616842326530449910255152927820481580116103334573396672506683937152785948743948467994362735586609720008518373373416930053274772633841740498321432753722341821910852882389869380510454350206098704276808731286203436940433122499692397347848149290165750919981667332687115003324679849199719782957774495589090447761061643175380527021063903540926638978175771513625038916925863722870234203727641828618586547573723609394663663498406582672433425615537717093529656236170765449680390690834463086657031534055756940360837453613090724224653111032020076352563360074331705792970392897241316608265842564042026586100349776232693260592193967795287583845033344278998974059853162638408960920911971279414057888344053533628817861858142981167319649722578127689094581440338756491279102430137075582870141203829655161276377058069645972030882688349528691287508934139669928836720075144345687305088475009721558819661255005498643964443155092277047575599895990859047398255177784467195453626675643320370138675094854989546732465566298891717455664919631264055995694454589113908137413214231294121424884664206383330702714836318522082127652179622498661779181590333915905366695248018495442200538045681048761550685142184655787181038988534023233953509965950238431436031547888792718700020526799723317714927370518008797501399113422693352964450788384404733142882832765562648856028391986195517525277759026344464016995597634597875355131795768803050716247497412086979461541893216049241791551933167346309755961382865421670115125907348757169996349625894946596173701092175297060731106235583786349986606588453669292286377418855734618394527187672444577298350561712479398037752526939566301558009557210833280906198450110324570958996221507142597754745080055831195319593328341978616191341504575523443596060182537618485084506807769883134437938152658667684401592171394563661559407807124480779807451271621117417660481689548052334851686770735390401274303730524348484897718972635206406382914918019005812895983945559740058966858407414524159755262328990980786404873136978002649265598394932913174197325961931183215513282616576485410880822717468883691982323833059800117115936909077862986313685853665163902896940229071784083508253789727599941644225682404785477185533945931809312712334766197773143200911332399513336087919357110655266694855037518996046561795811775748462021635653364595681303390526416593790344915498881681301436782690811520971759937023686983440235936727396547880876293148280535154066212611783871957528290917821651302747731063305218425827637160391201461430075639416445130326719132656763213149485701727927488917556901873549886757740355610172091696499725565353307853432101022404046213846729605015018198331866893943756693051106269189809196788869713985973362648575109250073381991592548259600585813048358015790138805930541350456689568338673332803644886421200900152297410398507787913079654848960489560876963664499836123278234799716852492932959242410393473278046947277703353441877492412202773127748496687112904020366811977757030675498257275256665845065761147371360961106214275112856106294752815952266663121719607439931343450507335213307484874474400084666478900070770610255828125558947049433045124546443915517879163298113735223093734258457933568981279114032234452260084363427790641071081954852932363818515105425505991893129946945184960233512835386971409148280875384024560063441091236988019667964569983673890208172209968429702301872900628336700819889551601392912337691656558078577642384418662941669301293289632826460371345041212616126323343638648772946718444686572705920887890814366042747609452980586165643404405077322547665923758619335371347720044907157732866363273440383175346704866891077283710573476305052075886053631334976206505107542546916575327705347188574255384508381005411581732227558740657235514807990886154714768016184467228369530470646026814017811559401222772861635223006424589820333812866489799742374774915828870549826673996981406394887413132639748146191833731959756551956859028647005928977264041268368783384075323159288775505075529297483536730953893087019795629868689138387626531601478869911599016239135892338619687104275983445440397610107282061171571746302077276606546826531652385560882552710976668726349847975005611931865557342570596675839853459030320692011119423801640721645664400646919979214276316644602299967517900027313641774418327879543658893754142952268485436592572855192576459142997536760369294763494857409177781424979408373267882641432590889429305808370571394315467901975118694023964504206622145948717749340904551368600610801114811840061962131306140261091425738904297573943920935093808973569530048602233725052919718886347401900140161224308014384709930520653815977850849436871914143656220949865693001483516118569191165896469970961979306502662704932243936590864588837091799781301513441777925914685503373296034156249899206033366597574957352582931285278623734278531985853484163379828663163146973338134035465501584081910035490622144475241371838508607377565685700029643722469823240780134057299344826938661140285832925190721905522955001562620220270212780038999458655170023220388060340190637242304681728391413794817155265733619734260263827119378748748967469354766457790452217314484552736858485294447562850416746344541677984112461946365356193932192736494343328642208127797002510355997538734975720859028504519423478713884841877720392808961122539315149097454887761595103328766654047440872406933845266876305746869969186251693097113939725830361283670487724207507568747814524873466886113995066132283764540341838056854088252567218596389139534518559057083659134043198812289006080490736199913122600706963994956457668722921522625095459321338322414128941516134361328598667174617809042292897106494668410779707417687679093605508877453741963664835907547189169905712598917153002630866188523970186991410370889809276122300060038197311201766569425079248445420383452076996849364922832679853881628407275734155066599347089308453843878214746908560253550099917966474588316794333560712158781270904419471126068475178489467961043373610542985031421912251822530902046199999711871159378343588162521947708711741703505645305635654615678477556860561060634820725641441710130580999260195909440935729299003422381749468093732845642211578061402552295481430307794464207845921081262473059297341597435913705248471792466111212603032925112695748529117192799106452680744479108412620096125555979163188495681256111839528271265370066080281263111736184008899787246123446396427003898018267358157888747905337413881681285582340261213226149010210893149330628547749821529920294574682401920030194281106963534484043975387103000034676371064276959638077811151973525985431007758395822678168366820836013860626043523836800848351329664934320814426410591263202251468226968413429295797453799469246664726023127002532150976014093866233285382517202916397636058011673781767030867362533677565917295793078699267390754128060047791219464486369829163202655469589119868531247780175358199410524302155389501404798189226117909574623979797669697097731758736686672851481312835846432438469679475441473166835188546313696068834282921650622679416360489712245095570628279630647904660194914202115184413075276878454565052622188735713856042591111343746697756843097705870854520935305647888504040033841220461378560827153392821541243663823513811848025521409670032131382472784007771087879301726859734714366809184530679014398026406204526597627876742163767435805170924749882930427258608870899485758998568894941747826502675582383178672952483222504796358205471171867850022499288683605752466885915306534528673024440643668548646984445486212764116230754599045717129610325384315658545147145876373394896178243452734361321018184771509342075403209258384134942198055755708610349225013015352461429042556121015841059125355099710730863619487048259160257113013841108878770028859377016297979976666517084693898050572189288069210040706284550205705834792591423982848843993998022019501697898706355295194373983340908519823258576242445897177932935896888164879101431745240261196071507830437542636084083799400681666474687019002863207606687353040341889395229663564709252491972963446627056084429579852232833113268287764573054587201284749169787216587603632235083268881794015652217844712035772470637504647881456172810902156916521289330899550867042885780730903348911353173010655109423709868969033495977869284572736552098023233814747187837522002908520279353444737028613138006223188626095002923359758997873232564708796682352500376974548124231366308942794331620181399961841518574744190033932464554096413873625062331959816566618089609979669150603676707874877922267620815855429175104777134522468902464779121752276323814459873229966901806922431790270188203579156928551848351907035947738884825988461420383437712985368373910461190172357965444055723929948711941481198511001096112122919014267762830880339999165111819669445634057793133360423454822782451741753277818973464250630791306015136104165600083887354108487584390072030936192044359730839004517258529489372050028315644129204019374354364052177136949879546307404119700652015225125032995323920745642849839921912485573908938415692992737270249475945452087686028001633704963421481763846725839600117861207407941711623152929977639159872400860298757247985494392219932554499199313094113339079830761658140448940126547879459402469866707193025422826135503304858317938256282479775825029422530122926680289328106777410970513470374321772538768343665569658666385733242546305597343285918247697479915150300034786023117650047555066494735676916671188103850619407003158275362222115745754298806071835237150474832192808960362603215729624074752574662905715660916496028011090637520580071419988108388506562494626763809610255813529644620514273257833373830908006058014404519039853389430356260749645186335510747513970579775573036921588967802714160043720725329574715400806250433907149532749343270303615711225435462615536658097384671680436695670460159698439283420731424974657029079419830561272139948220563192705123444844685444957486401731749667012642884747972292953779439104110904518933410051756103321572959075575029482330351783005749884088300501748547145731795297925793806242977651902423472937026912437089222669475508369219284413591870454549725295306976948231086705667946166548826722895345046679620865978030054063973044123823923946280814971033923857666909549314561925550210365015283275388653333379225988594894778606474018792697633387683149841801378397876537539097669916412356432821383296363144893149553007378401434710178010346233296910501203381565877072296648935480819223052795412763135020635554561281123795003610632784677357412398383717423039991495162349349392222395503383217812534585837740163799820311473257937082191844429949525669616890339123703022277946019054208179768400645265725828810321995445429041666566583619494746293153403451432205835249066432333867910041690386818306360815609809542978097839661612766997148012141535042125374375170861476374539400158729428211919087707729543189411325937081301936762219825956877572110711407929367268714649988865508539395395789629896947659710749748943122076589402312036800224349070206129903426098777465661842481786187818140622055948383046409616260467206830836555827257400893296786583416365964468888157100963826111208293753706773663809838806891448991879311395376536934895678992563160883725733298681337572095948146758389449716495223582387265335212104393269028165565251379600761915532748875607447275540705386837818113278716536878217370702059672462974627381118765438189393388580050183305075434308928012006031243446690195557299790469945331820916265656514178159788659798421840564477688423633142554910788150507586864644991852115769165108894915770502614827623256781827161320157189690680112776712322995161259822971954772639830715762046521556011499618263208959979738351566661757315659476961436572211466638958067425706162282586821334573558587036679936913239269355057101031448146420312574437115821827915835633196741158825150027485773615018546798028333415707277202755272000236862062972746301054962668974984573194342503636220339246500466326536813351074763324548530851802207728684231207433930577174461643845370223531979135657825118276650752787728719131879947324242772167477641784910860562458052700515755294411631611150262235892149794359595609224752972402893059406453035942969466774917056640127556983408693927329411247142085049490938599262811520606331307789985767671667090493735320784588775984942170441588418459983325263945080139742389102011589326219719032870508943760813074016249088971222142734162030823152545660910083329515793317244905969040636890904043968133834303990791766293391364635260920035564747708812431397150579891731650048235723905136903377695399661841301553633306732716089626999977037503666925168671809817358380456993965233130548309272972816059046081316657149727114477866013619239635336598854495501486191041838299559310500360414084043416585932287460846158334472485023700685898224028777898406910038287332230229089233025969797966033423571409170815882807552194654906300143113903498370763206668422806879326117994723679538699367351025518075902496063735392581678378775338708192846447171050186627655334880931415205476392633366729130584561993895389264850949538830491554224241333788376084982400669869238951601804240443425129358379299026008362867579779271519241867942426469664078141310703767266985717985287414460023478559750869855884579567107756658565020441781756235680996552883101775633120635560281361043186073643909091611296282851155986039443627296255049269852681407587418549138902833225590148115217397907226867184066040389952746558181218510790972114731228267689435255644770663121319279357483484993371729404919000617100639970637354376357745579677538199648506763168152310998087306158211652221708953294547866477949409387088590841154909909284068463589082070027274763755683032717255683629114627309697277595189313664063353709372543376881360228508568363497050954754581627691146609208434359073933625615776217449447102284896378423759459009588763724614300327255573630833424770005739606958897474336327436095573155600966868166324420406937252761506830534630489828082080368365419612600557824493200696860459213485122232188729204973855531361198162253611115715257720091791772927417499111206158273872255746675714372435587803416495929459474024706094531048133235058656030377780588308349747491364159746008967136889885175728573130762182039983442736134374585602566040787811076342334123168694746680126963307352601986479565906016785563769282652949681275241575329940015043751270294175758582007112566115007482121720587845064697192164494784859296169378188845610068519772845288448305712438609089029982908805595151563639764637787841503191199987693461558792088477102260831658202048141757141797185348994959530387647658935842382855644390883176765621468956600908852749451027420814999710596465044244024581269333805600205307927223792312131152073916311347344021422344763643284501926739790864416740032658032096109320677825464667643231253264113773057304548997295395976136716038503516501794123326421501500143229372205707551761745488019219118531996303197482343750309399505292322778940640340454865229660946609212553154341786178917784192263272883101970175902191926165674277955011507603278792088959123403060458683795807583831096963574168948153724664408421999001702306116351510842745762051354995797054995410595598547025656955826445939044921098328042445280861766435970704508650882152178558541804478951716906991076018972303836894379967826755079381544470114641408236670150019523685524084703779707975400731961314461041511762959072657770980378504282226852335696066739138128865516348823874537209625740361967320885506683463157912894732002121387804472534263072430718630329327185759988593246705263981136652040315626905482138438084066625406931043305146319662387855074095183932521587147034978101277214736862996277541399358401077817680212412013775154406290750198098909365516349413620462442396654157416203280949397493054020072966725180418906809755517146346895957589443894337539024714011857924920629978995856512858977616742461863870822644458759060044916624535325056618995497625912188406372315734330354428115898719111990325227137535337290432615740067835203890427193080112130972254612390198175240873989825739947595537517092371990926450050340532240488856417068583934661614546412654872458863787657326858572713374121535211694664635463970990592398842299848112639399304120290454559362255476026891623638243392157179296187485168268304065124986729689002340872919458230935276195501266580458336549579673538658345787246174338536062165996804379429214951384670203840140901746851841261274742029023722198716093990421891984840782603730411739610893333301492074071883878328188787976609676657654060475880317009525033775205998205289587174848645259063529035747810434953331441659682492447018560342855149052832386810418562284641416964654071844264599762704586925264725487675994196416828751288688058347640199539518584363362756836761231274613326257003978618511837483015996191746178090702517620899383780206721345179785884858609910994137510355204718180563654964229757756014180557657436762733029306653899858714341529300952820384247134367865965143424951972273267872604506017365632735149353252302100875917151872829997154527894706210394806354193392845430267723504803395151733281916039215846132873558814362335573936542942422832839868199449373906134058186141562377306039471165287312616994941509663505634371502763152585207530549326271327194401665649266393087308470992520488898728503059353589374875734745714074832013325679100721482409293566666757187364847573239163170640730315590463305069687659969940551809297598212438424990965917971019851487943580460509128961292790854728091771760600873835386347324745944524457531687543297620037431491984023027537155022352012146081195757877601132462029562005208666594205085111458177980222333194986642214719855083250235201999199191905348337704591675810597809457784794349693304050507723342801501863243736009046062926044082355615161724756202055727207613291450144486879841507723466427891109357232279262960958641517555403931169923662283699004214076816801531110291671786264025167389860469778972425949719629291597839090355314565138784713188573239251308359954733813328915894096895025869352215983034918414399898365635536386316878336451048193838074045445639969781921596182441494821140071177783820112491919465930542194334127027628347673765552030056026945975832614398647488255274108507432711977049587568646837827179535888852894196316425855555893645081232867422795732911052075067789736820731551774782120109940989297539267981677804869173704382119256625928607483510254844774178206027624364339516138227714027260752338300749590440657260162236783381510493265556436723324119499673589046257761725177345216579832528575748114641579035392742394024868065953432642772378094600341791657330556822719035592353746829536334294644977993327420794675227112421146253411145920966616545234733368428335560884419219355991666270210060563308112581489321872134070096342003103797421971057715340116291661838338338277317060415355212330918619386531681299337397474184811620966744542786943839432967710927268475496700674734817117488950558334662137357457244892094078867296895114247345371442911196283859215324503834219235960890204265094984731826357903293875123534427207939814376491935793378812539630372910789064770428053028030325215906706758287756002297004623433552455535798502232788561040350347970475920443765665760183832204547491414745317516444975436252663737330870911631863120092967323558698345175985377620781637273160285627969859693999385686954057758866875806892283337779370095419191908950887972196019889712174496484898622268389695924069794921869197095771943708499614629751783740902519135883375304520708653768984889144825875476351584128916958599777561456502979677392036732334470347024092909985030072475064994191656128011113307311814967593197342060897386733908115035772183767959930526863603271178952953841697348603197357067693047298972010950971339507629527193948255615365083920463241819894160853496314840169816424508238640590991417519286566425612574262773899613194150127833941438987979056826365527576176881595662499222170800155572559090390091299954300449765532853906583154116847257665764002945957301939034686947996953854217610772171098485180711895474566331365645801224659199545739337536576388303092194088912050188709676504688628786088302506028342156762425557347402505255286138054681062816849084907622805223672680375244499142251259435709791758848594646355830044951923116105760120226889846348154549000826995466873301584625989692506311597561312342886505798247495769141914330327914804533244934478451089564794707459680169188332090882265674983734726878793206934384209175505179267962544997394099370831818319796755797379938793616348812967524976687579789498299054486117015819575721263601851486963397923961713249200133756660105932068097764806579134502502103245243189725591598981357350829448502582631381568463478106873918176024083500781127570184652777218599692169995350106598370932638649601518210200518672810430482131457675560404219768323984925689473416263688397229360332852176985519693682082676781763009548383408574546777948742560473616211014267939794162158956796489815541124889318368921793714609592055225679674602630786125772554151279604035562841201126517105291800083478211344227859908846724124560861681887647235306290893086705434725545171864586429033612214365677033172816130263547453645538418512447575030667673259464256703065543699458504127407373257733372426533455688081577417349355054143779511525069891993570274119500087054234778137555955482665178664322885152552982236261338891185021138076176254148595693471226762427637886578905250132681839199757138303784476890373700686410393355460751792898643334270148757965028102124240093941944989110886805968717109838214697713631679258055198121853326591746221087468099255669144263280873005258435426850023515813880621416257254275972375872867818547723011261533451670702444123631150988898171627734992490355083321667785117842267710416264729736823255699581650085679882261907982682561636354863856246087386781379936718481030103375676117648413982586176011149552637139151224926401476929237617093737289713783040317454587881292624129889948431641626001441905518044468592700821761150903116494271125647792364323314742189726637091193613040346772335939571279528618735360470545455467297007413009134325714973522367609541859412716590312496354919176931823173233713543928853064684193972895089394759438220703124883119126484874824657590632514513122791742821474897758128443341846087016773281784145851077959505923496652698661180973666142135982987955913378597785328833733686841822722855791411730678155417536947188605439173649177052850575664419360572387100053700915145921338168665312416657934454200740020890902278971459684582572217079370813805242413338081427157711628181527839687950369827704853427398084388174578721121214869702819849304089338555842870609401082701142634659785959310951334505052304143476026262104032016571638091420270168824319503431365552297268002662003085316002893912421627575539034190614989736099061554125383018795988318614649654159120838843733737112805747384138775616938575525932900982613057074588267014705097627322481264697465799947058954931518224592632273374943505326330392011974442304322963175914931429109722401573177706271733148253159600643038262741546463780012624360096928905918068803379683005056546674367966686049918160351981842074765515535855424942286916544286608737616671882473414571547550112536792275510320889877803081301216939471013941951646205354815886685392255162643037808689244034747714364231581252493952614046056291005628364779424018204746775822234233050570670925122458015193303666525399668908932110619817424122579928001994049533123225081921557457214652445859676609075352550573510319663755379023760114548961101200992213479278477409833893891813269194651837751652227392350909762830769773271549153618365075333075275885203054475864101290454706313062666274571683344306507313975449595785448661806427485523684299840630412183315542609828249531592843365051804670609049585857685112325177597956212657578686586943511244258587350130580399042610664873067250667341592517903197153443535589883885304123640793565282850338507693984918927770749007902084908342466267622774788930381233852477860204535466079702213052176209648516818060240822490036963493020691158743965681284678873649293547136478859263480057359801573339966599257058095331381037901961012680028090509590517216758104526009686986294939349655181722320030292055536336993233278869250185063108494765176372666417784588857799018108392608164899842583366765671110883202163367311403530940555773327024594422714032909028505212931836801427251102391124427777780338633059695654555347786621377987368002806424661688755757390261619760981104036413307262156230936996828268807070224341567104834212439979516736791780984747295320120612774076336337668207984397121934806694495060859450657884654723933024763503272312658741332078488084956325609928878943218738014575871471588809941749714137165397391025363482909572276004869517443664385776453612405791928024525254860022362805749536651541552605008707618960607628512590138380681895025350719963796620093607408520678900522236031762155330036344521284210506857152172768135001637000742294263501494351232456456437562438882729079754791741261128897988964372616484145430107755882627975224882878877166677782851241407724823191170822713642694765673841447982771307086366029397401666657954297771820375827244333128862593602585651982161902324042705649049207339000260117596930921841543797208718366157188268436242823839727090228104142036152081430556059390747057429369230493147665027915348559033067738703272741411095010717451765062025649683480009919299628717833031709357837110375906674652680767196858134765931758815740831024878049635578720064690349340023167492075718926050005220545744602842418637573151774264247460096752222631408583171366571223776228945794250044791266231219813852564113201315947327399751834326253160272548487949048138701247677017273299432335929308794728287664779843674418252763078778791135500343780975703012942511064186211014428459834992674300012186234826329602654007748505232390233660126995639151450992961010234830701240219161316755475011998226696033056504878561155827871179218555250550722238331599384809713156636244613152505534144677315704310558186917051940120491275773115106492087506714281916930269851969995964451003954599148603718114735237888891430564895245956156605691101408670143294650248208204782960510165879400830828986683202239369604263293648964902425476291317070301603262267854445377386597666704176071536294140265114486898155697030273849078387858820229859852466994060956099053856980701696794673263844650723268106845490949351533843275228906048520155796518927806371678622729190280138027947915314748961524658143732360664044993312348162009692264106442451995922928738580873936993647640122010722302226210030941565495652723479045278714650666578984492224869378853064030907393929210191868609498464685428558967717164356024944090097884789450144783200713803221702249071772808065185787433362478431385048623844966971643551035529563521611404189759979556254099501549857285760720286224665682958558260721067662066575124643869903814711886677009934162970737249094554325841991305055372251149453548953902339672085186549519942820035285875088254769203450874230220756683528954895701683184257272086123435519847923110545552039717505934080373252351905258793669406651405111168207399476133313274791086471474984062502779218577688049633544741864422108161962675947473638910371256774915406210965710102261852458704922229821074829031248489078814486346237845650578814647035506578644976363982144666462768683930028446463169291098450822921523679216297999031714248904813067803127660845584927061824404687805568777970638558919916102059958385677098668572084593592442933202459256900987011566970458805447754385744163088087896778918583998266912088944238831930800847139153122624507969668013899274837148193750672509117662230705060201425238094109626975121566796794295842790521390929573923895549436653761083771103303104235031487529589240254498779735551705338833783299058874445678711838135446118814100267095666846994088941611167662137994857569736949975529546346032538691152409196709663673110707703539589844093773294583152051472451734421927737576051279119127495976736119273380547103084949117357132271590202213781827480489035019199036229460843614283177621021902391829776848633073860444086257907120567182764748219029203527731822362170801845178941302397507880180581109735858173508768585940799141676374261090981426361670963074318793833442811795817850121411686578286023199544810209462895955046159203815085833680812134556526565017791493132860228260193041122808158717838672487825561680066804443119924868158622589183370656310623430021652590968070092150449624412037328533567111835700086168960471540938927913594437579878525648395988636777628431536651145835723360237358740245275528113817899299648156102710915486734950201784449995620405094872794496275637179354541472272715454019324010125104656468849360188059482273838110344762189585423727106460095692554239689057713733261089165011745623849657877230566235265696649669782558451152933845792338486935303944245822542541374508728880522613040830877881420077107063111241560550086710114856908627565506703892098646237156451264670444468650327809831770171724711263381217865037803946638544991619528137878845701227928993867935960066246061650215625816044605246359511800660860186845227275543410165948240658736499057274884846638415618062760803006102978167970735438524365189634667752369696626520796445809271836795344337821101967584766485808678238028508409761477795421021408808375428816349583636072365893760410898438180899165060409280862998772803844756516859305686440155039922529495367954615291126794046252385416435959425860822866521712973654716620188217629854675161221949613729214362541300384425172905851619290125127799963813774217932848646014037563660681216486643715374785844014493572966342733238911315569575834319628070790875337612752735955575979596955755806489902489683483140796597725774658190930643225399862492066352813405492457887074314328777073544044668388772773480984439746807420069407076997705963390177056096819475538596233236778399734792626097393787739519443824717616632648620137836271880495128733893215578913522299028659350635195176485582216200137858026530540196587328032256927863550528532108224171471142019537542957091732082976199581949305330336266178017484908996304510592496556575171124919451422946639495994723467153120755248975709676495515658547823023038424300337084588723452266298251067931491952522071710979290509683757814989559462536887234434929719749381023535403549939770475275251720492436635652045851396363617559758115357381245492806538656188369225438471958746193516828331037068443619418190942689243010401219619646344102145084551069360057658578508090559486638651127643560739124063252801357551075960809693784833505036538028066319999904652436137940080548011223622412829773853897183231317784013794259471115437360687274257867547909995150301945547623694714159098350835759574202365067018168644485607894576048665225924518577411947098441652652013659705455247231072144621557268884955144858512355783663974698981070578996714710374294625002689852552994839302827546043369498123676101647555677858524310658233856679956469748319616378305960803338890676820854534910878195883868387790734975243999421413801894211906901865656298679532921664252040206849961447272934965773680701435589408302391688373192548117865488016010348899460373768035933326864729596532798243562153693197706386740046767950500112728145378756849411666735667254437103287391844715831511401530557076246354710004087139301504358021015084426653403632517244910490058846069986509755523116836761710319808291969499722860362290212100306971239092496943134446657257047551960393043987902652381676034281673994594585868810411338218152557026613607420745678481056477991972702485152580888162872292364917331212186079879051276600085930651745226299151289312613698310553640204050886655644456843595849672354278318744178165409416889293498065112071131486426102686325116982225896113639035193954167826416982237735460468160393757949816047285798926379761239570169374509139975505798473556515201486461895632132572586377298842688939374259626020057144302399569465726092089532493547950261858382653202815166674171283576114110679604302522011790124390471308408575216560061784757348363448720250995911421846704442949320020718365888692638647337733317349729405140745866137663086897808236068849451968958048855394639607103121602758140752541478246179800826107160968893853501379881982438085135070986877332842730567317577078891520861615892627329884849003238626535621950546348975201752416804175080003649509376056207864360196905979438568690255373363124469369587322224071220804696421931160874057985531233861474849059459320704065054173166318622735321069918603494117886801382947602487805832953709008986632311493457002329216736614986513199144551933112308522902747809462879915098292601751376810796666558097966567450666680608397401918662055342620798716167078113873096748019299214871789372740041321905057979925824340964919461607482174404691899771748488986482682690841519514300191174679923193044170058007355722680189620343392724483026625387749226538691205128618453911831767630408135141639263579038996470588959812291145537625935419254240448324294857869723945384126906475184040602603414464903129272613890823387596666068889844037723080894088044076166649980109341310223635848949293490766949897398050759186135722743157076912243034250753867062613234964382856626464257801942046594999936233465064870861082712793930278750303125179598077187712715610824065111038764300201272522654724150841348202617798729806264069442882801007826033553772886855842496397706803852600902780212558839599746695693091695845645799859052171610853246163450853134841064027856120732372677423361978347478907819759050606228081870188740064924250480504258739470207604677907515670034061055455294250226903257683686608133269078245950599376225590922328547907712967527796431147992811783132016146489300745830731535072885965917757648380554710450763065753184680067374253111738987471228164989302132614462627866408895830485399870862021976302569557374343434758793972388471251456233167949149060663589802472701075544751251487667209052727394976298241439582236602004566596090026860812843375887823328145058998052960059272029325648121290644411269985039970738070474732290909761542361992579195176323752356709031038083561028243669643963347535843774613677964513359293361183291941849898596597344424706666431999354725346089260957400355306278617014087674058938584119482632288547058357145052297920314803164732628467313691525641556733054422512095687466958989099865721337263614978199017992463823899833816896791789657535665031056458410971626289572779047695559846755457218151820079523851136082583322782793364759466426860992559833731086994800034792126385324070367469358356987869924745691377288165256136037780578719160881662167026925637036116817569474503954046629739811621022922433591851713885202724120059507970304736995286242780584471507142394528525576847503191824100282424778397888872736161497634245433841554338755823994388041309359259705834992011233063796507781774102114087534121020237124318743849856646794028502306741976581363987102928492555622050427016212387003407519067172596434824575236095064685991742003047933038270525870568374191997292320769198110757687637306830618633747180633609657497136489759035242547574189326385394616323639549390996353113722104825458691960652510358370661325049444303626810462630427008202051298661412269062180153585299840380477964328574300511381414740926167836056409026041060461666199077842886453242505381722701259264836281291916564357454602382459209934516485342729401239049016279030686789257513164267049046948339269377800891172624589196667475576904000124979561415112805813899780315812384613946189508391775563590829454508985545664865482094989814456810283095630969021444564130288286585417078896584681925964601993791108336746018992757511890032688184914906847012075425944303629157907375891926825528175173538543374205514664798951967897114947118433449346856813696580024342638981389184542512825637812241332215489671298821955565764624790186980384427928206156069979660782050529200323600051389104427168246202276949710706827279307371707866311204661636274053100209783832304785182589052420049761271798674291845123014723575505351634467233741062552417461660997608689672861877042521270750081327017532440204734606996802721449334754385709488763469696480158308803452800719083461697629094309119166718803826324146625974539231729594559737502889354950447529731149208600255082970521687077944171509696367966241528926626701304764037222088940894093320912569185409763547829722330567932833348269354222218229614460798999361577828241726936685846616665609289969247420380282846371786009584976334696666565919265571131287485235321198155828528959999538098833279860911694203140849118303291429697261334350050480958635811462745086935029760743324847242589305470038615797789063849285501519035205297430237989813677886328154304117172898496903219440835386380093084455786933774313008121914873987973235241596111653580635087694426163012204064189820706623958340562641736435402697405050572073192853192122187871214964988530131137812408937450046577839211184114024938259427144699857657729459237877900199196718444864148681176163773440347545254429627572547047039111630920150809137175872466810997902812646959705092444105585617458301563437142364700615260389270773996387777737913350053449863827217970280609546110302418427347427362148573892309926291667494117423543983295758739698645977237821051135828308906691605015660635164149637660721613829229218261877575313649158892361409807119264388245023693949378183424919229909565009940478707242372172452156816791868194410071276517378337038769283504263528857789467218416306138594060762906255437151019772925256276402192677668693689651754492024290791295413502602826015036467405295481087519457677034289882134316059314111666252812753172110856289350118787096361703882399235198596477431572762804045947650718202506326029106178737103561502657146440002707921806887891883559879319509755106043026942019313538257547286633029360742013384741447477556892955501334432841478199376492439937255335366909453064671188961292929156326555164391445569929364682893702078339169447204242177335414959923254459230918414948075468102443739904843761556015124126740208852261100662028030179662199962633892116030165357634898750380496271640796948029949577551798015891922267446309180875918421977103240710252379620162573196031118898294226742085044244254694911156907063907120885514819894521072400071193533824813925123383372133988516341716003484851367498525654745438907998320355370456049933199079488113001849503943226235710681439895821120605411386385462375154242067809484546261367722961729258038352758200871878258726463020703294598045312049806309603525214900329643066027287222239392059503390562751457435315273171398637320657882545954866127787490117300807742812719851326219209781869247241342166444283780364398545256046086938900791834209248273564461816596254588631936054624004115047586653818487209359534116498178841567488942172149375017944240816163670522488563472748765181115905392507737615310142348410565183171678419205431190877317820235017166537581660322597315535157602253784666878944101167679048090952308298415076648514783568677572200572347451536338214408296145145323059468465609450920910244385095581924033807335909876486267332306215921903011797042768216171279904141027373791624668619873867526844979004138535441079960590285255366497191065491959581318093572681664178776404876648966470096918327669441694958276664002836272670300903586469735791203299061902996579381772463582699967401942352177488075183222762105292354721215208523551929920679872832847897961537751470307539164396781431683126415941888655541546258065142984637978933278522018785510809981244094298979426693406195901711305400395500186957808198993031437527065817327899106387887227874872673722006588090750603046663025769513602307621638652539228911258555131526110527876139703932666168961978618502000855101907997839252938324955695441861694378353104809408989371662259408537212656175734272319658203861581921529873960810999151857505226457793049983931287300724658831337785720756216428351474573104257669888033429931949251734821737304678072128125082255747815662565871906432550039003852763180105520976314256067747154238388420597470123915906002496325566246727247934439792742008183177727396433562961311297523920118332137456040917139013536316657877916651846836262088435913072387165285568092087094494844088533662482155422021216173957155223503427483163179252227359838936150029296256484060807966554827576060211928280077487170455536224050501622608002306397807283237231377066568883978057096052276006443535868738731173570215960427583862963624578797528821322175322635446324666893210042654902543652872745839416099590220757095930710783781819747705513818819029389549895377111756720058859492080591293822334126381919253521998453022150420311201808166449245146690982507768829941453036723860355821244551629550152783463954601087060443287055073730711211748840523520474661192865847822103330763160741948087565448505925741146703664674163122352095920659994630940965090091465564298318663342303169370269522220719532674981708286135125288590274192592733362820816839078853732476092212559026424512164110114876052014250959263930320035372597431048556280148106954636107132867427524278241144337486476288706423004946794544102712729027534933363677235093931285159473622369382344965006030500071822821556655096873268610568743516894628043353257391004838040978915068860876512452581235602851130502872568556219661228053039635468843492002850230655480209060822163216189280415439155991419385397880912234049800458295090960726761984121977051532509447802789761714602835071885396800780466927831905689857389142645124305328537806328235083654034980664284554460162829421464357134602311272584674114083169772721136254848152041485259658666196601768320499860197471545039179493608803100159356331383231138867480167493306076324976409217555808208405119553037516646565276648666199844466928156882148360633023385938397635980672537108689833413297762846337161536576648025806523654555581626003303022353734170870035212312578281852514971275272257203933499622952312571830940858180199394868467213879473925647696521341458081987210379946525278316911118362846510987646954370165264744546592102520487976794796525404020827159205862690953728348689490386956867655027684209305745848694795245991928514711699735264424132112889872862224009635703413445782139899112496776027586295757030120469312908073173685818566098679418743771735464596943908480039182322809085926802383404495924099156284810243855712874330575895684531980340140015535636802984894669748032431992729154518356841858814280497336235528224898272918531538439907430605579344838691345064855059442296965108282721300016188345298795932860105925179418940111079619979446094867613656354588848517489308457769414774143992071537636475609997859498066816168708791237024792668006061188228258703230477582348736974903645204377904160202179890393698531287582382010185078346193676295965836340206708187644953855942358801589985691904734734153088709357459379843895809133784662586490123247611952182530677652341146942809633792524593886510466005094042700331268701643825460119859742464482769649291411688735759746079558043356675157707727491779795540223486928282720391263554594142263821742856370722153921219926648606795288053461413972278352931125910848532962007461605600561726791704934592133908258455676408952945543791056698179345807818591302958271495251775498763524548346756681178934818509026779204990089649875505965237048083289979358309952514676358513937161658479117744853484132967891544757139961589206093543578459822346080334129274943510187358689759748595866966379161916320672860683797437612937020627898902765289491820986219020572829355213629464741757056102642342495449877824107324804856916562150588309061726612122714146340694319847012133841188985602943354061345812630761162840095045806291854981572456744408303118060808923413758076564793511658939557678838887080749461704804244278434889826273862892652134329825265728206706298566682227619997247787742163691203878332039034872283001064049309736571911854499718622860445595045041471993645211986289704705148521248933701640777416657389359901553215803590954577200657297355141380422929494824226969475975331678851764551904567411688820351480407324575375456966006462859623733271671692691495175021458027505595109507569370068534898937973150109295881482410389771344015755232922902547324255620748648085672072917362633546236981963757170372004910923383124165685892401986069328409546242242398580462523600691923102321787850539722027781520993287380452971198766066043581226075501190439701096161117711445623971272202364738890817938355609071435852144763071031272878403732845225773438247369680139600440649679173074741365428028982455664734111041407789122145325279803015179836685644896792644892002608236465182167033105934888121768247841437420250805110102277114623028288651664306122981307588387724080043242568392910930651406066811236598494727638588076527934133523209383639855361486975592297141915120550231351783344597718994557847126724865351485691878736057699148708814531714602112462406461936394675654939016036549801338861929197910018730438311607872763538786919956215433405425381074614983189726757174456509489486452262332501557297727100865841726110589378251482122321237622960030116314041427613629117077452678071045150250133119491998661904323353068576201647163906696993941268460424113064977827961551899158070750031672219716321384778057221315293016525132144550715334843787368557083408925417279878513920251878952116590159498423447504269923836059465805542244293806493646909109110479264217025213498190529081301586738345464299451498236725335438853039860294944751045285074748401913719228788236652572571486820772328460805791972959160318846008411164406658554663217871612071740080500419818383111616134871623009290614998758592648295372963453972998428890387743820151550025055007508853992353323535882166395782840503402823565063673710783913318025999224039896894219885160501275938665867265682519610746833095388694495145965683160765621810299118997673787478730086348011082078440237293232345107112899723781733813628383987380583958128866816804798465729518843753442307015109262547322918140456295916542474300887598160959822155504790167251463892225315080571071349483893183188309898363624219208612358983284438436111684878361798651813157127176289931632956516823305197469853050779675819124592190595631108326044769473044778151351559501120721602576927220028138828704564502541368109980219711074253205036400843991020259456609669122057040034022466784292538188496909622646989530599391001419944225297429884408434554549510619732301500349246309596694662879636501138222058053950313941400271545151069834973568074064709457833263570498657322236666135238720179441285837604893987684794859380813823466587780107768783738683554279917096006349588750245155593484751113742396710196393369256060348419571353785171750519275067503700348602711265794125279549587265982918638910146685570245529403888133396184492439337297787302708095027928993698720417633326006723892414652206923631335626162564367212803408599047272473738624404794306537775585900842674446954827351748849198701264069962092237586771446651881387881611175854609889367840909928241538129275025203386984861076624028872755387997881288924166595074689692633249640773438579781248215491219820494279427540299770693019163410573599369103218581540041347297239631851269549380132304396347319911453294957604849055896829953015722149789042055174219137168402234543457978432616301822895978920212844112970978968322498045876927693127607112267324427243228156486735140543184429805138093048469808816589142167835432894606098797495969839728014332289704522650243267678195216639377744500729523493211355010267071814581791508204481512210165099057273045375919377001344747708780072947909184746343951179504907514642344782166612297373817886839731574666485611215109653420213172504474401274200188633781258237847168381175266808674298132640951310936944376189546025237276494709842059994490433580464975709993168943204307668790297058188879171586876187798379368530373553066966044647081823434144709012419852241117320493408689634501899558197948937328991077016276293904833161249606892476072145799604794553786586402173791636567815001112280870592310192036149036219345824762860265808617264429412547217780171338938843463163717512232666239314873377061712389058247749671697705750981461507188883630919016469101545959363051284538834132962848899955028410144009394897317363802016857232235254568753795370806271668564393946605806252545713270325198670554270759084160227051626353356336445246103473350481563211311597371958052411566405968164747721768534030122987416106673515123709694419247787291911285485351126933375829741134114599726823062008688327139775356837347792480459488067786915784568347024231577413416960542398886020316294514210403121260091684587049292140796859967589453599281682029886840339096340060555272348011946835560756780223310818791528750018736262654676398304580367377260493513055844352013763331257563170249515626024914752817114614823692165548813937215531418969078612026595913016914053090841388399957083118651882736669281353555180567373357451000883491992040500200685136919721675305696492827352774833014689945461079463797732195077294744881821681760787361995912305904977175782097914732670392836208684831858914934791671106274253467184564091736102910241506447624206396314728425134404041769172956159403615077130600425660858361899247461248608687099731291038184450882616448544135592861108450047992270172474063149974730846191663890453026733169780960063425259676030437827474904552303666583500202679914188361316947275145610352030681875926462003061895421286619691994690880229215731535987666680845745660015112928343237983533883555994475686192740335763889999585717252456916203732176101563007158966457622828848297065465542357362069169696871579077576531189404439716352464514968675984235137504602451423826180286725074632784207301575917885979546794165152140602128380006254628555497881577176068384509795913998074830542270613376515306551307797848015905149783116681788469457351125727657889010932815586493193820552428450268346098997832480143037825851666190606202889156920612495917757922488993800234955030485155050634733205316607191268099819790395814054126947104625395548285468330918410212004632810297147154498099647931569243316512806717635642647137309269127941125669354540934544393264750150135861384165752792305996860258188634591579666376225058186458637495394371386573026149647465288299580977102629239991759473231748921628900310994519280020231530405432476925152127492176356281931093450494406181032350939696852602815106799029075082182849634263741732323977887430669181437657779994976268564613953561224679378963213437979337128671986758586005506913564156134731795893565100650220828990311542605549931043375741642280418828873270308144269688433078483156104531285445487373686573077100528333457523514702550590821990290674226588123719520492329151717423165051378697923518095908740627015144781221898118932875060006413154595440733291437205420249864823503569201154765262370456683023320269963228034719560644788036298018264585014758085133535193154707860407868478355978398857290435126641140415274747831182048024745517224144273298335471044890551375047343925904860633358641713337547902184733559440983310168585042610946767673106714202085054825522348540545683897826673138889692350666442390851741614840822887788797662243432770281230301083011218405665660283814094139035827306832739345128494768543410779446247647911203560637483972632097441974815867393396226366810284939753652086503357437826329809766408496731762955114806696409548742011296346400074176511426217732291910922986536516872468516898855972774839690140774467229537659399122587308343244114917224567241779283542950204874723222581104673155932773365865486116004697731536977709301439455481661494470970060895411481672796054977750421601911783196857201692454977904892747519585189439669428364358314748722876722830482698962103941046567979272107799753026117181082613390788588866436001266952028618333537868655507464588323261977183808430937520844618598704379490752168965530325902797326527599653969305708245173710967980561927486257899927935222232630490510269181281510203508575033596166422078489631773223554584264496590421269102084684737479742360690302663910806066467154877458048509149525706002019388752817726909639887444001901419211225686884762741367438077462919112435075145944551878419431047664663317558752934219211660670051031822158404694629857455077930718656880874651200183947560481248042307044133739989404813286880161567454608167130203265804612371217830973359120940751040713028589670103881072692850591970339174765992641113962146680221115096009966022865459078147850496977455555149126968438736012174775094314969323743301782673765401158380887347099280170075081699351322658635245697952117004698762507994437438201103142205012209754368389493707695150813626216068981756390681268960334934530719558886976058424666518807493297427654008151061807099736246899190731390656376936429567483852486575741274736143904666466480082430950150613764048787160729806168678004942228169004280044821469426403456209469088589366251121448232738789300067713312346427713183873603543098306441902060651298909660709726698195086628165354324007237109286979926707235971547650822435782743392542416866666205706285971398488142400382818207215394821736948665723976231787796903469049475424232412712455142331737847976235380785224699981128279884082833192338431346624765784520088135542840840914784657862920172412739235582290239326350715285023234209673503987166273676806029085332638814505815532820077503887465600252707568887905882085243260244665796910186065482066006576018939133836871280844319196449110987544616591497776904297403776099670563327436975046211967841920886838374742618039349565607521054754503944240338997517606200484527289567821403793042661403831384430380577313599315107215699152707616756396902845363237371944029457580876333900316253976687092150319431000291529853429331773069176495561498014380863323032579180132164126142956661098909425381505700858726301875656364547907645727643845533102882488890157114990419822048086191397579910061144835605376150781744164354372145441983226337290477494511407770198757473343904713309958698753631183549786858982534610768901269710032078472466171955203805790250117575813030767981975306348008483675539883793721170387325099007889291316466932483374936088163814962521164782134664817459812511401439673133406385676072321998125412669537607910442778789325871083822584504356646485935624176906518451100320141610943963309858384171719921793173027256595129674482447946849039933869641853555451367739726472735097908406076174708639258546602442956037811853655127115151237471772013460988706502981429398601547679390087237715441680627744962306445532214078489096495341328806777264390875746335007413280946022727423865159246211790318649446299030035636295674392997484728274061210501693987100635626579129435764544177690980031100314919002246080017095643092824218321588558993979447823288823788532705533177316630001711245672384557247845763271877486014830087478860345231303872962578579911032563446507377405129937987509504950088938682030673644836551816390048329362469267557189117179873970978735901656470175699176652833388354653332527558983259633830815873136441954900111893582997670033280730461062374145091187637540018249273093815185389920242958632348383374823513487711791164774241643519413028242612635997256289381775581874825429439636530984147912794829877820814613384976569805063636621534667255127779380559309474191893101401771375103873474549806669123252311006403005604631234368829093105422369592998035885644402327073146947636614174612796963282704693014407347610541583331626934950599819819028125492340362103516094318679274299980830285657625797930716610239694834553915290877980715872266534568681663078214129944416809780837995724642207176048493586918510405039463690756346789558740673447433692480468657640732090180694806266221994159058120074964272477764661066514741863018657534578906357158162967926411456672389595705367294659616242918401653701746034090443638706263738672094220070483930246556621174452219829447552819445150717841951612458869435047530091794800787568512958002721660535252476820697180704809499622412949255992801029947512917977211921487658321399307535767697159479564788630766869690116815706124119874129574299258855934537249595439012594029617913871449475818764561805803697438572462786220509166456904056478273090893213150777795924750807259250849335933718448739665918656074487173641593159991871740565091403318580700336239071146682572744828592433782468427428276060546518106721171556507211590730241073149487625539727013636688538340663786935089099486872362237170870135895759137159221926428127446671620600665759676016514732978986050322073601020071676897248852416038228897052575099691856452071776153375486114882318095201062971235567804805752657694155475064417177055617077589112891249889734462273418235712692561651944806386381033244261562418595499155412143732722362348758306915999844067140817477909410073946299044560726772686934516410797223220228056874087483881408727004349543152770317917032031420062566475311778338097377424683433044989289461023673315265299370526625027536676312927001375266712339949794121433190458235358623923457650745453741148008636434074001784484600307412640930868214869688268754993319510378946927256112848121112748491475384698538850453904070867311892418078346653244891198421840163055912163222810905223051986751298528814860714876826093229031010176916802516979070611275991526764124578035241561193932652243117750479252042410822249316120875067857526942407589325292669798288317360719445629302005334238064981842137291020864810173728455963683415389637067940325863481250737511041308444200267544064096637061486572385484150450470128420213892698408330725734606469988479616364826219627452758132038719739700446425967851642506443884008006634646696233722232453940309178212880144560203508600486731482477225410786731386593569607661353491828936376919964908970197002695595159204724643819841818897158511420391713640791794813236079921008730886405324907220748644035894343006279754756910876347346567556296610953103284842243379363568119872493631150342234921550116394095523932840410549345141555228519023844916492399921160297864275235585268453469972452484054162081489017261678106487183231659631547471030130632482318912600881234168146601308582866289219203070224507793915721665303973064050598922578057778666684946725097175532187771116564039927115919986010527838437128908597025544698940683385829126639694658272727521076054453307527418375599555347878223882146183200315966462050526365501821524522241949614288744143289057066064149398414405120842208011841610181661785487837102400483660024649787012945392927769123558477007577792475850150706841388838007377730922072256289795616234084999949857504847363628567587275523297188119473188220124796205850184514811817723566721852983630209446134751056874121885327662963035354481082096430829198673329058559637387802751900543325899279119820248604785450966412297640168189520422293042390041266292283236356916599702972647774670259512569463305338574624030003012406688303811712435209913166308446694931976888284353484051514562184368733878041081982138926592372229110947372745604837522719043328693229340282527086413115260138270854964257917790602449628865983695569286216936498072450566628952560039417280822696361682131686043025568506068794808790929556820772925868968848200126537890798066885928375020916450969214767399409070413332713295897998808952704591082320506689807527506420306994084537159417446285623942493805368077549517601601168617592949075589432311111020759538875711065323495604588580653694390456352756849906388653109268762852965833679756323989697231617183904670460265862102425167198942055219229245220632320473306000418134338792485503215308431227027891690575540701044889670027486643717360362235848974684644916429522477983623557700716488114701107297749172751257325478633544895364480992435046591413911425430182996198146813991584849530881038619840540782143594947475204398653389885197968425181470769178061332185557292746410644724156559173417272861695748734586766562482432470106821259054213272423816998354828441366133545669172761556005647483795772915796600664546693658108089091979126644750891404594073325614078486246432318567069329839272939867419087426653916807947072576197304447067203580244017974637194912761345253155484726893614918390469605793032943357914191642552313851426092011358307364665279722579546624653873665820358457513871682221123491712905443202454673884354628770673382964626962886449107748419691082836099068854461940314841562876237031113914113237065932462898721476271741835599288409503228037589932283408592526467345141984912594876155892813985816483551792278359134100890559833292547210021499191272018650548766144652196312010686448279117682273542840736857829094764398370196707257483294227195549972910969357631634872147875558959535404346745590399797347162024102919339896637757325671128068874049681207221390051047682463505355315647529475732913608765637134894364424456937495700876657575664442064728002463492341059203730932364907105294643954200118117827874079613423735930342200782246835973972781739918196318207906585114460381754389159425632592520853693971182476863077264926620467482271002150562521182952379024267383667928614104112971859633579405413269238753748549460565774630363218197883229197116221020711702367797937158056882806965399133559333386825588868721653253558663586396076333334507796596387555579657721295029574293747597489515430986170948238107443851995312782932062185550724007226409928813285127814845891908481020203542486784410495522992111090602044834784613792240141190226697526607224081290771918214655611067176101531755433213960628707965890792556575106540139172353284264919169986870626409936126543562364817333773815252969141938923346559857414677771914104198397326864111438406939749887351159999997784151047190107231840897698997312611218837228396252134756706329526921604843854066811723545566588679521499630397789588072191222229663083497872677499028237661144975600012786441206128457824602001973404666528185894854344117413775445105339798573329189595534549690728868405267126523012818337806543822734346380264334298072009499121470307461991696735193017081747445261100928459286487682222600400263400724371812399531534809718479213985334806393744807586150314172569361951257809650480326487812143597253781950201477892788707839999480465903816981098742288829357631546302535954076186856618652128850182724862266240168907332918424827861308137657380214996317656460763106982848865829475267016446834178407152780337711826359722519551252048503293054875529289269240542085807801583382603705982173462538672243446988151516065924052206279709099982691850199637850819370538772423917172871958956016047662357662769136674282931972474038471633968520911227721055003815521003195068957322583051604430832036607394123172337586546014114499592818036201721686087604252325969749894224449223925757929559566021502242196269699383773496713000429316295830198793128375495889434880458504326089065360001367427476483921958572396208303405919834341708914384981724699334206099330568541914269185250652681935563735764392943221452647174806612159581906472338979620375745253871641144418473114389576462845671276534483346754234039776522984871577697710589412424227528847889342395882244594509300748977669711461284185634382160223517105500667213761892949303074705799321829700736024344543633737294374044257357909328266537011842648598579181362279796346599278844656726181475943050568717627242914675950860762584111425706412801102224685349018393448821507478320348757178366539477900814161627288543980405147292154300841355817547057547653230076974839338751948238961175497367863880256681637682397839433705999149992340408377566913148914777805105660499398771175804274380790786262124187126744275334035370847097085805310340481702521678569107067896509430196463765188970621468551257635212923895603268375045862890917169136847286632780173350470705007203068233883280785210942081203206532416017465019485840727355629478719545818613301229043819340613931973180537107154564722060969933664226200839865014848456527603101856191718456009739606637952257434367541911769661354056945088976881687813938151084488526504770922300447320792478444041172698998304872814024174003029334128238694341510068362062309587555828208057105701948628638024639031271625817784484068549813886466175239876983045202223371473636359394643173087400712616645473433155934665061903808761823963028151062067819205964561786378347744431929103204664459808783163500803271566662108346239006121220878968140721331887168654558916768171411392640752718875739041356200805112700156429059380656145253180596829999467294057669873866229397161603054650864364846299088790812312876459675559394014735242635661655446466520589355664034018480903865133012187975082277243416038426316928562577739866593234313993356097009887387009935131835252224126184298031996415780006792458517003864736021120850284455606035173114109376545966856425599893819340809512676134449687149280026841103390084284772682438837892349742122183136621390023797989870301502392075016035695951380874945574047768381815525510839208840010809978471954410538558983928097825619459329870419726338085311252376328363299970323056678183106317224436034217195696665539682291501847850931154619931566456911189172053090157278973050128744908149242513234225437127578180436634546712575656319035676493479968732913576609769198844525909062870352957248899056077067069008917982302981338879946567109799802931746703029362072658150824286416240250801171167208523697729325633102089544388342949657218493851127633962772475851530058606552041439753851841905996331422157921207846348136235506744486116732956073471670910245483528310971342416327460196030217937501785901229268544492948493813825473840554764447715374690291277194423608422228176201518691295527789543819703417166420661172177799408475546660806196782918204515505080779522897384203569023251888348832523330278642574427810345526251118117410105261161123503826584859217910265964265341310003670736518118665628458605117801858854382869354669960606692822243416123060807866569388630157821643267260405430630334128004920899483085773720519892312194595920670289502877785782712897419649221969780595860389134750817930434334107116692829057631512906986878415221130059387547084383904024281021330309075828950168585450328998116108934122982606787872371175219710453032630671086146978326274543239197756755638017130235485226898134814015859656716323285060278852213370512250532278134673591327594485803318056753581117889919077153390386032331378035398557163406106734564513276628878550064019246954918116137988900935070109129381304508336099049317981988089608575422825305246635844934666592486800820054620497413853669260006764005465476894778847801107477737446032228284583744631878796299198665640544640457558144711276526399330527282749445993298017940782521854891478115006383552386744044337203471293291107280067171696982761948023821742150232487204159492972147387953972078049622536486163118576246842587444691868952903232978821371866630538110053424047940332864628792404720140139350383692053678142251241746959774009475156136745324816089499590354740270376633834286515881329109981997315632175411849076648604931790238711773210636386695888392674764381176212379774309375917657305857243832036690462288718415361908845413330741516440114081871040456057599974327006495406330744217719072092760577672328706845945849748649790204299515139358042867276462744545632839187908268394623413854666589992131164093735895657113658796088580900192360866752926866325149862001780422616816372598033016137920670688615771138799709391249752300758745197503547667313486340216930427802832346651571848252040515394225926337380029883788373453237397291024823268533413404514139817659885875708062682342460466987071800756439984000651658121604134513146788681728436385632873210738695915768640191015260354405729043492546732287731291858234085307196512297273708581627826905069572234140333451895788200344177181910659414806769686613480032060713157790154883098145306646874343509220529097590184684544139276835129853122020622876834862003568441031420757472627567577093005998928156354899700335189511199263362917904819139856270207389175539788883034845422000187975019055398420217998257152632776357964786311628706278766150641728647871336795769579777142055269331757085192757653119841363135787923888515889394452574042996564943575317694722678461036006871764093415290329649117649268460104666710897846571280669548611056930859236292789950349149184660917526975300407327844479278648005139987165532021452442676422656006649747050164142277247439178255570247172522641671654393634401811463277816246153392909676075003582825317434759431346353593997707535379217712593877800086923144341931852165787403876562801999022569500786888239961559399965925869952476224022794567894410084468287034652580949544316583212785914461986182801022063637337993106097540086282211554899637553614781352781231531510255676408583961373233937106365927119237585077359979467462743228654592844532920051747731315449397199143318044972124983113278419855702868265768780088160902938745583514848595394991594243763429810649806062907239927861349485507633392833699114916011926404987011305509432628655454799172444241148613130788271611424769887034569960204121807698883123270400396893321472276340147354677832127737767868777103205639293859504731687559792297112712120493632648591541367378741160381872973721375603774153052015727476759357316736823440279808056676298953602803318104673951632287571377672780104114958743989362410429298266292730809247616364249056565278732374659594003267095154379430874739277963923460375332436465192010954508654628465908958134155679583207987695913509892266352452316098891086051101954506796490309779405460209051890133661747914691179806260109495677880261495320214440998179104163544920636839672427999032979701029206924652245185363242980648808938533178440702613829063391041039811744112776977337186199638713535692079135576784305663018197291058529838816147062518811018954914414821630855719541944196050095849977668934103319436122513537480890019813895934659237328960701572574516145017774446466329903746957761583830123875201975066702993612219883413595054063128563450676734963079786332401959285799031340904150256429482766261729021050386974212574933076159725728968012441859109686590872902122111355600428179791846431141400621844192643407303056403459811845506496029736661241744739151887619501968313028425483348901082189966359406177300465513692392656341517086698792730195655555077403886548253838241312712356503974736886698811786445489663169805779416893167558980687180559996498911070390217603203829076469430035684773279623327679958428534507491814353945038001993848037321004028168840368060972303856644534141825630973927196691492797127218425404861454396397251216672516093302152016484843686986978734225010897538913001501723238311295308702835482750210033312528469147356854666826724706814607559006107357795161213544607415354126591917940980489436395783802808430993839292934262508966762720876487662838437813192883916689129818995816025435840470165222384358106052586496306477165227697741284519666782967323563357803333651513505841098069336775748465274194456238951918147420420036479110695560572484129036263180740130072254870114559491172815165524074487532890375997194124025747240389491726394300112924442170290172124360752334126290223677521328395959505787481112255117615866914204620498214076059385782537977712462069316428241357309315643476099379880737115022960887835326257609712199652411699336639040921594253377031085924982538733654286891437089979686148858224565624966165756386923441937881945458836151623344485691537519638498147393188682458465890089822172081898582886787508537314816272611373109285080172763872582401379847159964874949220250288274498557808374982660986382912376723690257485127124380072881538663775366718772590288432989463137951303268541912145247842847934859247004196929339287767214254755770785470151135882231383980708118930393206349552535614790450474409528542462587819908400397839589309966928113077439898899208377007770862193391645099375211266930305718306145162803734486106689824444278595881623364328551318294074207241090409443891809442667986970573558814629257420550071430760858804354909040829355234835333671440888138324522545636185223905662738194782176581260048054672534344313773609754057705853199998577554092475536161049598461050144471175236778907315342538734144047115265504741004926239715336788927410921088414963119194877669803625116659281668987670372300540863885075351437438777621865359020187094381939303896533180342171998803942962887461505161768454075930736539037080836182504879134048311082151222046618925259845859852007033410350734791245875712088734123333314734612932289187831190880084473698447617266616408527863120511696408428441266825717709340346417039302099051855673420549683596196295444861839060840580774170265381191207411739413079864782446258687990759570473769329065857326955383236178226183618461462801195988052319258052143284809535732007049698159188416370030176329995584775534014047547550421946488770269466538898276203978136118102740677830413827229161513102943118834318153387737059697343780643490250154555148874535465499775167908299634496360836039233748034153705979610159453144172977023704925028732543462919570736095540872519543134505905861125544068566630907176770438624265919562738012475336883444022799764823402098949274773122337933247710616327614420452908374074174234721179046077587250258638327111427011859594277751336636735778613674904323208579476950126491890061391164575057003175557699731842350558656284094559719618582811643566618455390241913263709352290076984407500453884388241984457171227995711489102568730922748884215468514642340870644875934212910291792235599614897075508574883328473589210534911614964206890147258580244839231027431612734066741182065555348672698645681512741891564894842562700508636847009660257055555874483962746291406044663314567278421547957956470599664172658409947192380408920149587685607187789680891365285684856691560091568563038804563579471891490038702171569012722103447747673464734216353232751404914897388949608094126194879789525391698507349994032224327712740655174474128531146176394419664311281351756804022657897082676383350448483862886265615738446970073966745522823289228410507116687773959309866190452292308546352977388818454765462148632885949315551206578668355803308793343505884702234586952784561854639705840919173495914042636991327513576329749937709031203521337772765260470419004669846171847982696262886259568222527022230223566891413344630207338156770894611196396426845390521749827286711523601956868464554415491000754866284704731731977749275029024180499947366792086427472490736185850330912293453914160024835735469033193353343467647656967865445502386537408689972161754015289775841234818789806480867243120975828259041019201717806819887851845803339883247362069363469433278481217983720186874602569218640670977492078398445596776027815371226246403375469315940505616238912989687913718117934825745038133446911908721058106480664614776377712306727186316685550857574789678012686094917854490558377304615347110233147610537625340678688139723589829511933181851759219051073311135468902908276615691504861794571794671258782840376046217150307165352180019378898707319643049210309847950110102225610287381318620370770367481542159807239405939501961507878648624241593053845003813179653776859366906837698278691635650368261242922655549490592828434692229031746319345041915727810205673105698776943891288711338889325256480017093972860077572847037873348178977303349195508448425769937501748166463252986387336164348365721436645017726618044314114003862958990983006118677103270839294743425341248822786822408541544383017702935150622683323978028766429062569335449670203059676328016244586172018676979596315606159481047573483306755714992753429249994082048710589299645279401656856764800318992872819516469200249119350616598418797545239831186498350884300162227209586304608771380574070769297611574206716695924604317948877831270721203595634714737386197964093367433451284080592596717819277006468563930908793493401533086526559301374634588384331189462612841886194830283288503823109343139622331637305365176435117292563671348158236676979286816021488440630102732211939573184041989338589553394294609608037080169005246879453786852617902265394809923395624493176126157176742927541702570116324779300006861430335727086546318961439125137476769072565694494530905223255771708593368305396059548769545602502179958469749565702730259798148731858949047316933827971636454108922051593795086647369002030616827211078211812181355850603968686892443123432143273065653770831981756037038446848069212952515354727897047972103644632116244918908331069757746980230456186974931164267526818279605776048966464343508328358114540101419960915271192019877540378652504044382848730691068412616583495121270522165616189078186372350758242833147731295445803634605242790149355875472062638990498372584099205313040164592768186850175281174092191839965987093522503595719644835324146921604798033495020160236261818345102515253205999152395458240644287452905590864012553785631568369291496955277168898705942560621926193162683116977588608584729271095992016500898858211871207790798625561294890091629060055724796690116854006247997102617269691189377519399913092486708258729986572723497152982079158465864348977027457971427634747878156915286567574082282913452445495844745744256901080091859989732084737572686338233506891170559090300525977842084023151703027535236997502253758345308114954653883321606622428031226661045104881189841142770939526815887192494366394466200520261558303018002760221716432601665018775586105275644768893803955112208544793709484682428281450590811847442271521928879679247933913931269045230647158292791651175797585011598926829179460365223853500681409576595756333500471963661173409434343502577926997411163083723143576120343581861285402204436824391448220262105378975386214450695344956282162628297921556968291951459007151756141058172083213091200354446367422496535702301240501536135598609877867368514405719718518611862919621564898475313287154160577307261657913470178363157934284322869174141126040583938429447662871963253585486235249950312137932079521946676283610460487266452942813082900155272417765060056698422618193207851219109617952705088198499786227425168422376788203385044364076159581920351414880855757300941224685649114126330364470580778969036842123832736969917898846932921619337443917102936556428702160986954667877118578926167364351190731593669256142883993980354484817167292262253905696846753489795093057316825480599719289396537272809967218234653817827065946636065543924586064432586791269824527363859786658622737333079840613857410075740318954052369567988236902727863014482762216069983773931602272003581501995375640462121057853321994276971697193678268194668310383268380515613469539906038834505831145519246891171861718783840461502362123942916271778127455263109714483606846426269052684074619087346052526649023643296566629974180991999420916051008052585911245581277092793384609191230023827132871611026968459489708384076310981862846723164225288129240292302608944044368435320510629096059179586690113432670030999339441709174802382313930636644656209876894043122332826796754509518750559530023239147219282159696175928232172720533999241182448761342504848172394584995858348412469409735444481853280987323281406997103020694284740894918713097543017371087976764764602796854477485248216171924917925090108418785921831708453785006455422623513680004125937245338781900854681052602755994750238611193518791071899063724172099916309328111676518230520889353863734635269332491279235113094587568833969214376179173857845345128349717382280783439226693551088067895465563683536662319266037516926784878186577496120175248161699075265813148104858968490119953339281627036241427808183716771303890756290654985287877998499501201639015864040455991398210175313653458542765546730173504620426764323290849688132781731866966019467297268344169515755129183832090585863786016825936125360599537898156503984081577439368546578656181381999668885254617284330026363283262759264601570471007239463312992058747161324583615501071898226028146258792001085079032457463105635924638546457793460855749359025491774236868046539577010373037914547360757453844106849922325316687695235395910373732391904909920051112245524509082590032232265671710070265383841962507739879649552486386620499996087156125098249095610207528071876669350212678951941938564704736549758009273728142527310927857381502236089203924908780527181747610538982618340212699744362240510609373727857477130310804464976022525629471908774190983854236588300471142314744512325753987090579326070635871384512540591072769958983536278749244879668142201333169548239539831462416366936689743484491726047517115112245597286289358181070718393709450418817028809055802493344579339331622087931405705137636517974360079760272942479297786957213999562607976641398804095032029885295443477437825524618707988694688551248903838760859251133875734461791487603533617733194514296529143774671121601220666830161391493507923672536326066935429067200580218234549045828585218791537235070347518620924457102384941411406570786245555364600513862796867506930081555312712999239339759072264244710907427054312650563221940748676161750552585330597500529657328085543644522498528496760699046489003725617637162146241136366304848690287429193907293899102093084166784400486282917199955757592004758407020188782378602564527407390654451084850594134908817873064863529409618934372552724970086993517132254878207342118422454502705038306238465067016692198524640487861665631530811359184053850573441008038722753518145373348563946042701704544502764193001823501555853477366430782524202614869811470965814320913488097437021587045637902909893511008016739638766978642882858955727380974494261334384748054983588653744590263896376773387103353092860182394065667632842967466013751133235108607215259915308464472139068771920046988298744104004708222890595884746755307800957527357393637161913058362955731807712948858261889931623843052302694216775410846320503741285179467451100278607768602023778951710415496526738135906560395692620741676566304546810026689651739838616221222678224837240234666600290063781145338917186100724645078485944006399937127259374848689620449487854156517259635748318052200716686861376542242006906501138476622854651759963739090702829307602932386594492726373014663655544091654862974657128079806230225503079955414588413355944606063713949995755086063438242336153660791018230487486418137890007235888552834655014909102618877681109650096898508243592669934109656071433159203927691737370590193212096805840728076685184996716962079312769756535873783054422009124007240930888547856412522316781572251611252939985397989337677934107379287271309548282722166193817019451354535988912449203098168593177583719651572211042588515613575185495345737074862486271065074206563533526461631218276360543580227094720381874697565715667682559013604704997242949420696958725527379946352914393983856689507811435948952785731765064087729702492859349404683298283247616928952004607193493808461571891071939206806570944633034735353249514493810705387686231473469072356670901651692982338413222440377595532320157540504613407684155744822082546901276902733958871368714008262225705353940009981750874034697414059544831959494355984535260541921444933290142384395124923506524519638640658374197208624019907499602370246144893759661811950232689827160196316921125249436330389445435524002996355724518185755130571871132971820085958763342654449232071912387216188980911313516388599560602404228291717686736321383335153275002830902970438939880648719857007664103602579814843516143922489752939599160631614889342426819247764663668725648575169528780860931493704981005766101573020753595661353005121964575405206373983743499574996834741410376808890098767646404962416213792931727778970698555749812507824085957580400715206127465200839457583575796033895601981171514981052569413990996607289591120738091007826069900333443995672373084038220288395563466374013868591920292300771163119486278058940485055869973656972183010415359938925595959310227987785110428553399234324414193302099357758295453716610012973890713750960948394698560975563078782875019957198418167619578647731010251034011440627741488151110377831812483316453786568417841383166679516059010880522440582402894006887969277123346596666315218098280028238791917510110606947131432414407677976377290352714962668286405994479931544103239549260346096991366258124791816104890001172387825223717175557649820512116742562549772432483016652926391941214946239827079576835340625381870218339330810220859749041973561285916297287038290619752690830512483089671820055640520062671403251330014606750251372917057905475698903968990773769767000154549827466037076832941392856112766996950733057410726013565546404789683197814813457765629496009651613240639794949538339470275043231248862285534669283094412256288291822705689775583368967724017264155568681075031019855556354621529595486414889696731049304877503578449922896959818258327473445674268460506971997149615081956179947775333681079874137357780711329867911580629236014945476637612965841455021180496274451137885000516635245001023569604294766857226769879244333382629227214836891450607016825907952492369659597721752956935853216105689477730521883869020877877452769294494179749884910818363828396100097618894748653700013545977353008274774993579817149153715238551809695912803451839329671278905904883524277382320381517930745842616449030468149849914657398964711817889316282331640806660918186195204337127620470430875611551617498044915388296784659844159322018276490569463053448764528901160520897826532680469422856394144895517744173032689221784804965403360139736921589580192767755660465131003345410044483034590590792482436521336307544136347347537174856554060899967690511011088736340452885788423409634883228322928857215396153306074228078146502689988609863789060501770551926727624029442283228101351858414903027782331731845036716751668289621261280796036873783973362115787693111104188653704978507444511915124650460710817572072107454133459993268473063844774669676226926018626409412080694290453021640362124087802908858431174697835395733246153610942721733774687916202426856847658284846913026369064943163229490671815424060858571488140127148130760234129942357932827299864266647121217164566366738006729873741463986646000069566091851149008475595634254692199337921121698588563127305647853628691619712110276903936011506096487329251588854301627717227751494242689891350128706074150050287936012759119814718939309218681501321791011864461988021827320942225605119234630386129496559566868278278975978843111539243101069771023220734223315057641341059871376074255570959435646418142431155504130022154150139766089916256142474934714505722548562790512444636152131956506887027058563417993170948019383917855148548184845866877775272669626648831073753381672928938459867862015361873622488893731462475276484613756591915631746658062290075979715355457202333459644193588412626677821859757556150271975512297931710128320869083746107910249370381820948236193026530131074425669778366424975240009055545064955581767393838365430915928675423718880171967817693677996254724766515771975624391481152933014247782302152914890587651688155767515906701555724131252413101153137235376584511397482164671763032790328786960317281296768432587887727372874777211180433981010092005797750033311894391910139407105478000760723906380294279730839736152224022331791151579183917237375495759688912577006279841456863375851821376999026192928672108935091714384978640261842522141171338067957701445189758456881038098988005541210408188134495002783559929126742983879147839994045385171062270844525489018473270447175196817289068707606459413660907923371747176489131095273790927131950067765147106164951101545626144877114348812926483495966886100768928303219915368540726800459248235495680483678224416112005614257515133935902304682488396630574450621416188899234173684835186320892443609068160013600116550372708966785020605203483832470404446000482082185271069094177395176032466612426821699893656416228019814277004076810973282138598893914366888326840563731830253979421132890160222627782799915982249012925098248407673908526565903423623991450662170034601167937540853179930034103472978648951939050359600329250186899343106434728520750054270268309454904221945278976295800584698020931681277848931423258402215939862274037437659967937890076529404375661669501608347203327645005197974134627839680071963657083563436280951744531221892874974698902752823888865075332814923193701573861053560751933752075399168330631461340406861823946621848913840579184863926156269785731759961200095834293435478442483544549063502776819963316003566108279548351540758363431583697072106118049572278771695109803914036842860815444260089550203253854732421862382821229982508202213827819105607548873551926968406921779449825817848558628741657121860956154634294173425789169125309913512807224965086549606255294412697110735003978381201764370261716894099645153172765898425036521333013345076142385386507749800392190736626628178316058523842131896407553815881991600818018373662097104469892575943224312373275759562213122613176754534500552503240331813536611600019935341529885182434452521658548076054035284425400992830002918557841333964705498457769011625618361258193452462116618187094678066083157609139438900177535581958998541416096971660571339891683692781760293070038128924229418184226465373998602311332495512255693164551737731545918533167505451081824221449579888443832758784326908207800063456306471255392561012501737055482155941990590907480086576442107220142696151144384057109946725506219181696422045628989844537920355140985204645770608756979891682955034469225098760903102375535573975863907243732178596498970113003805721249318493543911565939824080770359006018943121254193079202657609784184555295833959654082190717057693938605139724374673946315185465692875174240357776689199259993328027495480418849042485361773673673907475617756519584651679276279013768670198550251156634306081839326595093336516658348679248142977758843354241871062443627777494602121130236860194035434131111857672271001595797801401610543521371690764371804908244812296246180009230740045988342606464891079349709945277467835292626508766161982047917857366687159599774076872641498308010405898932826944964456952859159545684526465616936808856984922347043955712862636780444933764554156255126214947668095009249962392497059786147743582865723713969189410184301215493375885010883378842551787890562840543073914835224933491740429784703883492677050400891157291541763691544125559274144920618522032092417646757592623503610341898925507133928211103468193239168836635595829017572947315740045590778062337914509873117775551093200733306641487158681090976111724657044969974878328777201911774854224036979952495864359234064382650883920578157985844690461684469883957039184419271655570381389631548536300666296055475251709737746109865057448012358033444653870186045002267229987631045574583995034356501601132122864463229119467568587054350932673110221020592584239575233983649148105711403201926522463608250064745315673746138409980793815715594176456252775514710191747196838663907349795258394866076114238780607145305282162907207551027836750941882108686038883393000749586337802234784774160785818005585757197367356843205720083829110326130048771979974206937779599404568675439686847724401540207592628448466093057838001185712613087238115679723798932796885701848303375550589254471632745051957129486954750171705646154741645913870946272199515265924489870108777937633084901347397239567687561532320206481752953593178702261431027814683247557635843101193924816635346638274823994078637688637558663275011153815499443380714547624020650230146143695059302067601784198701494264383325250363542381902465421297403297495422195326472840145644847848705424384730006049525926212506304987880913887511938263219744788184362692371690293048655291781418645066739787332142130785933121324254819200573857607276882190335732014402706100125830236725051868776315279071884163296934194290327979418136022491263808444141067256917732755619385322065968630375067213447585570071096590858553227447605758024545875597527714696926786694796478057570463533522942982541739802026865794903645575826588889098361521596556993401871312738460343655189116156430985371866345142843187221622634227650999795787911422591719122096672014545880178314555065627622872188986753059614685888361613815295130157035970052299931055252934544215577554552639480110317490935112796279420009213695047137685374767460952445746563557840761442420739815114380795635752041847411653521087772242399106026952745037455959966663404793794081402913219051657705519539603860127272547715150485882145440584877714929092177173933844968237434866034201162239073660655657589137762697071693837027779992752035087080214058350616389271527126103584586080976251257200394966374793019735867691447228511828926477407138285564936399684015177472257936622613472570400330160768979503310278907536537077695132802431699887301944024692489327010232734237065504073454763157649074773029675301243665382239784190012867495770251529234775156424681294356209031702596295054618401608960119267146749836903025079844865721310166753815837610601147896161107195347908597389260456094719145313242101329837718303957672293138960601079853294515625343458416501575257635591601845154631822247220615823587902850232962291431195544864580022190075894330704894657357893781566847517270444792596396428615526537064477976647091858787554346267865714676722930859059051627677139903803265531491934513768379808701104547341826725812980849912661029714951646083511129258203951935083224746390492737319919321892311494886970975959241823879763198500558303263139802736622937721766900828102146698311515245658295804200080728387283168053281040202812823723643861908730954081743983275792753041231890083579117216760463841956654876446206495311463728062348727332443355979059443370152344922225845816346172681322310499177927350978462204895573306796629218656716573873221702064181308579282966423456400295943068165187008668343693697125938591215052600763557656876141225662614391129483967826590193608093604111666718641207251703011898997895214908671960053600904884689838183864305116754977761750555545313213519915025983531406339977488167899059452656057209734011954591749034787978541334646058906808175242252565348786239278148433086415251962777619997601338972224213316322414521265789796980437691217581378646899922119557956264519026784216562479972809478537344001686524713981728979287481422265117154111042926114388945767235840488314236823975934148064461130203502873542854170082851783729281820571721799294120429803586757726508492269645917433120796527991407580479381750631985081722764778245599126282692392869771367036726749242140000607476119649611211736738831480078462185389873240706572745209967793331107919451880810538776795137378393427191818712963975651542569296465176439585109005746663082771142543752374190344358108400882239280260470623220335776058876062883178202382712269318966956664944471185693766933817412360918787677937441479799222185941863463512412150908978141870979408729705148829346953218989564695634043880594930210413369578272210182842618121631276689306009095932887079840145480481315865257133264413356578657921265106140834602572733634873673336112264760013995051784686530653616111253715066360768299059389273491000282375277671716961703112829824069482028745704497977746523288448618853134979144327865367298102375956885110250828726700264624560182465597963558012517390372235061802370106376345401760942301052049913863331036093154951429489516476356370864635485076027161407553113950739164095392649485546885416477527653143370006618997046916990055477167364939255237263398299469601546871647553845318603414711552460704792322965220110037663526652559795956710824654328879935128294014344787083440358369325528235384523085679636416187682563610948001409266598848821986723737054442098584016469595398191940742364255793096361526733108201731252933253741046054912645656421771446258175721373212075702028214573922864001884871173031648671338856751251543384655454825790269963844480689126716841483900260677413831410435638343327416110165387121245097195516498544669934953102522127956149302381466520158366530831600933355000712322039542381075178478566093347950503765768604446740426312728237637532799653932059951831834410018887946763752184880567206853649944981289270777497959671901527684219427932217618993237409834126648567723715822013463061641732517785498641147619672237788358141347788802151313084674288408624651879359449906700474009655339880529634274031522432391415797923435662092225470519989691443756207390154835436946561611485213228410608187284383923088789161967144993831463962741585588208531683602699495160246347980289411836759593582955467421933177998247714859802520919479118123231715593519795738384810526953120328024824269037683868496795555847565095120950424732069451680979327911484830127763574700421935764477721725017961583963873575740736960462998672260906147662676057920469543597038544047552000628313504709559283328765683916561439966357396702197389062533631701000039753974663909194629633898153274736403171273412908927739230475735188375901265284232115016474680007618005202702638500264891714425440596594697544140495427813445735572204311628165460216856155782757470658796943282589149669066725567001176057356627911400318064099942523132178833383629159212013945214505117275447720216138090076969875923005637819258079631501765799793841584770902743361723857370830239454467487923256310705500846834930790134007326276925099307828989094587872620901841610531379877928475984683404824798283054088684878770315144071317001713400926601443501879912172644407547851637579509061150790527840541012647189413902358201915546523693989976426753377788054072476939466268613411165608525080298150297663751043858242668723194877425749573140295195987247012875775823946783331627397330740916477288475326647210737609589320193746890063712942278770836352986328863000205823558322773248072191279148158503424220201862717240258590556734759180308968931899382983776632655852768779524470051374859319327057151683875067382932589772919077224166672698703092354192866912193330061656249710710126196561605933336014068660486391912345745093621850528429997746897221222614242451469628209022098815128635024310888543942879847130989648535972449420938887285197888932506284844056619866008967317894101493739335059448291772496614253166837747009535136610198538657237974017263518574811961593515275737889483799834790206021796656518314160059143765009228396758293942260326544115435678784051952366695476555561504583119190495481174425146791254236013689584191521193055923055254659202204467928101794274194261849164675763390253634556688663616152578824636155309595709204503311969956025541352171611554051258128587664877412115119021390752145077802825388863621564414113827564765688715869487379313731613532889266061385433514247433570127770741354886745686247561425575402398615964083934221590328809737739060072249238618830884586243378340603706877348515096648456619511676187515251333873088266560666821299444490197031141989820331680765787638863007124589333860397902426970563454845698323685449958493506305010372656882225992625648766693027878437423764515168203690414218458949836933573760095498479542065446706650589088114930619325622956028633236154327564960434194904811077953315613469520335376031947979324201240581803403338109138951610830295803149758554653624831982557266487528182305966829154364461713841241942984287803378233727929807615225507160211348981080981088976537280614475984890451441335366722967678416703407786078016061412141391255684891001528179835128406994961760535355608670658636437895605043162990789856149600054582366984479711516231976081416396309741547762266343726126064851257832889724486260418988210401410958154239721836097486967354796688417548339616656361729734987671669160127344980584396592110562604659052679262245664138660570274261134017514727534077186010208835632709781273705700674363389131369428883223263546266582104685101555682018744681667083406303504537176162365404370040482064433762350683527212865461340607421321158360863584496131926108860463223829247370064356239132145232934851960332659957908873838759256493566836059125867560934716210812333738283135073625426811278232852585420587663606858011977394402852447068982098485856275784206189627378197739481948860203283787677764817533648664589385516533779741122759939542717041280446367739296919077731487580941893115701566939530720127646411545160259124274476995128838148456384831506211534931460821202501941544003853572678590806316490148883823191619837558830094453722205495624094221546712765773141699203977143597520996851701713670693969916942198666834412772076603252780984627707330946475335108391138787623914230450253510313291641708281591340721341729187568716964729280187711464290717893884663924223080497203668167322270857377233603851537516980106165270762856054922853771560671643726575238609893493052630820167171589188075645852628655050243308754328053978726713976935015767362495085368739231842775825000666432762705457136956043181170581032360950099965644204411082200668350208925136409750321533055713741779281095910631182232123197818150363353666747614943446204523013318601855008817027933945726769306386194463681741968804445845127632468807148236601815641743459966003443651118660155163178209815218034294633942570770197915750648733966324392610563876724729259427341382738429188021762337484730781220599514150106961181441339291707832283899769294716787521590955043882844022804782035194315946851508755189404070626539048444185456721728638692121561596993283297233599388120079720096244425403278917860502084859669627840653418646430322213902029109988565896263571127498984969960413485188301064499958658794889686338123844733677664454694744449795103125426146279857263592006467835257110799217942809986476352494274667160862644694319323837890034163013483949151819367819273051656117791985599594822737240842877436271651232029639828727429477174014055232776644162320733833355032693534937473886645339947898697179543274587194508250468128649409429764707460781245181214189208970176858031677562850229863529471039833354834148390994048322655157996164127700167891167164676500721500439983429650878949341456058988766665299300775384231776293587230053886645130739170718425493090989894180444977910271329250455118378904062831799776769517444659665732756964096145886188950828388332920824133956854038277601730547496854895580776403379596120506225279952638000744432434657057521630431315474380545247187530862660931476904330757348588822872199936108898137080860060336155545299751993506211464471261141110321813995950066112387744456208957983296017306694283146814477075790670513754596332266874853450840679535924018139820276104883868130736261333082717695788659794685014922963246481247319491831203348624774299489767497619122151459513744996606291517612349867549943258922921070195968342979898268919196704999703160705570150084203614836034893413291378369887864458696220257684142067596693585699939656765994685223209676772333247508411205148068437905362224584169967951630630970207769809167082370233187648047469476770117982749910004393027722810994056648915261869126655329685961129492504328919606844337888834013894228548932948838643452430646008942876422077393346027939926221582203172694074482622511833770592614439081045783385978525234137289904883050438475751954761100283398832692519057212347717266827107410681610640874336728505056039985864587727675260396469461435477494368345118123847549586263537581168212782217831284470320627025349116709555412989408243712928848042405378920631614873606539736349362870987128177375134756410916244323991316552604145294574740584335313819912255407421067645374150935546743168563562781641411944204647463204234911108870375348753260419678338648810995005126787778369327881481467878045691659563525555333879455534722831539695570724456424588999767479599005091360672503455196378204436916927832583670814104846113242140647125001516380770368930056802107267090111393485608046265193316910422861503018797365485105284539504402438105728838128819763162671446792767515535045787618972934829913417160824874934588320213027744297761188130127175101295863492586091869047886522681165883704751941043130678657071094810737905895584726152460070969565352858728527293774471322805579179001767880482961525225235533903819720989671715238050321718288642951173691264745043499286635648300979308411381168647495290372760124137247813670599306517803635383265893491437347802585168193146753301879363333283516934628119809485562708599217393667521450685351593817510596342212990163082706162018738634484840910775255108722758872433200822211980772866858871456736866793745276887398084790319505123172714881946142423432696061803472785375174181045724183390703833266446091374237691276351305910443141473886242532799121336906142974733159120620201535522350197865981165970245247377967235319169202705861648395625725144562335627340295520523627565334471170875209715941288713262672891963906617890793724255051670038476544183742699343997884218152421624652393227775524457530969830243304811920570664591628928029979505580903685343704162465991093137271108658090437377869690269592237772986334932056380409213400531101574969888110250266384706519643210294804749140877339974938025246915605815791344195058451422799504392048555109268973430497840954823116933709187525998582103086967198186655877610080146635375170640159894260678100196270987243189627004141753245162916607266216377850189081198816900465417100595309232849103224045165618888374877895713748829370514605620352386417425651772400915429538087097751946599395294003131982262746574335771585376605907460354603129415983009799753202242396238145720621482456433382430472295912485848632705906162089682335432169102189279298611576824469551432455411548178082882390135017299901525372325534936031506927060601286639415354798864324454960900967770597935786442339817925011315971627665184796665722245294883327537659273871469154000573397518669522013512954308630554852541646596147590903212452224451246952585764577660816733807849244076279665959110967097673270203056775418605155259478509675060467795272184656583091158895590872270912421648907117424021859590889001562004101069524671983627818527522495521519040810295977068622010198869843023481245609300644043940049546366908598376555919984270220040625068212137204588938644137505275335619634075512580037483752537500885869021696919063940269677097956089377502307445258809713048705199748742908046906053362399736106149241506015314965924755601826459739241172986145859957298785904405834698906350299476740572321296246569520915616192421236394629655049721498955863342782548737008711369219469733768295351795579878808799599856939644216640242975486115113318844345773789426655360869023561513803381565654225086537159837920223210596341527217549982293848774306044753064192715224835418641920456026096069537023202306149931241040273476667998702669100023653683866531820207256371444760665482925002018922341945490664688717735980797351129867910616267759962049875040013469563262690723053004045802605162617376224817153243560820743883886765423562063100950819730558383240157067097523509037379056894060541381041356794076546008586600738526880605882011461605456932482267768101758066658504028754970655312198416049479710392673044301069167851506981322581346039354230996624088464814746247639343003312760780445606823500548703496722812555525827831550881130104134237076871137154037796788827453675307999739687616123556641468514996472815733858383439659244628745427564359437744441313380959610875081648373238513041200169352146037571775374668615005045831480445811401720731501763428025089226723663478916484776768904708757536158642960350708489081036138652837214920306911814480738875769995854360812413543881133833406257923393092919090782357103412250233440017599413078159341908250465465232292854108815114373991967816934853665619259948150134724901177552042167661456634247894080828149181577322868735188539241820271435978009148161359084719481392616298298151953617261122661978261428992696926367553799499373625616132739791510922049440338016058427992843960051419206177196249570170996550264955424358127292511333315554813526846277349116599450240909536340697880750612510312581962842460651826525417243658011744778901480042547104357502366536828634406430623884405803660758025451740723040124922670863929148559976224437872210983191305677839492945500489254638677840173900526141102012814091398708607219938216171312932809023490274154605725517988545350141645447364047281551360556035609977974076309611814064091657962468684804767678397304165431934802809854201806168241742631721022182947749410006179853877040906954316055481650553141965498242711886607776387412564964665616576774018336196031096599973862919336598511959680984581889677939007649678360342171293554506490366083965073739684356661816064275533160346761033481393377777513477311623915496071498867756210217987406860437450476682078824104245958769708349094483622585357391096540581316899632307522442211978401307576113565778387572641534334643544617717813244440801244624804528913954000231177312298947847512203641401803032772887114343889618604800117163861756941721908425358714192311204761555308676628791669511570414562154502093821564070203434646221909409827589521505720178768961243204121883891603610366677342595696734798878716187450740350402177872045210819157513505049741954531326307947782494870782515497803637466245989098359235007049435469392309084306178132182688780382239531512896570486611040772879982321189811779542310981259434699098318597373966329216235265505426411562974493659844832091984965473359703407019664959637564379399987379774333279138018614691784729846128915980976928757038729799740187091924225565148605020327937129982811125998239273996561688787723607544823076554244369145050144318533592079889488625680568460331369234103853411228191660713694624179438344144488503877923187054763980521988036168805220037884640669016017713949936496356717622857058247338756927178963219365132657131423559410253093260527791750908409145329372857495215021838504576444437590342314638261292797549718227536899532923822565830022812753981235142999151727730166880810393841099858480379316516175924315302718323015629797199292786496213424544571894875277269278156765571557077199613661165256034516197463534627737934105609994998652749556691382171664748994348421070542590909624464959342665168155634793684977511800620912904179565813943152402301808396005054247408776713902599927639505812977121791060496344853573648662767608980535547369350953614233063453917018472486857957873174223370156023889275980492005903570734514626057878936520794482125086916492642127162029268177340719964534366119324295000164782770016706491788464501043828916216009926514392640828147188145776406895481171012236599765418358009126780955627105887003717721713530239949547870280888858748025361222234662320216028286625815497932449606230567288288395017714720283231167338589993874599956184624870200566232095467236543930624415895250529580230602984563469539311104975329087743321645908579550504703128487581504401384629977056596100044688749970347578180450027139836096339284607499214824715063364537781707604446484380892970895387042746339600128064831828705402010873433612914493824399680762532419853744408605347079212678095763690846936484302376185863396524673846504627114240401472908653099616194046883271473801340658173080194701167268785239712826920388594914800133734115246614675752602413633592963000204942549929423059454083018042499676190085095873435570685452368730848696755409734971840694723720316685542728992846262271659780856540994235789413199366679077778160460017998839158774770088896089928753576723271352403042741241684801340380922392588066179883983953604348128521028675707663794788645170921449072084602818353451627463077189271693173432926425907413238658068507549244733971860934182385415981231805020404203312167207489301353302475103681041165173580893307899322062068881331496069924590772663471786195031636288380154917138698988123971919329755841488434570082462688847740731669819269377073444022324511569123803012175889711863748979300945007617118514173540611902064009458760418308263891289619222842788505110029046600186067687263763349044305060470897649260332560147375574870399051992291032730504382821272038770896370941929277102827738060303815571033268017448515404395231928658577978369751081897151972093496498230826900012194995615175741481192321725043139271544374186828772407659460365294053796149679550780653774847299250204580912026266743282464851482524242713093529539284228843645236682481125977013682429993713985855149549146598040758090686186386012508347375592996212575994242284244227947816173867527796991446840751557236866225258198872556560507161910825497382609599252612742904342247952736165325866435028331235563567964931133742271395223051033360773682509287496719883042307908946115113147648192112906338304985222036186183202588718442249260265643881730828460753219607696526569284265088904500664970623276110282816050372633412005588158815226786259829011887503674129199184464942175061012216115754941949009875830924419352878607527716828982595181996923041938122347298770745454015918821758236097252408223335919774641896545084320814313086882398588628093618755887875764911115762889948557617940283978307717245425279945742783379685997478146277063823313847913839608461788037931481766341311543445795562649656732356487140074021208469858160093311038520216088570845149791314948667490518602540268675418537208806610909029228335428233055971296496039511404911618769416679973423107706915709197132762083682095327574975282093312815861963768637368926370247685134971193819201907062325164101528051694327336429789775667436402732110403996923613221187959249031257144288128883553129980534920698871208221895174254495111889468880266480158202631862654427931909297897308336921672059528261222602044036899377980685961091542530935993579912911020802529462604292891068553560463282540256110159072554477372350273620980716366822396828694851644047456173755547671809957032610492339580774799127861093518932273596476433245842031808299271628979018672288621392761636671963674337527626842274138069453700772270336104122215398476046049321599464675707679566285053617975031454040815091057441492182530224448763440694948652488444362797500561570146423827000372846036639690344058344770340794145840289553561017096120066415036528162632631840682343440796020266468110382027294305617880955204936289446015702406515581529309192941155419626870913422794445266047271238302685073169630006487139291935073998223658946896471598720751640950957780227611623017061512908186887115799093431967134002590877508806694499007809174473380139577636089338016080177166325729192265036864802636832111327796815364455343925281351884406557681552146995708053607067136917222533295369923190320186244059609533056454310702071445832032181258354658762384658996237880374822327066487151354743951386726034716191285176234987797413582333034257895915954731436270121214338783666563637513037504017805548141755766836345867410185117948217436389154930528237325445815500396701273266413369435044342203047937582600827563280078007721844368066269400669174368824378173630463247852103129327256777786689390787539592761377965866874321634911492031689236215552993826792742998599027884321401926089541355188252681865138305772209998491065596281625821626448184027693935612394963238604489007909347725523784499835346808302515445193857096996389280687865441906292486655110954671344167293565006276049622421757096649889071715432804931367607045628805022016496251429288623236476085054510322365793196266768063383909533736706661967535957372466494121761514570762174634803323151154046010213797936073333097817255401484664894648120043023437433958713288698320691411197444881226276199919884334154882859483751975149157956373823119736349894984939463290906674836906701252847792838070273567879532739543539187051433018891678143373703791361726430678595765874225257647450055755495951418637609678185725322273208606924570682270433040466282845091164022274882232274432532035821130315295353202188546973005219744565450370023565437512498820880884084264512467616345803676711384704371510498640838026392384021817579531940892064624126323187769677860045262016266248483918417992104713617255966328943635900438331085851175416293569953559044571164668355334805501774789219793484357076862374292583540187039778217586148976797175138846334168838592666301230801629397163976572034831360596964534350451130932240515374372135153258524185200906198837686251778546229010744522471678607913997588368256483395814995830027553273553624899558304090192912548293302657019390259118256290155403496390121554753017977524900208588343531214917056076110670977310926659484817540282966626136167039607867426125783665730472800155066740238828621679262998288458442917727440404959899697546591465801041250175536820976227760161630138584847673671305715413063952852669114358766683463464701256391468691925422177598180370458117323267175010473591737965344806157233015098990321251842092610949692432109214496265344241123534912019506533698542028960764164418267621774200129953619487450821767779462829296998915974697987882964453030397787176966198113226849760018062564147869006718499555103284419704877301173506329677822716494804844046713065050751414937426266396947942438140976372627583245599905740625159960081824861847046282274346436784287936067934657114975268958564308628871143961398719783377887489632578272582307851680086761232913846057921093582673826498757986025595182628586012979162500750538499813946671460551937874431749927815600830410628705069716955772741577772980093323876516674063404424805279354410547387086206415082959082247327558839505677768714288343160019106887258405302295599623270665654468741577024825713089998651042816733958444009969214703154727407075844349707868405333887648351122510991798545844686249707643455985586734854326089753587007167604418285878109273828319307215365465279452889447862870662188913159705417549806048905889738307480292317517982705768998419255291120134354303579704065427674502592344776893912585536397303150249479188218396304546808994973827742160335509573367748535972558892523480927675144747061592756139206051894687738169246942360917808262145716394559005540614778585952928602360883009879856749420245837566174831013790957116551916691153659241373773703116555985909970609105515928000709517971659566379359392806600249640962074842025161922335582754494596718748472616772653618663754334836038961365402009255335497738611487633911422843324853356823237697630625245286696720037940536547945311742976058111499004562622651162807321652347631549800429587878309482833963758463618027630888345346858037685176319023566451054012482951568215789038589995043834606472398893674263860008392728096899370938582827284096389655636896921870812306695824829345524172884770007460801427419900689821027865679546642309439970410269943970374015935016091828962546822302096890864467431036332185305918918635659579616386506823255372183596299450234188022643110840102328747260648395318607815495386060097299814077890880768680621933655830407306787746003595564639397095933678263553553949766185974240236108727631332671756080733340165988604108724541592753101940249712243555136876788166157049918554555616439632554644387506038220202462351994729881120257196613393173132972802663496583603247505729196579101598930999465560926546524438442093975640738076543571458725956025459021875800841457752368366335437168108530359089131389315163182687118165975824595191335726403995573405546022976986312384748673081294004885257489298859410015335231304638295666127681482739490240715256291016731309292869109961461625897568265794045373591582409816629883109679198884930999781432571771622342238916403320546343302381195824884096129202768381402316189646768425169919403611381138960444947927428988874235196328643388322643793950196894057017054275824997628997009936706138066078194731647685065246893124382670313949565343689827762864099690425505600721593494313824235713889633120038386083928644907985821778134275738531360340544248545851193749216559017562714785394967046097831844125857451772770313678888237080836285375852055338003006081362946405796659047529059543418845751235929489117110698870738366259908726287198404930507799761353805673970021061995734632580373575349269864056700273203179813393066653852706062534700685356848441867594307705040234316247641384243404901202147378398921111740211603247248520817084098113015046119567022931744355473270773858105706578062346896031119679133359523950945399271704346658072586515408260396243314821864613157077613967894036206721685443900463062022058260176907104773698388635901297780844275101568926302420656258482220274143541099020801399612850356860473862757806881374076310026627947322737749026339025434352529120306242031273201364631087598561021978893608299537530449113584867929690801481311994863224272027413893431362923062100592053321954192509626870881565345410888094281187518626952817997733279433162878223137152499362507670760897414230990088683041052558764505246564940469834878265734572423523736094239093956335480861468092378100035543106080846341870763625158333694504499208997382338907774862907048783970863827630771748562846577418324813343571812176801768638733365075229505230121631528445133417067481358254381252933362832953956871736232047834137809499773821267765085155129965313753648720585348880132062616665443072491208952887514208823122965700956007193086774169320976077295461317162331721293353193351530501546889726199828052281495740022077227212486720772439361716781864640195960453970907841116833412352386617818586576690876058592278178786106223918863736012821178102739327936308226179203568117445135821657660895313038433383734757920343831084470916501627097248953430894439542523897533458433478419064857550938380875203217806827941023636787849035364591441628002965450940861841600566630475161631971568966431696658342193454016103331461804783748661513024012104336669768853904277205659213670763987161688761743142877075437392320466638185606990695612249515924357841253748411158818787007508268457570862213530500572251321659255343464642345444763057191170609357799515324860026143702608178406822787377253630221931280872019385034542214976255378162279392677331017810698521369576353808741028753371767555471587497501967395820177574331814262733740013271923824018766212410813392093497957996717721579898263302635262655576797966362572675056498322397692676968523883630603626371317164183736817206833345281180095565753454085490070344523179777722179532266217318563088570849869759675593771431121536769955535891579459369803017012149907959980631688016647583361193640205000308088719534537195200983212242503356849262013041286902049660796086367197201478165614162086002042703708235467974700342818091261193355445843471143663775868524085907708988828586531897430928636387471680228740700327591072006475393133559338736769149398725905077986903625160754340126877025996359968632403553700805965397245599816714732561715649764851767083589425970250808346156321509907799859870200162456597097758915720122924973263684231060982151282246285596204270942178094135847500199336839596181488036512496114215519406549729609090841852139502461400049815611950378704567576602409317238934395814481877831213232474675908642229793309905347166663246456410973093163159263980311505232555565842007700568606851295503913030071134815501019955078753953079641812594012482953518250253335559373460494556655303488291261355071968181692744815438767156524763490748830776980745793304367120434735782025132061298160376295425746541082706967159503248397124126208311382153925777553122760909881421737090433894067749523456290914703449772176866643090687490617144663310068671067052389453117488373869918578150413455483829580658542996112021633149417646356115288982769985681010773864621006778968380027697633077842737704452750125719926761177619428582937471033782243768256346751524902794363686905498497973539855431555427935938082162774877341741603778564676232321022847085917097244346667146390874847165325363046069252233430118763830696460250843882752161957862474701250734338739912131917003231352199261796332298607614738456179876625930663100246945617188512412550931583607527395165807868082317096357969210707618210498274071553097403671755223602851178463441087466900558797898757025859577812747379003390542631631350334761813578195976190738065979620080968204275059327868237613554852003568013903788527515938140684920573353199347705760478807817557097820591555647860058980241272653960825738994895422887185789716181299160220321650684367525512153841769933069058070274665788272951399509782337670518688064368106128129410776102896165660658925616204276670179235059368819251671261481801026056874868950698972129248972404313787444848833812197372363326152436429827300527852282679095532346010945736357982942799296826839579012152478688943001754825960305070353060752704449142150183863889716612652802561274036252966647035914485852039915808765754033155081751521052652897442003381046942031533291376738258900790186189147409708677500354583597343856129785834430914685165815751808780460757950938395668337670797776502400128647721130373656255418865387555597087055108128428780282886097875262934341448454329657251162352729586698323878648782649230907437892955826781750471465329333742026936030520885413309891542821539726867318857775653048343057345394191337133156863793434460981876505957560420046534311250291100003016793491500682088194809965446467113206920833405229239956649696716129492723319232445515860707899803730561764079395523669996883703403693565070450715218025334516331507903768421043784972827996361074968157754666221768007394070901850762379890900821811865010257630314885775174995657033644445119927494725937853906461065021384936615379887076759242910313112646477025244546209861811581869495092220392794746149832590903242482265281882942002281458536695994699867030795069006091774793843513913596887623542938680548463660167120051122115767165713838343647738163575299639146733467193043595954928448285038479915156952925308546800973828614205616349435711145323533381672098254011383162429807493093484704564108882040701808769631518704958884649670017661063526925755030703420762799783721351594027461440739649134918337323925075027106676184303249237269453100756652096253926757896183231910581375618409071950202464402007161144610983849884773622282523094846486430092929704155416079883252206967652184256088229966743810033312632667018394132729346362628026205437020861687496796165884116010618975961736816764759471635523679813486677812985587411344239582993955251501509560001417535375251977191655362005992548329415415107683384797618732178367405912154011350974246566635281466106772661618806521586048697198334473122504818020213231677960352540792071112140597444410305967181958431228929507988717029039205742207937010412196079267836899004245813569793693463627005862337121273344230146830981594932786832014987738163031437699253990661344995603759674990519359968661580434052889922347693871800085111918964663400201097129246636401459649377633796938375931756617331756556062696501394113750833969333270283539136157342943467150182127027599035283954670632694950231514449781229332826144274415098067904006268268110770006185012783929653806159846844785297253807110112908433869754372903582273500202188674344214567836302547876275661591115658748747362893331366276488524057502811354617508024597171454550606272257266412454018956447377169341828010358628924153185044008557020265404958219479755099132464290520165511157244996868839394031560126115956946989027370148522985641228866427506761756150478404911020656058645755022766724904436534907917095112377622224573981095643015245272503620882773056282925032754258436547710560207173985828492582843123945558648545612779680571985649094075025662549149851868169292769270912122985882444594524971139939578442360600886961356553544534270006260325736211403865272778628282999735451239812617870840697604678382398601750621327813277800702341650215180039721314400895456720641523613250042025050614056831358481739958506780985454679983962552943511072563138180326480983722438575841714250519244485182232755602183955593831380417450144224909746501637306490914760142058941503633180766314163780035864768992731455104209703450121588170150146582511590810168946422345875263510778265041681939582297666963246325590338659159512734332540155966194912570679406098838724693796074729758545352342114628331966060046019939406598504861279358177434217736193861072600947526224538669575000776900930197065225427095629491861080735956564024682071273165694842818477993957415833264418741957725025256014765951166457150115065919156414876253743988935257980993289897929410855025511354460929128371430275660500432248816000562899831465299792030883192701251534928211177387555170336702102968707230181271740177477072476885342590000574123929211287411546837780795576516098873232880106330196053514328263984645436707928817805625178982009026747383450112329206958350559062800607876214539818377415090205421558333046492714552503660119663234196690969060238074158192403364269562192167718370274642674642825630611346710525360438133303010858784280599508787829029033074910750322225421244557323721841067269818403072228172516194928835939046351041080927764502399910297874507658982922416507620137524095565013046570092156785784306351065875948203901417289831279668547913080619260729077771661619717319768662457819995915053614669164003421171670021848109817302159623256245237720629676110155560474159397475952103410968692091733187644352443107205509205953136962451849321153286464690105731782816389179910456427139813938746480047375616679128782764977996025538488196992474949179666912968697597298473915713526520570094734697890125989717205256069429234172099545715298280642956276523527299089522048899183974461759114965848955156713831871395476580678567767910159873130024037515699768491827343662423499021176899148505218366622569841338381202112314913626757025845373155449281715930864442722035918617333076651145817624204103330428689524968156173042368192226569222825051190833618576692372671277442065836684234801747748874825948285946917190947239458675688523114009184105131356448187972005353590680511983705553560191225834663939157071863369959642319790432257383049811863687530032748723956609706839458712647951355311114450311067760861526560272407712866919731957850479043652209487539616703490334263845947267789670044574578651249226350216201118789657279048719609085859585145615644814847268057659720243797662768796496298406736835601277064747542776728801409944168426012427808541882419178406256705993052976042216188713832170238577679735724898502947140405805347418165674024372003981482503183371437932699953235882496826431776490315079599415189120758574600604401792371601147008373481025192345219945042267955037019712225104168254311981820013932281909648014653349720072517760475302843879288148391951497830995485011754189922891265481192860140786209518113206898672834272473031834818600992056588962315981385763167998271217419273326823694609361447227235429675972320262536564543893807295542290253823817163455057067267864217652257913149019034740315093835479428482783128197940787380928246064124132796390993170140212902414068774523376140175050926371880769800574192588412754547977958205779430103662964187914445844602037827768141604279871870188930925703840909155119622285454237470061768718630606308590854907098167324668612826085639272209389098985915879151685501941284964320450167612416515433641138775696021700922925540397522671739221237649577548167264477278582551508318141937366836757205975635578917974517696080818108627139539187999319337584487365003099647535213933767907777747488954679284297874788086619687063694651731504795480793376878981698978509041795752252018957992656170558838454690791113496594292162486377831057627376555587266578779137761848968722830164555493515460815646760468488626234816880003570206640732256179502505242530035984959461275164511336969007773210782180827825073717638351626001153602316032811398541406744392058986416815361783967220761476097244746419086664833974458719569123181834550429370788675040483357723914740420235379845157526272842732060805765023769925549328188763597567858530528546688996111551312975621626771860299984132392292688333543458193309542466438639542810531394600750647515715422434275363166012409457145220263921398005342218674978875709004835750184635639975926058446697769437282764209283869379974795325846096050032175056950266473812311807650123248393399255468956002683684879853337557182076762938040959234891277316139066232909696495442700639979777054730497139166162781267888345937730864606330364180389102544538788647553443386743999673305812650937451171927444624226524418676771488460127307311784784990860923112129340115878492967891305051224132218922613701920039809374723432480154483164310169802422871374355418136360897865737841397514066928417495646362677122398219791223077147919402309606118067035024611458132527252934645491829371198978384916554146799128112175254198731508680321660393543213267008117289687036332663446790530165872310403983114676958209713917816908007022358905030732529067305243878615795499096841344398148730065705052507943409903060118508677127080959156623982347589321172324518062438039475957939414237258605106300005261209981068743550785796496158045610979538685898872574033396884858780794781456467000099727294712777004487578083452430780910367400794947265292028542647512864676186894528697420645906435166797034568395398784740386460881818921788961528978496043422005052403825910487263966012908535065251555941103707409877529277179755166744277753447030733566180489241931288607842815541828940025045247641576593487279738342228501123203461230251853952994764486501204572805140276582528610066287941330528593777250702166758934405587235222582880106723649725992213663869187223652630630351304827450753973588537434664515430927864779087625833545686036231403269763984912115748355298357313075227891859375614759681512139358028000406972626729813090459943399351326282099286075439472802487528783042990927833955679894703842106899700128734707613241115268930374037677070277535903762349064097541368045870619760184155295074934813549695393115880865983984447944498448380754862338723090960910610610494381793822494825839782558430545708150311552138770990376440715116918430954835577884928699974680493873265919490656624845129264332027834587664433058199918763546428697393512756500049507137841464963917786765641330043963430972405037111302497236041941405005311140236907325907937849837130606493120378819754198276002490867708892910755773044082035670919316014065966068270395243569033247306386965496046740724504598443838316941766451518427680733575894848776080918669069630801500982744279525839550691168899650679727573562079944812798256020263164570020979175445896981706491885107624245820100894067169894554366886073339698686618145804308991667508134248542156298258637268582077581418245214659744203519502226333999799515472513163282122474334674153177576756927437979439731658369235147729326961282694521801095374365052406376184670377284107906882463695793424591178493787683764819775900806132755066087421815596221109864734672750814278508157208980561114434106158998794633845288103106220973212128221104678665218369962802637998661527099527479373198657331452557976125752698874529713656966377522642622731316456228477199810038641097474949160145553256204612545082035887355971015212073715654240887988686516472473160053209502803367803562361582218917779511806555056306351178660378256765305547616035701403627456343421846121227630090922918063350966757692400538944862052895748495203861842801649852298101719498886631391980937178165473762429876914149563676569192034938454642342583034579963918942606577130989837152820912600193630766794596098149490240916779472476850705839076612703472395573170033090084460434461357918319679114541319204835578240749341311009773442798793168965163805651953111990565377467889377136287401789245733697306428878226276226965759481226262568211221570594279187387214066855388775105023839787860827390461129575202575578146476712553603042403445456879450304929378200212874739834520137181548012320002978890223141585917485476906305220159214506397983257364483040592431768018237501856896640871654303851945593664749438803167374675933302603483001051526504520387440435701155659482739477922697221354824947870256558205902585191060408926792679331327005854154838727669636536080873367995171604950025126933079033914090550183840629139168072029348622287713957413395029585241354649478790767022804742442191090396877834804210318341329577300669823788165752020213058098680523863068576229074711363618067288614715574759193283095683281472171959499981511767018980566016563460082573357073721650530529950351322964673262798749943961926973908192086448959432584863834335027464540958253161050730796811587338916298024034977312536306417165242423185448152368676243097377206236298719596603099255716138388683490076147606636798963328837939909810464590063388244081341458684932028731903300189871322821893984340453719687090104987544131038922560653523012471937888348230347393997049115866435398018229168143206270529372023241179272891147707115350333676825608052403097733386241833747067370881104627984502497851106269709494624613090741175996149575394598388428804743216645145791801792518374918849001521318374518651349828881982461064924521617224492036189829282803074721883497444850815904674048764790758981474238099519801593114068486031846257029454992243911153530483296519212167152135691931806230976681881655968786311383223240314614259247875714793179515837063769030026933583659961382122197175021998044004722709035295337307912305375702603367914731578539283803816139534115979477981723211300668491480057714213489805369798618074492851462676979661417887066232745041618470337464595712044009817612157917801255432689820524011106038567308749964413950223611785740011240723926634333563946780435676351523177534567975555980503343200417773181813428626589391091771015124622398716649447308479831533996859518119979970789246860503253006309915393927364528520721502774442788920187262202946223415719000418099227323946992672500326885121831862425960431474501411672978200456886108973270414067324370775996749474061648132414964591360219327041390550211590144905090873013332614174865347339868417559458722594119689192322885301003412819495703908588589714807198275666652716617899340121926934871383868898332885942736756440184782175337355437634560345088803344053075838109408520603000732189188070804895734510177891639324734854016598926076238517832956683317550899151787818248885429741763758758411339070214365460943969652272862875923024125217877112466278286231531895589580200870881575160551984445267122143927413523110001380564254793053398749506472796559924285931693337751077873681670205940481759911491362707125079079892537944465992194308867609698692680548139241324993343138268166495872956640113642407121569463488345128072274999684928447904566633530804968308881684569393927018734345566595903975549357537743771406465813889305857203777274987131602076303018738456364992716541092783243902062789961509059990181898158834296339779060849577503525139223862868007738387131363371308755558570573878539396648430639087220447957912826079548359330283873621872540557176261502593183365377832164070163511189264159163717986278412990946703122592506043478539293740096668191160353374257144083343536757081363914298281287153249107877520816518684448596954836389744157237228878508044019234379467478834725875080734572157176328427415646465735845381356804737900471878213606279412052391127616845202810860889645258756241839084151824757221216314270240154742634587797892265785306126100859860807364981033094077139387924214337186477495815938988067627848131841902194395763460909159153699583686619342005529734689357550004166168510816021045037319937857332708981580135678525213043670605476614922978520310125485776494472509554168409757891256908329179391665733310762861991356597564003933964182736468230362651143527263576238086851677879430589119486059598928698532922716298839115927705030791612680564941426714060104123079149196687032356555327573246007706497986533028910654350639126497279905265331289503404531986077789835730436365439793573382927246859303500100865311279160389588491034229529258963548177417776064087541898883834810120978369156731199202468654956026658671445204847182005169130264258022543829330615999097140181228155576889659152923472809417835371858910776173444758414364026799116718040225833502213397279526418930302306549769745109417925245955246915111417935039320614195910008330218863639431791655030166729796912241543139200366795256324085512212892718014145927991583810501080379715399493577004841728294243071387550673012294748945994116413928687395528323564804977704575771100318647042431725995226129045675695431190762220064364659961193202943017269970372297633451905771472152820507703269533100186164385118904884959687272672354507673701642307905593102471106223631798150277912264091434247474296159411338204110153119418205702797476618996821670064584633468202040027609790391709098576585334213405770955542488420544921695990508525717592070617669706602788511344119456544518132900963177364070623121848404933970356264123059855479291865014643858104835287310079893875347552189292943976479650161068706700362406211700421992519510903472770658859687076983955826123169835677995935775223590109442889194048337071639554214956699971456640593821760616100219893921391853299247743513375794635269482222363818761534945295745342562987356217486138418140516005939476588828880891681648529058200932675019746420250155951957590621682750158187818001099286190934962316666901461372079794299832021708721974888500121226611283646346418294336517386911092972197887147480120106176426637638936303502988212476908905083034719275638237012382468029671689021052331813289016349895211602355001497153623656154462880358134849600238157029581390870665175945259770998263960610357907425775931050792936285246158160296036972769996408920293464795383308504293703292223372654636323966832980147185816927870022989814201487609167206411740564443519332150128687279934425863942789578681063563959623163789818831866020310638067784639953200327966856536706270471745346615766061015259004025770671791906989660892820779864675151598354691391392980487944421855634944548004939552861586827987156171718718271020424442008344539035343418473228919511751395939552274185867783629553471322688918323555918694157492540756332296903191881035091039182514729304222998856089588720104047257030719770778702284470874860599717094190600037976985973043102330185241351897583311318686828784423331958397044866987398555495771448466326085053162447608283929793837643684094807518777415693826663127745796408515137041152752353441244098837913275980343431462961265036953972202216161273317995577059763912181691995827612590166961900090472421919331061708548992024995951472179589251369206076897175616456586516111351653467552006768087838456207686068972223583343679619055739784488743726536879339582694210059466889471264888933355902360150744297144877017448651053929983845688408861406713207344123752879171239449648008528069067761825721741083493366623911993267319329916136583640367497024585804158250330998630587550781455537196706122585967398760929596756691616792212341172134458940973898087653230298390288345961285863266360260290396627944673487582085237909333537522273346070730966473682044191895807709002692173236898084492070293173848168356924488321504972454359631884763631018560359910058487330478280130946841026657786493830343881034891929144844053912940324324107139369756361968378111098052753489493113696921682414675225568319252785406096387573361907791381805615473628474008134880673601985391105268438828338359092200800180975657934325948181987770520817168641959885123326352543313743587392913648313986720456957294172325643971420547491401335280984802253427296007286108875760018504100645719471702183480631456410811377895804420218057779777585541441582747744501077641413383487768247758013391753019635342256791676865062092862379786354662168931853156827362803853560045111628813018289948453295601396207885950186368737888257701340767424949145270369786750896532109119631300726949062211523425590731252784268656357030657545774528829664756397546421482992364745413308348047092402163087049074063112967650934832087707817283931330659231710620432907862480327143114311921655242871374278383106116434140984254033714320770964076341980717148397893891855900345984198267909842645794224396118418700357785562024824116521524596668076800813356183379771722600739911148814992147376902655733085351968734840207628805479372590082348373217619975183857751015849784582125404984699464362939338833149125730287564408466442583150885640180779327959061283449943031909196280504293052124719099398619024721457203983587687350778720900873769018744043050540669116610775108832588293857932651278746276222035520834687149564794753261024323149690630154197982671961272336036141671094880953963679614059723015304961507063764845520117980437066917296624886307490985837159671412867710733604090741155364670179247196297792661359839731221463727403150908488705719589359686478167875398943675421279757966723383630817363061456889073912926204466827610444745187940672109924088141252721607205555522228323472730176428249390033818823009778649804875836234081846470197646537550141566003260410949717878664137393517028942444418818681525402268781885472306313255626941699928347820477015966662200897273918704234728213489306952602115003689272305812236881596908073568117132151079539853683517332208243801906282872414339948501115860285268586586350993805182904543071559955775435990955681078632849063505752485129451516238861181654689693338300260074481285071821563136834254285513742518314236167047628718762018411766017744608303177482096050965956594489711338272780256296574237322585017271018872624974349307487973496688261474990662376833418460746287159239396366075869005631257579636438227748510433402613226575892692652975479771550394811325556981644471704768615904882551348710896288260235332665890387376335201757756572924837622881553891783315958087126409583490635851829901144940881181035779546082056755561792600599393446152163686944686273636468100083739347790890026637688628630338914712565905039539647481037354083652875658236761461399974187176373314081565443909109995494383750605278726421081746769003203852491320552109797422799452719762644096553308645074869088663282253353741992642243576503583658165704783315899799290558859173027911031505571281505902869360438071444064767164449886909310232644883212401576638177978092751612964606076161896974350837646204684601271786502192152341131136549166193889027790311341004926560056879684635918702475213266631438874162081173165730885671062048340488231877380974076508203737085258294750138275221110694091446282070810784499424097320442297257023843899511764263832511943391487229319618852883098952491933527242720265847756555990798191678283342960746939961005298682226986865318782619860978075472874602781744899447036912128416568504692334044848106276172212506196389391512193607104646070861122923280046161427978314259755921524427887509921771448468395719848011786388221036958778766672673713192569937327687117992743350982785790956129775560810706585737283122167617135731932331534232277536311960206654040704320729274520709713328414664212191245870907987479719411655456735793667269989906133995177897773452211953528382771912698459347178748285741129932431522827077534463765680445633158505321610675802060609066046384162815718933129980018462532333339484819324409446823348232053904588419562693441481289742849119702806843416568775111822874625123019264735245823866767571844407684767626084795103197653887440992492453078632188347986619339106643011316250466180220910292994563339213314208073798016509517033280155426785060392782770577380856584281804778724209307882961038727605617031197382953841201156220715391938685907096707439802315281552940619639675470411769075401627919326627324590262881958112842385581280200300056671488428145866660774091083052500041777761003310621447645217582049283790514311344325252067681165817161603614891719683501015723969890017140964490334868665241100537847207545991584112403704758233544565960085326468293991139376962810899063851896493086042894397113012476122409916679363533528366460190715846190556462097391361657453397371297907959363480938067754654330049139291079177285401609424391555190679997627668097321463950013262493163746695471890426619521778750624524651900785277902242575905188818743700369322699706428470601915679493633188344461961774130894365984473413393950916159311171308924105975692910026829074998810997099531077805752255933015524790034695617152923208136298896035523346834725519767695084061864919235485724646230753926819614346658240274344281714058189320013994339813511457181676616224847741639095471551807093766951520397427115441905270443621819421867297480523516471694334895973814465552110085212911105558424078991616690661446139841000269990809441320449431785106198483548034575711361052925211144277027317755234234476634001413503860697018765221640457356870869263805677901516085310921971480956704185049160674182907095231652208250973906211003013862480217684845712510726573556181856627840711983084543627394995041280844732271158125707682148440359418573267345432716962246198042242464007162504479442751928009905976179769958226862374264834050094777980499067637868020490222247218347876278167343218030241021705389093184628640032699505263527782180874732552706521925154166346030046947420451734080904537582216995799010480250399557680370641776815072743923547186731000097278541433704821332595363417030588537138164079115058139176759053892893724611751589154581521407334531777036025889600028450178346165486703521571056046597240861136479454830525740615859267371344739497491047663735887581015098889883038470527946700518696310904180894721913958543298293240631134190215038338781717519642146785759008687859335785156947895247040407045182952258652180438287362841960694299308646806039279382541093319109577291836917704950060134289220871067633538329563077680699234769403253571738238826992765773382905475443526111473597671127645645817433992450690116157813441431273948280152572258999508731328453097587779519978667798093446562751734010506070558802116083734038019514039440030691690259582073375704572382617595301018285780661652109922624426749032004124080762286696556190451898439812214143936291916916678018861214154570925023033439288740854432995805024618803319776277090368263743712018191927151234575178533281612003372302944751816122368285076410396795382784775662145224514529620600525061292274949758852770347627331370329877568944770290038245036545546665837320532497081982459366159526052680837940693986943799903686653839103921392109780595035762758720730675132788197105562746005076535214115784007239685555692940701897024619087814573490002537876566440130367025766245229028871857908164124978386253465933533398054668060387266811022594048659379507992556465259719078594680068931153893699206012585039669988353076515407470724749852338250199428497291745162958957395250671530757551024002261738356157657189502834941439157762136707519699703291892364689560450340191837235846676916923115152319642415652378988380900460082549595627497740873704698980676979774983752999357266928459182749525230984686120114605310211634408157065363004138540069352152960289462680141998894122497568325483759470860898280487671631110160799889269180969517122375973223948933204803838191650860996411904363872253987168276013009093438603084513895352098632689129507110258862130704217057903869662777762629782213771628432798501623206097387571307103190992067513276510711380494621913960646426457101578923051199327973304450342210846003888391309956654793987118309825414605480299033978536652421680490459969331940057222966884291315425985312360124918314046246507464564198675744235160563920721184102795522417020800808667539150111966137783119044737026889113672957565162800772856667523326594495690977724448838969430274403093984588689333595369406551774837859200872972603877757710326191229651811968077699443185215280088321720267605952892324332275827382607388872681501169573189129131235437591892819604455361756094637217123239636381558585956462045359638992864756627136969663043931995452790266642522818622487869626069957785419763091846667462761841133941446072293031422819247545288809158505312600623208772610366308731268517689685534506014758683249089042895491396577511425531057407073403209360162187113773640947278825792716687626157891145933750414847452668334511979074102028812406615341757963420217085620945955569708256208477514145192287983056726567188378374467090517313920967628460969638439974366919177525762319706707398464946903840318020697386260017841561814219000543545240235647979815208528970218808694209782309471008556861990735627167795297403604640920951749982590102900712807043785847827448847084076379155422852704699030462993984712247538254877556686177010808191310382995943997838911160254455794217794619375712642918075670565582377623320829124238088214903875119050799427142288825164270591943097953005988998948614392956408954763569644780846718494052730961214675490347199247224695786088896930477508216263059467948508548311939471219103883580425058380258361061829106898673264647368233621454773690940016743067212445178408277295772462056020754367046357256957104305344366380904467762498509563376689010034324330749260873630450791907794735732374730606251581492858083179909684233301402048089287195906561661689368319509391091488346834166392727819380728014079916607635732713696091452235116679018485445325195822896587655384119321674754068700301272464290473987757846812977307592079824184627300029251574502448237852786636198921710069621541975152623739576184154607263837413631082678960676546924433465169120499570663094171894437405444491275433385436838456944079400239754376733915925033413513271173169230390386919448405757813293490005457092694067113247777999141356161935818306418428253006504490622885492999022221927305503967831038793067700835984721459544408981853769608523088357526538053769819893296679429116855061352815880971353694093903972062865027176374726451940128038630210588152635717347744127588333578880966962210360273905321993314789804381941475260654152638582930671994282684846376210779131682506705364342699755618260185202448444234054661141089930054751753221233215404384567163508360124500269043740641452995542105318746790623900513747941741996319491480395341792599639062154430762404212056954647234912223936635855132670954200538449748800177457316546628184416711304057287194900057572149269992381428197904681671698497416136784386471413882290447527268355431178702248498256875102615079918721315654836356675950714140421300219976531532760707915877228732392970269922197729535343438422213674945192344145341884358195859951660531038094433226421621287324108484402461647337722813217413391599553147854148736966345378709714773675912221765300437648805697942053111316743463135750211593590334257898397263390384208733432281955434638594177073738689752738085285557297381521478878740901810295197538029216993596860515822344575706539090143593240201363740733967833495224623914069280857711833800321749213530361377352606079449424607185708499202588494713652138994185556474285389757356642545678133306567988871930119992755101123872461882675503347956242743712551110960171946576336822908013980573644672972757221988909061454432856843093899963849098164799076731225038391884119464948848851018060117132523338127607087361381226165313817047387719790469225647680976790279173857140137878948330415655987848798508571936895092029072163377487871877014695896758664893288208761140070432865970465726121899029760949343569765283672177122784825063683213992307267854226176173441275011951769716631271611801279980705112849868634671869492880347973366014780405679879242865813484811738497974579787532809453166065846977903249631282922870741756607420234342799562376763596225185778099608540576615441954801617507502120980110952932711204862650214554147719879354989859239728335174835082341920364620394447348842043815347369467665781249647766989706699847458752080136509869110310596849310395490227233458739088597074990682533531638104824161523667580580632096999882870857334080485340608566812598992806602213658851907458407068343159129181934055211087385125341509263687973180688125789609406626602993163637506603075083213252866767707360004468786955384550378123418124004474598761839373462888981133055401270886170038122893651765168883173689368161382030259122018595066094808121017984329978641576324846705644140790433448228052738969075282698287437339525026048149588375085756242526287385704547023138792524958023513086292223496683787401671107008135113039927794176714752589344923246752304036097800610453099316629807788353047674264222386379433734252760312191939433458329169714642014765528055696850562073600000373331232026547164364915544248258161314930499160418009136799623730882981590844035281596976953068174166111033200097213050995841260831876464590539134586289239958590812324494633188149377957904002090466509933975496016642330543157197823962662974379933438595876938962109690695202852051885114306813689560396939986782248339109152228822888588877360276350593258420762017010607503117311532610771307607298394401714529566527973526104929570729115062220250058036480581806361688968635964714166873866838510303984516845135697934973150537537480125248619579510725091061068607219862868771810056407327286330834122298353219392626314193780474291897612693313609276330683669889693141997568665075080198608863966891684620377292064491300803314820404511648706836584186701507247179872604629148125773116795561584237236536704649686722520163033510693877571580257287320310809379218480052237096610247553404344669838418026466889652048771706907490061619907669702206345465409079355322055026807597986975548214292096076487772405771920997131516037257553011659802927845619621475735766143816908554518951171600236408791805757475112134109872300194612669504395066034308707653216100622644533054163325230604140577284741446260402560765780987089469520954927031051494042785989691625731740420498188853366235892143255933096019946308552346536043479507158825336728965864478289873648142683935956435035453177620641660420254019632045933412238096962574387731450888930343888832060479605156497781409672581709525377112681329392025063382320130579655922039983373301380290605830701382401764085128652114844216458383703905195338777081298888821447177786390797660505828618977687395880076887531161798607515584265299403369064035146836294688873900671187372276455767772772838842369570170960385167788779221864874912933588315410808042315946701991436077526536502140516852715006387049626259564118762215702126499342957698987646807922126827498383488294726800444593480142396278975859631961772447882624856097738534301185700433638019645679174591585796455023646692592665912819968334765177911113613383209606549158961459520675926827557046103708357218044690402664554862109925587475912276048377354518862706902252138946069846961367147956597122539565676992671456070303136344969757713093095242294615626705078681039216851880971936488099777230335250272917285031391977552370917189493911153097967029085783831647145891651037494527628779887922866773949494665376229533064651026305894999402226524638648520185487391833429862066287356190721706057395592687282906320341407013018500473802628594647123256687209197689032315855667942528764813614434742074395155988786393454209242794748239928307655538614196872324355235223133457102514903284389580412947433140034797338168379025929992977459254028661209482277234110665123850073864836703035101525139978298650325366851561828687724177460480481724072109096576169958956886119326043565635721979018199224534058507597165373053991153530159848788239296048558573663049031426435639413786426345091907674516988563516948443647650995054673803242081692783219778097862224294469740825042571912876491759361367353847188567052976990728721948563117383613529254193546410619214641571860431146052936726327807573439154645825459897447445322497311121529037557043616687085811146483885934007841392499458026334991777695793541803539041021637669603133333428274431197327219485759371761183044343019307054679308045323701853350164170779665711804760039854885369327466410738021282043891060453227738940186461133294070873188164850955840765889053893210830610293091414273496568627003272168047395377688967239718676552815954183355626317552338247277399007918868841619358324227683908514513555563248112966015890304805664736476106974486457872433663062446047407065145474734562453917439165952061957224995571610159226038131477347871952688305331917367848877951597280824922037147975977763288500484754336126301264918791747331285722330262442455890348728833484862686039792345899506831369042321501760888766368229769519023032994663632989130802086481626474118310975436008648297413778735490705097630040733314699447731744115510826695467892630121762922098682433171486941863598127739712286914036694910944212255969222977831370618233824572994393323509825566227925961413365935839666981642916388578700360724503221468655657192105407571025371104492036032243898667961289105296132297882904804256770854762799090461171857971848448447317023737394405264681895515711590474283056738120030405078029306566856567073316427472717791700690658504741273923883190864823805514199881508853858652375447843617513019201183027889398657215620941608542004955488793197098255053558690141852906179058131344908209753840868530002819032044844920600202451437972563400860157129350760191311608428941312023655309780565956281772596199710888883024390060875163989942985796116671778476941235821531020069887552674284769422009047001078698082849845455982535903536494879566779648632590160650484006859204390171912857345097658804357931633117500932960299094302481236894587006659483463919909082938816748516661428803829336404421543364601993845387468028030222818133746472155570492638763569847377865108730873443567610244351098735107341450122707462764336981011478192990776429841540971794539492489672625441180789563705246349382102623386247867861761717152609052545294495738860889448036703806426756838111175454390485648958930137998976917470300912561556294645091897828061869838394850356811894708596976095466744912823882588959540178537813130763411379022611656401944553455341870933510627211906478034338236564447719899761524962349918157142630248935231016501120234109542557145915865652975489460989962854162022368991770718158164932751571711228324594999743242681867143971529609764195398336835676714430192449956204751020271142495303785723776146543208173117346324895239574436020557063625766098536742917033317812488587798623933775090457005579131639229618480963643366565435356433775437751168940500595350293710108718121386538432709397034470559938252976597385200511343587720599965137552956931494020174504098105559703685957902696116846254474188942756249467248147940863551283181348747192987656511966312388248116404550891777057238087938003722889139844255223200410611904617862820535117056364983071567736083529995823814881910553231067816452159467785607560580358669924995640065019476074008165198735029722417909405376991241640124416056518526860590394022517438169392995447509924353138821344951916980181846211110416698166585310764159782054666474394565528403912526381453742332433564652355733276641730860769017532050902250287797661743517106439057865249349637399124534842688859078905064320126090013534638586402371079062287357396521515970651511547386252640656312027013021927168245991342577529786220122130957196491507756104392086295381508996664485113994886393437556859131673937242005603284727638270019634268378260852868507373709784618036022471256615983130438370364501706289250009048231581536172808940093700795561858324248882418755419195966071249622554686546408880312493927544679279150446171283703684601994899583118037695043743798990797318366628325827514809659220014386000163643297618984695482166424364199232613940754911331690222416925076517645578319302622663420655238588859716843760256585060580760065634480671000951940947793096619232426064124819716052706987180624952313241030768390753939891108621346774937364053831889983013977981379433866194324968536344990449975696801236678271892067105098725588857123238214285890100454617515353644640440185900830140569041134833284499389688058010447418661692872481268564903865704092879487008082020900273244847422203855001907900544556473681159799344208402988239481037961764407742166738576641931431563095601068473014227634698153230569313263685542038523453011663951688850599673316266327682404196039190587366847824336412625789011321212440770398471365974471486521094251328714007612187114996272383954403350692433266080239232611781875916043306480198036517314147666288466849109217560010192268614861848109895296865326567151747679919907868463404225294035834368022233560669670804640933500255804577852900057300053819018202465906476194384841323886886702176172026389673613583066882731267314963854315800379747289145463817228913755296184843033574387653999613317208912233585606346650624606362441679295169804069822155152031327382379577551820297521748835706470859979678064488164370023230168296698602545971944137852914725353328165860110978869986740373730060150715337174266557398235527463916251562212162282593431259892902088267191126977078739931862709185845040964733393883555864283191194358383672980251615895042246451985187479120963866898353114854633312822203801074969603306123590497544953533546603597374651292896413848892756466203346567670984671127149840984707014389456913784675177621149405471738555498177079957307650675252656395009696032779997142541113547811439813364873881585774486776371403277968395452167086718317407043305706777076636869974553585573103789355797995855517982244242725222522198086838404149757404947529938254547525811689236031593508598103302189387661265568436434688538889875173714919176589231597477161982633450819830435607475840339894793238416617500960602733403683001538906105826851160447367431151632050051639305212480981714063008417681566769458339143798173446278883328796649996680273583032099596745670500551379362084035343861737033254185085320852520759528910246107846370570998629175905868698071303906570291401074294410788880902564136003497299522797115786817862969142634484891460089308043192686540804340837744418521936056088427643220941765105415703233958738113825455897537280311589124429117476916445741630844016841960040616496143166519283285342763248054462811223041504832623861345099652523350554750914402055966553388602168846106830293457295344202660148724947744270985260480750023602363201212413335518958320069602926081051496336344841273667427225307870110529312356322120524794101442082764118287429906171794094510549530691013552844542059584807245286143446505611146613524457134476974833269178817368831681484288170304085429372454535124931406905003847468358488015150512932785211054154546860304722128260471972476729535532425395497592368736203250132845301080870417113300489217919308172299499871408603828075003250087262033605930715421392349543621735072327756295073558274184301102542830270668640823274397287394483420533394287800311336959722191006321376117382092485550468888081622228395889606560080799785492531139661406102187874804734084480415283360848912147825360096516140755033687764716039349813964124725630227737660531941923309887444080917612824755600235842694479139044689742826385375014054391585859764250740679525105096465019604913229627464426781262580730885515281415762671350228603114228788832107485064143230360095791503547694903116726073086302403418228753039617424417204663451977847389876507147286351124062887462359203723944524093541743789525677559577450786248299446785745201106014461568144009160615466242297246169767958646564515270282627565494270236605491657695762759394746196180143655292358280968747234708098788935241276468970558679846123717027406219349489267448902294629345863698041796921649629749944999589847798029417810828181458231561885318953560578760443334874589059886408289384520515682404624657858111406386830114895196603580520194082939690880023037563161105700427499926558389427880160075136877170828126686378207161845833838597065649717586594454182326789237571800161376890065548825912008362796238663284393799758801896429097687691487122675137968965399487302867776811753161059588039684718058226489731634734697372770951395271288063216534914780568309759810004770222933482315536710226360862823482817445150939443362912365447444183146025168279433672293053496939208382688136370087602104281878644671859363671750654088012772395527665913127894403901243991651593307019424423677397971884237018356837372164259236839576155734780993954603190318522360788758787863657132614685584694154725338954951917411002190708018746173171315243154491595591210636939860537434658358708968046044187210084522060324241048310470371163486511876049521091475753192502103689876394732993796673810089044649414693701194276718809286746695088818898414738975557876810026083024166299598357158889064383503024010368342930290231994879502363914189573539856229959317405555018300903464757109211304786489696232288380246524493328206586293694852612959885006233304724057909813686001682069755689197620915042281946408772034189446755295960631646752055027639150321344147596468844373118632011660900639303504602403145156525103063711654181687656118921175703689786066964522211865402440142539320502135030459338387389508011941229264250688014585689969081524745231445873729258623923239997836969893737637727692371626739377143222730050801973630541888904062186759940625643025646560229578735999674611617147969203335828167959164077691827899014580394003172001393012062486723662784678049636493525645362853535388519807784369292067942138925457569973297478627824771984578000312141520206049188434780604431745018997833505229248946838711571767577329074371200081677715418188477718400338543252027720293101673979262180131332640367162361842631850973743199653081347483039208833593311032867194652136559916798685569700503147242104648003368657480769994769062580026360144111205270707986795974464737936229131853084810239063834551810190216839994085293464160078328019114653428464262465489640922792755473084870136428753362456844814375289010516137832871196556742649932489929760174924061640514194778196787503016318486588389680806685508690134574108243407036633636536831811852600232218699774010178749903843965829167351895303047104779839137485385596185982936412363044392686744715120131750813434559758130540063743399627383528666626134882261329307432722219739023697935094204478713277786667471745258727872406577254170782164466765289346706909060258813441393132324834563524340373697571382411334963565136839253518168806058912789721389859750754813632847350279775620189253614956799788836620075700532461632434441874589262594243790934537506235717780690185418502169629136909498153045804747250944808019078330551487012907262509985876569195821598018105335511883205738863854501576693763992749798019795352487731285672741572574756828400132094089128906669608262440135540525750078984498703584380985635349998907659759191445555978297568792773494761488405674501309898756787728752771593748992782943836356836952361661350385395408088501818613969220074336196487779145434514194828756009052061734032906381518320170167406794909696417650812401735620724134525018240118962071545580213676865446761480158885221793531057926503578178370368561257456540608864097851794188036547533389473387541552080017520743626557535119021821468340159998482996131233084683333799496487328128808300781138586930848216821132417406291534442753200518631265654470155619214629436515291450034471638586352487614943894955730702005088384223884744193952920305455311850325155978987190524792398317937230237111572756679534535774884729627431975172245494349595116982814474563500700126754509850768019616044568969551450156124377761446321165902600283087792183343715390359363581107753085305522573199142339836075287931317786132542344395466436475707492881539174927392081482855487554667733598471351166965295061739884421799141896428848173488580599889178763307459274655916279522472556871176913941299506229552971975075182577482875857580273708046131931395881890484490979649876981976316320820590624875053970503123207845671033215567089236052692799085020676825344202979496325308222342300593537848334781999321769413284458274620405793060664443363355237510351664796960668657584183056949502350256570173382962651821829606209708434644090763396293578203212566630653563843418501276020898732650496489640467898656600090889014325714798101504733815824202450872199853700205961384608795686645360752023050519987758139959151402640291819969407087343901723833352409105134994861193906776912124317617741995216334631359278139877019663783652986728218998697334030993600086289299429969714084084942909786065873402412137734293829407401612699758304357728423371811683419861131324695663016306171749648116245991388348077899943555202684470189982391437895637221548403087238343410198918152791254968076368079939195352183203837117748222902788604063814318853211285089919171163408596064329210131641562400594508200094995438696910825655551516280196832256388689211298286255525701880910113780108316689452702647670857097058492385130500099557476968918172013258325840246084323739937607278557023266412250098776305159807198398034815325890987684059383737335888187255489017868387114913251913262808392452066598629564868803484187043309811622159679084800694598400813280493404882710112194612048544160488100834454969825931387990871698358403493746702495629485805957158746943991300059303708838922070247458979072495630607705035431007935563355272618800797721307275540030952438784904679524334549086034848823532769190270578541156301905125893967873613731864726251041291114092785197009090340311819274111319214210746336023147538306244798925284625129054575444044557044410524128580894155031061677021598596013932504390850530843850175608091744117906669037937750652398508342535049344847488236619132877687519844850535325415217192910081630768233642920914181296201183133523127988372551978167737708762282027611476451889666721059287543845058874532707669754151282436861457503816374276343204290705641983746180905511166227148961911207621120155473095663565373794212786900428341357811629066371098833868974262616993428809035826551751445292907239277483790345286234741569402786396368155787143883202899955541671206185385762417629019107230291108114425673379922743119580588897896147036724398738899240058667269075630072640596948087727784376693137932598140657805022555817191146634877596690824023621063822296331636740685211288474260965526645058370081553711239587201928499684778523923077010557132706775840960212463511478413729018973045365271348653589564553253246230238862586856520809544828110371817345570501708851774714554529916404586343925123326951338511080719344470576488410506481037811077143047811196827013252749141616553626210871981775750186440413070756091618811697471606647750288804991343932952009424576025992710652525609657200911006267389301950189113955275546850697098866452522482373734325479999992574532679788716742546603761595909294019572797728392522571758055974162983311960615777668366087115613242604291328543505039189874054688216472007426389952702353567670554170563319161991007095590565811139086484266990309052523801929932198514078757636317975953784953326967436319836140250339170333556020132550299633657105239926141393546298622164759610931968442481121760620621729020492170478583420217011150404014152789912361592078282686394125197969280845991225905603786588476004266676658172767025479395136395070325598856367874784483873494554109204613206983359567540382812483279457378246884359022738861138638854069203162394248505418881602007728143588956183880602530947767610802246376773856510400171665689860576477202356485848958070861760362408192375874203853339170425290265451875848283274691049689557383256635957165239243935755439202654803915875064012619139226489438151809320086021962750052034328161608348023104940577934329855781347024166464680558329172906155650734909239171530736890858221346078148534427178786151638235325637640180809827173471142314244686646667564076248746730880426890312060351262639841256384874832052600504985623915006905105847397098656756402019390658949353751793784291575631252624724192697544063998891012265587937780423680577175010168841255031772736453050751910181457087533189896114167557661124435755227612862194479649248785088399361658696120618652997360055771150655632384258829698915061812857606976522208407046352602805704146103971563085733641941735073923496799379573890607529842546571344000505374400057973716192883105272413524670077711401527015207435428363466911594484156633513597242239608628060557110303736060438456264698968593131783413885648071849001978063285247175535542704809335556949974751146417678657754029387843513497658652299271650570445629402707357552068697245263750862697574486967778401325272759726382333285059598685304229149540081188637364140532173396004541752495440082069906454139507871155202201360990532851900781965105205163449887963074132437436848065564330053839449317971434987736780258516236950117740024250674264764427061972238540781882301666946872344138745115420117342298204027741990363427555591768485869156918673607324476811615124758377592475046391180417476176131344165172506066402014600634301803992139060609176495670549031324664674575219779703413475345781348329433543600722316573813053278127371702372322345228163859001950122858577462894382726741886727567283151664456245289957873475148691274043264884584469663273316437482864649448568015510880624177761771585396655502039615024428185217923378328642361621789586736557125015134212609096387824850682074972672821829202009486235061227853753428359580580456025891844801070175760892563725689523730466526756306536572022897148178430404282793571166071225210769070959218579790938604293784841490632534336522707995387837679237363397580649358975612885609856402472297154629924257637381981633380158557036093199604493283645173219216721162595507714211957753280831070500761648542226664299091622721637492693762072246518564866715783572934794363448441721956373158955677956478119740507541435295561120251092617757648063161449892018503934885955338026807745036359293594130938950634999391185270045701469566036208014595268246621227530702120026585801364388718247923365331932901779989417913187485450886624215859159588635631968548194316594034264507856031232654192994438188122144010339343183149869759898019682613519300696412621605550613593691504108831089046146145462827163280760101338062910354717554742582763845707759870981446633202802490974621746577632815098000031575106327039959609917131283964662663367972418143429012723095661266303111205989827940009908962511125325075674029001037089352924854190127541881661955013277665025532360770613916553107925577666708931346303199396249911261829820238676073916493175091496250112261745363151279560152226100736207712749542634965528462143546982558178038543115394660673507088155107925725428145068233532559063603668243933331826430189813717419053358504143239799298076458649923130167568307598935855289458695432867697549952769715919593090772837762702948105050707162389182477968677679668498671307104591648798335545099833779958821700290365451228295528888503243626077119042351965382735619420145799356065254449630044610602582319287261199808158812470464031250043025600329641995364214277073745558806990378224465380741366744454295873789991084661297024068643477828642268868554861456854692358343698000019487139431370425333851311892747608349340121937043114596466175527121644033979866149480382371424694458416169440747580082565942684194375279595569919620084564555326401687422068771864123964721120479174806903790397197130660661576346423311229311640197950725758278861272746203577081975230679884187382448572851640259605317650630555964301952039918887629394941251430484031725732524595446968764969467441325049602354622158280324250711017892111233254982842679726479608400398833295867097613992862700557934744350766029428305939138229569314317638108689738850091106696116124207332724950233576234464685390566764675591417810763526643367161367927850100062549265774202533388285319057353145660390243668921544560302279020078897069765495526017981525893363370175534365647810718650769398586881069892113595022851284070193278903840806965711309576756175704309905765848162827840193284748005137383241193850075478656863052532409032206918117584188317336164293299071317940563488956962430195089853645600794766015204144963536140671865706790910863676695595538401859622836647865672200944451269117707212651752239816190501176833989557244378447562828871571997143425288480854287839510706475089024061434891654653407748247048525927294610903987303901676396772839613522397194282620805084917804916277239365515731493685560441144901479544629281889354350298095248570056771768036886591317242494543452866791288845135308598388404537490357501189481718847347512955373704320335998381873195710841335529034564726126135865485404516993091380435729318652657085628446608327076487364649702020400625018432314350230640774533428441250448534492071999874136642299216159065426187307355130476952196041199535509690842829549740949522451293853165835539705181666785839524702759613015211023980929101852024473805009307089293646413661493354830447772407286175605278085486260780689683432671654223240986087979253662275617891008045682779515131270205177445050049591241426248811120329014568638029306065896413168635925487353337899215501462407958359419838965692958949950616910930970501947661254978969693958977003370196477088406630880262511343697495042064960922076285719203083561057762480681998183017655928085605566840896521231537101418456682374888388117355130509894662217120381405817824912894910729719065201103620660538862846262038005150461695930574269489704467773312382328098575470058550114423856594287107478177274714077415294710145932970795283517289248208920644162472580833296772815020740482148810232184493830831763322773781464057397223821835159771197132799142953302641040317816669968319607054621246918572446488257619249652305125897436546778557928394582298593096731506261900637523668073678088546020668895641625974589243657296085904593857443958652497697285667606350553106906271516205805859508373158202294820846196769949361168936091934971967897641776400697501123723540462890378144382914764343329180299530932870174241465335336325754264165827270107961822000283991766484599942557684613221135274622265586954576792930844745360541221165938796360161256936472676513818504622278758811288139384246505125259404049640333240702397388131370369956762500671889118235243493158455785292457972812347471389934629482453752608599806445955143439535194720646401805210323399217044991005377604087998402551035528429566213642718068716910375551765360289513615858929157765396329359576689221975520316910359460216438390783112897843349931292319298531230886294919603551958050330297535240728136058868846312309739247466549643708410957809187275211715748989704502129976029477029573586668917277985020760243874641514750378027572360104389835364971891999550924716929830250833019781801158183235189466967276243551055904144894081057402956793174123550504788452850621930368700061163520264806762076879659494100645838288821183668690351791097268945143395698823042301819471298567898382889243319243679312156516057771449131159488857523841351608621349036049449603753716666251153303757937586375627548705973524259465633651540400369382647472938298682153171410244049022361497685318531134584491648229433335994937959136162097492625313413197969604114846843695120699867446353494042985918703524515384791629125724229988056923987013259706880045368553522979428390206609937879163045553635297165480997497319852549289115532526466607289023021297140590912005555691556272033134108600689636380064060397638574332809916066908050976834449149119375734051947336270193815759657253811609061421026772590206621295230384220548567599745426827286763974519529603481969706704931473768786280871677736740949141045324714381010613256305194102245766550387743405880199678511926251880616449014591006183815969541079827691166562057112412276880498675483877558756075317110927303631650931300333225835692881639606009524181798263368726450281811949678472931014451800538761460093690377501784005763189256871721003439617101635862486651358661950152202788572703630449095741070675686557487607561021677230618044749124841771290815992259329083293887993424994995184503861286623650707019015607679390677363603104310523962019873173493488453748749519832462336785213939471288767127564773694307387776379785849748474317589069462969317175788685977247373083621858545507392404986546090064213140758818391634139252231633527858354703889676522503307648242401903476706709082700739231992420698333543449048309791367540523613510835444145904056455578311564498832700321717881231010270622592106865318371129195227018133887653222386163274310164725349012876706047675866405772550657092511590574082487005617479164764376932283047827804807804100416513183823458942858361852726220757777140401943769929761127011357382647717991205656195286636512498977687364280396153956635787465303718632192789023231665233286942305846832857834923482081109452177626775718703191365048045787347064905953285114955126935274600576368325449786450676589328480350300738867642271745938661938352955241712410169615832408286669636215317087969074618460272629547728417228407325363240836834654199097901030854092309803195061549390794739660139018883860790849590643471552284989652070392314014375323607451796693552220406249010007837968381130612133226295957631513962993753989723851262104203585320831667230616470647128573165456928562732365929357291977180326966996902104557104777446052953119556171476050920680819471877513404584330836322735805518245973961913406908542160324064123376110413843117204208854590090791265488517719410105471866671098099243819425434449292768449523345866120325969229641656672823466867090953420444970259971976338990070222893197645025157246504552617582617906803747781677753338442022214617862754584245088451821422953605867342918892342568715930536762136317631672254908183356862956562983720330436465266928090850482009855713402914904687298959314010767625379155359904884055895893725000724285398101033186179913922631491010752557604072290004907481380670884853350601327006311252035274704026859339421474468075492870511512232150276786573849715034440705428742544402001605934169248797408102823454235339617473019644390521596490276947627613265245337878403532071028452564266342926467835209662030077753500209569824710036289473960382574501470718700908006649419525286548880164168138939891504084672978944957726728941889864474234483392907018413372565902601211013173228012379913169113255921101769175029297119854268612351570801576519366491286205070990539939919211393749511933597645749276621661629862334129477016000517515723070825044461204808185083895489846636879593638336488154810684607668538148280604724795562582615176173605542739947776073771735589283007381175428711521076509873636760178399850792759616190709959631301916414228701394361133992245756046413937778654207707308499883656041987453853081476176778811089207009474530634050454160796736915393839729191253482597257630248793076895229080937661653295678663607343929274021195229042301449502207534517029322300839978550162283467544001668103803412393562195307615109569616435439351201684076186602973178771550355442503806062006379120987242118075716829064070653108218824926716971278904753508406431571344536212121832584363621771134277396806914843175376021507950825511941055801483638664630358652195855187575089321983493271636910672462610377381034018632102027521260019836218301707176704774713676476845468182451761412756318253945871393675759052155817499850129159911624328390227169788142471786361418999835555184563912856605332251687484838480738267026414790639806944441778188208755051488113320795826129593277909797213431954020130233044425583025126665258990148546315276746780892781034488519377404620489758739425845918045000442533000271508474905153687758313995106440595238047279613653662515126472885097938892695218742330961589863027593093633826507026877113758152773153679729484386989087245008526756471435184875702704079457607259670715713684115720890914894299706441903775079482989936471969192495488874687487862607184974523629108983079327977846912807806057434251363793207420422103498981183310637499368576785418184152150658742580992012186010162094839146519786572097930532702822235998383333701570391969837300991851486873650080311025490767591918788307121178198553031997129337975201241023413069774768049948641635460611991001987531112401580381154126770881438279281672118962006603987631421714895451661940813648734336907930672084980897877244813375266575937242332224048560740519221455047177427552452432117611490018599851519091481894059515316362457335764921479622929069331434124877013366921102408230169024835630617475013507542044369801417045553112804795681564398271035671087482134463692120048620036719203422407123232042431809225313509161734614075359347073224721268338922860974546721100242289076251596882953894519321916657511246608309994188875916379031408985816883596328690865289676389465787767439235321936679295510806662027266665317830271996870870062862849266321730696061535615574605489828503730612800050330564934869769453787411078470048963423815488900494305524999538095962163920129824773813817354561694853600810636050315485210458641099497030409025310785045115958330501010534111824151578519147604803878786431256271242638717033106072616100323860342902731279967404989937676379488128067627832447414320143853736319142492703120181251348467349991429369671477918491191415691094978682191792723282024003859901015484355486203398907495296371733366703996304540159668222884179039456083032963707793701137425588870358633616417868607205269181112021469683632042056048686441119148554148094494052149650502720601360469685900151293333938349725253406040821294886899588780133559295398521414110065554030116235336142500626963995528946137539714723696460463687624846999149063296401640384283757304314241769675412275563970780067761425411865792564496948077077734496189354571966268038503411242125395829506311798343340005227382282284198204856725512641589718702216138516201861650627952398817803560617011278547541587333890535575407164637676574153162016538241898299685354664132895456728108843270885583418255990731035284493019876573056263230394023210493551081847823201563269923829541912685551961002951220891357477048273796781436314684904559298307131505585270980181967664908733909600127795969211672412837062359001542755812263457645577655398059563240006080462753678441456894992862819004991631099820736437528723477100963473587094256081354016858235537156976222787643790147111375653523928673642068049055489197223142258336776474826212368956700634824974344906813427794761833677460835189811819828112038213463797459971429289139398347762520873756634614784050485004144481241948686637824256102459717043045657687229472118729547706418174132827295777460556254135639894734094461720230860655896799928416467644223514731202187409517938540223929757470119608125282015263270131136601503479270638952344146957612785641528328067278499632736785157886341086229547363901362523131122908517465379428971299333347117757476690773292257352135081279981934406564050872431011928456210852762689532211577702569643526300617187875727921208382717838740041417415617735013722631884988204449686145474183191001004135360768938888735891362552014546959821649517788073901948877042125559779566354593537819387839225190758673736822608526410312739401017267452431325794454400825021261799208689221108711121316845721989267392214535737689584651322563566914364280331023534871486198096736915007568761789943723686453708096811993834033149256546646592259051748355329526704922498508984809332901570915902469908508623408068264199163378609892040457365812551803200942726881559871610614963076382900028488368364003249192765306873518752097653992611565392981147897222917657904456844019967901502976241234975208361486988766650606317281617244350988949856168250478229168905806812245817573189818118525799757050656683092285973181701423823019695455532933015272528585342736624932217215224793809959797326448521739213309173867603706878698926911247753790882398600942796237975249993509384150540827426554187879686423692861304678148540061697996306511107094996046502008541336771139506234777830262439824576533460500877115867425774739990687973525593990493428936966870478744946047758195812219247278466179173868313045287215317380783139111354735281176270761591690464974640492809707844684214827380305109397415000774399686526132224276623694149336380550415646920609625841608835512604008426431774903942422025128723632423823524044386343418801322204230967230992202980316075011790794558706614000348905369380769525621436325847454200277501397386919020313012596857492213325224768109281056049875610944400078455564465598267452964154966250168230529320155301937849543522701255427596402621781265287045742634954994421790126654688321397134921208693485758099037331686606583679077703174886763426199247064705790443976069281819961192087014890276813594524870678289871771212161220671257235199244950164357859698771682843172744634657625020301863473444576951099484254656931982169692111685506158190321664388246164499588071937616578266353146042098860972540875772247142462653947883999244037913601755710939693689760803703414087242919445871943507487047886385894151965038320707906201839770018999059018904414272390952904094102430307228262784099189995627250578954308025555955115561988042249447613301282439250765711438247137832542980373386987945789169008602467079108718915778815130429388535064253616609625325423483163013032104907217412730313378185608517585606477184286339236934917085034515935366353974993356621520807370378053812491167157165296428717131355666448882266308502102142293727695764677706974374727781795554159214324115773662469034108986733491790564596037893218836233617280312033799679317557961811026960845147062192546909789956595794472139623071053581592091045175783479337226070319138380945440654249284791230025471711565242096143583697586707902002101277943010266777899953527490520247632078337954392677418238923849611025198056245715160838593207455573715008925519999260151952257457088864863788874774008431953749455758560319264164808737555747401145403688901310059045748721721203158279292440269887330877842484162387581462934302510486513520911641012961472191294692301211053278636085287720986695348744964799930012675348712212660420231744947230020777608446174908325758834684295179916140630875029461461626445581666484969138687416735104439770232155858444316820923399735331882412944097283260711685626806083968640469378459018343849873538335499908657958375889270505034775687166896210532792228373126600958358488175367538440464188969892112591842167298707370947737756091958144801652685824389909067104940021632654661047347039191076673780940618250603038837175750603744047227810042021803819749341904071084279598591335813336948124084145510938960964283358273487780659373130931438948201121792223852696547730261060492957535206430426114929929701571351832097811177495947563104118062807222107450942644790867992394963224384641561920335483114926596665335036201501739686284187953014774135995393246447752586044091544385774123268665706861764973593904720587872037428170137240491862293219283492248006993129217967927300487917011810968757887138763043434210658859057636815179583089221545745746069949735276785551022063794222260898607392384977325720276726384702037160527981518335490229395696237386387075911410376378696075282377468028018258256521472339542221479258408610786336215326435728114842948313260057590331164124682282382564328481370785974266410201252721184681914772460430379059060426834287514639556321167242438275109897778620655443350163075403956594025933512720660994407385789547359664273328991920229138631468569824909406427827419887864118697851023980664737507336078564354146131308577468320563015350766995519963983237368921877562468096447580199890477112238774732949089490540494058914196947782275204510607680266013802210783318570369008830868583741910722367349199795472138145512989371651359414328640117270064146973090544678865661007479610039058710541911605872472275423043877786984735412861320761621081685742633398493544881050241431967008122878743131198156590651064336772880615303093611646373802070687352145205636196518369658499797143534893594762694743122314159730085516982009158490480233367903578541144614576484005708581684730494445977046654962731239780316493568774634793878531612499194364193762842111259579105180766760764983331965855487820051760580938533225453012963448575213321886377432979680817911366766137057529437583358847033848446963455814551823477200980385271764652024527225158965560093873640638743579067374606052273996037724768103920334859133781136319101647490041814911001074054101122987029528209324583120777797022160054900131757906337822358183904551879528244550535197158160671676225675109754012003448119759995336107945283736796122413496980756617109187361603377744519145773769896391688475676868950526690608552353444228347615099286534310012894586629808051315472830976799007254311195746350794778081645728597790068100591894050543723634562355229670233459470188069418467221868119947393999699693859710613560622725250274434497727827546586033419395252025089144462730913421418495203414431254112198866020345879152678504925644401562192131215949356826337363483806997783951199447058397820588226423691763292743981476028279959156606474488268488497110060001898078850915504771541506903717217023527448523483834729680260552783772105002376810986858437042162921741211827580757542734849558962366069967650299271257698726608557595811940889123667128146768857488211655704404014421359190875642185575348554264564526103167085744639340086499083470120794556219441708197756095768520137662608474313590542948409985848765619246586388447780739378626697495676335718788391540814877818640980510127904618649031283314700224318508140190082149075731753299186309614606749088801739240860086747183499550693508677341117849994987088563246058710711516231748633471561626314264518720492775984958693746942346484101910201656900857896158921467249548487902134030153476553007337542000432546090923758585304190096722633879643816197453680238755426893088649259343563497821172750419396235315315147642571195325616242029731624236480750208198581523010004250904097558055122260901229341658903068653849805303665087123828956129768589218292006008041721324398268208763091241152097499731142920024366460676411245111198216684973109155079265540272946682706176303292206125414117031057475412449231418134849851723905871013005447880637270973689975183106049426371442246879897871442047596397893756978988522782139693209365042211929089555156750868566346287913829359454446816445919273804111077081441454526688976764827745320646851745094754557170552378421463158858557268300990861688621384248540925898268612956445162730468404816268100589039359892662448830807776883094655526796993930183476319554623881567878340048298993227836306492992334082417741144299696949638370840301690157984218722448753459230359871626511563297132093813525995216621951763521256603557518401096643057124430950347658057293449320284190520916333374141611641548084546819222036751213851966643794535678032048227974908899564292355803437512097203048661011474411890697580750283308376137157947728343545105312860827836265852644601135531573660828772462613743211671040909196248408160219348297586701359649217673411574168884227164796049131384980920034364194659870322257238710407607463493248118409559872389618986754670164919417472128091440718065653710277120218627534641210854626272905302553969040531498770024404083382978082380858648818734859263268944002916652793752238593619854670074933092917282293326341745769865932229242575215553240889516169573509215753691616577644351684797709292919455484784579559942573569872893231903620831753540421656527309685544542023322876243608049596659666653836365048144598040721675393000693542603705728968397884692642020564646426404684966391772839522189903830965063393064755376542645872487656893137927464533875399371036122659985897520678662644240341677575261856998688440283444021016277757658438786013716466392545415537163790602445259462317973073522142564717289439293947880319142044520750768019076580056065784522493128473047615615779131870132370079132041743899487914837867768616800092812046981735231302546721006277129964121249628323387625217501774225312688841044918666180052194950531891776319894674308531177313774252588409561631669100400911050952217303925970351058578557488790698978569478807897730056500438799196795933656160957575242273237034896544509506442128049076967383928425692833294881842332265516821295086851692598734041727739646289425210280861239914653471362326165142970951092978449690083951147426901818421221159881849420577451615073276147521653953211412531842890648202102683417706934397055084771402796862497122620418285599941950538860011863048948315723080087690247789846643951690470771136396332954427747607395609778144313303056702393375919318396686035784078269926436173266810791405905504980300974552141825119768156369744406577211800777009960957567921103954958489279625920151709726922230026468786207743428511169562734539339539902706450860481091679439896449585755508090380159144002983912684616475514907645278431832992643368352006219162502015574868422163041734867456119550493688719769557416124195443619597258835133997049766319168420227433652374148177904687847187875124403895242860117739479511606112893428952637573302892101447550287725478720657829775272871419209107898717455441922875751375732486255626023437220289745209798745963633666939126319801642962488184714015594077727300387173692252181973513376313535531206237120480892524489413605256478305127371309585287602199200298298094695318887022943482457330441880739123892824142186067264500264159644467407378743353896704045886214018874579346864831300355536553840246542969313697712774243565293177857732227234504422562985771884769370455111158835342424941398623176915262525619905819829371123049039788975249648078891821344610761397711547495843254985229932220423492877002949152941046660796645693465996066121186645215048548353955309526686875431917626197157213407755144956847813136768302585872620095098397102223919816998555603819820120551196379260364785874199712351536260866830115404312277808010272091996223341006344894417898700219118113184788602518463674464612344731954163532198826937832350843754400029131929739655848484826864110424917419269465321979371499669717652507760471826316663242176277088372639253881989616978506647532599708493861291447636474521978071637820542902112561401487185280248160522708828859631944441471705302850105778531009510802942496100353635946034620815409252107713861069790587259075026607875239785857979604423340035908956218164271150898183592023501545078590910007661861051107384182976260488808185180471626515488814565402805334341590744220600135990053719539515530090538821597041073583925087631918636197468375971945652074945124049701307898839403657122000980479539475992725678296366994563555143760094842658820821204110880545558500389105767814537331861563320026903200025469044518283700453228338820424964395109033874650470284370919637332893885806222192229785566219785517384698258527448727580141193099136285788161213393083209241372937009865929988927037245986843632500778818399804036015920994188759294669783424844346998683075269229016514510261391011885926249811914343616766968243715237236375218743413182041240607523541424220602583879749373833760507359164659491691735467186926710189420828595788381174356975039827272213495112168668647519415896757462706585002462299905337230654071092136620499394699963286456449846445126128016881380338405101566251427045465068930149046587320122969379278122001559792297832444513443486463997406075705711844122836499547982219704995395585283704465761451549466441422782891012527671441312960834567189272353587631293140349557087464456081869472904318285590643965687570706894021213943812865222783586847177407418864226365657312773264055868936963375288366734536499669138642608788870504718268553131516070763581097053143865156268195767600044774959942347317813762410293235581727256491469359112170716723936797021285973680437875145817211188748167158373980167068922331535238541567244093260074914837687601901430032288196161802784078927984158430058682072268471746984828350984896096087790446186162199995622584234014180986089336646832836229713738260667157254929031195503311212149815506095208557749932686570565935674993602623029582331427773640352386350602455733816949578050395807147498177867137554869865627251661355886441579212201285087093787421034988664767684837494615950692615794818240484828446530405791813531479351799634912072077438861488181997412297267029034834336121647228945975167243820001711751334321634251362500641768889334069767912822683295432883672586175214427324056390363816997144309680117474703268432998360274196741950723185542620059322730143631843487062300122791746680363488810133654567062593033777533263755559901366053671438148071966131122518509693985095489075077241072237157185627461358490918245259841338947138416694307017471884246807479001686306489362394059905628798005659474987045066221725975175508174567632235121717783289961489380923389244517105466240025408964058076888595802041580567034342048877523980047581332607334127334893205200647081784339254631669359671405627245372563432491539414356113725273094579155000282139418266503874427416066289608498851106348302268039594735162266685745609186083887824737599929379831304646152876176042083570895781178843046846244039691266911072923677288083149223347790509929845171296671582259668476496616317064932514582713285211124513212280454625537514442197766259222396536293332182048196796039755551282386643871946715794587786102844842696630131282271360193729253420519007136498018421455328478291105900577631846880976336390050573568606127234571060177590057545276913863567670817347133431991500872923426393145549261859160205332979994637059439104933068243593394051802766219496462732284087183909493309122302225061180582196776495115096872494114561933474249364890437561785751839463793944610147664622817518298206251019912896644509191809007096021888563511654469164719708274147398352408283697160076499264723463916131030566796608578577835790606055024475953801990345611603994189818490855222632900558440903145215977878395741179094402094463912445465450467020200263318621350124951924833886209357961372319787206103110361449091084256667783426759813923622983994538595708511452360191262401721725185010788816261296995039447587215813997454680118673309730949138818652434068725942885099778580456798443086084879723649938485894028551185539165623895731354253207382452595877303213090858872666793235621755024734578567182096562992996071563865712905015704771072439179403930542575462586444484572674307815619045292552325309183762165370369168951622759407535922045194189703802786890652121644538105782220046374149720339366293656429290508433161975679682411144150972355377753697574749228869112152291313655336695968395848436518511264015344560533719749772088734829888211277250128681172395167438586943074374743080687304940475575956165275927972100479740627710991846761501344676341942286668499286361775170621965943731140946799048334796905988975331718847888301559910885996189802482427726548564028162015007271216152460146592962612448917289754151697810938023099894283174614670990423247736145264292703440428176774456574067944131865755762412087337552446062402061322825485950259109918417569594111355304782824938969513356201543439736379090443847609491286927602426716844635749883004047636819146230918491832456954208948455303348256413246097541740394701773018165506912864206948486484590875697011680444056752612542534917620079677931310713074962846103528969074303041971632317571305256262906602696089698430105381220574618318392507867794821640531056901784381080573389099929521534180504778484561532126460059456968162819015486728959353741063300337575526670369585623434652532842746864625877137584688079835025709190124630882555598169918577735521862562424175192859707985917287476845048113445119564354287051420686953741333395529584571503835180756160481656501460803366655609863998897104038861138619271999753401428259635256753291165622431640069321703602430507343159194833958134267654339764796615064578289914412778636451653496629181663875286692530033437937533325145620723095911450234969456160960148004882612926122265573998236264968696141012666836574936049464326306355603730751307208099879526321324530924342053757710120971403034554450472153238843231954983859825532087561768918156371742760988446912574581540248881790550154758420192539163675887899647105831686539563931406039631272970506192826410502101419671175949452891609792934028734436386492283197606733675889822456411235229472597699777277629392683295670501879747991528124704292568107795749740674571785582212923037627499621117967377463452387175754867204191120587276351507693758935754899839934937933890662617379500571752488812185831288730350210603678130444249585925163483666003288342997887956578950882099950273441969835990036689705296460043922158523202979795006765564135253087075796389464034032803573709747405920781895310575826844352575611711333270550254613822216998411602679545001655931253490539505563134642288283671518316759436950920778065034409964378451734060342038169374805628374818556394831385910302502330949700971503216495796547671045329752805434236575804595810553112466364345415876468791975247554749679344606275166080984840667234399659928436977687160823846304902523941335814737468521111341645043848323196513141168053793364402264517434186649379617464773450535123581725238754871491444959065513353129931686432528513193155374381709510764957784921785929432411344641239696763232386839336397546886889638907609729425924811566436545993311851514646092031331186518859681030849452843032493474966223811710169821928961329554835318612604993605683889624098475956032553389686221774566210032313925715329916578819409309395090030313040317091853820587224020725688670433593152223151021390129087954237189113446166078626937752835399355010113746757482819792883567548152280958932086080404794017232648573130819669754386033600859901710986995869226586604688883257020071021722624201090608812567106298431757192574580787077473285804029977081566331561435375744918211085093816305166684810903179778345911287445699787127855952974019427784654704579166270311220865655277594756486132794846025284917015018307104654342107954150749966218990907306637271424203138034857224824328403888591792935098448660601272519176029741249944466965476090453465938603572634280736515460159292931695635362162300797107652283938906598114272188975532067962101851079941662037884806105551791937385652990702027665869303901565085148935662590673262004902356882528099012960428144682961591891218320493714521935397670506744109696033171342748802414820293292568472841834130339884480880449663914229982801869364569509177736247356122798416359467102237259029749071070605539472847260953564785486239123070262801038360585543647877335941648153968026717581456954073948534647743280004418474024050717095540245572321963539359516244889105855828367923239403655525675338911293562802207458176871043391388879387729894830771943775877780149489307664338631219824207382345615213067741892076450379250626795484645974782749336226154135193944000843973118842345366449126762723918248363066512896433551966712023771714293091757973835343324301303238075680512418203087575817811234981809130535624177298583144676749646138540840836778327016163546575533872387057494891084054984828600239001785877011036568480889251567793494556255973310547251720828086482776742279793858137629290278847236718428955717042842948459760918960507749509772086045719796678561753963641923870330992586009781034192042853839282240204986004110181653877824111322908687598170034711655651451402755441149696118593042246369920455540832040989171699397977385249077510308329523587451076870928769853175215176807629410288095408302996648284181393436188085730939603985364534009862088143455141951682411817957713695431102814456156509857820720364915356542754105530534223626245141804789891626629150321320893582212595089620321235247348634897788501468138112098348507988140282723892972502930156755704036956142362449407415855063022093048730258244781879514956460476049048276592121651088376074704124783491157438676383433327616048890274843277599130748576391176873777309813584586347383575395262962168556514686555985018627786831173403825316775975962186149273057503761385708376851605870881677610862460070840555960301292703971262086115540928424937535685632921310135167679970987747952058244984420617450454759172668160049819249744884731457347164888533148015766601618584317022743549585008178266644262751884772889442424508099366890301472563589259159442385646628303486312586648531691053514019513248190787152736281591510337985213593305709162080473423626627260113496256193984627128475022777978221357772486336016374434832333841116905185367031624992068221519801760447659480737085979809151463612778605154643071497583837162813935233797866306702839198101176124590991537950535615330547693816455215485947735658682306720192994652031839346045385380716654352865227476120686327570592052933807784976305369461989177385256686873887103414481681294474984084461230096523792488810920350311849526093577681443885352591526513723911978175035125189456426508358807566826096854506633197719358294485890508009708974103229379709997599491492281265083884296410167008805611846416931026616412411540210892820763364760585202265088107930248097529479862900737248254744860380371445267099826190032247332731285120875106207882407985042485740996778500502079137528625196699784352117622940854283090458244638854951377766756993795643854188129352961253907614491689145813433307794029663222815229270411647691636333910133893371075900205974148122560713836680294440667067210921514764839682128395244917122675938079793619239113990079847010171862510157308393133679762297901531294833130868459733205849474180078818780851207344661836856944096209363467667075173125255057175211254014587032335842391229844010487344033734520650061031695304890379730153390816337000978724016780985705084888808443342953628782248593702509128541685027292898358800590370134284339809367941565523572097419627938813816315073997858513364195124655806213508268714688596752042844460113856624056983308450640961281692240672559532740489097123272665046440810435749161124451601460838382128497382912753351706117580136383803933896413119087552370179988210294338021942963255783021947875276783174094786983395789781124158007180978902698045665249522500312555898570167866683090058144630838060457578152009285434275700308233872980228554410482869025531634489101597751864432858145686585930687008874315235289869773390479796818808029429294763223994394823822930890070778601363017843834304553478824654997846065893815937896083447696250346939995539076578701300032145924346340609916950567995866250702658470631325403554714894965112046617380892673730366846497260302432343224550421942936098015907805968027479055589869864912680561858665838774660691694411707886366498455083114753450812662599778042987233964509928471140714156427173655228301070383601253035447272131667333062401312658515494829642640932004567613985121295760970994470496924192623671317584769187189262996820773217630250528396473796019233038490366402789193383157200294141867781817497845428252264666403261049256286362922417538430835816899941265532851865419339507566291483378807240391068015152149832777822366620656984275226623362220645884007249946641665174097101681812220954456348674975032387545713484176093576172723551339397868048526837138300994076316036426319540876869852635027554454156232691073558178839253524295113022071550435068460178611837117604251945547991752757938383359652524048303226160948507950661076501293000116127807045554324506510500658464220544321461787770725435853653777021112267540626049505911400843278704708152301827137888363138958565510291567648116639790768259706741947605042493444558825986653279153981318478110678737490031656142828465668969537095497571885143722137599869844971071819669727654588492406996149512635148114402341944090036474296100200433626446781650941147693114093904541266932967714007973158021270305366423895464597398944931057798447291222691854070684144736350559318560451136542348039433332584969271331967198099272014442912658060879308408516876261175145572770995238736117599095541844452963713045499747914679045892347466258336708275304583741746020400776237902558036903971680452189485696281772325905520985678644893951104152302875308182419014119432141436434197792251218806432949674406344159545554211509126355797295878625922286778727834066931890230741294555892818321804286256589409890914617175213518174735146256338277700515073425220808469207656295354136821731432285841704913866599955754668593753574230021862495195279513709493033377866631832899231826071308796104941572552582026482535318206408072991141879597927140439594484201355162376922931379699792547375179275722742799365942689936655295491167490903087828465029422079117590881593987942148677024964831927700929761651192997647406833732687800424255441972311422738352752781981341881640453206862452395288310146008258611749064475258900581635768441001260421807057050292947934190649201627105512872214449658673518629375592005426275263164038929758834763379362013555482372454437817892540103994679322060491349493411632871149098775527616482125243043529404455137291819602388336102916323616978227500297212022047621419948195470161703420520468624412646423733152226970667297046494279023256569474264387534140101583902576939611240004433408166043030995441733856873614551225943696196218033145301930138341802187741207337841583620548933901030538415019526469253673634997462137745073056453060370205903887455810004457942299004278145646691042962030542570092406479465962354038089300490722628928197975499962139043286286551443321404302916130862539675294191771795881550740277110778494935977847712829391140779934301851709725580746860847223964247765101923280817120437878120383612012293181974691681182169859563463602883332521517492397536604164773232960059035729036388816934519767253656243821610891168998555144407911502999559656886220200502275068228026841155981172001737705488259424902503903538089767937178475848233090867489775272421632088726512563375088630678157403258282745601365067366497161943468384304335249308263155484185839716902851037941181284206296243177365782487471483204163410683874739217225464150542172334291098845588339632589297145334535734149982349511806350550858247371989466993169357374193338526853163262886758498068321883050999680550985742226659808625341726723960491806890941502379821311874406974043742046523104552717319982907917888126416467340993704544632603569149633717619601085015600561422555334751784928553744410615460677003542938524472963843790759786613864529467882719279155264346674413962622700012037135284178836143660764286523737149541840601368615049513573102306664129888722783294425043909108038391451201515957099734107971325200154011030979937734610393059849994620369136861406577722808755876418745274179897859528864837107096729468593434523998022595958643436647130126769959343321954594009369415869977551075965168538361431443305364881046881459903314988549109689394454265305790071671499403321937103279272479014080703683121098880298716481054362832786798014852525388551749034171155662182426987800314783001812005553528317386566508280282706680455366413432840262907314449107711349806442982009713795359330890945978693387811731605958975546201531959486541821504085210208467129262726904631598103883895527036571431565078503446285583233519470793639090238798079257811132255367331086160453325247571224715093923023678331871142476480985314397907863761836729199192774885946543667200460492449321809306002409297472879631967877897532689265928653379071350281641103374520160497744617980921045096474962126075250049493399572326728600800070283559615333484273841265529389737928074949835765778665077292671032582550133912267525790050418582513497580711650716344479273825110625904796286896753494492049187904967412622338292529913955839192589149405480713043497671478583315958253349996343420647409477265724221996177991739430272411522654844528458673924401286669251388311596051317215226677540268119605064990005217080461670017589432616313215902210765835342409074878732835135064872844862103804335414746053303432738477332681632402361900544203736249249001811905095718814922245012981146587172550317732584570444629714907770378674258689456441859198438816389236538575845829605713855923452313046988527597432882336277227572104520472543926286117086617531035903002249881827739107983681145533104419782724744802665904753922533256321048728467829503884473533104484000598192402382993672697136869196504287550004245122814295657913725246450660604711536584878801485506883800981646902274825722774967045948320666737522779579882786789698316149056493382953476912732689610935390398911454838430998455266715524887245918485017591061535906464987642074074091164676940011424020296921270015757315147162323237374518533971085911961908244452460316949730434756495749289640749822151939833684348797075482346921089717082933966115937865777559321052011735677645063560569060542264377745349777059867174121947200662614852894314371757015674409741323803518031466278848676159695348106954885366340719125033845634668756620650299849908222672698414748302012842565135490585455866804231444331480627921905632896715839745541072290290346771916134668840260680989352369747047719765959333935643062069253680016945704933918692109177852167776288234986198913616418010718703388094978159989663428772699343123202063891646986959064668686463093604886156835480966120245911771235225642637381514747414419880347670905196140088320202109122271596996241182889106763040096878642145292883152006703546586130881589160459866125090382784603649294233264112640258234441849836252033084892272723696631548703447515155014675307463864930901426317440196690800759454925484845999430783368015670553836732022430238100616647833013675303518831991126734804586937477463756811490050646006714813185203234719039336928162296138287877872242338936099639947854453874335967440993559268330373512457021595036548848752586710196595337078149954790947945171694063871101119573397948800359111136835334785340162936730036186816678946036228878413694374537571405765092425545876991127012833608811204927045643293692880914615289353963642282312544232518549718634601390851401460899802124336472485030485724658672990655167442789760230081918061916877366047883828288056893108108385946352283848961277257643747963145167197984190505129857379252164282890730162285134946380094826958214637728711016149696173299621822869154891580144270644869358710601278740578502940611215401061794776768813477980414472478004115165140330247544352322079389906941413936823495792877335380213977947417606504610798266385245356379638055839071337585016884931009871343230985753467224743853178393294457688733194911603346090189928807665302784899990008582281820378621517796529015380430767707146426406346229282193888974398279938171743608936416038880467237522548818847567289593028242366324907695652243182792895096745806299482347476201229332337356974406856627119092878579423805540175512157964258181820070603612969570466834966555096515891757708962440733188951966867242807125519732626791754813118770011124308427484720350687396347754642733022602130534053907668781760765138648413043131325322932128941318008454558976960367437506761472636911209705835451485618804027285668270643435647105237361156757798395175711207423451062496947831230960974284080836843329324225994939271904588842913307398381883286974969621796985191147253185017638273985940337527909591163062945615197712753976002638840378835250172046098024477679171078613931531040368040124176398267394209006543564831720788890736073536819599157889151887213632436691532426317726072484562873167906119477630451237215202990337267318351591496511948284230515617206295598864738276102258895660564043024444932917529656357222965284827277372765282471373963479118409417334364106371969323237890728323000308893989607136855722515667339632853299664658005431414697854428915801757629848179557164717377439346988119431366239386443820086300776108848645301130649453892998084093106787065447513311767962138451459788676527894854511146192320087491040141689453569639365579347374474309349912695764828550099067817772649753642929896731798417235332666429671640823490716014409465268620073143308815028866022320609588623925575260948665467496752706388128687068958005551812551206451950528468781089566601534215391508015437180285367405227930828718068504631653447698798664212020838094672350319611576219016689445315631944802775737278799664191817921516237831553432761283182241086776130695369086647170118858050991379358978959043095656604681026401310591463556549588638463627177236904666057297836142138217886396352431863402861127143016688974911492194097882017028055321730134367822124257669250734781292476674096559899197494041664779679775480162526770898497785082960902969221568328204309302542872551377184294057766088051454865786270212462036378771404774271221953055333205885958335795185715635185800258097874922668725744411068218517931869993830146775796967616053728389368562706236761818607522573164106176544434792477453086453444559581065562350225514018766520427761196163127345425159880137052924758772789775327911951987523671796631458669172862548724842686511071866328149944536952713589349176907526480569060486147278745994919516232795613073035590409364262304229460007515545576543539958948707716402170738103608444282066606071252442411547364533400044361344855806865512347720168450895478008840969355062466552141595844622602297078116155546040375464558078513800388594329322715984286275628148882666848203290004956827692288333836138132576279258547694446421699075475034220138980670955370260230739504711495292009293039762375590848176590113731093395596385359262603992629599340938052772621314215696190282663581796620384382595719121675075378680904452145381807249799553069191599274315564600358861253580925319684202308609299149896311107088167663827153958907956320521417292496100633854606755751682286796205735944483091651747172109976645985935449972609158112355442033473849343634771967151204967199804342378903180048412883536904202605962508040637276335728253041968564515002081441545252602287989016615591528352644251970350514450765802539930055514833742259196466094043833798356231656497463544940902796922644121354726952086171618929380203542570207829849355273663950653591803608479561882290971623839690032415997855368011963561829079789829785681635502635170912535075316838654841388045473577497201817569619437380156795072263668865534132311326301504528453139010660495680647756537655512239922140561882562465650669733581616464205626286075039592083177647710190486573169145233509707881764498824584358984876903904272541554115623484441309701522204511848646718854020943125867226355393287973764781974974972347455718227416103466240418067692560305312292283303430050095147883509091859856927341556800630847983640588601861390538405385100521308027205632210255100703475731655184925407577545673514095562654840960494111917902339060876174930751744064645378172287278677042318258005852593249941518462359662780638854513363163317119266822293491598234509094415127959525769642182871458189094605962393042309388598400540849806847966079010718892149933869744784060287239709085740958158211637177942062230613346662414812444017796111577357868929903536981606464959143646349169310373759014654413734867280440943539447329249600498544679357802522444233469257281253241538479395956492523824201766542077850117685907308565675745824507578599595338326807858794338742593416338835933017812233064005962521037717479902648201635223716147070757913986986722385170359340176818524416929302041210177062046636474693860849087202217491575372585927571390546018416281353564148216729725997623921857206586770871709460145804815034233837344953730027461264902411527646039782563371009389023631756887692480802573529175441944399600994376022953128106467555243413444271187237609923778650397994715308383648839471894166672096825581141048315242191503938690284865578033913769030115202347549416651265040677918840887111475600999570647162006650132670174503072549930189082929144943547177242289649484110405175681617205931505272564738286027922876553286334131306403578452950111463038284248911630429760412680158778103735910971119698362305808910630725772106329344947039666178054331136867342317204061168003252130798904144349806358475334563396929925900895392353339463185617122703777394767972538642295146352876172028863962809413712774681801372692593041337463906277480238921579879991086224897310642499251764890540327293930098648708009125945657585930029540810385640767735249279510586469367827908110448384346615438917141793118579373984451326664652667437895962819991835147266727065226063922984991098856016393671203204990827775730956467893862660998743831590844933558642976828639274951691624665971405321156756348815320903814220533064478062482739242008675132512554391728156251834187447863776827513989969614406127848591670190556497201225661958038502612478121394822605172256799247468551239441101390505388108146980119427964610433968427702473842784625487519731954099022812711573618180785518641036866367057335367872974063295268523974773037304399892849933664988452148185932704440984645061470121425437680559645934142470634027897696192430500465352010006967376387418480873990042926822840553426860753618048886405463689296123348554598147855206380090701437236120681837655831285246649219767500525490223384202493188345650182374723083695928155021150136793757385339876553311486711579413497396909619048906646277590682095522408530311138175714254224140482418350763380309647424706118336064050797615939664524260061703491550087340223722961103560101795080213470004800922598145771562403994283348510730709919835524507037815931477166341416334156106174580206201819316055368874246610230933647965060266367027547545972323600622203801824437543130930355556408763382791345076127608003776929508784816304799898459867519826913137477585314325581553089901710194297147616974580161661981510619721269395610682605330058028524544686378122661687986268546614583866454551663084031567596361101765179137409673353301320730358138472868333276756323365966313114428626560172084718893543957626011926592567238261175155449842114874906661897056735289064580988537911473090509607474951921161924048217597881287569170090430937085283985471531271650204038963283687845804355199600938629091666895814154156463387046656489434515822246748786306684825136050615197568988451529856062083853799554823173333001529119364237243462604152439189471985672087250872289438187112932998235303222569476198123854900740739058490659784533617852513593602134653269857012446393421682958265682358224456589105244083679282731444509728733100791461446280983228758239710630715799994216918422773192218747319491096708572099726488412001177402062346440011492146553275664333879140265690312614701259714944598926127858347626691265590212642740495388248691964894407168010033696703832379475202038258755357016727270725626627906194974242642114030020078980846389545283483437970181308512846504041042542983650694194742672711407880257623283757283649462844931609146514330298265904219463228896786089201977866408681758812381295704941462790717054657363615287548477624945786037619819781592401599792929583754542560003117995275021177011974495888850599666338715968702906182089748362421380158701744413610817695724243871058989274306294655628189100065864141753666504404006627786888702790836771509379642515671251175583563195714460025116958695386590199207745990204736274023563744345253729839338796270899771225769259118179845246422644928389926879266157921856668151336030890475831864717810251909948225456869067884210237746427734340003819182619236931810952232056919224037931668377982589026330537342579954586111416014748356033844925738864908595029976567123697011141261523680414447985220645931334712884795744917302915283116670765826546161870747673042106935287698311621377847237627511386745071655335868854729463973193415260376387803413052244845553283962018064683982953382587618935925321726543308230479499093431719042016385260102695253508275223687518989926812571447314728551334219330045923116167178550021217509138632374067910607382365080505446346030841561651168498357958392190617097819824407565956025522631278589717226712375716479307044747615104240462632183652928212181159594811025272094132899362656421573041219482691748634492571909816960585070107533236389147381065124242194750855702608277792383566128655915902223373489359450497830857666604276853889478818136611849583636588442266995282335114314342563613876329127425612185831619901762642184376060454868376359406959560158676339521923540767444613423674186146390345251788470500601750691627841620682829730799120098192402207401717955690016092420273009792919120152112892487651192966091794102942833562945539459721770780054435110316260575598228286291512406965463510960293784066566114544573715956867686984347219812735743007512250222859930897735051713232995580970864100138570713561780078910027849550464980345428014483084168090036963968970686768964749212490225209644725043307114536204677166575688679051073981098304029147151456368826404865560665789814619595707009893789287244324365696149839878781657440993897830794582295047529609495138392324628445061305024786816112347609402774644842259943101608908728584867187828962952709566408251448073519839056833497495435235689171576933651062746941904829186780556505828623276175392200069132815485923795491884461281383714445750489471566552581288183560989282681504064427922140196887799439368403107571428722058129150856857558171205216470107919964884485670436964751736811397932884999910334939132966125542631013147258013032857257917375982650394780118115098495317960670302952918657382395059849749980300833318624777745992899848825463983484890967295690007973559832142326383494910202442323555587809813516747863715642524999524847565288864186691434305150299612410936078275703032072190283029327407493481773366935226894930193757902714837493744899223660628118077324443599243718018209179218784341106846126167866299751885144214922738199257760834212720167491779526898723002918948569668163895231030866649953716840601571394727619875494947965417334141302610382049374080173559160985683153540113593330429720330626721904234256657793042672070968354266210256149584595937176352037990091725818431418639020305524284449725898456198918815811504511109367378954317746290871780254296863705358961978998968653439006032051482739542784446823215510233167833181916481300288545243139974662370545712895819365123810211702657614105716104881263319847114634072276940522310444905538532154423753721225081423838729885344915394829185385434939993663302224143695876286241929293216328274448501880457807927193216413374506565365301091996539383481544667344011731154454030572236276731710462295916290300762985463152642505888273077059749150158219593252988496248174176328765262631999139117931350305555887275407719086572971416525986381976449329557884574880824120034411156697434109914731689116030831250562095288090996512015772478950300692718736559898657834177771568588676635563042544918944340263564552802395586565494836048232193259190667393735471657677932741428959551668855083147262746975461394624535107785035442613329881388802435926993625991782652360474690829621321396274872011392344307750935520578680638926760211183251051748909149475335327105914833356924344269615500789598488832947331332078679946230824916034247234674665607002594447302206450159326272045654506128537838043911154174258803257620645414750137735565901715820598903966444985327670042395769387105047352877502190277923229348093320740323902562058556182230101596335205518039594545116823472643269681819996406729282950361919624320658025024927034224196585121937903456099086151566807968946886085109132990018504365350231693902076898433841801734241969345015931418511933080244024755422048235386506451140271630622458454380284514454623823442429218047690522218523587723524587385812944511698867249041564375943819372806362902245631264350709733724829359642798693020814360528741336265032513711624196657529830334607949934142246075127912029606491220258645019288108578029586692214257832401369928081504860863992571137912138294156415337169585644510412259132865684639956795108916865073401838472071581270126963765077628161461722913024836844087395201804615456549266876912337915883365799359473030557046358843254741888923149128953083427395233303318203204161287311862440621556532408472585991269468046772784961510231874084926867317811984685855228831597583283190948546433532049138735010984820945785959985735105605995749263455486730454378036181694902293791461300879156157352585669136160591424032513730280948542664236972303301837042228982886064615674877592411278515172543691985200863761553897951317056955411673456477833924302530638446344182497332422231963635700887928169093176254165971836912068595800321743018487553697932627726968205092339735150069625654125381231448820021080722997928030443423223535981724150231042905755882912395825380952972273445041929299522692127410182869051120346854999798277919572608550213189141700535088994858681080657714461913698220581301166312152351012084467076153674789873406557696056758579926605926509839758566565147403775952574935458536290079296967672218379004279738338319162713976668818687138737442770664619786888347640633652564047697104695318800084968356958634827574905272282394539949745145052248900831334016993966201811537515179928408600807549030985580522235718379915623171483116417845849564092094990546271452907577600326198094194622035601638984602310558298269487448071361345717814292619267052253467915573978326067166253165334929552954853111719373233167341410994717567427436426419565659481420237474365755124115111058214657570543138359702648050955262842085493457743736060803307417765388506469403781419312527700846136823183694571912823895206120652763114016572719191651698069282592754087650347546379252556654682669620579580033118280134071344165270179171842290282054811849408154489907117065359405481809646010808473409166425180633309710301012939749783214620833530922320248339966614843490891740906989624261583498788246115653110996814711564339683279006598928074237948122083920825962979887217141672272116642146114922040441193720388228417858740595692768569930286472601461218534936552383128269301905956867420059441256206701223940383740360389016254297253236503434417062825585087323979241254834032468135869795879044411166093452925335560829292428951190972377049151450295465677966810739962049261129720848416307682129621095452582102949835516192054251851772011187068889664313866822283870399785915095638971457145773283108904839023413373441374040025918423868628833854567289466386560085224682703110367440652604401889441700133051863450710439932829221837369161627040456536206051258840759448843158503555729347254061164272862544495967160904628845478492805371531670369891272544615394699580015854165049249317896824603606287592856511928323114403498114892377078702474141058997676396412874199453253947147013288102015692080084286947761296545204948607443510028492925082962703030985005285382785602036828009619215735774847369904953945082863022047005229742043404037538335790680058607819466384793844890529961037463372302998693795756073836351101113318056695242129882306583797004555721794016001395368304906573604663316749596389982218442448010590972758317875477843765144554099496907479770920096267995656783548627794914103208250014833679504882620673792738140287878066881034824326165463700109742841869016040179025112021178744409343198359990443580042091621743173603449227118943698847247857154943355671158004799218526201663794905645184131977611544392454264973555669942503967976520024472972389866562743296005754405741419366734075080391396354348305738564068278820880930081769548292699069949441128694834237717564774851266871928142613558922785398889933944027466038688235611909895072228718024905919287889809606343404553765656586444704414532640970908358654273769154728877077217912465099458924297054244166161147124091544827133965037536337067454257668627451719193246208721164481629047671320446194623777012460153950322290105152010846249802803883084617933950875540797583873795248699032428239488174309361544726919485691776083656322971437248897036244842279703539084291951684379725414035936616254762007777134389228698258393898119055820491451302894124142097375108819692490463318853712299073789351830351102835354505760140210232473010605252271868438051800032696644029180921673700798857733782754134369015755940174411507718383756220204252114845784346487924396120162082325188743737370160488327540424851781750064529310777570651681305450820177307564774880110558138066840023828897749124700917911401921859906079266438882092249377169183399259232750568996560605522209456576599341415863344534428111239607028605843040234714357088433219523456059727928899746020207383840237868215077877179354140358905876628343363957925878226880490377584336768702421612172594938752658301586211001229691152631388941869378667306746738898315200740359101528339932877356263163451768347617531919088441167621701228167967195760675443457756966151389771030252511549798206131866199458476651897873393003823773579790823373264268022325326769740426152092255122612839757787234851124618937406527652144129227034582538833767601632468941872991011020488440083199508034983043886716830360606572213981408366977180161941348255190003976065521765663559883295794703852984449042001286683007064576357306087585546150394234055199044236405130983845866760558160286763048203585580359236672884275712989836560106501924195642751942844810844786099469296977711015368338565874056059801657362487015374202150982285374097527576801886539303408990255635343266519350824881293224480824224966553598767600050092738150493366106939438499156914065382981332905850767852335556614243780417216617185022736535709647156869019914293067707274548458438675960423128360328655676857593968525394304990305685325103243918064796412905467290967876294208454746272279316197519429607997841682713344045970233425993632301850484873066649348960040013745755143773389940326115177119026292084503862605453271338618173702568111865881807380885091828933974991529555479885802116957343819725660600821017939614982636644581567632313031489150979508394172258767864803331219603493319742609684614682834701158265612331926581479109278821350372506852937005684514465337774077314048428552896848525148867343422626394717543382402730629882239319912249285665594803467149529419290268487717074799509042221580275572568073853091847033330797219755326225781549068877206163655592901039624819923390847806953693933490646941850032938033100207359030556051762898792165667939840301836420930528063631696445533718960297093070918185819465742071479392973930023667890233877832684092139333479750755835727467889357035753326792513197706799654863201649539233271320423478574492145203496588677616160057451065043137073078004698238049874019359176307190769059884102719283671438043496820747635733340609000659027285265052742169917784016631893509397220385998823814421821413289627580635198261332810484402764919284638677841649742497274409015913677930332063952845669156122759094567766394757046699192668929976914384458406172674795549933067395277492760219934890754217444495929564247566750073066208027863176575005112548788826991780409349075805354850181810861289375781602925231864203510784912309822107931503859777527605835733163934920044262086540319821630414677981715450820516981478657962910900045303447998458129159026123728108095688728653351842570385020421198810566773069292033837509978108238853111039344636731677263690514633653036074961968173403608813414332864809079628450769511420930785289643993807376780110263860571399238418120873940188801150748258434231611239603840416091306158533036538614437261938607602882124035884886103271605188402980036718318910674891582027710271452724611749326440795235824979767110011460020709148656965238342602439135014305922210736008162321953593511856274417718531726419322920525298610368735944712795737411813845169546810795851250624774986045042703959278355188427389796424667075186955634836493926808115822972958860386994172245611878978288933073813777082036309636749824554879867927806029257089643475330471353670357635600147966275481453030771923759870019357103147643286076153979028583274812398074050111289647006807856487427555224529666363566083117265799846996853476558202930374679381624959713130478885942116331192523752306955695494321880779319750719758892591416030171386964674424335927417418043767692069728115560853053423906599803968681799455023143698024232123292751238585796008544816970956365755512373018026147739886326375633501542385896448535757032834149391741361917687117920828947563788210691826492811920776356012764300699899062446785619060717002863368823468563246830046609109411197661362201266293609850387142575320226995038494446293919223725425221113260345223415821375308850771995922417791794245103587238835006936932909025439089080668719976455802278046423904810645534253585481777153645144190761913184066741923755556002273679949925046743771463242025484581094572753551689108302975099256186550265047744247189064414534090843464684682630012183229346288650275129197326629157095901762238087482273948864013012271826961062149223938326859810178104542623392241402563313817641660248901970098037979677144354586291566438113406275646327680836847011429860303124284091519686647058694259737269830739003342853429062577550991084137699639155224926808140629854876195242507768576653848873477073121425979742190641852691292049127534236133704167984514657038077067803642124530220603202004101620261858955625342860290807020038354253498477346174622597372691683300705265150960787014932848592189043553002787489941053803566451956320750152731512697201055455885050785846773843972565050426668797305788533030016321963031451176760393943250294912724330572243206077363902537724084666454960498796011716334730293471093550646741591129633918816407798252362975915262258285958585036757003439270131784403174486429814284038669668332538265820994919237356564422416926776190146450385475952498200188320055171529384143722659704839027714545894859488052226137875302450193978412003754780326002942190233810976405546705540102539192041332893892374162698587061317646211280067385173079240130136580343651806291986274456819261189509037882871277408911500035849766872199415827563318854746595778611767584738678446754789554959731682487690028176094401500288606746330294692737168323656690546272937538462439520368174479765104755781839176823530119877956246795931070070950965307603986951685067052475608962864351526351725946535399270566499466721062225574967220616908231981191202116022724707777570305058601538516507345172452111152964490933939677310025959292256041538448056941531463415664882857405494598444246174805226201179002005298885152252500172103671991281007250708956452139867878249648389609520500133531894805460229892376880966310541629648226381568874665223663273693551146623811276287811451587385679761205548415122535494823465227667222450374556591767754231922458181819461119291876017446764841445686617748072149307814652112831038802348275203340208464826738557056118847267708229836086838106693615596300454843249636802557298402071308965158480958211961984770673043116620526117744735532616320628197821083712203006180178979542493115407250562736015436889130839511909612672424405890887253492787322020611285349916675039599910597383867169252749281227593977229286780840947169074466552280418499607089358692094703816141214196467373814388124404918876112010036920701046536139034977096536837049808752567368547352580365415578620808851505700856359672644894566477573558133235427169200038589807559066497262288670341822510182652766141786945587906975176684525477006971865524320802847912625451569462813614394233426582110623290389995961272665887232563529379055824989001721674401794054346593907021301620689090902966865992992050079890883110582494051218029533890091687795376254391162983958391320223915132340342516383700738569930729442093494600778331109081066855136897967412002717160051456292406882664838004737661823806474068362664446779555071342745063934021847660916801418990403470661094026308023336836355314775348683382855500450905747458937751633139669332860433884832081900517676237381237531043899677855598647373739281383221046556928895432837157448487440178250895149606538221151137799964505574877230979192286944929566616053500732087308393960635443812518940024606829038602781603293496334098025048782442047459305059501294221529363003370028343913243068523731066684053726716286194475671701721895839959672715769911537243158165608399731566122345464443184433916684203896332282220757558497828326744803367731163765305027523409743311707036865147427577001930886095995121832009165865329040671553099175153093475968462150771838836123406893596620772961969600175035763332111163924626934709749537395182516708551029174958487578719626272194638573558366275937442075220269407027728348219208969890319644930595316502840246059474706777967049533739139845107336626110973771637167985383359792430659998681006914848897982747424854316013529197528383988028912592149783325923766052928098334070181860261264881884397818597037497308833045903769463311666709256418959426044863824067929573061972879577652107828778308418358905534586383605687348824318878859914815010545420463486036909098624616994602151179816301847161396648744784497594659618329885786272733922154176138406461973472984948163696535462027967962767071517119644458866170270137748311084840979329451583157217804964849260020303354116687717224153620330935659174050604994555129518809829708844168093453230571875675061611317426624936515400249398248031982263661313692192979909984753848061413461989146937952122897954803841882630842934113029005067321267624169888936311632576247276270873003606572864845583381907627039033446248857678397444453072060228724945314807268283683364942451094122750501870496313744240920927203722681627423253465718941933270569144982534297664290540316760384311493074065566373767809432859200873384574923633508461226374835124202700029005040125042561715373114052684083235849384373539395107320746385149197323205573886032555617341366153205576957994187290585550146530382090085454325585597608665502488778802238216341389253807951041227905198588339523975639336706965536291599492918415536902595827897502072055687692441481066299916161263763687514443228875546435862579385547857446467751472015125176781717306920383562730632557275218165805121297227188650701662338981083078947872953095435477927206402656794765894493378976001318710884857294822103904809276612041540212100405957826723322276410121161388143992658298777653932864021977997816579890224069026011303663155350775199009008379623030012462869948245485970837209314446022051355234459493427562296241313872694389614588309083846601608857076358386059966337007253429211902890676615461766869217623646494297090278641216771306865248876893998893058112385953635049763786015850348074426438952968693396956520767482338540353412121122992288162941589886048773443237414047810361289118128964691600307103482162367650628367103983602547189830246108287558401767134124411775213661576220435653158846496093703713402513552456744068493201515131445572381204710384342840784086258211166653528433502426672749793732371577337214133966764175448207082660540468081669074703469964585102548740354080156587536101445100794967007165103746870566046085835571579674335213628941512436313409281068450843406671642183811180375262002048433536817494385021115573580276496964078526643547649817552419894252401973343850898075335528769737286792993672486678854557353349460452236824728535396541470254746100706626053676437056603542987122301741790009762750342397665588139285060022729997774336172841468655009703852208014149467918173628014260278376151974731984889734877191454279441174011933977533235790541944148279955996397129087871066004148818329040723581817118634351106546824329299194831591342715750049493100959516627227093967377893571595764852890691911104189826924902375396509238352133289898409800450428708388085193287534264901307761144790271935899551254111714467228220712583043875995023243030906994253011807595093456469965870423874835925321908347881529220969877175231937024112240511344973659095864466899438617084235103788121756169139776837662827907918453319144868347588275306232980801544357930912596146214394501039128897930149525541820849317506384811215201770730430780734328427396872865367295726276629971512120353459439834130580793461651404137944119873353555745981742041502388173646743489470000456469750824025391237738522021432928004443984256625352742753506934424313875961342693664482567539741255883924630545314527820157258420230519634541525712226897058048960077151410899541734918391232402186686195227998830093193213660175937205611284488854769948730681742319276495747443023429893867219896515163356888894216507538227239082070449363573297145853298478839275825255862504799417416460343093126701450291679685934193023212726666777622342611120840816574580378070622591231399181495406914464534450118059113169977360799881167964949304969603687842578847899422396242035704584728589423649092007588418316638309009344886073743098166664085254238476911961406006897579108169761144997379390337246253229905113971063769786381126555013181933929512891477410288999999105332717532097365122328226281423496669442459636429894197911295221842992857935621734755588758742407658368052278611551105127378961230091360543730789450941302882528667536354063704954705228715919648923946933457938562635817664191768283650456981974111491240624071768012336636210906092250067516464967713611302134780169820285802935711164578245789602882516839667483616137857097727435339839560042179171409358800657967734957121103435466975350638393166941226428007836534893660179423074860483558558378557819919045126263097419725700245202672556565512758854532196759046825473074458090278659684284118490178778912646510846569021806073498244809858559875631958903285973318727396888095041163256334914008683028735065654361530949130461415242029143417894923736233523708534789520796931934074633433898630465327092002460911736922720169230750551879867667008593042522391614039866476864943022509617398486974124173257783573376305975845528691455620147160488096912648084295326282933289249461019078280886057375028178200965778494054721265200389199667869651565399446334373366311190039374863903781951753741667478079367738206876100778600312701703763816603192343553257776185735383758274999250098522637563756083437482321250920081942043293406602887301107272026103376900072932205695206533791878830860995708886874467823103258918943097394055441711816893091438476861649034330044470765976887683259167818149419265664933301469668035917869011508216667557096382697514213111831654828130258922776773903661300385688044048525760752740268961053156559983907803206583387740208578702001407494833615525818850336821932912645163084243051723530178770364181208503949224615644053870001579446554809242536433671730810798919269606929518584973128077666906345844138636893568026557605948104446303184691521727911672144556911081769583926399267821216001878251232409397883855391163307880834800426491424417447519016306295578970244753666586942514943398444482033717517891692289891877967125396195515071615025193467887634750194191897637321881597512477661400271533210597848751094325307087178716523318330442823140779913659925903000841932718469559746170086749896571004466742304061886011998400228666670741596953130993211164993377131090883455138408828378076716992469301167380565030891726131275677094772593453755970601073916054909481057426140527312775825071426102691033920199618888542753110325158505931138223090278448605709321167332531886212919581672495442376429995555224742284012475352801456184768576264227774318871322523766923003336591273161271150598910505153549196273908342841288801055591792080073437608929843824858831635375579357106447579232807767069544669046306194073715439136134669754994699435416872303383197197865678825599025152090498772581704565737715990433379171825067879185220780422597637718697419670585719664087342896817478358712062183960399490138389597228959905962244905215779744498006059328317397903198290357863131011733766057878320283274731190251549058304406594465956473217342287024705926597073253630175351438507739100960591089024673816930433785689153622368466890055051584130527609142978856395442297330478375792452790619470357416299867286566164773337069184994105598341335278770957997285344627469730939844425990044354862951637390311755568900682176960249425955614488603009644329077360629478629694215825106218602076130891710889126667388738720493479785203449219162614260445770031286560619632226518951925895613413262989074271645294002893224137869511685990113217189370038057455918425694854434875433684037548501316379839139748392844352391393431208092267907318804784244676048942377222317835311042317668435953928581038094192197701058384397955630377116202596145736487654515587667248092821893490318390371078010945703560607051762006684693649710707284946542274301046793062461624740587126131638049842591543478718197530818016158126189012835248256484145378514933106880490754327805529022776064793029202244028116931838471312809417124403114181339952328975746343661234484497111936611177830283623931916326636923136014447465806643795995190436948548536298290248795514824833107906821307344232507588044908897402439067006658727299338994725525087107546768129798829283678703178343873979677144167781053177218188974310613074417957446370649511421021145754700680149870013802332383273049838232873471515485410874324953898386072251367310245573682081127654230946090611935126955178761132584841403382640548109020670726542893109918311167200931045847559328204579467774540153725836177707370288740454002179624949173313530370604091107095062505970913048295633902478601647898625767636212072441630159105130186077651363549375290268778780857208892364978840840033451990060754307244227542476428783003051113816259649805480314802269749149741592815540575353611994271637514306299391879148758584502753963225689110996175763715364454737595117981262834289753256908274889378715705850137823710765531809379982335561218067520972995124034932757770641060382667765110031705473293492425779350094710278230294204838974476090862366527608728547454170468132528411693249958390664082485990836310165185731273404932207633447416149445756758711912341598702433649728264021885378022400359443610317975078583038303608008850826016980254814838040072540539984448196166869359762876988997507911162305749057298589696754983545349498570888767280347137303981570077587455075084430763486778536985027261512192344345806876716556249303815048648567352550096235515068406044828488344148903323877886608372729443314597873730347167231432051734642694902257682817634966963825469235727480793704199078150698354003093948029355329575616189533826936068366663054947055454945488245143876335769758155154421548242947901694462181767380880067089395971073456180719648212339845191702323277859952993570487464868459330789396670773940381205172074434531547878652893525418473701679496122743043561389245678442687440965994297281810451537466164650496460233752214669778184410639210693177647473504448185179365647557248355516737856094879127333150927449755542347002573588237751280416121679502955370074465288626995401524452398683811169283127556640618603216706652546994473950910633775220132742952228678171008244151806060746913535464808646262243874490969490725598625031525523509654975019829566367205324681868436452964846681320334402172768856478020127951154335516913413369575990735595100877601738668452243318469624192210655412049960502867111912885767151143923909504968277853786421126553338333873726873429996347987560237694866147385529984832377324379178005716429726443318173439129016065871619391006788113924733514177656730124501879781414403891992155951851539610228326413404950633828760214753558653395464515183595460197356193471600370269812535029289472329731048547625757457028900947619000778897701796492443899593972309710186908560421605138425759384193708287820884511105487268528082779119813981505171358076611249503456863089612518950065771222379362992684797724456121963835310631109709793857409033398141207105439152531870623799491666239096312692195211561308458722505556194992051914721158589388054041656711755536799696977306621373688861739086101726271907163405373612138914478075772928975028944436177579404983915984104603168578192351521929574581920335029124814718413370558676794670485077019584072824100905168365395719040877789208496449536560255710864036961375904256211780038633908346443495511430673307586928499419200416456992932435667375246269653606921101323100388747537518486808211184004835668878002949766197737084493645534093919318403070469147320626808647577737476537715668659173547119637862935041101666983212231191392773181487510009821181388670227660570278312888335550719649145969673692854930894482784497582677559823062934355724304865143437159108377327416425571798385525641612940556984888946629356037149875402779138129588271372244956928040471215611697543827278950201716607808195509430083370221321490998179631393334547348164012294313368256117822080920241194193945253051118579162797059508991081533697443326465300485277198892441434159763714118196438291757594113459855968006736438622098524831156295880396245359296389460005089345284507726190278410404867206072960321014776596530555349032692258881216049261252296631167435123621890013408594936074086077096688284239814085072837021242030697277339087298399356595280536874976025344229281981835086781582501306600161815503703217498134628327734310985824283678819644397133452169991196822025153241832889130676309608858564508710572719710817675562639973418212367516788234801312689740006686259801842411793533312602292235755161153088576266560371560739448038266011212102363560792231388330153325622254142981977355846577063637714321053306277392820959120375828410185756340317006744563384518108990178987203001113483556669899516037063969184928100910833578545029047404507332607168020480994244512083647464013787718309458856271640670680608475632436568954446626081445864644433578841985836857052668465427809895572337040172403228170097393809129214022748789898326801640571504290622385316312452051400059378255511352517513964914623697882351935643664172364826607137117865748354005785435756066644587885913703242668913719994598956747187641513502199221160359457461187815677005158657712278382507965640255368359098939205346246612725641392161938046947220655860485920604328740944851784924444932228779871171425323421767590050091293860511097305066286670556924888180676366468414590875621408454187459261139115284664578812817619132382793781453659879511722137890811310187799273720428537769732085243763838094106270717012919422938191851299459970581803284797681083219199067124936814276556516420023447935379816918256964053033451041175108990437813376507780229137957760001004390674740876606603875087238282801333252821506384891361419798269574708878043577217459252205830178448970536403457660067718838689492311915782446973009628862918902475479851488445020803997531958614552478477767442429085662426044627259319707656643578535183779720486050598684858176624667508377584510993412542464346310915462748055702310189864329254405952237280830416836652449526110360430190775660712815247661802065218032828406627908137981535414908214571174020364180820446171127420666001150604150607518562273821498916843719868206827108581903438957772209444518641997013870980634593164429721441942710165070718846889362020162330113606128028218018058848456222923073568003542594185924780255866370843920168703238945536567450010039773735515368434405359091004870429411003170758567958377031935559202134954305578024007202303121432616142641376879023980376780868468366900266662019972001621755614269338103227439580447152138923076070726897497246818470647060705175502655079547898114772384209641908114382946323825966218118597583802638505501273937170194740374827874520202181334021999678379125928944586217563260135571924648241215440964625591831403915831531281280165665342863277024807542564183965621848468374090570431338783802016946929360304671779976890554346218809445910635626283860985586694897811934440491459930181756267695371765398708871332724321333474764568403677647045825357303441742278849022042007432262905244801879894522185395191614544818385991041700352751148643112796221592268349341953889754131859112935207858875530741591984964465984600159613328012622938807272255743270201569906904558843581309076263002236414977480326096963162578388506724128669394418106324395851216399414087631351016662570759567227018913205693006796730114169592057098599372585362067331948281230177058486559411443260052851973330078939356243037348505032431295310139790467021773260819018014300633963523556009986931216701385825084395690687591532921177550089529054824746505951884336669999843452065188818608352971832136362180705039973553005208812822757040998714952080816466138044950094268799682616411707154773215719306258598866539560656385433524199589276402568528232027346507766132469334437610858576319777005167883051369895765538141826014302433677036282995863519825214859885547284208003358004306955978182620257700809810097204300571628255166777674298126719069442812657592211788348266890563644604395305457068620966119008699603128892133675047108002162431920673802152554575091808607718507426953519250653319509498397971765741913642095939556281598658510598746473653730347712914287371223286591275789795090966981690831562096949359067359684657936223673029468179336679298840857792991281659506111376473401192632367033872467889916354631029967504212259129948480604674941273600152866994282605628385407610122173402080883208635967835382230234576518798693963376310382041556137694252645403371309281732673502773452931086045677066742520695436891930952263598073507299955896054571762282355075908760631336384660740768999963377450000426161859688717604175155462832958964934484899124859541194379658010907258855675806938136118419513410572180217262220975788660206511455936508839038903451971068013124294935952609140956576033281931744857419828454663264644337532727995931759188575702051723512924217962639610575910420364044458811922538888964794535831176564426507741509062055289701462221503157476707697189307548094848408481709586277875087184679257145509637299370145304137466921697159238318233686889465013074015104101124119580888935216134561377948427659353157521889661605135768071130228219529587285326189978634144321957416264031949677598471786680429615350722495795285786577508644096698490847515240011967385259195934219891366200161881437382691978499287210027141300744929063013848869242929222194305769933986937797581898280293666157474851161224279867895804147541762685718854879935505138319798479438292462526850314701292992696799862270584707312837057120097283285468003706088113875307487860739430719867479409812555772860030157783025007802351633249246953068590805067348519623333739888534222856756204484376405009440325491134044486585061209028631026563617317766104041717946305541959565870806214903075948574469973845776755460243391403393340042501119762977356887422661482017179227322658219838595557200341816134343878622635842734716386696634909082555978658423552155331645215488963000449370232527447136426784353442897474858708921639761081020061613366451454332513600422172773986861514750296923922488992430990144832086607535516597449192639869458506419895619483256659476670732167977430235965813826645700536758195398508423344676383353506738348363876033532637506043547922701871683450091051597566152056798979097613814479460515030638136157512589093239447805673161730987010542630216074430762524489180508018851166704225374157911877272709324711882285763201620674713052115736003593471883560190150603924102881114824418875275019243293213374241488760220258349913140718213694050978622737713644916110137939826441871005264518939816840463249321701129906393572789574881751555670443820984613047901867042133445890717209940916019433495696720618378394882850832774062854364701248487206356913361766145132087579658148646761698379239717432813857903487293319657959612970240960070726902450074315378142516509983880455599943840927166793723957377555475752161787034326921517555157477650318649880638398856000442010907531513485732692618187384807705771424896788711508950913770737291739772457581224969999321098180550976198081443272533916826257950460243230724654685052515310827182471581400381486416037333170274968525478989172415369435886035984118321629599356997389922688831104347352766361530703317837289730744201715515791521845079571699374417532682961668383169380043277708664801523477280303529864032839198858680650120716509215332658427062625040612564911769620325662143428036265851183788747475728338747405769073116778599642976960012619910012360057907107789273079885864487780292750921203250695903245071940831188737220364102267146946610035931830146893528579140363770220038391090652242414034861154095385484954359191795149899892077047599369526749572973072993714517583445796865579255514816202420338646258986019883160109396184554116165815816389561174454932812339995566430826392380188080424063377042864514546701775550855674314052332810183655771791488056746618139851500716728638915728109907201594834765832229272541391429799381025417667777819475401944630214492190683399077285403154677648769952170669790230093192364584631824320931961051981077823877484411962825311429131283239149676010377277650960357225695795654470113637886417484058942599964879775745501023164685692248176385291109788647827466184844282262894768648603519685897317123526677567608098650420107259219394508931032528451565337834367878034387390186962011548662138970186123786909280491592279862685426502562566071128933973245482471126789348978382964747790974624858186540526973241816077065413636730636990177431705492667622987938066464301766000205835317823980136218078627953374918763736194464156504662378796702389704504461452328993289973153192143441744277684569615902177113724693179547941257368947430045046858928519264861365787753241007986285926748152839532446175726000121064802425811958612205203413899660060470036303834471288821279756025991514848056702114638364841531714613808914608680577018790688154256010427608582152703376156218709172423347801703510916451326373101971712632843453228821657593670591399470661865924331224423746448736036925215467267398840848998690514321535387364490503135630033075547565883647191459534358614085280883717636232622368304439544377566473275262566519404511776466616627224091421911478440890003004306009688574765489947891844228129360928556909310363197533482761770816290914086367754474844918848987744191422697357803274317553854017873787066088247689047365207829896821351804834337970820112524984998993304223068460580408246976062518031595552914487787507767020569606323078768482704165866233066644350668292221785960475070621516943285352413732301077754762824016243594920970961642367829198908830199789451054746843237458693115916482726798141799993205956414543064093733317192506242937623985502785386881616397280815909820508015811362610548930578143417875504443727439290562021812526474264554051071207207304634323488405815535358987362126394635753916284192367760291846618047401875893440896258629352559524802782101594767987088450055733926134707839289514284155369904605786302759123543609835055012412727641098636929650825549796902841902585779079064777788755091735224990498763073012624631195553737956462670024380521485507429779443323496533093130907935897752279987137096848663405282186534353775471654855708835333111288817682852457130302126287689835665400607279032411335282232236678132607469995075826131734837260433810870975356440815478237779156917047440627309553178587767620088850210195723408581812746134248647273981928587909258811307496466190507615973906710964146844626042615635909599473202789136970886918084056177705251853919742034164828175877961244259877741826775014145082156874450263300686963881310728604162665917784237834931114558942439775695298965512686275819554674740078321060649214081013218955997409814772654246567457104843312202129233928082227782618050276900355194012427352829810979740614548826409993381902673071995497696462798279038574934015931829853333310068064290749971302059331960083449101268711145323458212609735045337581879258105388071522548473581623413467366580319157282303398503825841442632786000008465045352387675924365781842912199874163917306805032080779758653018426840652457939852505314044894789074176831598833783862340345130589375413557270155046805192173415766205561068705601280657373918653242649946011154537256598366999051638016091250937977100950577532337880375171807418129286193001299477207435255405411146308023863232862888668758178592948443407863545029057691505407877105771999285118029395635521104340926001893618818425701270861580080560417564924727814336988459654311042132814145657718110808883893628519788562009332724622735926705876429581026530448419859600618803685377549370850949709397492090870955188618321835010078262168000514898475811235509155857452984868442083866013330695342785484051402466620914017383763799110130824828428315797082591282737046335594960300199587980964583500667219343689613369785152392966249692235266984147499818620215005828425900568442491458747332432418491309516061710591315723207793585025783393772097081396417966415152071464517781252125114245431419141854589205440406239624848806334453136750298690861974696265040906958781046637932549909863850267317097526631847783790466502447559515085981330749588122433166534375022758454105782458531676978628142196676265523721050573433484983780470973713075680568893724620221424529469842920606804856905624553403204627593365107393201148154295507891748509650654721650329256499188144749461420277367837728467876350595760007614777394782829615246256187607473056103375864779275303939916737299164896814567120822091344586506629067415574712537742756675070184272646614121233299645711544783041353766427957715586569132716952891021814993769243838257034964999323909747263596516466399333162792587305962970446604481812634649615415295312866182528916746625333872997916598433470241034251043321535724157519502915096442748676652969016306330142966789484567340559565332488613367736320916186018274199159699773902104546125194596244084840108288748216573328932379143539013535791430699037275292336963520807646754868535463086752923929650182058550138131505240304099918960094608012844561302762984859221330344686610412864737577306472678768807624927186467848142396410015506116665904817383299352758484913660927416372476058522797492456107192557491023098365765974574273423336920233794459077704929639640474005316276432935055090613038340871648801437320055288188670504035119861171977061860701536764656670508233124543234298663238311004803547263511906332936281821502587048570245615306232674900648206664021776793553744588550947068355345494928627063886716268938688484175627519832028001433993397949810194452534680077209119642157483083410015413223217393681766773885216349361037416598506886414385313371483262675563187822315753810735892877316405307354697334920746970476676066210040972733410802681602155255942082951862465844000335331780654589818871471712041617674240382583124557345421954560358952144323089184000804327600424008060749705894531332559456228631973941126201306806092478275744718416926773195535808950037091461525491507734232075659241287990320511723702591194690585778463249855795015295150237574681631889930560504156638378712443179583572932404942928494046940441861989257697553631381231359964579329825016825901580155532163569483996881894722351749505207591792290832875272825746628134941550777176574772905612588260585444054074724177726403629791893539659161679259564710945554606101708945546033736414119366879777527150190130757634648539574904823476033717651729344915397626861645791669978598615246938173494367280749146558690986132137819127364014295684242194237875593719864325197391055939850110987680430648250671845988832506289822357638203026525209772006685841726167087889204730343881056098100189414945419886268682027279179359873711875130679423618570772123018155268440062088821720832701112781598742715553504088492755514455188490723813580796459312174108979344133352536356051246686450927924570339086028010440732102198178222202696518006659568687760275051109032880882498005473046188992281760391300966057763477509953550038612284922455625967893211142828555365814775151742598635027338577922684198876854227943346937682992101163011716841346233263702065208602736815639950985873651875717940746084123874158268559963317845070459301008193713844503177115424362441436974422944922300009435172850114121933665482915465112421877041904524140454605816486842458248330156017806238605257935846043375728539636253736031393822542935818343234668966656576135666057072872275702918089266814715354733592049192671550926186007470649380065938444665128425050002330699393915173841755928133418732723328632714624003735118120763449184247893580434873694956372407357688017266541909754713439981164984988496614708070013690710848589635774627512817020301448049569173850293063260667500376015617495004661762937883888068142743327428268821925545232398994395080563100846119642647367485401603633307057446784381032913896148194536576548464179552123654657596348299246423532938913279617476468691702672170283147281351421249919427799164095782609178901090471254265784043724194972087435841078434131173464802140752700195389564327997427178256850489275035418858631773507675773507388338778660150569782159873625524491121114850111054288251318447697902445681296862745669331119812206340049169719463619650930662144544130168895153493277903023280075038790304986644518950929449737416953198908164164926600862776083733124944716417833694546779670215299532634051536561264279100261455953660091555359548171131072350120768251900122131107755908796821514906380464743320825215420864491961278202031690556838368329349603708939807584091080667082507618894086870931316399236556111780206580503500265809665718499087956476274238739961066546110549639706490703298781534509197658461197399608565167153184653899502306422802053666875149330425965439574341664018190898418971644063956044441270648670036752389066549767370559563664759907858292404263415962022771302815677762388881568698404557583028443072398833692074766425327209411853162979020461261351442225024695092093870190601543325383040392088747073675513367922241684346512440517910892001404814409029604926310737325607189583652915725698395975909183310350960478355605524140429514004990058402845376701565555482205852977649800258738347657153612084385476956180457480565209773592585852799939227726176276054335239764389619664479089517611360796708931186694537125769417421052919888072205306329659686392177122537557895472840348288408350865899016053929408683655251359119369206035494843300308945387693449172778062342116348576900619864791760901505781060088807771525790129968531225743237866981865020656571980591074213725259778241364331983999992961052089720368840035601657532599304291242757943810321830978330752635681601832447528107925983606649209836106612473879544694640684619442548526884777801028536526116195505572050031263455238692409679845919555319878998871624369802185420118858667084369842817469318550487863507580062597072825905175025204210472634150390105925795088478306337631291911727526894968365639623142614618458575827337614027764320887267559107993743537701611784662446088376228739393803154433254810610300396827284351007290017433158871116538323503055631996189208147995792530048228367937625188892014800938218880157092975612072641602902067055643750208312346184360760208640345747187789957393840985319473884254006320555669105605184418158426081284430770661182690216368241471216106723787495713975690335046023536878125357808484960190885000971232549875606347394819089091456618726146275306419793145256338152816112393891306323615247293634144466874397345651185158166757962489424374176698257959840037760620071391189280380502695253599787725635536290019174227926484378416690630482472134097970943896449200609606993746690368907264121589902781819896243913525202558057134614554521001717575350299038129154130727735173508037154566024476866014115249395834110118815517659785938658105790726208969187075229334314567213310092593421750758199957476151699337192617775342756661922600566258281268247145608211780481106070750526447727213276424956054557417424626592576123735712907655407642495002739046091744034813499970732680956775401786112054873402147470894979779222035161111730236837906203117416660095923466162479413948572612530904271479453272166833429154009453062902653312245573028841212970130940322433102954574370173506772044593574298130987609732803147808771276149217878702633811923366915778438844920469132871111561047189530792681823960652019494212561241417400315841715250666964796136662766665515668615552053278714882506032252338457122870842927506935051783767369355886440710052154775909861943887690014319779361416499860668681092184872224491104966327030968414159132805348761947799078564577302566388627681894460550672591342518627023029002521536256218859464887488178752426691143170824363286982998624637432738861438731030478597391783301010785300212368396211585601933569818337096098302513817767752065060705332343345601148766951974092454661554393004164519035891279678552942015496653229025356600265473922350236217806934508192727789730849329099828035150076103370485955748698827124550123736851299291540739118298020711295377132615131981717363348260421393159729049745387243529645033725141701761461567460219566025401025383117289474540636903017771686116193155974620265777218756171299419979878621890810684453462926057982042725838097487846684407237935779388652709379170769847802495638581665712813394753312614661444279790942695426419829904468297624611553503708057552707434390803307118000467563212296266079541730613354491909852961926744147620915496716721804615495700512826266337838231987070206700584727618833699947721214667451616522605100558452731448260753983778167017881810678180416936212521914381522378425924487584012923251306333225659853646903854628349570314633568881059283640758842418825526055125103187703520745915909678654624381329201329348933775133388040596557336065557303247969855590552321841358130085382844821328718219779046939912090807935085230359446961832131190035870417559308281863937987161648095738436839021502056744080854721308494168478847857015267020912091271868790008226664768227250328078863086174107764146697606399107214480954801936754797977251343369581635533472295773846774152923973798123346722205660084506357793186966552919563170455746383925572204605069344525494600030022263606806383043510220225453980171419763814576599605399532590677496859049757083098349324189088288436091415468166764509886258760873161884451221463788481433026249955749246440088404981817592781273885371794902209156147182291800638958381053747604510139259348722517800835194431788000906343625719585712166697130781023320499133928652090629849974488660176726174370996389966230845962848992023565774574386826734493788559310986056956157357011408131604245864038164698636277632066278002772490523568974077653252126446985110078296884787736585977131544635565654458582259593357595835004542710416233392282182069727987436412976847990383475853015923670900270751951735372082766681225575712150405152739418444100006322683268975794123580959851833433105321578351257639413445541952267343116973865271320738124891349050848619892054707594778433169401359536936475637778538240719571170029148974255516168842487639424479836959838972436504977915825158271290419367220625008987110497781256111458483142695874221637498931600384946282329161800369260527302351119768002624214052607908239783288792145495023192295585014398026555423882118538184928478637977051078121655155902591618022479739200615896573168288445577100893303503739052933360843393645997245851478734356217835921585499221169939142778518801119725108630040516877710301833071337477572120382392424725242513126625373491236144649500200408914525604970949166229071458003897388839416119915957209539148243894216252892229345306685394511197570199447144380180398361073408673710802482286580480013990261324888784860093073237050647082553510588010586625590722511719530665523855535095042709940954467430875788222200318620612875558511903320572311217338939658527684015110569495304043494989604825376712742288633825482472720777625168378856827959835457997704952272780015469618080791569822884735724019445072646506034102614574027781899697997669128999301109815983304039306359764110952215219300200563160385019267516463613686864995527495300339633397989298398651716704420884164966961223212599560482889798566009072964951527011369482621975401674868796539374720118224189302318107573003655990144784793154016104957204334055895526942425031201473561939490380045127491948107864656788529832036588400325428417428216366486365136139453195259031428686117403055067541831756846738822552373447174455744371526978154509817615288732328836028506779185606085609351603927129603177272032216435495868137793665520209517320191527068738963303289550401971842955283893823448272088317607718049719025337716872403454130360319656859961915322431122447668363556525316073667349517280953536168795906456976387805729670567132935927132180416774582049600292533472048478531915009871879553658798372064031496620397254581343181067648495754795871740992101870608548379356485629001831284036900337066920840751158158528594236903773987664343429059351510236356458146678015176806264986966843229487527956767830457167696044591164611101200088671406452064010628897788290258626477877961269746462348659239009139637232618294058874531055596057967541079426984463058456490608126099786480189117805417629387326534998303627849481314719523305519827980848596062081210268817649824211906244965969572474241472429726721104179590187003019146285589708760755381185786569567901340044382209964945099851756702184895170575121395309538048695771903092351201896174673640730993841135541749997102450784081087638519675356843625549390186676351391099725463763990302687446093085219902454499792474736076400566342890124023385232853265127116747859355246820943299538826714258561474614307996822736794659059820820233740624545396973366502258848408481756446290890070804598086232321387794937443918536366607651518297425301183082196090257231094871085850831100593014664476298022715004647360214793660555416942338332340648400166861572895737886678786286897361399742159242873105904678301100433102976535846530291265624252303730292620773012133410254618185261653213356024847764510692049535051496689243827529298345312225762767955379022560893816510335949751497541314726161688025295767371501725040377000179278967041182976956202101092676521948049243537385756524032293062764745069351211304941138137800145878334140123822547768287855791946123802550001976840483721690894913225972290034921916695981660088384511434770749673732235695736057943076101049124513289900106173212616228231897118530346714876255638223278943381709768018770239521145073301650074346711169280745675250103578268186857284549940184811125762760249473033205627079521372437831764853201763499017276173645165227171954632177912691424676704351251736632050060597436826531284468994104588908555255508388209254582859250180292352501189836209457578489437990957612091558974448306850044835778321225212667827160702844133855692304801542092256952831739660368022684900507311597889678456707897984419840809992516676899598101999439501940757483574623136803748781119469367505450818919950132827978230732447387605461490832081933445155122809150119561627665656349326619509364839298685401654877529669909589628813774469909460865407524224436189186491039751018380997987332815139008634908285884050813895871622669144258935808031291108972056664387446363098636507761330087357565535100196663936184976320800992965652743775180120604838303040541517072508935318756458899531595338460769733928517578068031127024145278440849277288781372414004000428456404503377269297854326373355467473790241721028469903182502908840188070463132487682567538675577433247908587586420654837307906493872615465819801053269855526538894422485988073337958679386872212052668433029254297571289984157625719088239106064614067364311333326437943948608800345962634973921149043640420269110156606850413451204549401833736653538781746944517886964132206175939725346751754311253784862507559422582368023990787692494511705837212278095335677596121473218196885820991506310482865658418079712120514469791368336776502746681710039663236512239043167909320588931751529495409552206861889174501408668265964374606273663193322589671286392924573872748816927569169890941035049304552173584960213120374496114542318428995374365324229992124758176960086941820029361041086274089227975442451087126650885403411273268419828857613042183614346108289035773223462987226355147372157383582612873414214554644319764205093202432217115531415004174578486351111821765194361968285124864752973072173322479104384074580522546683524729210108106594435519707447621749653916157464186482928526011108635764908351573300774727311001366699630418711141072385657712670202079330759154219315514509891175165951095050077111334503794646411457100469578916599819045771936431561935324762692508593008838786098430213209128003993469616141460812004124941357455809189219089086567558225211431591396415945298157890531883016337097348226435059718684585353423945285101842241164775084096785740205178732590255304873616872139317137245049684624179973249895663012346210668434156271207079070854562397261949799610005545349719235009600437046897003500792345238377267682915337441543424843940000085253356658524023946282487974083751339160362841081097729568364641091388825513807759656361237019492358007286342232848191211555867167745953168689495887898110979184300567316039805518287764523568450112020810325024974532622667281846776392011962826151819275705735877431723283661813682096182622537697776814283875797682338130668067682792971998159012356291903558537077106475338234367377456547515166967449488679412485881805137845921185776052705658177713181700303999060755393950187908425064501732037955072639264976172720948505313421393424837542937739254567089240675116198560797993291627127597325128376808465353887923495405512235503445672751495935816829938605662663945564965192525936515384804773916903329092129173706944335162777362679500295936478894071877867355173314775614212089648865805479102605832949850482176979882131305894779981534886348434212823925000488506341460470934293984300038824465064464940068559896178810198982277731200849192612760350484247422049905050849901565856299636210841945510815514647237911883365628011740661663474640852831934828561567521189218661381921300178179175726968879902586662717345021468947708041022806479346335028997588420917411187248499180014604335918868985166537752294486361320249529575713431716859039819327773065318281270547704841023749802198676810534267234786141062672101492746225575989079920644824981361017069586416862394430190521751983417266622431429315859489945487223030815463503242790403372155757755268935416250111095016265127692114213622051064185431073842913549302009224433895285099656057784837444700191487686688148350230433654662295475576508293209497795286144265868608217353608797696357399163475287112457788606172259036353481686523895934578634044953506043367727261045355723267137051723012997196192697984904680162135898067420798776014547314347217479331764478735013242984416815425696477026894882340916782113658277106517415808777464689904018068198671082946441235661379879683638098030129775177073805326639100527133590033465199207716413897179237097102712416672985199009404925972084764165752940672208710376713380860672587121184486482204588674745646780382314280445506507357009682542560788882777222433583842483185808261718387513626824860302539819363886248368451659451319510861738250956463656495569540916230911968150505489487383888148110726170913784672995260690791609365226822627895808338479853276170885861060931741294899514581825259113208304149001268102878707415290931316297455465584477419052879129758901507422034913294872906651102117970278644723770932875958851179771777882636772170796384134234150230458911079138656509772422863118560465367404669640983313834586626608053107916779481753236576589654731728408783627412783933199606318057347880997435829001635189529276143841129956769465052322184885973050942468323372295964851696895503055542211942619153724475384107117271108612566519791170685489748051731675866707089592208251549240792270511288190531468808912262436082345925887268550337097183531415202018004429992731753427681665503217082484941707154979376781852090007322996886669561782840084729888339803513753289709655155860642013519672354729267050524849807327262402121316030919325037459827801019120864208334970866058177768215453407599156304214379907848577045469731143228232660655321766495303338270502160843602301069174937894578837277931812253850939229636765859779980153128876701660555364566138386727460742156650254820017536898760972097728033833382253863452817995815371255085552634921528447268469263038712370932154204477006023997496775724817841564001051576888944944753817132902286167784493401076866004963856425564769834585462998711757135732542259527825354683337904920704574440342746540262372842992533307961201991910072307936227908524018395849767987605511773753717856668282613386775630213951212646830926780045462066872032051348258538446729031988504771128320508985714279867591542681327355394286040218822415040344703879652259236013485149440699296477095298263620516445254970696309913572182732414688314271967413629666786783365638005317508414110567962105308397408966729171755218706698706851768019597076989810284543468915254383545822332975049509776563516633662356564736219987440256191478832130327533875679259127045810391862961478596345815561908670444208841412025843783164162015331626631638194831578872819313486313106276091539716410269949923061057828336035402456422164573898443425583678009765008052539520074627209325387987464675734729667357967174459596309078297908328291457134780334006708224269724759979433642781486855897873452558716727995363131701237748930812788132383966101318532703648324577143183582652694622434141201374030185403948806186681735669528394312213894062712946354355235924344115130647032912552722037571757165015583177955855769942161259884608853588284412764409509270578110944951720095306322327544408072490763305972339343895184380751463500894898648302281790664444349162752077230190036569354531623495425124613962798635704716412349790734480469945680889503970745841692863172429439095006816967881153118000117994565515417256447663471309238503753730024654400707196775957750841776925916417658449611529967343052372119461099498361054174574433551939258259616021943529464763472702563503665253896782896981862136436555530830439611630917502028879229572856649637656559318851744387080636395399955387270227065415795131571784363412397371161700449002045217151774480136809814983684794739320422092517936536663518308859799971859817713854050811561563750682847077739080244972727855141733389518641488462824060915875684803342413329779021934451023653322923481915617658625451283893721045109579030098640319432920298091615830273757954558524159599323594647816640642084935673276950480990702794499439886455210994752359722873627115198555596364262152191907522570276678452319180370622320506449159968045119111282706427404225432780775597918032012111686881654464834025353089280509490789469420966540434170290583351700325276187717993133381904849182368278689996350934888999738207716134997612600165267831371274283829044553259223543208736091470422856591163532095202916953080164339947549548683693014442871814025911939174912068879406127324107643451738518358811326600268652661682385755271347257596618536641395512518668481598118896439548891930098991374649724870349631347123646478801947208365345376843560208302338220399692155652107000431861895620839496330171087961107056867371844703462096574229395696512130231824973843169593855410189353163116545050710857598085553219986004599623898163060927018722835091540545789276538211587328044177296219789191754478455132547831425172164151101500479936668653314075644079512442238998970344737467108223414390179495124098680297866553772329601429361097302615473355834876914055693343319029731882439079529225838503966387233054238124388368261822831285231177177308492771563620967206423056666862371746846722996632939645573250093457707589648054327776511256277595728996108066984341190714024136250364527576705228873276184875696249802351864366596305203611682049921591332939210286046518234538439377957832751786712963373364002202555375092712935338710355167930753258924004130638847174688164215806654333200743981652621868470049562998093912139180458422933100711712340267191641632285439307927747607270022251768503894475554696124990167476604206553555055297985081896568379141945895842919214115060564444282418380579070614310787095401528060681976152128702616075433242936534532437238146355688437180189958561110981901643358827812546876945103919726977769894268843499926653818349437751450429839592951420287620823561268074501374771749687517777371768611335765080126641562967362754583639284302578702986328584792077917517852035893230280553138602034451769290416260679015890407318254360913843805124032338558781901505025445871381087037609513699271219737321388712825585729869381743172747705082845527871544316517047943527299917043826517687427832775396940964325546896533428949131955938174620716563986193452061774086433600823306301590892975846259825640507704448955253750972892268677242041497023511941255621123295875508642360511568646853600953878198594534084626889592307698314726072976558046946464307051506180669330646651089827762131137884797038657369423997117119740013157718713103720384912119357497239467474320321124579815177488036199004659797196823673974778017107280174116185784965550836106632085190950423878263232877715514730386953971389520187890681170588241596727200066873654306125808942993734919312611939857166898061779845695906117921083504745315598891622999751546818233217731327803232216011266682489976106082791324798109149294367545023635269560737802943547203279447094791448130200929519773496002076736135779511915096543220521614636945026232357844697602797687386305798242877256590377321397376762760947116070372181822200550157314914389417690871336121040370448180638750128455253638448354483610320399529146031116350085993775904569588620546081887876763829009465111081512475284368616729648062252788101526045865466473344256710233773694745966052295939147194791929502798675858540413145060726383775666048078406195019402159805264402888197909556985092483357649146783479669826936447743654171535208295686113392730117144823722581820436725517239863895373499920977010935479874357416614992532670180037676278427547521411107258844459462523065680856426628515809079037185184978111725849042365286017571028939480938719793583176126697695501162611195537033980603359206381398456056200694230927477155308819366698814241172388208239822913945551323992187271227566552997310303616556151964686926013026984623009516967267456694994290119602684273931379160483467736804444186954242428518060345609486286744390518653885552793839635814566072392607756908860955076045742645958159654953330824976544574202184393829126191365270078096662831278903744287688020032524979602127159582029620728136675408570113528466966624700840187424092907962284718789528554635567694328672807670251258161869195397281068054359639522760536969719256425285124096109504701200092410855605100079386673830037623722191088686311417928236730440353928436044569531748715538177044259876337866001919198677560321441210506045910800562095234833008439191791506829779871995978567776519547561486825578854295307423103284967444462811459569041234313548512427826385285351987946542318820310173894520061399789520360944921502960263345542164931245149657728559974057746962806943810522182261605975792476582343910736406853212941588566948674042004305502611043496798109663912838100439187189653600493414217875290547782819275059716559089691480697760334427880215939003133851790704212872928886870247914612514534644573382294657059716611441699792007064520104710216694391318870489913314615797978289516996178528308944181156538289402442691494116416158078658324326345435334429729921038302713130206161424289310423217130055600362624869954508541419612334125905816878167085760169975458501345044887419309783329280423459329253115807847234631446808595444777094821469007251293252258642907356517439070193443159898724920816267157240968247861206688066785248981425702733002038513753052221043797538215153535932971845883498005339596005342162339767090081524066766623872781198503510543597613940818803413013265694674718098011508845146543854470863945690006170223846122201449048243107303802317633406954649123777450354995104399998030060597844559382854659707967323415168125825090350085827247340610097556792420737303405622695793136119842606420771351527644788950175050882302541789150851494758040059697833029034638989151018143893856380171312523891806625825045835767388354515891410600146114924264300781464921725338810075702785400834217674531313614108120608728559229099571105361611854493114168881730234522281549095699621114308142166489049153910950928370731134396630990410544443577167543009428683625474183757716346534227501871964646458028935333937588521450588472045931715087668018014838117402101490870466142218000688551807118933876033012879281213313796666592702406042284782450481536452616549469105625671479039967570105262887542037110746864527625670499462642076159613353576448322594318261772551485230835429571196406682559985235785753250305882808334544473891375820993959041291082803156320679180074505937182209569199975279081946401886349062192534824450243359786864694520042340446594782604436140526026736160118446620478537153539195942832728775116516905806484728000333141689138113293507592686398183526937740723862592110065932803472666233642376897296700083579880702925217641057278735675175990306714021493012766543212230712545284864582057539527378072409113262724375259452524248034552782988091527114289403347794491867536968005825242898463076340952437241076416647867419167177660579744671585345164467893830033275856798199406224025737530732057840068430920287624595583019898182284327076574886445033497821057174305631900610629486257750222445218569829323407876871020112923253754272670024936044814183536774547469680787123868321479134393090367740496371032626423879248898770286363026950634244966486794511461016365190318701228378548709689411352587508395762301426816807115491266180577919417886365657801009745274007290259445093882192521161535827834924986046271046399997334598967845391539951348469329026398497051002531511830839136866587713847960787107736688874670861444303444988951763519087183666752542842495673691731990079393959938092268976806978034123183630921900114163570468976750535848634145037145867187805260581774862540582472416179458421743126845276865842867604451055343475456191551067067118762316236221366868927922213129822516810821692256968555768947931944028003247277371458342696178136920144636465590007174201023046360511090656125495042292708293674808788575418703791531069213693489847038156889649937900558449833856199800629020043961238710324611372258119602119420672659691459383842550079955469315064396002650231633268968423314839453242059473730424230903739243436752375899181584808621016488440345623025405720255496370732371098978101296647375187920507067296644923000897381241923262661866305236455067773899664521970750972710970869654958252251448253849438863254061001197883931394291220683611324561549147698987593314773524330615917211822006327178301617069560973722589012448529896667442851032108752603514722246784535429073117049361575668736836313595307215597700497061111011795493073011561693740939953845868441731663048087576522206533304706368409296047747101706995638320132873100742393736252446901411770038808427673663638427430596601681127999249227709693222248012198791216939151475955864654797802790152023066115784309575301616519832602425391350415003670575778472216684812913486093426910708241810405838573342039429772675019309080675341957084934355973484228715244650034241279715739699474467829579346412431478973044602149007963455506372291000882143892346492452426179755377796332144668239966125517164087215128673388718415269559168164112223798761129057806884504231427199786834584208580373515467713870715360278870230760992914641362503125418527033501498410569879804688890236268195955925390142126670889895880942954931507768875919841566690381209156651960095349335805246945442803976255136983016439234757195262542909310546788814347314694782841020986921673352073998928047181374494016304678203818429019531135504960514101242354248421988032835269511080986335915958219687574078010878031584878072268760030930494845098716446183336078568141890024892442004690629357395783591192214199107514317758525157698082909929855480689799620204812149420432479215449100052477260072494329491233279666472571707845005044542034792763882016571569652515383602288797533121667450870924968591169781956480703329387553820094107886286523859507114182897451471353477736003001605366977254467590299144869850610761361757858520115464397471082817196450488942480109548915349664386702648030949223171141844172052674036206721883956639352832651927066041537185145325261198348013819479742236005963783013649672849035620867902957541784334439033965523755097478454616423953836299895533933475739891884327382324995171889477617827694595701346607096250146037856593049086397001536798612552935724858256740746352023253440717992327908118676114850465865003029113360935034573011456529550340629790129755543690181925243093460689590533044430640255214489105307343064904778215650321498056220196880613539660695131549319000311794768840445674725458517940956898241825762347377172797099588254783602888355657365767848316398988599517770283444863636521992123414262564063620331132236795784357089200438751157844160746393969721547883344771486106615660884599242330622196775363174598864877358015668648398888239583460323653969097504180188009999947509734907069941473374052527172830119683715362852921045327077824784571526239510500277765016270349440955751770639324296844649687968259944110887710356430240514142909803340847220808117045474659551408600593663108195250032152447820337501454649476685832242209964147695172878555429996080752910997788982927682164650980639946184610710310621787629294708463594335049853653403318517067125993087698613210359375580403331487713416696948663459678868655573246867780263644361555066547584567876239810056141601201868060261266633586109197634414855695268899791014502935300249272210176111310209250098065834217607230684752643045381917010576488967290018906392064464505051550139220687529310972978764628886777334184384975332448526578731242384694763234658474288016447432413575455962615532534847880523932342615508716953665958796761839754827593091276468954822880322305783737428959463902346762881586009036087006972861076776135714859812114405134395409598692385168434774684322199245612201546652221049443573656192158385045084671813628627990905662976749545029283842180513308638422456987083381754665337428338637948099473456445587578478843942552978208546506043111191249113754211948100905820740647675620861990206456799848862629206082792119522202282087004847887550565545007855997556014477866959381730338744550235232676224783038874546031479516426120914984674371544861910844915858087543459334387655371653773403925519903912462666403428282661300097631413366521391056598722414605106074756169093942860223643125108244933056643592139416164220271479200760217098409321243816450658057231462746119032395251977292075660548331532388624616169255681359057637963678023697253382577405768538559322212819681853889341135448320259147100507360998378770318350256902173096129874751348477179870153729046758513199520132025108055395801674413734863944095759785672628322657343856743335712815341884262966278659189193295586904546279426693241152755621397342964802986425636155360403683136089489682613966851632609343631929237458582895786739472101211687719258738124962506818026694998819208672022757499044998694273985856052250768982266900165781797529534604533480759312425680349033715672739265908024577069045973872951927824471817758078643754460852665625189640021852918599992567365655191164128092633632720948985084279487100095499942493142690576009111490959298801767988689751335169149077986412791762282385340826344539680620829635642608513692304476415956254848298434850701874369537633027174291613585989260244294258807195614463759652835727399767936326365555822342704086243995550450301360898940603485020089614557512662002841401745909479188426293468306416269074326042905962676013045730345138556179775052647661151585182806661038517437432976152592622880763963020464442596200564114786007640432929561299092901035753635429689401332016645433357274739947036335778169584034121687682052191981527492798409891922363612515668150120757357534407663720664533843885222658123396713936723635485683227253390601399329012225369446579356711638640155883970212346018864656831693343986309181484032493975760565974331057693198816214682419812137087677522347366896073440497119862463344659183370980270051649077752016334298298775758272116942083442296567842645260932663294230730924988367827076929508797699938418584617621843258120841103757956083101270293439306465526213392423469404458104500763565063300720383868383549186168104067758364038998092149503425969178648225389023746509911602199397362378952038999863465058428654475424173918407004086185422228145679736996421983522542147447254457132897757411477879632726062830000698219859961531364394232133862925439008604164747144248210600217765929610327954036005824097824427887007177842030275503863141301811146614150685961926079311199555111469033038017346869658856042582708895156191301147552453371746516979678180445976140924293726699976522833189826388960559897222866790431470364973471292784011381059044032579846859118845752639144799762561308133278815937506194202064254390857517887002467160681552921054462863654307887714432973073340350586491246644854180976475815420019898726940120016958486303790874995048019918203367026978853885699249652077862512767227114761061858989177976584176212063663371013085403553008666659223289549091514136049093359613819388122951620837943001495694233160642407024236933392170408504133476597059164770922305439053968643417296222846827863071269897370247259555848252741845890960199724224013593554105497959012883244534189177554078146319362685298076529750856737375264641066010557456292147432065811194057283085960592777111321843022324755315565814188874362777324667636891204653017401040387876604950425755378602066940551331613679277984245897788122448000990601298669970862234356770801297279662880364701681620311577859713929814556267575277348413167154336307266210287233185587429847994001863528595901209738595998155546559146543822158705875003841228775237721103020049576660460254481378949454657478686677531696392407764437490319098053845782821366937179333527918051002392048608723981647724092232893203812610914179731624344358477825034079019657394566138457219805050371915367456595083467825646557980910055511041347239339687967058150373565181120204633535929782299593388040442973435164161185043692694668944113877841406436951576857262980090987968682103714296341436409572834007703733239659675145914386100085158542253932359692670184956446429016680201708580183723196854554353099020765282221169487396135743698640649606062746543910264526798570676767290817204380202526391281319003300450578310633746723789896722241021365463537555182912191837169436528128321306258336316589919305131369707016363230564879336056904748212177176187727101668888626218234841414238680764666375907612171129179751500840112248416318928342871680284562088120489659019164265644715787086462967777378014115694513971076143385810824947560151387850568448653606124056793822416900865813331938643012521343436081639364001355771531015142967881393705632463988845939710462218888820418640231561483203978717758272964050174093838227085431539835769116934956191336456457167158881163083767762225402765213229768626219061067225025690360763255333702093929933748588763563658636219296859856354339434112575378661571526529487764407436266606339000668863869235841694534777020839829119954640488459352452729964248060794582672393058717259936505424704989695483899611529117823034204546346384530204400308581361370080975265635050746318477609805554215901409604117403317898695137607391783718865157550258902389268035412268952824603084735300105919295370189411885292105602628553509027407308450104531413058660549941349135540675000986466643298891643426069493403947359676171322714758827568809125693290349547057539547912124951721788583163791954530188191223339585493969001060167920374721783107523267624330075819390886991529395412868828535274084896660307864950383673983586413601863312866355705170809795919473302007368238042010265658182110121685259782376613356332806072105705329177985635939177979577588297599712435316476747953520556175950327868715203154086020594024644757805548972642055276834487067964365680163460274143420195121527797529746099897292193823835720593558670900459314632900092078619429741358211287996029398133574954447599992951839194411188043345064063624630569390539310556002977166062386298304772769239657848877800307728949994401289401849775635745403552752933854703800912565129168980939551563354202920918591693458254539853042152742775086456332670451686940544011778935312891634410040030627663550343272194708590048199987129147203194383835935833841196944277887675881770176644993976422588892714613267093065022482210299780404464392510189995774146366466967786638583503471034534611327076468364113434819322897121549553820985081031835237900315070120536496056838658478208201784587391251561884633471552641942626537874797084734219307125067064371458190406028741804992685026735825849159162800902863419804296814810051150769652294335602400764461145555820533514431632043812554749980391529123539785397369448974293759592600973878728850699406297134434835810750720068021092944637346551570458237431525133200593631412194970098058446227559788127882147287896973628264561836684441556840038902007931032320896064297092626463135123384248978527098718441384028654728088292394068763030131794483910406548173525847551458576555051133490554509644426387541665852911427078476149325325659314869920550955043971868944778996273693819803302852748166219053974931555434382044720450441292944457050284899336775893286447784272161265164854845630565050300225122204643277571182162960482378429139777046081931910308716790913097918908708615167243565447466051343971317998953696801074183322013391235284931647868871876333033602327739784242396159323822802168460510549782501954354335388035517830462863316043918025393419342207306364677798782875680890708270005983679172031673837223812352786727084816851585090922260012612558871924472680480524201313711249610303334889601489041664248734002268157654833986824496310141144420577332738583067351099610160148503203224936129984308910465568541715957484920052165839147501487993685511505541902670292330447991396626813183465652746955046421386925731848832037962644794483212626664605647476418507527940538697416119739880356757628493326124391781364960562193959009784058476790495919365701727525871255845933327766312560904680929118492176414543495835095278768278774633535101379446961101500868834007451969088141468085355892815727294585194522760365075276628709471249100382353936298031291392543385358853029903343857515482182105345900638424967311895481920716004256124450018383086246192233773319391151861947287635318312611574241319061426896974363485272097876251381924160367746282504091034514178837493127865416454095236926284484830395535623551070887898159792792778919682036313699598022613922830068062263206653562735695153748168637062359960064417771544273117291424468101970828125789924027418269743907657659383071554523371099044508975745141229622536219169811787859961692721734761159282594463321924673423531126357745519572268755357345765771917220540142770159851687163790085965314477567180588249436587595175005847665284235522444890966749283275666172296606168301686241459563018796224771338372013714845980743732741838803090521738982575121975331206726016323631049440636324181604181634181159608372879559879595800999597482519356634582660139625803818675074338514105676649774509730650100329609652417889446636165971721579482984255298392082538683704939562544264350153990029096635136838999105147339113825800132120126277653525826037222320783261004380808012801766045738359079562234167040499691868325219649471314362097352114160189912983519148434738127482821050268969591633186431782786813250284939162686659138409496588931816421621416801231460014380578218541750750908634983313727247462441733738080345665881997723312588061736085757936752699327617347811859770465608828375825091308638136765112874871974012173859847956025186606358420619278500620990839104380169897737692694977604217652694148026519381262734162787329753186222967875694271110319558967289144063252463573663771866952984868466242896121046610593736400192948457288088768285711910863437444421487825341599374688213891321281392278056922740836613725455498284080299605122692926530632990466953845822780206624745958068637183457837794523791254599166725966137685365332999640582421785770988056639094979740498803623207279171036957089961516761053713476890238795910140977362579717820479896650126169625247455043359514610265178990326115383111230288849292558601321663380265940775412350630299634194238960199413928191488930931998288466171526490042658112357026466455020614491621530843079443486995729602218795906121096012538642325264293453382608867120548881956246640397671741261022641810923216403330479744520886595788182625332218236354251558264903525751088981279944361093558940089411769062856085186913139180887857403052517782731121633545144153209958595147272215137309535825842584818973433879676902549813567749370772137196705206613288411858865019069087780268866846315610044397938162018206589331715210734037670476993578148277081702618312854274426962574359151919053071056937111270257159277637518952039145448629666679513768965502160940597366860241921931679131710553661295324914348600294810470022798616260785139486216157181003096163198323998418952552682708608627488174544313885405642995330578917519325063342053169300777981055540119766343537683358371385102123703148402564066308436477928183150595603485529062960189310211254294888652972503201816015371972507574573063976106519436263231167817122475616510229065833766929492127892426078523414017592426898451067663604438577158639024422460452684880677381724730192929038235564283111437856811436389232121248421466795817209374697801656006634026590401263787310751910009164387678712901410101748389917590854860247428836481228746865439592439706427922968864329215460599642735957904182300772498930102441132878102248953198217476190234831751612391380280307115836012722035588405446384651552998645338194740123778968426361177088504396984279139507335351445308349048440183501398359169483560980568993679916924596111488757446839620774075859474637685855054669028803369705533838960664913942928387140950933454899243966013448318306545467926274389217496318369354347644513100249724542241737145871698294420953763375613635026391135780552735736169027985987641461088850478049479237250914992322919669039345558152448478295506002653468555718432907350681286661220438307629650910960237913412410296023267761661613072931951266817006183309524483375037543275262812509929674786657877019295010385064057779166211917615021522170923861156886911055011058998313067270646598956637436221245793007339332779278412569739708877254141653140485138662388666019157946582652901907217832146923319319762469648173798932823114027840057125776109760071543261131877665500584200032501807215797011288756710888897607745372044485227577135423492382903162214675744007438236542705472121094785303744481649411470505174403234848941269430369062824716595714003625444258745221183823206668120504686661784258816309565029310036159044054034191726758106882511980292991411586720301445890681249398788222938541367956041800135411601853777847501738420932760912870430363858290358580248373892436218067688159401832192698254601807756170447545311010131462120009223091272738396347540358002572982850806719527417354116282523536020038831928129335676074652136419847919253702212751558095879063441112007685237474832119003667792390073725088065773847283683212277003339081498670731519299984062911885609961506949972381501034810447895754958414778111947832310266475029999282127192208598278960818152484154675833784750386146465995577183656699215349637147263345656481779916575732946222515336621432483022757553014561963091149934440774968158959876528512158109852609206491021844517552648875933500275819153508062589060044918395057668237180831567401911514001456000874828968796740931272932912351980174269004122772117212147895313304736354107372018032338144512085453416251281074011912902573919463655496817384259757933389115104564585034715289093717470748841087545888553793457852603010193310062666490292239037250304023157872599818528260565260446834972839924857833549558987615785440744192572347488399751014636409869764801651602455122417557895520544505614736423626674753323285318052627353122722462262265360657897184224699478976165085951494177854270704028046098689498462793373965997227073338246449548089486228010238629616056468159191297362391334527617656459591194322671194332021393961752765131725373206399440011000391128317895704212578493818373938143916355259543328315676709933232056266462390653598091805675792354123858469718228455546674985915601311307204390859048443653834363565964801281339664907614266930981042173170402405588510128971942781002212410558142316293639980624489427256392282734489728031840926062209846235251677947624436757864809443099646398143314197579267952341805349440109501949571905655283817237513800787984157499579967749736359334573881961436578688560809478723376598155718525679173064339670813224924127280598430781238300273237119191852928754500142029366643388466961038871521255739041614554856543350236239564096774264001740365952428789216631954269050735142536686101200593381871428461772814994739950280899918227942974651973349063971179828327799020473679851988272662507801366272392244234212861209173402980125372764210970005068926177095452803329601842877808838922977620377268402794657775152525565162489400482119266476502397924401707558801863415647035231242201509666351991511814789105586089198130690917290635662702564252037609604061664649905434076176993182900149168254707059259887692833781258900129823719777155705257374643334712810999034129480954598449263951568507775358286511625553175223639351202714349527148503261402662484317756433694614359207199598958068789524002166666678151665071692664750482868470774750911998680376447630141788202327155518755138089789796009887921487199731430666580471925657063141907476383900126498685207683104607849638157623089237279941731494624852372588995198471654660394318730717772239258780123993202535797044505449056318116329788484072734584682035491664339167557586969179621184510793650569994378070635755818272367552745901826816980765993148112913231546774472529238047010723669774123720419759307915700705928941861545582695529599137928195396956405511712815934845902690454332245690444598098404289842865917733187209732156131869942592704585689010136032183057592645813922576424168827301877964601825533420033950056244793846402952858646420241889013035495108148997492016071455826444639707147319783964321167095919185812957613157953932479579547587239259696294812955758961404432685363409225919490628068780551437059719181875803999469932981157837352108351074590768887385763206071348383602759165353631666185511378500407434441366215002411716481152745376403451064600751154371396187235359961610041749150919425788939582784798641951989307621591666460488768319198225168455243605372720310106486082417513839073409046960724119005166248638253561264804566500237205761862567554549253148349527013402219464556983379733235758848913578514831392770375118437323719051754888709008437112469797687646415837998149446669131430817306762654173917450679691258908805034398459409743764178898975186189568855169406346126908301975313932755645291251013664941630394106446769032804814529751066048429520246600304195663241142942887529132695666113458752993938863291336957848057146535908174045463625710507914160055633092843579048815511616618968079308752436121991775039955632244815773257844850539898300799802049652939087618044243344020502940576871451678926197543551873109639458297704074311741841945881030175190479410976455087841298663118614681588452649081660543440456065786693810235836926736916236949198086998731633855724897070560581643717304242709276758763449631131282615027003273896200421364486799885341521630288003492198641439720963614995439426182311546602253146344335940762189515722195606472592523465963767599611249550221019944264899713863555582950827252888061185027284732710755503756487294709011772714740636867797618218612194177998241779155748448988761213581151359018854451237429588791715107420092693373306392126044018237883613237138104625319948320981416505637247817282515218287383410109706552130806831788859522825429318020641284370438170232905258208173868705206395752131655617949597884649515173391651486005908057257857704358775783922338875547399493833972774537579586069693915053478421473661067467561237388513900237472909408568108983525725412670032958091006378766383350118811936097314706164919678345742190451400006127309953837718019540372206976331876316257074515819393160766334277162203059405270053273692279894036422793689681785214986585904472158491960787292904894690163577784778035667101900602173407792232580244940229051030958857082034377661041308856260503778261095066124814915124337631937666390096030377118456822117491238338806216153515609414276373130759510790845112902723545198536138323333080554504297836356751740199508414185370964221804496823401122812461173995061214075611676530500371243001986351923155781621303870304553630056228290183971723653241993629253227174398174457559782391259051732920452050188343409317924779412640494486447834931306672149452359417492544764067902263820543583870981254654083628865995049860371594770512296426821057236019536619366001542898830030171318778177764668491661572798718582412250489670751073671567194000421735231040889518766613081746448832576410637568458814486756145309333419297496712401821345058995797678206374059878166451450451588493977246075266081251696078620932466475114823409174988806702770811483421110874378554935219500463686260758925621388774319314538479106718783376646744051148251921981705545586696547947175010919991160655775590449175824652013732785579813496270972649740061131625137186869580192050073567871212296048127758916766622399747539302271307145396102433553290841498561133202371792637737943394998385690473807634459201618116507970163830024999819383717662678860741605960451207567114673745394657579386943557013017419031979519219867204451463685502353217234341543950146766384252145974578744058689245523024388833066618587241985303386743138936948227737288798055113741889031733706202688876552939525618286644213081701564201467752064378588673176286999660833310909887809116345304688768472111503637542809485806576936908457897406387356321107561202765475686167328185517643691383941750710330049282131235972133562270472112465405033940877402512238237018959598309769238983466005889501752312567897879874071521741245417948600285863202796264754206684819413191059354216099286980062416222338752002338757054409496605856466683067687844081306082395591403385985052460577955839836306461722952588283976470326070791142073887704918998186018820718044629506397867713903819414697944594447144835855494204205827374756536279233398591480044541730978660781063702584135375326725383593388191155269896377335634696356846898297896126648048665497088521054523233872222284143377355721123932922241359208491316188248024028959298952593251629188330448121243011686196525558478880862635132763675706127364988947604051597208927542579169137951591482351673786908421697553017917745718103904595624034608884832028681223480128793254701076123716783009520622220097167105691825614238440695534801909175010129042410361707415048070163343090109971261227445976325791225960460776095910651392930260184038982539197060183552599384854672954341064712049018168770631124714589854221951061349932231395451118011938943095726871394153151191185011524440344570880959244355233793089446646703938559573997142160506457346757397396028068866902861177304841380062008403345157695774774903131245713294100266956100445772533487381416462917639405898867281203262175642983026586548195053345084237246576072476836130555800129481820489951970931712540677298979684512958114744390839975597843860581661089016908085516472167366118158584038970571746652392159136877026737828155493128344778446056107637064942952711715395729824046698106591942884410384148045928311427113971218805648658716209643741343474678889754366522069925964287449367431643306774450901680306782781061449408887583540208340061002261156525730064950941067135530269591499133429338135705066275902460408457677869815987305414775373921302284266717910150849712411114361549704198354289285831858283729466824007362903578144950738156283359922570057196092767668019156437954088540756154801344866360686979147184047440964362806204698764863987618353645079295660969732907107304156826625313662079724449725414154653743417001241640734049904329999726199966190652149375730216035779618624346919535207213031359299475871355284093118294713198132937706610172475070172257797252942474145772433472209700380155629834693665951135693760440931177635201531611722733244253988793685892927827856727090084690245225354238131409285049672470942880545811150343806736138430996188098996326407036626209619875929375590443135784725704756428926641893282108495128478769070011901217683543612009864873359757855923107462731156800190959422368022981625006937513331650202349184420428968377494337845968576138721978670769531109471582715891929741285262635431989371176905750254399509440118304197358970298992308479640808760550695619939889499274293437659575921164457016857678795342691760531321910269059041721915465192871342680151300890657586063508904972937158558323834093297617474080558087018533051818257331169720781935826909781818658790393391508143833648079775896364115306734217817287733943637469187449133876791836140029547828506110997284578507014298821499753443072687970426961590359612416724524328463174231931469723367360604256316438334546095081635046678063410330461633010764894964723995687443063282042679876130756432246058620819260119782702186988198086710007664159425591522413790570987283799618736275216981642614986528060873520352309222805220672830329487458758984393550961236205507002615582205210562225159576992715742463409240984831024426018724112677420273428713709053331100570455198617425562878955881013756990742127908745737085965732477951556090025112208998370573256656822598805879886694494593521882422068488937053680403607104735547696211413709027478151582654564365372510989562345344430059036559890346061696521563391611956437646029952742167167464068534070614311285870032280781406175685084917451860741426247006237520494122786052460049393402737525507366739746429459045935909791531484967716948371827810565168918571357967514172686968270136254375005143154883131991830863654191166296235450030111748837904808091780485809194648387866723294574906755789498360012585415011282835478750836333449807924672435232188932833793876204564810861410497239065319962507049149414540620582303722095975595888902160461002671119729438783203325614919081206151737566027811454466319900477955597447370892333042039670770082028479752659390491583933165388730514356800688961210946444395483826503868512536713148022795328736757632736366546371489993715306731353213493600093497530359624875994894014805453625748052087855744944528975243370944413498235718267819936637167751710237396930351044975145934736439582143820157213385401152063273219947894555702194229208490101563673843473529556825239897502163402841220771687048004632085232564654628830981091302606299671880886637017266218108617918160182213298307651652404122942396891594856744391685286753372682244143633837111598145629331095413489411757659950531480538546314911974923771087481681438987342868045232447893898765382393860130050188779220495037807758873108276464078281849510271529956800061444335158114745813497066264721872982810696899222402041671744506915560165542304914728490968614793536157441717143366841378836227287300081890451570289503838104667049371456330486516645062415728227769710038007924277053518906287281395415077144854973901140320202600326938324481329721836687389705605373958189011582085869362443984740702393053359625907829702103515310814712798452446105864225230108083973039231797729988851073830553480443659803853149593259419214807239934271728504551505999517282906877278217168901137049574756698393634797616941759531701655857934710208886161689037617355562982182827776025483118403200830120722112086708092968416820731470301653086875769707706134741606540602948731601812044474512446126637194342471369082237723398761643150720523817181851000949528038715596937146722296348706783690352596599692639412760541774130593776807940747768779369324832047177914590065990963633959784468786800501860745161879686926239388373154399485291631467916227149014991726598829375692973902173550700744706585786905389395592209008777246776212271580413813860567053888891903728005972895551314180741294481975663668026481086351864631799208367536026602190151643972188493461412602553565023467938783056469717885573490157119486894323393330223591372885112543779604571490564448569560168305807145546968924960778125178602095603736675059190345528743021251339323683798110401869933651009213524900820400332557391240868988237561528208470883454533357100502700527865533635251426912457252110875220324514541191835390486479175031644949327283183454945754475218791612482384882401985053129430139200261565033557942557608668370128325298986588727504183337680109935632844662802290222048102212200467924599930904767176606206510346242584915689628163487023867888159298009854779209993318340741854176671148905703163446990155174799463366463476939102104542570810360854981385547287505694868220415807741790070159553457411658700288152459695454915650132452056245696760356290255617827858409185476587264075851310550157927477512766581038180118106812098465360963210939768366363994327078858180777976470550492082171370247623203173859700182834297943045206344926527736669532311785062799601067892830823285027280015783537248902063619090348709340344889120472876330457816534198042154701340892138426533270437117076018983263898979199148950764481075510565875447870194712474863173269662254003930437792408837559598244382631707817895111808186038398561365924714476830466246522624814522423446306219769097042769918014591826785938403732581624003538797476974000400060587741531079981486375083559023006201024517377009799618898536230562584232706513417519335045305476792899032809612121765284460209608215280205411278541836455265150306389600635580881815689741317153027201399278733071530653367761307291461175130290020340973340045285026951758286929805420250406731058222288812911151340092984528001887276494152468127143177716509083291051181085294762349903435354895078987024190079122856665945265065009099973025796060001343718032910958631482621905732712008665425562606384266237116890572506399986475798889017864800367884666709748186106767120292277333734094092766449964295175661529808870933120795169797466526381036329531041131582800669464142886080326299828139631345589196564137480715867258392042759856716639339503340855857134861539575742113875044922423202303292725311953566282160040770023531113829433446853843141805877087094654810936583643646400126189745642944446372150553725777603768338296314012314309442925743904549322573845233435713412504832229343137899749772660085793465374981458313172590014332963598255514937190788858942372013257571425426422118982070522178527375384691550168166396289828916893281480909627014551703515807172875374871378194244223853384462252187502496758592322727680449861175231489631031576015228582498950588777994387732122471167401953936351645836276480761587458008915471878885920505957341035690570800606300036145786896687706844865167563023734883288060199165830265144941700602153864161449614217360362006157707563120415764107929664214472532659937731503167852739299536814182677232329805531736733293886165778650258337147461609487591973509778691956647275591375754437333234659741817885565668495668074620827468458291090824493393244556589959193923210970010603263999752094217670873292344470429667447612037596658512975590512255100654737027382231957321731146897761641831146407213866922508068955302640243554904834481235982735851956364948755238172002203738716341683346731454794272191682915221226835209401288792226359449955502337355751439187299843730002594102376394390015375649610515977778726949640867769302568511321954271080331850091501347308696894169744207267798542888174391255976706934397512212890103299221414820264076864081179797684366468013257506454949872484465173853686477149084337959072674109641329616074077136445541280471306690007164613156802640516168340042192556734547035215900059115755779105693255467564813394723234871599388463460083710032517235144992680129052982049137623463034641970102760183766572215314292968362528344460658555543232413814695521071346900477617438410995956754601595427717196363137841102946135669692135468053707862137298027722715861054664848654754578013835674627971863232353757863470349435163090204479003700432911216570612331402110856061508110310017644578406502327294501366575323354735465488132572904149055086365948820193991547831485978121101780186174338287733445369337263462692661619624858524278998213109520088501802030133317518032353373802905927502029627667460819970416344378451269998262632994204146750612683985268435978920926414567466186802524468987377839124198405482311080989398384490976028469773110611629676602166198062868033359275545112893933602469770190785569186359640581181966719738922440098795961183966766243085482545226661039550551254731018475499850854382719002426258342845898780740974730809826570136611107632845873227909077249551306638769419300044928969105981376974859903696044492266028827839731067611619434742210883474719847748360808881322344693219504120161922568445326186176557478426823271457504306075718714665539891354642572054549335523420651680681080321481718786193614132331811270860102970154027376911977751236963976681760557793919133134414590851882926243623258058286762796181925020654529707001571946181349353214461726313482524475548642013151131843544339905302867144580763905737328769941886576145367682365520218481850064613651972397487026941194491002166911300679147557486327671581641251970293164893166373484739134808208024295458296178970726101561127665356423388436191253634337023739311814900477737984683181191672827007247535682075326708618479821576615072038259201224038162693765189248294829357304886931154031311787962997206467765989486015293640109458936195444665808100243926545528045678974407299241596170950633953920991815457522813765226260400716323721336831463197521437437340404053863940264142677372794781236797375682283418152513855375609143519885098673356326601890619873585993252591028025190484917440978137692557829575434817839543526498856882643704457999125299590055126188062436491528884427597630927972278301268885041116920794934020420327000465188954639675162806939082858628192700530904730827378410030943462193052338352770715413132982359386538811466382796003352367228105446613529589913502131900390570333635513663101513064028689947985335871451881100704059405881047849156862207520828879121472201114484596357520042172077077841970060893633679296029610967984003944910633166839946720468851769961059769575995309655624293007323914199664514735120415440612483292001677541617763403697948705933523968603876976602876368049747369465546794835365797714278599531682739774065187295044590169789003198472855380802943748678504396488703022465765777342704349223543634065824961454368994472841586081832748823639617829519653684519487797867517501347305751366306650617019237163682659355574067845702075361976377301697476451009829494733027394318070110401488617973744096238976603764380942610976584100330344870018311774296732076748605813132673661118367346742036561925272771622809621583750601751727474027467030639240405289901604998508588653990785045573801095502042565906376428597414228547408544371673577835902670269846256644469193615091781275274202398964789411107119864777961993849816380231015875138571973171416594316424210493067602985524521697158445991729734871218454452740213019618191908060887395727208864212292835514584964464816320878793178349989662303586449667136086803761493509388815507651087721033453576923196254817810062879224672731446778045744063131987160756475738800986569179177179728164661712350527903851501957008199526636759849427426450128420324638957666206577092875407991680150572790157622658828239271653239625716475316953304712455640007934124562218052134407583502636448471842561527858577264962319480386421974733137827655153521443587291990500400487095250734898588677883963968113238114015778023999179545319726336703011055831962872201912061129741196287053245344007939391765169529319872530207163092153936278075967330250071764628578608921149360599105512588851411170419277691140868758831126275611813854744482491053007966097623127299560325500505978645105901953020411854537965655346657468335696050425027251721500795670373502355395571327414700553819313553111024535119415792242425446423733780640923172372779420821891904667646507086663313117970551052808722575025276198567237514390850017621965483871771614312987789669914395061255710202009134106374472973141807433599944472683922986127125577840586209991014426033138088157576787622084965730520149354404960622748579169267614900432200319188204795237441843921843576114424105504755953200793382080719640980079013736947365922795206453615875194221367223555417681014003700689782072901803453063493315950756305165182547888763274846915040241426785048835890006092550462520079628033300559398629736473409682904633230931195298198842617831330188049093086012805746723776418895069152411481700332248867603608718166542023478011221111478610480441524162778008052690455888600866277307816085546477709568233205988172910228009467045146391946627355699810412415616533942453881683528534037061775903555826416531053216555710879070378791015388826036372968098707027620765308310117725955261548055521285062123162413707607252406786979362095364334400839518629911055444377176956747923323120196594077328983192031367430076529351344635368232313637271187904477957439515806275532123087125689215591388605285892287653330080254789735175514951953428307984385479554136266638515210509448679929933518763024986742807321600914752232936988797463416902154841602256668318300207078752966718929556940954007687432436901975936705700240168181082984780170561082028559210610811291724444178493901964760137294787379186094122555448579392941184390860834656501694809479020820949866704981499576482780700226286050650267470216157191207114308917462260419689418861263355516405736242073490926754464637048096340701876938059412853083910128255239867271272562819356033605793320246938929717244309618665240668488618749763634639506710141107950251061885461274736341807805547234875939478824145243081697075145979950166076801408836568899866380581757756130149275492848239472627262912005995756134274184451286981722261700479294606570497503896965737808742254383661525266075172208855293163455106744856636229572237937018823490565503252047932555200414141198672555607792322088431970842587857372441643737626934933469314027301433016564800166545771605247832639210389101087034103709168531080498864285932581470770973748400335425572540411428554064494694725008408197662611602208897421548516043229928111428242143097178210950964339023045071446385772316451928101789517016075817792762194098013486629605837860303640017118701201479195979430835970607749182008294017004944513480986190249978639663107902720196069494116407100553415917127657857614740260480128383719666542771820232248878172531748851799533556944241127414482015513461949187638184345863033819300570537636440604756647052647570743563961258107606084327903823194911361872502404187337154568256268616485556485807821969170666528462185744482828590342312793944179584236280185592794112958836156716338329340048203444828781697045089837494905650611749673356224019246612333456894346972662364627965625639317798329808792621059491877678834686425904007850468741570578965754038807041275660154035917137099463300318183668907115065963969101608961357958459840697363477650942941925645460185042659663493033395863671852473849870174173568341881732324577999547330773619155420696368528215325045610140327978131369978772947641472983310275072549062169114579000711589556414112208966325457296353357686507402716875964972086565126891642782045091501805935144509503250234674844545958215034772096730104078407045802631132254860418796089574003518583152825814434619154434299897360652566161266156315418509119157802504985411479214456692104077452340228159762207800213056203787613517642353930054731589236425643933975858318734032725383335838722323759949825931363580492535613286640320755407031687618209176119938638830170157083904619992399340167314678708928785636801346689188417854096061727706498806936998588180883865856949375052533176346989891519068380839902953447490766092720798227759645349200982091886715629582867463445551747252580705882653680035164990905417926297600954728775696736150537559559841598570558666421937786247671957776496884569902300685117073285299222331280823790103975021019415207987496872060368519788500888299012621939413286813959382323001918388944142733720149538200509350399278690918003991500250246351275282493890509281379077238136183237847829149573947620770328831606270824043058056039772950772244802329217885359359820404925485907769594435638596768977385381291948142315398753878622471057148682675747069558086409669793966468486212782193470379269033477382491266458734588821080897079499909295666959113668386878372815356836810558405380995567798444875221006271383471721585702129109076702536023908096517085492612655811725124706633357360460920676778644321083837263378552669960838935247622785153009589925587706655519535989703551527973969066602741318020284678434040113652338330325217685470503491978947514512617084899049687019698774340480245628298918540934888540650777584847244120865000878260540673826772380391933423545569935268980954156040777375367517772940780933562946528917686422306895014511087661271790769762334328949882780091816082113731096239143393523456843953451994574989912868890017808410848779774290098011728920231509054142642424979576458105310616471572048023310700768451896800405713294182256044492577031065277562486496968870151762566907018102928105602461848320661453459329889595275069679057124461493957733966058593831094053658557029681727291276284057291576657706719112219473540953580326055144747891358924122826038861625582850337139034776740108424209428985349113073492276299081089784018721285482656511104083287889458394731265966491257534518021102595123449678490511057408858968656232103303405599811387456856041039598893891429258432004212035475419230854676483333850619644013449504752183385852584753134556123204215923756735313738425999618903970379662089612596353306578423558017281361392885143565408012508912251179228200461921915282139357723654169126295391251681879712190539319904817113535917115546570386401154392353371007005693392959497348792137485060088400640498340476525015847560184477954108671248884464085545739371146792234300324590409633005944142529730145233704791514028945307232355774619171680815069678794214041305115552184917867392188182452631726192900379340764577885275765381005687070459917801871752161141148668433757826704777408483141665207897145575904254035344657104147522733426875942915819465156306748827516742627763715577743979605189222199518715865155295109736846617289748079342819172496931765635625518519041396998012154471976909965658221044722560523176137075736002649345218867209583449731259138142376005592254946772798185740265688036904932725888345584986973771379747189975377761259409072621692249340732538034159252453010436650137635054625213523412556644178898938716936490082458140261311888576879074657554269756219544956071085090017960267846139111135440364317573881118207080351734289869538933112008018454001879276443918983121748497269391460023744939288883965768633711160232714972508427927374748793597308563087364277172671162331579503136892407961706751942018888869889009572267096417896159416219766617961586420191843354662263687716281515151991198718928615307942897271975636267792643874990794573208875910601727439644208321458780258155230785955384566457971803280953942533213480974375729341479039248463063851884539718038596939394520799526008882498011899507608944560050420580301801548943957885726876265136366587697413017914156867126339621169815588348553957933431422977016246598073993217116742994563030878816660057951789866281179607286619528615210711677188079916356984199062098617493211655257736896588986336458894917709888663023036231354565233860523070192131740807055878790353214444876014943098569135350634932904035679354690503530564350902251592993796531147177253821301811511956624077295966090304380686601436340898437320792123732182062476571253931150601898502415555944154930315846207035053096693007875811661010629417766382940655496396742260245382661572201680405181187649026320706707404858853730904555850238386759041671937395756821447592082805380573481847819252235788503484074594682398076400054779720690693551266830107482462765047035439709836092093651658396568708487779164961882598285385295098172216046269263718738824896722774723874361221769459239666414859264704412082426647496535633391409902668721889880828609960994943931115503590781856478005031268630713730668834506006419515493513988077657297747794832601147869369614251899508711289097575320936743654193692912820096437819678935779990351280713321388975920582124667907278433713531693698550203053598983632650622600535025504411121527124981315877574314867221512701428650578788872045388792958594010106940487885319244178291343948757333578346169167854392397957968494362350698040432106336646998686111446563537079687401222766155870581730542843830969906251232573977742672645057118851542816960450357431203263313830933509363224325569108633518043812561646259419623658951426381801074410750513842128919771794081473657618379453997234194258195043205353713247890701987641809100486096862177771821237688952454385801548600075809462139183063066867533780044230914468711312252908687949356615248379249441494852814431341015111543617125733558107150787425412936726472100940529594768981593427992616535207856721484701126645669491717831303209458818661915830336810514463305667411251138029681715983454825508539546492813898116093074371658554261701927265461935330293665736215251484266475161955904454291530628177895111853587286099206197481222179287743810669244541229505786744361956403451880860502282075611385735632924592076580063343762797235400624867796783840564400117141421019384860950604076275989933749057586403131680804856954942263999239894773515351397001084871652399935662559983991201802761932522129997316254241634676610364423386973214727299836460913159077529211940272798581131479570215269429095178733665421697040339132195681832068798409418240379198594031444740570077739193089497219120557360228945139981255135653955264375856772154217872495446968435962477794360610012233933859110685207245152427473589379778755020467129987810698687146539657455344589949221997313567046990064938205290327372483644970768906928102450446050039608769251190050661236051953537119965070659757367779512925699803799171364674154488796745752135500230257687317446607208481609546124253211800796151342746418401985279073825109047782621091123834120364120273026691063982635045701838536905226570406529519787265485399389490092352605868544044625988708338415538129883894364847767215157777979316003881152694522067028374960529655333195097191381495693413269944993705342781741644683830145429226204413755468733702181042232290293523139895470520979931712084372363628646954438240737725362167443186622088292901434150829455152354971025209459970307728317460307107045849094899521481635718440235834917503590136004355702561221114957030549459225821253799550836740797249156844424471311101749840547188534879711093688112091818313562886256739725522544049176779025265914470657905549510218311260221046353181488443402017024079300859736169415674625842113888428053759700648759030705325944916452814565441212071483790256751783574673816343125399472061555749218672573650580285632722732743422915828440688384396210263410581295195765555009171321692944976606815935581296974449762513656898274245428953084798962487521446032907970594487221197034206892259771124283046055119452627007684871977882701027709401252355905728843907646973983035954734136784254874512397561367815768833546923398706983802229017926562872674696729292654853440983046339427266533676863489768725477372486632582850673690563298223453044374673602102983403194597767305358748696652190703332739472370523886426526517889298864815613672853763621325324955282193338683580037957027638393500243667854166482759004075745767390951925457990959274478818057095496303802443629532802855843484540669229741329015799081562491637956357693088674032940812075322201633144657332057109789735504409769831329533318865013726816854019358500096788748029596125875262897274266833184449981735928929948124347286282420320738390160365455521188027483458768252791450676412154089555895447210744573932801606297207234999713089608274302011706212182913477226827424412798512045982163739465106238441554823670185415526105870832103388935459673860230738977401668281592011456371131263627287354296382808292958581268923452922457429780939232958136835759851302808801444168456948373294557360857861950475883745114653268478910550653224618201427883657237146061070873100638655464680963803852153615082660947504985799368084132961710101379145926549960628059686786796358574072944424118038723065333097778179570072612669914999298835363100394172565701523625902928731903382609885987109121463225340743541235088892123686981444895543769391857016986690515388425348854318896439607539522342753626563736752278668456376322193536824301592975278710845917273173562358652418795982788765812935764259460516491233667612703058198498038658723725756602140424025522137240995576489469866450971846976492194412139212982043660413477344859373407712424564215941965026737002688718335588251220740671761859556108061837181345921562256790630672246743052794954391268019454522209408368563572247675026320024138594937209139953325924271294292591529552518736840888292464800739127308424052373830149818821028934438637106959814829149675415073228648850413588234434091276115098828323414538848331139803539673708205182573845656513191560172867496852388635693857401663277592258503243343429776778768490175231500672100592407479484764466035649758106932819276426621701305833583080448776033285933647089349002563961617307244208989991768101338352118170482185484714022531078344020106419679623087200743377051605049499469819277995807996895889988251538512268387529467891515124094481143177982636033515960093618384876977994794676278916419262446108688279352662830417869701721948069591317031662275857341381786210162040210978181646298037420387951237286838215018466592034938188490238186363182044709476571197996684932260522751402962706759411548149755325432363595658139584336002169059803559761883376008970263720183642024795371408693630842905277610375415506762207609532337816871965788239542540847929788920974941151674339701163943452964093333243512656324600865081231984221897468092532010531194216989962829974260815611505070104011225034342786642674498780696455595131304677710518257197931794862132335450964110537618619177396098465660133660999890119256921711927744286824323226248306240176917015686363683969275253659267837753877595732950556579343995920323975124659997539303152831600286847810504244598844333932266605635154237059147072081375812469687615945254218399047643875583630974102916074056387812864354408091713569748535328839329202058745561313776900973807108918945380400908429392688499965283961504141708969022947710826195951851152575583337037734682730555274074911191135313671315558844257624439696112339132863010361164363947504250154717246686580262513819926296564237872923940046003030199515685365924208805883052050509865625410874150552299906626437636135377826755618452149748808286276526076212688259440219398547890399353438586979192081111407274652757200342740698577606477718045502862287183346617340117135985377995624207030889806913183444187915678584980156647709259858444387514593488793157623260209382597610675010999926922201753896264606784163552225329365898192424281523659495130574026078065831036668202413626092128554741680896969360081292076149213480186588888668880473254509526777071854398790052901615110231324497780381375448248760927470693305015795108251721393526969289963552028694792032781994412918462002444538653533058891810982162492756990625683253063728710930431238057907530430328204826767489401480880480833582545480702530135170901193249590123809104985440464198070838677862617936129640271523989602332544329556195020184373637286092247610237625726683105587922239831289265291592183908140223640231663246995271139101777719626714324831003350525595352101658655640901828070731255888947039673257801433963243618304877377989792938731075730139739751422245486157394518761640646489893792238646017026954152206745939574887236957038533708909728659224046573941478637301072050838536496736145364142625576374501384475691284752193196313444403625011583165265352311158214722749270685028553709317055590844382715347596836868860190220533992605836190874433304999901984694159519577482014445108514333114917022719012729240864058329719408597950449637744884099882481101242914678387170836414693783521535047307901070546533719448745842524617541360475949287352430367703880763636989541214476839376273027711690462393196348884201706358219252223599509794559396522987931273018052690271465663854248235949736163219576260201011210800665261955172474622901007874371655253799648088246210380695324562341027616486937183496828597460616953812239173658933267405303524817204739244869087949455702133270967839761305729771356740583119001601668932730948859474436682314112750295791334744817916265354955907876387528423298998502929903166283194037602002119191036150007276212059367644272555309998788671355306425366136013117165730469038092003591344544242816537080270927563447539099271798092468177233982547247598690698138166572387893080843933562185649998155776211743043316645880948697558632318471672044367579782967805998658938906976728871506807228248304923137556543963062514996003506718642362853283317007201192628568302377739225366534305713308572494820471417253882433361581672725007410058026861498981932468780726818795928299166788446224750077942455029082877379328744205987356780518456078821953295108526825735184823524425213836279100956815954611137090611675187840532277086009763203236195567607221910941691909151066663318553195357067038772281800264596530004396112434015317778218697335125408371503072162361447939643397334584290337277177229406478599517970617895412135062186731828850924321866707254267277082717478836784103869146522297631152061354272208918758685972100943306827088848020644272518709262834054479458186427539058715225294314715438689350552274313813938483946132219311737172262218294047973818787335904613656448499839968767488130601293006831924330738785466406745222387525877771355709938409000461691141083541899567756119786513304308543083730642384897307393005391229610195926311489688885362869423841791448000765308032197931474271612472358074698664931796527626313443803569437788855003470676908050980597170003384027346580881729891997290910883500611304901105439646226048482507326747032915051411132418108898344238944441356369817098805473826325564740644265515229662276130991580537046303925281138421451054035776871951472563735829900973915343480867707108950426187551263194684298706531037653664974627590414240571931927415857138614437679145459406074102064340911457762336364246103057733031583582484144233626839965647503157728791554337296247246231047601212171128285904860727169864121278650016109982728373711090803797683423761006088267487892258652512989008410792820330365933031160784806250676912999305282926572946262723175450299401671860016628413367573457341153680666578957413549370355689695260823696142812538962831537439963676702783598155392035096049021946813729407128022808190078574308091196145350136320907326521673027150944494367550692191065622112080420774690577118006040271181192203649744576586928806735097044886820595181010443242715967543029661698547506864327154530865450800875967319479330774858952178247352756451142597750045105707389311863383586814185176285136399231412822922602760219153385752327960324314866719097174793354167501934223379833735605085554607300878697856850901357726640121750788796916380703584317434165514632424120732251004950049798910010676329189809038455429968605842387558779871944835249420174286195819562151642223953716633279225171920927780514608179482481972843040964590368906232157359495778680050396076891860327085591935982406253968968050811314139526669157368879663663009397908053078902707501984164759257291493207669495716214984048670590061045738505226382107437757509776682336127547498257830411589898420325359851048643606231816739842486782905793093378162593986738998359583299936444888569884064359187230905868527901643639399476931345014570268273964880188053207932441835414295644299637226916328885851368745568022768950467026133156260553413859006872561340912865213918531482433199680540463143425262728228027761875371348405475007624480394348634768266960545707339956119840603854713827406976096841167101885161816327209738209990546199138260413787365580806128851146714542168649265702043283664997186777474734897907275900352320664844481631892853009542257079490393203120459783358852570638779688478594679626550743590109026646862233856995236395863474348091820399594565444391064589162232960995304020463103352667821516851476838766490717010309897618946566730586628261500436268296525806492448319284316432524362425965177956064727125139350938028684469493053811098790323756025288311616600248142458869531594762992814083671233381443546615542417301782823773125324825051911017500041251177698320025438558280849557485459317088188313393977016257812500560729801437672434768618725974222410640617095111300735054388572890595817197062464396569929830771001389456796708811480785073336366132236624634403964458566984802280311708050856466126063466487276167491164893975946012324881205287515448852174799604656416367926413209549203551608106584094947343317100275024375934886962636740661692941207967693944512681555302934957210275261729143970148707379668870454901533375777477662950545536734412974705775290955130670655129060541244187201757207063313200103624037275903392448718439801096002238132728040843955922768149117512298508769844520788059804850322027371329145020277248933858910652956388981858485870912992389382550521668554882941468216136227009797419394491268611336329489559136878722361967105922812850075661956022744246169452509164151370325751962472102392712104453326214183137337721421478360619919910205583537429911775830769496472391753240399951641915281998785450003487380602063598922106223931762154908277212479709858621340542099951493579618631893746116151213732661527434016897903044694010898484339945083129022006010118533708932959529571885049520873951611872367514427690213556335088099156469998122711714275084013716394578965577522186017561507760470729919896650521238375000415034531120597680033253372509345565324709936408534858943146080821293405232913114520477910107113009798638678540829892177313381082761581112840080998670205916334707311482175441592875398618351702382850619235854351742973948510234813393329860678949777687334981382730687670653568645675524027153509482759942293471234498087246591440746830848234306917006811918042122051346145726377555754974958784328786530761840174923082081151610102331694622714650938072396651185993054733866457824127318307034307895166334540527122896310245296509659847089025985011488731581418820060494074876714297784193024150504377393402344728625657677301059235420383475747533764395848066144512167120972579659719559714147075158054803084405814671387778077209654966233853214890273907514804118275375053251849986035460822537595599400370162146850621974418255445406054435850674594958972782742201397591338101279288940744169077425803533962070264706544296923776225039088180916832654981461893493116026473859841509565346337866400476226157363966119516207669936406550285338963451638003666034060264384595412166757064433007490307672457532612343113925318707881350317983602875948165445448009040860560404188030267783829131816999461048769090426990664459858416126488634833551533349708980674009414144926603481141902769413964624127518652486469536688483951748765777593732570977172995582811114691407157752162411209159875651865813221585007505427553497189809011758220547692350900684118106601213206922819476992375342722857415804993279424806394144069216354236740394052663321159759898526400341486242923882206441509991175870955758895232559239570432813696753249779840337843834099139184067791252358425264179823153907719514859155120827837090378109523542616258511675569905775093851063344893478351888426050330904274590010551565508928845139326066668352029924502299047446895275039076495099698828317203870695316163811642203068610088162037348356185663404274811887786327818145509365730208898674654816368578213214220140526366161448436934120578583425462358438656131137600546737715926500262084492131315552298131347359602186835517056069583338888236318762832775266877184434355580305911280684247930917970825915221188426456150911962009045708987758418170778217867306192176791275246953830942471728709789001696349612122645578526094043637986691323799058630622041058193004081750509095641186928643425205371011337077125107590989269629087672177474313818384003420487719922709792656489680862227095244053033891970413430648779148005178468566326547431422889334765798528016020816446608439160822203146526945873552772324615913337374092300016644020180008891146787007870499113460820299115051140570418831810837088744059011351031105291662015941479199176514855265888945686063066439501273766565797683614796307543187895796991885423130554226455471208804390851324384938094181383738994615881515086420783064049169178654989768432979880949582340683793675700074495237276676743538319509307403467228904677180194938344491107705241243992444596970458973432303764837283438056350746352386571303503294316554941564506357702314082988456570074753708407613456091340384267243743283397595371819342114300575121871824645949271027244596506733451819831813963668115168894999956552571790093798152668465089067100886079183359699698500952705692148691800808542547240138536917352622101979382367732571261369326066259791259936410789155636828311668912579887887773695033178711747993777544967065085593897722123977125870205945274024807659919590818850181894387560260941466566826451606050477136424307777744026175083007251892022726645260132272446094592605804326881988226971179777873472426582572891166550526161207589328802537451209854108221061458415954168198111401539266941350462681556611097896353891400825018344465822900774016511691356246280103274666456645283888067384160680170498979105660262331370057677150784472340241496042211067129273436613388970713728049753506257998784359008592044871113762451639263722740526388646432912261034756169830216377383117958227234537839750326983335715792097040083612189132338773114090350891336348073785567626128937415949963268797213135429172001143299989720460451949195912532321862805052498924458853870490365685182624792716091214622048460513383783190856739067105351564130350926194379279081707734937827114836600920981822229986518764183600242473188308656550739139754624391261810600287761970713265556456447170330644984912058940039547381860872980835713522614057210546152551222908291331347674967127624279236853023820920388573272555301772030852206686299095361010273967116984192431206941585306191555291247841243032141298888502446533086688010234787102389464281419847832635416964145825561545454904061248992857044107929231896219485636341132287271151344600538175227766691330280303105595226377754511643572263217645729663417775060013355825950548593842573585847045617301181033803359377810124237726140602990232699619836397882921869806990425123955244610805306246747377366145225336632119959271951531619271180912156948858178850945801522091651476541351360715434981514354565900626594623361618508766572418148412994518693145111756742569226718124190172702859738827961782788715128432964293497175146992890343617694539061887200408129924396023454806176569643606326401962932859249225209059908127440132019929570012747568529050753327275918938837689909846988132289822716676296785304977650725857745312005383429066010087254238149428382764485861558437090267252781907206857875939997134720597831042310351761818898158296833568571135780950323559588037517166518272741448362753270890087681503975006906770346849832340729632815825597881551207650113003644603121644849507370577965894817232952072088133335634356242542480579500607550603512641380745270712013851568008061612804571181132249322890628989576369507763980414661670356202501871439094608397398072553204963822921938190540986146872196132072199699281045759264224676706958702853012191842928204712565659612798408715215611198696302244162651863564989654267735061880083370384922393852418689230929417583361967650200414311198769807627395013274055868672744403452050457786920383570930909686174415699356148966890326150530183067210746255396105662981178569584762925825071291860080180447817963460048266084330913777987501435040505799917787521454841250494132961398823886339048089668149651949309450944005466861568167896166291616159099926657868100162199301671251615664454619734223763670807171586726503419208454918236389025462833654680051654099273336820103653859813702172254137854581150625625048672890465313371901979453103453041537517174320190432736896675318616360501744029898703835380727093961083855384825200010592295855523757191843400732212415219578956544596422078203417187693528285953120516354811126460913500475717141731330872064455443543816754062099501146066050854839419483612005544838499872449056350186012221908851578369570926260034498152404930521945499476731113312264155354563587276582481741720107523087801318148809270351410956172597090367996920057399420300126756031713070138240023953961029368164721173347792751821695862092038012619696405793602245168196425921810585339434524980501208099470543799090481482010178001505395717269286272105200464760066264396573569466738634630448919888844873069233253407014655311694791675453904772473426824263609343121260653565821083039777939291804953564229748485880685002155457957731662630413912306511017768431074230718755502347057727381086354472400737852527546605812065793754042355585009622478045736043425428899094920522657553766557878735547163902566977402795717968472395451706741998791685244356089335454611584236546310036265986579439061467478857089019048336823199605582255106580332479823433861895218238176073929708405175973647347299594679882475006601186845144964388163630986319694236055359013067588726061823720848086973886700610119899641937006264863855117721434015411511115023116741718165785651603097361414576644038684461538924595306805250169955193385934127231437791611573906032845445567406420511509624436572655238400083127014500149224164179793876257624955490524440209177459229023360512324651077558717778052274032296223008839443891524111765733223894549426924223488339371655305144375046637169427253200436912315062524788375507120317320692705205933180427072678887121731844824537439221579869069320215281708503827812630158042808734342770289109950475629033903343247339013259354085626143021848720326684441695007248460672279237511223961068429733493497779766746817774726993589439795316742844678790407877119642461297398050303579692721288393595257894533566602997102378577416880658027138990619858564900177994880140078485195577444176203505385086881344343114727103148465210189686880191963631300345465286119396533199491613707425007053830187034050332420467087090902292162270107221053277993684001454906469720782254026620154270669337014326520504026789676952653335308705096856864920604997163743016209664852489640293728925893288754905844728919142616001648506617634936482350988036033286835843898573255217060771405918053088325732503358921347921567402600644243779801922277370346015988314303360013463522682428201259073512217037998180812683616884496216840031116135471284268987390767348520000048267878215732790477748703146139067843928616489468798963317519741185347523111207865076411498527542274196217118211042124343769731405012457749642753183522309898885661615154655845352239848032613865400537562120362750412629843116290319434343198201515550274172752275599234175180917894303239712741770803545747721829164287414425421764252308344942228384111750118880229057425746636813626053470733404724613240701921410259079509664828171187266263764844381564297291684661717227276983780765355184536458470417700029691613702072439017074392775276723197598112202298718954678933425165835683457655763579249362168807027892682336970651995609145559346234545171401435675979151269308135579645475962812507489542779984498802428712005955720460168371828307673801563168043765027209293907827430265705834929312974090843523160181328395501630668964062911885998881400968334244535905679932803585951718711257955483796391621096544773127991666709211115455181766252987523645099175915425689509763512920422384393244642285153048659076466360209404439312442384190803202492819539435719801822601757537904212268327306545358175028189421229666008265553096365568309377431741772772625543367089086975335115347645574989621192598288273352717296112572251089383266064112910418360791647304351094571602082421055819402889885675640903602747025933713443268276662216276999090605132323898571049497650738113232242922724571591820067843455520057131604650537312763279715864707285602851819330086359395053187940775792414781454491289495873837624127231295003876984936467608968278349217187782950195734446488688772214511635431323861895277707885001261804453763188342954145505814589366168194127954003412350534013033557211426697420095464134855990474280806189067957374478091644476487260917700147284778988644156243858914737529503514092034796794788667938635197851943437464583045805422566173982111531808221119078407377137455647722919281190395086862103771943149115185214145716805468790099220651548086288651211032175363939354530013972920907508540686859687632137782377282432642661593625763937576815634156641866634160655521818486292637359837358895799255264367114990748917093628126985051911348621243120174126673350175126402361915552445603319182862502646046631164251763384371132226380699018531252462902387154502499817205449323686007294973423888707561404728476731544640833065105002599360749690635015960450805997285035738443460052828745645128749728283985671253568054621917773053907098255291189567405019437521467866494266608017573508289023250545187529636930505759453901865001152021947775747953251502054162434536547015819285676233307295513729966793931254736536008660103333625701595029003359247408068654940737870601798452934735079078632162959297420475600059893214824408466722410617658507305332232134373987649688705136867574998325573770375547820234719507599327195606876716195869949640047182028985147359995020726419966825289063788311612443726945147974529191981693220997562651872425708235677637013036416123732211975138242160288259389701297050532116614156467872585962549023030707604079038186061656196184064267103692658881699571722424242209307961271173141898243001691417753680803354122886660952637437937451815568068772229674793255179633374304529472566279486529904579684963654668975765269171902574024765841190862220349218905931602986967144152592631954317141525669348684120056691925147927182262883442156670646087702391895357504289314636385780071731540452258933845050543386161180375594824390258006759192136527474218171382335878608243903042129219150428928194324350576905217636348680309455259873704295777889811335186525211245537618183037657964920856184857408830288855788099689042110225190184357010226390973460086076671914921601694176984432989038460105780221016048829179918182677350386310930310248416908698810124466891652200186499806901574531354906089093732760791802500918847971917334652580871287458521792634735589309551083869958026220097679904420095339170426679128883133972109368273000712536170004075963974899257001665439831394781626985695001121549281990942096922510749197588758673198099281048466414178107610197170639283146267545932632109684354631281975827855731568767258187837959241982627585205261017570562541845721601219785402842032419111975957989829891448682162485122780871527715137804984662027751224934403844900056361695088595189399070571767798042343028324784526665689897568043489940215992728373797534229730050106483386192055216031198937839985514705999070025378453418609575488340899662215667378835449991189083763105602084787634723062911441146816925699481492156047385445340734909963324302244632640264712481480830141837159893535456775335129188953396536370702976153258933565610265292949454585375936309185676287020550395258484224946875009328103176705559367636172598046053705860250119312870109397557236175969489341797983876059570928244818193737589720268519569442498907780990500910712434334436454458006506324391347806210748279864730905236626970112369546415251487008669580606037996588487860822142678223064236016726989310420404861630403883139267681984397153183510798803133424643450228158215429520720792925271993593234208111638078733652409634122835768974854769315197836894106278589498010265426407901958733076357630745603381068530500131572552946726640243722757106740499797264579430419606809133658524215219648604930768210660587797265602027346362679235643034367650655246458652932943413873905295035219755151938186301713529597721493635599828653377123540973655630933827491111312249513493633225793008874288823976644774360563547332645045445332776709764949484663759175518506284912425012750387271697234241375722451963509354950761648378310279289472292244001514199586594829235337559491841944407755039660240151510731084983594005114668407661360518042866330768757572343243014507921404939246140642072304186975596956378468369672107354985602512993269428188961854789509520072895351982590551812987656481696744552865620435950666368916247631321640806590612741166119999708592166896060360004008616268442730517228100610529145909004828973442876480672209401831695132861749593075448560500655164776222436022892451551482683961312001241047583174555356883795309502064163466737688869957433415694332035296936007771467697366483762782460533970686684714054229010097159665855251913173530563971319521539132857855409745221877979776772927297409338568286471584368275332507271708753063140360387121997898142287443140892105810857113010861544327549986235227047738033991298794267374444275827386787359648688441253693637704222578109892279178190972006579655633382370399105239726005294718380282939428343510694138874507272263351283535148881320627966653210514574343554094802404926277523948272693407195952317491056998657133791526095667540221540198767128880188897811610076624418392757906323431371953774006207497215366665616129136396229882400244016202736466783378014671875897234915324423686665377815511218878020362951082667239127759503750709684819664922900351389427429231423871756087437611001544699249642298510479524345949007449407657359340744258975178937169948472113299098543619222808904847535865537386079903258250942793785447451371008200339244127899836403490426156619833238436112905856809538588125599250495635171254995135710125105740662495599338428739824086645862518508285359169951295654721631345574312506178114981765131586111622002336041898610840351065372817997277896099938184928457676007106560956359646623116690792508047351920125775883311514814267033077589391236668984950759342182477170523019276604980079013851128422108559538213239228815573212535622891665714757308005001297510135784497747906228867754910455393054907483546726363264474946593372987836735818794960441864375734246917984593124310090275916792710882587596187405812204726951774903327427735246238811895997831201228278260371533016764395290427821521034051296265943296584094539968466830793514246542278707156492242955650985809031525572908435704696661087900420852301861669346865135072086510541410752763407398117972876312443831130971896237101731678828091632475194611873056548118645399902023554203129772589870826942957344705183440946845395790905621813672465541022526667915889097927154742706467665411021114040444835455395189125747358271917342858448208627070292831351071079174684221479116495350450874592617895855075318540097296184764304564940317983213670750042207790220635176899861401573909025390154957691947064632212736762398843434071463959197452463447502981773748930870549921251557341537887085029591232587639864354411690857976803900687632537560727169019561481333316804128685764905163515757993730513634451671193586158963610493289113535303839224319992544962968575050070534765672521311552211174966767860466270236016999381314035030206153278043881187830847527389197743602920130970002919349070782867420699558046655544532416928385076437337475003544113248419506871897019138125389745155146585974183655434986048190951677542138096314018157587831403105891837253778888989153793363128141183283824886270894370790954920396591640483139977884670997365741399719461038179458296365426537536576724693889314659568856969586385473332459616021728404044216746620020437623712608962087748761243612350400299068664903726170884942918249337294519854184160714962859519142188756219324993233066812655570769033844006162104024223763633868968171974527265412247745193268725825377584203742002413231605276299835799156513575194782083961371640147695253066181063417621885618329909894077899105034300034132091903858476164218702334660170091789143127740090199149986299575906617786803416190021564271360839848293142641835095359686658619173799552708365998283959841510564064147323826715156203168338210774825203623747597858638424402346687347403911952473786037691472572421804683834591162629944947102748514635951439051400257510615403348489110424780789832990846207043977385106684981085168724608270783807692965904527093275858355387487771351607249886809519580710970817198099828798315607428109983190993093235402289286440388133676653288443831728727841874010373557360090085475284954293873682823438742344812753568769504215949766291712215318720267255296493931301431307637991260962198489824699779847103976727251332313105848093373018507621888698407444785208155756450402521895139208808372194101069114680184461037419924250036051985342531356085431317772743462796093533041247678814523737679945621309510894834927653152996638675508524267925570770567574529595667759412580998700822735655736449662808481421882587543605951869710616311432882131501999022030766050423793220316439539408220170752723972413880161171298249305821645848963198884962109887075546261933025683916385297934140424317111089455271298493566768027427717928077412118438405380457275116871769252358136486221710458982225753152824232424991962324276219925526863460146186233819734725444134122376840648556739094937779624314259698351145025070822561046713460294732636364222735481211016482438779344638508427016446804825407379147196427391266391192442990647099377445136693199891406108078931689616562086220029312936604819860491811245027932069545932124757033687548129635326076381348217748127320771750847437880870632311473981985472674740016455627478683943892714047999215190744548296075354157267518613489977253963565093564748719535313946076281827863189924260318726656833239977504133289071193949030578317145458533647226281506598862889564018560859429976597413268954740972984428217503584646408156008438092511562202197437366947002681300288052517362380522655371853355741596060696549505907499059193425563404634313401335875845744244206067079756485517935430225282808263058284690783670338865085213898146225878516158659637341130519098201091255884782933472121359692289681423527496004766403182860907819360014300058350506383548470387548079879275299533027956184429448770421235235548276694093363365160595740167818547659775855915707600343607505433756156418258109750724785919526881447868478417572702971378861989013933571872390002413985097618925688464310867899007374049829081820854449932160571833702449443759798546941400997839322948339538308340007965477905368898465200292788500185659151343245600026581999173045732954587093107616536037281543887474488044986548266609444411040845200821085207857026655976315208687181229280129236121640905628029279994683058832895380376863607663774150604487529384470581222875401543759084499789374962195045487310093834631982720515897416086976883403128922067660282196936074431409643599004563123623446583785167459102540491541450602298061404095174954261133061013327170317054923011957541871338981181594740961229424210098898918108131970968744736199763307332185638518623322657225174146085161803222062120860711735507104794409885619774880222083811265445368902454166677869740605353865839774658550259736776228979952120494561397895945158883056532919533230796196585322395516794423294240745414324897701958086830998472186295029091798529244588225799266997016499922560280625360336060679289330403243245179255203955604874276930021876307715747369398456293451804756940679474957215920155736801598003368570434018572131524659474352601441249282476900592936374119395455638328031974534588726270570982949424530629698979772863138705859694054742959929968298766105397971192477996098785805826596230046919002290857518079009803322611103265339969951503736656965405824940451365957922877177559490668643493422068517549000400158516315333239129700305109578348705227359159351379503654727446743152580337291872540331061447522936349228178597952806175243437585076451217567044266249451755904180494959935648331643159817330831734061975441346176656861476168154364571502004932631890082423593471686614459810843585697484649588629413120852542611443968521548147064901914949997120953019808759179033321105499447543200632820446254314097612101335106476750891370500669193641093262790159373663986533980601373186349741265477025129210618682579862615308846350979015702058844347809616925386791812751430781362759045774074694727589466224932675293036629801725293773533039491976196899496807913641172754139115869050615309569392505383241463572676069211934491471606497146179082285546959484392262151236269240762864701844439365649640916078310917146671040530978779692630656852705082519914142503183615880110960514072725835757680859505306801179901912155307294815931343324957125726049243804457353217704490987380427110889239571589318151286250433073326790055108194283851375038192604842512962474124301285302122828627814926966167513169052962544337326563844558986183212502942801239430099789275966495135611176415493524933474692202364934770397874507558215899431940182968896581215796507223094797029708281826386177198176041916924491222420293545485201908501335967253009718321396683747265620849112898342032837372058479875363260099689477029708726279773452686391404479294586575161890569164004545498898883988324457685902308480138068041748782060082633153818530885091919351824410014553692268239119003488197410637243394199227762253926390406717034966472661551511262353478527340424706451370229228111636944815857393305067346918784354624447036491874909765244824486172446575559926019883938927616362218645197186127539175074445591053310639885141191230097231267822092860571694990713873476825013310020721792929433433683479137238698796605952713166129572455393730543662162809780911782491259363032476488233403563672522789413310611717021517539595366828441878763735355496355726379179760005850090105569475809013733512986388941022702360721039547780979492902683790642734986962719875005424026045409449127325614434246871599917015465661541463997459910206143897275796101300756608625330831879269731954676014743828913036829608249980420383565500096078866134625757422861744711403543934900535700986425370712429771222414875660824462172830627337521194391238008522248302848581822160601927588628285644460559711061190914914860527459392203783336729621856543683411239196869812684384823097080231670911243274062460171240457719421173608823482553138690517200185068087186999342569794436622011909728833360429153314992021165912110959903599672852179175083626905253758369664105417685231369256387448547458562068327165964483823411418881371434599942029054996826806624493700044599948974784625516258980556681011824811754906767312274900669919593688281782749140280249298883475631935894219821640544410221106775794957646272082570489281628160030403597091264397447687147519216666563407550161599365599470465874291004291406399612315211642039184007263003434976679937275704912128605606865599001516872335109076911920888775962853039682057379599357558850477313221473890730096871546062263488720926384160524354480710024398112052140192717524078161168547231274009580675680905100045395999323442742886140413468786756851432199185612006963461821695593392804002699915030288871418442661530118669969181973274127723039983893880855961283262771580774037908686905261576489904673796531265594632963932101089367689005782068897940564985349401795580101650711354420653835608110269269055233309623609020041568222221538078747686779987535280252825485082308060838879207603520055540791780174586033386849307640612091297898140455106147852937189370438363296029542019480700769911450264024477349218221007525083835790723751080294745493357064992354735985384482246661816199329253286294021642941585062289682517874769154005427695620844303437244604620665888048240653688869212339069355929576115557692343637692027093147572428962057724430614425178491593865079097852624607070152020717652737086576525532182350545601626349842881669856815133412328571234803004105867663190789997605069854812110579634318758969566312770585731242611125372617415586443037048527384718821130242579226539711283759591714867035111170924407194408858981363263970651003901864697180464515687039026527535305368087917091842017440758230628300246355771849133124874456396932368851245162330195719531548441799050950426747418498723524393639097112748156521814056111514935680271304132288185531718197138056286483832947961470550964769125094002381211619331898923422744258769206004025524786073074948659278680724985129519784386722507975957011450786458344294269046185485665982314798334712549720029417250696605930787862604843121765300464681591572797349062415787787686334028466034303212877791893249882550576328332449453585765639097442198407891393497825653189326075744104870956760743644016534652615592236586093264065584291229566534188219891912741386551433475711575942118077371285823328160295547640051480322504494067759370443425659153503254069392448480344412325336219127615589776848700323329891431729124061398137033156699199626326501290199416195272868401859760677528415745982662052049737923744276749851608332771705025608402428191588997405770096554204104365016579043935782321152071506225446304546568402563984079265410895337236609518501411912905320492778307691778911907653270669026741010624848243905584562625684077148333881351016482325175260653883184309759554507720458514705467485080536608360717778427098703101218375891737313654840517361629667796931521523079537469034984218641486708504409737660202810780324383135399985380328412351582071224674014999569334459611786965787132623873779002188359518948883689175450282264700638516014729324828533049046182205143254148532975152388462433802595554132990350365530452305462832681624612426494843612886438007703912763609486002235866095184267084776729862808797670090815126297484351639788860362660961428246260597913366588555156105015416546936207477226554086817685198903414820454863715642439814804211075728856711899723799482630154803371780987507295116941164031344453285343963115012160166826673971679586625476857732967965041636453930989150622429683836790221838965043567057846844151840850601833987446897760053675714134743675237563907681254562383677137097569842128780231843001734720091785693971281481996298085145361159266902746879997313881991170389021439263404903572561734744604463672787428653898778644333960778564245266297628490324666377296274653111371490845247542441016571368054935563943931645329012553903945164984405121618745634918575305191854246908252794253931744146502867113279885606523348813811989293197412888725226178181963158355991433038295054200559792808264205254733568261181963106344387392637998297089651707895661654109721199199204483004561000306354523624272181524880221361289731726972532098172877667096463314977405280634835081916442684098326124509217949377920761363912077895867823535960842946683659434561121423241309424288895004046925563653427121938317908934852025089927081793425886562856590163612357045494961593964595773669381247360043116613504555405609426388891326226273045357267745440802538660071146175641242029707017202023052987944118280616826723139174393346684402660572196679253369928458821787646296052839026324785415531157105708033150798335887613887492128107062888199624023672478521973369562254597452198165412866875966325111026011829217293328076659560034973328623158730157579067789866852804185901431057550555095003261729254210281195054531580345767954060006935753906136719136825557055317457405098476365384638815601081114826822101092272245930216007273134905855394419145921427922121485208143530858283840369212833963063269612112700955870622845457950524972654792178326571291297720434341461016137621964725212742358804179448397893236193309537813542201428497218355131695987353132311934808115465420191753033494374088529825673339139355174169984824220261781889099322808261617109821681583527410545620377732843724847532191669542621266183719718199291816162662375769858821351753244629820715802132932260621692942648666541332657473921127420804804315482024184180935228947429335021007036480662203925084884951348147813420507407089742212155998280233656272828491164893110123270957631019588636266907225487526703799179470880620272816831062599108554378697580264296783537390745667565737598129715591706418996682239942324390771556745075906541099536494767826562308342889662222706782850722955658046372761319112995070959694666736236915090837289175537613103139748919971949296920234508101089316622997657465504875707925063689563461347536187074073875919870640649286977853757352322831918070066507624779102629185574372930854125420771010119527475306930188152372043124451977825421554078989346904306845233060203733593869668538651495285265447982590002821110936126915421911219005207918037981457875438955549402571254485703618800246780921331084028368377712745101202451676687345397014790893392856049792069139421007771936155181849664867036588728702176933809600681602788932529156891240294231593499368316616065873963051273973992907844451069192889489617179274629883700780001975758411650784136516537221804049848241518752439142748909974704536220796758570927320384127866781004881689730545872120190892447660238237641696846713212786968900964603688414263785659562419028102018749119283579136828909578102106865710057248025683662775939932295321296811360202833545399335351210725411973608417209981065874545181074766598099893084464049321246147841959392346130488914538684020613856017314515236124660870433998559191382218901564313583876691721073471991052923493446207738953819072729827459843565779618835089377555040187298683535759003664563243981465239973267394231532905987149341546880822791436670132535241321308560099605708405063718119412842785368857670497903439507176748899335195156656260341538936997538157735278369563687166428300267784033433697802072315575547734783129217633340687584798529968641360196835282562207680966525686007391288315991754979360982144967160516134635243831037772867374393124234636697903292573104853348194693692896537039703559591610268876019145836004291775060583670042880606966365046377787809888471156289117375894045881662118144638402440646195340942341389491212079958529200262846029853883608736108635288222215323189204713830199847286538428239441487034713395998904950657747044277000867017977535555175479438275339537906003842431484330154552143367011401689414531032760882464337896597520083525608740923129641092453049032449200427309792094992705657312124389648040469456070235952026455070249469615324907474948225604338291796871363438051898543072283358020566644485439136473121298459516937497719244387665325285490530748850361600429588221996087033621422100178266164933933708860968404330757180868157202840801141953723212695083396522049848227391402948517392007225209126113761856291537087903273103756659846688603187687988007914873498039535223905474666478169193339851091165827657842533767764944770334368325048420350678064274561122050981695099475691438114622619440540003397478907911340837238134783059630278673922437485826739628283549978514774078707467906451537681113680561545948762468221661783871771812883814847210418719943109963658695547089670348096670828265078356097331889361019841626625633287592909415566969772316126146884281058505431217335000751409373551186949137913114777456270215038563670691200038508818805165269115622243488750986392754723700704085518192658966862919844985457674864719062050576517274731752147055175276659753535347129815408084661681088950142582309440739281885120159444490621281611124877836186150178768133255460506099597167611255106642217977630963395130014310645270331239733021811169637340606874099636828989003443048044889473445054170228400943453773040393904375210699390024912653554568285470346077074508038754946217146964709150978661478488704753185667580717068258564807346288405028987500018613274426616272539919089027849949481959725139043986328898326624333850330814457562939545708681798499634114149477633144860718731734245900044700694174413546109823226609770964736455944793270230960980930343411871832245761199411981088572811538537596056716035418863147038394188634598985793295810022942802330799178530265243186932713407762966960493734779709697907689459986936840179786091054344771284602210771757388189882412382838418804443032252062592815294021349257212516973161082605224368022176451768613754955320257335183030567867899132975104998154217932515511203964284160457781573335475619049973117032854122520651513658074026182782162911342330252510376989157642391916538392552556267833903607823424050555384781693267815180058272988719960555690694827940483433699515528851658827909389367506249756447831255967087059266484506749994924197406603360965012698809472586315263040421037156130163568618620214188723498798433417166777063053443930008765335314027953122293317865921470403417099080909238437230805337397228985881891928390563941088274300054983817061964443638542385666362081410680487613835462691286336549876900981413994229218273729565332348833897949316925739503842069222988307977723937832887316990092562096058237769534916841783622301573401376684132420417792482935796485318373297226527181488112567767152937032171399463044415867550145563086158126034696827188711360418207434666829819336132342343583948603636980097223032160233122547866123838811792778464464119483387296207029429616654293119278743270845171848157831238492804553896586272040840177582361485351144917001194960932437376629716484806875370425759602914763113394917267628738088520028692638068467769308278585481478749872512842609823655648613407827381447871541367986168669681789668843834519083403282753745332471027765661316522552284446311726036354332325030868585701334930679435264038988803496964874999243355580459768770929152097469429807736748657474990345336508314965271966419056294353611419522068216861234306420712182957574948099990572914736078044307073288038152511431736962881454376635490097848083981230038696342313307110000367339770744411422320239957868631637419352914556344195819912515867010778249882054346694717518234314233405958903725642211217917353357847612693071953865441335322505267028871194897721316542083426100067941792118504758770142814127921597332592875802434772107261076175053531952973726485917331716447620157218516219387265046397347442275093008214901255219481217213006947584744804250234747697407705042338580745560118564680983216322951277104183313443378661420979527673830478158495941725753773977590413369569356260283970948677743408507318405349545414413497884578950914882464378564204928943443603948827337205375043992328764252778905208936907883030952193166706535664085121553063500758157105328437516477301901260969338010714880397136230609574703051447132345106122702938954362494574890594802856638048014430500221214211327006483904183127034716527148074160791609803777246236204141526180709582659764481061468898452676014892656869581519360853724040633414474323227444390535935015503676220161287585165439130843863247397165725234488451757799142831320598153901050312894069532058349006199910135985577788832806468728035644280819732519195664181648343925773943005646331851147580132697960442663484472390942551273642806491483576266256607781236092505812818352192416248989023833587249333262509732256988151009982864180430606209779290535021743679436501728557685765998132032818921290712671025949020038800141111172046361283388066483632087084299293156986566746117684672273893440592693217730652425643118564485921734742999932214675319496067147631516814583834647993711493089355785434978373725705579303642850481947386479956382932546501889597442615614817482180559560521311890415046320089853260769881642012592779607419949104643077489561798692163722358959834422005780601222203775575612776851172880374369737578095621927285772486948607499971160422693168296151694202953234034382389181537728569782281009872062957509694095884860273627890693606189793392774921285962569031739482613527824449900501033497239131228689261327789087732166506571541187704394329347392076151315664322975235695999130534854894752201638194927457034266711851749528152571723172687078045529415842697887068182644882827553875048805498635171105791074174296881444979850368919436037873106268120553896131677686828634952999121282479447036250258646774919977019855917298332735531219615416945584116309843366106755934474785915683207975696167234180528668784987208139745893827629729184408655050474627934393399671112733664382446457706301580649759616687336789186203349459615149361860336611032432944299011485265787258104417574916236862296573337599793263117273375371958253406889432054578822680565617848144771031315531208382473784936809137644819245503718171888784768933498758039200558598954247576214725284403739020272072833807489391699224350601513184187663016169229007621429368664265969250008769346069246011323905443366935346317718367157189802671594220144187379481211546149792710166889238324408133391922283880930743949366231376860423339548666080734068221345278214978389052420089040789921554100470656066867872053161321502610365199824353523765406461284726373917956845798677273854060490199879216837500634118605022552680122724106165126500831939917394757791155429616917202041802894623722630602182174685074154885823999408184176195865000884727084318880533698154158252481060790384269540850426904818205395826664718447998473850605911077016536717463908106801756577022986551447522215741519243671784117849600947470349275167295654920926894825708954468156261937514415774380510185520091116466841434919264697070776233905872145703792585800054606762600160452971090214266181738157459367261828514515773101853234393896137594684411307396141363306318235593096654621183568066021881600063923481046140846408380327682993668048222200431583482190351885300724345087152372930680579188225018274317792414283202442330526744928877465269674322409974050158417783388820859800082190639882627114650970986092102546556047612763470299581869552513660821852770507164051237266068446703470043976989765360602644926102365180773230067908262269907461476166299486832956236264962862404487663033552029432257703387747544756921400662966595160357542749933895824755567292752239591028249492011930960010847943046931342931254791455735578416382866738012831512749243688614764123505345507457072509199529594256878287203825419571869124002050965870417055418463277010608591736850910348496545203128469349060668176250837326444161790548449358163789267837522291274602938086648971640383743196857217652316483313535823540348012361982727081396736608053619151559280520370121384658573119104355847263822309881533039243039866862387855247309511334540617233086724728153108588856336460351955449820139529271991983482150208827759615796308586609168124304706036113320259883267142363383526021177870489556349472546614959321856042469116021767101276974660020911967996935364138606044884726204591661767423188749082284671931366388642218454127505179545399695443248764846801579582710664923070672506573605625571607434675715868345907022185425203193831601457166211419687595672491828813848391755271452338758061731546703186164053281788397180593281837293151149139803031578691019409319484416701377658727099289902550317378604246083401684332752973597743750669859566989004243456566843054622464363416634186433382204472428844604518530635771060636291270769214526103386955030370134013959357747796032127908090249995028590622352907529031865924260062660445905544443548841043900437914325531867212745143863468608197717104322394368568933773962576295365587537144849535555927149205352288321682660616839996991505191935137345843684723336092967461264456927870493514170250446210583234326156355573123949929161005593523117338993055698975869426705279936001534410903324132192950474667799485037117005526742867788045127876809763634988690578054276512980733307754587424416739464074399378950903649490932080367048991021104734021093465434664394270161953393809341071843918530024946790563188815440385679262416634362720049570050394421542397315982994104399860912359833231103656127699619000553814596416869667745842907223566872849781902214188876409790759899533429418575642249277570811969021804805650217488764012785654310011939253252658927308386092861759746671811216517971926350885128510972171194389410853516027032491438479479278696785218883523502606972597368566030612470522430903040811762308576153979424840632232799918196843165124131134046550311059268097424170798775415467160566925619825900986887645708110129899502171650708464654205651017606963616721434870505695864416102681602478756524177119864950811371550043563512194762580619049780894739415093708322429017645917704737549152468169766359644082622104660069844832904929572671993387812686931244794939168117572029375495482617021239169237730875541751626715255073249750001013017876347114686865111298074855580275273946355207304660397284223603498343804168932040182633853138556440412209677245759807773861774874001541755927645337811200673920621999020862402005916685592418283246746784838510330279885538904987546726095369358136137549011029092985785669485377310780668939500870997409600076841932683256352262298506492734954253574294460830400082224550637989601071187949338253724572993833015060298515296625229981498745362379729778532085934778306108940285056756683453076722467783124849184510882929997461399499269675442323985110071490477074835159954234984803663448333401255556440627387666521122822228388386305814588207246880380355661580027977181523202765118362132400385964231742550205964894216244453583198033329650548735748342707197936240040798560815116783599050473682568787445927207839564438980927618153829971840862278086048727847225566280220026719318390581560628568864945827429214870819163841946822379738152387517733511705531822535901124344683650261324502774468222627194372129882421412259295080988599342993882416603934381091002778791554372086544089602708878378756812401328039166379206481193644894056204424419360387587521852183745786147156498571205551866806613592522642765199608238623800296781223458886894296369225869096743362201601706496068504635346195098216331367642059420969267695835062039017449091164370205393979144326022702522320208652376670388594698451400934253433804093577097991610207691620719676604703638853560134702491388814158086311988083242819872763096672578562787863606004392017567281889641998271924455180434095144272904254257817293806606604404008036536161310960512221878677447825902688754021750538260686904975804258398228133509856626346903276091950289259099129177519656478433580134913487043583822895676410393690610853085017791831430980150304252173301261590349244866902142472229882663925234210571993359447533550325278539185480067799958097143219936279521974535402684761230853896097419953783259742425786406894272371244080118546664728462724844991296006865502795030628672140247412243574087473121319854343690350279939820670681714551696789820827762641516478094168873130382445965217455563784292019476673425805122027241525844414182829990553845191453907277058217866010276749934669929558551987597403007770523845135015619834199820339879682761933417474000654012992682633252711374415239543672011121459084996456461538080941835980884801082087229378807786271672998203209641153131271783144184038038800091729219357407124973160809508950522147023010814244343002938128750112020758946249012728118382058882671190380736883329688784592959270779635862251374245629870357738720896962032657291387385527480362128876510270013084406274263363513489995789726521144570579594058575522546650025458961845418478600521772146228054215742719305372949965467348644944894357944755382014844366792822787961285494130963123878638003414085796677433291025426404852535421126284056716116004629546026025368781046754834125322544829136629379314466990735102973091037489676383777875884421957071169745351838740681694218797325637589610630602666505287742733538462125078207015171477974964064021338348938621182319333477392270629364533332524848679922243213910405608474185520297440086049766274529096410498903466919324755232824761103761700665065030582384827176991173508085588958179002553720072447450357059175800522537874424142523628346342899931983507621404356257241743334628466303434518101425484498884174883787943306898513178631365679836085985824784754717546381471515245789262854003565637665754601687868829297072836212769693264256987336030035884235762232752854103579782961735700797221818249204215621296827455973834088042595010582725136784503228524311036129148450234362453736556695147295861438800033333068376127627277423485848232068942979124938692710934651479184363623737451370345951755616971327475500474033505401602107315724039584477950230366349094140587899682297506294258715865915785712242605155971884842828711473278496109616858712532356987190599011719894466823265656047049415740861529561190801707549219524501261657954567475261171938283947695507117015569971942618704795608006002381665279935967906172968646547061769916824480030103707653655845856059696605574354890388439944438999042878380089721055495153603576211795453621087180055891049516048838178369463816015216855287334575501093867016415870070802848548228021654769034322851169862154487656280309878104697506880398131099931388192259201255083435759362934804310696280829503088195900717724280955519099905800914846229982554578101701124664920293066875045562742116603502825106899884998370216140233132740900941672181576837141792346497336553976829584309303096928966115405568667634442332248503634774987642111815227918300298707166506351886358593011568836698912226817838876851321863053788669860527570564057180247904710506080731366470983460975329793892039041228065040544985761718188426164689322180097355007976487247474311193665185368615516052704183011404715246541561370494688014649944263893887815954200753287521428641740226148362962943450587613568133264970051063726802002283151454772734539552497581641176464651449945717432621716227012619103900892286011850768727364625330837065362484972108061022789444747324425131689849117273048399262504768982752481974859625106690516306080453271601014467325470237116481944414954952360668188662627330548002180441519663867192612797802034050868953487539874742845327890963457250951599215510591038805265097166095549528185802338010830564132413384314544398201450766668805936063960016390778027333620427034524531405390206653514782552459300959655787199248078363711363224582402228198897808078755022805242672527910601602811954632131495179970549596729608798712618880161556054602708432954399707256921000411103488371638381757764408580791657687306570469938377035376296962863416683162994979702955750300563847839856721970881562207288016928703323609757308667122493566117146514224180712627904336600648640393479197009317605752047199787699797175002954422606774002968712497050573487442249515896920284421844373133119162681840878989583890924392085784361640111913419164151683224003093604425931655906513300391345898466629001781251903739456664208841597697579397122831797466050098868871498942294301391217267325701974774365972743774058241582522057485274853947118721031133602459574293241172238879160866003511232831785382253530976009605632729514664607843316698002092599007260507686100879480736656455824361358361841732673284945979226964634521591394583416928672606037515400327440507396931801880235009556104926981243217178258888762646092520574145034199676555652421556265102450265156718410029472052090926630627507472238358107718844375492197296553427662038740270694541950960045138785483147816675461924717837749577587388801000324953405882925970198834893269083819374745218472293305504283858940714824919054846284800557597332795097409254337908564560806836990895749733977895343946801546902575456725574489020767116004876732116626902469305908774627116603293800155066637330141561854307578741572595915272979608192205455984149292753183597984257933003209038113800472713617755309342749576220157366150342036937800697591501669778623838786964617538550373366360646068988003545416827195170366892766155507966013813561422466115492723721905308844374861208421760704811558441274467719067950613206857921875143870410154267154721316088747125891954316000722994579158694882293396445132221393044956683237096642475239326789562329755776422091300897391636774548022842552913512981516265543077591374822716134077506672143704422952239737312887327916160693090369260117722483375297847237757806394622290375875798869489809391824917874868277171689519956889520054612812606404168872418569942107813054688746235865065799156251695328859255479746068353595663932929564915364077351252547310118185085584372691505030990410848381401409804490192465096888484531621362531149636093537013670580987381957221707810479412272883756533163961941787390034087988210974060931074200433716918798194676220527325072297506215989728340400215300259649176341518534217545371481146402218107648860589587115534496902792708370172857099205909405222781036120425733563303051440748468987469482583506795821503543785568092945430173302758480393127176648944003448416166420293639941168963701742493262126771997591398764499326130212967501307022557873229439826213327250771796150461692219904298188691753468609924064821908905199746097833374386382171559808389226748737027853185866934468295690749526133872484037135864862420893015984159315904901262439920474494029330261963556532491824414501781667683675732804363875807268486298462144352641054399364610048545650090052935671375008509965560358484215301990348099174922090947648737926620808853964847148056793623544852191056408166164751446572670466916550922639169474058556105642023982891535212788065817428275449612001370047033015347796030513743157043964067335703720116388692321823059460928443264597873988118606815603082422839008122980392707284936420843392211870518700559698437070835844669799031391663477678727717745064090404940702990599749794512183758711323638666919771360337498271215592112581126721173253625501929831675227319705230920020171480498742812069909609489932829170852755673555946532099819659350862577540703670385312835227767378466910716247827629473300061080755939557985668763429176431352124435473725041691082417614294323680726007484641206464968268684334275748817438877325387011728383881474080361232705266964982731257671045124614000666027972144005893225683601976492659949724493915993735761495781668747854692680901721309456706606921355451831923040929882127328863653439123698517526743593247527197132116917428155356031765379733284939473205858457421074634379396963983597395210552175426795261258213379786239863183960349490709195411752508755617593123807848750043270888301738237952716621691555084488135443179064546452206672798396332582174312915683608627954732124347652392150649689080519672236995058169212015567509906877680210357993554316547976429028210375238841330654420788345076619246956508393338391668048135889394150028025240498000344786051857804381785616516139313179030104033905230570432607449428750220337077870969481200655041188477294543703557340519579189732254292802074750649605072163398338931150164477200017430118981602180088868826824694146826198298738000629299222040864233249501134626425750987508126123160233776482063118717550565869641215435726779485443439552703770366867697960750580778083692586702544261370841181978340023875564828557459649935841329941151435104929075020616845516495869741388681531080063785470617792047668245565369642808433120702207909726940314943512618059411192992237399553831445060416822545140276704028415213208182479668308990060381769841743574192312434137815600520961160922711064291356249790902292948245024516225571795885141306495377564432212310688559947573761754823705968909303970292284861708623225830432196768787310416912522399810356902776172633427921210129023690568869754152982789130582056873883295630898582984466787430380556760839317226958470908094954760587644760514463866184840373650517270127820412199753209064389216193006153914079088633735611679415198020465326015901174278054529526219077272502695962212288496474273505362126464778436993456236013217695898289141370458668405195699469392605925995966727754259531714311881338804085410381662842139218685391696114518777056641683567332495002526972204184094845775351202584053596114090997346945881578582037747131771787696571745822064635079227716391582545374503335218990133962013672762819629673946124525604515156072667202955918359773373441701874796978353994421972704470418010961134841764640841402915017696625363327693375005140689017598615947842759221026123132584657504802185726487398827913641066285769153301339647374913351502959169727302209016735324937218469347425916910808711489544761406752572953778719650739130608521606454471402197693704313319935757463119231336030690593035700186640128631692673692773814097406764857486431907961894550586085281815355574087657237764855685301318561658116771119602290410781889987336411869245761732295772774197202804539498050173635038828448067925937094237553019288170051153383273004726467659537412522034149598507913136924831872940332100901907160570765604258071666708968729484904516877851177783495512734580794038199904982151074214960545127395252599856339829169526933561070857012291106311328282265758105518695343563669990628272046611888441916946162426364635013795185293152204464221093642707569195090733425537961495852212289745440466418808820417116986492091979374146672592614009148192798617480283676314132478215153229646693565032940623565453595469732469533355207106208854503224158261424343762879589648403474204897014293109048918261112956901071738675443414769417123707676607879862415778416911256793316251023881258808487355217172040318726320335479942949605925466629013277847571802855294890875297036352228810807377854550182091701391787720105869757400854826917733874879791126017244002269496397457307552128823434605898822423096935248631304534978839164497179172088275080648959533074639687315933347088814786687615228891956275264398978894153030700544431876218443740133169136377103530433089234180958418461791365199690346611011601019619513274347235129351256741558829198696545468027701890223561267416464549526378919414453029510173350312956385981236732106460159225307931066929052052889201544632416741319925114229835641871542307034884930149680789590445810388996821139636525869721726650106204786807307157850065935792256539252922690559427496668860494793310389998706612760672890647867608748020890103716253137421817611257450470334421826445104190464540602338243970987360819796261747419829120828827857044896432895610403824430127302357091099149803495772903255527378977043862145304506851825451316320062405885586562309456389383448991928848333750903120454697518236798805888823777874382782017976869079362865989725366228851179081678089365240651451651202297663120072282995886825945247330235083287521943565477845960556452828047099805034056659903621707879694772995002998728407253342911178993958675570042466393609782943645530994132281680382060728587192541243312853844981388231917925171491267856725884510236812400047667299003474227544516145764873127304888040924992219003509718252031137030535959271489895844444527720974905679466587644567356253007384803862398731714741726443736978097087856472849460194169913854828640669321038715102633297093427927851408837306760719774721734133964464466534093019361749688919738909012706561790018201909085795305486656419516559964685395542482709337757564230402219145293743326391132384749893477759748467497442845785145331181062909239979134877649539797760105882876669256157278597274577618882578798023100646144745880974794856667776788317146749833947739973133685720623359619335834977958367170276585318154887389611087559784018103310349412813202898072803486166982584969128337191413041976830766981986374855212066981264532769411483358317127210695524613171046955290678824677478645220736853474103952098100631475653822234922740923347129222969311219177252543661189273258909615206646156767741482006873795546398604132531609806627760751294945267220473455362532954857011275484016344812520894607165195404910090276769543936804727366342297332232353223017821444473146026517344939167979917925042009874527059906119418112193164606552731893868778812992858687800842859038159857676392750200005605951144996616282315394292546618148038790193211141547855340533051850531571606154338220755078518710903529698017913728670786988576109075568710395280951062287724793599371888999308975656411989049985151113642559633359903621545253842768854539804782631578111283562521153045811807166940790157773147058557617636797915893198737916844556967257729199830259095585107081057572300115268029316646032935393483811635230327144752617246266949209043518322679841242970334372745873690051092568943682649827949793989473873273444951660940020267545520984566954281257416258512978248863218003463627656782762219471632132556504577471227603606264653696513973038120619139394924693380782721830473661461539506782871678612742863964246964032471594643375560655790426897618713200785365044705277145785198265920962809888273151102411437893558709160405243144036789461828059554579617512594573048682880620060568252665775042137357767843205717230265566471498832665971866603162955895380478718599936023660634464557746125990834895749091448221874269528417726505458893113829667641559941515243458963699801163902421284328076808148952236322023890602534164294954507404798641806743908444698371994909146590216196352990809980920523673290393831488866262219417148807388384409255816324537468214256816541069836791252533771724011980049666085424681665364744114373851765126779175020553234440954329943701765485238210911166465684695566378849784528390876143115602755908575460163231706394905293404547182349843768788139596031929637978686982991317628997826160764310783884341478394944632562489406363430879623953876419608760154386306808329452897542725879602816959693524435330141808015607972997212684872786910424779732581186192851997116218040296325298708587917987030082478579625366381624101300843891122239492686831938002316755591712241168425369001590495893604462338373440480592548637930168987036425034182202286485205009502104154040583273932272816233055656406976803119317272380438840892675300333566967847619052544167865351650782586831760410874304499024272436571609045800315925559594865639669976048138960079274990731037723736712176388804228879333430185201180854611448553714757223940766817116309206558180916151508958768390555480971004444152945640894998327554590841416569722851132024091223017744719713367476653448834052141766247785147171468386676830039758478153095837376080710917980114321434561316357056046812910688947830776180181264240083944712710643497872804066359565070451027849497807862013291686305513085868520883416805951588996699869229870710456607127232016325143266696141522973962309961996902086818733845344321578541569533274574599579733737910466447747452609098529575380203496046542028593488517698936290986851431517059399996600378517930790679402575164556276901283787052704051038847231315289537831106238412313632212916330172271904832689340883360259937403506244980828109763525992826741886303426850909294380277676525902554317435633334299133821825462432384322559638256792694642837420763104623774364172915538202379154488786773411918622169654685944628559691339423039318033929711960721286994614537889330782043345223260845862259011823312960657995089258391822642033095903673196866810874362308623002427624619838733288597933992895857219498905932537807857715367085521618370555615432684928925780756107862921722353616409377277781650022717633217520977649078954395412819813173236352322200129994751255688016855260956996322542301515531075941332002308649129237943489646534178404749942964744137264149555738287279444595195654742471545891339000398758719990647009936127700521418537655957692822696523687661408882658502480039364708119535336926329655024917292288603061192713146867445104453784100185049982996172740667029937837196534551302792525695796378650416074504799349674482053206410082706379060961411658573035924029691928262853675299720263499081322026447947515559326956461210043764493387393863777909637811030826472755847065351089115801755185264263385259462028292729325495489846166051389994928084346491285106161604782953690623697165202007855926809637644627512526685015872816409447384555969305702285878584330283985758132857477025163593978300343371603390939771300707758133556794382456521572921599386499986655424576521105130259533173096203543592761357932567303124409945030215832212091171343824650635663105219625710067344340164584249525786019915100711766164611689426983662999051051804266096730312221196563570917515582386012865244246204730435175945720356061305199471626397754429117425365575566945884157767399105524842818320607964012588902575552018788406518317883649636905873876869179688620771529424352962386539587857751519163270334248587830829162945567283651983173013908663837908501022137056011821994813489671746974213019654097994356556973946862963800665854090782193877497862899448688939511392393643462363568521676072553551542916247791056612405721390143235745499144393010251089558648874998811351459581783658928276546755644702062774692288074490100432408995589294033208568653690875437950511709387693450050365738679426325677608366707290665013835073944234235583384625863333277280690651923846621098886473756859309958948896229038231327483418007239772156163625272314162450551988444559775767573419928887351046825820458749306175381978188054485567140199938861617106487308986335465047793541644219949283519591499489431964976720747503018978693668981855064683873979718705524036492284808951761685251067025152179407669575128839665563204366644166989629283010308935608898530484052025858228654653996199823180538065859977442001728541876298422740345917630247942392567011909491813279492909383408387305927873701895309212618416047934624113494157881594281629467209565498357407396719607126010276575753589152221389062591586234596635648322885326753677976786846854094730665703249563911806130737575888855496030479367000964411884223067319269575523978732691477805182274636237761245696548655923722555437013264285031591573986569007860947742525207988240925579245992450369448754346433146935467200158698846850046127899501963277662078819609226700005745085721591779895499339118018439670195639365223877499316909345559126078922234374394427444372695518193533828481608237694577475432570809139716927474006205349160527109246488233502699606566084092824275887725087079928139186084340911282754307286210235074863577953399513183451434414732098637035898556232072699312988245267764835196274762815726544388424755087049966452708047237813132952652206352600128524592049182300177751748360572580194308712535958726969518530295072836836409942747642833825328716389331043943912173487218078019372522108869593346012115721219085979854497988942628808607421948058219008187740093552385121130206263255249178398256723133705899170806296340755761419679159651947774818487131728062340189259382433364867875115969526118626736337200095508906695672239473856841520509877108290239579529416857776798809143169602716725935483925952124448261212633584597223934242509932745997948598202200140119394492825420142113852927923842046368514180049780960301775238296259494161695304700006037155971228566202932844289750745471939249085448028819543822996195958822464806588884804053497046310812833997847099068387189605711349351359661603760267496120944862253260947162720632933013940042028773227597195982963956510853011305801240065630864508345615394254321834642495085783296016947747300893284026733031222181060705611183765251171772413215695585555887448745713243863184137445847201926082037962848413356249424727480252341197956036455664229579745306216979716440875502542618045742886940508877683486681966314080114506799540961386698985369916186184393042288532631179870109652242957099461169505843898008764912985262930434833210497630602620911848403084519879210146214107487155193198160414759929655016431820057867628595282535041279422784547661204131664381374522772823149119005012972214670060503699780121946567191936859016608475422786967293722326834416877696468522178763987718835399949245447346928774347308615672506579807468188887687715157304158081679598606211200718566689115186829864805102375539793006761539305740288803319581129613907041437144312876636171557638578350578660650533164971144449472947729058096313456111778403489907903510923939524332681339481397453640634218476210137203460538108118810276242708257740135893439346305539144150641535228254241273414217832129084331345107552648844518189048948346584870892650133913836795873539029011708816039675435883662614763544431411542015407656023087598524552754027252499991743159995505827018668423432351164680762216511689066871827237500537719784562017229807249770097797102128251313793265902908587789454673606124154628749955468514650856112618940625571321518292338768171151382797686059597103114910786570641746206223973218716137949917370446106039152889090931070979088203808104563001562323831921190440364106617290159542132280104552353707538915454653694795687816504621314946117056454717504763704678033468108016991402885438547349652723572365647643208818117986161663619564998026552820934213031884869186111457442660947016370882637004079759690752112839552228561444061400277691724371873057388915785174336886338016553201514027998572377680766638716748536422491711590369547474965007951150877842704135766879357278954973149190521879758823663171901296973784777970396829749436735078624702467366863986762846675462271572701433320251074140565411164896323426281360012874423743132687833963251250872089186784561721371379486276391670239168130509638509513314905735568199005345493294906327498947946264914253502904902178589948824740936603834700336996195127527703154616763000676739374404063623354149179802206731360886120350048513748213708139344077441420930235588914281152478392663544039067343431740467648693833122552292776252112743014983147806259997591962844223092409914994294995529608214271976989894870255650022971831583180379961158513841074043243372466769095398594707937644436348294353098364538455479110442613782739740504169820773150002357172327952457378159882308530720641333050422456480150387272078192927727131854658561535562222027273756769209840114245230448444355617558039551868286384426254458737230065109456597615392295899633647150125179282516586214684579395437511307408027389403544316833832114912210489996668127935936155418937327936788340272243797095290810971896634061076851811431871375186652959143433242116903046763477329348419936017078121919927400324270735212595185605156835875656912483762458325658027702849975195048146725585350159281550303766178754169527070292733521786443835340104763110555131722399994383334461115366722740518351855300889174498372727951217518189236278869920229516518972402201387584310300339943234504591217097701050144353974054425665547769025102371882523330308043200114378310734031517264697887584851134790467542811678131686748343681059079928871515294726025427122768930867467732377234437825948704134769529099246789358667865326318706866158307788464529304805672063447429810555557638568345060848795460225125618921890699953252917594886556784668083694991555563711567944479862334463045528562363062579725284943435589944356000639746364030916832868075698942030981237307381442121630183872650395378698583145299787221716592581322838607010483622049530064518304789211312551636348869612740003122568026010058482219165658061283509833561197913524036965509802735743304485811089521032265346422195386752756023798563129473589124687623719460144313691654052431189606140020626764159241166072757386885183852272326088474683502612870996602885521454694164311695526626759272321383498494209781739857661005685693232869131681691776076314190692789234036518317344669101465966905620122349312383710379721223294185622574881921067273777820308452685384958113987895845206883460533992327955264893065093184727432060682536376674567541347554252424098179971347861225517646690188145919655858754594489733929147490326272370606592471546605666211574637599902815859937081673505425746908050647223482120742080223266140684674788400221881439333634093918662455666638688165912467514850499802049774089205189337252057895760497917196078107388983571608037641974683620469469146223327004338271190531215779668779218862734731119711162571227134980421957019966085938281664705746608774591662653669006697813802208643419219585220918858867284082806033093061452671855517210873927728114209898708214112995162647942310034560939509828042680300255173572821801092313366090843888811394461464885648072661695943714938729688139885813866885878467909569593930917895985650680568796632962283698549828715748369450248925004776744354085002936110251820951985865879943321465920804349825246083622367646299909147362318832909754128716083044310795620799051398037734411341687223075753922330582299375666634999350993685059984038691571582724423584678253506841762713141286788669363155743102483166534154084326841036109199956834312431744149915445111026487845443352008493261136677123739861242157600275168662876105901714396055334336649970598753438296240402717721676030940048034248622926123113152757852013008590671709949402504824639750870726097282626443636917107470121409510250366300240236334465341690780508060325389656850317032174087992035331632828811294270628369527817513064479810141740374707388252789197634976956084238217714475353170573901657973665700638020003724999536012429259785352106292027984471687989897951558242742724847748956376916739413481024981688624957904305340507620020541670712082531107905157714901838637093277413524484992448116573089754348581965805608271763389258275204026655222995230660830784744546045113262108104634263377588611366660533336388319551039746896860079971657780756463794510208112960569029682826755213483671327673595822644562527009898515232042664371967016082402654243593956503051203462365159795082682437473808838684144732586037112100688212658338328152391093502005697370693934251264136033947664082089007745916501871998567117357348458013668805954592601685783864787445730583031658910521447621177585531078828836607070048321928746706094082457993419809872591535254389270572124601882836747357737775575657284139597757953978269907006872796206187181661602844813863681075471587657097023898373728176864659396965105705459267282464470353059421241358699716884596810018820372433685430233194789340735221093555771831746728478317226910457134365969410875149543641661712954709787980849282409468021606008431079612312287315867408126068226595349982625809481615632163815602623753116821005973788019569376690815686055407088051810672115493632172635114884771733005426844079934193783362402736752670073044816337082987303545539467581288508784272556479975570872761075078010638292690924976389211819332433573540695169184068918747367206765907873603918410072804624733234642477133316134693528637947983132841435313135830712645134111897366803129055571758089333743262278319282816322472842968236049481374314111796833090200247114166840785652489915653971550080306525993541142422864020886128205055837749575004855930937118159690605713859770104776952182922308272926049210042855509277153692963501732476839298868734311650158240029978684723604839285019352259563435277479681054001744755728099670874449117863402566490712006463197111130465575974320042013821138132488129040015917674011524008985683555856695091861578999826083012239455031563156088978117611986189097684164157908773944913755196581325758627846825132645058307058611031237526575321869403348656191820932492220352678562385685329328420772303725902262370553576414041330316346135777826755855636288636106850220517568905056500067855849863615105816382746469171016553829048914698609554144317856058911349026359829398280744147661841173510351446545121889595650824871017808805370970197198838657065611972608839622329358194491378083874684476135155357846140760580642237889669799927037546839613241055861752951404912571590687335144398033859132134877617574715774854582912941738445325908265013118481563524447700111765096446909580081070412191362379324512951420956984607195417129514446743505971064871722147736800834590051721576677702596228588504792840851410606152445050501747719604041330131608598644182507693126689293433662606925209860687512466613508809872359380650358524471377291894092573423327808203985643306193186174387994533914702800900186208652934061721694558865797003297897081138247658741817983804439874522067705444679246426747843540880718847032474678913242162160404948850762633799521776084777804585616237607243045744845150015757688155828768386720163068144726814187069205787854377981223755273759957652913110543110153169092981205818786094552766600246997928438632535077139368793679156571909455668112798448107648972795040560231533855741784446271216940406565010505911146002049553788658331495952917885946142200519961630494200140799549526968133230894159449489401366467282853277234595198741743266358776884327928097296454045239928511938986281779659813366119068076390349896218913165914551389970411122291917925459258732178554988590525745579795529432284647744639917012499332192470969125597015456108201636878750098055725819687910588723587676703620557275481124062333739884412055437314766013412858543018917744670949999358379450711501906602182882142196747487756029565743137226654925031144857979759235509796297911762087125317245546601790078610704621923097568526344371176859622222171545204148152280051695180658581701814352535769875608947942314752542869702630873830221262181591181216274667413252342150208270879801994332422802504987547814821929341443929502776858490628033031183952139311145675216242634916727900704029571286978934131301344049036159025897473888753380988806490724125826198721202005416926804306429085432641162621590461331139125175558295924083278256474433859905640156937215424425454646107653170843579996568555374081633987065882865115066951589731604573573244601460464479462950769727786469601764581890959796526832512269430332798074730526863037125460943164408674218108575441490168451238704841378527447715616264339082063049844137361169461966293983046595766034647418267262829619924457336175356188528156461875489648928173576257342751211227723017645186715017592968119617461153598782560293769236334167719798754810061257373903454486756687319773012428812087778917405359527820070264086967038527601770323376978481265648199112965235878012034870409320549961183877218010075052140242757962279507566508216746150126507246243003372425587207944946762101242796644999344416339230197706132903345117797128710117863691325211280897334598883312257715436028178710041776208063810679780519580661606872653562064120185562047395902895787825434296968454734377215613062210053759189890702896589712051121630222861448039034485074166290190285142076712121868303235418913085725467936776053220232738693710202774730037981451832637000568503387446929389098122739348836066823987255966086479256999538354922575288034831961845990136688154216884585392854795285090549138118171015754223619278278898024824118313051033365675294391346698390649845512087467837662471972413177171016458384906245910166648517795155415653926578251328525873286204533992166908722589361741403507347450144385420401356701390518140885121095157182872878840520564053627349442502291440872118399858282658725943732716312357122461333924569649245541504405038142794056715353969330878912938643737951918973092104086886441696448210197560294245992026422665104869290540695800030519224113667366347073915008345583065665516893750754682027868479921128217906867374710901471970182149412715328752832108841252375280018922951303769303664262550652195193924564113956012409051558893779914218305294306683094889173162910379512994483577287377365969674060224544791005368029395474303568632340427813277794972668556373070990371857279262338348050118800330793907893376418015591009869285516934214996114507525731737565993086691146790465947401757958090933208632319491551888919418068355697636420468549703065638063413558924874992687616299757521427574842852616440872732531139387448311215073500436330420423035600825170624079570720020582725802337175524651127692938181582671496332371872455420577856292954677821382599170811654269874106955901172835606573688509997271760506289418588697292753892028385703108532007834176585844185546835470533417411733162235808836149250996805528616494151549532152943316657968811458393278535164731397319427084369874430919491667429384161504000172410211887755503400058459650073162459698711075571505938995702987935375258539527054668835032586735479373430270542498176258271040047391640613758745218220586979753294559290816251754663965072336928361267236760064353848391624132649574022905864591827137881190698859683244405584629501158924709328724836169607800084948220662208694053141014793977461999074035605121814743045225333624797233168198752016199751541666244173363053248515831187206198580635771353556868314427886341175498921504561399353748042472511462563275449134577567125764779249499789238523360602672931537379767037733355389977791113599473207498194040214175791749699295420939631631566639341220473075736929378350069715223256469207640716645226064787695836479819307600987466505596092338005073298859554931757463597600159233412935651558238136524859931247680051760847942707255212942958084968256396488189368640771012104654196494567393567161147524869108290992717912929424833504991627652622300908089250862522292980396688980802186630089888414667406396124182155590142097507758524402698761839428285369546722132578403042270556948994243815995895771607084704548938365350520122061883337835283254483865809528762887506520035495424142226767156940296086548641127723906969327727770473290266760212906309976807359954568153410726256714643966597105523047830759523993685026228843059156678174712849572343883249524299034812265363849329744526753781530828543969538116623906774498360229238666814319248928944438880057991872320822405097324839945781724137954255004332544831470616526534441988633471875425081199273365058672706187895459186564972124273919106823907269990027241718008552649122349579213220278781417245861991877304535621258080834693193883832913080129964496295119923636371146790145521530732601297841630965415917832585271039207019880309132985490974834031996082871747063868123129810224640146898314994438208143589845171667286359390717202509923638561970979315533582443055103038027461818482999823983475893147426361317190436401023119437508038310138885616495052585915331036076576473365363025150184870678744530401519530602075561201203715159133540411469114624682001804782578663180998365914916451314461396920151534039658381605171375276901364627072713845769730381881262407914124800609254198283241615678571781443543181188361357345943262654866206696174173282001691215878800423652488245827875416960576422184162702632417156258929017997513285280292717076076427704455076074004392974572346329151403472798169027975826516170109889028087797204710950620203552907247449863115402132499229975892616895841383888609346711977154877559366945920069562961198012636882955349591574286700322446985412946967544153369941008718029293326813575612824382992713705972713442399700318050432887386842733600645755176644481404644577009770763623782918077553572176459197396325408251408787227664722786960723605334111651764110139660147040384958952048343186709888452977027949011936403060945916135296012009935348979607374292926874480394282607353417262545246455197684495211341537814363412678621463885900523445526735012900881797396019914172642336209855468304615003926897909854644974136774968162042380112403102418342787222655571862796269159483155754208519118398742641207459427050203160217438311672622286679378405925923170001939407615819561010426343128056062621243564153532878155388081510512915996906856063439732491918374414344329703770678131873180568616034472235012393075796278610475730647120926468205110556166136809643392935411845994792566675789784167643711658032290038795460752886899059434311437860317054615873976478670996491112547115206294061229251688172920201695761227251314811722497928571908564234641350847378318642931565475740127195095957145260687226230853564862669228359122311484426767472314459289916373555931450007144663869287074865196293836113668750177115223250831209987750740933676865086062891904089147087673466014961599695830090424237876482167613048643085958444502843635675147798250402530512956311146312509649398931262964618328567022209573454293193730807099318767823272918678621046849022282913222887081190181893147578127303124824180898029254748059256360756921593649166966848281089178945809393400593018356924920494928451921763345448621538525061531037703335025708882451430373466686112281786946891586451008122565074803876704523037281608398344107165631940433662687732388170314368341508990155907151972069941104351124948223475756514145478047647567625718801417924136874300771524256875924498494220484776413096567461146754778448761351020523314413290723873270398494905877437975067992275482061258147979756768184706904470302989657337244439071414822329231046039450467858506584720275022575334510649467872518432180278110760347634799317237337896691625926852952296213325580582951884245903662710503404038167551423899962034040995258868941076453610000339231928404044477839295398455529550217926683842891001915079460584294271851102964523857959177350244634528718773919259006418449236040970953288927029936164311814856157983445676519124238760783736005630275209849787752442210812866828746746112432632551104202089973592189802052559077837095392327339603743709617944666568349293092785204071626928956136199343082969600802731451234995827727955848784417832882146179236343415035307877642602992887101322968480469682792480460799066599281320740279951191144093596628798281390651688281579225201309112672061034508663020555488823441543727572622373524853697410813782925271230290843688717305578924557633581469443723073750845841516825011749556117675934536063930343872042003902328309832622940198231333392006724884106341582773945192153995168690477035177390867679302778161053974617921430026293324473730396370905270491923282548260534465231464722424393606166506063665652258041963215130469176323113574753999957558963046725224701262053784367553446653563457755414531972385798531384079427815505470653970435539560474954588684379775669615086774915682693773415216517919999296296623959318232734585113803379243371687914949235749325460576048233390595259353832972694823310254968214878501093739770301195042726251285660896420744869513717760132872546850339249314842239224887467988639273473727914116029528707251805685312917836649953656990545796788437386405385559120564679762655150943572872338468418963678533403789661252599454024294220690956695514457131388795417969553068303258947861899672104872471275881581017904214384428420270566092762694256666384873673959740604666496309318333315408462195476024322962873625312305934429744338124290982637643589701098008271301522488438858338159786690380457561942188491391852527105122403831596312331911084033551707615668648418602419452680860903015970807845718097341039177833001450182906421826005265845092212650448426385953216730378831493445022138441972743085130971263746473784471523348368128526951320484689841650581971308272707900843211681088427024237394502394597479791519954019200246990558859586461605588369199159035007780091777408882301169098364114707411806331446052116088129611826219989521295330899707473513497772511686472711387000041703383411916130436446638151479556824107332604593042263475945378375709142921213732920984937100691839873113193337924317215142682669937257564112386692117811027882053739533524906053965673111222647604496461867188963854614063672141369111077275538795252180428830000245450200945889295315077954577949744688527899375865212273640516603642129394906198888879194261049727535009209162279016092596279172345982241393036434942901790716521426759969819794853956015398602903391622550655720168248254228223986245803563059057143908969122631161875791204249730274431172530803257376851222425653533101453361066570416265268852464567169789374302063087463033909093090489682359385414835463365796603585181644593053750885322448476808094297426629104629297984439471393835314811142821187201791561107572176161398599450561782883764508996010554370024138404567903897555583329626858290733613031072048353825111081856362281021560020561516968924814783861065074041396046340722880106517560261725511205246703391348236999238022701944125592440938780448450312033238875915478543501345249103631624080112473370479659097401370295620640409870648927533310691896010013997225028327493663430989668843655920584693110913104901943378113513170392363413445253291442816112199273391964721370031777921384764939024109230235933255863964493961769116018779024446882802895387091318634603961588301441964564991701838421984205006579320793595759751907966210644191945607497032384122669279067637326504044663126666367513611064145783304972435245949365333006863658702041625293484226867983566408709212731674889332238039611327623196358223814676601776639863529123855208982197562071881834085126881224817990098735122884751550258515816776582802075809271046187897687234720180561497889014367238176929715418301658993358649504501377328850447206052330288261289852016620999341866025228755846302506020328803391557966301994164218198543279754263951685398103322533793801235628176224504290470770245282749279400438875774850373781630569746620825379723794167163027987912337331500415282090925997119271231357067886332928663128561497676324599210396498613624905624720649117713219567279249489221057201386747380207194921365640646221123122283623889603008290278067955322562174468395384443497209417538749104488683109572307776847098203444946623108458658211065712727532929172725924656392309364150638233643298311890372471289297303021272594993346337349128219946617275085345093192971788306376095382184457463335543160038953567248336776726452843553574793114157792169513159068948302664690317636435871475876044935448072051204003781738027869907442363478585413067620365408260637971323453873364073567617647670275779681080744513488835932201006993243459820310825824444646065150918854503774134597604440106106636544842563353450628603773866148211645811998643845076593243537165100940153320797308197360645683056685172301790164918245463271187189907462466339953970692041898576613144419007230027216348949200135650994564142217087281309177034290768651496568591721185949162545637228042446600827178761133027617662062949948847659439717407622468565666989495491987312749209826454059217686118786177459372538358554694035529316685877325637465406688155118573626704782844436737448754424454215686213437185699517741690673369527781524389664642255029163214971890568058270387796304204456348398977575337219564366831032680463461798379177300717190242481410872399829945018697452957511320650957614973668057858485319221120561915486773124806669552671124679124496704216990400449906016057971841106500145580965464091825323660014824089759374529990288882903270055684356059665088206433491943358719015705812603569527356953373447665426191158297165534137860199066971683247740075681425711545012497923246764691968013412264811583174718676080135032267686225956604375103760773317324202979065377087066830118531163575671902395507571829322475706168903098784176877890517270698411060339442768991725218524068336468994512543648478783930844073777177291643874481154031891868046501102737397893940514573731595784910759628630040473841902803637156444221710290148071059432195361367268248738962108504188428362312199984523109811049708110280549962968401814689479532476619784518269588604332554311238897163362718918557153532219313121632025887180668976636241558339007304638820920317430127677356567490785559789191623222243969437150483162025889120701736725190978087715466758235339668456033258090068512701498101582354530540177716958848469656255471167898201364782565977999439901711749988166307679690988228282125330033686145262182838869179570817783891465034431191816444964989616075049041174960727971895703902005464446882610255940693023643054111319336762790493562630043121908508342817508226885300121052790809883598683483996128160351877507509956679687048271055117990668029926394117007912460182305034100653079441786357387914627788961747885827127155733190187926337173379679899466447033263520991969978370563735345632416250420578103026916974050963889691910297044895612567340137296842780534724796987057265788287942190584453081915011722465646595296170816986028498684746813067207370578470777068659714571206366434438334963885107036431018171398087554713462413486644389528148285436603752483722295568129155594317363703019185036244266402873251056944981800293638641429927548204512313988542969275200978935813147955146412281650259439177196730453894228522919731937314266767443026093195258882708612327063331247367948916320341358600181427150557798088228920583088080762871537233740105924148491260560995199753071077065192365624382242677578219701144641581729293745298282861519536629696139333984194905351267896060307607526229626796007603431473178985476112219564706356051412254297733644868914452645587018311573406627724045373161496513320276150712489090105180605966581467496753593944875694147586695152308293610459235815000533071285217058759061991449281189231145969021642773133907177374408169509171631035164673935502043275610199618989591343903057173629315627634767557286307742836417346215044707068564569541375697884826588977733122987931647247773488236490270808323900202643015833189477567053273179390427136350259544444269882536710672997524492233212961033939131120273278817212560576130984565277135278062311758493652033155038623183451962286323720077691678401808065038982291470050526791331486154658061681981929030693098587714107177978616481375439314386719233934718955494882422895040149164105256889697874323037976663837972013816342689651587799802108393658784355941224049525954142933239953614246900929082681206423764202813808278409845657720165233410440282940966474124635421735855124290018664165041159536549878957299391170533476481443675710445687489635832341946805104281097547165816931025379977918958585102595354152975894525221401946759374477634286651701998464419093421046140324353416867796661003414449630298977393744185638706165713693175356337113938614453966941176183850234764349445270703331704515048309328010337338471432872674333115798452259761839828917031437709181279428429973840468878023449561237287448147379867826485043780530348834449660086218951950319721780108716057947957999671631910218989403018691980709928207643634086999137577038016567004729032627610735707088325443443735291861168128274627679304720942890942572162531877877353205488161072549548369826080047310515504785882579357205889754231766668363231079851609579807714452942500882004536286585766879525673598668711439862831839547064581130296920273091421773870340362130324574408225429119594559694181408507673860448141875254367360027531089593932541432277741456872777210100312372104529325351715235037793693597774055360316925068592210304020813084609985373614094160480273841714445547429042353611831811039244070269710872346216417768180043634293595499067077653836769819232036030664511812201682246382345648697681761528101001462721207961070627132187808794281027119412830469072601284048034497695483311099026203618403396685378978897693207374005147656375265407744638752317069265338381593657182579844486233823390132775679230138825626461669195787987778444379878221703660182996794880586376889637963960419042131371649490986834440716550918603266383533800228815021436813813804346515179230441066171579553039044104143740516785258025714818379626254608001677635324366613806036462826332088876227871861815143945781074339235918229376191501203274883823438901006714219333251523287153233654287137889819325197322147550321574214440267166066927325874174556388626240330882592809580510603774366555457140920923586192046731866435573887995544922070149536161687153489282759156551711003833153398177362205870024026956855525000501544357440344830673900258088054635150395446617470654554799953609658656928586052263093168694114147609320704393511494566619374393044754917120851409429255105787584254003036313241275057775984238516180589999631964707008697348086684127735271277027906629370953649668593140020565651593865877291950515343036806220503590558047260717687962998719546786402334327216982869440841892172709629566508073226475700482859213295515681029329159418938399858578537229337780671986161551366181276774876852799368042570074806786183853744112909224911479826956446117054013412508779554924617301436260969081050583675007770377068700385169627856063243837227992548397877514588773517368384412767784645434595880659471608581237841395008107303088405997932728885452512274128447019242783650192370519508940262621625273812594359525356187366359690092165121295445283071601973029786504105131826697116619953300110554230705594833749181647883831950488344780074723805684713425878133933539861797970714291907679425095026246692692256513485853742139375137660023454813813715672671573267457361390922142561609715234394234043600179499273996850989516249456897938394062029857766389861376370349829491072817770934175004565152952296656738531725188708585643444315923634597813860388438122920088928481504906541087063196169760592901020615552503891035776188075279509060350138349546648179460002502406843221578741668425485160093698638096669716090482322520044840878853027237978376420962537060120507961665345549021927132919035877814438002003482377048356520549678543672394120596437312391956056833075003436521787854839597106233601340546054646671024475300139682340293702992012266570164232445300954792094762596090360719252414048241740305027657177463834969302091944488582777988371889318141449327948921017144281552599134703600215501367501169533076981676466931856070957734537068024526080545898969638063918968698017010844898187915816310363636212965207678537059407521921359621345254825508336765227989026583083376350132849073767446704568125897795631385408038623687869928926515730731564272963641955736662159107300049538317106990843825726121739302221586453311647550543194216947321695711711854055974715325672615548802024227982017033676774629975245702010411491919568274074459045820943243948529652853218896548794693680568451177825786840087592640648396161138227518103518846100991237676643539490406923118547918380793358549728959092366425297158862669996027594780963046498336857502175752942829764339600607374148427762779921171684413853362407256982754463484052770399588562226182008331718748267179965503678046469187578044181061239667237176941152168876686958605391462972185830077146681700840021236887694004376386768772234765689469701483303732649722225102588732363740732164524318904185979264667311854398433024802239966100283808283879794679796112851034888129305713565410048043964215005885460525513241301701640607412725808565832707125405423763292284810445952271580182457703775410144998349421926364197044432337105043705791064274841199394603077820832309738338731512496558982133251488731048564931207662585452783178856890135509097898340574636236318250329195331999713407168790270619679682463849025962303916152892626399446333613515099386465961959097179599756272456420537711910469511595658085251441643119220218023414704925461223635340926037726155606538208473183474036941464541754888740641028718196842997969628233191530172204540045587447459111532861318532618894716801569071777460831774056126915530177828476268294482009386282241490443194792718713264974356611706757605269134566961408024829133195374126083736909117630359750912131520059261451936519129235046874423608058049575018038431922831330206690768376148597802473892937723787604450905198010140331064876139077749191125245172906020730736435867790904495305591417260073076168212697339536725609788193529669712181208222667439205196005570068309389715982289155481122522190646752363011415738364217797913834456736382444490552233149195602512565069631727120346833980953026622478175945724030570076705123481617201119457916709137706468221331551791505786199367132197463020952041530309302425454179308172807387009135243361623983914115680801762929332581140501593186995302471025643982863397500870204761669561512170093213891093478730447738309801102036353413636768376717845100893159505113537370381957321982286853757420705535313122061122648826138889464710978680386337790524616490622828421383268783787138068595906503186834772496092745011697157936839678309364246529533380663335030617713113634876394261807721445212147562615338208290562725271448294094147346360644864063086554727690542710677876960423311179211681444685312672416361631317026383246695385893609724327875985972981784503391379181091407691989625705016630718194376466977458515288395585906634470886874196160222630274131454687595271702660455083412481781609988417455910328117016683263862069592571707306010419049259860319174865507179134149617923522839235700422268734541830684602665658065998049119125030965239280364792239340021468436767237971168117855009824140294317744839692765486258861571599235907650318236975655190187765381476332385146177759970942591469814008113119597431409502194996213308251249147633911091824881063432949733343636664564453317903052800482809217450676151452330091689291344064530905407279466736942343747548583144872018385984718954810382339865192524944804806346804167161862048133139779980449501524103732497824915017397641032542145708243106524440987967479859019550375632323055636894583420103966741516008613525103588271912653154126392863642064595814033250240163545696652529788289999171865032489590679995970434615624893814951965338706718122238375531221542742798162616811528774174194192169273882060191334464903385925171001314903207866266948544908707288381993651963660907955167195810317872311506098750989998513146107971746486267482280766178476155573580088590426100223009008193146871595136566614476388196399281062223053163613856094572677803816797560039090171129924161289303806241981365320936912439398349820399897134860029428965688710384647349947919807252311874623419085295832472192922395258082380252742125751372658520618545445154324487436636682797443048994130629735526680023474926884941015063920859996693109987771466966632272217333406523548516327912399741761849587809420599393847571640742116996245481592209412132956957922777017416291798533480096569554384184488142945078143142519379838768029223291003469665759141366344227613854289743606485380915588397832490120068451038981998806461071149346980377297562669332797735549724532230363569197531392019501344382171903691747713842201827208466953835862595165014955367801968491463428181102995639311803167351921602199991132198216971524145453978605290071010405821198907166953624331939165662000119298365285248026136680976433070131274732805448564951684570813224315839532390083192524942653809860245118551843751343260812993879603355973068061740930308324914470315790789532701486683359393616115095093277577699468052105051038146286206915732310126679928170569742469509002612471557808081344209102259397509347470520249108323587028808285372458019553723128828731807653147610676233369037472235014855183195635841076306170381894299008517697171855367010480559198660189464643900597548213213167465651733177696898077680317740164999792291656483670736351330078838771449189117509561610901107160007402335106375181196543368673949151983274814030587629746952201269588267306586388169363907144153167760417004634520789013172143738630675544664345209251162782023019878240839271849669373362239215193849529917684817783970107634719870293843538325402006555147677655589373954094071023862328039014536460315000006146194094366700571834429264323660303050548400118796041353628794984539158226584841586712722002048482142304089768688606086589813643252409872629372209401765362862470412675722743505594447726554610787295176237197059806510485899802538018424799222034111663138169308756906571570577754751712812098595760309414172703691839846254026195653510123620006289295169519035726659638935590530131043724838767695049018433986657039397140794782607114683393849369203249146126346544143930711521542374441536640454623889080150514712804677100955238642801532139755888276847114035131593728507716947419268450518046198783759451829850547166129588738293524572399875632272406880446483273325477592224898193763024227765134829968286766229392358069328332377428092210277918612091859702534278066291452495781543896235288715572284497620239523551753406983215086722864198298204121885497611160571294595425437097073347182535117222682494074693847193023337594271905593165602008481272880441418962853205114083400861262082455203131754799113071224347278876056923277927795087632926204837057377564660635590202414621966166417360372831773802344758351728770421909256696765650194232743864655174568485439497059257680057970260638584819833777815814561564592326215444400935011713845230278135345409690788916003421398690350530410559024734194760359291242689499748616322087713733425952598725224285745696710700359446453505340758156969931272240214137848441800283106358123274041870658598605688000902812325944857359579784012574347996416902308060554845018635875041263266068893173881191691381146055983174754131564055398405825844368737593411893442546875169176570682222611817318915828990749298335690968609995439631611318804717075732097029236683515987684421718552021547017869930947066125641865243283916932506025615951289779284182718801272060504387825839236021367109740621669944508324867721844775996975863793375329548179060116964875986531918105102679079865441494259194974736589609244224021253169818256156443363382689856973326849518027602717319697608492190329280944856413185180698272670286740848214958059806161742909388532146894344699524190765576159756563550879597638437995610739820633737281518534221774289101257590646756600340691740197497667557878447976205833090572013268116766126577943288996993935096809739673679492546216111765689301275637162017528331472596726767825971781935435094467648401661272258172511937723708500707274185611944726102755585121815793803544950637359977847660080901380120308431587157404256047159733631231314658609661035486446784803593538329913912208244945102755994163706841621292631333506459092893879357311088334267638267724138051831480948599113512236766157840650682900114475448465542358993930737916388783088505742985922031401413208656777584624166632226471692997390179386207443244270426935609741689290499021197504071362695186098376497273992868675950493056120171687619122123871994133370601343885085682715971409935577719727511586315820266233686925418740836825076348330202549931826773917132474697518530085313102869382591546016048783477653367326458443798121991207344358382589582934570301636628506485862051311725111773784255665099902980337702528216073474907017366210984715421705232790289321227858698171523221198414714093224293923723431314993555389479559409885571816930823149204337828530576338321013363222897650505574229092174627131294262744079164229929481294360120034807803862763090272126119460502050319601839609629581176839953476478654500303163932341025244184558980903558969181121319707011847116149123621445774666812568303703626526304984272811123908263727785030596104395327563079462159178109232239630477950060676445234779205797842540774927578146389520415601477269078571120315285738501519858749315031737037397618883920751800984486580339225350198837166739376536929750706242107689115528017383766635866763678842695578257179826063427331239993632776618447777829353506507488351066546791761608699219444506185349930498863908925077288964155666808428274048860112751368850973753899723012313462840866900125810553675983465677253841044016271032304619545727276869941995099258084814976375867149678101454556481174701428012443946903725478603822247533013955237734330948238120717252740592667589636564273925270634838326063220843487348903685246913063616302488308709012207509350521094073405678109948325407859662415573335076792893678175313618991767292272754805091525613646704194919093464854284872199465992077879232623239735815913433453923206695473843636743359775399293219811847215329220495819328468067383236410278086836651875951719027312869616647144884084039009782957586569245549085324760407607005640563502258460755035098700875906269290069178154988350182527751623533503101358774252941480514721772016053931706230232510993223209362320206363982148142861794362489524607759611056528106756387970624073685217222427434889432935150594552037952671903012396472092903078666218061236148497855741532368252925082036527102957636850307712396575749430235445369465062192477911428799283327021968270673773194009226801265372633415528719864607505336307449124008790200016665196822509564863858737197367830565949679045245326030940398798325140786206150245116900739849278535214206059624541748464499094392782479134986198353179165803034246854717961665900648303802126570435192473099488617171706655750893024829440898247673858040910813074617991619922010518003037153435935659076912839166359584365182947887660553578538466685206379036925955876293705498732744533334283417649565347125601434766218795975111154629452566139767017194060579253831534479049913065432975143785620834178173323170200484799838114835629525728650554785662229250165691181961328458757915324142476453084403742915495716649907004943026796347263794671346715506032152411934767179322355116798693552780748673770948200639459542240415017348464376354208717474569497210012947027015243009354041480273756369408485151552953984749787970205410268973257325417272930638736677875206484185529342732066091402620699556960328895786527685751037095084813523288666272277096187117529697341976931976324777230394131621231506167105696201442924497039389037736618346362629035933847466327775069554590165667079677920740923053141185908761799272264767175285046948261813321742282735724994280040053518996550734322954552302523775434810414382476414421822609120194404262456524225697864720898468116214757705519949195413841850396808887685943437733523467332170079561709672516965486261853658913109504468306180249593715566999992788302681429702138238731114312068518124652203435357753240109348167902183556818338958520799743989423323226273653815398106251281262070669153194104483734548880997233919796582985564557113411866279040970454166279080594419366910985589455962997092826636063723605511787494104854974447308015680135051932016129250141755923417511951271568507840913029573206449654201246551432206759498691032817950717183668917951707341204611316475266160143192447414166108473628208273521111211332167322771810990121235720293862644833467131388183977377412924205766488200314937415931626795140280745484711393489569438532034512947002810431622206381751903668585464325349645584356883452626065887605131387477833453275932298775852205338196153575746692010757002810981674040474443201687200049179748349124016066890719623629485675383723865648522782884108611138309363139320502491215770035185915011287141666799682146955789994168931062351647727126335943263263426953279624885259770893454747049746461984458471142656393788347694627035767454983072462215269750273504017852557786335954729211315452597614686148528155952679197701450782098603538356412848397587736957543456471179168655271753197955525658164360834496387625188499796505636146450434578346605467495833095834785660080793400497910767829896152517545773105583335021289992482173922642893777655772766747472644924210504308958824954532280040479748932404792757993476288581243435107945737111442212191803248149178663281905697635648665025331716924785060896123031873698793432037579729931207112499885608236595553847989709611757576368474878275050237327003521108364269757800853777084784784951151255225653886361584005645113021020470051455234770143890456017260453983657735030799744483239343814907912546242420238296721951017696610321321113891194753178833082127550060972471974107985498155300112065319123070624236489068256608164796051663535614356347374060792501395740011376682389960745628818962259010461486084151836136220772167788784441847907659685543034360256482700836505579704904052562504638497184466677496112622409834161767635391086713535807824460413762583809503475995136421505839482397508271898699052511855333141987139239698228116024710544234330431496498469553446804171781293235186046971979087871206042325719161200202352716390558195986698548206975911188374612995292575472465545761900259760949196627264125478970899345662984108535056977601977126639708542848002236041845289144781081645656356661849504584559122689772616445588321222535234903398504794628453902498786907280464342301052158577081732788365751188923233273547048802503170528962238186260601632362137373591394210505748095679979209577466232464626392359686768020289176492062953683809429776782994204131395162585699666046234103861946532227870725282259028541569625271338134679353219323311091848453868223051964318653623166408506747002687048607722124205634897982992278393144161436912234431192902019676762609386825799996062765943025147808229128872313281288995281769786760962056609309851222324339695965252123231052355048831362489155918729634258534415712680618604411197066527429109045425265035496502041373763452715529129118731508205590825278845215118377543433220424526526640304163918922342795201588183194141375999562490341862293816604536638372947407689267872731116743018362001244439709723416331822669107589584351816994378375685320277540162185622314794112127248520983319235943922646758167812488484221343237664818868722640097987422176585451366049368790526853779831431194220292682814294136928678350160892437495170789393559926906485550368160617089854268649171187862706627449239960612634593660207849157833577522826390677229214288736640332637751097186706687352170548698009585374141266731033579563426533980150710519872527663556854001853217246978617266985082171675981006827040360445674179110385692474410600440704730812848086317183016274609217634583310988424778183439418438309575561096156119575637931002030895555547503655494359616328425014177358155936582994600879022258192548780499587859109859304514384025838849741516749458569116070933567592446120707117979647147606334586534722922893312212104582017811439044905435431209022930755633549160248569069836301495471684647651572899380219330471321539380364166944280370570660500056553132189770860130116890025448287706591052115203066067596332452195757992699384064455169477479977323029160358782300407006938981537895984222211205872003396168946664688582635900774376987070956857664374791621996048709981665978867350383905124961986851628629092053381640770234798600093946257097537118196388958010440632907858518514931849823830013754334039677049839248253060150088286418083708279720921036276936146884718075089660693377901024688346501471835979633209646844252624917142406969729636387605336402806083934958355343910206363247500935254456613928568989901103735169393273484192978297529362461437810410750570632911007196786448540273026013364384404241029223105936279495225729551262471636122362746978471259158181797441823088101089996014457538901328219077163632577821277762653971429491338609099947167665823519828104903858372521382034207092540983404063441010162010024305581879133476131988805644575553146965578403876464162108701437076450126509696353638303973358124955582037759447152062397459195589974641252688486718542884584539637610889258214541282497139354533479760837442381901125995758663070336488791313409697310217068483666962314206408795301302853345329098321101107122251572455941562673910227293216608648000648236712056473452106920704706091781994106907421569231085671022260704179707007250427320184873897537722784185148350198706496630589553252416938504526021107655055327418126266906389618310191999120149974126039732423313171605695316733063889702874184741162137716802700677887687113034987012329258528433264061379746923288894520748100776305257388996838499198156132067127614907470099851640032073125394574143255020500760969053983461464501149662461739034400089355374321142505881675362278695898854723325165693690914242522080127752805067248744360885548880850498323288720244059880665185328501457545500088445793258787244416498284949073174603785720408756081253679094613842220000934265459274252421657788916332501978198816426098616240064315540277695961097901187908749578531838508190816419955963087824686904585112426195936737535801826587595905664987416728106431382883929662549275993770040364269510347742714841860045882823402021646880298926650985522109954586893634499417117599680521682170207871452500175910492074810145274194649325245144573737992965667521613331912204086705748818812669475986785238335926416408696749444192494736106350699488764038777154346154342053380772052503499945991797937501090655537653008000872181900232998368328330502651893073155622519333298033597169880934568947961140295772497217022999059295335158669985040514579422326301470224955817780720758815927532877369895042544630568251573574593801119853487881939785586250945126929288574319740134416399075037987824544883802444580286225385342051128284670702622014467874702336873907833557014246647085905708769498236265758962776057173579974153682764766508867861508178569841772707843639733952652306959720998986091061620612999929306029531634799179535145964551441324302592286760548253729539326456845884448360765530601646440301235666595722611495744139750230591177272407965089131747043775907543508486778427265894801962751600297100450317808713433377110783617085076111529737405632682389780443018567481481547348615561229458246723572081161648636470949793804263902366836199087488595861754586703240308083795199451888729719766863941164771355463431229501514669339572114703825008320069989816367117343539192737837095163300623818254741977526667380483393574471918227119754554826532985633443669434450721938970368699367929632787565604300491923506594985135619159364737357634742798822327232191146240342469158197243203689798495417101229053626104682797729493229213275103675993693440901038521373965151955298580820450122827603758259007205427860588453873176599312945470936041330894891234764512935384103338278912421238658672457841432619242079636276887194700758718179562048779968792688765241262268294606749144509160112574256719261353426130624737432491747574362263084429846580170204170559602894900825337538634691596763163163684166434628637020253951185031429644286817166924246277312705147050923184153237922215327933662814725350652109237458605374866888908750016980916300898231855144842259395816557366787719355980819619157130468730916840612492899605780472323000983393044072196313383474901902614604459952533276797522675542899422592733686525074390782236967968458667235470410525391469392909225002818373003199142357043122020467943674062789513618428536441545365197659585750893528036956231479010020392946988262502832731027235380728307139879652476592128611838943124746089942508958986709559089776644089932927099041168334826477177203259751130211355530332482571630766991717377634189819836112860928622232123166373029136895502877919971132720550795802783270029110095731811976062628433223788941730986338090715482546234463231555822705362532185252717614587165105010803791013137833575150298819973905478324730158924449095031670723025323381230818327240635992987699204565672568672143335086768414783911622745469205222573407484943407591687359737729522562631918209762993771101831622256026100749105608050963308061628754544224322352443836643526952581346349171473252690882499461976176912992556240563462331784891591701507431128775894883340312242831550487836713193578253124860815949117623299956784460258100073054019291321466305983637943258923184074107476502306144900836123093937892147387802882779443285162743775552791577913857542460461316398647567749644822993115366093686761086172903465803195113037115333226468707697856026706504848823277242482420869017878342986359665831912188570085282426787119126926129123260295116257689147864150689249958869855503668288644996609614753988780555992601098245093268726375960867511001581124646257022781063243740473071259607145376023341522696549174173274574521858109439251518312780016586436604869346526604666132544151023676942853565080632408361648118742544303311827892285253733665632345510620528207452670018278825113606442257249596228462770033991282774525059448483920330281466135868230964367406488770600897714763193204595682153397434925413282711952472299028253774750063831108905759488475454873971910411828664356706617614335126649069135353247819629625715407157848528396864637231365716212960336977198540488688537971665527188690781660022965978366572634864055040056709420892616617120486372443577726357192861457805971646178951225289380739773510148487596001990677013296395383046034802649650635012400140847814387534068158893642517002694860809227511417837325359723775908592412073150333355350987063546467342058539118180307513224714421277265329320998179362996515980860116402626245116478717787820073337077640232898517440501259284970854299059404016572021397513554996334532885030645957307522336276250321012601081480248926261204218902034204276276846664971390860310452880344288469492671806998142403449672945377594788544633435216828141019369342096235925952302676237016743354644145855032266346301603534166811729749403290539283445011098812180782890756053635494568531200513033903001189025637784820655984854851940655828877227882012602548830871006925300972749566610471522674959581902907643032613509051396899121691329272339733406520778708565135486891720191378275934136518344818220837179808916988171189696884174873130586214808872893480296657277335139759619483479726830764848027760234816333265000758752615783179117155051070361348266602016045266404969466484474721850764104244022369151470507548914029525936252898023014659862120658218920510521930264931992190140636201023640842669176351457140821516937468474168929338130522359252160084053485100131697124858491122376682800340249696779804091984772604217343528837857009301367627470761287688447294498204021631209908886062528343313107329149653722446317239671442129150161881844041850462319336685874513676214989167796400846163259427332821311092110207479497748527420082568678154009713510326472774569725663201531335789727673493137598332539899776426971745108687152871847542230344907735769720426078132298010960255169823864194791458293785566880934687303180761838841001907593027915999823415808522794082096285827879311129003853634939815876957622904874104728491861538096174398343446170885942990999847778636716750130946196748209160584276859477049786145097606983558094800314402929214258222413882147411550986459228042616446028211563552780238249811542233739002076292367896014189475574870464004982684249125251163956389893955691712851572187312772471782573784022149691089984253582011792839193781262172984567828721576892650629939248219483311857938949278109633896871174586088618099118620223020771913906711889416310582134286606193042110648378237922827274643585659620702723297122902226315653355054043998478895246598301461595115924529495884111447576561753595284413370614052215672195543716431228877019999634348555539736920406298779105804576013342178267862238285533105135141076206708512842254556486266152833195908392828411073300755020113407213361277367034132407772983400923213530926365116963044854164004754572423371750412335627498006877214600486928185542720304403871567470129907650731267299002591331354827884115296844906486045358174846973008816364565775015710390467239047938674123118776622031005353913819867648556307574879986937460721461141167605263443221776150512656634238141249166962208025487062494046502723927584975613539681641683206034220770607536219815456775521656896871220211273482121089123789163300733586080654859124157835591185196018225808887555810700214365095291474135634631585132491413619839847360354233701169515979838568998931849568893036030679390319016521505554225733082440015047776524721565488875482138257729599502263766712090288758120677981020095073359244726286957752708966562992063116845901275867747902329275146939214743250654200565355640468113819310485773496213077036725951236070652809429328980887943873493208199783961300966459394422525975172374627183862147755959162862055352991091937379170448704781268757081815097351588598097988910330361885440218594594656801350190448675149571116841229515530607104724926610607033198340739852602388908700791588562109696982602153797416198097762048503977615240145358953672290443221020711799179230162197961411438017876135819298751870354646380241108499100680702954261158196783266567649279071005443447279439108395730556512479996139627160621526787110160134415187413837499406149393016977308382618741398947221841656247238157439475136947246444044069070920882887113243398599994595271208255835080237263988476951535978601278386364456112258714433108276594682673564599007485916837517167946738697581440902948213520466677365884421652176038803025955509603207215021294226944988514037382891820501777882262811793480928260382982068498995303355100627079566503675945497524070082037245867930823092299197339368704951623674171789979385446302949752273268543797872896323811791625002690346717995127511873880406762616710451710742590793435777057679796566448339728868367468647330315107605368262418967336711544614211224900354001789016433139366583867803407555188491208840759641544983543949870721370450268215333849324228320741913733970129551178814789963437731454056611762632408927480402730991045788351386178963772597988143163601220838882344340294079843038085112596458936214339322359505498045744248165138454676076154292959701409423814352013917991794652681838972468857260819016898377627409603224430823690267182943302760802894366006051713329381395626066666251825874241332992336814243598916002334632649759308314476070876110411721245101283180329950916015047009597158722021275610622871648589402179820626434024910022298257552114850872823300339126531722619712067800838246082457777013929438061281731956558811634773631648883751749559253092353918222168871358012087868379085481512241971545178172736060914778296981889395653577028385542971861397133401823742751038315696894575420183492159549655758455202772559160911605958832804588903769847270916025850235250726049842710639614387933748816008678537723321588379325673484301304956577677669884477939574746385682672558000238482290063682726873803200771744088140044502833320002124666386074788598027106295598098270734291498850918311189343559139362599895237636086171264465933436810062001286217938706700324028437808099036112734093317735921698849190002030482461516785848417113949682113268892378731462247588112803655226659662143425071142974763222251978717891357252256390482721538301824777585954436366719118773510543627615901118986120947269478882946641688349625310709576999143903015626450115534927740088119341559994277845444630269695964952283993703692192975446730147482698740019355858033255111900987931453044498633858558920969406863621195559353567004324228333917623077282770247253870585115590367058497577436866491133869355993988283781317954632928797810225996658012068391703407100584100221894740642310210359000065696025318996024663430387588464850908655319752581228704562085266460998467964817148362000575703760862722285604953517491044500266866221378781655153792359067799063963741330740426870581582958397477880023767752941614493520950600137372782821552142901483464534363591874663374562005277900278585769722420507300763471890921938821897852262498442141821205302730743431644302604931204390824625416948633518042721685432723324890396741772991822187947634617261122333424923935348639669715924319740528446153619472547441269299905815913327286681472115449422425946699469454216885763336817380972891032522399453893546637876694464635844815258880027509295296387898349985891145905486196321468091136310652343006961768314160868324114475564329617606518260038443491131571549932928678680253422272353457209193305792022256097346333281065883236948808657376902832508623995376867012506993070957993832249140904745937938690210895396730630148401134071708310252994054322819355536550168074216934620188844464638633230109390776893666998316613672122068941259699658210558783792826522103571619918863263022808968186560297417751698923136136855777667009948334682672011236321010319843726515627476987201609425576419712960948172984743791775554005197374891760119786565532669564171391575783942396290632661123624363404661522619466703663619334230226432231740996920254109964595826805286534641909331058176907161223269028834601925244581045482240926144294752916714247294483284022966880895889859306688750437556481806046155110737168204775766953589665413509751569941141291777134702284415772271108530591202382847448169768638017404194217832177516437171619344288731068046066557648546073339677249472803887058531936327879751352108915411979532456998123993700176709167293989280647490595253424439043702740982563053393670537795951101573921783266799507330584472483573956490986963914162889175178407143746177423953119412428941540114567923558400853482073734222194344832995868279978744470006345014944480027410918968196026752412871461933516750505776442712443731985397943332347763151463905746067436102373634553200192493498139094638209702805132964077571704780277005740049900846891650004637976113765538431484314962544104128315437604658234403816158742627267382243401868741145105663500644008341794776881732592232621246263264098123784925593675007552539046510672002853316529199587669189787470835457061319802617967515164909572201586254783417721861949964745657895615269508593812860253482298062252665355273756831934912225873152811206018645117775582532301589148603211547481804885030565785061595134038470185711091799657026541052147481539536204956326441128148832881562109046584572974018761939460981185409586610197597178788653089572854682366565779140978593971324417370200226379795432983217961827279774948493592539595566226592637378713514646548960665467327058966509234516820587609691312340390213627616514464037859029147672595594935744249085837337605024342143647511820790949403802756779554899306001996698858128862309480345727516364219939353903844661949390126545934247358199627945530262026165623648277622155674982965681106057648690479284852730037497977952438871532073051827005271869621029860996260668216538362880466171411362684737547628558821432035521769515840710316956499510885899937933938723847278585176398959238132917506138017889930435552056441964865212116842839921945376005024128720168372781613051894027121931827775719065685409500666834223650753093531411152034441482877695286300972849370924642313101553065181672520043685445006058631983259296160020268119285706013804700407377570817024884128636966721071180220996778021715366406504618116952423982471136088259912359250094117226554203696979891422102332777685045999010843521620236903220876075812104212509065846765958775044061512999490057747818775615304602864932345114093992808598669174375737886270718571251278472854181845636195618216492391465827719533952565694223619464571171664561791827744310620137065136899486233380772906843064466783477429975083688494644672467300505087093716213736790334932880380610540954987921784619023396527759775739887835758272433524688179619021453640989640002918061307983927769141974832682236636058271152745009411920716981122293233521339611496321998822510557389925733560051474359643199223098607752356184046364174074816007227434834609061351611283263227692553655419638869334799369433934037648427836912964754817906094552223988943182753753874392094527746439212546773816937639739079136649601098229706286600332850478756745104653904683020966178802816000809697219435338515299699091156256279778451415684012514184447915975338329812523919434531431324003943837607872186688498126342813797220996376509233617117735892634609062903280271533635061093825600058351909483810752684252842519987935961798369959105752828924201065822574396811881682406190751696515351017266422900779860240622100548100203506574698284520811531089913176736757107494574291152531011840677573902847314352170267944014663073194708702639683845567436195471825141108511605964131680424628206668364393842721873173651067263440041901879253180196357777502347139867427677558436081723677744451305689780064544840954501478383403494656112181039566534327154430676219066316098885738215566980870411532231808887679542019955156633247573403344971820294226197006522082673311371462138917372615002203720988959011091952231071861476821140823196777880407261966524594691696682733907358020569195866263002867700826678338518844828178066315587934087673575618976199255171501604072242609738808257554749632104890438972489348061660532409584752441890973708433416478889869274808032107324961065792503688394262163647663115513639736553736257018680352109130757877906414504152310139402689551306701957224220992252229926045112321017414369668488610601282054569346364693489047739546780560407487651445239523027260629114170908931141584579830779941000241209646948972283728057558983188200616004103213343526201203512996000453569015685142061011630303426126771207238483296474926057124842218666242194162209352273089221445743674277075897298130141860468650212791985204499962075393960993747874143513375435160453309820463915655990751749133860513304635600062442664161401566970379181503060424378288390918339413997118048248992855677091504509431417102713152014829919909309404612925774474215216097129399078862066260976315143575433224050425547870564224043100451092836439430944955303277649022377110067626139322074930670787960179065474959803725364662457428098876075742987197363437058998509852370005086953900965875429687768089639506115897572768002459723000509652163738308562848036364925130203669995491281914443411297110644002509483461235412500007835534407083809677401519834755977133199996220089239808646890755132604938848628184531432939082669268722866289778445640367180540574134433047067787284427022313702833581538103562452749675701102612476001763823433818927301991144964561184264325170695092593422636188990472128662313952989828187786127978848914190653497045935858518220253327847678354786556742428879553157918107414027421347234995284421751970010143999744213917884483146608129169977833204078618360270093145398048461427094064311006240902887060122528836113952768898972728408424967250826531860183364129981821790017120846350449384876846313191586290059378498483766975202021547851337272742002158513974774590978235414308141927804828519185035725634679328397513085889332151505119315926080112412006942191892085661905988051417056620451178082349735158409784761233271272657720991800392073531295802882925322306333934525598772898844151879082038292708311312953694553741137718219768650146505723730926583597820829833607501265913106144538639518040174690599907403119170093653751850408231493750804122266126021623850549273744451010696721275548705128238412408098944565978685264076940903115703485027965051628770219772859857712827454648134612255781709805183670298613453879462860810333048370800024238506427810127240563467606867556953346617196594410917283864010888955483883501137529828117359163384062888006030620984924893515425112161013624500764314670213529075545004533748362141635866805707677545400574926272229069115483752446276741620050329824541655112810998953408398411015491086839741611193498091579128140127708775249337707347797107723633438049193025447816118443356360037821106098865250151720414237375703989857759568433071825585019712360055081723153486606687552661616692593952214157827301986174370980732207725605051162130675744803984155346463440475136625909584191584180064702073431217408824567373146665676316485727527036493068487325861948877965179866233007927312564163761321886549985185753064402538341604943441083134764755864631653754300171861719401998326665238742860095584602425552488123317415673851080443970032333810191286436620094867614439374176871153715581194540216113648243137512699151020347278275602440760964412123740185069036267136195995417781497023490186069175574983202933061369378397543253144284118791860495123841878650366769917284465340425145275746743159875511943581083551434021258447635706247040993135196326638443726285707610434586195762421581002268575408471900788731318848494349329737707797523292243117219999293263269557836440317912124546368091981614701634473681662553847401357033031431111191001811817521183556994610312007377985599530602973468483517461798640844640274989972676562618694120390010355387658032904244084051921106743864876021607471026315799247589511366898342563155756009458156288448596109287744491653245722209155640497447173028071582584783582803114724621012904856329501540552970365287162880129799927705710482092966753440870301692498779015515303487405603827817055673318256561517712405206869649730791290581829291814096183105240880357165284530135786787090973011872824239163777206518994518814036758409857717256846803333384240160770890697792411855592644750707214031335902377001775696105314771889333559844533218218489916153077278712413573126690249504944709512509552542522442238786690899645473181753526140579859438321714412630565031299573833782301372236664816647784467733458874596416367344137697637814293616330142168108020166841801263907881774104479269817533239202790927659681651460330754929492828312149299501534632891463913268631148140674884755831009674420333629659795271325621800475519062338758420937950954946140524940405804479650648698781312652367542283929535515971410060724778791528704410483455885883728992580866943180949139036839270110265876810840742358500800340900410209206943595018533135469281987663530894823723429430874767539336401066565696670935015255804359586305493329983438454537173875701490783174581923962089212490125616827569719546148018663130691980179362584537543336602986382000022705566092298952017505700192822261449713015740346437255656839854765078240179989726136093958177417899958078297030594791922119318640121609038649802911530081718644712102863186300986469765970693458259773705860211973717677408161289395341888807467877406255126314787344221798771394795444483696952148352458013586309815399703079326706291151600129624144863420017255723232005989679891827025708185938550246804845429639694835602962711262755145335279661216357547691983154514402791935882051219403045203563940653442631806652912720614294892274007976023097131808418333151378101178364586608442027662512164385105737490666998409764691416412030495097214169566092099724388028401667512276940952886278232118274791816520283446208695901079997462549393948806679006103883260292954858825525611870458587894528972063327192596706303866893599476266608372697110330439907527191878379572326382839188871794861251406722723818959956544427063741007751611563844116443752346052713588445814226099453516603890552627816078318067811873715866067303989009840390823591652460573782203524572807676422824193257007735722026453104997182766201965467905375898599838335905651931368538127503581554533035491835722052251716059928601967493243001959938195686735469053281538084237647924899197765515447968606171414982583385282326165463588211042528779303653882589531421674883327557446639504461294465134566174149055738603632716305222697935009751407250541821498828657578287096665756677954696598338008929572234204131485772921851252215735616440013556498961337870719577770114213473594094610479038670886260754178024174129350388786692002000761348592009572538479825986032890230832577505481203949096101797362131755481441100522374386034576288673307039751600690181217025959543674669197065756073742909578075186199219588139250323735744990064216128024607925528598393159839675425757623700089395664662059792507441654978148766392693036593227534712077257576951344126771391671517840068754908728774694734600149035370407827585420176445298819572555105388050157720262609887605520962481835737639763214146955208722028687991944741799533273413648115401589596207743202009290194829710583659967590110786209854637881486299313005707120259640805414353327317185289841747636765195750019557027620326102125132652058967051138280948952768509487902036260483124407359171522739503149170171134506018422637953089329439421289317620796737747668993811953088165682610868666719787668875556034476184448780485793291054035011763885380463440873888986078601549080264525970260063147579253876683064908208484227206420545851864239508171494838949341943774698171824293203699799349757212719470936042592516758043668070939764066396132931389623614036515923940829283213640594258217124001953302524618858709140780810535515412845240637503564049029685867674925717720822063211790304039547142238030739043147638764087677239813322907976658153192094688993751480426353343581392144280107632078823767006661675226145296316373897483307896767971553739743289222043858833379643024550925726800289338515087776619482563934741636888581572972786926242715158275140515561109784822577512698844017697702981302609382003947409873715725224857617932035585958450851076376523842271030843821071636146533624011724769826173059913001102660774420367488939053492271761297274133703369242265802093918754438143519220140477770382551012998419809633520902827487537147795799219822304117001258403870951237233845724646346240159682555618735195897804459594394626306300956435341537944206621147040393385615408239638628133740986435886402737511819486073004702304477551884759238583131292884888025065357624325040500907526118214453631259082665268864463572866805834705682449758284373088641523453426087858168794401753567180239481570580082090873556377435312006272138504088387752224019700196027646699231596655072026469015601060176627886327302612338895248795314872430287810540385680733513344155482423201451694995673171094306847993362630182886117171547928433161100472877723130263280491310336341692690435563675466901363993576799640548002144966680763697270036935247531152598665023350713040077552719777725688225357212271422270408022666738586194782605474735584656739563475665866671586144736797095565431844549468292677649812466314045508710632670180237104862537310248086117477177987237254533705035405760713766718331253722336867050558672802009694860303790970834474527427593608367125396540639038451117062278990027595303020685252732282554830897218813298013353823164797955850212058562204731634392701555453209806626318732142768657175540685733652031535349319074872207937826518409009336479231028832843236254079963759476845787735983290501444760304802755275902624450090964230391162854907197138013397886656986594507219540331382197598247599907169839309031588640698777451088720732520211338522101468971291014694105276608634139295572333838325732949098478649356658246102088064429175907086878518508919608068151271428642974789740480398784301128710666738641506448016206512228149642716871442594938864243142343883789765945372860073573507054663871521925382812163459065712077244903516303726161271368356115251214884052824954456877812211396873277667210834311428106146049817960617607782543747715810016824866803650712496619378882048520023503368756750197277127310506557798393932496039656338350581867725260561923810434431287020432364590641511518125721521928293613882052605900895290164921208165614097019943166997398349715316108645992956908569271831215148398174653956428422822634669173048672157815683418185681678723482072956440792873880916249472162806419198434466343560950123196169477804447416666580245637478433258900540149057023911151653437692360650575114155011766308848197255790603724670766808302421062682037402237350936534889197467708690152514084110816545529409949039379566758478127792254408120076954200719595524375296800238396343138929082760777269209372477730484777517621769181416088837950176295216363173057953579860343583365579725614108064651797699956734698960269296925784332693759704647616512437856667161091776295148812434079470611160430840018967845183662839144588899163914543140099847035900688674986608080541704334444161794816048616287224487880934635587576570371115256921510741925280919979527306389583000503914181060232514104999757078363152787417842123268816459391096427377133664986827859706199652490522797877795377761870403561141516334951831202792384334222776910210209151219111662778753178355105333515891142698326618015572461975695881833331774292670737905218140302596649928034097310907120606728420650003592698994521721783045887051845460041700827229452470870656954161653608544631665353873157242854860267864223333890177154200367572192335209058839730530867608710927042094387749778247636996177811810185757810867586007045908732153156715085626820780274308037139410763425446147175732652250976413925543159360227264896240965815705762807593707424088047332511921663229016081549805968528528205903119253308400654082159362692735185675413363991579515558312323685651355096520583860634000146954028402466771361408302594417348973928593761516507929047667816718022912128132668180145811655184098334459307825932030194586605326363488166232652122101621920936812406280085048105648409142428666905188130694278226034113581059772774669724870565825647064031078239570774847915058084402258462011002839387314866950925382187360060925446018932040410049089530554294724238878957331391679384223750975634450238459142142705612104857149338684881563160951221879607749895150595494236921788201529239978256509926926371594837593282047332500483310600344116799048247418544291108851889254605742475938598505671478020928238881804973756037954235076337031315611776855184922615855809264393709100751759464179627138696076331432571110480078869611579328811005681630909443976884031853888253589779355146440229281032166649750298832258517612279141009180932532193020372158496780949062898898487408016347546412222099040254052001441473664706708514286979609903348366388124118750243947482256666309375874523143799006920808834074236685829217972000628655578448300468594656511929649570400367086560623593425802617056718983957474107425163126807981154989592766323327653162083062961260421760066644550413650451428263343354428999815981875854186856483005762484546278822277661546320611171848002721283600692627267805900207967797963129446698496316373887244208484030229983303522799073063790195851614528919632416389144812855111334652768583428284246027243190735564680758080051077356032980700505630890498758054313913010052519047369104628735244646468189534425464796699432519919549922953542577478379573026980388792110711341806048171227519330470144624712719544415081955523294946369940808196608633406819009935307768331980901544463057114280953340950445982434724673652467964895175650600694750056367587546217738852399639384322819564782174655924905853690117580295468079600848693616491801863920715026488188364153403755002178946968314523725825431984398256814593734086236223306323539969421099571972200121849300630606305109902475322726285456643785677474879100346191055796139457692035595373858827336113572202089117057108364019183261290983262930832284187107169100021515400082123039328045333055780845210683867455835544317954014736225649180366025611934844334579081250362999159902244687976703389347754367980747264049064683770380609733615605808102228127447349438131162733840258341243812170548885247326533527254460636645016709288914499987761922582057480175281216567441066038250936404142088717860979375910961386715804666866055461669444122919876787695609676061055909870621634697796695190354709090512585703962454243598225381318097770316732594937817663204871090165192436004813019741046264902566975484548486842957424928238222537815989566487593420763213439386370273210516760956251138469916744920470400698921553016394008946832143013435121479598258035369734883006551571423531988171446475002829408831299214378899821813487513695395204108881766643473525223790076602385128503882959233484963062088499723578782505342610497142790704259461094402299183514622236767456364291863193310187372156225101042037835745345740305523023752474725331700216128375653892635080692992231772792666642756526879973427694683325647689578404757186063014983191402698729140895229907281286439516165473860350871583995330811048348094179544117137692680426361734337526275455951922805506721070762945023256144198730457145952115849683765187607176895717682697196274537911768557462086097966525271814440901181216410595630660345600968311100766967439614240165063227653243138092782143008153532670646744161294441105736549571316894646823684416539848896789100581001144500310949826691017293906376635845255490837076661252846203034993772819619234634980481494834215427545109816593263303493653475309843986471364691155887803027146471096932675031800340231905316111131462253770919991088729369510957611643668652715655936729646708221452374197699215951541337977041748955752297077134295066468330371554776122495940878360017747803552702966956318957221309158688610095494363546271182768083259683161496321595966107043255693913221034265039726946103445682107108840981649271531781038521357712963037752344002182471138019251787904782770913311747667560675138096817686194585754556429157279907571636820660877656323942606950176583933657682930746213025242818938683766850978422182728740166287950626830955199486320611707216620424775168524225413971416049990717284536190620668481645957937729083470747726778406892275530562247812043365651846409852898707324516563537525351809161279928256559882412985777402623383639449123614831975798190465953264626317529442357315617562523705178829505111605270237383831778813815968499707900867824875548490149167938888042444017361378133017897301459186034947222719710099486246298859578390550167510696981172481790402787761524524272642967787104841894487164509648230279290942352643390777725813471255407770586489252673941544441920940763693128956858576344788975330131837690163758002143901822629197142872904721636262580126681329553676211575237274226264135713952259394695622680086062333915777317464379600671280809000956721627415045333685843565714969410591580822614434968193678831062549990238068856574711551985491095820823192979634696751604932184159194272033663879238605085808825362097813497976181645900859700981626052166407604629467789759360983025383967772405878824972074600929503875740842393150711684199865262024714033093224089091824856676909257490127219976860010359197812769715199385838465581065268722226977657130704508617463708221073538395093714365337438179380412732396288880029991767672919704620960149360520770146169606064885691966313940058206013930522640740008860706336080309515958757406673220490958977131480845944657462439821536496537527858016915482139190299890241232062127214165821131594688043285962620185146365072906175423889890591327094828917057856808382132019493517205120245214504940050143909674939938767096503743713751753839065493352221128265338410273197661591228863447755524143502998381588997949684481667904937560548516682072000597851918366280292361984156081271538008566162280805483761900487762925091168462910781664453127490198928757961229399472407959414071101167637105135518938589062620551194232125961366015264736992169088188084626333911739444246751485447514823878181292651166474243297083705768476264201198637819374112056932069831442516695768133633176200717924663311576533466871015597551922614894154718130716158363977198346951175321526305745452309248764545532895647117379647223009067509678870521571309801837461469731919258449840935533042738915593559900719786856067085118048062005123192961861817721727219975906101915372920438609564558309550242207256530373178271605758129451436910223584809369698079863749565337097101050192290449047026186879987311176711664925752060691922212401816793639579508703329325400275923692131104671636241538764709980776918115795153186297268033383522355320113548446750368989424858167582821063109364824282019356435666947961844165536992714571158975574964696217450872097279930214253114046740033269512865778920564521918476218902594646445901322143583534180271895322629202668290077375071925690344987505406041715703216477812779208040159381542737910855716593915307355466613851078328363677862350061113995168895919475636867535408057814445429499777703708206944568664440084424020279535621655176829171434593730613616647748737228203258447621322410281821908334282233082225370717527448086910374788483270413455307890544123336492040218264222367269039139490137525361357242698928408783885153722288482143660846169615160078846537394508984693638691076737029048085308255207057673368964570884934981554407354385939600735597149904685501732741574477748563456381182385628861104304726171835115298127990901685838254317410757320071476384200756716706511345885609277963082031999596254968705641279094007971533346409417610643043637942897269476311022035484856877752322686669538575729981114350238420156486087135637522659773111885152174352097416577150409290719891295778712085976381885837748495182698731535141714938538081155329766150833846052193088802639224935092061196119568798631673387825870822647184543231523677937056738185324304946926232110751711482024859956190615279553414498807588696283035731506224317364058512785540953269765071425449760487565759159385030027236227076304255152243943258097392587073606498606675295675528429418335661763673052314188171579381089656359667223555479523519939977670424404493152771887137158805059734286748723795118549786298247425908106283308484797865276738250168169265100992219803373914685996087675947304589699495062424332006225966405478887895227435130739235097061477302648133808739871765974992527052443588732381631776787546068280500901462379056003254424895109391181698910253177730549768142732973212681343215000421235667060847380442106074662504404232624824538057430766509876392340581319747466004429077815174307908755401712614652244456333041641308291997237992607343917951616028698666856425210992575450779665492402990129330642933303648076870014406520322542089915937204265691227505534244171682695250165503855076290461680401326021392934018941530005382718800095443482089203276359325861063419583876851563841449553282306820348346116670713227414600781465046875836483668273347976033475335314190632273335978300628201958634395716173344986391394043890262500611896036468484381551709827361146021916430742901303390684244766786879860547081166991057401093075270693627901846782962485136384193410993655977725300033213717387944555486006055974591013468088341461781977784763647484043705409147345941758039236693978240796724994292411163676080222189235785729304376637651501157069047094190338910684220704446145213326181688439252324870963162956982336901914325125073745560587654048456402661215626305024561900824785370467489753881961617573213640301779258474110200782469515206685895191417243444204168347685748349353315888684821063373749047863633447079893284423350994526736471276312707022833778009280289942341038680949018997506825385832761280158911539143234913702485009957274982643430568293670221269685365184259163646156128699402904617924468512675181296343104142649615093213862207058400143663824672301303210321136806186431912401375464676578416326004341011571858201059891172646243880732484567339715828562466636879651517044815931582037338962918067095106661089024160108170800571856045432492385635531254873495468659136747428040042534384568517090928156353854912006906823600671284812765687705438918641970553167274024654894333352975166592621749593086922705879170851398605885539317173942830990372930046376768897479475962998476609809236678313066140210127173460573776778418409450601555439437161558180930698785030759775130655144242237110512962893729770906709193609104507335659483440001125394123557047594485058862978342452594464739949457641748591243896440171319257240261615271277660694994347599034445531999484777444302562497068524150596336453690810806215381316885405256993825046131472040212023277555911548100898150503928709314803952818472806489427008362363523173313840727594181544987167842238102713351503361207620696939041644607081445615969984673960564520926280283804038702431757799736622639732741963814564820598023596557592930572581666946234641510303480476511376949725259422220371175345182873595887612092695323600235758033199071318216582992557495554499171199700570584417287361900151055516523362537967769080059810747437609248817134442988778881909445635324162503511722883979833614137628680980242062461677598888107832866491477958766208590574736014133607156952838234929820011025808288815742550029609831169921660235416378101322739837921528567960993354162779967234886650108289537312158694029814935133549287199386114420752970038142559353939845152086463464954008598206068481727696787742002359645923739911481852806463676468124229393051595308768636675161261167185520972100988703531994456830248489097752191584144611042902229705163650404761155934940487982223498786455230106240054204311199601060506341622671169885438600054791614915863203797876347182424546568838309833386308569463468412038982975015506529984225141484974545864950658764551501919190910647527531256089211531213811924331929395545558298734586594824073622437356855689770743163427108717804384463245551373872305468663911396755239076530905434506550126488389333013291826352889870248802508620999328472047793708502654544049631086872632091752325574339444317896918219751590513659350485593027073881551932281444527943520807009464734713719053959258662069159718877149596989042392668122963330539678923475818777328527067692118941463857893010291682138224599940552040191552628083735491043930623395374190254034321937288459885968898655289056148992086786180404748985241100399113116059611734304215452174954920629229960841070949696934454238062248289772822505323925639083326677848960205432711467435029953088514164814621525315725483716655993053331530880592597140351994854510088729593366859271562023134852846360466747222677418440504334182986712889640170719310627557495322522576703067512012038674369476024215987331425838338122739099681818421382643301140032778494694139989034387645589712854801324549536067084111713308323368787986891947654483379577495193626617038454604856133020355704377464237725019821135449842713084161952989858298012753174822564313541901128517319481277356360034089840219947896485026288017542878829503046999273091925799175778264074872199487417515626808940074667042493131029251301214525549151947333901501329855375314967631456219481635227000320437595375468415735230237926911092972199867665217363795394923752878914808694151681112948232226435520888744149425637485862888290326834042657421790678604334461534440689043082165409561126992175015878654560851759368587004428970849180802785940648812903935043292218309321392255388509033058025108952275296986774824297914154976758673430681546991468474481665249431339209913341358471352608060320781915426920725314858799178417731740644546126189217806686925601997568732146181180720924842959241678038573905452249161471923423211076819864341030524008267680466378547616800616103650597344047729411538049754642504197953222116597122636053433587636722368235443376619542255989760867163751092911428819042379340691777835442654460773556451760747510016878099358166729241642704999541359292688226194533904984682917990255528272463305191081315664506657330478108265524026565295917357922422826146580677068228408045323074435499954184756907075638961385672340120157975685403682088594198066130432349863636365738646631221207518806535970277619747986071209554830669332073697263042604812020414330455430291711623119854441646020992548705314136402992433216672912074841640740725639664469081413297071557351017397880042748114606574954100827356772503818229817439645894346486673433507001675346728367882581479208271136275535416763931586770648832797253576800771975772747073173058318021544003354482733629205283807329692328231398256579897329074700398626570271012266822084776649539328319999694885213435677977075529965549462676096799454066661221237354212426005017028745201904527202037665690227031752490555158952181726946525514954054299003038622092123439961227387863622577889935264955393500844873083587467258563250996773831663095165369517227480108096992960843568664643737714149117739865889222692118427563251020102044421585129830493755233806125707587875517283521676427435463198915745183083834562525413722044372466756908746557724005986424552897970639745422143575918026966289174347021208706682438307109684860076232719569187779077932656054308201264160058037465262222751186319531723531720752306725157489262171826384223167855399397003421206665654118591472566289176528080209459126349822673362819582049403036222906671983844344172437300731745950329059640549750764019301830834865042297725922316838970575607805600672426539950262586791455015091639427810025132138775488296226257494410401131251818534780670038926768814126326588025836953485327904865930385968204404514990806475113759535759471274755446426728534133504529695369554750571091859265933747548292728336501152119974664860506046398681554142358238994168826769007362659104452340450629816340732156951202699638529496722177574782973787343228239651536033724100157105121204326328317283718640770505659721600304771249160590404752248380829009999977637628027511765826955305459487112905161539845382176205618723066451966015803036387945356042320012259854598842562883133446528456196327153211908598151258461338321773495580740642298089568072067610514088357081070875830652029272175884715311473924046196430446879858413161859295108892107618444429991718797008604687196014401910343287154162121636422058004317829060986041644150393449531521567868707221758059223869513680696948693871183404126742671870247068967529169963047152127874275398736347485109284063305986108972311331064123339105937613360708050937514428677362196430018937738641953620503612304839894580897976153132356613323862527613976448798063934218189204177701721957153960094614805306291649350519575047229328988723440835510869426194535106295103210841135110355238910156142761761224436310055945538906590845256401070451567730664767037591676886099465265562179047456577789446570982755865807084763868128531456268829728169332566651996026001401710049155741962569047543463860051351039772537994889886038281123328109472898627645573085969257037851749247280380481385552620013209322904122309383095634975379942175414825943257496000512176774962408920474423334096104741268017909962825805677336899157026385978415460939227739889162891418997952246618770308640830869386316043759102785436683456460283834399432247026565203717405539256143548767692948296972451444174784515621559955464524621340338588557686930785540272965154895764804381832821397414396079564613500579671172446423789972493374918317609865108681468416311752881154487048707550762370280453525360878431958608073715567757156968582916861441720869195734549449243018651022395477705687885477421451772522024086084674725954533231790512899925990812276472385669488403194586872416931365892013864204502200185254392017915846448990053274012163322303040850208304256755944482471691521669165443895638500087159588071570720833473526269623488962082496653071963831379935291150472493222522233162651051490098099068906260562551372394833252490859958785760530127526669016676075452203902371394577071620639475589358217505596766166156038410989792817805020432078232980907443298670582168754869036826583838402714296173285327110421510661222377752682128108434488884804815180204375835816966037349426389974365407754595998550461016675582919896734041914160135332517968576932158875504968364163874354163931077724493073496689194035984026971951100758561665228660205430845193782872788908906002000525385692069662945452692626941458853279823583203568172684958774979306069464457983703816847216939942960847667813389487404006927236851988807409142967124869183112034375578735001701720121330101692773367271195293147102440567735913250844369209162781775278974493289378828706726602289612992765960671933713832554181923288562227796857040086606428159187283692630921052238173669357097707744680082027139968561313653333291751061282949312787543263659038928409408937518152899576174286040990406527154626961673909765652370285120336986458454533575593191640828317066994647282094481799873436509731300370883206136429561139399531733470877949570673678049162284500504727777434867136546888284066802263053993727612267676001134607705273695963373217097852243596881942278788997286775629796933985445456681214032245428877075952742532249997511460129793859796532626859773502819587429532075997116843510874761514396266100674316950118036087297505459741385887133480500149143476299746682356347637097042460539373901589570121538909792075825820019344640828737272656324625786456396732206616391099966705355717456707156782006557258657610835165317545179760342559064773515987517750815715093383166866299451803632526107493572522384863851413475517140389042391095598723031710999300289904059435418397043869522493318715724811050596225800726086637621072440852191905148115557960942676937286374547574472771910766710386174092268027779950987244518549219444277915957991891441760523508466153867156051305015402159392783557696243130949094823431747466883334927692051593375907085904538304728777559011264931705811116784029327330235060151852639483046955781598428520194333739602368780366823872668631519820566094137676055431845713463669478001263422390159053347963223253363793284013377027955273370594691362128295036652741094571662096383662658704408193781531010182539057245378874433750739341033094934624738134688313925472370831096744551810732756842342704953094017045761745849722624954933949210022043865829094764737290842314638422308180614643780209407616560822965865988853032314482585326958769523529052943804095698193575728962721239736555793465313584347091735053496766210539675543788336154582710218081211480974629849436201345618531040796291898563784544228727116663532160376570023439174071237182811387571624577847667557616711099720309547961807997414498028712285500971102146661593784945894983508319050758105498980548329615521043822555414425574248988087474844420185688213637711296549416543467140293426989966838577566793751963177615060430879576783562633652599870127004604587445029001397745873108855216611662844708651305095478601698992857513849642438420518629041258145548929815477638075305141178912459974038618651399436653455830949060238522718625819318917003777906650754718436517535792588363784775048141604117778360055205614297441555983590890882465873526339952676759303673919006462716132344425758829248045538616196657199194214232932488895633486997640793703239519148401050241300955518078774849953033091400807265794615447953919685507827304837583850305633383402495590317230028239480706569506354091024788761469024091440535379499857218371611261841937919135533313305252653483064323893424252971567144583626379621249832187876230457326785433437422739822162482804074071209544091516241924284756086779001902096990465172669854687044918958882782197020900545962420997562852965158064611285040782356733580969294512820189098511999122198498187675805766806648110732438491127094651062041550844386112983067888588649417543221097656782345741534555314665193437617210707678757466729532196770518402216774593422620428756641796834668720660666542288755861093455861039538043017265481940366618948683766298951655766877298584223647543502006033707915763328488690160481243111186683337691753264921399262884125868317774088212728592555394116183168955288501014907531397161340107493716844735696960158986992584578597459016808581020332354898966735485785723281600065719313731790464151420009375479149230906987173640587810274518795892452329361204249954266891740776280036749544236175337270148779592453212643334419378773436094738922664052888965375024906392889494748102785407487857646053802175710355695362090614255428932724801162878804437318996057927370876139310598450021939464672491959190943388621581257910998903167028136710350356876623662624882925642533944622273134291189223251471802374423468644946530578030325728678987930612305485093914065110600037675222304218410678613638800423021540939688534460233129939867852084637051375940001053869346694882533314513658769843805875426297293132307080433610374348944885283430912820217756544016620528096815306633885509880446560522988229441604181000635937071682860055746684625463569254845722523805904012334956966652170759903493916452223430721000898703226805414142376964434048653932590800014194114272372439614800533821215420487123882278080904117532885922873164917901618369728290331904322860773092911309094120673806578374811476952710952077039842055136456667668814545688931133798282360565359921194928754859716781963889349182841629861013526224814025933756488364634020894084660591216275750561388254247132397447921817964529594354490992036114525366660029660929495780525732628210705942836569442811402084132668030631517662082742065949652720673052892315641918582213745885987312099341368832686138928235407154800423493965410622981122389956211739046401382957861106123074805145301901240390673760988203798077358641888414583131304496107159839027594861098822962696488345988297883668925315444051754014591680585509908414349470357344777276981232480756739229097262966473063359939389219187404056956632990375766277082309861989527563595594432987953962928856166452507742179027358393877768083326721778816632043911510523512181456615796954015894641258599589306354388274214575054969755967337172446471125673973110572816943446611799134367712829398530958351855288115359465261069367564536616636071739106020560805486319734257987951455535740825702377633094199449634697553146980603204225824380963980851321360280829037881472588211164721222284780731833393980175075503433933161875468059611200450918179047059560046557704699663343153182559682735566962308681520841802059317651633565777707394283024609424790850679981475913348074849002227012723456506812517960870267994450074958122229370323953310468930220152764563682412676809596927479052891621026740919518603340404060789076714016778840162419797849456938526472015149319695070323667885796547415763570027495946137788833069370130346013597646547359957675574512217159254469996809558829229812817166931381889628200200581441858026368219592239536194369890087732837514964884027722762110114387056052468254325628947645741845236340798475748021025801435661620133107215074790676058817509721743425100738978921634891871582952780969491083015769838616533050487773388467227008017459362294932786166514871938370814275118507060626444081949696714312523442806193659354076891226610871767216303674487468752467201541370831555577941753788062609917692262717488625126267368843388314961207313330198575475986074518137120360842553247690886848560581531987119026730483420842317865047686446175400813365030742883749432807012643798558467386355984614676694958527291495554634732428851689621216913678656148546801703406636008791848799084568831764139734132785166751154448180121202419949939454246215070412346748644661202297178527084817337108991354110428856749314941726447041161573104606273385071949851727791395638413298009711171094979259928963618398994084623708634151402891851983812425642634379268814401462999782434094125665391140309581073370348407682854053967049175234211107679584614491588725121584033584286886589971379847519394562158291814039592899606221178533423149420205537722125029391447641594037094238626889384764822431622536596078966887518225673986631803637667752556977614766869161885244738748637945720388279969669282700061415616051903851816159423676254088385128829564350492961273540157941533399232105418177046906063438754711442139901062586937710859960336433699723975668499294191867413024892764590849636710994697409507135363222145303655393391481441628785082860230324070930890721317013485763477361600900785407339766959768003053929275558339230413368810416247981508723371946364246349895405200402637669538646934068804106059097493043741439498632125224438269255329188984562236821455837857723837335443381187328487319854870328561644708264081174482064935405091263518820910511702838012570671013393719583551941826009167681915785841150062669527490477292667520577946546935954768408627701419425647169796428142302724157864909305603452075117520424501735274149698102594508393286174147866440278889856144308259902781418533263472244483055909818752279690142169702947484192422444129304640902690277212811749464002598512753710811953373979030705969654132310323424712641711604931959343323624379574874682882787293624594908964120149265604540800942454262329744531572788160806135714067011258311008498454538223430023210419648997558173612287311642791602708903619379286933350261603971532012494904627063822449167949261481400733347728212813277012186693677938863227105721750258410963606042102820369031422339364890466813345549931202125485416425511479866520732236013483787571050396230561828804917495428384605330199559758225872343722053533577565638867129927230941503454062428801264257713438805756550669900664477735248473234273034211488442731923426382850695885192013924380701122600646949062094666126977489599762143205807615699102911908535561533689438255019664039712537735108427594547494842159093775715024354443954941407655741029415459095759326616554463273972323860394709736901552120874948101313803394814337933844328919619245954559304592180083617986123513473690043060727227546746329882540721997976207871865003134687797865614424721446249260850724353565927551447336291325656339713445079866468518416348296764680533730790697068611899754066552863702337809496727007204051806013270685385100906459883854873612640944274010992623684459787325213727825243895850708927282096753213656503383974189028562347819771146300657925854305949575450614636846478726788275695447816672065974056046432047612548303301488281415206857420765411884763372805101193972417668709319722119573593608166861549186747098577518828437690639337751578755442899212505435376511400928586387837903456463230910903449620078119852629630690745487192011560359309951072183207406762350559485679033931795214579036577368948120421198655725529602333765076642329225575055749393802756484685635034194569457797466712673487200922644279459520252888762146106452706498670496114502638452309437722148498929270776405533409458700689078170828468891772805597532441887337480439822244114162760769759845381815206655450491048141641754138114590451697051516198798702421967394667920662838226283096591855680744613620607321577874890801182231417551729034157338567881219290262898122875222197872730629921815901213235996571416414806771447847776516626496057070544860952361172153519206975976914662378156391325715428936757987683802137704212868694887711988214970887030406863521908769702273102577476798467544876031492825981441891773915842544633849957602544174247915620008482276022033513274231062142609904645830144042380880670489817556412005290030273867313569918067290830045883520822576867630498814910669755960000815668514288901561128099609213234144593167110762794791345438518338707121860852604615326738462264682298524154672340127475364359705270769136557129967962614631413180697738713074510967686656315618827595777557224492781728109288540596834791084199124150339100035543859809881894328008452736373549402052768442976447637837292482989294682694667094327172248414030481081499924319846243054980106209816321945251344208980347104705548232565023523490207830803696704960960613786996823827006020373512448475493501512501500206287815046210705957625405081842325808090009110785982897119920787448969674451348361530192323061342773527490227610012173139884560405650345627974423313383338822591602369544851722601932621581294831388903925548621059019342443924247189131286120924518634008279230263000102030010605223182655607982468389265097707290100188175432463372265846876061051246875638536150680930385758096282145734981874031629270765715918409772477421225299981002585082799621727996598506532233566447571862558112622261741120732041204069783001973789698156273947765544338178485314038621883759589117690614575896708853740261556445269714585794661934261696431006626046557214930008040249022275307113233607332925459777388844440572996242420293484707539869074956334445424965720509791466294175474114327722431887682644930531000813495281309636925018775538634486073811533945626925913399487729753071426742597780801132997035336582695650927711701174157437256545780238466944159227207887875928631179348759269416037255532545648416369365110875262580037639257176539464082267554416269028428716653450866277747226889913970699276105564292293646424777913472349090388193593431158089519509025447843891211157640770909692774544340602043643484900319333173324336605573368002555202920030523285925832048287160358461232143610321105181929216033523311259806416570996055569171628968779882191330872733338099728886690828502261592683917362729733042915454121471583214587043749337242196101376371175337787979085638725507529018098600438193983947597729042324711610423611516045325443859143353499715718678395421146110671809331213458961568412267855671913951090929961564109475325629727365171226017097079741660448855900015903986918142144563431339627148929550203150594487930051637406018045887182423650630817915812776243642340057218571777801791612120209511985826598266556635660257044981575352353563403446750819002975116808428271489634215463461979929195779614801462029768342883401263454225170257017172771701022932970520948696658589617861548927536563556693624528391868088663687667768754103733970615950247395480945531184673583480815861486518435602939940423551526959700918653891341915427724257062515802235206824094111518957899426976343178300275938477439752470101301484058875050277950351427716372117097743634791426436014175663942140570889185648717062697790719113216393681331224422649937826173843931525894943510187791180590586783119795414589149938618097457259888249136658290582995345753756254069293611938670014919835317626033161212767230863552256283369932279885376807192849735277268450585246107573476834909290623223788263400394438309004211294046072588877358473789511705237882184705578563841629765961740990885104115981836596710406580046892743614045956687092821779179848677464739374499625117497669708084730356935322582448845420544657687581670467687903617419101896431777070573083600580330667806564546918537728965296638756199969463447047276575875013096850056768846645279035800316774813211754269278928847230915891607774636759614565455261135886471619628630397729888284044049119145937121885732490004920023601523138266284947670584296882956504619190579597083865223306583698705270881047624163151066750318320544336751279989155264990971314525931408250836594290881213008043604089700407197009758319763761362048363582166341733475945358915929008962344480064903641773605265704520697281657242412989037771879389505227070123206631631422384654637604346708096770570018377602362042167546180371497353620404692245828271434430025857747914976003063990514378747604095281665600643079903467538373048343646514773025692416699150002150844302863570217137518101430904491846894309277817198161466478336066060675395221483902665982481234355598856299105050205132918612801599660904784524158066392122392932367811779710856239267827389237570038312828720257434755222339355021778110477284155967380462260812432777153245030385910352116793350763124886148911170935745658473951326091514837966974475113030387520284801847896166966770547041902135048221991511412773649742312593378369844363536045461607032350582871108704587381658476867492241549486515458432079143842822325345873793143466870900874346511601080142516809284209570117903014947465363804898604600155197596745845150201100139376480699628957039517384296161119025732972989642368107886031201049823264224862391512940855492177601584461247525402180208208327542049633802201703315782219169974482773716157780302800306484167967594861776561109387444253850611564373502324299743136790231890481860051297231119407119372110243731529253993196122665273610238644968600081517811622961693452337610020774591206611949834730872216785768177738139778917628247465270536846480501091673621112574835578180927802919484127166622714151689614047890664183097771646479383315819808042063834877991712378211412309367600139896666453067710435214717241593550625723151590139169479429985545971985823672386323181983675475839669132082460496573970727683906118184890130330906595337370898401492916300490708013828636155356758019517462234913071866257982176278231592005931527287170444941411393861379215480514556076176552961474249478559922883626546611314305869423961783793856224079356068070715162616383437141610525225445014914862767682907440699794915686102483113604731198323935516702197110226413483705274787583223102387744021698918200983676986866384113234893455951223550197659740632972468916597066060507711604646917664408917910869285740685337295412293523702151395597574199207803795742794688395102021546605361212957698482002756883563948217702500491766670891709650708443368164373068522495351237336439949179836401707908522127785267633288657125255499827675845186981726018418157212984658791102519061215971387076354752883991422067882811971673465542308705174036356811075061306491655161069454692258269906983501571253142991595119311262135195584163062513938200523310479312926958394705744307501305959878406004283121048008719586252713949147249618757581445286261463121331290739275465736715122801619586916586319933287291948829071301515297089348768234346734074785144069711603655916735051868738978939648207136792077562639259324434091733681165680772085330546472628659083008867699996534025241613691856242901024215111649588379795551936295956535848898409851449004349888205739031033220068358441855545850239925179704563271449331172755854284527152117599294568409089351922577392275842242099078816588509655405774456358030844460863312659312804665521608011233428044801548821025169135511412969299348879053080442757377981553109895456201807421823659799564748954335620094950606356699784475319224579905062803982448496080148677672326668874075240580271520088672164476878399165908825103484221637331190736668482023407274347422234296923563686996549042973420696193317019816805764726272761441651959010960211704405055406526829812929335681044312606321409505165702369146121155856787372572290195086376140511081976001090582155758731910837720570521653330383719947526358999300742288951204810172488024485686582071250315261367176173400775313239262802958102829647039417937344229519985202161481672411971387404399738051718730871858842779493090585302447980691300464612768206294199229937966179741467171333674986481784463448480425928657746304814426532186957865961667236810198641330907187928171895813162656628221611136255870424123644184952187270134070498849272838289679479795828456494674220164100764881917597630924227287462020578592703490742310446048732953115002248048107044222839409789909020307028168975980854376823211826369737248590704146315616064325976722579806905385860288749169273821818580427055078602300306983232184351022642204343401712761235989754983570356477922475140837046120565616436144746322598707505187817330928581856910675194540946726300875584151766793380577912258039416815087752675624758976008371657067726449257803673041654529477096092352220227298531773078492628803063245078901139939331885923527019791523569939940909668392000181248829170469517990472290612753235462539648017326973840597848224012994162011606411856692254922213361838677074740180882061090418697539475800129486413873067692189909999013605724835773336603862556658091536447559313671474184806836009054135444602481033615781748605900098683432209698478449251537533123000723261775282832229951526562719565000725193485963423186000475236583553452828629591784650129324271300283645947222219336021233288367515639021300105854461870611204928808148904956531689002762913006788745941866868290928998735267925811337064027642603035237332397643295802924186164769449980677666485450605640336071894890823506517628859776637608986846428429831939583923043435589706562649544487507622961750694051554149658892363708583815595395499927144448153930607226732811584433247072219368553596685957561381014397732584306113266733924858363984201402644749494892745609466534981405405584900612209195679806755757676468907545373753940198650854854902540119471060458152344599716989887558506439292744507686907273165637428171212373140016108885648532392062782424431528487683658098654020894008547684186705903584821278196355744144631507902875726717299110326936398405068366357053451100428623701755123798839988593777996765070782989417060270769440463790039283816970961799995043238281695567339581190341435022162504485633367751805475776985973044042296626338945509097257740686332696320853912525462252938717486972175861223084558753931604935776558353476375162128449417542875891019468575030589514419439573215608611738352224522222567628870849646271682757153419503725505740294915344119971077642893075934507114544526286234937951361287794181439720895699088673847948133132832331269091394413989713077065740912490946259051823713740895379893990082891847829340215727164459560846592576261436522920404468936413472829190921236158453854627819722876969055971977885159300005995397098111832697487085232745353561217006771064779341787117732784049922254536248679467900138364207943942889122090561615187144986536879120664712030224704061977865044623642063663507111006167994824837134602938414242781302679383348261497250555006801073581280446414373820447806392572887690227388552264226802713738047804294795922172543332131960504566428653626247092737671184321081503921878878996331470054030492176753701756590074500935197779432814586915233919384131877531546361720958058145795201489587964987196260858392315713553052873512497759189787539806585928923041517879932918187106933431113531751478868698456566457856390177194449452145398303542521834407406258399945417187938010346385991296275773052391624599917724047227492350953829613722963618516666355411520217040418903154827177539653484594617733161981923133377882587654676022552647349881288895429899401373853081798043598925648767547155651094143362801891343789598379647331986677968112433380005879055350746746926392955959574787136245054278404386137255424245247256858185561616280167900749565285170083441852099077521380242376878927445068887879203651801887835212077104666002991970809174165935071875455200504965036462027360146791739142830843015852077709970998838764150701800324776644951334705508842417894930029165213336250279666289196728015993210560440112531850566026145150682903278405048861074324357946349577392530361641256314593598849832898925645433909368627188449465574396841227129218306065168758646649079352138590057387675990277818971310877477093888088717577395047910440883363025076710780405872337264798763167571676731400847027559738895647657500171727898220839409128349381950833472386053699111419481040721435905154968471267938715193249229255510681204344943155782382610207352433091974524430112480592623245747621702164024823639674868676063375241210079730189176617258049557905272260824047744284663076076593769898702851356386965435746988164375839299546323595733132280588453751482255977071464015933170638535971318863492382944534554970817266448799174339371874889942371394503486594856130026457291645507783714783249699380796791805593507333229145531926479255840060087882601916222937840028591096059426757532581302462989005759911990370774441867385092857261350966757545061316098673172359583678930535415813639156050119575831666253200204850855570593892384126679394083201034414318558890680894821750052558046961415731313709672455395649712605463490284818249252735656880599692159863384664910672088020253931849023465384535251426060267061136827742615455152389519317325308366549446574418350339989820282908131667152260416875330639235824725514113296455306892336309889416981401739298501159952662817038690110367194319479641730268076003605526747993095214202237096790603824162044579412333968434177272656310792388506035674248386047793615187709464174341415177061622634471056404264556718696141772195025262396641147993547295024302043223854072782108157371875485733239532846612392406999923006731354785299264511560787328734299528250520189091107094310736832149976791722183221624063713771347764084321795233951922650210417576159165170137484224643956247461618102720257461791911161980795346720650496164239553893750784106353502499106227299775551377343643867534821184728762633565349951935166431381743603155482574407524653568603647641053412084180236730296766463516509880503563419730360361243886572022078369053742696206194413073707201420653893565021348281592150532430838488631188543838689946380992880847514003405772693383325557797018159320561082952165464614180701213247927178907989055913474372371295753421833734744511729973768748652344894218235900736740947477813788972813974811232459744823171159831693665348283211724409480903166467264666041212314669813902346218006595671273986858095298473571990468688892099593509767093484670042007356887552809252569502361113773775653568152055136117527515571604411716569577444846262945968677456624467024374002627395459729944233758251585349713683913834447524628165151017900835273744201708636657555318762324407700640566023051101585202712579262439526344372500352973698952765819232882134026825367427833566127169375760582224850430790914988433893505605864327319270489120014598452647225297731021892013371731531121950949693616719756487284932314740531390497589723193635593096496943630970483377499268482919489795715658946092711911840730099730666042754553114351214870895515600413445755918184066242140074434142281519084020125743154734714986100148079540007473008291736749963205532352119173605580428016728598557843188979005123990144350998677684276426940685963235146000132579129421541616181899282674144062373041535018745095632565336603774271440265016354229497230170416697673507941161162286320327859828972527887410382538671567937087483452028346461693439557078387828392869720180455624041230655695653230697373641413291936677287057370747189396822616720157650179398987149173713657005992388362943267605415709123993627260815682505957530509862786330499543314927817792872381848909964266277159234669699960037660262818446322123606516120582538614299120586257428762781280463965507517095657570075310992738787224833964694667794322851826121527161260604708988331410952983760034852344461927550235128275812872217646814793558407340514874019637038500727869092576243440579363285530869013185293169776260439790113983950129877441356177875565734508932020851477275511027548424659746783598775664218288087572105264773345954384874746831681850631711816543156439167264472209319344245770216296355701228590077441311668791421048297938164645672023775985372103429619022716350799774778621836488264794230638432623912674518076135310309592208306162711909156453301862572384524943255830179248026680300337179272569364797672552000283490648111363675869047119379801799029320491977582379425100533517693506607643764244475029580216659377984366438886582627940628313419956923356045297595432271609239518551545023366109579977241694937567621049963733815000772916732587678767651172819950812355674159175992642978426811594817332307918712774854032532145534828414372235282342876608333265725103253018556994413314645871860653019857570635080633163831911490843624771129745421276048368926023960660837692797442641867168771192599473528187918444260821013860263201201483820530045286904842924881882316654291995306362963429809248516625046229157862977704506913900492062445780962692442522825592041394386399007426331428059832422705992055603626971717741807671692733707928918236060765565724751161350341817593905989678784013849439138852288268466544237214130423134958388789605410031072377505811367743273619254323567046749736771858936051280890064004083871610730256326755658295357242183760002214538133507745157337028369513992758531575397189439960841272300096588953978844860995323276866096824454278681140900112069257208204165830404896875327784736945410755918758291865982896494688133961049537351128191448321153560972248427823039814445272449656138244729363288235925509384248676857944486322633962346342638437828853247060158899038616037361963031356635653103929903231586437647348770499602919618735751962449137902339583787662875499488583067596113426675419779618749951247854194589371187141390640801426062005804274038544196946879312259068100875194276742435751951739355282793481298160592719047792513267086314056630195256117501740201456368653709775345408075858594873667258170865381672277115215727905615833040346290163170719660843407625088064936023950811018956997527137533988972253576382194786433186840885060877935198074113988796753966522383676515188682859402044730162503519530728098038475714535759117958131996002013825768861371449161943784094862172084102372897531697890586254135921369083317613907963892136626495740796581975581076287818828280894662594344344388539289714740002397232344685131840253256475883107143013202745909972522815084185659748846777897906949246368775473053695011498895607812348304422344178844535123443168168854268037552118119620705891097017665976390602109593721247077280187358546429608027171255575855069830542065664015040100209668440952470594563442376166623695785868784666265179248406188038654143859004067752512643792756043398077807643460561586109770048642625691156883690925603725819305399629901839137848345124506576235907379537035481371159103277850907887409911560192214185859150468482143645526947859955936770942717747043975780013788760074639966376631076269800651927323718080111623696293917455894462306660509197555934647422009233966677583268724137276507847771313644149746497131073322160488006798670201932631099307941926483368632042259473266925419353918991372492944158220272046331735747539037395338307683812662210627194318170636845367054117612565156934575523586328501155153742271716112066855267306666373593130142439785708952586835013401898450178275455554912820739740356194961911423209176434158064251207421387082348945849654323471056378102961137734987290585351133249179623163795378308842718068760246813389789510888847826118708888860459807098815572543711474550359366967511970308170336912731802338636789183179492319114885028448721075958395060966386522704307524431990048523337353613580083614682814373550504032966720156295009874669227859224463569306632171371662287727470685502317115084079922716649114943096654062243376930676127747923106781276264002917676780635915215524912878261717473870409498707006397937627360194211095217210638210943604737723773439009940036292123257970761006248294364322666374209672830750894793862808142786204049016111557321067942426103380285325925853385110497362148554284471707565760145974271726632982068666223948088681575428717696909497149177351761990279052344472623187568889656457011615578821080878610731372076848867005232956564433519126297929538038888994022388525385574690875370965876128037637861751197455574172961586015583514310518139285068176229045916927807687757660596410385503147394652831886924737852040534455114869047275062354501622705505145727061489951387373370850007840728783037764554489575496272400694484803638068066248171566107073707187543856567265338828557331176297687716294268490318586588295839463675447237101193766662756274596547614051701950602640429886588959244744853689049940680880899877925711582473259850010423396706952473022039202566344883838659722870333557494450903857025518117823309915546239276153104300155906052078466504436643178850350071793971492375919407703636367761064101842653289168444998796426204657379113671821102524597072160965939602008516213261918124226831502764126503078726270043474291866002011695214027766142254801190225322177965220371000763058116939717697126365293345735010688903346565684539345385826505620600641077868180233495478708951957805793390218109871245292515851440970765532540854940400933978808236495515716667720916422650134393358956165308915847656142124022113321846178738116999638694663701095003118182328650265152360546506151437827316021158157663118814624578974646013363100520935111736004996407882075866040280149583583146365262013674792186469914021592423967052605290444850586290914219136441391816042071789399205768662381548728392406465126836376108773923367576259328802975966638200990953547508787471503341463773301665193934230825486448409687377768189221078893657069897368017311371470216216309881072427024164852033926714818186850217274974309712033538519330814030822903400300193048062458658818742521813327043503597366187975461869422917818318924259799192243273031078493896222886683588967970599476785608690516136429936795634208046467655879786403752122556513034506242464226972869609003172022017528586906748934678541177767861946023112052669992033434728113175823367795411348560128966521676405431534724819063413535251821120466956275433230354822765248908804504110468554209671376824687267983354213181628808496467890421983717104482761229702473166989627259199464190169721938141702202887951681387127466734409390589966020239878527452048034924062819696472935359861455631786291164105632465372425136503566028888042555047367033013619033037839190938320581906131470236655163797440329705534290979680194415443144585425421423020334932772819905758763430082516516100417081305994980123779268330902480705751482217503262382985532266212367219957432851586105056779614924024762204068382969170937435541763477458410626744093490486095221703541088671557045513709029651146733533285665542602525664669211658840082275434668791661802426108080570940334616399881886898341640551861389210941489264805390512813725060399808792943354045612423371900989471303852319767343773694860638255297866388254835762843083552804223610361368482217283520050180038343858386049278949514005441370397989041572833816767654109518338093265581178118422630445101757363521794223438409385191616705418411749065585361820154599007078400159646737352323212625025294894521574792038192222223829285169693690594166178834727612587515091203366684101571424257748183827304471713192835769834913745460529239614309449394425362706884734694901889226818184316324283415443555950505450537025676809328925927768744732039800920321136831725356043755773404204349168866550329664278891634823173156552808944612330804582642320414196951317291888140714246671078924834349223655286048506542540689501003538972050229528382360157116691810588535587222086321524582507910051802781446580499714169827441617627418270996236827309511957579827385122644324533470939820012956749278565616497087544856458461753617282366989825223708972329036950306796356202538901639062804310858346783440727320105995910628430487042309840080801561967629863159547540392415462627010294029006725030030141697408505829340570320459433551031270825111797640075068071716446426659520923485666700458288588720674229352413352570654910320900789538390060087132594855276317421196278304628277934749887941028527903402676604787230686535380094748130432034603364185962826900312004587888823173994835728994258162152772910053458391836768872616477878836272966766170782489515306603879181732892680235714021746241308119911038442019014389887379642833699397128506093554963553018113092263497667275726175815943677867706897033348707477576787860262882613168171668013398109780503798421112137736193179049564627425570524603316722235365534356640302034682382088396107119430912274625274963190131937013791287392140937069835761148435902065302189065166960870648079392680602423631175462298224151225655446778484324661669922194969273522566051526604377912923284756369469288002049775213320437185163449339123918692589949412608510646001690746812273528274764124351464277970104561114295275856870483524351819321388271202060067421583179558173770057639704078131788074523394763535870845523903557181392595422078386940339636484992163845060000166350112251624837834515834456521475458801186182538986805516712008298572905224081412285027376302315915010754866900770172210303902954391795788717878170691944921941028279386533770396106947523445347633303724175050213421316560810874288327788050112675684442360225333904902852922639420220389794563166498978798674621213838892711924420008990202106106932279563279432245598432558773808486380683892800718473834582171946098617421152398960417264264058118401557914174936235239479211780114652995267371327386698285362189953303696815681385122693866791031927535592339986748674281263732323510345665686968272625077572741796763376285048697447599043034087871997150341699757941781027030005103962989525801904486443771524262210628774004186813371639429795013122193230874653120565801886436514135534306010523076628452535191897544462856696868145106636544671907593925726780692504192612751392841821733054714935836651128596636016058052791249085706379423224803288096234003243870293039477518662080500797464204550127673022215837128556483631132895734016843137342188246511140736030895918549793059859855773795511549580924758921585430872835587745163031787888707486437805051264274454801349501601020700441669221502594832264597297669808648441963246756628530478169050522052057487475592577497072636257882713119853849522845065570064739172790012604770841792616008279692687101293460171901472859572325625975474269472845311544628214514177429895476028602063311932321291678684957485572654090402170699128116059142358392133811152561789491049229598355633075743654875029731607886738372454883002587710568192989819459075620663291244404698141967212684926701882445066806239858429543612593111485371510555795556384018961515447533416150204325152729490451512549279912637793561929550848618155178823199332949098185467453017769883967931675548797414428470954300561958795602164649124663576742357237408078020306696761865298664450613102524340143905621278905247170535204394479257838313300916124759704658162633629227750680075257907162235617459074738792927397249433405309669218888915744479417384719324637393199982689386665612051919101371036793913501317093510858404270964157328467959030859919102606584755606662991204956302202256838298725419590041862006063482899342188612681635733402874448122151703607964508674165805779226217934880631134173327500951492101362771831320364866163573105772870401725807304662513107874528139137578687767721216274311339235190206664567696006236294132623095785460762538198165555888789780446962637238589649940847638606806038425381007310965338157132601522280829585749399147179721648777446269597291865233788290205652172597698251227136329320433438648004832570899108977763560773940831439602860726183186844767503698058800358288751028681812554128613480060640406947582473772498042758744038647595176345041834287464835393715769235042003111769031205659471043673947813815782157419106354026145559205257495195651523177153484814815339781787626519305223158497035955935265921014802744339952411150874596175286140700965602995886395407766966982909866134441347186284955783531496984723768581677604441631189096962510122860759279992971670046691607661346551389389863625009868626383332601420833912845245386599689411966021864509076093066510790724928998263621412025763906014060772556782373103397102865095690207679080233678586796014175275760533413602575098054306250770588785948826542714714691074714256977213797694278334134746645434833731725280974779249536508805586224246815822979401674418006152458009177924174205981518188353558605567478870830074048160837043884666925989872008228007432702625083678317436332414736827445537404449282266745956997715820838807283668811823519849937205758404961517105925770380006359926115551920787498514073583501959446538317659444136205680903182386689142562326066380721333454406372935692065991836690274435257690038857665829631905249951268213466295730623130889870171598388808543613366865165801570076006559297730466304225472005598485824719546374270807036503109701058378629055923742490360387100182703045163804593444743767193907670387965587319883333191374982850269448044037868099716755810821069662695765415710536329381006237083595042121226489014873617025213782975461920606076341207395474289468683806449742280515589417594568788615822730390902794629341864186515879543049269866475173927451079344612767763732161242452209284162886967364495300075953389540070766084061485731722628632595250685515061161139542790449924651854689033798831768556740157311467064198309376668497599345984461451740729067980330837447748716432619243584415224854910084423095574301041984597561464238790461622466444700863421238230430295084757094321509941736514362537055941093096426897391029346573970552120505841608054000083092422512084672705468576514951605567786468870626148423576668510186894020308108739222796759187622450113581201024856780851146797350879026465382606176463402977462799298553421590594906550857652601699483051064692743330661171226288412528113305745294372880834332783359618240826309767523520110691439561999708268354111783731210638863290618566208855129487605705299625457062853419280442608672333440772192000818020631686217749105464486082249536097332678726591574758349643046270218299437507217473560704033958833038994717868347336374220836976399932371318540307893443454527189536625352807645797579604402711865388132369051365661859903919410256642624972881283326114978044603359243865838337938004482604241420734346119473635627418641868690788075987865224350610241649371215903677502985507432336367828597312067577468906664342490241384554256599369972664409110064234653897182924343064869260655294167844748514080788344638878563345637981483448827818173535250403036597619848598293704585404217281266931119099800953177883305040783573222112304305089656934334971047892755699418187100345485994503095217647289154109317445629475212561035185639223449086932467744655793515517662224733019905571989957387202264241737517236605758718820941857902647110654220307464792262546608120813493239538269674373092063136361908663301361111652388901324211982492129671434316546420989573122895768974843957437129067963872491337278907310649123021507864763519111509782544059062660010135275249258074654769162626576608371430218439878068708727060255925650728477597715072682721121799074481791939011586403684133592456415473101301009452531550140712794260165773878409382908630528504800283963784450266349682655765990218829985063034927757117403060585324950251619191432027605528928291339155016092625952585932075926123509311963881203018411874704828495896843045096342069376832065235090574117947987539521937928635910816737061369635894001347329189780536486071837658811653984349737118178141494214325783084268640714831183772063764150232271176005119859084329333129074436664037398115623993054059856412018502207363415542662945726714556224456182367062443309175592314631171429530658834914975625810387622112053022411719171314426064411599370925917369154980172172002334251407269232641748717169174226637863227738114982404743957400943827447070939190048043426863272566787230896625390003599639850162748389673979882725747060395794866888801856192350238642924177489686600150060360774347420175782403196085787831592290602766021434551670861785855494611762817838305357384913838189237673783254579746218352562631112858716865202866476553703348829861657656588960127604099203986992913774044450415932439046489456013058110245132846773847295526484799859967247286003983977460773949372525016169441433935377228166186463266530733724358644960398633635599251466273375063902946397410181961897752040366350978229546765757484603202905134658809732060996698524922056671845722920892489052417023094020401468439326990343319745824595681340965979929758221913103930968495661454898565252585965064584992994014558844334519200796093117841259782811757399120305569614279682105594639174259636481057704302246765322349712755262568149643985390944291677007125174284655065566495941513190294329014475429919283250383294913889091643293100988246997533942036252991447448432943698771276474899045090454673769900400477863003938260776455407263689517869256482879399738468249942219947723856878683071074401642202141944774374003783945061903759107584288171714035645670344460385602949500506739481089073836336331301923733840592777722404384921542929796725376815538892723923229007304129635650211266185370748125919563299437619338197750783454700308196809909576292619621963028658882825510377378303790791381119279408287549525592244190495380878680308770295379278952120787525544430648903645017278922565672337039449516766664980614988064841159736703572148639222937834001073838719875331185418995776101200924776592514766493147138785548657614958567536248632106628009897834173209131394335926123989259171439534043079777792821623832976655020437315254320920865582854311233327877831953379528117236159984575328498654767531663556384005904910014653528285002541361382059045098998336344002274545868081374756218893149814274639907364099273055278880423943533869098615884039854419197303957448458200790303057055354197502423114505704629682723995236987958917077834501093614109354077200483348393145051963115995014659618990007355225416308789681131185310838010646426738823615896332243103897415951721681472724042490850632782596679194061744676603564203457626693135623488795605580379214229243593746255129069119450430819895335749042812533244065577037813509907233955217283947124991663475538557215200152859956621373132803353963187780639395803303068345982425666639986375588956154143241758728815424737224295177277186648559438416160110072244354292444212634263776739832533542859703023676977728724581794698214527929455383122573415267753590346009522761687403005746871390456874330185646745350181095861261786545112211014819856861982898830912753382641174424269384329386119005168804876288885576046633433632731762342440954286051654844007236346639078583396043558716797477907957611860446732640875594092573098203527128306294902985639857390787232552609902363679040506067163032690230509785662639328593421934495303410358253233106835841725650036073446491257327289780931395742004957908220295248056822144236542718952342821279745937185925206260738315099733626545083759838923770103447584516654478856398163427875777992576646990790131327458935490439685324916589658209611415129502533217839418174087206523478382637732523501947234916454734345499748077510560202576910294310769928625468979832370230495554239028619505295607544297083270440378796926398114328259262630793442220886919172836078925439956313748920430105814475085311870913139974398652488387898533132366968712566008032887237563368280997069431958904944306460382198147920381373836938905583837863583776689071365427605221778712912203268614782858325588153450497519316514896660783613123121114634152402729517328996836699784110277260362512672098808493212811198282121497280397501564799753843329570430957600458338067337997896576998804718688274778444422878612996777287602581281953647775984206099300240091560473825231753154004244727390147590959478800287495618591092939393487765138650406337450333750681491960167119588405809109050394459918313504836234573026423641950373683845521797191109395396784230727767184000347500734462543408509430135637482173396684211987287173968967444694764260578996489066712117713063225508584978492936242016406027713461263221478973725042838627896583200306522888503720170079796511606645207940980397184224610210092417725936047127382411263901171715944603174930231315244112936660781405174963979760848376449449160285796805356270078179864162969418701253747992521670757824982670067985920030829318042798690940027510561943711947902631239807523655078173008521714304331152203364895958272880318490461459847938404478600730891454050914422926267373802126456977468197582074805280848211287054952805283741913128789848587175974347207285581982887944875903067125727957384109700865302096831082554425254983252823731061879368049448194913243609093073022274837368111211194580712458527529410029446662730777584567103932310851705204267110534974229297161099043506241859507902122888436406323111580405102069883642133867363636493252750382053927948214339803219759800647343184724066303113315506625470213287057174033098630047798638214940686211138107875229883377500601621925819041156302504670050799505836548169008857935710882483883184921793666074243915367423991155181071964391812349485840362245694058478184129282941498394787591006760882270227607309077935550909547937711668327481206009597995632666833563371516121702276330327080124062731846135299491635059281327254933632001097561592768477032846787965828756123104298249634363907056993629197286090039698941689003413770095419261282496747013133313673796063824448178838196878097014412051300607432922162254750818431591551391837245005863487080286114826834905451580548785831201437701902058996234582076241241241099714751178192989845815334361049534689572124842862968469521429878067527928923296076787125654234956120227501540502595291597000582844525906097783103087710451222248827504034104987016929377469778193796847220464818202539631482476599514171772019373328363485026558225356420956056624851410629099891177279121645258836879455621805476587505609023052164184735675366060631020396440740387667838347306736153696390951404204739265949588966840657197535657295892490487692496665292107017624835505603177588523942954441149798904936173106746763356142042561764555032647364483252516495214081412488047885182770016770180279184604036470744987487516143430848154622786697502119001691877440275143347914987554196504412409126231827932760811833900213693783471361020343087843104987210927009221442695125818922538423052475127249010807098917573621956596036285655526432125531656813402433570493959139425743326766639846420940110872976896876999598531040667338755373602722856624606649856241284454238784345177622378328704561697052505619893697620663692447568164157340959708447587056369866958155775775603369413611795393842998562884253769483182975968533361115185554244757118296285417252665963901096137112906293787178569652004971450152291749063329181672540136931844768053269607222620266875515113396029756808793081468191203731931100197076314858814274701307480426336778839069405808920017323449939886306740631892945863373979352205782389564046173932459025017710350489267006667875093595379044314053268798477018831194701479501818163183675562319359015091189470306966124415963179029001056226990915591192918977110595648922407075482848837907328872364008222648989643938364638223593221947482061360790664183900881132776997932166525930406799760583501759529675612150399128968298490887933696006748657777584842993073648077401002553282670520907542296804336005891835461712164844689755721257538657975497181161017922954992971284049802779909141629379555364222294863323261013653761295078329067495678817075975898928099859871193560465137947245204301941414424729113474781239938978146012550635904599956187056745075906943171490025933674761566725791988676380598766474604573101442386235545041599972722763212910002442999853190234542635471744872110665674625181952922227419833733657259566179113485157735155196394862630361410481586499464191670566769237991859153634709900395859119108599398524982839364341880939952880185443800277921164133368655836082207601222093184210393197730512942614183643679070230562251039465328387371070156251606564432175809502919289152020193109007539610780194750662743797829552557279457025426358343720328646278522042532678668310612362166508337542684042462538036933628603611326882517609328040901763353918795247551395674940195358940834455920133236340577977720487416162250680498039321129593870048124647026385779765034580620511731102167481469188630484186776365097647855634314783097900931199898862406861907702545260127946874166973640814791669883901995613376455872914733689095648773310937281165034918229330131042115863487403860715178000405478221157391658107539074971334492228314811316936251565845378402469089381766973497187885475489713984502453897605679809085392114014597431189335325910646083664040582023661454157405834048775235256180062152644377028714414663694171036282237925281118262869346970123973008119396095666223016854892620971069541075072551917959081974594877191371706311519326885260751006453816976146602991358115753765515926131828863729409044066168293112622374458703209154398265711164405871607228492664966892626448588524736096644397623742610386924178609471772545307167109662220213489949424660863237020049042227509360529104234641576963428189511627473810808104905390454397290595557783289449787179514874894686279953050396077705790910583309232526976484948582532804567956377515998166978894630679273519387402976820585241306871090452574496050258769423400563420266622982844643684679211914539179216662858938177316856561866344853083759475342223390527275758248214786414064824797153507669895531394241224702098068565880382552719224114456662489571188489122402072660992176007761344337050735192517945896064227571339651982735883995472682380262924096349745405877214505971096124681959992100797394119993360824067854452859767496452123227409610586187571845794363512451158396154826636146909694219516825839096614578130703712260973329435121131811731099207566647853791804267447739459087791178815326708727411831599526528399837179042728818954713309982597717335616544183717081983421738071935199951800935365314506537536974578056326554376779914560990161407568561354087626945160674075142595644771467835989537841537196973519532777266681635440135351565259848140199764196821567937537914739122414306561895535656303973607930057266745222506754147853726016038736784474642791299541372627071152867211380301756996882439056822545773398137587324545874487246589602991433489197896961286894548563773591193699976225141198559547398580107300837051242215864651081088376558666489415824726231604650935903176892438169939206989985268075645738737924251068889349508048404474858322730046960461703668799493466055861792462479533913505932374787562178028330844332112964928700062952326884189762624870135525518445354091941485675117487842459252156315050973547004979616461253280297755415338240831145217498482586966604611523427363200026357068998249933990469609297830715836908710402393429041771508851161395863127417030379083036303364652450952257658727492266563529491244556769628915303700672774530427574711752365736918798002073962741074570410338124680758187128295271018840108780406726475200017248384220875025160337803738780403890136987049726883645108784206949786506329608587574922761630692511789130762880941436184976055413217658371714318184571281220828916904982997158560154825238807873407118712099699243566433184989843202865201906752268455306581151037408197618386540782098197800685474921937387200960937366291485165947987369514420620759014458068634162374998682214952536784274357637836505173071198806856956412090126496992647906588097239804452248713086893395571137094123460695779122767322388652714755857828065851194214541123856031301996073420871503945571559894977688592321168233040392382840078498185595723122971904695779461203383142906228899795129050024313821938864514726730118420906374101186334332698921479586537464845281628852986907188328162198253134697419536685707924631313283414363222461755162051323500916621991176467227685117059482409800880203346266735066945268165066707866659947491410370467505847687001750842765389762700397655424859813360252911600775803007891473129716796179223933756165598571372249762539222190308188213621588690602887018897828781106534160437577262533552212450314693881194644202859326601290060608250419192554735623981487472493583894588640021119525951511680698688760989350481624245507628311876003759106708996922705337004229358858577643043055759395022342768689954251643280040146164077873066902114138524552386522739501266317353089146297456207181592975771980738087237868888487144318059282438772021419842840929183274569890457205820476132059989833170994467840161538736059412557891972194694453589438217878509821275425444102536231176985274575102309640225979786777765659276975698785863498374857951074133437593627435779339883548736478818765034835458986401099599377163703024245614666983011427033842359564563191759870257775253623900574016921096386539769272889319857253597397428613839332378037735629798245448307381425768939460548306785933157861045959040968327815396083248506225994137071189036234906866783639701478696579374508495706350429158092346436216663482165117256817050534128308026799298387933405874852939328994884046827559040130904844876416536512584751460418004098307862732058172976595698245931164773347567095830401153345367523280515042776478417097969473449901577756532351554771466550093241431626131771169069330308319867064989165183186605488191036571618453582499110552497133061991573837188718589309268671694172685538475476918404585767045248243329933415904822823803530784643176895692876967213785085255854464137093088190389206641735365421916915475886829817287529309832799302345074271571540075191931155597504768864270821150308750057211441321561136196736121669640700937902938253639580786111482609644990584330518580009973843501204316150678398566379777467473923544371844121774506429751929746829500049950869723068161623794013597910689217215161950508704137441280899464547346688515386067244031022013527065666222177422611294719878996136936780849466554587541252118082337590872840029426360409951268252690201479577331939336344316484577197986654497150779838366286688647375794765915795157531827136210876457040124669229585548112098700553636244801541593342120017689478360171284623619641246281560909095752571500032969089131574432510117459879732383976422401236825450405568711348334935387634308803018007739211865068029174430632638230683290651969871651571440994108247905974762505983216911956433057143198003452634091155705042083699347013281961117933673271645280727588279206996589740043197959655102880278808940333875433848771706767237904754600740385975785103287779010049592569397050633092365641513240973712272155373631706648732903622200786673299921148965669171732964938420083696913119880385632454116436446995894729847532955985447737200832178956458018919889101869186777116979233543876519804941089520143602063979928340871452187177068551424920502649014479931595727428810094390812641700121383594199866871192623710587529115823633329748445206561629350440238898001819954977058794394763943162795511377978266942401894844210074053831705163309077645759639421179091289988387378365593401538513345210869044398473627699807245631315643892838688456498153701100386330535928203846080845432850035885901599547431358012478488207873400129575589989605766802116242946435403075968749211359862398358617847244639873872030505429492713635930612181353799891947704734106924660578838575594943705317518864427481470325465092328785416404017151406679669247894778018730407690020720612537530261836250277171700441294502485323226361635497675134712690289694826384839331174642052989917760776330021546436874120205912153737122497503942708770715715791560329374908607630793396622712265856229906100332676017408269228679059417802221856842816531962466451032019350861189698895920254423705430882180428595483614997423922502570119413233716060316601962508108462687164796143118185695753011114498611972362037348777546932859386480585781149860607478661543513530165368109105526036433800507224268455490413624675113786201185997458548429446752374123055011417550304990886704662706124347393230742825773495830106303829790004513400359404018411090286417465769251553694362798112848986531707119321956936517771941789819720484150324237049358085477899691873392677236211293457744518937124218786334500922809231415749670089402679760757674174812012710785068742459293044617072473646092999245884650963325130625126904211596791462163545318395868619654600608278651002321458432839971340459198759883450079592107092993233396816506597572531410696393795837379336778283523442486287915372181437210518734161942619705046500355355600430442383014416424170603310900879023013763260754203957012379424297384441382215723168647615970230513963386410364120911563186118520981295078218223430301701421845701725507366883069561829656792474267988891933546915206252879868998446938568131450875292672161513251342784321205470807655628117191671047157039886795405599912698878948355758847826353185071805192653303810874992099572237984165883583687616323588887443401884522900436157108377442637661469396109013961294792885310387689150592162530918782847708801441786341500418272927740103700824989914328053854563722895982860484984181417140199869272575970571881502173665501494467005759111771019548296785587242236621023245910554366323059754517000785409137888319785090918572098812743042897970192549013148304106081589281659874658544949208215842938530754577629077934795892557414582038778009757868357456661064198499435181090740120854186738524457045357870565048136643448359147449757073348656903682309505466891919462518665785165862113443817687400856301308081695467442782227846896680842469673275783856825115168640449706512754640121329295405988197637403038246287341987280493376219274565629325908733870835679863335239355223129328712468609037685333846995417188427434017363932703566713852841065247064118007898968373176765452020370249983175490105761713015120897402530861728030318581946022423881038462272971770813065349814387604018175093952067363327735009964078310846050403408878726743840111396274117006819069812090923928020507731277865080952357785915718733270992518380391923500733034022098427296822547323228358047495725421425554430614666413941920182915107798580944361879636133080142760817248140597610079667882310929649439714394770434209605248081821668173959313524884646276682185097902701518089102986421866780566428476626959487003945607637351871688729200452481830456899633088891624367282526720937461985615994115120644732114823577915754258978901343303777683468883497182702123777199564793842855805131537323083627022499484506936811159057424826844982371005962366910676399997914029571294910946728977151374546279751745072084010781158232279601901690520803774747966274342770007588407964999665079925295807410107780654351625293860737359100756107999903677345366048275263592241578216828964931073337938561235477930375253989497491535546047867549328152532818692325380428546118624535752881320191262037400203203747837529693049036994760252145489515232651660880734176889209724458716454536359645830489911074706337569251125352436687651576292071765945934724444391920058044033492973947865492855263124342169885434130122365608627832259074837752557068385110027600812384685094154681150595952829084702350933958809883136817960594484451326376126285151746964620126402555122986073604097882727785205271489768815315645612081245546046978737339275577704500081633540245199958849629691631694777151139056929707210449401791502319059865540593683553121659807329120947470228828076648764829062793876451883348366823928330553935906398154381488731844990924536734784153201118483438906474844126378767759889160905669724573951033921256313613159020588087425442895629276142854415111444872354072417630844310513949620600434318855987134695376209155349932703192102779644992450315432888145301949966581977320738684505947405138807301400647344312849229623751674378082321973395070088342242794829796380570576733727715427742295239030705039467104753181570112775195786232757972409937898998768948481634816990008079768547594644607034496014497953371750938642952995115470529621179025827460586842249341836896234544386949467714759746758113314524759016421754023217374545008810362687433922019392907829757789328380849814661624728414517250779295881296685770860310258198023295027366729157653054111298773668279374771462036029017495330708405130224490944097752172854829187900889575339994413486703685862996494744543839381515369266916306918245146795059526093449204856306127400129959949425305617941844176646570410212039085772882596929709259883170746511997906607692339966906499789491729349452868787607963940045548471497158619031252653620057486114639339173817082609904228818069644777758054735077315179648356270559664840475753328806576203534177492177146986106478328440891990337423782727206845819038857455555978931133146690877916797798518884512256727291180972417558940803711578266396375682409416898063717026683877096858835134153043843189062851280957613561435986827374096744292767917066288112308630689979931354086429469251864348395778344875315353011289306268380806087860005206298993194301222201048549757533240730097345046424285261193433795303917487189112333905860677763347329196523178601691987655737793106315345787378274275844008405511113619290240339738539444410965580902730820235072304582880348598869721222929205319287514108572239763437505164946165859083757655916166335378953518406710032531619055623290535022611664934802181998912483952782691967103921855718831787883036258470820061882464625789422845847564323927670415998195478247116800512315925339875657011640182337974462991575510095304778585012664517600521889035139705755554008938379185565370641990880599698973139776501902179539468537695214251335577465247105787562155643504077333208648038031687777609004665968991742736857504780712741509140642319093486139275756186773628177058353728727709660801217921947875835523492639875837704119571547403689680270723898029358955095608764239588380003918880688514906419357192356555869287798196975140381143002004834654959563231634636673237253672610281369528183253301743815710897160099901543306036821684036597425760079419607199935231395044446349968967873775771054894657827050642114786383838090764754639000421464929257774832896731550452584920821341683275900960292411236257947278509660620254291222619467639175714730872059766545523215250937006869880229962076687021781716042381844911260927867593902653769707989082729504111827853499618546631171412192649084522033936960653597102303830905243805844774843380671912896919577430137920235500039094272110650064875418685012597540041319407519539655152046306246199968329086391892928192029227892022677863385006939993385629481870737222322880552435686831147042382634721655206723529042698752475320571774657559746209706824927334541410223411520701740673020775859664861227163542566393076237688956322417776609826825709319857522985649459697947899542309338163628085436926245551874457159363355076216387376313357545120206850917828374083766739941033917970098746852913801207256968887205090415093981541731438437972944797279423526520957919865189954720291773281569539066595765455844703597232261764732846176142626912786590701838258238590077069101661572118062005248208290415253514729220541515306495507158448724405568881606361390047950119790468204745340162923250374918052546254043940883761746728832206811171070454211081948668118461611052430595832631297742804832680313896198416714420333583138856631452565960072201533387961740044846419071646359176114984004051741751014732546620994051571253853716966317254226543002022816519000304295065759689884623886255144271785553131290888131946034424031906618853699656185739563577017451784294576547639191356621332743441759474739116777700876588141266831331639542501638982256553791342035463164171004377123542795512960992782877539249212481095648513209822786473521137556024839507150697588914895764522666502288508799793397201678221925917130339704604311606543470220540571962524419017972586239922203748808358900609089377170230784716339194040093866894967526144582391131645048987472447099930531000371193271925230967244968890507009908933124993598160301129869264272275260058714276472450682551387077842183825941121772715050637400231366479272879458724381231034337625322954804611988466155430602656165107445271026777063522212019529249498046635885330233402358263476167975784947216248527908937373965771120336791870626529547998944807359744373243267076111571501734350295570683393805113106868215453564202236161238629978099300236685934783811029162455293482476166953624195946107541973306196550492899459116838142324847002375275064230636979913650448771483571895340523206591519160872485156197476754942047040684072294422581416462396977131074926700138905844389691101750122129131103839816717401120196799584343493969140800557711020281699958605383253631638763750561969158017571764015828360049875826329435901641537131059659459462205755582276593007745926843163728072387568245111028208103039350670005940550653121687188850304670132050231532856743379596940942228581458069057292297719870436138916374359552233106840376076835105905242548952930834721399943459599050113132073139955102781537092070075840003751288656329450668376865269964809266080423253186917601622714487890718775578281631887237798167722735233948602536251886413432066956940278441536311612231293783317342397645788323326605758532114668307000002348902986278496506390796654199583381131863810438109382429717619827563482101833540939718875115095849339749021451754746789159130967115683837542681485414399703845912854277538619735596912841438470124509692569760872354739861962166874916226616296754070365214317476369749156372154374842027881830307729477163148180880451167745514882868692266643461921947177191690806992267476992223301216832363634518706468673998845250757379023473492912897510509189681812224267288670217287884538780624759852906075928706578420884328753058315819273482739952193989843033596533077722340883667777113347869592998963517496757014538337525227203500112869718835017802840414988021975836770231785629637925757743807840804855958054925302001372542821699579821095506984792550837075258931054814132880956109102529462932262275413743957251962336963964790612692977859387022399215335130089910480361899323518522828078903246088974042804768653799742604072495306074647663681230371850179253223636007907195205305851174771186358143278189614822264918583885035301944843634950573586770596707872188025812752313570134284806617387756131589871426475247482622054605496147197745917079243110148404195549917021324261312105913312619482412236238825278810839143465134160890205011016411417196734405333821056195595012931843467397577848455485635214037468297934250429901594883314661511413657363989203186965040447454831971911943707350402316337357935527655959715485008361759218345161346442371035277008687181088359668442074717273143864213741033054683880962967746472564354969415238076088571648650946169807858543631074910511477478270501286012898174691772178525678282731561227851410635774160090316182068426741690220317553680455900564445980588996339239636622701757860702739486657043778452873081160235839412597055251010928742898603847625933552148264873928173498678561423287207124407546439855591445439734318473354491786130859015786579053241681240265198815550775550133047750818358152850144122925965579145437369873747875776855664849340478706693198849174991779176861032803703355923898079876917736141263642259250983443973924745406845370499187883777001838958458872805733964617275801711124229933853969740376486754891678148778799934740289091194914687502396765603936348769910974702153706601746383885190365374415244280917116138135513094460208672209604101498088174410420078243712704690775354806670766177922641275114722662152072273912820152937962869167615049174331005451895391138353485431515035069832076410828132760816039273631729114107730301754437859387511582786115574068164279698017921699754058167924812493794008799430162698237155158725252755733344533177119309074860175562110805597994293851443392342464576038119164858493836140989737588714595940799899026555785184242252189063755124147237385742216083193342932337508377852538949835472434041504527406443707042536794900830423678071538190298659585710789675874497519139279472943494592903222033510252045452616244409356533480922175904013234742266936161163436246627303824191125950473634077721562841421645273050691058115370321257241268354587353801641329168815468180334578961752531947730196369790377779673293957391169663290616550413646971433086515378155644920462256221328272953499794801479708859045375921370891828803490638162851467348844531143875473220489942060900280225122871785055199555197051197968028431040482773956745005583351697911377256645324746280664350567688027044710208931226952619345729326523567060781360860532997778606541437631375487784370038045990344996333939557663863753755792492190064848185791029908359746022530988640443263186010853727496704079552915523973096035531112970183580489663771125332652463532717250823603052073527062804688678715782324748455631473327731707047137225166744010790477835190665207479952322679171244195852231116263069827840061583486950591395085620876184993698637464180606660998395206430653337265730406382625844504825534647248361631837509357523213017175079690746612030918725498718983359307034484355124199306102590917698025783187918049661437427488948707240691357440627354215945918456387382295304930045966142028251843846181950669501508955513702645970210685480354154479710195980507098757327594413980452307239336470317721592038312139123869991010895090227658970808948897393083480724823865565415575332002852407968851151321083625835045565117905678471275930346805492968442917430686467628890166011953302275253717176018889685578427430795590072124966829387358391664126186349311282110649195453583528469444558799616110708521784918068898882195025419222576761759038027410041581805744745475959924541669732413153865469611748717138953700461368290848242943078196347628384750671551347857037780397722326635248719597266079362155410303292860683898734172310067058141051051219313267491206043479555352967161338705621732068785733576258441614296528160827553665323331051886781019272887933946133582308634781883699912689223962677701976810254184867421751552692751601792943093672817826690246982940566453084404677335125952759172379267987645253335695314704180032203606190657738600402680448159289865841526886918852285608411779752971822628705993372533916902502778004651646921949671255102502111217166941110695371876419826213064214691021974052266185832164446449968978361649448937067171448677148070236789378552710823527167321359536674107588465534194722885736281965271412591944476701020836514719729353071091717240853840722658035355116433235922886987156310951026356464777828019811279980620698973042090381820473960889251415598621572600074157469815723629205890915041616751855886373083097715895840776531205341731278302678248632337838335410510053404924082713162964718250271079507958932614201323899646895527594834827981616035834313071676591230224217106679376056140493854251917363051178779529999847678823963867512290178998651376881786810859115053676914262114764100768178767590021793050407409525140908882465184739584344958408274392951411787778077415490626792766589030720163167522982885617484699991453109545636814511610676703756242115964959010933334799669592280256703765478328223883760464216648117716193561146608381510745726249758959907599225316158397424138547558763047897695717423290972502718992937052479288450492982468329024308377368212016076892039462293478309007042496391682380510285313473692820275787397218392831460907068581835009963448562270656636951653112944395229702770394545882028126186656778552004303097021851192657226694906335107337808612399373052905241741527549680261179493570355997512096269986208538750447472812893867161909657344441229125926279573754764278011507228243642656112510589767089783061721345116160362952145589958180164421809092385279102484116005126795583664430941960376120135270223005830149307860041090847953165533962815078996259798726999113363543974315571907360015301389659291899234857636483036475590738230625399516671843348311771473861674841851384991559869619326297654811183011517161056195659730744794415285548953738353881901692003603482403104458743871599528050911221401600615849910349775384208877582564757849123587559114533865320089127836555089115648632148817123462218279451294616241930124312953988363028156962435131656170598625019712731352289803621448415712576043548971078190519873709876193612030284504213817023182088620537530077412756339534641291282250025043033894780751353738138829380558638762418416816609869903802030158703340986480444703402982691245853252817596572797044331717472956699132515210691729615834268819621671586081399110878302095806462759322771786108378894245635610621634652932390964992488893286151631870333252648852425352307557454611903987373762383020258966291481898391872195146650869890312929859547486568802092980558140139835938596047837861130824855180886210920303303328158527057972206283438249579098131107632185218802459435098505975595663850765671830834307489364161040931102482329310236478382106130751309336442426237302126041507862818950203507274521213032785888235617650485130335098979665757399852777777278789999847552185846556101689357100029463690435529050811470653641897269537102397552763552060955535996981246444983734541830216843950855144161375411244521301289867782365674981868432028841420879191072430454070077363099213236440129620027705573108152363644597318050673769670509166197730095138091542552639752891118553081307469537893830843095212331329181398310414367091597200093494057663156967269294795348488665551187997189019002118318946903881692662408071066870646448442844224144972535763942180424993955837718909823575197593937005087098281571154568308372872646313651795253819561350064534802069572920629129018423274984406980402423498344457981625453944233206628481073151010770001354388608989904737494280403921687756605278053608345747847517526999299157332189192265054006453880192445918775162502971195511262007309494784508326922732663027040728803391239227955847889716361117672719101267705096303621617087740809180744762009688945098409459675153887360025843060985533106122587025678462575826453751861547328645109375525415530492191980546415792396172908155370418836932563823413108869767047012858041962798301366477990160021210353128784355453090834359448328402675461514489343107079590073621561077764397978285365661991274363893564976831047568379661448818446372276333986859239906582771769119793731210912605542076691920492575748094234161510615652663138502808157108878004102352934904093331728105078182008302641954647365546711670954212353165880764039376025151563754344346610922696907372272926401058141563822984290932757907874055154928259646449719025774267489931127974051439914296190226539889745490558355871375601945700241051461522387000498695849162162543611120249657411817504379118398184308083370419855658176713671567237193517488357067367032462754984322327808937466323732576299591772602340371163614621885971741636138173156988394719907424778430057470718933019130296981092203773187016455445875178702521926002056932573446460010172452785203593524764788836058243998090471805996360067437408652455921234326992335521337984110483587194348820463963360678822247256665304793252768703966187982084770290848547236976612330564462496050315194708621946248828711156555004755566537511324009538619565743160741459433362738937332820427301705664396148678088011057641192685653528056899975282626119965023710758381346217360543739852329293225626842735592070873927697140992193220970725864087122014342331131199555686715267137415117231721893467575863780452087782819785627474402114893629026177537781682286253040847546309618185288801154368302525955732581955513229181984114834182232717934887063072412473847916965190898022988517795982099896051818315927267628229574118281878389309898556188919423713771912771661360183042017151288525307705868235071135939111623552109744439707142009110967913814031027839223916708931114315176837277274870919244080499004123775060254457914782641828136187720407599022315580112955934859607072499901343621542992639210653466299319603057108501280710971933510306428653381678960974203341193159134110638886452730733560648270761260253892836293430148129424632915877202229864720085716904445974939077730286096337717380992374238576166579667723004876922286694179322822310807966192455093175598309297426107139727384385422236294294711663663976305354890015600606412410750885961141395576638132512248954308224571923813423895153154721165180879036685844434156376417164863683828291838583902337972608815860353951836516668507885321659434979328714887571555499382867309427538795112409083762620563927228724980087034727048705994556697557539263732179547784059595911430260908836814013705440714390023530911179644076136838241721550458601116471672289293394494417054336595791572931452919131026570342226542264694647632389912008744565554489752055983652471581551142061340211886026880968908399679133690896607847591263364674163126056849331496264023840801998935965075553561279597998775481876805076761699494313741806701010526606486632839641919394982411018029444433691637287687963695588771944407584394986340397808727204152263662508862107598402925294665696339187670345799335305383293428406816851145544546808160329573208058383451932547687347637879471614260679160078967063838428082767488224526681934569531545837973209818937160384084002600365874130429489489087719297623254368624466756781115522447888776178634778830667426511154874178505304626685553779615460527605752520794743051291666266548436472094145053884396137929102649272054291171119602359293104263216423715046116515299092610684288448324714791913883787742480172288611642323382350348336927869941202951755470311710012957056055650502378486917824455167044281519238353649150264124951585522468350016200343270996024111061859093359960633501943164110651152944988787038596481896402358277609509538157521343043631081587379163914734770727854222386615934591285930877914064192336938129968309149063880780863030774426811235720218698856432165581752428381702722422672977081488187690733654289092033622384389814555455212080669279200513694458493399558866182746534758830234509104546922921086100483978896294769971331328334405130011805302849555968876455039413873635048641549630282674915216606899120612228984883028024410124053827815887650820943382465653265839701166100257943586513262407195791714964303357868796053067911761311149735913114983477248269699983048917602254060319434050756412711746855579487620655248279281542842425820481029887338050621617157014884036758551498018120856672841777202025041009629736439690316881078461022274722305743845033800811620888798575520792225679027450516232682800016063505636361175802694992191461726440512266972764188870023308209914360552668686623420269949999821100727354074323761498780144457421173234243108778614953558266020875321854594398943414006532665081823570895955506586568958112776106668748807856212777045562091287656538360870607509761886761894915830877991751696451922485344666395245008750239554673403511577797454763996361544343283545123891399011371363102199553853560762150739547184053854541672080429555561720946676190012198584077412892138727118648209049942442916660719804859762304630517543814990763598422786348860969289138167896104417472237371853317016970887324808386754532842253259932798232673867078150436707665528948367565245853865938499768364959804585281542505092871408386037646543514874787432135069088218038440851539130200451192711098287108273958722038715092506673757214025927068449401526120518876707808273813529922204856251856935151179021469362329810375701633123993847967390439831004174361719535752667822479062779577009370261226002047599708286684260988089993364452034221931837044451151376501310349624739725661600019864134460642581554023394058846161713822483706676703975457536380474270386464965748398362893582920676256658240588155450453874874414274559223779941877509512522281621861851257000529816146301543804108908623869372693996759044351001390187855690588872613842282986032870616481142156697177480459203079373572291064405839528127488290854065450691903496322895116964207247619227428184918633177426922675184617212506105737466264078988031637634521661103203771672228799547953066347538034805229388893480858177073190695612683010623209427060026090715317014486024448455230743958649414427797180590855356230308167462392280177701991993156396125436132373122247089817861316567718936017601387594179390579478293625021580073413123443944646535948578411233846322003281608696478273205959599540045796954197800590930912794427335802758639237253853913294352623124405041944168348965040370683440471442123469457559207953450632049302545151330835807979550016567339169613919102175047389212850537574098154880377025686853495407508458896927192973067909282042322871804613556144691517855369966383012013086291686560766477664764180379840288454564221150084805631691514453268873744033212569065690410096379462283969557675037322640610901613972528836118179837645714345796120019767658195726422166222593972835379863776202155985364690861499608297535680357283395016632097807758698532829765032530497104383213621419694869296499978019240435014668410483732647344173513802237258432155282344007786429475805836495053769278245752677684074310023523400999249903424835686595548605821832942918190314453461235235140000064576580011807875633698528123897509320926326915750116787379940151972837410140367736965516899176643089817311741100906175146754630270601290068207747661607790362222322413651409029038142553741730462857974734348931245904086094349128062147731583472374171903427893042735884072655983850537102187522581123506722932615914312406748582847287804924725200802119460879956658208803575345848988382128696507297830459608965057361324021930296692902367984691827218935855945435644126648217192285652717963256109340126830763122374031693220075619552467998711644689784023711496457973730265963123205529947361289424961632734161377551558268492419604013434931190707313687497397808079194132836678325913431076601522233691667178063004952412959823041514575101745447667189649630716780421761585989994569576705908436057603874665041198216628767883682217153018294673347033767553453399901363935334762507031675336935470223802832355013634669770475309262650192913258166698657961749639327806033057078551425822941448160238986115615607483640045160324201111006583685646341769549107514178169218629303767922305880679687463224143953637390694975983266765391232683946595961254679660860131458218994088435726075845092288467237808689564442620585049514474431081880677917559028340462534459005805364826965333436431833311654918976770341630257994407584267295360244390972723402731593426361928748769299177520837927058389542032229643955123436063774165482743293401106898131612543213663414804992156138130092883004610256363393454650544532635065914758596263134351910266598888521545085875294852435242130192805716293392404086237647595275878610612230711234581482129951774821523614578327914078218389143042368969077921585347233181007002457597525847656471179567387911037376262705387507407959488544618035908188721785907641879636481860975066831484714669783468917239281369728758253799450095880995214670795022510599599188322871380583517794175776608545377538902846531060156547072046542568904964841025045340176280473947245222067644248900767209347220307019824585270021628276907167707918533573221193014409375233197557210059943314700736844499175787510584456121617747162191272312795191966051488110215316733199050718029596595375904529455817225543656923589713799614953513518793763201934987371166770619825599606825390634466993508716492465669605194232646433873208392032795362458093068340982030451670835417157394237720919310417499718217407022284002088011580544082801126643880142988719225677319148628678907632794006998916212320103709614937426504864155171075613354977871475037608069275958024283168448211131811895077468879763659828526048176386107245396180858737462166273302183343210968440966151386470561925067588021324263697555346827616431111455646030881828968996789578445385717531602740824235898382783203811357599729202104250237283513482053620312737914819271128681843787575676623249689523086837588458959766581229342846067139343745769296674267176169038079371330111571849307969596809450504990952108141921097261182650797114075480723703315603518641143820584905102880201513766391895112344370811021177202969049381133726663588031409309528841577814697113540230780016002268466754212713346932071034846662884474713259051379957034183264855205811377348532009978609177698565845662428291011852251513226232637199675338984364619165378872294708403733888941571511788774071254270013034843204273301755397091899753724105683439776733340421924180796568193405484110178761249840716317625038090429267456587983897469833924358157139397317469196224054045413805976209056027788188538965034733896853222915431474346532282963362145415022137178610392471298904181334990726100851769974698892870379366464220153889976617044006036894089222521529063355043267834474211489773270739822624606476419807483262402852385509382711249232089692635869075725285661240444036818765672857325504772171761228979328263257393325274365045157628310897604599540128605532148476924298516430032900016582452930165505728687520252832238434011259985011535803675637528031208337277736867320917784719709385129208531730221314126070917190887992777612788875452745496270222201850812121490750757264569864239923302994070529613960009558017294681699235168096008573212778924940098304008336850379365273734947557827414078992603136536702502189931661646550973032804963045796021049172633685015095360652019150570668163122016201284670547492857275770609268481313823579690197390134480386007712575780292799307604584634050436347723495460267729626321449235367597621735983567060901924609219529604378181101096008955118626365392207112542366044810101254595781105564928507000314780984854577403682497912905501655040413474292886107802050529646685147544918406031214422171601987631368909370573806284782438396731831993619136148709567869826810264450033541366522226199033900056818622793711442090969152341311915988380403800788308437681282987518066882587362936061304037695229354105194955719828039166471190497368660904292377205193649977422710091009647164460967451563558980133304160743961764537882014222461624761020155726424139879852153341766691653668302948812949733341748476437722907081364693482967980714029609660388957613892551263226129323930558255078551052867301300590215068066141140031647799700921512288618361023962251606769336163118810910010421448093616536896248623129436167047500729488006114393232756434441859669002753205025773871280618724150213692700934287979264305218999157645519853537112898327722335412740365193047594544889641224162235662079674690626348349647019232835790433060191486814993381255744542775564453641725674232196036260813870125163063469576371804776824505102476742442121367873547384084757809290913758225437553292730952704253580611304486908018677564424541598931157279275699441616620342674164790775580415045737167325674565147164930110302784725379722572968128359825737558387322816190602146605103127523491234093977259751106505780939808280534660615543468496075313683620311599005396534918692292696583088814301423692553034891409493023850964574339202356613480134411106018553270020445021724613280380047123399880815239475361200256412872590321108863315042136692817946521586162750058114726882665976757034482390560824796748780780649643805087799357388004645624160830840493643200359713134596597536083511999296147932871626153181169404924425928953519943786508016270729620118760890156280841232232419487263115120582718936586449432013971643683768526116211988025103535876840205401241643844678774793157383640651729124205438549956449930086313096320894231809262336517409987439376397991728666194996262366474156060312481357957383377647354575629697410442299251951482052343240162181973219682460551148548379635081728312812870734846209090159522821078610789895763070168136039726388764934657979690864686707323540498369997531066072316123783773412997123936242032924974050713247563731962139224545669484471175794700344916483887797512545991561115186045520435557661736630833220396470509935437085072233636295512489544484835745041379639176255401368497187339574236585217004866081492557609910608053902470137722105040297632703076108239402395661991812909211265137311257285562177851824961167764181580831553957036725767957603356276866740142051275231565994629295074339649487133643550323840126061822066230322221861777464076006679138054943944211398501905521043641974247531308552028975397056901438798768209226240003777622249744807385464757346165415396019932319181637084973989248882538271241537773999674661310558953698724390393323555600115333434441837245880570532838778931193449102402541305710266569250015364850599723312970626649340336470004137794939132103701316426443239873473489186330943110746184816152532521412831901677395271945225293414066028049731745677099333684477681390056757946805952399855839042495424687332440527651666018685828341337918861117432010250678675485914180403757241749527882452172581358161021060633147468089449447939484986968488811271377021392187932529435479291353015135138884156155236090994347340328333469399182925949125768161526241612612167463280700395535856604196943297694914295988971200531913450653761862862315402420257205843775899947325304542332302063987844763348750020567847013108811197928113589459750350434855282933634031293009941797663334640444555224835339650484900812348959148458103958809902982784262618526492702162034713116535249469975155602727609395080552234779050807632230966541315430976099196078425911750790861206742267571368454491945522912971867603533272620212583673947908046858864996058282493417671756211380790218451254752530762793063977701843581964371489637254248553400014697678406225933997209222811581780046928129963382643844897364935233810185180842044357608982290587046714771597997952185196738377877359409938084891868103615469642119495604897110892378147451388944975122630358910242537787199640004711981971796502211393698473951528996070658922536596097710377206188155591529645982042873062642240723433112915736434348066476587925687247859094501819698051605852670123552245566270790470323923745286980565981382516433732748194890703327238906071583663306975447431017988797497372764788971228931918997565752588256942084065775188566646757711620531612846923354824313385693150015276663779466161102804170827242711262316820747330400327696280645061279848673028682211214473042851145393350168709517603785675146565080173258003746467059238413828357910760369300732965689160929863364835352081542131511762582618334290518385232837984114372648826173684228324371892781237226148306646907713445765290991593385447180368787963061529805340969625752717910961532630691570521229129152545211863601702510649347537831051659992096091607476210246311850921457962280602342259263288445012336663897348770375708376870370176663357573736873683615912533316639116020013238118691638882435602564350376398016347039870977077244541380273949434793281862350233920301539990539030975343180780163411853920935843336356722894345073790521045925784298583771500249606627293286124474154671089576715786252989177952706772106292547428508568048762357062431461676383434451956252286892588906538966526760259321533835331978991440646132262012524558616683520480489757930485615258216453865620052864160218433879461786778228435081322394042390204400689887041194555759467906945600218707661875057308923531628395781564826995747388131050489346158202908851117613450879731800055841233873639254640009346108399383319537010562492775377947152676447823001003018168861602815329836928602893735305379832845708126040979167319973379311451836370388568481032048683993708699422105042528252124808029194922793752189973746658039986760253385463752445789039452661483248011264895438610505968816400642640565883126375695404571651507513165119048433350348307137084948732055077267330592156682198032008325174191648257554421490259023348645941444300039593529836681193408743726500119800702298029062914256318920833072854263207013583306590921259709530295172782949698240614168947141955232686713965448393813831413905367185218521689348590210743151687905391742866421844647489880364815910487492711164108186055419058524486766248101841199986044017615909829736956233252429495726248717072893968799192613531667558820400950318228447755273719681102159650617345045890018194485858996606650521294319967436185621689180418296630112329126308257300654248580751225075178610344393513669214512992501174613905485335641917928691878832840638436047902514148431859793091817937661888645403604868601503769371390524127674302918656457001516773986561442171442920680936743622995410479405563058585139634711327121671411149020914002411651766399662598720059589350425432094355004831146233498429930722659554731658615881725026519026810789796503726418702138663974433546690350076515885665666430398058227848490319233846988248381268522315389355629902668828422516702731774052358452340704689906233356697550489909359603757944952344103356635452071206870419641580701884618090666633600602680173143548248856899881323470339389238420619918013204106965353112032981151411338159404708442932646752390046523188975799999703516918793511312343763978216670926372449095005825140573228748325420636581634674728766980846795355342013385999640699013602084064306780349932401622480701302829212460785842748107834386357790922252088520887998135471169420465028151229075406087806342203457949605407532069362335737281570644963502933770478743505550266165680670621803589804655807983175529568143945531020642886623567077656285494752973428251882053802214851126929853488236189486751031749545851078195708515084720395755913040210744155992023791250148723394995376554451584960793705999792321400318399609939557404615122891057850533224685085752517354245815400627328881021857668756601726149364764893228637577928077850741045962246010699034020398863268745366200411967331945020945099260552963630582966060947251457346218878279015479284001496508894364221075539364544608451239655026876365937413529243261932268424261536353957630384034992807281122860595396778337504380137380279622527725749547878402264127813701254818859525569240632194856894442096123769717403809834618134857431959117593688491207246274893346799493115954668146518512874335610474582406780583439527038711002044828052309910763598193544991508533499882505153453533422594130687252285180449647759939593907979834765660750084988494489614584572797775060830627716307577644115585971372155709267324946500413759944850209879766212856640061091084165061057544858619863424290249215357980163627504897977891452320325360319842709779624658776249047875255998478838612921083152823087823935596324824221623959195254948171046324686173077504775918540135199071434500959480551277640306475452392856389532972856324439130200033305993114909691698316303111264237727879013273935325190003683945170349153549085757742113611366821866736705947463063929770733373312678080742635841023645470886474298650667447888547595034133977961805628245176247367998040691910361610715583402831995884848818329543429024211603530993024399538005363237983098003388819746049025409172817902156618502285925482477639763633321721511126437575755256897302324127816109047879579178735176845378246510244144941358337981833958959959373251295134809292253777454613912196491199132103123003521149967956252519959931762127917003909665480523809905997903309988400987538394722455326612234985668998420953119949879568277743894579802756417553955585228515565190598156876200894575451327580400377063709521832332227724353201948866304629930996443603371361221480593178894192358314966924551095127284885298715653297043958833412349460787766155080872532920567458098513354065897644586980720955965391704744287241340386991717150324338550135979372552194747653270347981392425711070943902857081107208724541317472087795666637257472312448663483418543761442647206980287138584514095832149691775979126103555552299512195303713179516465014765564598399258867243550850638681399075964319061963059261671675506444978364208230871026801150804436403109219120173569440990189853231038630724475022000774637586260977131218556540437967614172955903015733641740730941010192508575695076816477708309017658030313199068736910098895454288670961632073669728390152511427092334089764296092718246121280088584577096872100694342988896336000172111319688168192614428459487267490993176424625074616396863530316417263389406278609779195439012950042997274271180166452161174818555944622754627030034502126128028318000577939934795320853101802352985388222491656326102465359342659985136464476703781169488711773215569313741223529734315526169311176699922034276784848763520274431143147535724855669821490273094572463604714799399247637759989174998703510168108448011035797645289519270853720057631423991827455774312403559457265510601956430697768440913912106198350433299176322397205888119837066650370473425158568435541416263457042588104786151938028477848316758458554159293996662156124150816500578493938611972765579302234579107559436257195811249914828703942866870624857453949524418487670834721498473941346838909925695986664571397595302385593685908446872060917668191613529428744437343367088965864128948085062733626982279637442820831714351252450264532429851120766268584766315428611377978692681871738544687072050852183560516029864037794068147581924069131457656232983304801210579069148728574461044016317780160979670830761552705100357694539243596090778447464647677620671352782693829900439638055417928058381590236745517540372580372099535357023044439588138776561447525516952502796485997602551591405890895693892288005611855131414448318242346499939547818162195076063954547786338544281862651995593628768822181048009142523118527632403925671698533942356063755851037030344075359216422109749873675149129299112735295342444148258683924522924756791678360555887324786431689233633069795541371258633957061079022476897172560192327870731937970335814886641699596636242134688916678874266414575215456822728739089100628895468212050749633778570349815198505837325832185416281501946612194912805190902650432441528805674114624199233103032492119043184666208140613685824457434679254078156018183810993996757309153574565051578420330141063548642167355568425575640717103213656191270243950320533809312349586461872599709431807592407797743521246983137433220682303478073762933484855727688828252603573351724877047327148608178551338140097205875077858968460279047306787255052621006753131805529432802777555524157683147088899555969147732900135478955993112840847494095534590603887841638600826751859314773515333099074418192865340724720419837471608959643837838332338035650580185989740101738364936115351518671332473579678372681942830844605591664981051282170422117213549849645351099011751060501126389352937018986982244017760841304577312205515663899891988920461371958271564945972733975207038833114487956352484642163715758740328602567288333564686606265075086563364040767600898094967189584152749172146083650680175811318621752989025381467855959706025134237096236529761380614955970921689093863862547587114494831111923409978188700608309719190250454605207388922085178268252691131277259775801384873516431363482395562433886307784233144855306455221876164759304319318679106513479259359400592168605267741314763896243235877497186042918386433616821056175938624148263242482830254422202600301677139969754349920707787565704523742304618546475455564090082414858011386705919134446457066330947384311758632151021244460430776215120663634328253956356801868400288675565922970121440717124217803353642167963303938937462491200421835821368700018559398695382468623731762412657679582684869889946967408140255680438267590352568807789445785011353432742986891633837341688892423734291986421871867332913910092085372957622245983533462449801217229213342166814486060260504692723389437823359073578326705303925734371981172849690193762678088550668291048267822940374451511909612681641003325578888370913479380794072797805170272949641909922631187440949000660355835766867003821875887358787561815760165162393592360715656182359181870502540492535042868363406374788397363424728509534940083532932207094645402746564760003533628327223179735538321100448647570550649332113260357986504437370808376320654675926940105032779794269515412400916232917504938472200917795435726063853016812242533427844828765363765816325794448384127112009687673850853964147728227121348067342721045829676371568719928137524482005820008803651627549764795168370344112144494746294476304033452333111562299395478986801711152145655408146554603567301776289995595969134253820681080413526149156075541485494519430946109857085803978412589937725444525904227941143412878383480083641865141928737013667307870988012517935399818638039394610454824914654334938643827608354298732727562216824923224268522560077193225193623858303304686536338330559401484228161898597966395342070980947451902888299001728452060252740290602751793958251589451491418171499894644960927817648030705324195937028330289009681420696498323563369767115964620076419677582791757534994592513764341611589525121768290127817480298685901458283728731988407844512142115858979443101684139014719039586210719147328118898598568855600303332929203709325962274702834502382836007823565164977658366822910492212794424161628783748253252602279690991574435408460582797632607753974009591411103967017814257244888631131380649884239516305150312533949121262786431946394299826096728229105550333501760849207093396779873629394287095939182556146467813629701118794677267450434453269870259522504483414626884035099297313498854799469651363109657861258811883117824199042357152151046227339842757744275300930900195434686270846456419004672010152099340503691132699555916881731173180699271980055076316397105460021302676517886889197252521105665498882074814338272884189391156639594603106792468240397776173432684368617797744679043945276503653354944073035828223781810837475863913306766665920195511817392134368571149226409525086086239810534888368127303884395616299234641890532672122390718050915084590154430275909883166721918671842692558246557119532382641396535600251803028333014222290837035997377421911966481420661219856471885602268862094704995420088338693492813530287640280099191620486957896482170174657505565553551310521565683377622965888545687110139815831273593614963126041210534886345180577230059096226941712844731574930544580451878879114648605236781678285394475038940557785840037943759376899732924528495359028988116236559022499467443675227497453241633083876027430985000223729185708851444973108264614132063559090007852791013092601472452164346697694708214527916597609383215052714084569989707038464913627306671121322973748437279053674404777934309039586368508675313904675033465367076917416815302008614551047149725110951679096147105720543940812185342825786475597214954808357498667959792764588649225241858077528105231916910092528203473432703335160500290856800046762087492180309079683662556246822930044504624895908884007115005543821745038449528472831452808629751582752092915518138297246431440568396391559641101673051409071088632517145115465382626423289316842998488048163380770672917197204936129971990339853591498567225679093359103236507383993863567893468350969407080932074690085640734498567355634789161984418340636024789102765613591147787412548485551542903145053065615350721134079766350987794972695978357780541808581417550784101226531940725289587342072740801894922616316812354554891213484852999840385678241254897682018425083771589507833212441213846424230765568140679880227625478179352647562166033002639972917023814010129718284369688579236616285099491760378315895221712011682109866640740259751210811520117846269159816854461640547090497340875134555760777231636162232907377859267273228305821291306016653127342815364443466780316168349612573216152982856697433973467950480403552000480504447953286750359363279392139630899452959087860910782981722451110110048062684110049587730402421416514530150780546724172607126737100992192595254423720061292452212440022352404707708821601676759583756647909239697967544023056130176197493574739133019574882232348911837845822127824545875676420523507319095832514641406885410496545090718440735383100482761813943667615122165016583600011482315842265804436037401013986795550589421810995768179682255834926167111185349157701013970381581568461503727415330243191511912239603470211039250690395625616138665254389459795630705359876109255736687209484899467613422121420042848315878752368353149582307773935614870964357059362760561532101475452484061049301808385630510652969013266035230735466061173100852185775853231608117151855266420972037279771930969387103274276328711060918105183721918928718863939551475265760292426537668408025854174242610820195620625182924813539723288869636358549941339012702885126779364426903782531469010804814925907425694127902743599052397260256758176888244598733641747327155598790678224181592037669604255635934919051022912055231494298231283209446269045851507514329643518946034532359050121045174455353195227133598823965885981178418561029842591811340808965496869850540828724554473173535170695061849152023217044433668636902739639083231684438833908218026708240039306464839736346412793943047196380645768569752405896475919513834380682630315112032298231624600233913148809308060569844073503794660108141687727574212089851418078659827997390190910312472201219259142557759841529261946391536730670193151462939016491676145737086691207296643263714059909034602475251309877134386435478786609364033565502584733767357792387217220674529336522191623878489704873093076138508147783032388937810850107997380739500120209536330001067674055573306109585933590864142642074085768618956481106306241679505779662329132071241931994427517958874754747076483021512815135143744240285884819592023731573311867891594618663058818852312925595497998476756888271008404046547826457502848249879388696678854384230435940841691560700879361887156944608756725622725823007703066672439104044790965949582289554028169827089001762189739949546059258738012184569587428663417151626872151468024649126102239287018197576456409393694644620994924700506348403254101213043741751487257773463162302141935572579306851901936033453576830431205135431149487833631530870235949803058524649578497632604532539596108214464713460890967803691312824732829532979294338068585236197839487535000458932746436969226640157895452090368824779854580417521803432583244795328131220901306515019504355337363067391607822941304734350053033673119235763254224594017958129539790764059094196445049906331343842849813904238465880464742958569304908094001483179238822421814069127978430852873744052673208246863486369281126947605834725877233331484085679067583639144203775632708434835684642035393198239219730851366054110590650371602069733596113535073736924143201658077624055493382505701031015084524993180242357306292877469124057397668535358391476838596183393969912387153412688702873125924772009350065831410017641162580422168792818718068631668670012412435679180713329811474567547358245664287734201423727173674185409736652801060036656320761080769292038706318667813150249679026562883271924973449035683519038091864538212152635959843725055734125189644843677491946452054412881333560511875296141684577630567003600256699676061162428193481773455134393372181934114790235019073198525278001394025734850670659880695360503700671004238787810750471766692958236460642407553069362452647161223342521428990018213150251603452737616771837226289337252770444425222284851512914569109215587252688746027388815644449098308542148213514633083595302189872538379983135356435013835665558041463453313374534738935580684740944466453295619712036934963118589178187976457043481360867084569521630515324210763908305104375186716349910498637831483651104300346058474645399165396673647914509210936690417250352223147666428194339946637306347325002810717121454762753785284392622449560372464774921145207977674365844116265867731737658564612701480557868452878736463006935674353942393610262635315475984477776452229018750410971467185081186301599265406603047225973571811458058806189033912805784795594012492239880274135463224248929717217382799997315389265799376893193587584145943739462610049446305581776238852477298186045100923404150726284030582033125641963265891563090873521619866783533284117224783986281310351272382447535631776007995885966434025321252677022413077250873690662688052424376679729516162111615190335482138259550817161283822469287245002538332655030610750777995789561074076394067892504773947303969451103662337627909480651827758734158268311227671780900122255610256339409364938273680065653019639485458122481467160600932737951903772782588142061919178892732842662695251450108354249259152103915970638504025139231338902110356123178380526901701233408598213744916765200255525959078894089702725629254598168608892929389050461584010343582880740835631256418088501268319901241677823114691408426045798266889257425988100728274627747789741174121739138384618793098533992918880585992883668172114121108602749041061352096015461340365478293923133435444289670225492011278966816935485563650818644192628475019910215082947191203668262321640279591953220653900524771921265224464165007356231563972591155161795436469429658694061562512412644188707677555747744315617219718131325118435237024024763574272929852818464065824377071442197286055407183542520981821558270076333824662023818769575280215101007242254021374608370643987285831322546161890165418058299037573627577007391341000375423746178907747880067517939995974271568730857228083672212116512175948236287782149719627858963468058383953476420190780489498793443477379324959431907211705039067369611216081575907767835953413203087611019326293445612899888166094147951055996684611799257834890062745058815588675506323607828781654168506035906150228497176350438380240455696541489608418610505459282927196686573713021702755372766480223397904591581431854260833547368749023377504314778779128237676777704653984667494589046853606319662577807365362993857763417368955883197448882721044653259285306262938097988015097428506545227934727491265695876031369227194837897844178411750821655727430087544945886131309515226261394616839958810691637545231795263800626298345549020864902981055050589523382056417905314169696675033987426821843567219971367707929035779120963377283419946472500240353889238697368521929422357309512170775822489048890126361921083224618918481316160661267138726657710983253765721944348900297361590558948126639966149809721730129379837211942432315906630421046782988492849833621867022227984824760991041804613025983425591571789792829913446459956925231972801730851463333726908556111461731371616069935601544426543930912806872923030740071587742213467798705392500976816895029766928291309207248567998526091097302908187168937656725559006335356603320969664799546758821368531570794806346733473084548097829002830760136205996612329815410918737458284384008431775492033066252384455079072695892707205822071743844745913438010629257323956809117757391019416374965527961546968712799056469241325231393002408984906910431610965020185679114287895143384002426505861265037342455020332564493357173223342040250592400541968492467310805202360314881127697854048003687093704397297567626595397093280368955182882378123162015571671438156293470016381110104154565843297371399990633502132761492380309623556247371721591529119555488664480999416624531884653865586559672104417697923587379957111819246075801210580340144970142967976428083295468813403885990198640283235540550371998151398466753511458580392162861907592253591462588295083059186522175275023903789449671512050262808230260506687077398200033428313844549819471005953913922343041139799603177515814873186382198568080794155613325981918687266861449617842359465274712518768613167105673788519620515335605746669690766137065316834213491967452569449685444921908390947054929067326345804994440033960119216615343003509438243411525947527455643101895653987063849101163415959160306758890784222227239200662417295850253847590655928708867808559029012979249573371149323959279204424631511596706189142220284451243956871779487033342208986144416084935816735945048887353751617036245640108951142428631766493160171801040860467940321649570373537488791331144199338791159613536980456425027667955216852622842766596928392491299331674599122333225370253859419664522063749906320133356172459343644312414485172913658805305584020936729534943611860802299247648122787327662126066394002701256886655989398008337658349831595701591302351332513095109002423438103472582226250457326457743302405395217957167887873825449010397982802302229719099986480953817648380239299547916948464674886157452057987555429831623045367590216710324162245681789480243785910752172787398409796444815638025982975446119155797867282375668639865569490469646479800149958504894207264881006186180866363269215517006357937686958244667635724777745579917536076207061022094871419727720216146512607701061148606445444636258515666604100940020379137212609728883990860715787871621988692459162823923951851691802102367295553478325756799402665681372191358452588520202822816843397514832518102321401636760404365003261023035420572110662333690905473906448272926095234627051193688131901960877423096975298173547810788301945693868877063317148157185993527659554070476601907562769657549349683549226757127533651652344466857770698935090678520956304018282243528260681207026383681546872356566581952368552031839935106691485339036742301287984863421646691167620727807822345203691644635460644264901728053001176843090936942837312655048008524555322940422547585538223484314508074711597810935312278417158457243564963500919879418478654033020890537382824944759172915158034512935772767541010228359326603764565092746014083220800178426321789339942610960649177361608795300178187294906699982537710576410952729972850822633270490254411292788053983577237708160638418667982445654129452314221318575706827538138835900360702218544999237046323270892404632177828387858756805650384065917996275463061735539587955497937257632438008660304635539279392570413741570832243594638272266638691477070353028124611919725499097174248160240573078894240185390358486479316546518120175889624176235102229866012383994548804970839674026425715043587877670179461779987056363576235353763164483363001861521482201316203739170453743295869297561304344351138186680817913834402036693029584301144626375926955219571711411361316740922614553861446324360710979134249875669094133949258136463489754868607573507611597275784883902811142521865761220170922571868566356065728813815684183274247131260152990500424510824215918701203902412768276299457341255781184889139887307625153126629861163870145846658087802327533731482775722222415006698455754083572746253842910042934510547031507708259247235825075569727833288319493756779436608382524972564426499322010605876601306800770845453631038024202449650940793162921215990670422202281126129323802353710366965013890481654553215518042591592392809885663407989656345367108966054178327166538238590717799968546550662761506510324610379899393689438668853472899703320635846361644231995983183175562781522114532153481981784081560628216404274120742363051441981987987541193071365017670259081466776025092157909510075622244035709619677420165408630385314428297878005802171427117174709072434726136670350054662581320740419945141860502056945319649016084752269735952121118533722164877135802450225941888451295035930085027336377767210133582532697216443849312388514574693683243723798165580242919621371721115128938625960441413087436215330664196390111076277704143642851272268958024365846338883393907811098016980712724651270047640617417293417375336269783216293616475722754096412302379941128953361820632489846999194160925809159126424995272805716268222705883073461506636087893385871655488268192455877594804575182914549331820461199626729360157376966581710983110812687529159362577961218986521870687833882746601441942381579385707304722757114094744926207409504722069039241057951711352093181979266820942969829378215831217182077436329374114988259295101484816098305368017432170240084629639715679882617607685074646343953521567704290032661067718397238101251960748155502237788909130505061176918209834180025032270479414139648613421658879842687737312073966314048975834957167258483499504278808368020186627277417106815285108397818413712180810668707579705038533982164058643250249664615349023522598783354730192113383896566011862366033308388539824536333088284342089370054751796775374872263985519900603405431186395450217999738776690153791565434833767928503395566903404964451653647050745764229639755135857562348353300610425330233152940212631446874758206349515107231383299757012101540063274629656862793425959562673610757438431362908744290655288604559303066802659691801215678817390469133382884264603434064274433254139377745138336919429948746705967555023806980452744925341006318440009051557726973698572463405357704271517961320173590398780862820051545842350849289266335733638389531379101186855947772279911838895584887796303952509813737503321159384011307624717818474944010572522013429178514176618233926492067735244143432548632337673301394306729974930175349558031775454023076940012918652014486873199433367663311907949667559168835436465641918193293573793420177322859756555351753298551026230554657279246374636293106595470854817308480230606186949422536376231105326339979942148237062069678246581321455627059810920432245205879798414022072812019543332898858553586352221574374532491537262857769484919034733415216953824706258215388050244727738079721627019480926854826796754324825021338354921519508754890241644151815076975815580497657935136410328531681808472844852822777739737210189585782992925784852330533668576642617691288940333542007048145218427019384367866907298828283148966993656574318044957602736229651932299331605600228063965051903866883892427143602607230550013762007075965330428931545747316045704374686915647924531583762590931005668087519658846865201670500179276449254733834782731000717960049454124849538708419722126120727494676399670732179464375120393384124602895982138100419569582346618430240488507342003437200887080173416404478236687700046690399626962712644985232138236606844158965285179843424431334327980464568561437087731213259201335011177614273563559881398839427763494812053181969592667926929758901267237422188917066108774221613223304987770129043073205857798237875445698646416147408782864062122222950369093356488907194358426628751366461094371660307594414641102328787651456092628266468001973274124413633274678437540076743632840719353278756653075384483913830595924889627277304266183906794020179309580992102873055959832304340943131930591230438879252208606095124613147986380815052838656805299559361559642195987402468163625030979030117233633362456191843818681086725979916681182913957480038963523848314477132731329397826319569662842000653205570782703353445505307451273008832836464135412303854206276198684824871128638305134485186068138043361336837535648515434298444191905375108803304566734367076093263189160104392561059960684689782207494927241168685017231048105103172433771132602805058520354000853443149638672840627904102588575363732363755834967717577082741374377419353223442200094726518218664982717288526965281390082938134778899367555842949913052662393022368732948122938215737170328977737966615576229549601929508104645658486653132953099532820269165998341900378361537571074497159893508790516022000533045095136940479043905737618685969978853332329599685265284286027120677158048086129606274465156815891129647307240476209132577518140734609916067591781114604003188494478946883380944592670841116144592280174876880743292934394548933375168587092471917881637104870317333001702390752259731210740957091716110026761498628367241898410256920384144129082791926821025812085541989112296635934175938957228882564049090917984530862477104659145955903336202851906572862284970991943075456763217444137707728428758582971489306897447420576071456111819828635095483241195654215853505434888855981272651741963697745876155370786940649109353124638720955420315498656293518308353749296778902246323824874475997773181158690331559203449193034877909046476751717974319611913913138446329381541412836327071706479111466038285722670194193309415155930970821151068399405680642177879562484891572738004022412508117728982641282822430221441858400166226656976866122990853380781236803648060416903690327410577257600634056872233142359237094281773522149575811947361060305083629787434313185742954683290308922195738920618057253264968231041326467268359625318008723473279923793158523626098599713730104113845445415672885331124470655993365743719743935057918963655126901127679062275280262363356888569336743289188460458521343853824741942175584613044249812839712910204688036272713768502834159420558920598687208838120665296308156136703193291566139057940785742783928201361301927574550548678548875887281015033566190288739447540810069565293693971408413465059984715869064674277116989737928436971353587639953768131307704615376361245682640544528912183046288249460464546787970650785869594019459683842124687697323001523849349593808138804957396829462772278604545042424695914380558963010224210071346410383916293122020049445433557420657940790792152639205376429148599153763565182750147900623606636831333276563395261662884768763895836996575799639716019108608004396807754937157618703572325445008220271901139482559372273342181025862252306286438889182875041569487670631426694539202572814028677948727967504068668406593321709917144733472619871588378935512929379260767567064155864077419026209105595271562747303690549854509272836671798423739709952652817962835933309515405981107673105827492618376185412447551555193060323360824310983190026763883976051865234897779688095354376146051336943888355553060731687465962153023207085314580647349503234189089698681163933556664430433180071149687001337534266735868305088828696116292392114186046987227366222342172150575856863423946878920563294610712776502649318518274313764614657488875433830599235160525093978038981600574512281441403822381494424410571712616510818087580086812262720903116312490742299251150884866414779989205347293900436842385133257635775345005490213765153503560446883756743317679017227260193665235303197607103998070602002044355787502330021740032303386558352686985641951888743446572827360964585080875860345747088263988854093186175353404681115639300019734652015054443071376565226346267988625455422113265514835716381877884184985153646914745005665373392685032274282237756523301930815299564133207579378607017043150148160374981232211568366241727801429688039185305783966224113690039730445819338888779158629341498265034889341376522666318417670040019707480370091558560130924903105026278891172714541000002030017361750788261334806206557444714553789489121876935951691376265564509621878352857716369116397183908443221876060159126444090669109747878660695925431381896048416913884330698705610494982548480290257162329245625382286374062472456736453448772238327729383079086562588017638199282489594102658235465202674864482003680593263247284474459866987466606471991950496130827335576558823730232933068378028424688223136645426816405202084696799100546003798694215969284458052448282731608473325204821571782681100689913024800807791301288792945112403145595987858180979579528699272830848228941612580809369059640361911654292214177201096332452834316372157136910002566984394139518371721749822286192582178765944820076104122102928043290690110576411311494658127264160261172873986970020439625999260911587094012271384526002938847857156634313947229899610489897566332714790621817933157345848612876956596823011326850365580457083927632170033213981295118822827219871676971325782831427770889246693154564494986307679248047231391387793686021502354317293311185473682382711064893745528587386707164792455582530465134233070285825331671391173192200214608118989014524149604810135322571272513507817521300022833344503943680825991554983835712665569437793273169010255040397266627030767580613146971233603056448488672162773082303328173760958550256975549820584103170971306789056407937910439012075769480492038114552616571161488057267093653675104459330074090437006043159386181567959667377018296955176940492992125391324533638190722955349768038111778098926671361159765960846750246168307774377131169425094173986225865177944661669535585637594040164938344276820938806977970465498045216627095173688839847054671688304995044056251435134335865606035090577377483378521621165126781419697119920365759214757270354691699806097141509047823545212796642642286088636702975742984538379452117647138816147786593614705277822700110352749854264374266604066991487164344917455302444147628451836686392760030074009194863387924615736658748999510628709131626201086631757029258227169920222152577182026701076572847302615201234645872248373306774435642240252273605473079402794018064814378692354118600140484507956960767460293758923802584176713976886925998424162646205167012378466527341952729646014710141215593758643173517515251089439411717227341089701792694503788768566100934415574595229627000006389502943039361370127101949389008971523917411651152968785280635733876704346371597379050097759726844593278261111463485193984586033748528423708450890615829175722781125932162991582000209978697409196528964596364728672517710561130924281489426168302750246371820831020306464765261658430291000804988498751505359893729607386074067568784884993467416406383059744621232542251897631303379160589393458304567383893262915181633284608307423567286142437813997925702335269529268127256161534719794219439474604088908668765508208817790604520426277512586909982021101937279565349854389443185399718259531231828099628504574945052771325887665383587278411381241844851620193917439887523062611668098249676130551234613600443801975809815181094855589151864185027615578772838408870582002489434774544193276352603979404305729520095780289239634241998694582201065463400735073291965973354191520494828338581854037485945036973179395793343655148535012320728079829270880580561086801102364441957443803858435725115588339045121621902485372862588076756130507380208424433947667834379454711409497598726140531394351896438543735782522736186186658391066431692492453048747611371793301315953901120168080387612656904015326554835940588897953803768044682177564840266838143670299214840461700583896890634412677449653663324039871764175550675508718545225291506704276597531029235015633519608057229929968846418279829463397231804887297131818766764019318143451090148869556032773886795420302159874778506614768800972078169380748135701705878374218149677355609634376480983965717738362493719130817112323852178582401554525530810614162122463312396936027703491945008119887980612532510656848419201944040622590319682649366635838888959729993477622449519443519869547624658821400329076694284371407639295600060342132958114220143761106171070975972488114316113401806582700015140194065138766557878475239098031001802911429987027451951715795604152524354883702582880531447544680387820987559468974650795262269773615584945356183015727759946348519909828284920264308386776857034893758017077644327098177494061971488997049376691298458667310700945611329278051040335325595405885449621829384219016820751586554320364497757244593644040792795531914211293871233501173263360877434951558288807994401608502935302970493672529718599113823564476647577338312405124965288336446679530392630246981788611139688535894893071403044827144661998498348875377080447967502861753228225941879225705088324250694573918307381713438327831467584573637276411632913982199652781912105492067019210938768609143945652868901168308189455516407103907531360398510759145827055660498287408943569397081688021201175236575128047198194417181088644434778367767196236633682946065217897640387169937246165940994686493583284812472485791428448433511811305576949266304351401321817775508498398831412971720320676983873856758858911901827270656132179519841717347930013137526863777641772398527009034083136369029965752156838659654868757119197807130933657893276788828563058420576453454817149875088145894385493595452436551213814613253078810236215420460058260844333229263366806490589780478149589609990662143778581010704485118858766779880032971081557016257168534334921248245955521668273596179333225983883067041734580598231668838337974109014792948379128337940586491845523171684855239384635826187886942409380410803627482594203804108687073056721308471251428429974220500843190635953479751354386265228103128981243304382181701729154741758974173684133980576837846951274030979931573956871363636203495537201640784448103256120092174916554873177138352143939911708792511974498885337402120893900018256204751987618103217960802285824470781325714047256104305891473999994531464437317870909649550441647410170234889557164833222400083192897619089983443760868371320520865911037974815514875267888297198489997165888360916893083688952192582178897883267228626317184013478280548341153232531943374870414294233322876198162324738092491036626068584049540851821193871723293635912027950325758276575808558806688657460025271761489683094166107973369684938408624350973620467870027291603059638039431254732705014905778008305104044067340083987068739712887235246886964137155965891813189490249175693535578217211419541714984835729524712548980184359554473453657084134819127508064188391990351892722061913809345579920774961191627608201439005018068248610221513503027557717199890147913505562116519531772341082988266208173230571938988593211601081480944443746231604260823513068312302888353004596881235892108626592833581468856797046085400106817731990260270251279581166874675684015333690119977895741511565709778073396691555678166599204016526304354283457097728138819424106432069979733448561409464517368757559632687387712900179316921779394425897071583511627211220843085306236090439550745101218291527540994952425430604814851902382416928951216362017152433485524098807954470510428450755033524895103440521926930128197110206333559855256378776150155712796921691954912631913245117053951022915904989212607400607485708695373322152397396771443120697980461852995606805305624956252341877338163903482790816914274758802311835303741099673098806696803433122516806435480702695761829193775913346557822588769363085154146933394363623468351585867113951961031976004504506782597550191683500498993696111976733384611717950736298739115455694264789193339741457592246042148023065687541716380896346194788521556520308281730835342275743067027755040268224409253844429357719430815884274435072515390532917219184798231099241710928479136564058171391172490057304275652398292263193719851941423308881995556661377169981054307265377506986750213662488279663447989661745497887646635799612361182610121768676732531904722465891267686040902955724881410761988177803188693237346207415965058862782919440602345540329096222334744472397046630850398813362260864058028154452699333326742339122487587846777864337584884361175525112132086850611363885588835264055120747364913599493318660360943826039041590123590919305665130603528350405049361781748194920105844953730018203137241538401849684734066981997696522407255219712020220999000471098046565988498615428149130305953307116491578474679056941517007665626400124485909288453391835958378760847338625913042947034540749340303920898330887771269486599092145182758201517208773107705481510376810946878514350091720264436736452387601252198099273326954622814966532866416452805905238286051411676373254597921722159882366757964618851889334103964074723666708001181408103511267903035658521813429671215902848989077353802612874477839767407051959584008272752910485035159401030885984803581721614239801277379583789040272283550949902441892219121887972241170347595864246407140198181340027045102316437202978133472848256398996318983915255765747997106094136054789472440958768835983978458060162154071473784318459219601462016906608353970009666523224535705868004782972737346959695133244748290828252051476123499328761901164784150717813634909165639182180262030370693438475946350165111006506048818892111840340417781915549892437731575081456813322045579022930020624898507818691945740115145117363448335476278746417910252878428293514522916331733807597861255882497089463973629036448155187584646435868883323970042293170474761886917750700978706929646454530740940278441336309989897089213721588328699926813974544499460522028973650731429592666353208236876908604962517374562339680735926726876107150466007698618691032902391786479149173276196764117574413813702975248086545982719852154539949484715683367639201479294603064490982887163034330901916389387033023526404075811593286147556269247149293822055493239842092919858027753786653883993159811202489045246748364504860620058123035898239573181852145448105864267612987534706804878161773442407873356056087665304236329779273185460861140322653677485110455119722319279470690126042403106928311461686089418638081391107592493394567824867538155146547067301926405891857279310889545638520854486493472496836507108947443988746798464835458366300553910722169742547668134041237000428765130575202248824224332724537260012614441974403193941329872961675586669508198390582400355300597948240447211956750864595755384594060134955039824800984750586035904864973960110394815883536610301275026929059394919738097274149546977898361785031732791521735630629855566581178058949231476019541958379331997329130109495752922936345876214826169603264285784927904541970169724714447025154946375524317847032454487220319484129692394811310912783107419453814250263330137422700906579273688593714576695779688522081342117608923376363180265178491724835609820944244492134037378895910916583581713472598008563101689439051854439123851289486281949024138711750473781536415438284072000981003469226963167680366404239532574523655439523110844081654799043263554293236594905766021585272431572435382927566268850257513095413488735354420160683157006240778120984580285208388998737467591238293600625519378798706270967497149245623626075388071487859162501276618536027115990190775527824216882742958663456524534551980808279697854121511753748614407343508882507621333482447033273433793238957833505552096054365991389274952373195997431453538615119135690399062987266190580312336470539123172816676037529624176453829882192116721960721706251540840365047666237614477920960748710342714915275235186503574267422030432762340940952617714281502932416326255329808573101379198205638973351617697916634954102789243782406314410345818982193525255407146418928349106694675018192223547204003001673803808971118848894136558544500540716790223355912684718228941144945706431131744847710457894604235670808361936925910686595640333621328528719935174937183877672127089707029117694549073126185113867439000751066036388828470209656252765276829739132224817305355122292515241343044715033023241680710835156151894599909084145990433085406886071867486537980138818493188543540096026565664774473971122761137601352786433534837172424201232317629932528257863588932540968865302446497256654558068838021978319607996311118977036327961894535113981852420583000961089715630062327661534797686745293864350564242063475623681773555446407771243943727860175200591473490654850613054917495441141217197042738377175844533591305252531087919314895687016567888490287732350132830784233600666547030609233352974900936086475604789656309413285663240329344596189634660529592262340744577924508751187683688114804498571844905159114960218753154374660052090338863995018186187993911050698942995684793312751594206853305103613524825481009074435724672369871162676213370635169870388957748818303660336193399527840830859342508198328226432417402731134943756204288732939535129404839916770240599356682137349261562740985347260012150926920651513643453859644480991532063726669610569912564398666930199512801486231382635493943439709768187795786038305162023819937255714329280046967762044100495308048542088553420985620346580787504009450650971560657593224704610369567015623984693257794128536442535742350714410239487928178773016885237616330478779072663067836335481447051139951299587955845722961536398922016086686960428077838825205634945133443037686688554309601424014420031854083737270179437914904451136009548179863955062998154505816004611806780037562799971866394900393934961782808707818844925155728192134213973918372399773352973026904495322165145859892777050835725199517687285162393930819243645170347668466148788368004748356761660953951256466192989991664516061121244829746851809407781203819842488679157618330156531875054178922456665661683562027100957378001871903352889281650816706136183264602034011297668333996873225203364345756826129305354281584482679038170986183425964987669788128193527134916915645474003792359842486043749907700998558024204034885306049229172016791729373587039331966538918393878401592299896458771296182717004932288257652882837562753692666279209761875668689015349290205617557268510371609016651618281122828334258329046912670312364759431408162427836816147378579461084427975573306897394430334236646424861355055675705128586924524704224093287573064383880366649379752139412049068432044974103150225156855080443504692215005240153522244603483657110201768436817105433405259240576995673353625773472403364667615712273286531195727043288558824077859461298309251303994511891885012991279922651835973567235611012941437829186676880841801686428973215944818182785365667799801260755057153508269411173068669174529127775742509878282072543161041710608410606467012365759778523764744926468211549060390455345300935381492220604177238007994858673459029380132636165730375036957742162840090057015852097826700121909770546566682544006614262776176537964217091509182018621321192512681060056993519002528570113174433740266254250034020198016540274527579369598246589254370771983218523762312744071933029643777078703744382003091410785238654909015567250776954328988747194997272217194326496226389269893257469567418060434197885701385369669259536174821663263106762235266475835350310536779755104427616275239045898181117203334546399701138616237640676740313483211613698570215851431171328809701279974925324089016961728263366877521176071698624162576458964738123988384976356417102523941285619433155744042637902892152374559542045903745452992789955015794989094926562897626318705205654866941115276856727435109956869612223039347898021238023943684758590288757043357584951299807414809324928561773037083022031784405847389126908174741823541743623827134854894765556668011139460536190922388379839234448034430338520374056772418233983347169355049494352592667982263915471525303658353913336403831000148376769332875219094961556264069186174316215617985313476287015314736162550112080328004783610886735043260293212801691483237862302594358654514681283810621916603130948532046740683481139051978058608887874190165796053867157051333924039061204122910886068876569194501369233557733224025443636489958253729657019233193999944122703015958310590623511137276221391321079853509784018317846473062861332698658873415608985396641976871458563051586500661811782713825548856637320868108806606896380028946271965546478578475220266185590760622781167578517146675997826101023824031330459336999639127588650132704218906787606013681887157624572143279759226105860156918961291971450660555420343577425785378768229373923227213985574358655858826995343348714878884842603164978494161007680971416634391364342302898004481206872878775213111578660406533990975092605038163249538735786358991101984096981951016553119729303053004293736748892365012674966110326308920814145245295890727040070048931174374148143861769672538593014433609638008602702984087444910025873920760989834445435730976006703527271465074817885670420630298083814381958836697324177444273197280688124722198809331119121329015348414401806627252411736919400164034975041410662622576638373331729301389678686335358414079126111106954736813181453572852623143776975860933600985225837703773600436099262976224823601481118697157762598888859206535523912387470636184806668886724234680561659633713013672219073354193628996616936673791021215424280212474736001709359154213453446299985305865240966381110460725904724592428391504380684863309248377721873559423053088228637758704545420013434990213907436198019630223408447601856435533255960525673207439170430915492478899547469779059543050984423957434503760122563842207987764625071634513519473978035270450441279855165254800758479782933835323969186702282379625692960807608204638613147231381745077798017047392634886376270596062849106091345828284987350805409048104673458526259207330913124846434414586689703213102107174734975439031041947251766362060016573547924456905575151392569932428149500483317136149018875718723849691671326675929347450904025196596922416384705316238614975982667286608483766699886863475559157484496387639163519172625868488664396192469639909207227504597769458734437259812259026800987146409428396757306055183941411983996015797012177928283129366044217002645942399500315920451852677677733589341369296304836336978187277689925575458745088849027317251077563205702161356624089658982051875860930398614523573469222593979987930524493433000049276663202690808201842733719581129012353813617189295243705586000128109695465483919962199933439114199307592230849229275385139909753764524635616788499571209532926548132560766755057219245642313038899978741599841350071216107040268595515743139406936229862232242082986931364805816128037212594721491953796513533168341630226838465320322311555277158991419471528358700499464168565754283890628099304162979969028139113969113764610834951322250687362516687316438626592495259824053991733000247392174268945405955873859763545002827513498097717052035938850304210937527727218811791199691344064365655839480785277505808933838735933881828353034103680037147241195265604198008638570669586657212643188504708189560814500989508870190263364740702081921035549256290057821984980875350270877048688975925599658720253424701181207510583088835380366436606093408254345394511160493820193419874645218736526444550454211799530371142823255753940300906613080578952316837878605529623763688252337252912699915248877810838065473201048703490160630417143814938443978019995426403361660299258293472006595897657547372576901124033036694209343571181758401729026829901397154034008773904603477980875382391832823670211383433224810788192451310684777674366253474094281733127514036026722404794766579311682556226142932398448559466695685591333991746174737699214438899780870998649035098948094305612161206712176056469982718656994985273556455138101918967155258828822192375172012887771075101971747258057894269872358707628519815246688097180807054303568491602353735043117335884896466627574441973601525761470949335921681540532466362472826217815464745267072383988752967736090718380894917936283923215806918609923588035937502585599867668667366386718301702678970098820810337539091270994505338893916253026023249312808843587582453199925758959665915345502246141242127304219314170654991872221852901574660268603576188954709507520209444273784461371575742756400153042421985588408516542205358367965132430893299146528268320428040186821640423637717168222128621455919654239917341549107568921747193030771746105504229810890253612300964184286465293202807114092770475496521718900246160479533575856459541474594101485299029262795738811402449188793159539140896801394981374401288033936149524181239751592390695435074807034809339694507125452900256435140436080274196677015477571360545403395659899057928889859883534037032626707682611119481067343807840055974025747630310477441049743357388788673443126816728022256527595133454597088224619988470262168542703808760841059827160400177862016832164021882083229658978337780720708120763981408341102649987187290613738549124956802816765663774624017440271458807701720430272805104587710938251076474811563669947197515722210843313335929808505124200383546152129220135378033208323856321592123486954761665182882210745121569147071743876978282619293410651568505802399552157993344484740018490508705206164451328161151332502249496971387233803235112728926256673393211785601340370052636315117345138317177694083832232725536658719031179522350340655492380344349449072057072453430469288105224838468394250105255830181921035588180755996355149125811732598773861717128638785194632122115106071651923917581257358617349986109550247660911169121298778268871103872569768499720204195602967896816515865893064889045280520803557262244092375420941893075814164612062340780995564844804868878756329053673310170342939128765684500205856830142702186457136010033542900678843256182981038938064988740892858204047793114356897988881560452150775631813129817343577586883919130922696502081662938080411200698179881592414442694058955731767697134003873531434233530330549143959427545992631987960261883869292466116283768281053528814930453424624107413046130712049449612550421527791879570116130883040953753898580379476590393241516565451491680287099811470734532985840155180343137395905558306186176140999076623004593419957512759802715541784454430034411862162149819550324435000538992889017888485032765753153021662154090000253937330260326270200405732684363158969681757320309744332447257785575119022587252726738711534997802889312789036154425412176031296525349100382596312059871603771182628272819448209428538316767197468758789348535667139340976750706642967383455279600821517699301481988324000393223869670188309320978450685739364395723710807707751445768778795410814151000531590071395355217831502396264047727011138472978496868353514497248067245470707560115962634437391629765856124945139489072982244063238259931519032042217403413450268694717729904070481562880117710903479414289384443419335570366765950644186883394449036585575362801823759155131260043242255469301390040060545193949747242529682863128702265083246429930493750324190303767316651504150250595037234596396571690298832554653629392359629527940037512659442394860852284144897378790187879066730493383081091670517138590982768435807255909062803089375187850621243463060804705565837500529038201668020763975904208804930952337168528142661537401835174518142270973321475015629564807131061343992250133481134282571446704041033070578559441519866784862740452164061789380196500746892769885812060088424687541253629715814230025636524224437407234970054294634811386260596358320291720358723949480205592704435260380840841027829385199192536296881010872473809434206277758591564435692602531847104848182411109816064107573282243122700190907637341434124462666469606425230583077241667629171052103077820891087939560572983077324677426999337859467348240846486996484971841508842550120465630484102421353351534380709670031016182896362544876429362184923826789185345896652632311341166192135865639771124888455877912451325090847316678347525993152569325351909195102123261837527275442642013593662550035185482175288511633962207040335944251575451515084242776491679964889913675419377353977493224801766435493444465689324459796188723264992849304137109358564169296180314001508773522261319191298234469623718175751811279856456604607793571595378000525313288350898239079543629651063510374373233757581089082824907395811900192496016241767916148114257188842353494514802338385640516735067618276938583229308426549967548000305820201154217129447500581378825360538202442037461740947184148811557516991123317540357658378926325154216475054361733161635162089933270851769125169536003689647517911753560897287569905408878338348269353798201103147982352693732901527538676638288210082707076333574758318497951376218349481595746126340900746549288443418401880568142401841961840673829504078581454275235109813434644386336522755694165305035750818184813078552603936760168649742770641177961112827135245428551524125430359991072960299729770722145574922004967671872853832574827884637034895833494211697047707550538583429722943127870660274705590222295728889731684654051182954324602181565990909242563278808581542639903406110545380599571701656978837760088681766205403173220888065828836121528481552966526217748280160978481931393259784591224382706287647023184640049521050343120225815192724227433263247522335570925666763354639088986183279957413894019801808123819208291803928217448395608353436000091660007870494725248517734899106201702183439292529125715734033837350349301236390170054703739996744204466999450116600419990123342285811815100465296625668983514550890804973417564491476475077330860225627617378594346827942716441648190125718190054327696706591038330849739435593835624532204019313194986028019526645283311991967832593548548400821899985375219237423929941161916846489650348082514462529225574130586946872677795934475824366829183869066091739194290304656604775988228395086771441719502374736574702420300511131200411553425878579089096065097231874582334623074678523473580264038285554373496880957813896020509148929109072980025204696595856243529633645958532088500677137381894616942976351917472181554438854487677755301932591184643798908196622986941925330252685336356496349510354017067227682819399300979130975086430194379179969650366951226209591261401579624367284986280224063754867178747629722473567653161732772253013765196871812540983640436046929464180066996500050239046879069599626768292798900796656436414326557176402243036805565686701214050973301010095202944479737093123019162836324916004078385539558711974923114028763085984447570559637595624995431600284513015345039921980445243158941904441225860101017272756264018642036327925822689265472297881952405786628729691945431055154177815659754510075423201680131824597234857001100262781006527968834567337733955119675417030502516267183809202253486738208701663311180310746710666968315922764433973795172001127002548076673935629352833237730175977158187091328091674961500827563274517523749099216891220289589837446955161495391814950432230378845652102175827228434758247770874145403708839417999009316474154393277694910648512444861988072252513829858463597989755641552904348207972329471353187696214242823282938450109116957815067876293490952557415971391427162082243442510322965767948948781529089640661832662737905529200972337388351450439273229081776112154839021027592883511815346398839973937386741586036097044472603838655072287816024141914369126766427255743812603925429070249062209556876637406349947646520303382427668890295348991989841401633259907250956552593227061962363881659509550203770160690928163171949784207690755885882937631685983460449344802153828855583703993793079362873951358484036701420234646329465840602434801634121235688054010540610060523956967857141193418869513154152781825418885830489711501938642118021175113924409764498231845609874467990063389598342476771884458853779531356999557774752789501531179683140893827221767109107552490024989902666817589217840261101675636942301098924150363308777694386104635766551921642009374741808441779299059869504193935724666307009080947451201946890866602416043262373723302120963748343444838137789933602134757145717491812896758269499706067775915417617088946704931090441540590888054804042759171549769840838972825222903975533417866721022537384253356424175961198032989906040948980502133349483068471131569883634895992674836213193420327340193430057904964984816828525396684679146499286382092002530585203836734937945203961327565504020080600012222250768214246444278399941944103948123356766683401403614199277418168830066413603254882524805573593212077855826217550852509530199642373176060241350592948142709123665498368266897513774796144468569217555447280127512369454023587505640872232855965554867553639371489312184665461143568571299028990270079241592049680273390679069741770650889916358494492969842438184394841280587568143854466766439692962196759501653753912710959410976721971906712495555393898264041018026228827477451245037756677479831147909853893114036632603439978324311208777559489065168845546797442928075796015098640975120904096870794758028178765250945979092699843452437616915560191636337575249524318336654733796115252842661861670682017572831591435043823551881406936027090278801882094317928092616599540690328264758911566971553007450825591490654149490010317698438496599339282879513612519436229995125183648181301656907506315220239811831411069903898298998998146597978841954545998950008338484415648422214079782948826648957002190044497055168764596607860798241719834466086448416321944444797915402741509653609238539147178979689937242745545249518606992645481397045538712782583721549538554703277882837016874327538448992067204243575051184278322215990551244560663593347487103153409338544029454197757313109821702065098561383648893875035130080086023815336615727610264626935622002143146937344841716338929642613819439642388166738893170482694667102713263415319921096672514084020945608615567905522055720104732751076448982956352650303470220596882208462562384526083530498696651503831528386936390050209535033417391980578392309972531513383129667825389199644748355374584621749577709190355142429991352085694295416884574110870922673066215277800797759332399008896562602561128831929765855250887599144252065426881167564277347700129577893130625857163601088334180116468875554195232677421684578210872933194911463712722280196360414495361637707027218256405872991617926893326397558542260341297947492111225211899264389523812680385852610908554614289289689717641742959784242349788251995698781305655406268882941128560459727480448787531286584456213196805836896352761716674023104312643388984803554174934854799463828530791828433173374662278229128233824702115201387772607736370412934702431006041049131497467485215168174192356415150156761235416698725990310281884234870223799781998905206965611797199720075829642821304856524525706443916805501655650366151264227367452046433144377433281796646604772964948148547674172102747014421022325861424824724854920781036216461941928069684201176558346289805243926476762328616223228592509831275000634050370380266318248784593462351852948494872599190246591790375787035919544611332006686079278163659776999447962486651312366403534816247759666720240898175395927011799159916845673114850563217240967259461115306249108783416109148068125513003344076739227367321330518758713203783368167999822331393386441553610604266878518068494967894072546493167578391481609978148124358716956150403545058112125633479993756359371268525226648078928470597708410623467607793473280619573368523873793917909606263241810866331377829705152061557182645320384035385125595574463156087031428337267637512501120994576077177792919699759334349004909286911702501134372395225478588406682974118897705514541111161670348816007498930116841877231923425544548135462221285957462961435722638763095809608872077909710785926689909027018848347791856136956685712072646767692329374445115118117209154079369415313319355133751905500602629174849912596006859357458919634772740012061361828556111701991215668893613130469250582152987308203564487097212703836205093488690390685894598706331786348175338833517500671189586502803930614736167607413994929063237093086321542622179043504245420208711923821448177225137614936261754077606712237928461309730311674888786940021484636935513536709090282877273396681682700462366698841888613535038475954193486860732326474063328326314645490877642917969233473253461815799801380358613758249169605983188761066805531409880551895137627081870120089109454547727817040598379412463015238946484455810046664515124110336318742559932198523750240866035673038618971223226833134440421780871401567784743363097491913556994784165512976580025857497876916062121898681129445934863239553859073959924593341720478756508620967825972374183501452238625142502743959468791143859443921911735433982270093619281412147031895313284723676736646247124804093975856667870337799846446684753911155311914448669738406887947605571809289355319850437926427222226365992557778711222930957221587474079227624482850499827954864623132365137879190605739463210063500394875264654762669252718511592619554461605422522250770071998196415275793689673183646836278096663102109422343264981774140365707509744114501712632511040805173363333339952761593806142556836887816302275686624874152959580575582439283928332064667718655912394120957676504774615930039354247999040797953829908568261155273768699865910158185187850504642668493869114787479912271607634959402302004507199642570510389834340679252562952872163097121310013964604195367811904862197455181302463616597505038624151268688410467739127014887761338455299386135793625485870485490127643889332219024359279986323410273631889296810151749379567406127952132206548948878169422500039370398089403872321659862862247022738199799617596903999825354156224628182860582513053987587085415592493139590229102968862038655386187767838206184658469692836577032472427022889665643949555382445137317487731012041099439147181823331133816677630313913383704465774796730075110904027853785080943610804181368914119541055658610338013236359481976419572133191338252286385312713917083094810676061229063843981363596329476921652090321912863445049417148545085699903095674518911814213364551410751263559388671015924577953331625287461014380528888083193031931202998173084097790525837158619871488534332025886615362365363543167249144883492178182152593477002727479247378510389532787266812370786461226983694658574177463186366348162269736976492783403859700797794016094884597296029673786852866813042551969080356512375545725337400690927700854119417063654300623427766271553294404404822398026415640769602027184513352425012635165924241775663482519771966819275525796123554622398518236265694829032977846386417336402395776794118857325813546439630180765288262075205455730244799222547108009474999572676177853560405872044020027864447210678892114581533455364362483821276083131237607481827326269704374528912836385082360689496501828707117858563774524320944400533239151980917003726767009646822053696442953506731014212351604547879610198885970299293153183737657272857994883439146455526089121210409251283757077706681528349478782471059554186949729692212611749565716632704792326382412477026420389047663559768671809813202375332908253237635210382135152891110753992262706136286501953436007193868818112477148588202642665967834772435016536419037507442770108658287045914972205597447076111545199902260511886567737177203127715640547286300171447851201331881320161339597359524819612776339086094722595088615659972688242426728433225047084986963972228215189917717156634934720379192646174696823372224799061834609573185323319957682635341073571800369085751542310393656784640967807071003080587510953657710367125725617805189037795640939015151701083774160393860400374309055952977450803291348096960080517077332496893101928604199032895099932826270546324388835390642086180225334548223691590918838903254345759325641516909030185391933149143228897146400144208322339568253622546836425796042289697348880738737713108663168317172921171653260744289661131702165874972860269130134358393294580185789813208655150474254586635401504330657186041504292078189137118230321668825662460804208789540704038520613141626035371066103659949562175439246787011171690772571532678923184977261239366897281636887758716392210589041454962750471623055706439327640509548003992238591895540295048551068065327059245873498564435477292438681860770858265388647431355252374589986059374606442041975212144929249357068849740678712128501995365655040196268949194155860736718484449543238708173426071266113971523898400268369892458433370344379154410887269324234329253627446792889807818819382733669879127040005057423821592474288695987011473165054284164599716352269918569978179893140242923434290279649091763170040167790776205439177382775675422153393592550325137019449981253956007327950823183157666737773357563020405839695856571499994315646377862660209621966023744214940527310482513097213042100856965557722197290166407640836733722947061369781144304560100008968945730807480585038801108352093830636264369108950429011579705263168084606142666714780484719201484596090052249473619457157466147030199578410376239507681187814449157592896767627122255856600091536058556046945054554097191514214404191507469143202448190612577990688970995722625413051576186846530091333671246261346520057860662889684227946579108053788720234653457831480717663030902018250005006321954837261872271522843127958033107236178695974059069041900202539451522008689639730411006147932246971395511047792662993907861422819807920197992696018952523575159945069961022545276155447784629001690172009502049821374504588432464672317817407993108003701681498164833999932312948778732413129073422102937920713423877547535276118252317356369052420109180666812543366171732006339857360644911712639078541817324825005261564225081860421695945796122898022610035818818994428550088202546456949484288786297059598400213960905576850766172107383201180469508105492533684950243952351897159503915095286325443430822042235428375633203579997134163771774436892019826077433358666420171089003872777903372774246213199716616991337762000030872910599647533274918100139656680813709349188089534842744607406897489809548765698000614229106730514582153079656045607884747390475815364898475129584104523553677082062951571392124894057174497613803857156681165185297696342297383208482254722950902315667857722217658578652977202121557000462354083440599786141504702213776605601295288542295161900993950964395944491743179500973805136314832472219104057242131566010684780237724539317041353856468385700841193969899561072095404924596114718412630338415162446458273121327375481735909289243435633705913508659792753758633568642336576745471312146149588674190232480988182791359498218228027047200591079827906135787866791983904394146808064101904145912143460702174210285951157827233374596602367561714089486308105320218319268048792461261027244877529309275207549730106558458676335040779035978467888772430257014722250242058390804917505930937951564557801638786229971836998918504769554829734498573309064442036377720146674102803132601914745545819134931792607752976450843058304418816895174103776960642932866553129307506917912324915107671069971153420681765477115043255777632440084018258246265960392376976751586873393874681188401016028505188221777210031242857720073521007123009728329049513496513024271827456639489246604974034409713115767227631940916440319800551862993573992775238548221637374870285751668875414291619172765016513174444816430445654139627735148792643532763394172967867606529457368351799171105379307017505284956315008880516236559101555926384734369875612194602333075815396316415801715442876709603422452645009007158844943151877949842604873584534262954295101715062340995697974561398116243643753357161629224119138043712338581656458527928511155934968215892712079167692449322608976298886098944437208699622328794591229072183308115054474001816963310628312748131335086797906344088910717997981811878552232336700711569598470653762527077520616253150938403341777819767146625020796669603828436670018530302726490446286732680636900212329960846871084167025793429960037721402420347116829334676424832700525869299051125868228630233351567708413494857724206505811861318879942083595715322518750779373792234365237420253888035189578626485142825912436274258507651997721490674913827877123860765262349651744054974933603606316272776458765135192326685545169232471476291893294666707007825266297909694704583852621741578998747407297321195382735418331470084662202055760177158327046613338103457259504977747811505573780254226989740064996452357368329484742449484946395770233458227400203344635919715336332210930183093203129230997071728788678793337179941999847845708361618393018286642619806332285241216250534680862404292233242823757583720601157832777113990038936684185116118189247131464041846849406223493363257556074062071611420868685219919876775722289632752547960676803964532365685228419749638360841954744623595037646698058057331224295627811259838914703445557680049696817963613955742192586340577003756533803357733128489745011418739191592024606965386677418696027586223218672880582830364136570245573625741237823709741491541871593606293129558728154199685033308605688645727969351362350210850549728930903487586681309005480001254571043579850780425191621370646718000242132482687595874167698425172162191505812401205408840251415587712946302940605269813712028543997361281595963091367043641343265826840907823064291144477826261363252073803486071720560098659935798644419423690557495367320378437292913526088582533682008740561460109333568915160034104216422577520477461555696639044620846197477508454104854449836653851900110080772826960387594840060787537065439960116533634933172166019557409148056890424322657656440832059124061323013155064121298362436519632105515766805788247632848572126580300758062233616874506926344379412706589875261982293838460941919446620268914652925761450318436057956456997594873437864375669629317839006361685409643967470883820215743860130087677029064127764236205237970511170768845954080260574606650893271606629474370522185904233794868301728741025084722029853535807729664101214459637689502501088504067192357717997616547926138352204137797752887721975222193701504434904509452453824825481727638982365791568530589906038494696258633692285567769636616249582472384038746105369112489785343558766912572910759407541777512473581920241162845748039842352782949456227171585308341815880905753232197233360207445139338171985783548272877612576891163809272743602166263253707157495509708993891102024665712713253942149167973810095031749847683900089432721139922788230319154303373096561297620111762708013290455014548231239684063122932887823146836928356649126360051634010971619471039720008912451468920513576121337246328721959745463148048597528910368100549985706962428300773880373461406817263840405835118102297075898086582017892483403409356958951483186847527171278587710390524190995290069264203178162416645276438272273917760846647397965231437195434666938196297127783963754960278408002754068503104428520800949000301791712860275398765279509251647664025505543596295015218212990485416925626466985335282623397212545219938645574286230785470869651849582189269104998235336548854491888860917441911380718640190382464666340161003880864447043252555068182713455824667453185871425754055209136414327116311276691139141869731326362392763064073154748724045477352055192060524078201078133266607361959085896288182846105815127454269630912651381908383645138213838786657696864695778073022785334667367383951738530421601514073565853063951733981755358364635008758334175781621774148879184706978470561830192036988453613275493548689045346502053616499553348193524652944105677237303201625806704720472643885213684940277170183938671641788573178387814664594515602309784983445636284202425377518553088686383462622449767887645095183050156275349968207603593245826519243252645893031154107669657915196037828633040730216556810732606315894882101386014016471825012481396645963123470383691471452018159319782312940433715169330826954538258901899751405896497927065305926460479825298192805978929536271325162306812534357087256989451970323783615082531404119838096014753838411767024850762530068874970543856511800086300206588558614031541597365438831739330179029934117448023126526994094881880786330684507428655825499475776297321988151062844399426180380607164859826423961044710494478761211820320019579250405027533506455094430909214739019351447769716628572101094994380269020437034530101672824399849850131874282762521755279454205924805079161292745630668965179880757141592239287770228671106310351106187405586076478472682294046544385363831591766946491628492111915153085443425342190725783540885600723643329801082618973349170498384589805799263010718803077482682945735005181061726756149053888528965450842431907476685981388983661733577096830248616460261728056019138447421672393054951599758718002518896971666738339617395262014862138313377808308342950069050641966589054662350453787014163006791091384327345708217477481299054200021318709150213150863152585378961687658463317097990209612564453416126861889434991959781121830223292618308994229448835763669166376449800411487748704353212088094983497426283709849779136640789962292080314139307529985381176307195297368010109612492257072243786078947129230655498067146035213917462808519482358105092437552864725810092335939144699345353299527393820074018648801607879483981594805850800969044214764827482413454937649760150001349234273528603985651186885630951715286375781959341345886327768191799708040655171940945365625379474228343364066274225720207018279318368216657388651609363723684833764382893017623561114138774481227258478883377852833528628577719894011384456145120736489970526970206861030757956689169797189291361086899548585525625414385765226067924079585421850149329691600991120437734263802911245888112394884864417157510590414310789260711157706088615735939056952285461637591323301402208719984045851436555281915135960124297381042746469986425481136245789825320767286645893909241391757968470327657107543353702427507277197562505806983652961254454006148453785547818030342858202106430317790273988076687015245996345503135066915874974741745198213852265384855828772140136689255924441732258564785680353169715688854934249097305418301805941373424507704794020377419343705979095754783564108511609780904304298418079245009596773431382621935219859947771576004627918847042123292059048017851710869818068498319171381360160496260200645152653023976739626908852868799454396901361850689851011036822468003823179003975648293754988813387400637423754745385482351720071905172282633699267949755832382664326123371250142565991260872215694853427920527260340407519263386454792896919725884410604081313411393687997695807188780273849438016640223004952414545773826901160387946863321133133458475808154533498463140151920866283474962272316356632396783079854222164709052702986038460963984973953189791000579037928197151267614766471272726505450511467748338189846637611443055893359953391044922193899838715700418061416012053567902025179090443041499590520358375820829460158633871084846708523141356530463167091659029153893695872336802686581366096973445277662009798141324845301311820320447674378351725954261489554719598034967282485197098591339730846405533491033175072521324507206496674969185718474257026535013267399694876069318346175613922550165987858976886179827494360162337494330284168131889198972072991313962444066077898220882499915488633963644822219686774757096676159711871676230358386576655667792840868976167211544050484414082836249833426880389876305314352439283523244505419872301665928193704190546267622806048248707077657183289841212062848519084625191466804890250410213968112425155647393057847078293774316901499638559734413533026881206991323291970103396292330272529577412578177554020846221317822740436230320906048516480119179344466180650224274276487394908892598074067717360087304087917691103670938190581144942671337187166957573486883155858529982120757656332806653333979517152538372983675339161427550261588617288345308823489274605001123868999201313643236957337511324220092589991632389810276765058412190077464091655780904340815569436593189279020563589697625371060613481361478575890899987234484798002038271272039178007851351723420742432478238911449834382580427598620678691882186098768388256086680471024598872988702806162353078629046180704123468850523115160169865706612611551669687134926041122245469481346854290993701998336491029996145845628793781558544607283451008912130876424605753133029266585698125285568862993188219974025509822043907276871940633642214364719944611535590390069482013191315576346873912401149445817774161256006234032679745775305071892254735983185776003483280543763763406540072679042674970555492608381212142483011515234713983877853344990025070767876910096271883826181498940472858253962744829959749633782962929608942095194770200951495316071918954693027571641687638693526807374073951033171979163153555480266888334545576557978749551774251193979535027520402255888144067295292171377371342103717039410736588194356451141337953285632051516328885518688173926985371293273344967362351666195666003487524566896111095540469012125645520640727553428269623061101807193423844883135521529740596346160971958118879770479785471233114201113957137285338016212741971336117833863556990864058679923059179203678614920823989665306683742713741329153455996197286675651510382458067697505055623023305356450609085530525817759624895434098176311184184544298170864795784897682886706256143587449622815414414121414914358189378333961722496730461697569651329109392977798027421171881503366135630888064569382736671678991342146530069975300963985909779432969631862533588729845204476997153332407849935215506171172400984636941550037297453510834296646946631953015999921566036952857765533696072770851571878437554787676773265385327849266653490690060263023411201669862549055955135275825076729905796822149884375989919049054459568500360025805455459807481650548713908395065444996451660358690488866922808973800523673230172426008694503023505027825964330242245316665790881655541355631191196544479124336871774882950159926191330142701919784562075670440945068601735925797525582439361253029130043914343494171743591501297314319117920838902213736536361174340557373057505035041736589784922112876243529754524817746100486191156374877500814113603492529961653036994298116038276494026027660265864732705097554008620842777497859683379846380723688880061769721786264391249682879335474265782684363729605024529538014046541299473384222573801116120810146914558263061809194339835162762386615742434575531502910737076084561709054521367290179599224999723938690491284410674306132521058778972818832403654645227587704627112083720890126884124458740018549181369916168998963679402598368732590546996850323298174096457330350968283960955424692944014490566254806056049529340790177574057894366445650052477028937309455097920139839861141599463488642683339883539801474460645825943254867816172498293533761399029421726378069523154056224057725254427186094316918060208632040251665714099723322799432465455378101352487254005897649905579680901642643164508660400414828856809530819928806947643106666892499413472055363528002039908949890392707972233618378737008550545633485093197326728244368017517078555531600926464296754746730611110782008204968256368968136832264498764867771228089388407024612541000883121999136893696171145515743306274672673669866045570235028149937964704941522881754914314799964763042213826019051371340512135933191311737043444602279110737713471973174991277778581991507589124050308266139655524095859852690529590952602137212268703379583588671562775115641537056498446883997055203826607910769390794675812565188167858384846296680299203694886110231001211538673510891980472666812024648111950081798933955854006530263362760957284180128782129413528073234161366375527806106932544211827941434470793431310358550616130172719522344067462481072417572321975460477599517699919828832713249949186770416511623863655719265543451297885474902115514312008646988312318326401869231346529340846606197450873877522355899787982706628623428932594877818581449980053073556270358999007533540152047265824849729352877146881003613963238636206256072127424854084332093512870610689723914056558644155363768665165907567436477855887330361840480803292489283508728044420232601289284911966679185653987962933022059594381853019469508275158901196299758039000674038788987505525993792947511909174221324530603488302414173823396109444410045955821793837315377735825591603757314234608713636319640509499177436284436728731969421106998420217527495324163317382650843334195600269784512928958606403603659104635019290506753457792326923114310115302993435945618770363390802711670400143297220864233374359015938368803009420219235832078592439615575850918949262999378846488833701276984118024154557733557976034357243284296144346417095149178196750337525299764950981918032683766207140670911445335836831310712025432047757521279936892581482138398337911819980459134574234214493499688366072389597965643709146610909278373685238646558094449838182191769053745760463344503893745484683844033243579295195209315959203596122958034134944212172242125295644775264257022100886570735454319861184147877062779083735135966527841830744034461843079199996220567814797471167237976016312777939233888039588790810212446366218442632717307580815345503378808318479786963018548416138794037730009702837411667477852745407286732111967373692987567488120239827247901300283094493606083442690484559637672814269054738963828948566254363720266701421339833965239692949645587121853468186658434038738742087298796285011328618880879117587784677617961042217706878078963465846094025033367552245545629857866514038684399857447572514342236302552648061808507852995603054107517049091504367716221877810686621953983678512376684090299072126823866890558048821705698563659355617301822925277764111080616379945432443005448950555412787852591976303893579889675384017551226297772711595002853907023500539466118436033103843952136055612588346153316206108652268737181218492170704119857308848898502488434012057937551844832076424986927819308911115230580701388566050052454560941122708450383384520692058504781277258564936333023145645252232744218801986005634144265858725009694169008629104617721216276407005803881150874950069139182213609965478454849763972307542819260773165286774046774370726646523596411854200745073478834086967530378829446642287173354651718026230892563441399755329643128568874006101478111600516847443911959320202950794348886143344526812170682809511269220071837261902636627026674475613225910020925528056903808532480165032666846935178388585256768868268109965416952290204078478875669378440800398754667528529670812560761853667623434152593499839080099733718213106185153901973315522094232444485937906385663724685596146821759080585852391198783646327528905936563725770766870916286049178217353092375319129164954845622977403042432656140689995110475345868186230533021260326251521209284464868418290671893203572619533395879007373169775613757329295267727362251113221008270646832795446426787271827012226485205619125477786121741064113060211105940691341741022734433033092272850148985069971645052870227046012210780699398706107870848586463908939919734745751986838780930492877093807571592561730189171369167041224221963346520418376105937943139221225930266767308914431383060249006076962589209808157910062775632536884546581345078595215055110165723324213880404643364735313736178585991319584497184879212538456036868237810032877705044667450015742928639298453310736858383622241112572529289626341081658669368993838580801915953578798075949765388266250895846044851120488611160824551286974167881497961915385745532693292620143587069374315727191024451679061150990704346665323506777926039452123656403674669131271533656423277198714812312988917923710319974878456375761805078036968609852156927711512577238858548234896785885909853000593011339884443006562803296832321587679051723662450700199476773431715661023671600115172728690708996211781462123902036682495041872074311903395642691976189563842931511773607608011851729293098911947450510234970589896399102954071468064745609378752490966191014325646726910876562937678188380661792489075956916272778915616065583033509812026244804919819979958877322797114700630368562644575899702379071921990744505247345743363520441303524602152278636669796735346824089298950256660274302592559670733211667875092790218254780780522239097868634064228821230135495782287362647993481174557710589831149093901264217979749553655500054286375024001739231514680415362144636331848839702305104379972309052282976784464630191762310045118827153293931688756609723709442867782601652382716409493748109822238442581328964563987877875677683653782677074918514249877752478726212979398449619777287203014606593225505881174474408696944868323518164543985519542314088001670547055159872428898312014859959203668029823423734145222093327757378079745599463840395201860421027191925539158296926990020727578658793480220965935347582338352771570274129890771030534509444341517981274236709423014238805372342929390067064228343593607275454684152406159172829804960938886632980322842858310292922200901312363132673459739997001843960671046851582337078297626124347015207112302801316520696233239989505602975331462625721295012302617965659088342335546931024075617878248529377717935300446827288952624893952305271395303612906871339877038130700837770715775004218168045721210471623440103433705447120514759746813666918262306736320289931931497867818242537389151268751624710100159095058692257029334815034285925360264904851130640017955243879416671850636128367032082407038511681779474655536982542252920846994320160549255652396203795049852330455147825294336508394135166091844181024691261659478102801708990087017376409166072865416731061921931541942520352698697853578264949513424710848502342981497825355867070553128654072206192335883731162653550551237337105727122576948454894774020098947766859216162290153129570809109932577889243424013563946992937787211426787177657617586006359141010287007589146994273096903717441056758010140769325514034209534483480350392382749952999740580518833522446051113607695070135692010919934677739146114940149399374568449642774716283106776542136075416460836047164646556166288290629647713812348315022644038358266487801782295032032231183102830748906741556434144503688119136481173116408858115434607418687059675837139355268861218923695792387100070394099694399115745154570055060413294441800314578948173749918741400156609855134727232242481720123518536029490347075488022889963201732294012388416376500803674028945602402744620313085972238842801161786817531053691642562419998018234503982528858775608012620492278872788941473455083249621492038527018108536434203491132856126260767084628543766758620172100836883030434982758488912198438669787484559623127594861652988633047327841110093356813727080282059246474503424297814683879972478590368748278462343476485200734011453800420274276378603966720441012084330920872334147218184469455300064349916702790135798860300269301535767600039858222550582287856208107864155943062297477037618053768302326560011640341660293764950294125358593650358097671876362862141059102457972067036957617928473281917705570720709529806061668628468291905937341925342261155103410711617005486544291576455948641689239740958878858919351643322197757068292016323478281190639915506674990327139080522267310415258481862715831340085031208052078234618763229186364589019399228439188336732121608609202064813492852769800252890002706511430128322587749157225445300575588633714675384071430007997646204061623978874196485732671546203249918263938233700775243850622062467062007707213027809985854170103024235554733191505177149430180289165824634136243552415905846862991329339312462738442868551448981011379120993755757354909507051655277517911449181723567904307904441961116857598380801909337347750512232772726858545919312328823504072540503405931976582341159897244703414436948451350111656515822980260551172517545793544731797796541644159580229749400640817592921414468408835235785381677039537002659287629054821849213383212054028480195611374601924334992054664473981216610256189433557427349610083065201436367144186753779498071552107719189420997210119328341104305896004676821567210053161862465904382727846664750070612895022616932111210058414665148526939247688872872301441963723949024010985024751320372467270972967130063443210226745106350373257239817410512654671028896606830611273485462768146495240938466062019997471015301513510537632369954225167406875314176874855043826476033899536112080036753946877285062407119386806428973472769044694382434677128023031762133085506939923879543267490888299582109461791765250798950473074035822334527359139920196524854517453160261048577001624819215773473011188568829491919967376633056615285792605578518639387863684315826949074662815911952299048098591256716586787100615548134304702369043766908132280007230248525084519423292515340153490229733388763217158283251492902516362040167750982192791705808591769691336027654241490362208308232473371250737532618901968686268609437075142490725144450026745044731963016667476494846155853971189449689690078155954145924183182004333478737465763090443316551931471786748075038506214780601496507238456080030340865795020301069672026901801537333551825520473867708281593708884982509161213416524223992335681499724954831153790600059199789732549186459196426974581212521094293439381392948387542163301136951791306391184636267696321514434620604076849729846280805231265510926666315625505184414296857095641332638739789353876833813704234188936166808260338543782033034176535293150568878934242003097667637440171790807452492697191482881703453538065672060591673679558300187471315610456288067378698774007667982787494071601821529879932417923354623106026119167089680225477242008511210264466608238840053471134638901419079150122928676552751758137547640354286074180493252774512255113184305392394230122699146251001380399628267784984711616341545329135909007571689780559103815397957299848719197302287356066610988890733020400901017399991465993904346451337667259359346333945287057031541680617037451031704420378651000898739901741866873306364631091147674183311364891601077683865280947355707341131497361919727017080129748704713712447235449104273224158828487232218592063327331910904275392882050010015027671898416667407067917278448845707863207032120057587661945197692212250905543755028774885052459401910031784062529419362906110575514601741946417321252675862840259593060083762911026861498298471726685218796979531460785981737737818724109703874387766373615161121263906330054171521877294789476739561126206500594032935248314417170793251555158972227269048411794669469707892387914288037975136366217049354169015223847557279075994352730335121721450619566751627509082161412204376720469979367947183977267480867629230035420963764491283829628885740313322305035558538110607890249530248760839505411902054655817615867094558471603855245701924997620353060773927078328077022022493932893489149917639830868914281880993504051851603746657420800333987455198785351275969011382809663710286897938163602575050402962314299035931368692787411337634349107801738639159304660876111427520826103495229220412030999646417561041626080232220181012216600158153632153214946778495157500418868935221919185585489950615952760387740985684206164227134462866134841732557449059766805525417859279153215976283954128195110814021293739814205725681144123348381902761862452125865864983560375078365582233928228130506175154584503703233424672566974345540371400060488945610380527254775888029589073599177656672640274096281167204118072254172863791737596805848537884766003216055543715582038262367763420942598361083766443033048205094488782423277417879344122796732669332763525795085837225091552156288422499280280907158548440341470879773067789189317193717145487193701989434765030264763671062019750781331180226136630548832154829850586925357938949123311024769138677000442136011591329870824639823144241843242078179981932684563651615134374307638301493305894851546542777532332925072469641409803101933441273408957038594738921483801527887797201544959196967491240484357854989103764103857141096119898563262127672033013041473663699988688303761059066638554847106157444109913202258776172150027796635655134869057603553627612835268209650132739843626447587668250343356706613061717509893093932200244313667482379052472623185233221638362096540688175083622190625537115328335432172424184856106319371190993537053580082217597082473042435469850494297147254937112733996282696863554023829270670250663665203719531674899309567788692786265005259862531624335711896912507290683317238742859641104743113469070236111980715312761327829475322040116105834250048171223633212774211669863471771795017015930032761483576568821589901862534617381028677921992027626770937892617736636100543676355425057562577310117998233506815931667960278647166139412122747153086947444412215917171368933827645492280108818079836464411617616117831959023632218822877756643463588979685083229742224912097861356237344709503147402493273779863932836408838703871565163643135110437855345205112936316410128969357050245334259947027500118300711601885092890103170072590770480603118411315306306731566676698666086692456458850172713264419792781164692850588798828266918012264726526100058594191450884794259002626567108480621467051754530313631973888467244486490907819933349910130232686540297525824926003953009511160894957451416075832742838711613929738163873042063436896103372543075843951457260824877345549208488659317112769146455323546939623653281266587874900844323869383532067854357425053720234142976199457375457748957603118930313626724681738463540280517182728210298949480875839482813308789928815241020421336171258238883075715106291041460527590635438119698718276000138211310714611067459838076940516355140349335032274903107707168380197505729532281978268743571031237521070563085718794699528165680451267321394575901980211676552066750803163285387440391197655146380424274205750269092398331023942571666772064021239310184320276701953238015252335225893568759731976212390384931649754101339711234217627760362959683950055849253500305291233928494968183870113713346596977746871102727225821054010172922347572812709628630595614746811415949998466042295435532967274542619451211886471601181511005659156441704311791969661143301982346474164653645922356354799481019890074406733480742899931429891435019448697031820565066417846245738521778279435456451884509001360507260351058171537801822746434449611953039946537845529912492660310152526897603202011811311394351278867519132822257265690490900731268165529560529130783084962799391229416105873088171457851929892400395229839240850989307442080235707615241484552070874676891006143585598346004933400809481138946480607197375005139888190896258221685074227789734344019298355194133379807503552372774567962233872380715701969113500174622594352593926818910051636866830676428749497519857925192137764990656627764243383072353712916976647340119720156047174860500027386688992925601011293908029035583223612452714844594512961331318027079967151314376082688595573826760879742254385213423881950952881909640621705022501745847030204032252239578767655986205131278077011791505751294121311893512232521959248366865685947204403685001525582751338789883586932150795870769196279231527849867451113788331644366542893440219969583599172837312820604523478081218233346399652576854591531734207048158032487073102467305090370298591159378875914156260007908885059457115374528309415538185976164825052022503120729153173065287814352350792888571392593348455490110308295955829749646214383478013284285481898455815735538647873096614207878245914891345912340202927936363688060864207882320698583529221993395668744699244753481313453348600715752533240625632291996207593868392716427004233375244483410918824010662936274517808672697465182497178891125132969894414839564709811371162823810668948634100931187578501246551137205909386886505967978254869309205748363904386571460336159071231976452978806957017730703822424214474080479285868662613015325564069293161236843003364446109819883983615668800480289798174811009306326731097966097771300869773323400833338263669791386387137033603205159551050874020720448812678256572092756680598800996913738358563704655291341613685463431784580365463547247782357656682681670655382463135317434512509385339832424193536055014504571202809241590488970818854266109826048859472094224962011928764240646687116584498022338260786306820195561915376401878671983216494684783900066556505267216082572128323973187038466521310646712098032609377160923963709039513723860078024986306883245621001634720464728848653708738611314945896315371974845777305911436319805054103289080959468933744579018947770273725843805587412749116852607122193128247380465858415375132921512803576621045185766199708008354550958678939945328177958972346634655107867172848985349900337374033203082836487869158584437531655834215500756860236886273884910699074440160579339531345069590032080215354567244955557296930193487367011381470194120693737821029658503601755555093952107676458923327116857862358760205544204854535331052415603577337892039460093234266156719327990132493669000580024859375164562742502573913485362428256117970490446046900447543510253936293659739787693641096669988395438688419226688232923729870519551377420140416853122068437341447901677337809861785243187349170979878279880436977813876931308581842809536116927487343941680171243999325481135871567073569073833866788477410343816539704593035029904481288988104221150263374833900751678430215823166852675097099050076807754404066738583759608061001010635415778789872079794261267762470832235557351332881559330028615637850956176890599999671456019475315813454665663237428127424984404480545551060080681631138497511091566576710360901874807388659880039390272022363545924252417373352795356815825333694557097579303588912086568308555241343160729908100994489914825031580798031625438238770739930954145125620617361990298066668351910261140312677432883794651567839980103508726811978248967109821664641881630552438781624763112557937072992610979712589008578297379248096887569792260312415403426361096018182800591532723296363257178332173322704083816900399473478019737707296230265083685603029860182194776967909471625268629222160809329370650407327361622082749352982729782340274472619316736582623596020862878663755084344340051259613468898923604538302475980321802394281226072617220584982353751776725642703564305456482262394547196047555160491051245470717990010781349615883404679802699380709382753305856181802455554685468349121917835840219184128051627453654447771238493705482651686010641190197974365686722182728206612101441499380218485056019082776780047954060202587896643537721943006433036640735051149102457283052285279433584689712909403752150262918674910817590618352905701639991699231926683471641270513437962036762109426352031405556833079752065885141009863753475258598850425545239327988372928758915485647888777015067131926961465578670010390828405212464484170477577498345092126093498628301236833404936062947445340426340880386474600518426694662159712758662470433846526342189679625473775828019103745840894068302319395673899561287271087780629776085238780748668828475178907363378329599575353127754621904123200874205368219051303787365384774292813482171352461949056707650962670183836297742419941726851848566778143968410937368289011451946808173554067874578606854968702464372565969293692939338942529673669526202004103160746264894288834883784500632435266584364443623372241646301821740214591901997527134970304015356337936422315578378112294219681312466563287151574097306659885035019014218671725751690002583414477288037871404012901499754718506404468817916450476573938480120713320720063203143783772293214156358693999455778700701055488176039005381648078643510746551288378894571470163306196624927809995521140862825310822267478964740655019620916729027047651625350824507106253430711956302628659101511010267518529740386908046634821311369322493411539679824865763118925124053669594682958605875649615698102844529851095858421720904167363007487590100632115911304694985426398135825179366941872696101580525438461985854171456874797166064001825384658400438316119587320375344429904136484966052939872291295773760899534909534189589998560253251584935251891204575447116493821761524798440625667738109593789284069513152786281990916534800590792241093529026317691680923954572897216675307542475117125128454674470188431479166128415547782285621291588267967650259857296587125923403847299818219101319799589578512043725643642504242158964917562382959952042735127001173689886286751180428584802260077936640553017317828189369189436058466314441242638015486652206752609883763934095979922025977420325551668849730462365916654677880829698908941228206699389067735691557177728754357820646929300722162303070456546130871606779331597152721735049825452290266039677397740083450963230511294124408248260731462941506820559578367082025602224548416761226248067890858050120377380121068433086932395099958253469082445789344808334483788262037226794958563467707129279518973529207488860074958294349672528146728896742053395479106257048648861732266661283994452265759136279691551886804520859526823297011806370536066811636094637681933100648932330955562312079288909668970235424901795570185215822608463228397468691903873728691043431927421091967045160221192816729351888320306243818158638817186632254355920492490645923631405531551420180401926215588543350120005640539243202034633579477496826944330975009687194294448217852465150769186404518512424632594094172222866371801513902683587950504231835732087713011815674169948875786268491424991550395407363640497975083576369073627430679355666503829166057522771548983242716230870145064146323774926263843413336817077016021719952094027865311258378775607214941129781348624820049661764383850404363724757182257362489763267422288218310408838079098882827387318336640361747016119553018327635084660307380237968306536747004716631060656672252006865910319196422066017920685739170158936550801132372053205299619051323076038576667951827954046794519563923043360095567682977439969542970328637306420240753559234004213240818458313825981656591644884213890030228426027200420896822598248238660707513648852647814746957704876569308899458838095956349872998611455694623278504605574122922437991742611406078383524204322802708641821785936255590244660571074428583364374833843713572536566734344783124463694196755422571354623439728009074599983851622634815734201106664233423238043041818745837763044390593078012403327674055776945489986309525352101755686144957548981948469924105102738636558310536251182872538666825801277688335467234374852166647643153444891207487066523229245499694466672075208956698316244462087068323170404631704391290135958866312940943977222597609969784290441845935430942234550222905368691387658238329986471642930082503004846015754188147378537091872872636294189214240752177502774932924348633501122461857690009624553809005430413909215665662833098811712782703935355170100207581892556922844979079689278688898764120347865464198463602854285271344535632263761189072734884515905046312008081371542129663181104125308570337901762144715994838169572880854580198889175984808775011081377113900304107825423474338558405697954073718763007578665636804070445169325178353558220498898509110678308414087946164935910480223789315925989069548547588580017633027489944095065612153065908783363186049385151560189530029896832151174001823921882532001808271733116481030255939866960497806158905179815560312858876537717085374243061228215022159837630600825632236511597230355589486979960451584339570295828226873650720193412785911790656655594744800527835369444383905136364818218093986081687832886767537308639156921336118672599907374512028480182438117004187713307093641984118204750476755371515560890460646774916499283684923139428205779641164923277669439730005447392757941891067440568186060586031451374240824921825933308362920626630333201404718228752553186168985717785450828436591147295295530006906097392820049174862024645687036073029938072707347226398661227211324479135880107820774549830717949212239746516197107026929316535174571038082873359704281887101061050199917871607400874075884630563620360305230305111231737895139671856091257821399835912740511787752079088059070140886886907509535586153754215671659332769060732144294423520638137663663198405285674765717473725114985826555262137199793667200274436532381416825211452312259406163062840620562726227788211992268377427138212370737493165746949671115784035667954669778081116140913039825992392582106890934304023986717683011989839756837747320217146195330009306894926515672838663896291299202259485664273026293855523282810697604134600475589407523639250442208245833070773190087734535668257819030201250514647583816666670067879542107464863371762449590717866493761493626139476614527362080328919822499158431986021688797561660022239547279419037732502948925492290767847609052758108370265606060489137990288755521891310217557709328202486058013571153561466775999381832410927494476247405115063117515127400915939010932191956072372241936032022372160977502401818468903660071785289389175673221253314028610421907599797607806930715264313898920010679363796269523244566871995732232763872848570945225158009299954769645181577333040880233697760671327923172761558868984612656182204778757227360474368405501882407705783258861947950433287245705031422792615307302555232978718741654013804348254234141068734312919827137367930464599547732808948049637627980936199894928769468073189869527109430133964070334493367930791669885948150221906822459056872597285976933582769770438497629993017469766798709288761989579373472089345437292960231119996454865523432563848082413262670945534340805371383337309539106323160507980714852278640029009972820798786457467619043371590609512106722396335125930742345608797938592323366841847234630948312178111185533365125991796612173477421762647466437081626354386508832928069005622664297016982933541951261228919899483319679554154724806297190379038782629682274008141968489152219226329249477962645635258311157824641768134946334832297767045926830034097751018996932195166023274980809256166798138527570862088732869142276474416239289975510697517089404592063445325737705153676510885615669155544446574392908783082671846486549200124076122155488676720214495865148563758586641669209334761100378474842800661238446230001180135024289098941872243315880027657193302241699378501899714984492913005298760442311335383968933057767373956852759755749905566510127051060012049065361197411135000241096473742209833744353115780200055241866910574160436792576923033814123626802264129605512220844937401002041211539415348675807558340104507333643902396360617118458306181958465109436695849971970112528105630702480797466185776007189639514433984955987932745404734077733553303283804277089194901252818841745608614722059816111384845116858083088289129446022452934842987215884027167855156258389956601064173526365395783081780054672877669795834309442032147978588461638539914168266631192084435204404831910373640520396332651136905660097895224099803103083085363243587609808012151579681952342264474313699427911859099718730302569045221994075332120927588967485171599184629283073522235006838021342137363775351844064498910407646772433351254488796866601440363901422923773936224049884766533069550931517212224235997792887354511936154141229501755709738353580413036688081694383541454699627723172491494705014974571047724529852819709951021025644244984567431491130592135611516034742405796754626727419691585355007178516147132762030221394773591111901649897694065369756923378324764371048277277748220115757777714484264512012812716262163487783207834996963831082581356567562929570680067651221193857919592067276585509597425706049604529317874660411336022422478623554091421938061327873966086172164110688789273970242844557059088480198234903791907469619484570265343812379142709591303149821038031385439001819597315362583701089953378527592805830216869808917071504915580452130141980572649350661344455946268899874567469842220240130064494083195910465704737217083638063167785676276565199315075635740628074643755762135764934819554591966782835881790534985296748057835809900953931919022926898133367160275045152542520904122916577307201783867582160139487888674366997529019812244427483301305095313467203639565638283456486256475381015994194880721391733151263520070121580234424115467582227349164060825298145974584245096955526010716236958150387515933893747594841357511466755047554603789273199187162543357295987139901406681931412917579659184852685121039981760663130476473590370646723218453925880466703679426206529984823315728893325293803029291424590230806537139809757175948513802260858140907403631566457133739106092322281937929188883699096765797581302973077515008682842710150281278057663553803147733863806882408513927376085222675052438135451426822034050118175472913147162122445548792698480773244215464939315958963793694413557217204838494202662214575725554741426887409220040226726957709851870885098963710099081180121036031375829090265484053858034747349568313941051496100347134214823574912798649467920941711076268707553385085848688392473007922611308903415167934484979406861879894861296937836366404248201510658930293180127748574717226694527093311920674620814829563167707010146671501149606165033655537150389333147661165361162974438293272018752761465942064605907317321889376705143377935945344495953434897501315101495652278520572802921404989927344282558414813756759685990036560873563363487935952875554209830073207135388868440974464401546195786746905871357989456839156552469546411460922832850021939971198662326543775519120755680207622040822505364302475294088091976593591358843541383924405216478396229087633222666641125777239624864234311898353272904727959118908768638450021741362991717312654793067005385303308336786132776466364395828836022469578955205900641382656372649384625509701900289103752928740657495282420205328894520945699932793942161209700357322305289776236106666550472879855393389415797501431613616650203980179061332825687619307500464657701964554092631312516447276140019257086309047263347102505188853565645928201868801726747673607412723675480795552626198626044847020451900167966515288349875136596688785345260040658565872268760278919325469560927137801982514212360158362437600584493841842256253023395495350380802691901285004114837057932830589366066627665758159100216259546210722553782886692278582321714831373756109146689073073367690173743571868942196364802586050946970679478145998472153883682108302792609553210839020118702019968887407289813582926024466984266491763648554759394796801202053965186474108216707826605021322149744581402886167038850513321722613358824796052494156628321501761402415744750048934962124038604493495180723496419479831777252271271318376588331336431387914788374537300741111006086098875783150051766736717570767349191274322045524009194753351511118323533170262831815406197183211064500825060879318431090544407520102328597290740840320925782984393241576132722601301557834755686695415740094501485663332843121985007106474661190618972609728910475525946862116988794860233440601741669862606107300141306837405581295434612833266007989150085185440781667110304238370550088931934767341592836264630559208758378001256116868575745183405201351111717245355262548482980949621599031707311379980259629613258878042647779754163500363373912243977202635017459570270433051592018381097391139476457280760184455510126446220118896285922761668875844249829436638025988640372994624408460008082878144505727030766464733793199272912910893367273083456073914816010941947033133890766043003587008172792940622437968496140939280763755068663488939882232329370491728615518455110827236227601861959304997725176180807273285259107243825205305099446285972385829732005759073745767531125478274687232047935798585298885275260289741541838871505630500569441526061756157002520750879301995393569538074443853166583122109380896430932932640662088279738414854478367568594346827502036450148078134510966569031030899132394509307442327213902580257685813597558506583252500959142331215334467547877727840970937720975164657650304687947240112175602644851898990766713008309864054987513202661663489194741204870370258555027172164376648276368509927711405684377939199640415964776351367240158655152276714137072566074547532196372367138947857845750577500997192704509900623315486550611822808305822112995485883785673023025366438785616744682440801245019446533017077072423309225223547082872193355863360318918112597098617778287207680061197630034369094579696252202166815729551922626596774894174267625159340300150742961057036633841853329670349341713114702283608304288434391192587957758962043099922815743719441238588272069583503409902037009041437540087721058959329484427015334192928307989032530462814435296796694458342009949860424860065261131570502741888704507470468260589208417241793976202086750570954320179133118917722313548202223401687822992083789543497310252199829829299325069781861030112900177745805574922906641252392293640440213789418541343041923496664301726704387871268375290717618648343513179595241961135422756326767770047751020937188307920314681735458276143665023244720610565162048899304186805691238898637324025192469414780472013989077378551595352982684198165989536312060038096910286398204154819632851160763997541576921481768410247792649107449914399247308713361795195644346713736857239830756503676920178530481323114457793070935520163062926635616128110557261874895001254439249450475654377243043129950185624840065864477964557474046044532754115855558043969149762972351430546497956565476761320812561027099572198237051217821394082077909268949323210851224502471813527107461380762101954385115637867748575819260497651948799261622666281413036553052898413486849956568199108832404095692496823841049368972857045159114647934756003906456738594979526139767677380134104805973015700741558058416918792689713211903939079121273887163840607960705798139856979689670403039255868049030932392938978042395216812932040481800081099817505509829200960901797298444770686289322536835545329566056231379286020678076560916802475392159804532720709662301899401532933362936022303168930250846150350939152091535301668211107991454481958563801487968358760468956356335120624886166750437831597923729337506145299855732977985688984278281938582053218124443271701200629008371972405758142553181967438493495858727418002317559311238646814874243311579451705379256251449717071292612946100403484208528861071333682791943782046317422305928246734646524023348734410458938778479780610141707506564547961196089244013212926044369097811535186517327160993797959547364987438610621404108874017395344868870774542006223629595100163537547308202426023270406527021857543100878636215314022843052305463124059301730296367669219105125167132879893779727485389723257366255741919905766441146796015762398530963796777137178683766719845975670999997381468889689067766575313540788936208524565259913862044047330829846699321350195344581716150505279076208153924779203315345551445764300482608330019491947214905540603887074641880684672895866656724072485023316987129836859563959025809596562077791523081817959280283186586873125222365993432693906307086443580376569214453359634126718463358378102133051810560258758151716924104045588559440262257004821420026074836978366960551992012744252879911875625643468717233726827094332121926324472817734267633483984505540926276178479089367618617627325594442335456793052821663454484828899673684612349771075493324989381687351312552548335855010580315078943293679503299542828247479643213531396692482184381607612192023255374254677328876225784238615201914168257025856158042954112652481600459572294575165518687407285101551082722953557119238787770677292670771277227942707225508948215338725588207357464075466322398299021424197052208895504550675948066375311848390459815211941069506121369414522786683255092206469329618216721233241687393764389454020996225446151519571042733929570478237979942751165401591045964686641058149259921665686362106855370668488989040919951531105757645837804563157829972035087945270438213599717779274967116827701514663551473156126255672575242597349585325338430114911948662732357089715140641526265060015361905560157790421986145571539721333906476074390972394796055685962530479278440389490087019726963279205170422847810747299335048510320988959215417033820897072055785583609268016716319278947626349762436669592643054282559920786040918079116628639852813645541989872108381053181097504209614242140444294710504370492797717854179557681592087186626810677989774943341450035723887608093621889664604003936079009618846936949769555774177362370816477490997498165256295951860118727777278747811143159409386839253627495527949549979404112834016878422164027320059644123228384992338473769605648280596557507418170038515643768196010932841028710247047450338139313406993603273703960263661901958245590727558442442116960019682366046875436218949672909001662299977759447757152752090053779600281404270107247253976289340936891597984089433385937423701954974275509310722705118841111562308024815001237844936929602949032580549995611142026379581816548166296717992261081280634026291611543886961528675296360253165359955914548087520921678185809983498754056618787923412214487155692976277134992583724092653723908300300031436199156037816291827545098796364638539001193732782137187935403183915917566864760678479583351021035061658047241177763981249053309432747636284109285117618985075679613415470633771567933405627363699424646353362238905225853222919417910421708849304453197136264289678679104306887886246994117299774743804584623221164934021158755170798871973719714472736311338401910223452452648098572261276077853545614164087053190631969207593479113332906794638364078719400834222947561469337552113630116056082568866631989262187898027747980563242156084587215023700930148691150135922488069033953360743955558934436768978983934480039165847591277010368629842217555925213218959747064542712143599204515060081426615667393926126817972492856533475089150893126106911786924690120558185863436930721304106182781089847614784459325128368606242877860845572459855817371439364794776193667338380268302291574055202133077840097603647218389865857217100376049906492561212182939364405006746704032200603118916134711042784256275234999081931225262990465143737017675317494663762609845032858516714923748134823932266420731392388887046073985644697967164205570726145168160463106973014136494167669209206124825465316713174881286259726114831916680087983733100513440605733939098465605703061580263824365098407399759991896987026486301274041132418840364715418355236861807566119762254938182047960415408093161646996665830602518383943743133083902162696562887027609449597801691499759867059529194712249920761925476297334621241107793276396188519655923663332309643521904469232067617930450501556683122183852064879550898178507758859920215018533154686152646011295544231479416315529969873574361675979239725524990834227724373432702570207777604413969506221388527713858364429476630416929413337965973915733947495495875012062281897352949286569821869341620655061684907489845438345595434885199467758513952955190789953256793053916025836776967326262632339986148467573438056354583352683659302769576020868681895421767130842012715830331837620629198056947866300203627589816714635539576237154250501030938770864261099270574951111899986222539090945848528150634437804130043817106912433745046743845243804235034353038410829815210525224980026202945607653347700580089339973628708847066074490843717823845118336736960981491560830230328688715312107898279445248301673671527757010355381392516728725496854129627049166690907028472492083139321409722145809179624705561399153522747703790477316013150344172577525722393557173565390588090820791803285630167037577689895305879070180494242993329951557319808238248587023745829305059441213508207759794148371130808070752732495128847409982543479529497597870250616200184452101150919787811180008764256651171915013891795975989282822259559669500850846115709925399082260611899104654331673021221379216691866693401400477342747239771285768842440579929223868248513650679014351872727013440566951203041941060866486421073449724418786782050484229048046312424254578334901412160680895782713805977305802860169499858325744512585970872285461911272564625431392560240668338290590808558835892355950600910133582026481522307968123006462911135689385939468495601498354814246886512730706689619374645773637256693973265775644389909022054357320586322440757301846330781377651838062205852309634503913631425972031540370473184796906898931797712198372686964274000157252122982319658799380855419511218562898709838869440389936258122804602901801483361006012321567070315163773311153828805724294270455062491577014357063381135430904060985797053134816260358790962909654723604698228165664038395690282780003361497906928108216261307504964870383515343276811058262988509722412096402648337922177592207041704287003862905951067365593436236854949443285460127038434996940830323072105807971511719205656447909762063377247720246805580928662796316095248837737277000311959799033080903721596709145594333786600367022964256694172387766193465938927158867168854176072070696954843080585099600300189792951940977313933227889955550908366910332450313568122173844952755797971875775695312994112011617590118576552119274206277582658468033359836008807508528879683791472539572167638733877985385884611040735225848872095408488066208605630823897103020043898977959808048054767008494330639095992374567114989847375916597524597105661791310504208699092343053289644357871835474204758464184017712050906683867702487745647209559107719062030288351115292774132070367214482387596411179168424579677829723657824520363316226295666231689569136798069904744704336445158811241919168007144269010865882925353843922940527844661335535745363055132952757205273002065393862017246671535827660589365529615451674135607993607747644177566978313012453437765814294120577907082352541337428885566384674974564642060526067071427148609475565507839169532185624615776365785228684168789528397167081142309640574285963282864651073758820035706233375639899796016604528833621107440659728580735661379668321110674022062641073990271573798135074062755855692643025168167321566047081602420341298889318704187425490901996933319451949696029397460095800295505105511006219885348750475441545584273259128537281455015676843565869339981577351636868826171604864214719395524289748150500606073784949717378956894926063491993202340929080296014061589875089153177794607353072844569556788186859172550396299890233907557703769845943370954991189544197078176175299010673324958493833273938788943051686058574162434295654663220427048961806669411182787168891707698717108484843717686955949387505259110492904114850099688329303432170985516767102470643273910594711738157125347119947407415224290458650318908909836159568046733908020170694176889842982582587755758957148919783769405068029108535313363840580436506736686745026001438800477098516594547458323600683035018309603103020605910811038760877368382693517025201309199159490882045346710510372956768556699494776911070483280672267403687500535113843126323482688546233278002832636783747440994889330279242289400475748479173281531632689775621436752282124017115047087862371223656613223164295024910776847995114860695241670909724912989714023023488135326678056569765354187605469458743663173836375322726652149029713310264960708413911475069670029390514746117721416491888634964214751434378425209638501599367607936239316549618552126786326326876781166823835454459458871573883547535631119678188459418013954535942286922982722776059484518403945032194031347633333174552299016506266028451889600644412525253912154155427740571456427015622231665372423884268995005330750127504671457672180935662362748733949715034965339699814084536530483182180552416764505895965489073178767120003876492082833959130585022203930288818164519398122872139081546174957838520607655928910981719771920276019663191095861508092852535274812490549630124619673811742618818060368162530654252346657568066795019529418812048205757392465656114946801573037654941365932121949585994575931671292444385542613050802104076958224809503325290466152134038765359978494872569257430979450154507769042084436149666265675612877561688756534279795851971862974068631601826186788608235570891964008863518249045313048713806932175766173647617377834868408259965791439669023142050577956305506768224741457761196202587496115709692880767522677406456596361725497971271696139262577653978136006444462708235572714142987543162318598999077108650196756649093236122912589270624512778271449488059232716599759798103244494694645010467077679318315787858418116452967644965861809101310786581599766915890972327749889807735804792426971223249974400845064915612403582843680281299063958712634458876190898622012362666704767280297827229050664330961043419459444771645746594298569673287416831944646800069407358408540265750721208935340252766865885829364795463570913061949754642572452827741848297488788632725845351091168127318022532467776437667161980239401328421037160235602389532022434187034703426567703581144966508280850420710705514051466456885806823176310235737995874760224680620492220731826975067913419719689297135553721662447294935199352640415658911617937583469712511714250412334667981362302532735397481655639894705088549282958280788853479090415738693160296710391791770889086267484735074908484692495888045510630059012704200412611436928718494252134258606443991740144290445464010271417438036279333769327123471855137519243553566740820865344625331670042842237131564334509669463872070465327381997297086268729404814532746890679223719044283680506609209207970252000562073530580173934178908569530081888017157928392195297364487323841389641200922287706321444115718966861053363763641610651476577099442084781645419689415695613393522333468235556369706622120719168804064356670012747730540620787022276645958288088649670065548975013892018178859087501295425594730491496674911144023102219826665001167054883328968995733021000478484919039804779311787322571915386000489462920973897477785518874279578142499671043131522138280560671765587137531282738636181030529325132620205519568938393192833406716390691598241128325204812411914408341650170912365812037106534182835712988892780052494959266606112870566074344549992238394388794997916484732567829695904446440493955389484519277401654196520542417877388491737411027666888366041471003487814732456271377892211756947053968356612209478408449862096652043507751062400670350209003201123153824266836415928586709555761377917723495942310504097607073735097190110576275133495080075629469716975226690503100849722806625641491264702429753842666794583637725584915504538067557712669823198068805330378203578209447833269144294896507755390377196542062593685972481312257714813839027681697221609676197555210553540380384684464363575913761015049659271916688202501749730461562792270790505350313575580922457667186647821360365543364375038609022966227715951033502922320998620098891121668393411953312518635625857752607971745563604650079490614527153135596451092840244913347037364145906004657628861595388122626486430100083456526947458687857542978035352216633871576063507745663531425855859283749017813178265039524043650261206945130680441889620311162912334737776512330940123122089136121273628512322522135096785237590442725574755151271410112658736647025856424867517619265955392812639818842796593809043102277470895386195099087900677925570444453723079477886487742587391730383742471623439293000875280238841074507550861915370339964838425174150004748984210626616886797676507075337030125427196694644825501311491603396401148475456613278366651427365692440696744364818132276320947730088866697128074934409209744595182034776493328017727322797979506392795236375163674782457708801654394281744857710028289887704830005694297363448767761917918294504248151599548700836374781237008299849458550704696742513079865628750147430730873185157649760525009245888122581075995461839991822882836096378595461919092643450652660836694065685746091786549560372683061098257381982731515076519261058567969945065167420122060267850884561571555872837251347120222707812460424531805897643447681314194303096196960592536069789547997289664092594865895974860781399335058752105987119564247163431734919941159476091149142034639819232082190314908141248682534842990621157714347305789714167882356167165312808209121782281858074557786168847774677171277744560147795032638882660036287002621346132517495609222219777422971238503390663005451954398625746349186128293884332894813473465588490673118947344417869852499842849446223136623097586809905186676710099700923437430860880311524614402367924650643861124520719184158156641407503752311807408047853479906843394879030761039911117850408935951397816000851096159266276650849145891091782393521276117388784205599288733768333876335506447710609602194857245487107348049013148524193314445006871636669440784950563276961718845737349813219239066998507970737831165694341174231729946046906432725279043789815684875682215891264200546606298628741088089643857872989147975025219088257480036051735450827047694363184908181871445595874372394701255994119047462422627275781946052126104949863245885195972330439654416459557022011238595317315315768450931531065010386815445438064371318958718241021221581210104003021418217953238105886793681860102310093757008703327849400035327842150657258915448074236126604182053414469456503644673983794164123759195886539982290016359281703632374968193791006515700474057517064372507908090630056180203491698365303593109694373878956782386316414668005269468507328288182659092051180250343132488029014181036595819379976597532600329741802604763584718398146575174391248502950838620520290714379163644585514963054897653826693685817216717660976713721633679140474665921973425053582392080091178126292248493682001522069758578218481583880786092081544662432614954913623469109104669032904314181225293910450078509292791134388840796947448943070963716549672120599447139695274455452245971555291312439816667007514833000109754252201523537071186876061176436390398084605806571144564683416323961028746552127609748825633661753568476347699941911286113207449599140982141073067474584678519472900042645149553616654888542070398912687202754364882370893862902893246784199204205862189819620342026450395295223915522003120951003064461881697147087371956935696015370271089155580519499113101877874957876796734134767221770362163535718978540997270299945242715815526713657339898558636449935914886941117125079670613864634241807207528568876189375983943428850448172775360850480169137339281308388983351831136749682200676279710188237464337471197089545180760973586068811990901014120246833290979276306017801846002046574926595562714457755393409995470606121631849830034920033117372507172926183067549940255980848368213261432420278560250670893073751119879283368681317217500804159283387174025461555061161437542255145670175925797461825581289026340990232396885590698846819246217964053512455496840621721629183360851668794469039372382766075834710355059973289804382977677194475043440062156535617563165439070226409703907100722732316262293042446829657038256301223534710424782223624688767611361713714091989760066644956081782259179629718653718943758387671679309303416357597689615918891673028669518346759892549649963770543692119536280245047444865302991040551834585929729582120129234106030086783341305357128930776779262968736769668816976594332611118864682920484517459222015859625658204011686771564880171153965826714441347772201665942824283354610041927944969723520480830462436126278469799308942212780546969903344514447910014032475983232188449523187743076396446093593963149472794490631151737158928561349373361038430491300357418552636163910452174138064236645324837909254963668151269907487191883566974046519712078728655158761417723265575005477637969658022749864622314535747626816105149905784376149120823205250917441440307890935226214576213130828130965698345072225664853610970151399191967112793760373328154417155668431564065597651316670440487115035586366964044848395167772416998701583121924135442495731260722182001338210404935675184135184599354728350504668357011335572948298425935971432079972708641069032305401385418164672210078515913169147944727586450475076870093834304529380323790843061188904665417375775724574475143416560950750029458751477457652168466899403693523630839948297779300953648110533357930532416114323501027848559842423634890885627853912538530028894767753975904159130750937376121407895026472657283841659931830534577851959874189826598352912273905928784832841789967411930465144626735433665969305780557652746964347494811888861741883109752199275732522912654734166458892350701891118894455080977747420607130145662386141750396685647306022620490923083539240797861417003632222410867841333027242085325107299139906027756289041610099988958999290927706395149084417249733342933828957303170660340962699496878355332720981295671424515307166082369569445935737885145139798533634581203582166669974572993916430020509619061486315471802092610806288830034426601384664662642271606923974626307164289861406657425929045563793100008258619500148336246600658618288347573333872592410725826381758772889032808540386787973930751734447370347061714124428419337028079303906318858401082705608623096297961493642382891842340025533802568477624539302336995461651333690841749246209663490697228964047051966700514825492421378703502711657293392729077950515262472989440057838136255429195105054956939500528417337648645081457475029402898729976312839591538930393333620969756720115344162624479496963514170174766969511669489942428566917565547456389775306269488487068295275056759044214845317688442244332687670619601809709319402202786253073042018537809605092493543707420049304070090213035978790959806387516986830870816827080280958819155247263940731992830595729904753241945884203002311827316383756869183050223345713758535500399174927588004165831333960122814274293333030168913543875948051526993359343553514147308263061939764495989482618876752646753747325708988260674807097305093761887032250403482141031186718077276274891324876154292721917232144289250925989991354025014279990485661743838912548734768561246857123751971580900560234239317836847069178338886148579265539316170918953093923278849876055623874664507215805274486855992751329905291954530028274705600355134005314211210278202896942059304903182952171151380778181789039161771919821522990585747143642241137872201056597836125180756993144055206114405353889015252820554922917051803899504042936885583675157666889763050123601277256060232905507491252382647619760762068773105503127678634583085524626473748068023506755705999824694663292419108097381396721150412226360241430152552125938350329017505288748579677846218791698885239763222452673862313738829759377070767772237878754258995384468786166017581244935239729224993750288590296680883795201431167611499908326519522374259388788826611107910607640106586165852393876404929152764471548827033301227763171240251234782739238750829103607978452267171566760577844800857986133254040383210496239285544288608151577998483688704546906106271345561975776497256437497999652690291529336440948096101330172199162616190784344583371102231695570418181165910543860062763895411095131418894843227630402659952926568490558364328535549406605295871943393159733281098060949066766041249698083148424447189880650437871737358701535667718483188505845063992162721587500181722335869782040116015853887053593854982220171718822739476959651157442403707748421803389694656740525199240942644641400493328485864634876212357217745092824935789206257644817519494660751268326272767074261730103841771105457902272891673830232258594378519782156332724531277518477449024775646435445237247930808521633105801122051879303573096679216090579407811938533669584070272930767422390310954115327250771470255500778415612395386424857459602930525052760006563015753424464737586080691713044061305179205813476940482616093420983195450141121914891238497301186007975380964762319992640768344177770058728428593744735168958303446023680283810612268508588235393183115223640630542661021291931000420608947074563583207592809470547571674671522965119196944572046229079510780851107160081795141130148227418027354062911797316505048851006020719564533375064265886354709329509577743358445083109062807802106394505369236297171240666567312951323229878020471564944630392894046562135835702349678701510469140704015980212853926827677216966578943068052305776896122970486585400212799132609443263346554005103470065545598624921356552162722744116769292478314195149187507608581344109755721795634806215028142106525642056489004880596853723031657101299712783973670060717990342363931073553515032590178673390700411528425078476486189580795727939134607852691704988390436803688897675961752172647256034338488737491500367435696141982581296630323873232097869202273882597093602742360597661749029662022317625517726996108081839302436240744203560529590539235845966792469843021013848695482921710841743127859442948200801773480258978314510786796193090256526459884679393253328645706295444243172759105032229686544520672301521511809062508444389173586385796680774007704285984329056056200143309639217856400280307638316164679839918933315633089368052356357716129665023759027860021265067856774298017258220434101295757501398871963208506992712984696085956973779844452047816337091631870608329140032173888509784750185129052309837417572560225181624838333451690422372273474428493948972482073669262417506131985817425779938472881311881440963955043297720105205331106964739188368817814653039060179300340742220913096730974288244916350554772024372627886425452221900804575411134460634017769292126240757069212534273647801616215640745762348977898702290790033960518958188018337649026757384940238606788825047597780640020597293535872259045787099076873944449522776480512923616659617863383108826983881620980556001242501201605885188453949871459744891921417000712651767982968715910393285683763958510572660946585812901875487235464718651712618865297867739803231096703111252660512304274417175180446439373987392399850939244898981685497593402255430119153047479984601554986679773851560214273686397343167686802301241617744922089507519644049714716341412201021169855899489026327904932010349613608656186226946244907631587755016628533168350904615794044354397567964820053940799458430957750375890699714085893820673120637565324768800472894965332636081723854996643174808541677965840330474752570501648169613962634508652470164313204359374910011091113210901543176114317473851159989639342953903285454753107432359147924237402665125481692270214144072866651411567876691400706456987118931777472267159034686946509483844534505038342634491730372341578984656172812460502849933676439213885494041097406665336947980370282968042140121435554716673584483381908801559489139986722571905124038531783904971604999043410883299447459293715733822827483086709682370208165931984141108227279501193269856445969438777063821233708446153756379154045896047583539998323378891832323784503432394202119429444356161085391757793252625793416637100180386447873107955011623431275800910948149825506310923884782471603352110613306896152766576362435458317160550741468234840532470837613897063524300863026312201928488974719130541748000284186355141589697584560651929955025765412014775616337761063069728246034741044546474551426514196430743359926401328880373106993666279335534754898466568466398958817855201123063288716203514801431289361131329155028630068666638007408886616397710697509633955965111001514594068288767763941380222335326992792031968646376585804940043298030481476183563198085397097373418067345805313454686569061642139841292115915815113624213211689396959327005933943339745332210675627767203429514817396879598034705647729399197279577819254242290528350201873729529760731931331138456415537320554833480313656430098416095312512782952805013190169629489433343962722178107474975985442885421906383738371060333248415981602364280444932575029631671061123612655795566606035334063919124106247674990571518509718002842692651776904940290143579087385016897512257929474948973700664807690360180773479701042967657031550036331397572339174820267171434735794621230930451430795928610737868724526478290813738503153383491317970372804743121026131214199513255994338626776165181914195738907524667655647200606812034511603023642758291933802972145923652992061364278652948359617679065171075188636789685465781990320827684393517123616759384877388731730683548234468446342880929390340717759217239287033861566731350118505595758245767061730308012169746175592609469732164003224130320188345522427622956318034826508597901889099105069585078351031315884301045220917574955920982771864648792403041213357569847961924947891720239084696744170055297259716234646934633196292452731714003490920880763565009249324449630676749789105982278893121037591834381832338477812150915895598832417382808817187513013958485767237470445097903244495734749400859450196340295561626741514549738686800396220851980705623270919187368192513035276681968584106765996176526102858772275427488400535181023644448263656349570498352541879818774879119031204144517559265641166838784144588305860137292128544342514545886492325852852484275633129392902764384725892063378165943687740404282789453435459011513792464521594349511745671138479220832312846976958889152877150380730385482005745445824116492129855273779815115748044319416221348197661085147395411170504443642339927760650593867788528837349656404828213395611503012752935645743670442103435116106837267926385048356245796497319378254449264908029421678135250697082213162634656051288429976683874768525634349492729469680582258991422147713247825417076338400332398968972882579003449723650014842775268391782093333769948910633862964502319480147054989895925067075422900581909406883981620138931410066798752115079841403180789816549702164981057050325166566690955018726070011858039457315014933554279842042105863981190627588328182864313895172202336131476349790935148377635075733147094697483444906120885193127962156027013879877430829168167958812229116016780550289527587083820046893269490274100008033816004374894925326265796541478101018331246326351525499652530456378591143100663081938390546600739596510403215713212299560181322417556167696813882313223409093541501538002558612771146319832154436768033875177730252633485561691397192349489518447353683937301264294441044747912461921923939465285365577181806452522571627200903082749775563655906277236293484375713448216546511086292285579630111053814542434484342090779489865925406964799432958880014046187817455859746473557682828210816920642596007505610841847344706154248693481251586363954617551122955370203239919723319207615513779988867189316799728820720869518657505839145215426401703826350092862488442093162495179702970625627909592226514094546564562762805446819258284954851992560072504692696811470512909110253765888111474210394875018036542282213327489049119478095460631471820278864386730027658815681656630345053850308658563739164447879369974568450366036856442065123759570625535649563409453450589793271776469849706892712559456281989161715797886259332762783085247601114649050037415714196652307580021877300164726781097483375715688972588486135623235309188648818365843724428491589249545419755643294570130457480089116841631004997125504438514496737970397367184865648803194528715985562001883536815441557315026546034889871963951905251816389181079711356291001177782683568370504846620424942341022787952546425867602177517910462996736325425415141436204739846306931059661608100263946171865217962925215670859908816995264723445439433691964633626215185687726824535784664140858642878997239385681615236628590231182836736770449309064046783274938527072310096713253689375422825649257635084114021830598171083240194819279796134498370673705291977788728864608567171803549017426768174380384801364866606626438311841967731620554881315484142857000754011209767291905024077454319795026066871632784418003277671310845303236783021813938412952411200816791569557446204060659538446589553709829019559726725975307391313406665813614846224376280009969453926844515419522327930298858402610206125361781430195643032240366636849029125568299413580798931068557430217082335285145902243986844942089212367339141938146793282629256265904451314657464395336575100661053700948327815644996850537450043214593001385271259708114643514115069808828158214064729523451466062703943654775818565659489985141414478195963975318023554170468167225875844192217059284593205954156102787039550605132396818131035294794379102822701510179725661828104696544200760387296397581733091932374508946606566344779148812210192541822280230130738625291001607311710082319514819766902598856057241671132771086962202700992446346019902172586625887675400367121601169567625453297095847949876710834615769205524430585444045139826653212964369252003008410866725131033040239873439308648997834055469026225322102444422380718699918269868736489137241579916251436233628949832039062291012842209359802696727137027445649559581533305140249128579870963060490947487907768408790331880067412506529875273284475509848625773158102695570962171922800475236938724230740394874805507802945299967895050935532878199451595899954236703236813548656275912655893388141909773259828969980640023051168813338429721210881948134119151686105359791057144733876075286575254642569597064428081251837100047507300884980058955048238367466256754573958771731285912824095379742761446460253042687729421866415607059539465480237595854397057017549590343616415927759135344415588677528915322122033390060855817358015322117426592221396954985471011945732107798389703592063920411164569811199228121039142996625520508915692958547990451283658826446628554584628308077309384475487992069202935093752106922348788315410469808487714039351885618888412116660733385812669330888838334895713630589536615381315060368123866876303189885699421059196728534134903094683000796150521355441431165767727224437874056868246295364973877709684122209556344130208058920307166146200099429739956966683048828316082725747871244704791272560621547069742710740226686286050265951409181344716436405465654675616939035116206073330542743403323108642237868504702388883870535985433458704859422949186854163814371304995748751425064991686885770120804073128171679829707667944782654757242583311929146765591638299414175571092967478623731633672961460825794606542217532322776579045534722804821783773029760920057747988604528355784527597593453742554218269135883522095491322032661840597849934858677925598710860924017616071550208910224388705631672191481645877829186101088556752185125568367804355590910310089982682897345541506534585672994992863242653100022061091525037251442485607293540135852332195847122587010231914952850349363766814624171501817058680877725635617402495977879415611071763238832483470287291310980841019555828974609753901176060061922469456328018181730298031396752021450803865816829419166052934978621083516206690895914263543164942123837928176544752376817665641969774775121303815946811197717538019713023027493399441466069588559875017586803961888753120677483076799802761732349724752335392466739352625333719334480050215716655327199887765988361590333823202521325047153624449859448688657520636389140073125198769488196910264646254089456748665101212931793665034587841931267875693207462209246845436856447177348031624448422902711305108645269694404353742526519867097422713349931155085173341679508488277299659392850679885007024912812384712381875774218440482792960765131666162855580820880427222409345129007187698013795173372714288328115952548162476654143734356781861596870954325842541799810409902261575245974318883447163903450442830416070351815888505977999316243401565748312751375486244125216268731134986551225074598868423383363479857705678639730135344079892325895051077104602883468872011449955010558958137857114034071532504364326960215746161604335156657802834868649211745897213009535908186530595875188895094173095842446198001891541275737932386408945582718116859189082894274513268607211124312128144478387230414530066610533008049579361415155246486132798145280884920916589183197332112597882280898946775414702621079929357925041739498166660833844012712825969479554864154366584863538741086143387940296465545718554464082496477144356040672015804774771551371681620889736488340592374441028777801134975049699893958289700432734467697639949278193683283852543644957719541950777954914606585425183907803607375869575846177077756281956222323922610110090352754140054248925258057031757544331326034541151570506176599897750682817055227412461519152953928471033606108825004534475335921327564901761747342469233365832477331402136483139531985263082290969154200029996191499241003980543969495633605634877561867297399444270486458412282471236016484744838824506486268562584163545859119357665139865554457483380593705266467057865485809008165514871556648068821292931507767016635967966716192458196582469628586638713282501035679910458694392096525648091030306887194615339846487644272641511546693006305239634637899185677857565540333667735373391955081004127086296523586905598045126549160588199620280860646067843631660671632678895476339360498905012255474151024841354539656013622742687568436795076391252760730907433771212553179709966937469234267307136376568114601627718644276304950357905160051570640358649472252154173437832712315093973289844123792422309936310196154070927005785141477739441221532905625513116709290551694173224155908244306450234037165768357297308217001549570709238075854770987823552216833356507673630482104269500537761471760380116768107235081432649626061212432874732527326656631303703302162170527250247280664308400366519504240966337020005405903788572181448574699791602898225836710472746975870176521511657943045969430237207600708119880888038394241015451726501465090359334491184970110983820901907262754640081912746109252946408545713721128810982538972747802786969140751271762507611744834877150975635252071667331585294799997396803224175244318098237341566694377662682133248502208297418859804080062070713902826663885700101685889870927745904079921746443421352150755080309110298121578113964056286589580753437481771481677058419447456179640291533373337614899425058452559485186101730710523857338628744431002867540395972967617031988013973356077691171712152006328725787407836566668035364901072858846161690481979257632305597616974116890985727897399589612771615032934461490009567275204950716500665692430866025109159982185877414367222136378088196657619054184922732413102099636180035937649158985543121555822889246418425024836732667921614916508664190336604573764132985184381605452331024019360377381973431008215104029017312646915689835939333852214001728062334050591374888273971835304762882282440747559366917514233994254474873833210379015790283404080450082246087338319831057131647187554708974612637204338016914305786653913845383291861370578518130872052659852223809584790958387499727292848577383133931436422473038871935366393359309991550661265747219111935772246738910259717521487551045251126973211402471009549474393529439693873309624951370928909349518397563667475010041832310601405183892841353563427904065657804052209858022418182659455314388220610774464420705730532183457798153357924304622588374356705502134249862976195656684403088831115611858932431558192447004731244121557814637223322690520611166469647414228892069595568727354513204985902414249373711376329056036249919582290226443118975800409215212768445020170778409343934123960787441076356680661831758174250975763903398066895012601645432914550207975874229611666653895797376798314172453558013196469383610815871440144262775201572481824357242400186741332264238334637604237688071693509261803701344212391339927561419978239556577949949696806191409447324903810828578088063731702491284694277350429774096515022617388561473842795442010431691063600823952225648473531952340869171250487589909798013123361677712425059969438777492473474726704971500747184747332141678893106203427552701498013226005696525400496930975554999876327153933171347565642703924720031585617428513249564478105100591772693669894538809966539968296196793210190405116703301992250355506512244084242827590246938049581776401022199821233588137138366743322428086566307845823942039648823154282922535025246139095552601111222401382545082448646951881602821052161456018127198909795662964108613561933375860601830898370367667175481161832565843286888104844799422897802628508550209074631283606464250970256553529307105623746514564748191394162023169963316011790198431937633781306855645799030765174196391938615655855198110129388881605731527589286249918730635333086599675927365594475731325348611907242729192110386033679771940760203224542082739121538662022983354144914359458488888703455626706507962161140255828183711840294394267299968446713457699580492505399871870755384392090248290046540515017902312044016412908174637961682839432758398577951311573351261270415944563131543157880611325210227707265670554923735266168936867889311494448119980449696657802512534963799651375119439179877137835579292676732775675999539179525194669722215090687985130643046496429516883202768109401521955709641133128442609331633300896914253720195375505199424648837823608457086481447215057715845441920155770619178044951817019449860939836032833290737864007788812214855806759012716875369613723361022058822966558892903123279599872341351030119479893949736663005553785725307594103413858381570985683023669785078680077058088135237685880232792283920386178788495756302951592833257501351777286630537840651707965471337511540274288993889995512239953081191725080413280159515451204590819846055080490686183851228087482555565674620091100770887484075329335922199679820926617979880302236302240979505779684786388382599007337906959642204816980101952459194267052388931327628944897152576518244950453398244352471228910436415564498008842867886177212669368291463921229557271068475189107255298360696134624419481582954219865879643356393601240269763725968165733594845091657400489038446339270796006704115734108928836676803964250110061615264371929216783269095303474494941219424793433004353927253714645800529874821778054247869863524975517589358485973100394711313296627015474217008212502411359255629224129427624341621697786977724015296969019902955649609045814153183293184501033542390630650479169745769474927442890201146101077996526677841787449129745496596152278742941460771661069034367983060325704016663668620254384010502443230415431620317713748642963839316515924626859297834664990794199219080360536298354605484696925430029534549123994596032699267806450915556486186475655092497556513619849860327783304742959076109789422965899408938062385614671124245790546546997690928850445955148225139529987897836171676088541404397218580465338852186005805687089641867567356956892593750265458150014030382462733019298018567903019108389270241104855199650599147047483153094095158385265318289764356903894439892546588742230520446819734557713622255088926059946203061921524107334150589568307453429335237410488916230686612958790459762518775099714149925505412112216625042501937447972560043512915124621489226337422950782395841369473405509527907866262649582658059354731163229031515142010185759395503987069081968906882803821459565735186253998001247800705195122137892333179419715788439992648634300285551811841338372790566965178027251620297016941484050182167732149621831748480490456328863237893591754603654902169250503385362977628548953090104731755821798403720778234687463735342011135968620080660293045294163140829101464367966618494638163642542967984043439638500779330298717339588329144771971448526505969956457504126915981438056704916747106886276347495137929322974106875057776726704964857088066486537198372978968812724220923970417363578249765739504695339739689685532706575648317346494362517592935931406338619024889621749410454233575717694073556879201379991444947640760457504194371447203659558847701729971728238966469812826657644099674297274101077733814718818768334409099938170080386754897417638095155170750100900040051625071933391319469936174645074255984415755173282918954115312638376630580498958478182793078603019864397947691218806877036283884757709927781157355722699345040411033128676872189253655503861904738135378057283868506786725448236847221550638276260012127610732390356874102455031774499199607899804436799677572916438318991693920622883950330975997877078153606017739032391488974226747969967196623970599624080956794147917971731944884746291745689695766383915969657905252947789920615637530867141155163099787841649190170757541061209967112009261338090180905118004132674802760633138439888672088112598015873601466447950478827730045265312731839778237088626978016254955411160745312981643073497799218455781759293505792734775390298332314081842623738203161288978131181163423727739370600635275873528448924316997965948256720438118872028687493166400950221313622391271968606726578332129225761362242644942364877470894240807929022760465488827582646632445945134729913899486525803196281683499588341272655656981554719217103531233835815196866105686339896951570742835999589123428510316763757272371017678442912240859234660307333315046877343314060083861069381303449097723988268224463100715615174518447079134828226705414800463566608123448593645510390969267511413718311728672003894925953790490577209001214379953528130762319238320946454588874103265212947111258713083981875832760180701487791029336951734804895826412677279896518774735290775605468835535671161456193808002810210841613984833803987750827069781010207962981042975089456289467236946013514382738082054896913283404693762237364484807722232149644593206241144757199068662725633042056240959275482717746420816488554885042406029665588407705457889083586275147634859080028497142062645002957108725060581406260630816272643335789756277224220307881268995123915786044475187458964342940142830242953026533751763381422265646545495815327507839112213461583517505317319736356571304011647745817425297080325830654853061895826950989373315816812924558625462761971437905271134019822170814982964888487841100021743985007551277264825041696601243562991632274186562784855419697440753062939950132488582333893131369405884646321729367070763484764608982660709061079344436971711201637195568824607043771977133451755695892788405604498977253554720270174552239989612001799854047570240105857232140384935448833382061169975403954022660434333410386512774967291384380016401798750237706036342038170128801146613500828362318744008506464851124118095496459443165797183831402098079237620897909935532885360837602158871741649209846925901931742811059695285844421226777192753593056501650627950736536926469657493399538349297459998380625110587380795401101923602519632313335551915554813912950687643447961591996189369889778555819501346636304776332359916641597367846732704927309610592159787038628929222126385074026740879974199225095464434824976322944347673683104641546724229701588769267893808396857144512030307493108957825627894884964623206404571778035053781804990341931537888283553845164280907169854377937139945940444781433271912780431840558949011847843740129092414336805126493086933689402884870755076325936065288020020870400886933534940986226180233749177485617368975121767315513777050033482629091421681904756253482592235202361840700261618432748282045653925181193647169817651174994761648281114577513500651038669383236858241470656316863749512567012389758913682875024817823402553654831200140557760175109583024787228601303445712743166056190419512320858709110901189815380430107768940715800938482016855062759837904099446925211311161466965362575300005865857958654716431283966859689272713750599660687101717600414684590089947775415918402881916674736785545678761346830268981331415787430304933861244338712462421921573742453215061425882167476172456388454948707605649516589859289694550580170373348849648574031567782346431197717900306308926656656762115408931373955290069128587824492720439352522169587935760450844378160714536926444058967440077077139272835773723760239222508755504626607042715586177235789539284316850149902109387642605583293567287334927536495122320647097818916807809842743601743038753003704183256639636596514228685864691111067084298875754607001597439927727462666652269500165543590203004594480847228319006846741031904607651535951290551064940537349130671234113020966750342487051038975130120224086609527758476003046191417287230969757189155661352699341027220598788361596638484450569980653752772042557826769608927539950442795460096706226166457927096111753438909820675937830419018969919644016874134766513819991564550862488720743831748994808365102379233775324816318188742392583277340941334057919730834420924676793366265486839828996971784036944513812816347042867334753483330722379886213234107100750655061701706933763446039748850764255167507475404421158553226019907765787321167372890051168782554184391395558684811508343569265381378464755787970388385778188267917283989901316897627821649223586180533877321109625484729880162519457721668222734638019311231189153643701366477618353355167453831328783652504424572287054024584605566650019616807103523820830885971834752530715569730579051747618159219095612519488571726436647449395819832615909201626251919528498911532082356557094589298449233084247488075380380262482338496345581833788237366188793784212664839163519512190495988800769053648296238005080550672023072400992087807123244722698411509784903230563100727722804326135823371214238966714236949958058238433429905820029124656881677552981101519884916737985065175275417460844743205992714681904692906879490929001517153127085062465420603621917461189388088446666035995185786877802483979118012544302652755449882537803515210330496497346783143480658488147193117026893258439361927182039457594419035073325785109041306664888604144825278773238506494982554747705801417169082730564846516655666440947288814664504591694114162279811008534216531788631280370880365506872807132382253078265399833637546625292079720921936727388215444961391111059985396904723353742379435067511390654467166472842172968995525665151225728354589981708798064887091120972329469990292380140754784613995290139801450947564261085081993392612248538133584463209575534922490043529103830321153344972092109733009412528526444808929827465788875922850066221957137611748857269054874710392896243927405806383829105115126422755145315515016044060284180356868453110068643073547911862407528456559730485810368903952670984155260327200353342561656572487574837818735198594381834851865382105220751050443100170721034543873524850363841653447660414312747841156808886479715261895462094460818269502980024664667475047207814718127578215690777292206297537132615382361430125535748726279291641523428531026703436491520078624798847983910229283554629543980043839744158190985758179302986796227573393699031532110446445650090877855514583744351115197826397251304737793828109965537303820375658033053930207980550504376409432996064122084485801831886937598570785824066442374261349283509679839413465494127835120984158261512887776751759184168187094543712686891853611817270429048775407034665270187421308435524334344032544217557375883126336455201596672222318797017420514692773951206703899079526392511956438938993625325254188941920489371357087867322984193723154760891055107900283064264785118583544830616870966480176628491545077662621071391604329645954467719256718244377399621570085565641392833825923488618916567186330155035462483874378143869811244299823571676957410011121072701107341481139315292374735011541538785752318979547952026263928748167948598664793326578088845459435491300848637631299800272211484822846372172763967564286202057175709494744090565799022428157213285804426392789665639432817011821247301265225350320127939062839484188257112144623403420554450256087874503875480444554695115667407228592558830468607110688140200152486171636177184566724406696620266095344937109731903597839671359833962231563468935063089629130501581063411225273029192968667678579058016119615899556103058285178426496860735840543748930117618279714298873003000892247263249093425805244170473355725473613379404712157739190973514487745846408321061313379587407892708974852412299913073669534230913002219669457525280369359670307829534581607538875506904212751410934901021518656483854575775005956788663856294349982967276098051765611137707108261579901656299080652440975531539383727572345378927640384009050722820370535735722170122473112277594377514765837510283219335411616089577280500448358418963470099777507120289756899900699290410614288086260397913037513485500635829302380698036978870753861586931959229882671278877258933748631472453028909258180468163856941326947788027700569153653003255755988021386770738076460652430438928510469688001347167378313963848465229926040512147949040662746764273267455451391913795329633633374337353303688277558026046762752434161309597413276832976784093565979276459468052177560160149327137696090648649694513722673167800217438415100730410371907309950708077306058109687511045788691703202378627542658376410111825758901407610356894503316436002362639237096656760304931995850448137733258772479204204903565514949491291879708907776737209601269939551465173468505229576713498041884243240699908191674507950023201795964376443959582088402086860797519837211855284817064667111616087404530873879243645401555645238848891504416822491271213692563195581616283100681008837547704869383279497643426825632317701801853456598092241712366626216066455998429245713787447457877311103686123507137173219715198319191165628604321557818023096241943493459962414414878239053143347757969668988392390704764200608967486396048948519214090810404258140827377191601489407074089944122279137367339091849572876800737078163802525133147329167154051698096986272616348694062184448743307244081728015334020461565136563199129873907834041361918838279699617887129316795845495249338671159554411207067576074608893506784246824990316501502704822619196164607030529356770495697213895261415969786649008449671336607021266635182431809118461155885230236852461431535190106779679385422094315571075646267080970217975733941316984607676495530165635878131173889949326792336384175597064026884015192344552649818324627193289928004434466456329933547519583881206901416513439061309188173266191482577240792344537042476062258831231339666267323809241071995598862345172149339031624113958745527672286334510632889527842811855212424212507869118487122469634864404809258705377757605733348148063228594917320751110549224329553244820973877928888400277002041965389666852479998135767333008586803444563348510581058852406430247711171414308375506561795752275834161244208270622017755216958997237904106244620719038858200614692386808291465847359749018630992394448507283142394784749321595010196479336209018588617603007838535234661928553713866519141083574510065085982152672287890980062558460278763681041642516343292151121586748237613989821068170393644947774484681019031694839897595410999944519961099763661999330397775223389167628209491769746753175339853132982173436586285223292713434415971907363606976930943052538493151371900216659328368196240091589645335396521216772396625908908818118171194924475192031062049241692793604056688373433899625183073746204022232357151527373682387521002834567965789815340153243807425577272966543410086438657323194572465403125168887828963503113630619208087893481529390440378414772747870680886010661985358686971553653522306154060614657400709979144838395724062620748463761711223649436221420064003893332623799582505364227285998088576263492195612582492272531302448768841670955845172643491636956025363945526070237211235454984065339363448929728169775239707281395597860141619121963144174043470255274129456810284729655211958284128896431860873338911164449564852133469255680747155417627671910381355181040673914530069137334465326784701185229227356900756008197667444930157957383718303373905930376712458998854704709967422082025450488190686900795012466297409450575190348785545691407173428704752153715763211568102793665605499768511159967908104190822521315261490188725729276746440672154743807403633119414487038999400195849586188556664048824867399082533739516927820364775370905007642546807581053998093623814675797270640219803385745436022265767657395919337962082402828027063258926271798055577133006917092841221513006200169053117932417615682010519317978984609266286020048851779364925830442471732458201700426239676909415063037949948466653390365662461807574323245282312563279150725296287848938704668115156099348129492219793312942025916509818571011836776657105868609804463326707710741393521146244135145616449958794902307842290723224674446778971249258424187754307682835429702297885650235682306297607559941832666571402097941643133285109985702837185987658049381805601616534423540511136932875184879567589232970128004843542299940748656923727574252946766431559696620096263331301441454032637203346753751529748943648875744823948646498012811618253145788938069262499380044302608901415249433533821981189497342692934108089894825044495094521273237467182519811036268065200659024296617673751955967847467571366070430181821811590225936851922932637407722970565387005349425956035095287311736655939707384376510663004240107832104189395792147709638335910668931828588930845662317847937237837578619772196790572017674471079570500857266167522656968540379927481256565765281104304253776564311853512846001212190141403812653846603426885119296031529369183347507464445588979981458885736570035421360329826553595158999034109635891396748244586222204787563876928843528202944066974178623166665454553171562284565302361457013691812159261675261625865063878568829272120008329874886755366293566699233837617214513447787206052361948119102490833269214315376290148660116537283812499716571148177917389315433722492338292299022160838285966487039142640401279927604884164232758892626016634502706516691343036201112886934429750137320467943102269603884320686226721482866539250278024730193391863215256624716577477075340003728403989758675508827000047572374919191560572630077338916146747263339596370335439436990630613374016536406116909028353984680283728750513846130404375265309220367459148513179629609642960469196288535658607614463852948318119931423812274816182361013416842290784193106316236596079340214493767304466685200940725482779448341551893536052679381481900749657372528520652966312044844161529968198938446761535947490115668066865285993653215324262387340615751383097624975498325190126954713469635859285695312352014109960180098719749912096919602725053957195565526071477371835410143448261745091150399173993859170777149401619202183361330638015572391554101279111634167107228446468286315668994843073724067782835957563599315691159511031993882441513483899058762823587765989441383479730570575289629562795689301408579522924195209287470916793939074272877850552864720421459654115471995854176665297294053820283173709204962225539669982567149349361347756762139769488897631157418645373752245475680943665786110632748142759693366740722501644866265561592425598206453931650475127857244522511436179015800248763269698691973207735682921083713446151171996710921069752358009645420337815781542605451840346740612122272059067086858071620721183516794891233238611097588903966905420523966531932818537994143685441780774364121480313996032163011991058221527184184280249583160229196946366729119769048949905123868586239716097573146121012333210283621564934375427245051907491762683838866267069977419796710930131820163053075731506317443888473285126823694228281003770687667839991032532440761325372261591258264111671136972000590499254719019736773286782374176517202711661586734847349847395485549572402965232532369358955651900816057663374386532691995423163543547124179766275695229779998665852841912075122979542776166790234712814169570420492330523606483580272707124254191218966715852560614839638350270825209263049917808870000815946712637508897967005027924398753830422532136263146168726442025147124126327540673632360867917019779143489758861722459724454248550402343688591581958972159685428335100164725654155076950262963342271713828179721953056838575081207897649299237358209251036956868635695675259660647575217383142721289068189499061698603745347316469541793370166625348075693416449469037052382811237753026251675814621725587093340904537296299035534204731506162792858946531659779844537039346949898703550246675659468109901075636993012184005870048222457403203603503271873820984988112601031348652364739167815737781694893428920613878315451401287870869017115438357249505867183771147694127734322353452788411633536422168668939457504956792663733487057429322174070270562792648522737421968266981091784819772182346587737891435405291924036349427447213485988223437191469505064179295190606091581198774316407956958269523808641027355818770996596707620348479236147518817362673656735866691357225646788283129595199299445302910325658069527845236081792308457975405529719141402160732821004225921795676494187457117085036281279928260955355681200180773629043979588988816519342506156820632118714815133754174010646378820443484042596774439746805749391591633138370451323438324809892707300254066552941956410515211929934665625437971066900689385001757752572434902740118640814653399023132560811691148825074997878664763070339007737114437698958665606730086489759118003089693420634642904402021580887101814526435965253880066000883000369422908120492001495632060626365882299547149305076325589719371375832167313796020832075787080507637449411267186221704517230267347573768382243062753508481514844519511065434944862369022878525080767956337746021869699247200625069020337397974411158804826782228733339131509922737006988161373500996374220832676271459823284748895160507528243054801154398801286678359370735630726765217357083844965995647781451377665457720542991810887346082352751498858123119724251832187735495528452604029338279348035599586333866839323554952411177345563712983654410266917167595365726640821043226035587523820013090323624846891333484053478511996260306744437394720149148628123193029539596598443921254658734400162787797872534509420273819885295343221754275376945945317095367580353005316905185434311009116465451272989807444645736021754922835254732857193391142581251329794879211348536862568713735031135777251792753667279988735599216419220461996659168091670493272787709019507618372362728923993136656787655459416984308822112464568819024115535147410180872881457664860168680280262781369704569582020143286203257963145441064230295178079484676889822778020370872361026911740139115204555534072797510231384798230196510226972410414765597500174169259088401852340829156221991961921626091361733944692595386882437337539548154818175106033474679705728108310701385314026363154814060627839001187784606301736480097385950208185093276985520714435018606541659230060775400422521939997220170847116955585004668215727822684370350670236672596927295920595669064292754098191114913962333878473515005844269821744758858982498794847669171119407517316809521652503673581993239274319950869127119194016544008571207143990277405847046602540177307607419077245178682848921421772014552409313340626593437637982823507635709067897055567161561516117653907446433956818137999667877861205652665208995555945130980201216295224970245982193342628124864159184388554472356227237574940727117440748605578216327010317511064109718315872067676883039699452063908723155713616420563579326741404020689901014890634384595764060427429707977200335605875047198125190399392742944971813788491613118138984564483017747973533643884118374337474261460086488918856120812614252514156268286909258079250086660386808174303598824175745903737042043724739343770201568658397747918939105478219117422113218752437579236384047251936118898404733676128070818637238822445351874502764918164107709705419954986736860219977678938449964374534592683217672555850953800863293891240110832601410733720114182954315653340170122963757742919786608156939378320077434551254996726172498880466236339711146291923237819121060694740827592102439986317543491648617004400065792585329182961649214472486786376198668190265032932689129397589191255534580485262524476131107501215206590205557889279030195318827659861355316785248368193797986528682634336496520323263008495335290846909222660535878949964852616018436789923606089655661183758812232492556015465852135053890572924638181682042483678809056894822675538370881524305261399090389770267650389855290402924955884730502427091651538608627059264555273461405834614594031506031778916848859616016187602812994906302223510702931507965436385782082920111310292100318149141252795649376173344620293360315591751202351299926843030060296459849872638619442568164075657248144015366712910266216403372920218779181822373152733100453861393364505544818953357390249543578993502686424349506140063450784591711413077520969027779270673014774508634596260948925183223438323667152340148706841385762114644631276547847054346143037671116214232940795424173368999929419070260031011868270390208521852884273141215394912024510577061741678148878880665280019456973085345428826616133426358200961015169510505152459502078120586699677105044767446984389122479633569733154030648084287372445678904472614261245808907225792786141588876509096200878963548773590484728339024989530651665576307992571658427214043883898987621462477336611906223564494449821792623465183257240934816160167080729548209099887563735728177215811516839365853145800270142371712373980483778987480278660118270124860036852147822991393298940709608854629071425261883329351438541645056619877991689727733725609022771454624114547324278174636548463215689275014419347995966006075743743486705849914099628148004290837484663048470345396796647140562217402528188406910198985196782990857750229877974617041937337532037626932517706388715976161858906851962650580035202473617273247178375491687605949012410863609547477518261087740920148247438270415529329136719962096605817206735289090430243758339650229003897254577602118253665360221666337572007791174915496421589673506244701310331656999985163156731299863172547587806080339679884652617492595054487998672813805942241353107821683383171818805612056050340863023187993050433350886709069548870043339120037748715863597015503852317760629018546773379846179287438227602634759071469426285222613234775076516531359363103749811235905789392221049346665711753020929742981223712099069421230627095530375639104281692163454250471296140247555438003430418089018122511746444397358066798437964991484176267883959333396975723526255398135865598000224540226541934819719265477661468610902942891639157576088880140059405456760383381022015348155357804799051350211650337818900424229416025184914174956271883669959059484283507768362925840449588447221755767286539815053380622330168383252331943531087226444739472809379539313884213472595280194218640475520514660135549077928441509823115302151975102699636666391124079566313356715059243951393670700394295431760711902959963095225466532916552568110484612997426052199423737765924377010452192984631260613206186801182737563867437739763951790262171737401134119191775299570607462154520695224622306667893180274134704358835668465658304515718931727063250648990444641667792729834023711557654104366474162410194852343482118348876775986668609809838022064311251100108934276172906034591795010862558584445177952169294753328154849156672720246024991071960681124414083049243141129062626021150680895010446561228026019927665301117048583409241002006132375119142607761464684864252714290139197954811313327879309644590137743614432740660204960777745093739882787341931856482326465819615400765326556075392185265188158120093940580631652381660437284323667025045091315215381726177850014935054284717600855072623855417161746232393317929129017900581470613177628062224676081167126020115188980356815428838885380765977416685426261347446826685427146289534618708895304830726856733976002086501641911080573620017179503361446641109875844136923041891498030154742788336784100718939202087288854186203256939218333805626546006122073946847358221715741490048909597522424869495068757014956007489953783297119269960901139010469794059703495845228746785720322160957903027908540704622168383267124151301568823459896164697286140029221544833940105254422402549130228401828148417496987349214893148286792302899142279612195068461326802158125526748169495339944069401954771907955037903216316868465384409906972162105370516070228580818391502238072119218276659816389637648372108123025451658972229364455403868441701099845520615441725519964784499901223358916811816822814971711520598370667452674668635379352841979136944765365158280592056074729549497551432443992702030120508860337795806211978882413159934649601530633990583264710975350865101787713470210893718265593441181033885378157291913494392891932995947190792737388789841714117556988469024806017517749549896092519319978024933750741065997613374060660042494823371156863863819819217661858553223574327247667601984429440239002501731807977462701226280530566693656183344238257660178446881721850725925048402903456354564169633918027937875098573450208747670088669477704687021580102824442777395971913476194652658202319745405818927350953174991188857687879622188800229413032402705511314860964366017606564442308705357261604763631588672471959934827399836772282161190051206634055123854884001159913148780936691031362869716222477454901707607837509491417557373209004102270228526431572597824048190754593083245970994717373526981500085275948109720873934770501295184295911206336734407294376625119437157341289222574152124887950166888414376541939106833375201560463315705770258382373848985302351858934937128116090655310460385960988559971143482805661076297916247863685572870290612680888925492125427270126028652335046596073313615595450070124990096357520134083333666768705959089339477712741105482045638674962631693972604680707486744192839934034617988919804758632487504349372711642623984318177770181706568519738859655774271498879058021682269720630320205228373554014020218790573202601450162612467008532205703190210065018833428794635429540887021819774023967622485447160516243690297565161378427256850798346856192521796268927466875411367147936864894486596831337375667118264478766837643013516395276132434489052432960867471153452087852898385195656480863822025898502407797938654971280939251122107014008995103229915422682537788173878408219403593227905178238663679438268282866584052788296552361082908135553937707872507813490904381855868627181043337764150710279546431003387444885797110372260839335491301574830620827866310030777102756667309010624621831879165079060732747083317908463811720740832101051032162557784039966549632971087888151666993719105244547626932933987598481715900271653713598376013998545609639097782951784298878350582657506317974619708124036099984589221907384534151633101028190982174470370661191523417980318506366946013613002597543672619820205837494803101312177599077130524681646013876180020122627814978576935634389046171851250688342303527278734226045890047422810052726400036286057451739096476220732693947301195474973691959176929779959193461807236850344126511458790414126656323072859643483134307571453056564575307265956261677952531982668749193563072504219711314370032328272847299274975134658190518265157966903089148202335562022560365303173898376786367399409059090316706568497504248266140077886437845466198842623518135670060022358577698331130290520390988125825041499822990202328758423504423373647499609934213153169093641490900710660185483965044785888960376250548628066490443782940094973844457856681355389838397082728760724754645128520267159860530156521541738691546007960613659070587086156364365947634492243413124137689800899064194885587973348369233046270638517858440587145904722241356276109746136911015962931429489978337623061577160342219986947221711798442823141017920664412217232275833883430093494098764396070923674581965446378262252670797296201160062508821083413885252137943006622752478692535128056897351560359082375104726719064189413841646213056376483547854585323060576668360517444876185476850980916998095634888696627969877164164728275237581601854239380563636461974027593106627984916086577713724430755283557174611959344550012678395006945718111835008258727844952557510243562790695194180901810978211304595802350766843699790187230356170301236976663264171125277978362759980807286913536641466524689483810710521144211316455975414463542032265164516458207308348642351110881151556161244262973785683662191351555912685938529183704857206973682859497528929041939603279801205972341252954881935863088655455391018566983968051739459332513153279984915878579020724744932373304293391053808538181061502024520907155104800509485037597837582915228282291211451482325054918964538150670145279427470860162358215945897607064240849090187585935410752514157510278740512489744214743997687283781846017965873229149128869668504273349847497641346935860093712447312423195144159759374219687515251879534469549740068287924696756214198341989295794310413921693223931310373063697583548719016434752811098119989456232146286179622959309697577293787546452191666098978813089102521496576853208892895586265215657120233932013335225855641554726045806923233222006137563707236980593316778168439793320649024090624653779927847798400172440994696382237446565987470777813091730292902079261197349008695925293118073061983526410263267796640496499966994299026466078181726912340779525875037706995972230579982118472413214403179918307569986505842522452313206411424032429471432412609238597818084664142115121404521460769795278146415019548065231983094242156219067236672339236465188061156091428567737218950949648613875600366735123046049593222277690721121085445436784619066722336881672889745451710383306473828475661270847896338327918278276633036807946863247942492439146132714453525644855018763111463122790067726762906619805088875148198011557878007855488737555772233293963509055664553133472558685336541924539923753865579477195929526846568710029247691518981247572488714974830039472184479386014173558419858681337860796541807126215642114649061159227290698495490951911856180250557978419185248211920982740502366399885052210508857865742902013471684978708073982073970820847471176120336614798481056461336538571145414066102797665667635892047318503771831978233728658025010952528860098990859616386751776282671831997519179847404841461791886250586317545658662307862003021958400154887979032096444549286484154026626826497443117194216188591293477511679487014465222547503317406285252961446762681742900361897659015474149202411399802932029245595859641468615431156004274351501835552076063388770622996568714081488937380789986479426427627447505653461275414998290137462669770953620547925110159489038683495177865835911625857833814446664977166491209338961708378367521722944310117965303133097385591665451972211833005975158158320422496351163208866757123402322118352192238094641749834123371773454205961867245580501012135195881879461955706686158136838942481708890209979448156255844876828893323916144643044590553480937188835722169879524505356233116080301152886887653551407969413700422638105189051379372933493093390505101690031174953382197962091202390280473577859018358926875858403137630887461203563974346317261692876069421278968292241513413754134815278631874194225711947613684040314881015173257138185623843867446818197373011979695797303930025897510851920659188895262537168299939489246914121745632141293557416359336923639090990655111869056118353500668642313287650073303511690908108207958858639377102414948112632571612257153583259438708215746820724108970534647087632694643533597140258212289448557193866653919000351431193395517080626115148668584877753944355743213709482139402235587922753116277465430763870686545685794656056194001800238593501404212204533571458219547668221001925170345489619594335356835218165471040689276360389655260565881280274308660657707344136490247402972153570775768612383038670013351215742891395758023042850144498070290273497625830823188356290509034785293912688502335382521179483991332127397205850460815017773216875388162276054842067360623371202514460806882653043030008943287560676155325101129392396780827450337162327576300342856474183404654863451957525785328662155091384751646998006408871687306553517298867668717186756673064819075165641798689090265157016331900155032618392580412492095922809862245804693379050212665976843315545505967522114799405913838008767056841180414489467217013258983656570137166347050130844622899144071382369981312046072948745459911420676279457578715067414625759302804033887071491261189743131960015994430787787278433217356877643668128850641591338879385613008759584038527263708677693402889804061268624100933168147835120923730600732204844904197047280318699432718144757187905000963059345049862875327634173643838482816699607049087554126188665990249791959119730370907808328944776417090698533759123213769598161554323507296410386507105455590991122924756634015496502051472741140505435194268069839692276921904577609685082347187070967924753808974335711067732705183922334221102232723916399046050986214612709860058671736520720791757528690333480186295577943452582530295978747930821370382639243222029944018761695945840528010147681779252983517271628966063875631168413637684079706786713357210033735898791762193273128977299868567186412318514809210411716500374405232529275588254675130529497863597546671873661172909324482236749368199590951201141975047284507907059075194970296198577357207534648982987045189830409200800418053648347667480751123470639690253868128937765154385261687322229888778284655048533151213762638295761403952399020970918721406150227098485039614455943212596089476904106174316908746298979368645080318018159407174863761331869495191610726978249774523024568793049095315859300539725917558269163575971682615078613559067780122589449771720592628243798410849077255700833990000713439530568483082064442150644767841684004419715691661693902767511424830920708654873552552051718327062182410308786964183636543728989749316394524216167048954719970316119998261198043050862464429430185871686928979707503504563952346950016168344552296967072334660718216484346215348222649900002115355074842014988650422008257399400292538280543629623463740886748326616406070804380676751623744314852830948418265392081971136854325939853135130255330910196083202736952796097496967373871908859843068273094243856224753454816532492704358265455824837175937875742996467995159603518252826251405860612920539920566000552536829439248547377887804106211284607567157752779232105680528921894158136185656646822449219177467801012017471377512163484859477443938536969863425193759175571494739498066292761571040124784126134493798010272107522069973669515064652869583607681246727041693450149443814262279411848436941795844389413689758818054408452871238828204256815772380897145973600413316248871957407330477659747085937951461627997748905164808654488593827492942516795399485449244107366948217677516956461670967983810311913168436863532351569922219411447714392773401127201568265115529034480554890513492464199891912633561235295103630310806063496923013526933481297763147067923280302947809868767691179764615093590254049625824327426992319910981925248095974190929207171999528955226120409640288319583738492066132874332761576584099010218835001409240751206819511669351879826969617392400521118965694756747517788369398321824691399208828940356562817952759653754976227639234315882428068921222177937034403407994415699607338554469257437068428213109414896482073883990596708834041520010092963565302398064414769944011373466024356402612409174097751566891757678645003645582540311532449368149806126967161677848561548895166805682068999367939783724641221050810170768958498052168863419258362760959780466038324249931786003509815510714202546207534172368321908299372458163715451027438066889376949527917604974769718580032064339860219957122337983615289602824580320172272676321618111149198709057497119635447767436757413019904758121868070935306460718275053807430467298531712622993564971656295095530460342893479412160637545955043283014666973236930233970665329988619656390527217848607043480597974196341833811657208642054478343021219158841340046135097199462471359979700876717258840738686846393347781772981878475352548035162302195588600546662733302543102035840803836494545701234005194087606667527130223209471416810960629090767582778794068996102610171066016728256796756328091033893058961132358003150063474584501410189367737769812796072604575608401671534287821257902120414291351295613373359687349571739635950936949484147717330903195023713924627441000665239257622150071008308004474740053999313696891682482615293556290724530585625086221880293614353322526858545532551415368141158028300685578432702544507537435918321881471901750774131627240058175290749647647465582331242649329453836044836230143690321511519170529355249298576678640388202834472657724922264833949376653140589529566555535618494530437050573476891405016974022002339248265019140838389854812095484560220813795930949815429805333123186981516074922644301870681282990165694859447307073580763380210069998796231005077425788631127414463142597537457131361033266249467847560156429009156855390319398196185266701116649924293119219247601063769247644099185216036271875833565647650390744600896946782808909690911259499134078029755471421133376297226575506752199631490620381798917032286041242166687604265866570277837893339092626220050952694744904911755539814701467014780146731541389235522209421393921197166935592903473902348309735720105149813114280154047060731134535750361214523756312927481361195105313830621830599359103394445979695453080116866492512188814100222663582516321713074364491018119745546701153687325577602535601988200634262864478387313451584635091895490502597127164501339682117105751890659559791739494557561284767857931851434265570539290010073015271370307610693731906049062203228935975965388361385641499026432090250277374771815276294396662166544982280241808961935944969261146527485821668178979946305231326079312185887752223556711397279573902399252220997175655317729284653515205616368549358701319002502335047854438306396171188489244972395139591896599728514360413853585085471692072290185022181557360576784817011559695763358741489712182262632487224068386011525292110319798670015470670950899388971517340347644532919295994555077044199976953023354763814598644410771189197467849448163152455333199359509858849081991352103720041235455015806447796524799406723753548305802138404603120137502602365224916502167032482948707584192911826529340762702870620423727930488860064319009162268034433158269194084789729990839892167232725195784829244502280245823187180645555257006222158451569047186192485327235180760044313889653128686946290132540375226482708404380825130507992635029869992838417961095059550426086877818857118008112563640540649740671169146982915767095520398964234462252435657391211384638509711588376684403279370924771133531977459605280536469396801362844133364655290555377993601583676222868567367908352339294538057414612104883344343176347375571389265417923289412416901446662569072974731466665885815783261534866743144088266372973248884748456682953920062414841545043382527238192365443221679500577324250172198027861324608826128259045226403453983213549904847177441674631704337197849576542946857124967863210013246818508798918909504215701586424910106238273770692424550117521787267552770544700810662354444523793576310639605233884201850364092138173366520561699686039850429491123512828082440438877720919590040191472587004894648352985264694681224407979980126797275028470699171115986671912047861529639711945512390738648120162899474437112051967859732022668470324386196190451289803668931162449531773208937653535532028594250282832918122742306274394683370033550498856057045861578893705632370652005591188898189984354915656354179966457021653632479314853256784349534302913791982816844254682484033065157993572845156230759606093085725971666852821844787779395792044487130405186488183166245945465569580223143314092699022035733940285813069202197851599497795636743217258871764139250706352774896599393579484251861123693239410390099889245794904541084039830702654787898181865502885439527121711717328141407389122421311028341264903245194294009885373395668988007411137537883604235004931337275145456219680408329605563359394094952082605647522857977088574587110523074305985488559658398234934951934683878932676868122647111922370231898431448574400554421046327776679610073816177335153679567702548043057305765436049135300781445166313550782403794543823991458348474882258992200619713619968507952306707339193026255488989128226109719925807444313916944185558098349649464644162361048935794137515382543181604692881700902633765036180657915945453836773830847280806640980828752833311317376211546286427627149264912455206445171581486102253025307087972612076423676240618015812160920762015432721262089802774985234830590491922619232905890211416109442857802143733335041347612179053673610628930439409829928022175692321030153950833572410251924231127552270726349891798644407457382052432545913949105654376493503229139916437908141453787320429252983411887260207437434945363368455432116386946378237403578729560873455351274382235251469085233572575238591332051444982700461470139969994221317950848443928722883597937670187404860507606764408101383896230163840496099666966381624514762345855668449175796019879974598288693164192351074355018120665829957723204754368490310976252774869394007575257714968126270518361985762543428408493968117588046443816048220555257230195329302116742162813852347544614377027528137241455488089823574460274125207073080153445079358803310642572168029316133064781895785413325082675382017453124357506064140709465848043511593069870477954422940281874392128606562854674788663760656216325749916007455563702780122694293307132681262183758993868287522564678155691761493978525297839514456225336085174802222524072602056152583243910449430670322124521337306999028468045516747694943317191529567841362215779134124310287574913326325509359168888336792399398159938308665659169978977969752341076553736267466177131280751884841694439560400403629093857122153097058659318812748984873587442045238021079263154042200538969802219421943511364607340488253688177583894700419884590196824035389353635251482112563155800251845216628126113359959666348962671251236460229445658068814657519977055733683121107954716221100765462451162560425199040893374098945677414260691478651214286620290179731209494256652494008745371857747034005541555881217445548487777645398360696058194991693422673990551711923900296928436694476766751586531652133097600010698431748254109588277220274830087754360381002128128817940033847562140416693347831074861009866538497831323230582490379383746640476069756295314139104274463371358813243976525586807249947126038024041811375711298894473903220259594102050727495141211662604628814094639719405159248694040640816727556569623759922124377210939624208393251646147447952636854905292045974703576274687066878287768635779705685946768325432435584830720903748521334932138097210052147541521256142766462135836387566112694741630116371730932219438430770742123383571488881341192064616604310557822707698459247464490643304271933411588015705520756143132841848574870483085988105212197827661078065012480838239320757746940846946791986287280741171727188706573297147010579798716187509458210085201464028439359725176071547777357702457112374336661700946721438169443562687153165596370752019934836083059047446574014537965568453321071484166722939136211960699602558655843716670973638111425967388509264708573715814559696128404339066066013099573726051646330411812282316703526380285488445071206155575644605971109973283535188974884636550906464235680589175348498629294313928083603509321203937576225712027738029727441391802022660782902518444346800466799076540309343055814054837779739225902757649204447962092942388569849084236186976767764450004659402224419368463047112741080407280469652265115877632252859457020406275053615241184593987045447498561292198639218226188092177420872139169914486791232130721429264848645383991187450486404807142507580620797534652316587385231560970093270877053529297904379259246195201265546660289974479007846834415759225496669810376018061960872403644806070553478046486299112756065187880711655107188591013039831063517880829220608982400057135311709721774497788983406062243809632534690137567898385728012038511349590580536102458157849365941437958862285716901550457590587142507370676616473817005207800014382348892405535025292546684760981289506711929815304023770605977690667907872430734645633207406244671490233732048159261286001220131600783095118973812840149439053836593558161884989474015988111759329646059046496905691608991503278302970439711789102955602059333782414555884339422910432243742654544689395849561611507621114985075777033769283657621867930848201196649212301440181976361924652151074506030471746826371858083708412072301310448985206634237837353571578643338798821246771509507238643555371631194850486288064084949057638021646348571328590196373352784502269318058501743919583183741287163613587029175377467455864844020030180261570883593678960305745008066859157974579828524923534567092737566138814122821636293532791535170838004814964215833296564203177094866000817290521917944530548025313617181030768601981353100462575828774158276859833094380330770110132986722177734592985095044053209805484187841225302876801497314136989643530746402281651029606738321912119744559712185190636135338704466255587857212855461747931901731202016899729347781700255581496137800341079429014964130445134046854052136272068202880073359913842345409659881880055541616400421732892266406003868867604913335815396839860737939654140551654515790133237672107944653101901664239882416816637901419044554461227993213538802908158147586429590211429499404573226810515551078807870513425523064899834839706898129680466574673280503339233922543270591398528790444422508709955051283655917949205928827303929361693443715464727426854934029040801954378288015332680452416849394196520567720033009236059709730869573401503917434429253905460880515474055742508171689804082657933402930296440603793516125084458963591811808105807437934357009912866057159511783810942341529985939158120442365804068197271866698783674745080712728694363359525389750449024414216551989387284720897090091560764057919967205891739152619927114765101787598219819608052567148195190483550483668053264422599960806976261272754940411213612713537650354884422653609093984901439356320606323387077055130145686865302985549691722809761179358972564566167838100735341466131099366333108944522151688448390650231807760689117426585590248238949181911806399140192642825681581688930439106265078876238840553747073638220535995858683213962379857437942588929752358541287447532899544878530462726996117649838502354415788143807793231354140270980360956099399483985911349748074092781586838170026819802833941529803477855306686356456925466698484646963498077656876618929424559023482398784586955153001129740452483373502972746799883637137645612261670717766143232257701268239357417614111823785879142318349015723391906481929695151210063110743375357546421426064579367134898806248627125951292837175512063223294392817340875630474552738020396615634936983730044193111354268337907874419105090671127886121853422545900985225414296149481833290555475477186199018784064610693973465372086098262063715682303416739406317599359223626462766725368141115981387728662532021933171198155565568110050433762134200632887884885066018180787087978960053000824843535457938292529183879863533626784725317924932539631422629382923680499085821057543530195314835451122024937472711716558591755938091953369134046095289072336169901712069831276148780677763591097597452794354251666637283445043184565263987214378624639638671758714068636789655293972880585203906011355432434332191913359687807574423394907583127330074741013132710458257791565335230450673982664819401409905256580995489044406605461366529417431758204797742370511002257824339076573691665694496237179593306157419111089560763480352687593191621662500059451696068221009186184233116592886594713695226537882092576184851990775218651255074417935452014619935424460477165797631575757333215838352216910719377246680624290039695464358911227202337996509011542091742098215940363522954871644633483823969357390353266475408910379485912799848831274025436597594457035677682001773278038168928300505578511366650156881256681824169126737863903002070848606904141518198863559724495540634269775423049973271195185218063922373466289594741148521064967178637891801320577325771273118663532578303775181561587603440813224103089814118839874076421143573401725068090376456809962859027308769521493637315176854889152784562686019090185770722804394115429872602251432641207048671843047768300876187779603025188250722404000315368648793848173958835930633948853588708455901653658968608270387329733579020706876082694590039537405653231499569063790428368927071159720313509069505467796751489885351740900865203835053039053970094268715489209396000810798265469079498484587391720379820994061652447064535146741380013094864293043079028794400516492851790087267278852910897710331206517990159048317112175472777118560865990665609851045260112071182949794508203661264359941434763614810208730205727075372533138453855522876035906583823517388906276116128762292211611869715615919216890999777583155306302615620423124663013283032411386615499220553969077330856763411464679726137749160812993599273344096253501177486226112941145814475881971679352351869215563588102149051034720313935946187222739497310999487229102176125098131002851535531903398561243139662553112677136460697623621958311234798349060454206552989229061289885872783818323917053067609923247415971214958786802907035968182404337612664497498220293552160349271092654605431886741361210293352163716891427192690883435833165808749265400879729128271506101536334880175138038319688957500356488057685649881663556471373134687026614792655286850741376833344908882862220061057138390015266133847409036407766203969884331302987460947867928329643751466521007534022684687419360506093253484459336944800840695151292173521576474434513934350307281669075281960369860446074667151965148048312731597267582180584784419504491771363215014715705117985152829576362643405375312533569693432011712522571819747609196564506950985524906049808863828387610566715475373509214082831453198056847951513893850137972169436004706876634056956821803273973819226809254391914015355987226223352080488417842493282553767071605049559258056243053576610161447490339710003035073619067824775954414292924045967179967698379211244262409375528721641436516296295775632037625282741863558138187842487859837550664703972700882122579958435492405198272228550144109871198698542524969755375064298599322298564028347007682851866213464276608715168414687316425233029133877206524528944868129822904261723358300730111567599424528806667628129922768386945685239890441694301952612029936368984353382407739861873216070892307963764902538925461566275813516842207089060027333810272701069814745154327401518826836057173926011099039663924627131454506186232561230150311796722588725241027819672204561145738590265903515962324061440509494118081025396129053247882936937990224278536323777051275220101300931086006174422097467379874842839070049177295317290992238191975560890386882591928988752311137997626804301047521045156882452301455515877660430694716150895105422083832569207331321867281303198691248044284012070945927100310084631248489579231798452109181661854333674820645277124114205961628828076901407040623895296963973720797728305548901018251405522352608966112556747933124481743658125840885184056134000484032073229876613597095990244096349177564106694218583096673722588828473766057964359296137662360346264267948876376380415287228457191429334354916316370140642205986635126805215979945666989382751174028584846761927553998376281592516667051780445466669257206300869705755771388023286270830641960201818703356895359551814099312639823205001634391105351450644288211539624965776976303236321329515541397048956298573705788383394721206768202844557278786054172431471338044731523549656680738031451071735492227839137505348763478402623323601993222050662340482960090533527801868628042402955644692910283633200075796899051257492452671040912467396824012151914517493109915221651959200734916977537670338085435951245517366400243583067647820671117985879972080718875635204565253902097788131722903488367139980249662267810384848280646559107053922765531573591059592954970823244502529743554791975733719441608612524716089737776864386146154297412830681057056924016868845411567869410394426582429179993632392991757157949281509881200876063462533049422538790123381306057229224311383847619375925603717323301978031216676403758138920268273709682764647336119606834902415371120806930531676254424947329603586684923022068833025201204194387226416622814049482504807860729457197238881568827934329873541249859327211623752411015806259931790157231424417781531053727422881349812638235681412305013988106062089063257624289655992111083514247704392853858303420454019149422489894507852559300045895546823878744277963159096683920239663564173035477805139039649144168650685296829943056142716875059288453872226702124964049773602036043976645158976569073707596815732145063473359575971097502996730928979465270371471584131056515059072846234824040571828111645141948178333087306835913205393289072738206184610266493602892448645289758286155850065040604831756248684471645519627912040866265089895849567948267377260168584438640291898373024458974785496667501134328316579570562758751744164869006647790715925281625219921910287186468734885538292261115017539047960773172612311606713653031873584005850861489698592561873811651232098284088193529550258749973448958006603388069706695817872163716392872854516981697168377143088807377314944194192783888456111131922596209912170215708940034850089414149200624945771441522941228118392183963255451959294173442198397496446950534193402239977469711729099250743518857301527855612921497635567956177857911766789259667174420795417122491360713231273420647289571932866949579192787847293425167860333222888744093598802497609515184810569013421309823226181292591647392590409594865734866525294452529544613153890976963842820886165395699215107965720293632511868008044148688929189719446596997121374204287160934114249473012655726801609547894716676439997320807246433619664564583911478293116783045195888162067726900555580532397101446339373261094189261916164476686137315685198814928011675446351705786892832388533717879629123233820177081379424049896255198489753397766139881015538408139899215951840284020791449569827653261965258927795832067138663258133803248558325189665633585942908724965778965519158659623400196413606752073485348519164535985326757771202958755936946991114175777750654469118013985013960386349472738464329035364998532761844932098781373315583221004458923672840808194772268709289938323008083371113234452611885369761320361352460374131671507169123295357161091063742677339698906697097016287432604693924876122278725116500430411271819046613368269312334361528053895564627985512802581147691961745681506505295015161687134916789256598136268694600492280621058976256627823412526984364555441452237818963577563905151272386115578863032875846853865140432552658717450716676142988679039130127816801501563092202626786513593461269755939989550860641682319664290843787215742431102745632679679746677186366902879106881258500605419147967430099558984711284039975061509742872475530269045947909790755565864593560258334162153936412878545006045715662368345265826181863873213649359860018873188348177062844880892521973101251698040693507432529730178319847678075818374498495567662357962633810630150576785347845150038036730958311828726144275787724083172339096314350945969813028194477363704998115988386787890582229396004858285820947805990917994357386166090121456814751817228441819568364756201327412427441977042886231957659836905821896068285112719066872641332628036094719560958962832299875424367714506371113414133095015433119690113541044763816629511688825975886263075848953779584490839529251585803325918253459222393736981819698774240812157265772174435327983013113711140269443374220201406488896953102265517048561517372365126139499381063447165411093533796279546440005555658294523260320876930411087637024295089649386077095935761714908138319209372133803456560250837890857452339616395895628627762499142247513164616904694964446354419090461356414991847833849733359397696230961284312215689671580877406085980510664321639073620858328150382330468846780980677944429629378458037818848340627810086340226979815551327128832614524194782593237560941548194267913644267835094796675558183590662117116569673228983901628600099539793240212194650256886882743202156236870873205854261563916489148635911717984822204561800259889594475929234777095333828942447700057593639410674498857424781499089811118657214201461612270067038951533658843424310762915885234586887310956368998136288071899702071075896983632168579107833758190064560127667160557546049714843679169343209835916070118495312626821561920483501511793872546764243357894973231267386376475535553843930303350241672797225247590746170150796244212332805503510081063858642586667571500444664488158486051124852711199316735109072610816091994394501641085880897648476438654017014736383842455156040065482711590938336845967230281924583400906430822979746470133615314472604776647834136157895830538520974440104256308079849127045791768749682123574576018383420510262252279037051051142906047435083379508006602619377954788306421893263127116853730241441457538346741193664562349252569750334409566394505637487651895253614274228659982125619597814820092339405023932167040537622131020727725162945498085870718081380966614118838937494454654580418175845802042425612758265646868152350381169663210624787075733485262011987520406052639656440769412333929545753395432895925937013002602183220216240249320425503117953920051750176575541477382557312011924301149746118064177961052335939409257074314758377971342773357799931832285638093125506330433858997649748110660929356941418565587612948596761285457385030926629289829560627636055183822489187141435908653290895299570711387580150118987563616870288386171627710549653860321853579640987237140734205811662730549954767342957530899616621755195293508874508918800611067499846362310073218354069992853871147026531760740554098218699167117279515348848869380876811743892058844975361100023032307531908050788203376749702754603679778510734704302340908858526274412845836569459688892199267650808985028349931642611998113226512101020325046664188087657148290683169389300223665279100361054085522652452175483961882946305484125553339589111583236285659709750088109290946197901808276233962698137184175532096062472274084591453075854554803981522060318847917931977546570928101034263266766113281390655104869868642072234331346282766833909125859310579769486860220953154660872974336207298615036927337663134854811037568128397671007173521880186805461485357886787311976514525722351291074462879289615516005866072736193689798047989250513424938178373096082820851851028907997168120090701592035406428969217030920466976609336620580677003522840035236430949658073495004575461159676891463938053299666061539374271172091376855953648013563100305171967889990818399589201857203140880902664647085710920468818543030847760166872234223110072038370450900174241122905548027662657695522731997378583713336865887448301929867336870949687860716423918691016789814292495807324394861350632441862363016777964742995345509130000151223161581380130149176754569668131928219634738871012583426200836040099776408500175535998951584518886804356998292982324334817497462077551357609220213959521504927359299746965615153282805667912518685373425362204057385616658537927283108481774458720207187094276418812723371164328738838416728876087311096255268502649094914766195349502479395212349462026513220783073757207416271772552661082662036989715929098118703699480789865348159024748539295848256813221492896582258570586618076915291708624416493889036550909516036782118553395182852695561217755407789588607321716883648010768290699828037824799012695428795353283913183490372299358538205664717168667825070247464125715345185350389964444482629329545287069340686260593842533341577152344236859777733645873540694318257317759936220790751922733447606874117439032119736842626786889994050113878870981092285230731103927767744003442462949067984269797379696435063658360983021180519524206934217254152732534450789474713836604744890724904075348031057386281304399609395652537277732609813658857076077567734651548282076480587451865773453808095760882638482201196396596419185715750454923861520051521307132623450943590468170675472308480633464789476512776594743422401347470284639221676573825005484408810543807093549818087740339377213300568674125448341218080665197624873749713565068741745043757197373254156075865956062315850316573292175714917315099708083734542534054041822869323971703188008982277594268951586052623661891398716979277438518495993362887828830749670789509962326943101800566234275951761203347533230565156570972152231611716480109351325411555059678842586956224600005606954307015379949774789203177196148055054691405907240207289204226382991972140764747763712045724183647246540595539934591020478464248245233167286751013478980889254968912857517715134454643156542632039554774843733121824339811949723283005102116093663799833947309354110372909453424934846486007257678368460603643932430653354312488252064662656770102383328060843464522772502553751859856671510818513860221121346193829474065734135113591480056077514653168105009902667723546852064600930496674215223856917462609093679726274127841025022766536843026445291875272491202667056648596473538912107153615800746650929182233776222509993969089780074321422219125765173867816836746987486575994458553856782384183767005597693211723303173540747449931996247256611920712826276969691056927564891714082853359317103949780254751514345645377645530147859493129191781488345526432191288043820101950301167825088481992292409277016525827074387346026741234100529056992245262348865040318916427673410133590853004938085254780235736824321615688577439110554044934984926488943376220408312860672927967403232157743784204404375426133254782528895385987724510400213559711037971230090637415557672365936691909365242964898106284214906370553190751290486288302357247734458905872578636652859296757954780288547336530922751833607308357074979051838342309612533619309126433226343112762595574280454180887819160480830967246983783908491139720069255143981505292682625422779992882475862466340185862887844667535850909335454791088539402725418109981576376037368325559005952379268861874523327630771591863874847052208898832564201142695059507470868094632465297794568086190463818799579494671144680138600642970748016541978015830691422359140216866197278341188627081212904790400765116934849203544545158250101535983718666437357839388908160650256199508468396351792657239579062005846384370310507090456002753214415693351160680297388234002124451641704795204620357352509124754337600063911107753702294012533359969655720599867613909580298864638203604372891158523435346927661264991405825188667862969226788081736546139319665453094186217329753425823615398881531927257916131461488053171903141798144895731537557080260700517162657144696136893096061637166998160247660635753313466376020731265574779940716815207852053663558933831760889349893420207644503683513818280123698827084874313082373566420041261328286507440373400824682116936949015236612863506575316239224358354464586020883675666966096869497938923077180838160518196327490186438258007768937722035039083674534948936791290447514602862998822505571597898456849158597221558051924387601089470794042142936658902798152838286531346498738161896517425179280499202678544936994370624079554353716892319417481498748328810368785383298116684494179547233243759068377068066176292025454545271874876178311190999222474395721601861426096606118690178302700467061639217566513043606196849918350878536692597858182034525583009095081878026394716038147460562118460110018162041117751160398799043631811605369189563639904665007941912813318412000559930071312167975971323323115441221081182941569974432083491513879026021246272496035878092325088893521008638302634718202504918521455791659058049748288976171824171119939120293905566490380043548942136333020094898533167827314387365100390130913145772600577564874546563204848595697871535680211323472247497517796986863851089499032320304419851271100923349940334273219597915726950329333768709939074810846823857770277112013358910312850808877901199416172969998071931818770333519356391212417991012624328890972932895609918015843398955338197809797965844488368141780729400934264008454612527195327143407346656418377827038446486509001939594727394832907029140402617634291868486744817967100328639502100777750032866639824904465287171808351338268078225231937609716595248867155699731896040715008521716048125895629901395501931507757585054217928492134769638869112168185500398878852510210312270274658139192342766370705088736405318858569414168701160424746826237856434362358600346861026623686748651385447759716026705544300738063989755830277326910820714157035342036606767531929036923992966908939828762787787887217592822322319363026733125070631217198630783317809152611405118978373349564360734029409436442340421784573534601581256446220511587934560528890884344496181784332015566544571553500452733324375242913396365848480537999702337620693716634857823112501283280204463805999451326243878943008423360786979719657815737086312017992217114838363035410722998057277413289537726262812358456696081597767943616636195097157549520250867976278052626964413692101056950189337449611916980789790668738909607076358923965581052833979948739836894307749138129460870084610893738937102628947695039430009270614795827385980928838410304119286860535444092257653348751958934781509151230703425272588337028225023037595829307130933577069424355830300186786225435702699018226030546642536431367004257431599297681452524802563245996117504315214939120290193956301058809439868327752901284871208061830227179834675848067874461242270911993243844489025965813612863524227123272214285639353752581618306036056528091413858019792600175279660246720795251787664913486351083677557749027972157387831596758464055327614406376499755228018034653728123900176522217884716475840070779310794908123980303083511525796628701356257141270804715255137225582624207175479074937650128367243423437895702584742254011289569254344248267503814701194496275122351425786205625601749546441620155907039832252729199721822845847298733948426798896382267154482655765233218595167391378560659096688702769882133879440207406756871188191497573433948928300992763221674974487331080668726162481275157622223293637059916551181607379041811670787820021935080707512988404700766474302128138076434521733857281997475906203801848855477327845434810130769239649423209314671275363189783089648706806165961021331773851615052803995833318963821749774783424319351816760170538062242526872622090289829296774580359760506655762278005113229057481261792271351580597582742134113188481404468932678454684654640296914070754808949089426116207727014222536687966112902522350899274063506449970412496583182669978973570209650315077033686561501786746648245937995145940838865221610978245519848622270264031915105929349488798283184477384724751290897839181932410495656171307542547415034579385977436683609592468339177772409623406637649945819121472341964878108938615277718636409478096138043048216717762570827573023992463192910418482012911257410563118980923344993333148123675538970724319622102381665865120196500249611683869560982395929019265383546932937502452040417379876221588890746560937764329870879726788688099582815417971141695238602637626884832057959010555828753385591373491471947435409537415270984209079347651162897967074846752288006729668061267034512934229149978176475725769722616016823740045345433992300101639275772607760595257775034908128524532901125625662603354307132910031947089234981449742299603710911488739355481629728835489568248834559972558530646553600302396163062911064507717438463457896471883528973649174569517987018453588814565255300914076828719318204479938142286452915017805781784842015191545668729301416954166108791011818688494757247223420928525829843722824459025665316600742582234683863602254684387314438717890510580305265793563408273879432655075216483872351843279134298374454979351020750512619111929781234278220354098978131731480782181825858793713863779451547612581092450445237774234029083871541649673045743790540275771148348479043230217718576420505780757087782443695767794119050870725372011220983453860050601290559660290478675453666315241858610317418552830507399995973633385627067342938935455126040814498621177970972601038194531549948711547188198644767998394610090547462731998152045098291011255554971567690340596183493233655190829132518432791957550215778960202884900108231272082849723014913821903188058631034079474529654386157885055204374774502195442138165276818069707718445968098453748033582960446741323873728712227278866235189750927945029611077583759841992304841260171815913136192137902746052282958834195011060138652359787050855042357854459738589397800744108476084468704079771181869752409362104492969778166863084687167416999241413114098792245152553965615323903416572585097929131640442954666811292708677206034948966549944161676190645994468301822399504889582761471281429628286800710416380119324690486532312674092940026244328978779517060421435070636987695253313680909008491825801895151217921786269517960001863553157811220613480900411992537311088208833490970357549798972232926534231397032650362047999405596606963569551312915406598150938157015406153101177888168378457435788869196333113399539497274108070446814594355765403568024075871616288004699669135527453791733466277445153923455325675238041258875727135227412127843582237000990654464181411920076272775877895473674474649108613543384178972682902693468473078853472279746286231809183996884686691484407462824452425104176315827714165857907612416362638092148315147059591403936821065298703981003900962520670381226443129447412046489105568133474099559601657262654993934522956853102611000323524039593974608426147550270232810500891570520817697814154134494143536899759596797316550816973688779253091933453919718542740632519365568508850221353077408195862531747287375201289143789004467735435293568703905339131148789919915975823890638409199870841308320846828550386310013077176887192378161345068720803372133926694377460577863051503417503502236496021143370437813106444243140547650073017416299674657165675708402424203856721033422332818407745228482970728382383564012113236398688517030730688173559926868584405104299263695314776524617920493466789339273703485914511141501119303932601047198902863167704199183626548330715420126860641077407035574797390158381330852486403130573232071784430618012475685239133366178933544673506992391862391042925638804663031200244876520384773718727801404509294979573087671561884354764143811791442519701146961229493909648196648362158330746190466145229136724176714702462594708426887537549133340699986213539352654037896720577012814826354263505509513818467463572880840370343454781959797584536817694692347331914163386211899431439314033172726927145508316636968832328093980754933940949384346813092561562173770589916060802345924662341847165921973048809493189575182431430655462078213757510283306604381051967527396334279131483549368667340098015983080079766484940445270513371810957986984079141472069993197613685745859228056804786881334982031856188964849984655037676576090399746243560290516399316090681222824850399959294249119605191280440562228551848760170313952674476127066920987118247936654149449653326106295082799373858305183263725039693099288356763905459655396023511322519591266757370669048532241515670183577012198314201861071775936460318264430980840120347261850987877180582550532481012325208605358399897289279069728930647708279000109900981351827772337081586550239234647162191351156328477819782472354316537078153752389650945014207232179539373083941323632424600009598051632938428962325824834227666128337707102759337505537972825342323061055961107309345825328931026387319128733832948211735946383771615235033718144860746755249306338672105732586276675491053641943672108770287336126068583914284425096800520207582199521544245149046861825831643336799704622247729375549390882124308385696620575875189611683266064017258209338178507205432103399884097304504765354954780050561755743933235627823988900349200069273500157524519584726260084783772427871908238806360525290457097838356608461452939990979002809671656865425380473590532897602061151246050824677135380169794679015576929686722207112230932281871449770527693897038393904763797516485456060964939572070162926047187774092447104164872510973656756057524175892331288823893949002927859119981393353081314196632370193680840079943180312161609411266624796499265594236592165642303038094615544178534266265565584350657280697428786518458517188976896965517491889718847751032173271421529010325087081986513635346218230316006280576135909387280897119371970931133545838930743729323163024319624328037426360195191283068801655810615601490733474256347942197291335485173084398031815882271700451450563377640148550296287531098928754046154809921112770103940092118473107854236976196285825613847784503100509951214727952699834353622604206009473502588266879891483350927313151616922777899686919087335309863497506468428307256728531008289318963688124041918475916412578339651345963768128059955277994909282137475214095900596350585339044460476375359139371598314659488595969107808196305758579549523927742495587822218677906679309882672991912764370282882046742291864976691869173829111135248788761784170869091562133742175297792359874501812616215392549371791699142803796191623862995523971087526348631400320250273855809823338845089334452112411073070125970357074520202545405661191063731307963704743798907404056250044828091680511991130853739542349941725029285053432182500295540971404926594522782900634724188541838927504213357585112677995871906380753216304953212883323488604462962209010182415271112542272536188733295055902231419512621258156055406008556856540057062114449826795190771910008125397374060368021662031501855915688925262000307245149431811061084013497289711240430042192210263011804983250439420417830804638389786744240248471636325673583887381214229647737634695932389521329698407383522034629354879133561549345509256096789365487087492901122784595409278784490833363328230257224652602211497380457599929144367322414796955952169594763092951713352796509984910948401177441863569070087336064284485669441146772082169924492113611993039151616040538824692748429029525280208124292034928708020568228566543955795863782139136844816359876319729279332186761096412687417359153391354349431675041166327858321894580101233583497532141997661081371457062352562551489912195333409738936795004372792003337769390765485121256970974042588256170766170367467937829940206635582638939832331164706592158817858767807992804967979668360251005911572013388412311254311267953111319817105029602180133893656367289801678899402647294472992045905571071591532360125534026994382049782034236868642030909764302933761770181248842051078337304386799480977837232851065474196989954756254144383178802438490261270027211223281701900357479643536841219034350598886840838850970021653032154443831892702952821187100297525027694324434659473982754416883897049340889384187058936582719060968269617375377232799223887607527886309233333715947973354806837370632215054645335789489411016599263999475188939474297592322559132133949769300838761635905271361925171806261450009782326358348501428850676605364549413483222734171239503464206305884897348667587129427760994482338937978183121409371128595971987552493276633417532015557756305353045621768090380106452738449082875623606991685676120998052281552717707563162653008693481762774897456770023158811398932094199508044719139349907592005737923122088229591432630041794403450526284181961095011928884553950819275889758949634418927892290912544698111496776683740203835617572383682728555937215664534349277464524915947286028753986393494820699559753149016519710162754364404728331921472580561769265246163528586955182839707730434402845985187408642099084541440179512054847535178521909497045794836518936187680824243291826935209518227438146428967058558561042878555732480997358735262717307564748838392242338665195151312322514184680797653430279821990121097540776591323332296671261532694571610588209048064180699490638712319079489994135127549833939530709872688349361354709218281704944678095959937010473354310803426532480794901728216056969326484490322097906577380971638992918079209622202047342719678102947869927375009242006066543453941701264494351175689050906688246612894358407565755867452799188442812328630188141405426922978587582427218095315280207656825530376433122917615798731130672472062746035286956138668231891196844107902611869151610583230935190652295647337870713235623216185716374256005962489519290866456122362440692426202055964232547232863929496584744272249407290673119042801329969397225273065816768559734922231975043678177162973113811117383842393217254900528931877317607416859270670416152937791651120342510087665804596838537838023089489126215489972822922725496964185964234721100921522215864299308805436601496638640323548154437241178160493189044324211077250005756814986600775953622052690825477501100307325712207869787338585768019428884534233207436302349355853451380002995070664592863812972960905795904311916264432343551022426798078811675290831523543958843994883663194532393515101202615445219656005164521778391105556469556910361931133390139612377061280674449183885917613939252475346591369553796801461818764229339191242084152885843352712330822385648811336249553320596265414258604354113003673765534773825283914342912298879562906388414411878406339999470768230273889015449098675291072718667153620954647836292320548936131804541641330394649979364067736134676796673617860892700338147605123318150737994961177320676901599180933181433310488565074272520427036648565799926218985159548334617587419838382552330818839875148139872447917417349377925032266459455267228623777798674342477551013982385698986256099151759063387370529928397159634844410219648056374641882562981211746823898809724467643146631993743282717885414585206366283437104855083238022563742256379385016126410462898528908752146444197055925427755528098318300022211315759741743365306861004373185959628968909563161648076595569198676094294043122670502885464322753580542832610425824599637087643479575072923231786628405659132354626911217262055002926951554638497538818538999965125073163161722677034170413145000648591802587239058518565019491134344952893229878525144885735115737793345528642599315984489988908146870433798453039801403697578438923011071458737495616739970064858110030541624007283022535312448242259987787368019077769133867614648526743368166719499523539571797856619589945885774093938862055636329271379357359576578747234501708689993162239090423838948505293233209197680110185600786457377986386030336283245879130040569941584807188831177651949525171005061609146298943555473135347611119627678365407465893103630232975072100307145040066038224830177269635945695136565352263868279145405020025703366767595341466275190788429448817485588318046632630601288825911483562402025348307476748544695555977783353709574557493680590326877613769572806815470214313931782837986451257808743962474357571016774219043105353996984437482561221548915534931959106145329372991420278756256464613422461626074618339714042323645545953162692865211965660757262852073277972063376910221546742365109029769952931631038862854007040233498851837725518320203654977565827744586142479335855793913112393342061846213221947862644438770346759408174818751064912518827084924310302209868164479694274295680914934372855131860855980893980550640314142047644397129723660661676787589657833166576112676261239546224290171717534856976477799589007043404299616210149822825180542131313677202077276721871775605373974003713756278175648421334926445275518485800408727730669783150625254219747868954749446007001154897204274230073540724076074099878806131979004905729000672228236578977400603341454375686344210163834874996755610359408285081415112063199552756059981414188975221545289514605285411312167964130147433647787096513777442908949819130089571635328451159187406553359577367044974531140832549013735719953317513587988243951918357062763813165967937386388213641143771838454614281236060411089245752205609414334400950953368449601260684390471831376225551342402708679102790593236885072363598430277659301797681195735064310196768850943271882755476785228504724796366199128008827774643565608361349351423897109872524564847373314015539097379590427452037476949330254211414091940123316503287003647242051501276836064584642654850559248863958011918057837686355193116758048840048850363342400573131087920055051948737683304244476128439355460085200078145289216986440790749512766986089301373190466020972784314313717419002844928982499709235805305139764843746121723186113947613752867533985366081480861629553782759095247535826084795610840208430518156248227484561363096446388851453559490297081293247155592499156126550799680306273237817021482507624811053374532082133406588018368704735772959488775218623945488785080029187040308383788543205049079454647113511654748899056149868523618812657667287201482513507826525575940643101378732695111193143453125030111358065487889581706534273357196186272144603152093025119756157167295133417161657462150590024128835418246380345287230802792487062441648728543503156321163654724877567199228355951601469930392784777990930594639036342949409245402223861858243720768415730752323671498656232935566063365851184155820767684525741566915912190416826527029355221072126728481882612974616580325698123270140561442215632219013441493849575162090432245209132971988060938176863861906080143499305861151588302293056481337157078776676537769454252491610022176800760607972847313866026476631685697273141561860159933670421277559322046279347684900355079952697567666146697725371331568473897514558917925231266610828829979350339056495566219739736692466469164760975213709188267445343887318416517881817860107565791118287261584543255737553258433338112965226248786640248547345950080315752841621851780840205522242899348255118827236151923460453386984913405073433614249126980105232237844199328251561527672123054300108170407903827461737278757561424526892260550665058746412685038414114390739073189202029109593765263702979659150093069585298413560335635618727472861439243597578532124434805479833939643515581862610491225106177731151394840427514624365694423584387122358999202582059966443716279081908863950798138384752277899227762052735427033025323163112386154686350319331149828917932392148391599316882950999811265456680190627061712789260021748271164210421445989900188167347815985733264860032272066420825619858900619360668938715585641386259624902494931083649180972195019243662713205509927541803859719308981692090570015992452041161997394900452575810379734596589118286646297079002470235143601383094007562099779138936169292077733725744176217381702764515523575799254709237427125489169863025431024375370090728862885447861892024000792569057118372441170284770748254026406459006749275505416329232670781979842359949372526355735153132997486785720876778120969006142776739668596799260405344503001984882791424295066552323642028259982577592293839136369655799924349047749742322473813800396817204219081926273468838481256945973161528545185162904193306301900482571228642375791675210202863184739761835838853731577601509107080998096143857228163180876952904899804513308197153349434557906218221406541648626966742510894138719497790459575890597235145198375929939583734710764658280204834847934776848083901912683133732433474513302658471824146901651492104238997360281024186805836712295416210868757627421473907733512168333233256527655426394330995718072668071836986509773065398102030475931056159798200199854460828595480268988369115721006984700402152287305289633051159348365173707957466174950061475685522409683098095603903786299547172279325360964262802303229401188288194245160592436113178322163231067698588721832192301899880135939624243217448595337526519262815543826766842147532507443954923266207349423288435579652467296260224999787711811099305031708623985364766106061159342633092082010136661912292465725663726076787526498931011101259800296969265789619091837311915790485514115642092651374133230063431794936612726612284023223236717863374210038270173935456160508748207318518656431097132263044005468625215685424625362250010088790080719885727503307278045944208414815667323582391405952398130170882206835707369280868577590039474206805282000323997651435763835776932359550255561106371173855684941775054531203783620807892817332892717213321027347215863937466650902441871042438227656526320218315718730412613405513186845081753494797701564809917755101558178053609812430864495565820595191048774283108840858196241295959834332097699870214816289902025312428421975217182368553089887034356128262091032621934201645699624391951075412708170492129009387778201401364348945208081601543160275474339608936477342118201884534831120760696499285148386112555215798890684378790271861389113730093273235978780035111879897814356971595214235123791565943450924376064664761865315508904983774256607372281628696134617638002880076364972867205909497351178121728927677746597963925988132158814023883495949575944522639227208629497163031167243601810378141600687587392567203060401827297669315613412107991633231946351438537154921107083696065817373364232819032362433067584851193259835972555109441174468058979001505984680609373699235395291584357019217456526845564752762403417803525959476440527525947152278742399586367072389561989696830425577360947770840127430825067542214369942375735482558203083325808052452535651224064058312059776419634175374388272482491445472500937930034942937269706883318458113255411172205510194578874141749377578425885062579519937879594230294442746108160233281261587507204944205698104619943347795062603691236774858099399800417056907133927424668463475137291774685028785939170931949063077858766012639156974459701145804346779267847977045536321610960634777435232752181850778249684663364666498080379217684391649295203452013167903896478023442303717920832918355145029987459787199886627206431771983170150606597095330391609587210341070674455804879289267728235095992992199060041266607715854131831107368489823447754016962839729122646286060980222646561995865421599141220964230669326473164013326456140578729491582778434850195420738820334533384631848615133423098456560544070572060547452328362577453653594907851846632038328432045984682150354986832740345901916123346278819142081170591811037051106504267288709367133310279157784358383537054221216481172107760675428002624635765239886871229606225406099177910699458875846262154228633034682117181497415818667202855056352626789858996367926404111300233596035488668610368989685085494387966203851781565138803672827356237481451474846332729558584357435375134537405896995322129514276334369093040500823217396935893260346949860030393296075036757196451402186011224443635547236529139904466228168268553111281155126161655678632008209172254266628695190025043384587831573549936535529994107870228630665762834532355384814158858806765832205905043327531596638178000103828124262946040312807346877513406688288679390077408678056958548228811400883883944318375919765446705771007158816992319376523743876067198939253591729733070859488973262933390036114926829890259894119623269252053147045870413522782712190896652824312724768075092887714785103875786410892920814885673676916498323584949592939321190296403795147889949919790248561536074455993928620918586156039106861560769478072647562295315300537358145798472373495218643649351785953030382929698855358968674746327977936136465685425836255307052085719934144227801474145215963624744399934549008262772381026643259865494247137514642615656133541244507534452297819900056741918177081597416800087172586493875097974295692262179750021289742086025180635442961528445876924543707691888959866805737961335924095870073972835900269782904165834708970019869377940392661894818846395518315579402238080383279593729123464977000855902075444084108938373281422630786568245877579183565935603764284587229292732843803153791320292952001228401631595524950864102866043261175290659142295320349226091749480070120072272978385236863184860734153085322676445449645391773994745178857671368894196042457980104555163545117332830960482666832676921821865994745201390163415067660698617089632716944712639404258918938875091056512639359419869263440052271810579644149174101617908326354696736027959608204170809992033982603390084423786347749963033755450154063428719315682917255063396370688340062878707888212906386866122750975606000799889714331601645022715675220260056706524958191526187793830943799867523216801735658513163455424874480288232373200478515075006285505439893730564785550316026349711295032543047116629890196561199798033640193139103113540706149260843953357311520874491252640225871796333863370612970461327980268867804598452452867089011836351516653519769980381845222965311795875009949677990229911213217681504835750397941214465933576730410848889518938785367894064769760910231173742838802260513472980896762848191039345491201393603623534286575366625646297756088121659213627735424741742081791993398571149390662925867935172977586670931631455715791777094301040234705648881765544485497913396186955567315303192333498488632082642906852349740076961995663510913365732424638951848041204423672333643221099175807571327737494911807722276927402329698375498218327467074208397684130259607204994233000117948441133193538710536118910629752619729085091723298961212951119777249658692237095087449389035772180820242331211638743894088097355315374334027343135187455188333043218655294839302926947934274319764804657346850395287294157563772645209550401506357748101859480309629412747961090225339402079468067298694061229969958745618295085625824213162549953304197812390121805298551625606973835471891575424657614783076809247018642000190480738721918962970991622224900061913774573474512526879581516769277585341203475076618184326822049551159883820432730993834892796842970529700154455374887722500935052855180483100006115697980610340842648768691951424885185861407963609894293283276802813772422286165791993188009143534516136737153764755322973453704492061001879782257574077902478026357257562375732692039843329495578658594685517058530861947889124879992048723966800968993062131904065452848186907598743178900666747156537948368258110503313855500401804595800308078331766011454248533375052779351517113629363684309012459769471890354180416803968456188380607335809424598644227996245463635170464870470215884695121167843376814759861083296597968969194443549104786940184849420023375368538054359213144806870730071505273324199641102903363326191062414212092067832531938662667284485487319412558040875066581555144395721892598680520058577498775442136886950482555328811894027763785607390180478518273108707606513984874205368678269850989190534099992616365871183293543582441762895688686726539444663883161023889220307469140983822783763265105729739950006721751634745818067976845957692601854272295794395988413153377789628421941129628522719768444575013998997490173555601218560105587201325353250647946109451339743862172328982272035599232850014140584301016457053179771593061370859064677935178625544714525581204305444928134781149837143107677012199315328053710519689490116046058378721162908820973885211557863680208897751395814097771211505131875122960991769059281672873467488021819220778249249625545334834751245122122122407079863191380283585977212631467565825586430935826269069591730155483892848418037415832496104738777707955602591438943683930154180656924592097427278950579405143372783996370111882169035011904152690325892849036939632201337207166576344892068555633902704333876102281368002927475942801205637323704427212143042412550136088229954929518006247761680006841340453924793640548143029272027640084016603833533639417236828247284719168852757347476139660087914752868345331452655567876578350048542848041075030861787047368550492420345965296438105901231202464006693405761795172714469211376818859586145960282091934067834298789856250751785640633001174601494026529417683463684824633045587567432885862742393448179464834262276113723586226855403212553917818619031037186189008746523704668827644514790334614650239509280881733940445179994971166829722320148398364990988573114466689830830459759036587819447634759615550205817494897007339649569666078465871371544281117093889739553592308631994190808081394323382396737678595321573965771135400653111869340257980069740263023654258564683579541717824368861545641772766378916838790450174194083831749013047968591593073190317836106645234348591424985336764713504480311146174532881957742144215302414290633417026225377962465403851773496308048078010386397160217782719233030868433969245026998748902038728195144146901487717064141438677766076968958302956197519911775347426004904128915406195366388490548357803526558985774950448946048641620920472979008427704032142457762668259355024950837562101908729144026917466175760613574626876752012488216361924013035722070379598611267862122222961730857341467519607307463573300428258236152781994212389846154180828108835554262931250666731375008726226488579852781697459225402195871935286146676899504954309305407613340865966744282321238088874070665627095456870851368414712290545601048724167481316944303317539503639107154666131410051621063452143644445862558137447691833729389813519856710741282665270276366236425691114452053883137826799916475906769250581567665656618150147574180763286616732245894193089043187148182784843385211977721146004635994234010179392011786000723697096136838524706362261794444746124782163663437568790832426946773629272640164867743992945194224344626587602013387771342773338205070197193418115247909820069302492833537070109403806346671100017981628157169240171906673434579294667497280097026408990090604825694126065846270732038037415619855609462065618432356307122144941156936101177493582599738690861555410615055469747229298115310064294468360718875950803043440157359820440637347752692657737728096359091362267815716266325418339192363204793917239827179877425980599725106748374231680022343902988586612560560845992132610456820288866018431353525079352616587767979544336524765115390323539414117013109685070217136908956107899600021334221239541265928278637001923377395848620827647318056949719149564401468152499672732451792609237672368561155128026147175698255775809249920347476404441302314265809978141263343876573755773646394698153092104584262215028407837172163710659490599189353410952600551392552579906852024674989397639246581789803635989313546570720496924809620920842465632595929299288777063916386067361821171795321173737323056464820440603675789218623939286125201409402617750351538530302819341120178672751735809445237042549850605845588328378355205563160563691067448872723914548881349826105671610559682965093323626641507068467545570327404504455198756490411023396505564001773077403273546304341397528494103953605991809223495969051767454414046496253744854701169741953333950101017546826589130521440231967759257424134997164638711307647904984611663564094326243350647371718112759526516859305684728254015815001118427210044969815246971568861695803873629889697039892018250546999966396211853043472392788261400105924482773063671032701610568121189528607097444862193831430892249960393796475229722308552589155971654570555329866761788302648280470962936093402721943234524186711313728476847862104617090386181760383327380151012755595068769514031185655479023938527676087444916108259189149452494484756396215415203724645870973385560624732526735868477584015318680061730581309045305552216375682334200698228187463751818305077244765346650194740033396740396661758114373994999902663251305771788697670110594669527192826087733985993268050657416883363897800185901255561613960898860655934129571502261020535306727245797238542854065574499115982229151068860183205854385539770429629464794898928715667782446316817477882047724288155138219926204623843547883016426921948663333417951576256519504092483360414655794056942791445227086228576376845209005064650482637742305231192472767998511739096164448704122166042130439541202971279864334479780703796377109055024158516197910641883776929697671535354483098508027934207195061807696333076934583921967957587510106374400027063675522199715656677545031381650911977202789550866810706577433379998895836619189272561814479390180171621897361404480911695050908009724624954077817043403254515238663852445780520120040108639970216815579089170766184168369615759789985813184851956719298611012506567985800326593731002187928134565553305951148006484063332462765892819551040024106923348783770794914145201055119060057701045034875920949621395669323698091098742072589110170422851117384777159203665434153417431650999029995459474276572778972868827498189056215274138197314945110068740018993405073226378463673459459564898633665863512480064004783606159917306015831283385888546238077863263191083331239823645797259381373178299587656801368442180502273121683199080630361290363033395965904177034616761657329138414243373005022006622165560584261049672819544487345778938533178779994689076179505645216764860620946086362090156394542268261542487843271052745464270112459329331211058549256415794464649196048287838375737377277494296378751894366813761383637997942679198147252305209919411302138086584000872326885035559445159507850051019259838106417484438922502611504879482018807491700559113292447030949578044662785557260998705413296261895247194054842959781848810436012276942446213517094581941992781004411706869993958878767013467851128297050585632105875337587129020393636692379040546155117811357490565105317142290711286902245599882483656996712085451643898927219996303415409440510272574369097593523926583955136994811559226103768531604607431245892039221705684066726388151128537534432686354314821005264186827387845354858014568420013198913158089193556018124612943330375620486711798587913853328348164537734460995001152305776118126020705180198806998657156403445779729482015300723198463885085209122116353756580280604900437946298910539033557695984964756471590485852206461920618076094626576683707998920673377925096331035348215535055598791199741410750379737608027650819892270560904723146818239971546497033619817838496767447046652632885178839567267828689133113677402819609843444745028775539817991902774718023357987253437889863545726478134986335126268925324001675761603744015902647365416331119200937694084734185713215943817149450748912777353244973047826415938037301435441954043374486751825434319011131828776737124480515806545412332404954194974033849692467514314211295390452840591667008878101879248115034132719126423740856075295408158028833583595339459547721975485488204485685648135935724623598752838397224023409404825729815317941450672272692949672138170740606682083232421443277346303074411902550117093280172955153024971717930166281477647099387877666479409622425687526871402971056496612787887278709270289740451090083549463293171476245004612789163316221038471771634662760249106189526684566843091351437817118749621981830952179669352003100824879092511144955740033104067900156483330729536964541738123376159317928533710104217263254036349868772953903456011246070020342371830210536200696688988455156760396888819202078645520469718804099638346691205935452210496997096004529869881640586498447799304566783004692465026985611725495106106768906707579398609359777764733717278097097870141402260429360993674387718001587872625275613722687755769400708078660320976058013087649691632858466378971351770676343195585131870201155857714297499118838089437397028679961117370472056106040585883170592988172865753559065805318260853184272049209331692673158534885764735609572654837782869092530343628108956606852582054186489369284683323475379623566815420586253402644613647862130913969151928042665616504264334331769634549712910308193863794162520864620678496756035408048207122004736827747577259654831722687313213926183013809195801327128930122457755572932161155311454387638850971438653411518641662307087146800829952150368409742013690788230065057984904471989546722586896990421939954832090097207554472842332551680897580104825326324477073872654418342855182423309885530966847509140670248317213537448745706529488987348003492797441857125627795381224992910587152415612806087131411658076332397219396963421706218713550961575631151854958875840183725931865565280903688531977766396513539253086738308227370538449864639524543148494198213808480153039022782716964369477156774687930640375893903853232406899080680414052219273349916709543596521648177075185499113983768275795945544414583014687992331060987515680054624461845717048105331472845120067589427136865399115631939975638258810146356931338187700117031769976688299896220918582940822888432104198910027351781292387932888206083534514292118093949646167046617313114670183100534814423522754447336342185075792707471254936978884570931474125865775291199612149789115599956414901722632352983048625226059188315362244819593997060046290529934779708451068507299149432666266001749742659793978390185698468129396655032397669899081305744712987758468167740559193184706914984259609601272032263565489267701008553472340812542719468640726609350219039555971773712288293559152383404252369155060149199252048317498933043445367514773090484470394456350718662413472233937732337259212598006944066581669843520261224226084727383557035784869204910189791793466070850652300634275348810997033793658763017977620790633628087488069577577086550126288155661495683289335893890927538398113830350759313985043112395309751465936613266399616810446381130619887570331231840909419998285788140451116380490393289102676417055242366432899955246443811016985350808721437456381600037521327755225428361245115440542394631137344949742066321166775876258348558927323349619920849707877181800966327974036535099553790478643179790511543871016502372241376404863158071277557997376659944565793830423006409041037920167397521661363239510053498582820494143529140891530135553423114658740453908259048111972750224981303351266259133106292657734117628743650237997698652598963880695961661153493103785031586068644238009582708639612750797078136284548614745880501307188578710542667333734898820031091547866032222748726984242464587605230977853358079052664156632064156416780531378147076305956067915106344460062726976888221241011390039848349118459428027675812117500171185136374907942575563036505811228774737601855005784933852160747065270739706961015007922985533979545100927716606997000749643232694891972756564694672933657955315613478717876397588387784668899095953942501119224326001417535666895334048387024777060619903854345909957234770324801333137520404881527203037365800056112346321452043515988426079309807519072539710473983610078288389396877898329626028864415295598336173905939712905602161812996911523822400330059651933068379100689467957144656692391036317831262032230734757649119021676797043450838285536123098049490171146933010336640308446956393531126677581717060711445016651182356622967716321346317210218787876843565093420188960735017186829959346753369394195616364469991946298457923197001081696144027789756962253629883741877460953417369006176005322779725587502369251626840818344776050849833439086536521702068468653927754561569057532955248342498263264825431933330177597566447625677747840844538692539617784181291279828685199563208225086423242488603414734853105658424850862692876786904456514892189010421773700420111202909219972340442468543158096835906971587948815809327835340274617124391706197661687001908320760092649897464248036095945841551057461909234186750285843091024822861018451791233416957358662111129160870194219164264892845019955062119890018051254506670651878171577786001557327690735162947270785894387613974236440789087508137517612757300290660434079610909747520762428523623012221805049378580785998844619329363097783819721059360702494810520356982336813785817334792460178175713770442599921035713210081416167679707612556814115439488340791702727975960059255408325625938513941940353911833648239792773555349841921279398332530059010767148594816309538394524098818952642794435329832060765711303631173330343435395331803188874766791016832271279535459610800102178978819312625483281850562580506666695615817794391708057527382372233684567585733665356727335818147919489853145263322546949273903212558694662637339477989643334357380913514192954636437537361160030026631630544926019633224227127154115681016815964285077407864408149528382789185638523349289197667080982037373787094342774606579270315725031280226954130084197715375521779051427827661286844852585711507694957697515567289919106546328335157015399172326307856080762998242356210037330065441330089360940236168117961410950327438373177531927758895046950767733185191315549732386884368747135124258767114779967647856011019005494698812685026506874705165186329970534905330025484997575911219955207254623229510250116085271782394393512225468766497562331635612972923165697271729985773056530230799519097609308537392644162636725036776571281719892072399372399367342645200151276036640231916313155374762066629142549505112363565580856107284311851418774643508612170432533877338563215519415679675436427168203866760416752608281050994659785862875674181144689519289339705238805857375394329385838595624002357414619554219264049276466923075654506440178748616891399511175976790074964396572011305485163502782578129329024794056782049056097542929172169821308996743864408476826206936759738653166087005507252151717912079304974192851719244074487297862891430669874608284565744216267259953186845311789949644927167712286004449987738306324858926697339153196580876320675256236382255726762553057658247632069637107364364450046253218414499757551587621288983411827147629707393754541307835968028407570685319693452275209392928414897694172039821875193773594826041920464315305083843853821000550071879455274877446237062010464067239440135325347493357874553401189860369650270495578686190826411400258419615190038799386502768064742096449785980513152507910417303980434033374458157257233195761755288056374735178437882196728930094406594180757086828322854907392031560608264219617503335510370217939426528442548408400905124715929094795154868741582285978000815175139041226568520509697590200269090978907199131125737265209024797719639196760775495241002175531977141592244902093906311293710258022650159483842884524525659993444513613352209031398231507584007071378446042003072582534416849553253559096711269608604844361355645352921698559644928664244186702902500965216448492923452440091160937004759574494589221935128473212410484888918744192387490928629292592406859324933785014505870210243814863924511132951290427540716849354562564519197221090527321723449848137557010600638729221240273544891426137261343222541897810505210303486610218955464140010988876665261577596118886336128207787244123648013562399286424645469046502176440005962787607762132331142168611218877837308265408872030771499428628180860084231630102152433346434322553343717616059001142351419521594531231845358567850369224479996984448379257276404221512753123682616493123890707976048851205004099478766217868209871378198037246861804450399572314463951679732434372074478900007744342930536485656617970696936145468107433356413998994706428063741682247107089554950638236643567208712260378947871838478404957519240121143947204137794915732854189272402032457127603265973511016175213337369839132161489155839988742087383820344306604303764063033864259839950076806523262803042033820544784998117746122367212176782816045697831324841546577062054299955441512743648020029926198778809111344710965219630515506284628864786799291381929765715905125650286715438907305351683329433357711940402154272361954684612398676281146978545470856130300985699496281516914624165796014205744173870544966823625267862278994912471819861551299539315850609318079717093029740242772986011812166409810076833483131933550272217402931100424411762919077558228834916146503502171903117896533218791932647527549469243382550272407126376575194054728801983857081278788469782128766774987891907634551748297016109840689836379843349387680189613193162741455854462645042260075003845500399954838395673402417710306712159578939407422884172059913550163339856888441617502481554621292590495706143095122917538187487472805395139696167492257389369426048603496603891324897910647535014177286099875778450476540071175719349071263240862877832008502158045649870944689996362274160592107511520827028384998492294796800466598544686666071871147689768863577062776076605399262757755152479084661793298390614773550222750728976661459391248223266229165908517820214665696004864569051505809960160619017413505446518847403800493246399424730722976402565567507652192629873484515369437632714384133039545640995484781993532534077590359215657693687605226483772488393218125564591654152573656523649134645211104845280255713849493206470533944787848905589874742617637045418522856051757786870506932295617998816411840922195608886771755459186672641611110375789398280217398798651042802289143246047057292786574917666597847939868992144028380756242314914649427847928926187138753081181279367957826211128986974149977619014005666332608243305797533816233865300080134453530578334186835213888458809812032102585309563666620061028899660190261185389667106975547981240570829213542911403871380396091208777300946487507428687798708606074193952260461811596832914659140742591298557844958089954565475778391678271117579053066992445325981537160265784712787327375584215930945755037079357455372005245796991138424924516557770002539269931270300784533808124939678295634778849946094682171677644151169308114887670169960220340864888765557349259423208913366109071649690139477903226727568040806815150326138386747809679751956179728697315874402370853196349386427626386159109770185889639492638488678467087434534136878418381903406122447731229959302062633096632851506710577693212028364840041901602623742336984030014875894297858873861424258967210947544258779805967848236791980703715743975733615202825983748397351054378314487429010882427279519925465059274540841060660573790931351965241926952566427321600717751293595981634129820714144507939136378753505983063509045133046710986253394043669242219853073878238528405321207741401997353964840925068884000821354965499060911218728725014659821015631237369428040300734004925568443894988221402126747513485546695590624609724550955102485427793505218953847837981269669234604931635533753392296499180716181306068929724519221034644227861789927889244530437016900658581523296102050187494641941245629973035797020189755475510797592072440008450387510824031156479948746080795859728795831030777254074644553960901205517946548135968085340083628174104679671471710169944008206319617378156302285905713585213643118051977020193138911135198864884450198054670995320204615194350094858291424681025712661356526948515002808784551752234320791806752317795207559199008422064438450133479433827995868352495149005475680533818425489875239122328524535530764000828038912949689177319818979025575314606762341389124475714971113518555596460813904547871860823602429937611756601436730335277107432563351797500913776264641272146102350370504388213793060756384409788291000498502248023646237587734987932852841892206062489132942153082345317018414382378219894595052452240246511207376782319234725433343998729038208418203450976350629215934676331713772426830695409076567277251326500129787861081130895760819826438849979432016780944919445431117253399160608299888486271243910987228857141037274521822702977447156136731197977225131240127288909989657231043489440173241334925972344947654011711796989258391608200556354177750962076704475645608715009019474865023050004137357059122172731707639015574829014217100517246301908959606189831098462391904061491153483931662529922341944098508156437320321817655646749017789345900280519869965643754463562749559670314626292251097734115439500744986212316907498499664334842536449540815648740816727788189240241209424940484743285108959857532502622756453479484169547072506134705586877971312068688285990313193951440992151709199288872354456993430796357214594663288140268424100969145449754709537459722130167855121305049989610415637315479167548766681926506971410269375770646719267189985035936283112966503395242649254657919965998014081464313020965506764025893454902719133775599119833967275377167198930054863456459099507414010505954275467294780232524045885638962469850866432836834006959942168340870154331659897760309873335382591068931587663471913188955012307558145723696376947900812099118788397387759382463325153814950129155654098587195591152818786881795174126893803889209211082600401094971931275896241001706985972947061662007674329521080385943736352519794052915542505556052924373979274264129015930968272258498955693738421492562137616020688662772147590863259965523873629634325455007718677173041640868595629074221276824845426790048970633756599210404212533684602580715474092386746073177689203960811187697160118114577815976360932835906783021460993266505464273977538178318938635196070870581591324021635023476906763163881557350120621343001155289466323540485120033465253701385768177380014658339731211932166900400246300495618273732912710773203812624623247994662227021129051263918810554213875215729167364457989309580257865845483547874933861192526663060986041602968661686970183273633481582270023598686441078616490342125929937631216257274462274887096271473833912766634706245768430740658373580139504232202139999953115467562905938145416817835611973670041105981099346362496215837093874862478044498623207562160227844003362320027553665523119830118496897339192912441575270638197979425495788733649730567977290614636675940694802221843686991607935671434314286697090501500197295019820830050824668447253436719590048365029089930382936612895385189094020740569654956385557035817609448989092225119962807341262079508550410927258046252596982323094765751548845352273497031543971753464616422388010408912772720701724272578175297789584469538642671629203115461913606073351057093217403837897563543422465489090032175672308752573277036207204610783586568787251781044264360448923729043509335773190812002148276520678412749113956578877807972429806544225605176763220064376774557157059734434768832839402801871013927525498214635684400195848108317465345893774178429348572807345820507753603102957064091057793429823736525548331955356686940211629879278609873044023620178976002449528641423411692590678736534456791290434028787099359553416810897477283559532041574093592137704823494367377639889528340821136911147878867838446342329768697171548897590317735210505609450769427890459966422368085383569085643877300287391446660153251428109643389281311222657033461424543532094272758775343434742873321100902697319772163374537446094849753782573154923711496738582565342392704812456090824452988587495875157463128196047367775713918215284378397515233654832022643413954561910171730263222901052711481592971676686493536293716311070764166956237815476605952641076442903201789948608234208576686130024110791029955302756629169950506975920257623757477255112367267775944815758976026013986691578949804847070706220972170280797230205438112858723004757179173765881321587867258975074195147963441809861855048849955834517433638053646352335690404559143556947103663491750391243030341263383030992658551662823187525624127915478260760245561239246230534448603978284663533297465212558003409923151067599202144731113312685676026314970668418671112061326387902399222434467478520439339124871310194293848364032973463385152426456385793032710635507499166959009663411738404509886260551338014142119404647914706768066500015735209096964704482200038507641787639738218482258075401744866107881137236137838326130964471570657366048824313850713226326088894411949408077140360217146830725573873449517961272510877814495403738342869027842750326237758713024609443339793433722059131131146062689221864722782861731672007067168409840002712806282161875321096897293325596919189163832449155037532294604564329935140204652862248604620234971747165112981016799424772863113700079505655991007835273542474760082837990672021006321872237931577825500946318152644841737118822129599656817410959127677711344107657723561069136222394141408644517048592086400664452883776929720988970659844261229701852049346906969467209810927832659092506712320678004426486229797456812712782623086021804831662444786850776205325254192694719927415778740047971421304295850876834768586804615582541260175657029397616236675823859570871379312529662768042450794539957720233050703028562376672549628869950744873826045958194732782480847408824686501752049045768046694434097190638250324018066033244452605359321283332950811623094675696964695055235385482619131524413638965026544304022733717305666343720602830529994662224222768149566423146464384965996066203362631461420749657708363008103011936014163615212442618076488800169087545869263290238323240802438893408855887508849848371055411801502081335696482176522633174393664692009247852208605155130750450724330980038771969863074029009854642981697764201614325042425498821125105282975759233930567308284359050053852865508872357459479035222775341854369384743380639569534160781870701424235787585366336858733150550485067230781083641124445148482515618164712208002340463887974608802200407423890694695251293118650465902721314426539435557221870530741228875411681050213859779938968682797761201284853805746016044313008238069212944407616074109818277726071108014574697892943524321733602719178749801052841697728543459753167882581117043711028463059868352952831234773517352506466143343280962791520322309343678822975550939422481415277641032501732595459090560914384548436438464983092064234444810219734693080659615057680445621533043999995991578920512870258270304453743447112449716749656527121239629086102120992791978717609957331743484583373692385162064380821218033912046303959819632543399809328582786016607011470349335994455352521647109783798410366621722440009604040475630862950061018347243840286249257666154962255151913475672804288729988634397098839703974414398452427337729174294290508003965819286324503546626559148356822162822033138580863446092978288652572552486152049524962992966530822764399156015378508136320377839161961235996590948216352819470880276582182386925811749807872671377745552090602776910551181374617428011639656814901163157980798426603347657335817409728064394504023225977541411105481075871128798714936608717414884713713310106634554998625743438409846944202372632335325428681438405592335892973883476641858346236106197922211593351302514594238573322295493393905360612603879974798636792307322917388152417381213858719701182190267894559278434334400084622563005827855955284928719235244780271296001886803737113554096375534350324646787584572261589724124968853005067444080302717542582816503299531898640861580712917003044928897749559475296892778400470363627786981132780575080197760281434341594354158010920743406051463549699481090430957448663599725366619941413493790207050980766588493397534074175895937811478738173744595347636449972647184526022526225220065182020946856722802091018578707028092772583425745926888835606237669053804934557623000248192986483528607474921539426027037543541242748749877220017396735229191919237688190236258356432054472488560704664994893931286925607035212043441674347218090496736041986236579082876625616879279002862243153762757341892023283146296759264512347843402416214664148903401077396086719580323354945432908565428364188162863531506890578222644827692281293538525256967075142039767726603004832032252393439042155810387155984184539252592925742992871443672183213430718235514107798499721291283683255934985206910315813655528634309970700032505295084573138263016288488939893740104837585621506510284953938046030072257537735351696374667393237367713789256239045577294028464857375907532700717399665502401335868379552478712572485850100609185667564151309982879837985913298969296517655292803634981075942626983654335832581559928357146057569682769896161353364427891524742782279324831354320055216934102403561376911773242330566515889305585714717252457911322638864297020439416856266277392057357320492995443467503059732743344423931282799369414794492458681198758112578309184950516740767589690735670288826215009536957383222863372980795657116349785799367791170211300316330501309954546916496356779858394744180022989861735702279830921232793981422859497836074799162078573585312241259699101181307247895431127121462043955029454381328308497518868658584149117022084390681760660274510329061393050135413909913435632593333410403554360186271494114789665575290423063533985987368824919815265537895211689501155858108334670706467216412587042681771648974687237321453975934800225336163606631724379234420908841868452639576695853464483544289197667940656745379240248987570842360720379583708649193855631998533285209220275200891738138189686543070294745415657068723025163947979151430081382112157690458645180555297978233747873319125902979627330747921412660186838402311609127652832698334740717141140873270887674885256796007314546619395444962040971462211120519330925368530110213976708956586080488252644525031499631559681832001154519880659552764746900510354502992519665981758464427822776544700546699709811063955574420352474480531556635204383706628644430561994615858059142192666938682869582895594436254359292240522093887370646309760633206146393025123252784134338577676257922216267487067595934017086736931608802720472977927236540476975717351257457297632607891165277167040545493935487226711958909715609300264863586831415219571811830315435342657434734412005516163759098736218923108535854136457153539719282370236927874007001125735295479655918657775496644605128843304320363501033122418379373577838583660621115982631314505222965672162171821384105010815014071109332093328770189000846582215257829363005969537701949642159842128922165886108357700162676854585395743785611409273079324166425237738447833638064217369207021784793619731806973529914139802593490427910721081205332815707777277938751534665633933377140897374945126265399781522704422462695174243585288439836993268653690531669385329396727369459106131817132022973589114201643026065326665105807455419986490524077233852662319187412650055168858325993814994401764408976129020186046522330497328029940466547154872641625589704923990346017121536431872699835065258505694664702067164302717194768550641774279625264557596269656135721385766499088265771651132187348444871632738865143536347001059843955661934180097386209045728421439506647373568331526656575017842191073100625595978819935488849885121400956269591888411950529269584156634966741756102634533415840885249300986127487781589822263780038800490566414379260505364168216621520720754823070578358083556161459632411010169501203835356015459312910997541789870658608553991138264846680445415655253937420207828919615681984728303589945876377782847428282985748635714782350873335998836194904682815604888044346682178845736774044045638491761236631694289775527523887440016826663222878538711248462370674263842126849697186118350933950208825080653150584995063437781701829161254218291617089051672060562728959289043393562519811777321892840202323039458652332337245088735968756044777736593074700760102169096852678744333264430567747652954145944942397102271868697449677216714020734595540026175262792204287621896045418412756372505859905224382162044847091996188142550533737143642197778762524749182417052236636645433803290221471253393019118474916239949082231084843435100971360213168722215108840687512004604074441377361952118399690287321032322310017685851173826997579983037498338642111833706579909805030225147669470955019732726261915709230844278555977002031277449625133747411968899146983439040724893219565471780087003870666858021683654068650646343377191926287707096014663321756352669407680217756562139102390137677369237864970471947219395612427043017507959312188131128807954690955066330728076631009615630403373485172101464098838864402195763994507371687844203579198313818194045076820797426210089421588574796778666527238423059034892958130149508092702208528325952796250203852802998039431095708521116487363017027162415870482589665866358445624343198865386668705058642876164870653533880068053551846711067349405472755792780793058141953319668257120427745430711096313019181170393521036307143143446476274664177777644705400207226878080278560810560346014172200759957650891967303389781925631122156239818237283099801383112321732197576127830088206443849443806961981497132143723464554724500154056285536485905081045433095125113859676791983757155960877890889375251980373783875726239391752927645562757308758735977781356961464511306615602132241049987262267054502408198410022088419739148240412673046410210999784074993691598275489474700241686414259742135564290072920595988154181918873519485498282357440051473866469943967816801338421552157792277190742620423776792126880820712142314541949598655121783486246952503329383754421126845901940039075088474981104408538109212765852981612099906281099351446780338743009161679870920657934315827970452436207893622067980110758656843681246439192816616330828519589071594753214402738773613697455093213336070648351214320277060902799793596621611862527055215071265961100249944044323594423999816911961940760449579775996438968305766086752114590391556104495223209524527750352613185546667041597085607608034517624582886130229969144158213787271362145585874803974937250225400260874056025494079304634125101392672473995244206383456431623177967173155104408120201580133524071331967470552720293783421674186884490615599625214176764464898178848476297043747095899530681630515081499441122255066511964849562731384283631107835765014015008551508174987285964224382675316083484015517101407485786450403171515164120990565315994904343768881553692714263785485062165059757705198504724548083087172856742845002974998168017716527173825875777610202617938007572783716621999233367054283345436159956252784308289293954383829087389197781821610442347400530566733656644333534565614048473753085130127360313203213790976390405273147410631277625802152709453799206378298439978167214655763581762224218528577877049824657017937843955064244600961661435767295580634405043895697730802810950882803504251870562758368666486146933781714421825979049268105686627481551885588407297378088931829002723112432566984852188216320019873553976585108916900802629837655659333642922771761511167343876267316948117489475827999501543990413321974873572238574268953116605521085244638789232959611787709091194068968194070438558967352291557693165714855889786556292286564468416455419130371075001041711628122233533757077242901074270991971217435861407259980463293425089881741850695857797323673425696636524153680986350586596834666159217712985229756969551508554808290445740148416588906032091283134128858778018369892647537083848185521912545575906286820160136679500810755130486378766969506905792239212887951738983686125601597097748899761112440976778591310194878066295127643749030841601356227338291373037266436586548152762827009925928812274248540661494230717127891415756734373517128535579234757203413001694682484036196398194125421167651889419464085209958908940041699665767231715548935907630442364950445512519305540340162696736314230947474583397568833884183637305827523546136978750115668498657426183667023209121874450120860897421460560256827512569550165700351657994226196436269938358611167182739353382277060772184845365613023966367844821310604736221227705603955788271144111617575264752596672570599650472061163728817109337230090020003352874672240394678169581138369926676615035361781022829995939449472608193524864173534638117184107460373784732366945937832523693372867085883593083571091604083052689980268173025088696381536138278800371558930247358962686295023422483359823237219637612842213646518118992042118308172878757330377363889558933788604692782731231575824617895737454862539076727592918610412470808878679579771536066897258319083380584506121057832217173950106174167578977591639060447096703042258545541287771036464305082314921680640492807588505670033117833622541326211206518471161784852085464236501951027194907923256766883435668080055414297984913838540942420097787457139369776382631898885415388871933376238067867683436658706712351611731061741293899128460564319085379039588965608066718537368764151640104276766939109231359445111115101384733341573390488948403175139872124285108600102579513203962791675624410047319272941780513084952178910680259709783520027443770678943179691646187642388255202799893512604478953583002484314075814980851930786934701429917620955631045233858061826979795764154836495411624856370539904630012034475731879962422738164601745398772946225984413042773929164926232200427356115610752332260162908331982525099920825994540324830973720446296668876038179258719057605037209118093835747613262067297093283214355677898039539178342840724233113711460840616360336068585659849360690367589317518451692110607296238039128023989917243638154622618939024700996133062804149103622719175979240554123760541006684982582069879391247032652590247043212644123857323565470510642679410500530918381407682835644234041189225876523151025962488648492496020614416867837931788598836882901282765244370417329384260911320664501598034384385742214295605489089841093153991410855851038272488913188134636103060469712953829612657136966017790784352024505209786307458082211344840635633100261079818690987413216072585902680080190055490872008470909849922913278049203913685757275856807869588636753111278219830191972577295705199721754439690040171441511992795845451927970773661178160616143639717200922935169039918606402773302372154649257165526144558146676153691388267844084679494870679929863521701004086773211858092136806070425782848728219079257689227785043667886585384355736828094833303428254856833553983103927036943147069140343434147396219011049104941359391844414466375710494989312531372046665752309332401105050503276592712769368689116995046205522506445900118842667033470814106261076865921889229222010720762204638770557795273232949250833642426008760739014623404204261455390157862273026495357864495594185157317027416785070839255757892823823078003652884317017903100029218753687837888418628270787954084265889478555291842657716587066854907720016549404312574714261954059269108317669835124322865486790518826301729032719720109028945035507518788655950137989800156765480554582481081070413929734096790283656019048460672432512746925823104901110407132981053408098289493169982613965781040216960044378069774426769609817607661582881926873563671742869342691190995444627077754496949212404967105651203497873889739183411294268867250965506750691281389646391659592293904932471670111632797776061580664229219278174167449898826192420103829096687714170157347578714737828401039606824594654939564404000134425073703049964777894857693911077126404253457829044421577523320940193527867830544216195884446934187141793799892257644718138780670982121108132385090195357176772797502084555085988052211071111688268066537028568930513097900732982233536420981288191026029841540887021626551802796508345351525801435249796870769401543987101063053515291063126863514916063836402639620287691272446733846516362184366789151415504166836181038049910419092147184728356845662209781210958535639247892672461717721797932549145168331312824772414729974632782823206143691382209000076989025906852202295274250374741300573990359711707551166374076608219527226084133164266799871422907506510759039826783568130504637808921064321417024561945484624546954507536490300515507537950862693876135779886308302695647828342733450122494431588305176735821731615755588775814862106004567488505939598009762428747449376354283963988034260384772881067101957738809257765724939234049326194265844537520314020603940693881450996655069516204295641000690825558918975185883938704100050904569439386922693426532290926316221574305044355007235359026627821076259916174733496266232888671435532879825880352760684647548662552333806502575170139880871092810480513671499859355781724134285014407072766356941799165409403543015507450670029957107998377338068357933131176445260025057549164964929025531651281019862157195402346832737886318979322974369932527996568330447179249497621541360360866468827428463610662398106478452281516509980342046588151467602948045477027195908648779134331460101397205813405709519207558154255714339258850900494096087582894474526026389020109738634051906389713735914967987910091633575356445175459134713124126987106637900176843160339994255290124611632991696213905562851666122072512993080636270927197551291899290335774915370359369441791235838897200120360840340743882803480334232701314377531308315198599465788760951716394316592909026700639422397761580622652639963147614771883922026359915717277555492456295292932503136387411190351388011219915296404028537086956966948623727587063216506828702640715428963399685573892856293603545098068848801899812595376472056940157642736964499367669540820229192717682692399076237004197648913884083170175107822154062771768849695445386551841139900109724769588198270680447721774470993487088381137621035928906070245331164087448947818776264345937768335138387649745520991942733085759871533892376131440702502635375440987798346603963279288906571295593242000404108237791992630098584801529161254790327702222660657482694693954739472564741485274432659113287454676775514418705332157527919495338135521124802479278787163042008480124938742274322145570306349836218805307644311836715095296718121461120036875307725142869191421261094365910778879760750447762525432954153830552282370748813822629508025493489067894698729164124680163577729355871537804222618404493298536553773918328703388723602877521230791128981953290981606888973400787336099126839822016570995745867384753682753926942996521641298885055116817625979072009546033198269788734900805320731698710044305314606994985610999889248029019016337477663261894107684349018150602813654221721915279984591537267007984165667924975841866857330965811749242574659862139262955605316247299231121084996536631322494727968027778365771979183132454095733321121700547148115437154623537576669022187845609726954173301338972151638383878843140012215688932483260607265745358616309858195058825862348333283298958383177586491226530156054935216169496112259297671293546711741223784035604722410025736052166940942928737454308493086299857524377350154902058854359961035943862104193373056330740645632073205650772531325554539000496475205661479813546447716065662804376823085503294891387478192136597811286206453717348846770576846146481142091422008929722496174009739894623299977514196882394801866773897532096740467708526133343403266880540223349768826206706022131351929680967479415616938255877791065189783009450579410137317664345492238281539463815022634591727549663425001518679890275095930703657968468244808451436825692169907153712332333501924575857650973865135017693509383509858577851175780265575697065349328498927403925903779839493737803371987480433312509912627157441439872004191674154061912090268801325172006486632217422841558922754095981604230130590791875204726531837097206832815504086305360298949425517336106887321676358017887188590884141261791299374948847273424016541705127400596481171381943219793672971970692928182360284031674940155791829490174485861941055358615813455682426619944056405762617551056559125030923490793725939261207362381313823570736665912051137462488023707164382171681478067384824058543277546445835606732676414469259279009316915922461686107869209840244579479470680419361522192891975693502921160449088406309692277437291208079707927906866434809955197411719680810853236133099810490584126898594315653506082913910109075382975063192718545695559382823986101146930426710427427343548156705663371576733476652092030880685337706910879620603573806698564640659961645762962371491657316536961788575647377497470223027821352374600349475483721197569998636746193220090897513572107224137298021693987027028717745196152314690693896322902433356988396416200389385868719149960760160650858263600151621284166306429119233032163202100890040243068775220672617808831672871120399264418929871209796354771708007452911039384877448932850414905617767524177802976293434187477065455923904276772127062052816437507260681688784322737393540202507277904256859696447888136132354846219502699286532827404168689398720751583694448084249794858687725932292716750673164620023055263528316837105545629286202642260806590200561142628137616093454307090321244139788686706427085487488343128988487455073958966882825008494643412751297579091292348820239719301964177735554302992841909142453443169784938796617768901286580006271985514542628428172303384987080691637913653949187607484828335662437508690251477354915302587357262261311244537836781036556457965929225365492799304593497753148652961793363960631945719469563177162050948330780591981705229620262660985520526194199288270213565866772606283759558436596016210815137494977946076133671034933408241137605908654349787283407955917528146022290014464343402529775931071753741647187665442709986021628451577886828032496513259540800058924294209526097277602352397485546443763514742340764045431850146489431489124202357272098388979363248685278862593140534022103243868815462900261415628693156337236907469400272154614171143073080644846336727767856950576382347008773754543163158384637819723904303466673980878874955103111264854723374476439106894117340521753885698399793923055638128359424993631708466138423886504047093410241617834832835054570813181269050365004674437891804319482752465652107808200340060663928695626846051940994882678313094327230434895921364059052488995904282245591573192503047795986661282619179527168205941000626339484121491675044395907905363800254936211997823081853806187971961825826648672831051806672825564201946376685069463176206881081255604286865597482470425436974175851435084406060529449031988146924076100422687415361452884133760137509811390104697563316042148086273901190835913127042736453448158764254211518733796223554798520639536309954603398333264400615812008878354380392928218546616425989739185375648720347847078434634069763311157187025638114159489835058677708278566562701994135446691924371581297243276143111994759092404224697677268729791000307736571881197404395200832743982121490621752542171883099668682867558401088725825780864239112135626078564310374883111536255501553581674801475266174941553421090989881114791077905734618479472198739216274639407196250133672078114904922990563214971997369411755818643269020432356568888672063856120949931524440790207140131278910442004629221591493079968518452356530209813429385998063249117334942870229516550606082440113455025614694823916643618232808327779196924041091097670778455495538208112309647053641668991290436950298146816051289940302207930645355330054525904521015445191376083195721731382404674501964858019271023102704972095237462050825280106943883070680239559094019028788240994272745465052589041148870065421258436581871707675946478642667470644652051034529521320665057301068812881842269118368291405458788509661058300245249125231473029599772835351835429707966771836174821942009807082368904583548363118023392083911609490351308153634804315156562664855216426776779860903803275327410909856273773635164577909430363676225002162647693175764341397306137895220061911646722250530599322819639314091155458711314406591241495371858920221078540593903034750147648414232993128659380858865437966085324189032292319230694031604936171533284794354670725043489601520259163281430965187000008863664211623385614360574680128416492903337382950693788158289093909916114069891785614923884088061681461543542402847565771851578947229072470460450387629071747801305454457820808483479784637876299214835351494436560952533623594640570596525337026798692524479635275042658751096890382221803931985465386720912948045531852717287137929566150544154498786554457420614412818261560166440324083412040108072625428573858434594876894284883660861235236183752203906876968062674716277696272086936293199266329233648787301909837844709696265078634623116385134710485999012854169792017376849911091686484247859202906177993873780465296172634752880886492875575101919005812593065421768439282343737099845283717565337300425072275330878160414550119994218801321830242153614136477900535172775011059234792231886828617405482798701725061863235638909518687164331035233004617816147989252180228934382027328960673391815763927910818337853683913623871958973852930471357071835104023719973140376232513511048018942672070745373509643581604516430878085203443831452311560832785376735358604848522716435194564165655764878276582917989310235759061410591256099639425881394015504575134001265762033551736547414367882326909980813968521415805558063684155641055452285791479169645013908052213813216401119850805613196631763486752639404421656461160906626421186030437840864609104511233328619113334050082491006344254890868372310703205740499134293019437854426464884614690844165960036911787308862745970703769254771304371262101619491929471459043220087976234269933478438225024466382035077739756408815842253437819819061776916089906562962743089320247154352264090878583835290576430454412632627416191616382504098153718966542742139175037670043137580755277647700604933397549306468239638833585535713356488881623810912942404392194358890983436852529787628026766387520123669220122547393565653894621121393933100843302053586142899391737381187115601895995476266049198554929551763973243319475381402879099136171176525473481576646962059146645274917253813852074594439437072605943069208580188950169400933603712573280434496983582078827214624847434723213930227315466883943410487263013478225471851803711964514800265316537007412145628967748275960206798307417228202304954098282105597199355786595199466567845584472788672315473649721860663807800277159135855787036442797161650814167367046471961008158111005128541203303090909659150420055093470118847809120131747149016413048988466550665103886912508699289458351503906015826218039387388889820535187922280628881779933259825721722682392008341702069533416552364001169148329618351751489495818839649292532931145610865039170388921693333302266819822245656048639404872657382507149065237108870114307447293606604141311925616909905240044538954359784054220991848603011447205336527480466975856266456563348245383176173677478256705310902123632026249010660682669606779887002430638333253412755136526368548330321827698094223385638235467520107158439926290987534211665192220075273072926346150252886705435319322537822836610023830395516714860724231771373887105927366760975360571028697803539363453297154151172276819200777493943972804961103577268106465979268798098597458211086710826265209773241484383290787427074051395645495308709804926520999506343528826257411824981952135184418641477993649516377962748485023982918542333912072974434836691239229816502837467597627200919414443185596541494023019497164844614139161860696338831995224899923621760704311350788614411444703399855824154224439953930092551720447132661112442896710806643217338136956959943269676179936124801829044418814956916142239762608730870313129736990257362633552208904270259999004692437852156037801206921603239246653609015695172280938071526668609557269561752846919425387438293945223723732946236545161010121532411454969497802590899234757889490599479452921367009294203728155084288004667641246506158745682662424494220700167604023909063697899800785132307222613588018238899486294173080574827887879696477240022702107317207439827227405388998127585006300294777965600306885768438437187332507073075405003857406420939114767632580183902850731930334213561912630753824936505158099133325811170852075879457772023293674050114886119233743000038207277551918897791624173068690557336333250897122573228884484385974263092751833090637343145327954188949714710157227010830315422223058128881485083307582112794936119474659763656330608347736871707981344035573441515106870738290667412517822726136533143029595042464557787818025468747019472386814897572245273918535098627468111698906316893148246214430850308657022073692021120592944832259331382854444794933357821952027191027635467708432306062562592906517616236584782970253750584719842484900496823474595929897197952479139933094655695408083452809554039784584593262050695891637371317171711189043289954381891435474333734213097440916353129938732524582524963413851615825203021059047574650007799192990411734034810165162010526062359362892994970514765050756390142686379018357638001806875499853980943679621522494299809269270989612208299052481109000588250724543389740872272005365566461955631435282464967736651964067752567962339601217477191879965961800537706418908159313858204995753334318553189117112694362900345273825841230688456839079276251410798297270514564958656459571152592403587114729582798715140228755002028346785633112782607318270288936763898846410198366291421407563059193461965274744174290023679350754252191462145022433621382608172004659712215164506709571399571423260198412423561592059480009923571195962334872676591443878692354036406454215400453498567744042197307106759024951594667854584931189140247590954308568377121790094001140871036904246560704343924871884960263130642896965793322535295041954104095647422764553789027990835833824168081664508087019826514104862329263478658135461399781819128109990070092111685716039196104781502726055815509052057945988515068002297879585165110122467252667061158190454888786871005417048728464872078876205182670814657630818911102151359836650721322707225904766445348302011316522310440959177894846211681654371759377344264540376742277218620724578838098515106539357961374814307019801350373906049453253124557895714265294966635896994147504644927844014943456589893331110770807336839956032912754414720896806590406647191946736873355967559407272290865953582629416274035415308160486982961911304737405214440702130284550693386916425691995946745626562164449964730210008436805509845171524111733572923062334124517486165162329045310727309768899967203768178679324472069334380813928415276742059153617509467954653638611285659538326438643625786257283545371130957691232346497907639471460939965608384009474174905482925826905063967398253846461658614994736454237662785554389898659430159928260909590078298427494439837776849164758418210525299361237680993710977047939585873289171617861007511209791764548514162765601721550140742329280342997188141006819584719297980313207586865412753564813389402978176541232371004289851007608311445903031029547230392644598289996348291876643369638494599621601730931241963714460725309392628175984947602369874770134504615196823073685676237483929795436685359365387630850181293264813147868148486437059807679420084901628216509170468978912112172961618833494598615871702382985523762229097688657736908904097774007254463550679032274130870708807293565785703934786741930898742126294244131402461722532809845596791451190353559868710754498609889832928213442393386865562667203263607143891669049705503939449643075633119199905285333126606653562443845892796451640057929631061187368123024643139472023941975203661964247366076753803893171436164382711523694281081854299859230565877969062354405952739036981235491151730491682597402049385914187983554451253379300776223041722155427141620715023190116985220156646272243313929820079467844996271288357367930656375637156953325684974938806850558552438959761773498733486240718090585563311162502036341516340090257425458005563646696411359514814325423887478988373007551383852744102959633165306451936883006106860504532670468659886979394748614595979211490790514854927151784643501963282108502059531109378814384022440965961720256691278513191665998979568909205585574707370098857309829237956963754060039537158008141961218902962707736878469287551380969166208637752254710972798421557298570253383707409252541781250384638061273881633935063954877130342354352418958763915712124413478866405612916625131343164672468238473964206129240182746567908379234332939208534752265405863900117372865609166432547964257585162837429346792297042872642701233240039426255294784833745838087485845321310744093610185675002484053961899455229575010470734395873767912374059307183574450582269814860692260087247123472182978238833430422836793036206083602997555540370993403120067840804364963889994478438570820745050903440487887438870354906516133486707196780952646079436730256327114876373797410908665977529089010795772771349511490729600049404756251780604897693982149844909916017680233055444777354390973174537936899169332857931850078340083752620564836644136159780524093871891906446979179322029026553549808429846296890243481998266214623386535784156005510635945560790545883411450145789949507264612023414667039304126712541906000138055616799658637753167239720594597709291700046358912817979946383455231027415813132090683112130886605492289468474254878988959726737396891221867613079383852135081696705289012480908667574644169217288240516646775436003499513402717799918079616714929983595174602353614210064890394273871393817633882108214613080206969678813343129977839668530918453017643769504701917394414355245446824375361865125114660655355218117504140621720293516573013561160193409820293062108924861851250378822107228241091890425900300431514462222630534028826029089641577328513984410097100341616488627311080472723809427557195331543578520731376062473313624765817609271690361400292920848814648722988634648692588707336643137403049846088312812212890104657351276207148218995530305411683634029444076338550144269556222315831566527901383187915002968260744160906033903809691931402997025099826039549757064056835832233561083639355878201569040286338995866383562305375973081960389645535989972156679298979103042396513700493396468040917386198200728809020919452845965513043048961867768240428620078920094370454370665075774679332241722772077913842434802621993753447342087444629472716666885335916243039137560954349328268361030530513417004503784863644823400037902567768574311676050189482165721797718320040856716204952387435154124324968726914930535874151077426458402444750490200883245651161004230801589433737412871790715922714066519770380321043946270690136047850459822086211506531434717043258233653850054391075846531855287334769523572984838235515275365499055644804792421867189687618781904049258278663102359365107328163038541531523662362153114819345822123748465873964118283638346238077479474759313056045884759543565601886286080345932951775958721177811135591900446869095875615354909903387908217230224537333129197826370143634976515052290532808944570183272943346259922787241036717720697723051597029967654763225109403469507498362833007965778843372632710991997505599313668157716769981356859628568396531045598360995568931541831211039638085001853286310047776510910497646237570779201136837947433782018862621102825854167444810265079065107949937138183063901160221324684014996175370293839013789904788054693452658928879725036835978627143992075526359750659546854830845397528544612881803821126277422119134585135239534379926846619666640168728118403023387116703818231319582674431672005927713634524382831073044850759470593587120398916327005470068492626351336710782996462107986559986070698287182579444277084788485279395170058797876074481740752398207184346167066227575327356281550647945817892569255855892809742101054468354662467650541040627781676014565113975087124898596857550877310668956662403135092932035038470854892359713438292189411362047917613893526999428742598155737699617679522170395092276828445294550720256536667429726685263863457559761360599921024998329791903300545468714855270113456603895140653937123072294803432478745565614790388647817389281058669249790849919993701199401819996655503390820469693022862758117955111994975099341894758223197350368820379647322485935922461273736179165245509323804986785585152103788035038959423579896928156418427073279163792360407280971605107606382138480997492005448563510818100207276355486459670852700181481586056830923733075942721842867223776943035386185668171992964618838714927478108348944346755196235935246709527846009657985113521005424628254990871619645925329258160905336667954582180476483922707207461579049251260712911817609636485095427281318052565448574326376171032213420377083247297487447467230912659991730804313851359766148590371378085333009326582321399470447347785983288840546813397034982490049469583549027410616765359675712298470021408162965719460028097181148733089856450564809258536760350358234715235037851403584527898531025942942001274317526937608397414095647862952596555719922636131501509353262883520227439996092139013500316898892812831096444679890217325935698153244653168533564337843857612563127277693898379142761476993815820065223748424417963010328034941600485242798627298492168977652415593343738633857199796058420833557415413463048795823145717803685003739864560363269267034872165569625931288483273256523723479528103985817870412106211692867057184253822204391425229896915846728146088170934075073978562992785102497574644829248140292381960250383237412161571985340639362451942614365175428569803922774779602682895138149820436796265319067819502223528860699503725058131389762184020313803698453380246775920380657985476524029452721647117238928462659384251432659204765169587922561446153389620076881500483640173601750154266110799729988701195293989719897483491847285764527858329913701432584754995765957614671408091506100304130159928216297599579428208154799294879528594606670969597206145095785950601760615538842030246367804629480597117868129274984961571879966059498270701427075375041082818122150444110753965231946577148087419815419617630684291874242318217168796615245025686757420762477152675574946148756933526399528066816202032747809303008522420324306268293590909301773860065647787075437548595610986229139245697918027765719685222845222110991908376152774873909107923753781959873858353518075000378648243502071354971907903312602314742559786642070758315315265698210485787873058588644917640234191866112318624152300142358143017155393742045225239336847211391590043059426323546927473203619306229251647803422816274897865210475458448858055879495566778246370809224884416813106638638717601584640824380019783243959999213752470050978699973431166920097410234434256759596186017817417828797654128135606756895365387682900122831180661671414437420206892491111669485188747990685368240968053716847777023021537302802889720932706249553744607463509832973056557919885043116898155293297774104252073923440698572651509512563171409263166243559598468393342990979943031925235513640813225479749417257230144357561734033876578069355237644004206292369363635005423637509397604504160001514269940376012050670617808009927588794174059838958227878512221414491971029598140959485374118913364328257665117123517937129904448835649538865980287923341785178406349373630673765955407367505030287134703269555299966559948212351152677327242679029216573949701279444223000948755340199828267003957309354516206489800303560938845477379611661042171402343322572535602565961994304927314619499594639401178948263901892969211519368890183353316297293980400290525878231306070996535004900001441395689779673034781570691097189848081290475008841870990255765167205133096548000285918614296461793797152384281734737240422929915712899454681565826965583192062542894629068804559107612239545299125485200202333921438828269224576366368059525548580834196876738288372633428933500673168572987954601459686854066638029972220873632941282551992223989050812099990517930887823374344281978745913271026896250330518006175446045704544971489047654303578422002675216955797994059512408140984279001549887546540234962082352395386676364512614196515669943299704285161724236249103788725230666308061181374644415330034205293056773857687792957232581548311996780801060430802569358399816477653707292042562087705175159650150410258751284328614100790054998891243609751661682803540249290018437035556666621356212510012464113912392359636336847976311073164573597215771669057020803011226033371293765196779834851601921030408286314959008499567995426670807150911326255353670263642992715890073940334756312596964728140622581424552096559838795970702100232553068893761895894395665890357297983138777427541513383036307456414775877987540628355908320648741466703156774719472801353094312620619500835703491706843993374643585900986583389258576251870528011984313294324202812657072996568704993266062246670363623329079707144626897489860742544820945787581466543313808196639149466952219181454133996491827100655922461749273274381353467771919570188083338211374709217670639262008578450927376978061451984285380105961915506360745670712173835984668952247155562141802588732191342488866038238825120085644732352754715651644023020906969173469846838752505760237095303152442658166342091044117122045252495443005837708457457113450673442631050017628232911395258078302180645315348080097591093907498234168515092114706805878459514051009667837171366940816705298560563316643345495504068861606217126015046449232703570000017176227329486494343438346973055714660663777711443900219140154147462436689551484460927386885871800406001441594779489226588057529659384578575871540068686553621460218080784467440923918731708792171093279260683444608571242897453536377340995828287346055011416410530318505743848878559435836789009889899060316881154405054062424285230525307878181471110589773520575936864650951447733565416248571894218648932840212578626678107646122399532587250687237865215011461650435212742353877430651719598550503647353729781644229143457903416990610340860555745837951048141644233611632168947164817709958701105242413284475775914487218298467082835240335633537160257355744623791448152500177591506516272453817708484395075176715672238284991648775632378699707512339335779845935676576520753803956033776382929344753539173937542028184979211139437464186313215795430945409627890888960399181065032620804788036681937198788103400953316048023031107023087076679658102074855579994070924613977146294786883521250088305870354233283463926355985982598614286927944036870081743982465081269346095692802130344268778440587859346733560106777039361485700320978734419953487954740068787443838190492323712380923228914682410607625139794766709939378768178423965719806332373959474896988130535382857544055173668731983017433252537834407307855250798734647224806495711230519743239496259901463036980015778225570077620271733403902573154923378608313817352618834868586002991273250377133711361995368824614576406335719977275243009106632969989860488322549031545147193500639487003758304924071203410008956199340182987063290378076706433709327570175661532967217827090148079216063282238078124933043422033061917033480897758593419473084548395143843650695697401817557413802212942568603538425284042741281231889831870611493166006663343997090026855425143188617387733223135514157228678061693053882870540644945143422607494710511572536065485797113642915946296106982860407991075289572700029688854061546882917638321856417163566823039019879996377631169796256844567813425138102068665753784138649159213046938165143365763554866719244954884274168832277624811099504476525770044975858902880154536438918179205683680839702481518013451107509736770676634458676925110094480846215087109002653788485720562175747392746871176999560747657386715546419187904401637024706967896115948253306102929153193044470204827206841038698068618606080483813122055249879661790160763691907151991197844557078220331514038422872213740150542219779400182281778674981374667430862534068267165511210226508809661285853200740469268205456857799635497211738785108606661491386103604697637915294318108237191796124800775729892645227556737645759007760973978355395026868913514945071735570168430411296805288342418907920179422962611134427793967188710138787000411245152139726899165743936870164071627266256153871738413917732824300298490433450680599721782036838339662306176664358205609175075738622669089430153388641502001896547862482202643942743889077713991378431208317244070080888431075955080934088227171438416498416626582218752115307922142735960388582562030169186053773482857078251511177543976181842347878074564051892121407002014818125338142733506896626604635774794734362000350530062857086415082440119809029658514800333330897902425226847768069901218512332333059914594460403846497851604239347831675740852112655209025020040336362480934240619591767803753049008813968602577068864239852373664557008555555139156013243019814375948929764021679814267293116124020446132947756438947485343097482282595630490678821701238985353950396401730206919800006871794897758203183636231844860147130687633110871453948116916093356362575621350676771514709550549984138795575970648196688910325546281927123729732126171415161478929053765560898860954807054081738777383494869456081853194730262918638445840375778808918178426821593142094839334528518316815467384955261813914368016935017176637018026131302321990829874578228717919866715038319953208897722800595820624799734979831509077103209554141551704915614247360831024906179914903861963370495664244440550738492096324323700050921880750808867890444364116592536409502875424894478758511953489980752195239635787324004702322443813932591146192607143843022358197703383315077536623881710482937519702218718526860092399043565911626752847180693409381213576318995833320155393821898122863284440810498195163330915510615740486294112342272728166093322661811968036176082455926923771531349783930632393999106752085455573175744180168810842000237623195925463063826953205468914708096286317397128479803501894225401217810079106230633026076246014587848118659134428361636886971115665606972665911715342775037097982310058394880937197577629135978812565123337869343512968257025196727045763977852525513150259968280875002587095365132544261942497299264505620218193390389710173331783178182835475209219979341478456869900949131885708018276714192255339043329324585891031871918057158348633108325183248061247217167785397460088611283277429064341356167120006228066658933799033510995752086380564957847308834928170474066544309956819116049727520626613181015062883240287425161074072965746762316655978242683146071483284787345176297346448528888795365193807253776913519782577437726980817316707915312062222527413647613686997578725779914370008066514165096345882356277562880316798922940274757475713679526184204124001266160206495275053433737144434492850959078162218511164456588927094559701530798057691485420700996742271050948623501508781308359742522685319448779924562827408017456918279471571397477378740941055463959791368367790102502536291053842633414899409956031399016862273935147654263654515898255009594340313266233658837127353569364333291636724214326642741396885875106406999462135569851841820294585006032324353564327677990589925071936285256624468707420985774998700464240563682219828549259728862099025323267303303664104732046806336924702806649455661429621796137758069095976798807773182608551902470005532078831150113608942333792793201824234756056343274274274005403912378534233200081880439617067569034238370103002107758958780300363308732247198899294780944158076833073767195771689355554180145178079120360117185788364490716337120776656780956280771485229026318292497782552761077346710171227689433488115859761777208911759814321589275801014427166147245782874691663958452129386443478612407115885326697761902598321418234273063821891953892817825265000726678039568608522604650109636714747903016856105537462145266499380767550041713876810445130112852963515303050194237373155259004966912263714572334508314245627268688076348048507784110643623556210843561795658235320359142133911016526141029849977931522082550810156599271065768483931522300432569548598164872266338383800826845180019554018955331108780095276444243353027051553635219807586341116115913481787312229259057425154369583990996090947370899138382126917457879292490719261334837771572757730774762710288469752311866474036060656018672815676162888716776233908181112567559664933139977970424522883675126030568901009223676132717356206250076165780880179066844966700505162203611349545485502586450546060707027891125989293960661619551224137994280522231457801661954025474918421647292570587261951600354962228511772810864836262993735855729536692974770064314835206121211339751989509379188993093663580545820358169472400542269634347276789497190581535982647526281455990817276890307425499148766464545746901456864074480136182564001643382313938633215377276680349704574894260374440192385553438175469549061340741401307231133693799440897005935891623067670056629806874152318231634828371773690702207720668643891782258985858558476613346377457122015272320327899090110959139444180292087027646244010307505585717145220582672334487805044473888365727499122822547515137739987385028287603207099160571392671263412578758781202086377179952603475118097553758415889772656029713197595273562739598911724162491852480820745364172705235312430206274008499907712368237158816032052462055785411628871799834701975000030055957424268369135326823278239092561707889253508252859557575570716018082262342863907608731857935179357947207376099408135401936034966079565801199448928027734754432540835251332785408690253058110112032662106396730640950845407493983097878212261317938978308748319976322810679377338242154088108729126875205408526939601399568960244586873816188401510916422596019711929293638849061714837213608897928992449432371361700565962642958559459878380188001227569510370708380629105881395614006618663821234503391223811024364004574202721550899413885734202171935984913254017479218390721708883688324665933461717215831570390947880685497819654622353935944640354648129629433196037832587482524824547717059250733016232911096392278509197136896723620382614258675673919153540036507734447100480531395513590086039119614832290982403642363165428356512720794040928973853329841609848705355647426492051454705814318477519814775324811511396686888847958431565482393610208918658986404264306758976792325980696881628491304838934489537760684694291732727132077249907342787744526709911306075450117990456914016656305505847478249450487125595017793717508548484868016491937936785680479009316412355267429984987865806176334072402025264060289978782937563360712343855191711395814544108436083570539509684266708707284684789791693778260960904963663051754614239673049047837151553635728276970427613886907723038822574118322382843258019225865526234725586356839265231292750584802823967186800292891199752530167587362055328673099810175457777915490675463676623169146164436117235914527531965815634161116178042852901564500947206974468164550799602557715001743222999444983237259603504736572602733873586819757341941564923681554555152626010966740454948244437127368571841713357953502795373551788274680392579487532256270732374422893560547414343411804519889668269176703299829178617368117544205701918116675381480102938646680597370982800227600828582370732121413987524117882997584802759999397986070857853793564630750718520388960452452707273481045768644913685166647786694835629021908090432811298912377415906558438286999920632166373929737380559322937441511247592710762276165418673415756434555251032853160386502169538985750568328001248414730627769587392824076464441073924452554780918137884491008347558467841676645137075499366480829193991390972017341203729562342973106591613294904090986596406676576244919395824222293346702009910817512093544777310658713704050366461814249667303952184342298613647750819117650661724606062252358557655198860216244452496860793735450724630558092095204735953924384736436734691936628092080107588332722448644520013892332208541844845715264381527320374154530899066037791240097654690974809298194912783010832660814745349440009098313451541028963050582769158432382703400566747942781325820443530093459092817156031620081028995166434852511880953359356130052325206400132475720808127708107975383956009635574441443553354734845966199551483612020501739413905062447436478675492414891887412201356799700749425249411494670700761133497827509169919961219519867361781006430683677610560829603894920781099066119472815768093811683854878479049844783962304809348830519376569456858098261943517002640567979282526984114382737056520651678148003709212018890454538687843462210526716073393709966160158923732694170115074581593126580908802966550470363874811595784405274213855722057143470285859444656362121465029353590552231976807778934288175481640071917821654925816019623723200272542769770400639024813312756299668854303838257045701658180026344225796732218066045885117273353091681265093931463365516924867987999561468675217474763329909151111021023597023649868955670451466291909318952985516536902496017911000420233788644131731147562353672316960004150504506136577212917758072366275092491604696998798894603865476253238657848189746235758553878135812275019990867523748610027026328457227919431034814006592690672596197815332567021491305325830380223936205164659233052063146612718496287270465564707136083955720733613895417218315760377879809113916396193710485827206801546803553513941519470307960792107671319042224800936186050483779340613893413356421832301187472119392888230681300132025597045800760334154544207534608206355436508989290207647100975483208784664243093145179584702876031271700595006531738299843373388707955420880132390993132635883958015753420796665329514268963148694202202728127705549377712814068460669276377888667503574498435247015859438241308399981965126240408185357791433485627148000758370898427817350742729592765669645539475304492962861735040064834681427235774429519548448091431803773122767115038402757054079881202647286825760469407437336940714889996669401459223520060137158942503671743856514456655223950804581248466419733839328153192893186023240156637013416907857303792866149416056727988188916629126185911086963730824699006204270104414752734339144806722914413157203086339461415210313273336510719551131695880925314340542050338907305240107381380631246608435553153727748092560945197176306680814987658499788322426023924707351955901913107672127466637099801572624190064890677054082627436274827532025826546032652328126530018764381074791949757050452889416819199946309714503015305786627367112808936116003686028733586227531549841326408593452938981977548650184739722930037728194209707483681020598902889999868047800606084226867880873396761830997614733212571893195012662005193107132975400706262547455007038510533678521243838289884168884153680792096973487681467083201936851583455486647406564183208159607324361669790767561257669552403698212642588568793939690429214509324379193427696471951717987449167042369816022918820313349843312588361583995035850497493836343892275873828244563185854572273579842722847505896733836080377455344176602255388641840710691258381425382492509288874812105409908641665031398959237897691871843385237343935254451302331083348199290925040960517462122430794206898287847656062700592189464831758094535233170992548399441497914339306181978023068103293474758456539138136504075731760948989223536222250738801339522887593027164085859720170917528166075435103171899880029561930125018186097302995501402253723598882775436310752195764142825830792061146983697660784208198828771776024161492814514536593777938029267225677516914731411450624072633969728171155385833988940835663097364905269585080458613457093917606702519548886964441967552830813884809411837710981835677911507093205812083026490859937990922053171498487413346000749406118842720622893008715826923641511602828002278340420660989444084480611365103407910496172457634346241396621224184965076527022650447912240543657974969870423150348843742073990906616842561350242743836942014783599345472501886537474169247169222890903232590102919608642037345323666337985830446607104458587952868686410732637911978231837286967403693095951163037167238318801534717058550506661895975600942715180660601522976861388542250502342911182450017524516090337507892693819665666060576516350089149316648240109388051824509503676006223732141736305137837855597387060420265954751028280993304175880188748826277101689500846109310911117262277382014637356169478477081880078037892202620214716789059099089246647426930820642427134812957453508867177318523151446104431826938254708314983491371357226072488841030993129811033621408326649228886982008621700988737261987752163520487857712163584460253377450650461916215868016342962900845729388561320607231876342813878581728072766318111397759264342484519793999056811186617161488003264630393310495738655784344665730447714964514276012443989318239614350371732641121292266394116361789763930095968283246166927247510761724644857224153696541108213565968356106442899211257525678647441814385129525132383724096395908039439030380865153775348107489557183689944532198901746082325922166605225436309549784827199536021017242124479642967159009258834832456086190332636629306176576176150902725481451358374188635650260523347237030244920495079347525081278840060061117684627571384233716883088855705493182244340990567928061274343406707430414105217361903626427906214692424612234123591504010033306106662152632269874116664809665666532859307528829252316452330128531605724837247075124216590666343945010442695267783453484536834646578859435516540166009878132969684542120788071483774190168106219101308073926256620442240280042358393847870083811188518450720657075161607999105273996765433487642966662780058579926804984946845181097643970304763525805721538163364622198612648090355496460188379541179293494731750935080008345614990262223128303889796529834249392063448356540460876028714480531230662473143751752527405309819845507975114683124980046129658871742543550582537272891081107895730890678478455864869690601726920399119802137145217169781504768873212325129374231865109120451727690728324718841032647085596692035704163452519929891038332018041361532607768132568863548811209456390470462704943604993099858255238876863213723323044026628433245715846152704371906377588761398559497237493054316782629298388356929032832864175268135022572621684807811825341005960202997833903060564263181224605515803132355524383925520876309061310153328157520622756389888647358148778521945466644312763305441516754660080967077635731420870999508147665238413897637208483805197767089108146917721606483618424355332291732929947927565564544537669725070525102225484250864548182834406369251361193268010164027476283985318636367779396085787191521922485036554608909359618990476544490225074751989410830074655470099318991922293800534450102703342223258567616339012766306431489759319874278358224172329579340242702560150281979751144860004099025169249558562141192800145607365352361179708667112514241318048187170674179162892233596270225577106607916545111357442940825892771875060753142781111722063257360182340731012449264242523320695691487347020557608507912321944547802194862900009119353537804638620149591449141305040393112216364228699908544632560109380082543609663379745669936830234277651792409039237886889321943230392184145200870273735450865903163908824694761483129160061439039938101528792783421232904671551905608174864444320010668893319712525678375140065256178786939171003616351338774794585111034996551359014281527811510955420336394994669198136750306773898783359487617173289577473537137922236854857666707762046209087384512612945691484708357848103676596623848530068986280882104616381303814145488387205349223581096683979402550024281308393756940888728445834324045242565978391781205610092629289938260380575957481294741718448442788143363114742389335210058921923511977275527363425130147709671195695466526180771098378900403260523112506105982111743682231036900299757782335343065700700615363543009393356984927670338273470243403773768488276541861963488272832473886257654655608432641462774405717329789849365569740037280908003583334643454888475481926395054678479545994250588466341669443415126983870642697214048099781935352240716646674555293440129438954741703117358744760366133786291361987211067545390432702859466709960688493048338418187253982573877827360457505295119178600335702625412705069463849577110096058470677882708982244511332760451594039324885118196935661818641652346166686688710072534962060233550164611740321499968816448219745603511803818862869649494918461086712449645152113312811717608772047633197228329090655731180025976188086852201684654106110207185811014835140478630207086539120101944010744863307752137774027486775199036256449907942345661182416612890118853740548709302441727637907300974294226034621990868593094467598977939742153144062242120923845875509675794917268588520590267068817904037978687755429087169456033263418308118848378619233317855081297853581502240405139606552883236244839221978280024169488353312975175562096801738504956912529736186525979152782707736092193514404660538944279653889643242843214637655165513158204788013912038564443005728234798417320735564314013561027400573645333291830528527239974216611266987392494244160875859171783834162029454714740316076665626877774050516065378098018173238621752166057996411439221485446318117472401234462451695077558812128481943952668932536945890801895710217664892245175594759169056948126851128910767384296770106298616365735793561779101208736765094653020913951416765562066467076009586240850487980594157572892928618700680464120933723159340666833882136962526150678616232701064934276371584472805777669851937911343250736735618152620673629343278506769439623803095009942365825708280657493711370876911249660232908919435151512806355201574882270932528448442961023104170883325347033088951300366883064648003209854852463212758187154926288991786528451366637090221726849067666954137561992732965592877231594310843775269779389531602352522933061785856214565195964730436170655767028497604557849050381214129501632631655094689736179592534842996083762144015776990602636532670783731931330716163195339189508654178912669067535914390686090924236924687488238818875375398478926369204217248825051913915685813497082794438567889521521742477375570830271945440384402403387251753607591454192641041256981590076218640360303507457891265601064197603766691738750707384656727742244764531846551954177282901137125870461732515801702440235838447143706723247916537312070790589360495972944873928105980785058129582911406478394676163867365178814370792685785040365176151784517884217337041656017049804911122337884793189689199703485748303727127552727842797082980760686696469459510904429993619397349354031392002207633646014722637653256198290646131640318749503778832641509517582543953528289937453529085073230375891544875734127141623590018667053201110272233954238487696529532044466698566834782259581240878255086892957572263637570337794229034438116679015221095893389392331972681942103803527830081978951393297712547660484173869854538289145624003690506922892014076300092507689210061458982774406866004374912401492162540195374845027189036525595454233364420179464101621447100136042718618946404686983239727847258019187533947644193481994317685880611832320508466698180718990919588158781877284137181984146273499740897349684284377493740184703242976310856215774552987730254292931669612675758426299823837392824036970007578845808931069750996154457314592400926205475929132671912566641776601508428394050059986224005591924802569036572302692290683869828566332169270344963462181380482764438844832727895081279986146370464858643501308864434141918438290884367519168959696899302269587813924234959822903311455677242725341712470047846676975700813276901491163354695024292087658132295174795259642646435161967823793158830292784163151751139588016455379395721715336723119177002468552732519534534865768416532437692333850855907754870186693700329315415812273081121326138830094419477912458028532853495504128505015532265114345165195097904071651693300409526077628672788095467311066362841684098444195596990927157588444782457145833539503876713467181154541769571860697674463214452225202508675684506767344754477294455512177786739246359148308356566296321312313961692966028049922145292333600290708206059997427861344221009265565011337099052250094704055151502749616993499544776027101915980025096687542945907137806037121847898984454859224367102781158339865620114808362987391084657276663005968839696540697592624768408212879920346267114471345830328973420931819215685590953569176905592766807263025704272676421215962235006068049804435252062378272282238956635575477315292768306663933622399220157344499509611823359882837891542459472419589376723419558548701015292374124795728204515879968989340862493391163313690735850914132756492060268789731226692052001008070763320038798211476899593644242587781331912013084694322311861176084393740212987870330223456784373403640907622558357118857090122814048517802942970801803008668547276447365779403478314786567387472387702152513183790985288838885530954417605667730848239842529027428143511324302659081941480371387623622871188962014973001194734532938829239301312327042625773904455575108915212057110716586792950573685141761754040217124863271924087382226064155225945293162001101395736099970526177777926253017154665206405795080906732055930286361416041546309004436455784594308629053705080813921364272620332429496416654112926768188304759908423945531872130351148724587331572783439657629960873758717028235705088453874591252612163655064678615644852039142917908301768252412682573742079528518159259373246791565965352815410884248744974435810243511537186869547337286979669521885852848204818839836851262797187140595242846162176211985820551637249915286013825848844726452977057791653079900721577360219175702176515809804397093584888085561594972441985578850764333614530987396763061371587919362104370232030864819090565212333297814862143513582011710926084974343404336527804821617061634017032468572925550915731657454623020401568832427505260222309029795444745951704614679147488069525664803584032668692231462510465962254477772677471571525333288069644611590877408394705155773310068166827486477617235554790627625960415001986981498873210554495917950883274812532353071066654297820979032419939141953445440369256572345443115915454373307906989253849061958151479496891352172183054858114537340608390954792638477863702548535671631044693243218173065357164426022451280082999714657739848066640488222263449865647462045315806478236641188433155729345217972160113835160238236673261285376509570610297446930522400871860173613751446598784711120085318088120226892789233140791215802588094258354954959632397211108690909368678522073091746142426329412819480376239122739239724735231649566910705290930983746765344794015460653944974354549139579322879158532326521413499546501607764286531441668126089878725277229395546508176431887813780013522274277517326864320484858961395475341131739813474969605553452797683932055425387210952888394253893392356954125526454708125628674142145452294924872576526819402144446217162542968023274966818463772074547346474937125514596264375890654543841296634458141539985228645966083275627122498514834274285424362842027835470867461820158763291826356818249830462685444187090859415344796555909305801793639219214722454356002438088224084506840203526133051580667087880120738620218051757976978848198914142230644800820144896525037385867934640915595342528601645831514328059461434624470892913528077568528852854389342874617136073875936513633416895160851352784476918460411194719451604228934431513102187299655562640107897115456411968896986787799335780212459470520096567819413848271406448879687202638307360591424369973567392761044612204847456045774674179471943906780568132053985881861787407033701070797396655507199003113779071092177607476924328455003697350025554335497251132592316202512515173111134778586038871645448719854085715662806844508042740807516005255345240122353241480658234598366838677256255609952426839038326005551299591710620612547185972837381390239454654328117538198535207717171763330001503963871047437050381687902607253686324233993236507966151825167510519739091267979148174113252231976426578426921637227550707827283422777330421724403734478546203326537272963985244235310683016337208295297045031649025092586895600364280067857124066065299936142384684576346140859805742208454254558124980022461212495214369279483322643940126370459859374983694485911711634125057512586513630995297952042586574052648765468518668541616770633729871513545461775837219383328493065591241493114017864658408355822857371617846796553480106576542225626990552692888178175527058721436790187824769578179406694644867785801244459265372914679676497700330479761994957941840589988406380930746706511841434434081743638690639532637900536193306866266650405574700047518354848252692775553310502300808897200644771171179877744228328961779916469752278959850218705227285244070256423327790246398893335943391269455648908054075031225520400068212287901458911417698632282280134268448698517151461275787436798897845524607767978700019271912618377502946059522691455514414082072242826683256118003487863875537988382040978310693584249053880849314733863353945742077124898906515142726841610036947998788366950265669568063691238099980840359729562690094166254915839745147356369749691684803496676484573320022464517138482754407007331864994056043230225492707809317154684268912036298835200262587227564806857972238326730977149986868383051366283294330866411929548645372703578707331680642086733046948257708123473414567338133554981692614929316155667806595130683992190749418663861716003400375322052144072714636892530616729000352034341051433018779998969004033095135010385870784125718834297955900628647963985918987641590322386100663099831810737947666588154659549022591181043386805674794564331172562513541545554344646554265606472029138978559655377084591100788541375437518274784256977244593555259302627951871473610209140837594035568535863512783012698857397058590383582227387031569245675812550967942004806177877073885682674689607948230105986326398886240124776836377124506822365335269474670671477281393328386229510805870222307260775648768007246671084754349110630619960554193150154962357079112856012365633173681231483364231880544102078666707950592328235289021365444535789055834561260674791807719896421258746061692847660244964815812850401959279206151254337773577298100461986225928575025964289444667240216631262266191798498554553950184825057316721242354853901378351559095175177802437209687657697428900175865178071122339222848364727389892617769684534784722127558733813777348597128406662980665650188600802045857502949556838690467098140227159379218002484024084983317442234879381103048549606603027699689301669710734628950725380386586753809898231495642128153623066338827873095220493084830367184249390165386025165170133874578112809511466967122710203884436483124778247148219267163388152120671384401089484434096214111203474372937432083133367327448888022884925645307559624503001949005387700067594865451263540820223448590639088245094011197021573495902046535959013819222636933704535804208029617337073445224783647327267226512159509365303040315049509673832858877200889950210714295903862182064493039044265512066519469261014735472523006569846542788901016024250218221362240273095556004442390684554853694685746512025605669552820686681711637308750300141183164087177944789264646831014884970764935994088877715267274918295154285350208285148085978686957569195108243262413914069242354410621048062305268094116919746707458324772857909649250482327190142668716158836159206493322991020525309150691287387393599040007601356556207237768923172445067103596900114757558654601211177621893270689754209335315601539450770214006774537221297188893192823342661583113300758884152442416460677607525846586433901346966793051263403603361367971739729346762009295860221459517073148824327290808427991254928886170312085971494558551715857180788094011795106008358671603140521857585922067554044727896201602286573623083695488324678033438440217245261174853186053952467002458839986308764929255673655523372311957505187735495348948595901589158574878032671561767227061419759389567541420561296997930137406098681546985287260889565168774833544471894069601024472106907797325803927187521284873777876199700547948846284609457112513116123178594942987106922973653515554528707914232118361335974984470120355951349568041496073318244810409171977145154885572033514743888428228851035074126597789149094060029186036271891093351657886831165169006696059271032651514267259307222387793082973645719370957303410073698118513201918332821048675127949876808989675152558195737510087038472731341528585477351260815271579537652258780647136707812564146230183284774328421394664673642301780136593343300330568695238687202634113632145794802129232448793011089483945021198100280645652943391628750356278333177282191533258583731722393874468394111655477790533156315257061757650584618067283080842070805764384494170488362398266581521286581604409374312047283903922920519657233373488630814527780700973015399259705593682309880488049474511810427690842211281172548883835770735251230363984414802234190405770993222890901166077696351718375395491454736806661486727523461233836956374813321659237334041663424904781847898121896910503015526433896007937611990406655978610357155519801785282108268319683245303914933988950809944375624909055163946865488419265092052311321523926992654748692254463239019211339487826555989173533321505805749968416782482528920664581304501602502763249918317451459946168327714522884225850928226252061102999580732997702305875514867326626608306311216806718814620902909446985940753100441065847779035157984026748089662057758020881786259777622276749611737657744273840918802253341882263818078969757059031376157575028628027009568078464658110699188483452357344316315334972807702842406538757632522568777524090095779514602803228386243476643759199343762369201992995028527731075530500270437198313593654570945692623324655944231347757379210130956299307614298503950909842144513125437345668292169158472968741770071753280849835963049565959444801549687264613695312703156742067205903738109548472359045244758813869937285591757864179714208344347250732092342480296718185166117879136049168206457177628282890659143644595256468225285835392831103789764497295753775380663731260426819779425617308942019101493893756506690895805843584284924011082769365273162909020796857858105032022661223103990379058634707594633238225400035292834264926591836475002665223871009632346484306712979308496625139751629502811352747808828465207874433327567334777661707452017658830826096235308816679418672405359151576889361431580648517314905549146301437287945631650590746085305470967479511007532304884369703693064934935993351025798896112856797121313448318825787307634549942786518118636844450815432111833643198842851922779619434700369807050207793886776735845592762576997399710143552941705225894582240720551720034329781439611453830712626999675483270328968616436661431498582785068124727357375269611516598256658685766558937729005596895255535197931027400245701042048068217342064607057028822219813620807729467355909167708267070497004813802302267058098759095049938184315488173665895065660824325272176746452654420887076084034912101955984378139627746289498492470929401279875151312116589655142219719674619697220603935985559918886723920151700958691090014805327688271406600760741025338283201923988175850194868746458505806644940440132688143889406163205442518878382887125012375534663102945270719881343927595318166110691697640731251486587875352942242762055597560949710144500953095755308408065564264458552130308885708958194065574381994188653849306308799354907339365681563655978199204522550738972720771721843937665821697858951716898914346409532827061143500291090958771674716687454866993913756623390554481164867283710022045899292089813978202616013572459577330171711224287441070563099027782272790735732742559066438635416655690361471624612206309035825380117269494433143956025170147464107203136777196030717701984591296255736826702266718078549236676734092635488477256374116201491170815593593463312363242937979927499722482331810854840718231410756158383987104239064133131106035892337787888988184975888814247527811165806814782133463174483341429883360814172571771401944775894336930278191965539278097219115592399816078066016855803665659089802829294660529909462881645443787039023154802786440714852531751735386385570560883227278443719833841114937407611371022154038631623441009943155958705630400878458672291600159115623079410137716998923681940401773376290923972542617906368537930914222601348030540112215088644218218656975554557517070724480504585376893869327929046437805582779065668259945522263418251819162896988035430564480717607479465532816307608272064468216691797629950997956874936805858450436414781423034297089143237808343105630374277372236331509757410746818793021906607560620459852667703782019018593822136413931232466416846362439012748269143565590517318772171882310253952991571967263868324035895159537354052369358313483106483662659151931529676071178704423037311744041463705576831076235732725082627654276198027283513075478089289060642062543291486442552431519672680016931196723554435795312869233351604354964336803209434034508192700384242349961796926586601877722261941299257353885300521656485078213689553697030288439094259348268663057257412241233421682622268679519221435273178103880088035395069263842032946484706917313391489881792601595074705683962771416660869682201385892819406357000009235162165582124501632188228379730389501080373284418304234822172654374848559164914431764272707777819732538835496545055116445816316523127548294684398892168043551139322085000460972700901659181560254514102416900915166114519868033706302161939206158299650578952210416832234574447332881146359341254311751832257773117276475360107289524366975310599117550562241024919207896835359760062250510848666553931251381117604091291959937461435451376503756089368330847754402030484322407635196995658460734344944520986480277558920477419776629497341134298902435690743204848189782274733750391790879651705875685221343093476116740074915093744719119420695293644658835603672249305875105718562385387815488207443908716607045938584588722911967133698667384394987150478626118932705768541320893046970510523864781372878746462594134876718119511527232316812448032096865160754440799768819072227074756453122911749546398666644309394910780768349112646985126400351778472457606982895810519321522156219090694857432595588798515844872028789885577130541081255773688619429310500395625165465386554357278162281970546810223724058066343016796672433971788604097687726306676605976172950585512610921354671271497584398833118137917175164965006161761655449484062457811737130125962476755141731730533686550583037515780715765749307545263318913699534568515094056829344602322807451921003846305044732155085120098807736471583550580957140298180097258934839042579317191799139097779513048476982464971068371885614740736829691693539972886067410542257204399296653669794842176810896657851156454995056207466409355397844444843582950043222909677326556409707671277127151232528672972714107489958071693189681703401614899795178778008525609260568511595027573661219623224570807630990967123619031983478576335000656715601184869024173333899906017548671912211159380477557847513698673011028756085994208690528487112466924551779594200505274302640410933823738351012200416586526556162777781266062898901517060844137620305043047750131498189103462234512950824186476890016761434939525913444598587456221903269584693223821962904109358072166549981440797556350889999258346473488568445962238237562090353654321837244202552995543018167161037392181211623528452515719745212407095465184315154594621252279321568141572905215663890548186216853180093273487683691081291641056988205746754048423953109363276137437053002105560140292817434142362007971069711425179863933143010416139441713318558608317111474906412839815263703592882738213898126508480393267508386456558245582019317776944503121382542455526287780056175786609364583550708158192683859144061881136266162012185257208569411499394244725627537201219330155318914387242991285197042083979582239077637077231645807169172908662912720609399379275593339147983948937726766146119744644749055213392074869645062027289624485515928498491796901120740178210728444884033158888984002674369874155384453297511487908625813801341651845722907057217158332687863038973422666332631706625961108987284339490920935107878349496512966954893432027505834971197470342949746109613567514113513638168275393620507981098755372725629162132040714623033379066581808540212024915753299465958151424399173898025238358715465737934752221523812975231505992736476945172989782465929483268530786434169205526415942048199206830130457625779750679287759387817992986499428203853522792734920827111241630926159915048715710823363379702954691203995393971382867439726982597727353456627698437193631789296256689921632879189024006122939410154736110339971981045853804850783607154252744191990498170825959171265591880068635639346233842208557239008575288752003109665659853445898146228643026682867550639917042753266779964166247644350834867732436499466791211138887284762599004149686354203542650106317376454243111801472155099730581827837635869720109498866635588983671003655812270033015055620310321983964425300449355887814075112904559838822883729034266515143817693367922584716550831811792991988067942559922125589870530068033062176684069256899333414256741683942463943870951465774794152754682905119158468517390496769018316548411585329662924129631335315860316966110281842679378722814764857320425531995749625279599420012086659300131499774027068483326426627596526039365456851533302404326461664915379379461236938438285902991278477012188131927419951000848991091035628667477456824987225789057686314133645590642041594884498313575614817186052316185458894860339624027304289423363589422414520734111445196754686341372362842313539498265607549293101616541916368618343540575728967231773863706601246997868958394917103433561868825016216413566741067275843669171438334818489283055425713999259859183326996296492489926796008372458451539959334256023270424613638072435506478889595007195583204511627386806368585389272891050446526236765541487356959925447625884758189388082316791041079219927151842015162174079998767978717226369754230637244199146431842786175896026682623725621658415007321576154946149734958459132713978587166476552176553375611673666575936030000351405848520511787342189318151586775128893269458166296655377760809866218166145794776825924250809816943225985782221497141418958031755135799598495183933733765215917520721378249785040375241832048516974435268142678173950367244904208819893332858086171073950658577057530781811577156307575752888759447766429144982716870313361014775152218825011768595937958997400582909971072594271802011421063067770082817648486232354305237570945490568160026070259738254929867812751840169155099117076625184300229349719272113312958753967552326880107796692752992507875269925080365615701747086161934177628471732877570398550554626132491141406391484488267353855535010415454103391300861027193444729817811908191750361785838900447574010755229850252551569828547051892471250188282174581244887560012055804238930143436660451258276755085839869695172175838477685793179841455749626379421250206889409324096221108737044093750221059797803852245040233547752385231906628136354439278664250867292908545192983007204772378531479175872002334929042247958209166885088658525033400589551656369079249939574834232960103111797729659024345842261129010779047159567639104913016896401430289054883131085406278734200473661921313662815418251048782761073770863831337866373770502645986129324960489258679918478395739414716330432053734289838590920925560721975259695134651427422435963795820031534669669006406746428192582708094841218349695580872243031860847234561705288045775351545666499369696202102097746530559653194831007826668075227268738855097623878645611831373458772696482803341346961807683854924891199407885161627730051545227323398695091889818606663133379951095086853232413605413533395391513421521674269525218393556274411859873303299539907782987544953541861126981475483361206868894705717769598239462564939095923525531852376583585794021179144217922146433082461277638101606159642283834070490519953968093848386455907513199355606605467135032937002229611855279599143242781982357160603703838088995275079860102967342077333509764710578276501405498992223258958246985698015253344358015471146636342434810841658578019351943544617077915192715707836144214139972971263759079543305573795354713154235226115254203051763010557450426315977000369659746372933044842571406042488027170789998766392997930275888984574774783293102376022844229670416653290058255964263033145413453541788903103827790979041462543619119261076559760143983559184681608553999982371432514791559564220138230344881272517411958968000121559916067078632147360096244838406917221662185388916164016699340340201187044741699420207084503453801453384788078929328553378891122766842920698677652193790366695512295366999237009131653196937096058813128217477453543586713397878706129187859524545457425271591772930892778974071192810328447770611933406176468354026605304694632033648414862399638339446208846526945243188503281488064471807302932419842964775103307255078359600717739041835509822555355425527129961177051792185453745971227983957701096454737835836836309639102210981231027514646333183043890121276419155260035615537861614911337556161822174859278695961407244046136982839804604833441197921243585128340926895931965898468073890137644047948494894686524634213743732562151595270924265963021807227462977996267329829310945449076345653141902981420072217467906019855276436520110971584964300166510401536462690496910206485608648557218935151920974236005411942876740668114480309394441349485674467958263250918646432580450846899641450011310449433827796712067030641656142305566910707099669016519584217740942983445876989769038173847585248695582851829225836247491397834941053157678084779531352574392218770212436657708579794010230673083198082165564194692942106955855075442995347450787222573527135185548304935101411229662454480020609134237183043596472691220741454670415350151418183630048739196704719602698659179410234521829653992454720174430324305849365161508524610214778525591421243228616349368171512774603495279740561908042677434836284798057474620546959610485826275139691729121117303859216548686294875541271444007746578578402539071218482074395834284122892861757371765707858191638488569839859126950910912707716795302092579213939395057703239039890285843703144085439126072018582367029264042587721792434934216915517920613021537592600947407364897209756246098302454740550706600431918443859470587500992328260823714964241749844173371018074120125846747975989740234756483373508040897973663227741340051982211010368067738771426250860170724248374337679226503393187363903288957020361496203410181986257163557735769371913050295888150237503989703940163699364111302201469832024250369395636665133669942226885223589094331436578923704764377801306730081752118751603951683167723128667472590374410336758263796565958778227109637139951471089201834956822803492567384291309013964455010071066722046160966612525799078841631470477927983328775338115589181655638812709069604322789714593825501131471244707296405375130642511036573533335465886628822185072872495245252773747449745174995753386005352059537231852753957208682627087693235905514703726852015621480907821119379798009193775412312274147486174380680735635649266790571024551754815127416006047641908447168481850867125742097701086042296316303548499312480399361351531415354541891819745509882891734746041608608181050608411146400109639100035238689924911301307282204577086241626810964988474587273816595913077302252757933061361023989954608159054465543627241191952178425380363179465355614366541956354367753788872052994719860956837754220567217080988891306196402725202171229801804831212095048642117855054673067340262800163693948504223567251740339864862295867422495196446956591802477470505930075520126157226081420870395051624878651904008028732256297019193118354642430342726020814692810273577891031371941077860845777702945820101556244617679291310504805604732421556811574266475838698466400445985542394750006202566479331069104979932682219222970433791274120746442250250500890236348335204818430962954091344422100074796009698340545822852925308015333893547671155264093463129243344115386932247017673185813759988436316434526127542578917224114398577419205179569581212644148936180417952714938190735242369299306040474088038553028269158977101883855976145653707497488455125553231531083032131566792221310476013677045579531469333338745081360969326279609949865427025335038175401237541151941725676322253280283376368570616238410554389281202056558647867797067386358702990196339218151979170502281332284116496496808256409564245121167576645027691125447687453911082006876892178037876032617041635543771744559834532157516241038764320923835856504459858281837969603971594398560244282929902027462689378541091915051847408008665537525052725868302267753232269861517095574641450006271253256343392770454690174852883877926621782935916930334907863257964264771578141280297719922135313363602907746395922730821621134405079174437416259473950631067240772714080911950423031686830229189321782123843943342446318684174894512514168262593591835073179811145778371322589850214485910889182039902881567549399862949088116514382323636307905779905022978242003700596530657890435240092302885061547679398342545902223165802696955077399373100022568535667287851527928826796397204247723026797626531179354810921433104396380610188265623268623128802650238933628357059216145433232376785920174953474169290684825473085083412107997856455473060743039352197642491752879077794539876733147880924681839325442511044811160005487405613329272447616676895281280057646299118746661521710413971936317968156174657516574798260680928537560735885317655277094060411609755887174624732737614561362591752379166688926358147585492926269841205564022373987051424990301814981035026087191333712945740912610740968681597797254737614532181000051035676438094993193208729612490176984596046784488920108988826731353217273497656397948418021347576320372826706231722199659309169713415441285399087408905709696263406038983740599869367388832498635244513299459976517529212098372667880831419536956410779319445945997990238261408217124835565896017980101789586498027645139361016547362552465337187301462885855439603689869798505223138666883806733409575751766192127809829592179588568006837524489017586681905316977473352342761524768414176087818044883038994145695687129822326471193964096576377571889187893777701486643521195440978437944592273093468024968868683378773786203821032818577336024075362789019943316683203008761743473658428874826412811511554562994782154689528629572539736431050408048099252286821832730512209010536094713029360560756614585447237807452987180857494968393570696139690038853710526792668004616150208964168219652809112412984974871883191912757625081355269611756765792927829656114151648784753368503443141743506769522068164426842861303583640004036821408327144135085369151500595871119657009920173100410635270714456596975233189427311974713423377727874393377765163305674956207269511902024514493159055354391510446379175519124888769373773364932791047011035416696375907505167629033027747700609531822431704300566575273888641524740831139361133473361013604133857488298076155420251833090653201125409766502762838144548155325769269539973739821844307293514247143090676904243498842144132813672677849190871651418466867433130148184610705823843638124911243209530842696408074871341722293698120506879344885491900640736825487131238848687591361429223395548811111715984801627993438428951235369533953734040427959701054511056073918043235575331929119196527353243170557801058992394299813436218844177326970500263089470927123557834873382713939591293377737184249651406641668563517828948740931272174148336069186649351660581726083431212240611665570170399576560031554079306365458046441138390715429146446149231456731343899204355621300232131166111880500660786576147505644691573222407439790539444122033343408634110446986951114877994074218055836955444381477979298058060889848023291584091679324412779891543516583371003368825527746087337981780445934887179504309013875055429973623294490065291085662043741974767961814365073550064437842884610085280418055951031401861620052940292077791948546048538277365075492933918609190133730612372863909381749832145669069128620210172222464256471119188716842564310059331916987103404510559139853972767327058980309895872388538544990701591320053676431041552323517434462029306167813166852001072721312176492829073477921903156904631302657481712767380887095352791745413587246781275035329011153661916354318134957425543491531808867965960294446869528238817707373525990764893415729365277019428681809902050862374153712133726665443750427044686778272688849062132344550748137982975833845008210825600601303709029301799353056220764648668786901847463536426387834944166822384426919240192009488940765882806949598798299797562594144906320954991444430196237352383914769788969268458377635539628586684413890808131757683468580434520221628137323382066122424559643641354865194766370758954351502943687537808404605092794067009893612529481008496256533727807889439475321729336951091599853481808296893433375656575406473995913640393747910951382337300314826692564063136418614505930309359665419858655747084198435422329796857857281189191392798569283146485083880942149666809928920840369482515283081624244612977099292130167232385774392430316246421450358390845899087420801642281657155618603757964593200171892298023648053634177537854434108418978656570054513729378198793268412601202861719558177293186605014379079577163772361612946787398687399439600450715520006569177892258040600635866398682991818055452645467348739976983543818528033695161035539454946698560532804341668211075725451549309185577634757130648579852680126508454709078051433945418054252775909276878700429893700882177524744186796065027668171920382835406722296531943151037058494414531503075708312669916830986740504162306846811203303366626771686180988751405388096534772342921104327747565137108251183670062437933741082272304790837524383828051392604819202345274196982896369567215016571862634383140600930390248085652496655681579518947377294433386446211749680034880567124068142787902022981711462890778135195579162269290332652128228082958919363009568666263854074863422244329779497940049964697657995990268057290139452990632242561530969284429017444977472390345470383995152578410802975567645790119128720237788029242118710378186358930647759851879667796578036150008990803985389916350870671538636614504704917017559043169178297382822191801356093795855603087396858154092655171696713235412553389148305124709751382730747671560950859344430981210526193331442493144529449826523590579278517485255518232667531963852801027084136568365340836627404287533460169027615604358288053410005802391570323085170985638147133436261033296949842663391139704574051634496034458573708098567290810411365053722756314756779875103613563050945800627720648138977252171115154420056213216292169267928392291098012411026720235705822025722787061288604064539947981455807135129204437178252614547516113412412287221067325613001994490635278502357142965073907594127963576830839333191332348357285109110161889059798021601010051074219216007055240307575837411315126236977278624720676690548934916934091064770003055299760870033850711915483093504355643189491514859196054972078660125869465874776735845632307249594849261145807800754090345087283841603907125524705393462284073256073610680327599789610219366594699553553345506985715673717573192452453733395423421447953015010612620998449530063679564731784813725643897874495943475529636213526524976870701669135849859947976840550121390884338803611352742053127459841754207477331361347508602741163007877155169092683719963977358003679185964473096805068015233430836974499745014388665807339906090495560436301769249198913142906585666477185751197037840343058839335743284668351972782008730363578747887968382993284143787366738420944966375094424678064346390733941312431076907257618159583088517286638469137269435249090011397937343150473900150356897977111008021029552210251640393567417383622285741264398193774923908031339285361863547086634685491767995953312579318439113543941577090337750694102983500821074148890135393971991004328635754884727602140601653169861331952106763340078176366478491338396311411888396080102751497440782107884358118080490277729172008308496753272604146412325442833104572753500631258495997559947350922009185158714792938512717906533537657615369660109136242420199262422426766392658730050934486524656324207310708983716715107367230072329258048133407250698690094317696486271416030512210636087937381068466350139468326605246569846147612039097865759253290621114597205022657416315904078227798236221095126283379710457952406990605023681417304015566849842986058993255714326144487809405472966379709328598335710590588666595432812101179449070410409408302854730663990541873089971582879920202770068896307333722378224107316990771543305714520990459621678994491519796203181151642403108668574014834795982150985913499321835727610969158305152270181981031709398732411715001244471728287346708546281252852895753803548115550694202804406510635624475529138054759161705461998521617379834255985331119391829640546113441292751834905589081785818846919867871285589470026045602931198177123034058724441192856717397745701476849056946498801790693513589564801731980839441168484077808205919960733848817701977294720561345594536972485515973912176433533466305949690563643010706904984005771873582864274425611457982876410357662252381004738098674985288130454332682138229464047484292925939772021920005575154287430717841309425981368070443886725625256511490295381747046995754796316338993163791950517658445590201518843137196761988490417857514940375887203635598098475561783319797740258851037826538818193567668510839093460050648002139646019856229928483869187103752244806284976062967031807323768101452676384323009973104409834401256275643080583823081645747182348251912563571874608795711301231712505414857731482373261622622007548212184035916593108317244875080857439477185073457292329108334899577366454268692542970152239800549324413485184581716653504095962045865132417539292209023625588744624441769698093488320469431476795955004184507916218966413498892944761840912644279739095699696987108168782988435669381112052858389092658342957727660502230052383658804777000734457908802729212919403354050890133593876789147012870486746157830110869216327094545706222298757413223374354274423393912192408823214474479182051828445373400479345945618032729499759930771334147995052338896003526037263874222535778625347000257182099816823177144804582037413588277208870579611339171863540057743945805628305245003865693327824548054371678001922882983357511565319996986959381314649122099613481516224599137204542597893783333482002192869346995984465405965993982409151289773161325423266937540007337919869741176152565157801884590371471976530555537569739206886151643943118238691699146079079899664181225787065662858346514438032855551858419305438174508860245514467291769087334242597734577869522207061773993986795425353009442202262141461704583488401651178492771897548867175460215059786368801769016744143393630627865925638933525809878898549182821041442228533304815516559248810575085649934550494819590821382605525310609384902769417904297232135014233520655762641171852902764414839244447287290689088052269020414586818743341362169291063027973097712390430023639996828434313809392847860639842170191801902649079266720726049154398516883768784143891013313423931365098141394131842528381785429958109177527298664306021542823599531971347569579200507920561916549169465064557985937227527297208691446586199107943026461123108521696885163541411552843043448889221494561709816814558816850202948891290125255624275505908475709046812401222681886455349544063851510391985738055981619499293905813672282565864174725294765215538760577548862535215277290297683366001868259467540954124121497499072600032727410580416676417291172135508242360024823965567581183799933810931414410160814208226493741498213172850116061480750816267746827329653259486441989677522753512910986675235215144034945273434946581258709466882124373949140226965120641450709855184664615399577661081633753199106798017781398752489145389385836849346444412464608971538643677499062779345074880530891986759001607541552637166645192684174455717305928408145050688944044311705761095369534331984408802787912171144718476167067691402556814589866453436295976826852567119232432328336221112472988267514061432514480109005458169457515593451386271133190521539818417143852444365646637449644591744280555757355409012977171595630950994873761532865437648402894764354089315651525991886044934369017109808052619365523386348195607057978903751314408281465386984034864534146327383171641310534946545716282447369260210302040927867124093231269107869432247957333180109177760488994740718342951040062172357560372613719868907162201146912715503797451775585737669760232138886387023642497507068038594712906965300855803066996964731237711470112430694923880449063034815572216350016706578085453361406384743693960066234195206929862289766791705717536724363813041160464354998609776663143200787066135711880832333354551222094294270708433769815003369628720469866753310428333228025593820325385620801713905533599309860925390443295073839431093198467546973972253942160901646615324882098107377072736666656787801567496182163001569966726698222652424266719565741148310260658795573415568559680698711940212169370424653532697461939318238051477443128922382142637139065122773028907653616753109587766013234407547016513184788341363070269622275603268227324824020781211742236916348675263969557232598377383669526402597810900048365282058762243232767020650533648383474389367691034706776342286657538175823162820213621053221169392042753487907258309965737580079676819753274315913943269470805791674216985623380298170228726310225380535957953250191512596940080520186873984725725132609843888087203066887410487499457477240537437581276319137996797850152585653025122362028248082965004423755854896496110296767379194686043256919025180128370013003790107139273510891176101205199471695351478314465341829479797285456490937103704809683983172599009381010689545580759767548456948853485682098830004317990262506402027340442188143036693689375980749251558469662566950935184519665667925161667383056676731744623708752740532142053130667749683724284592443771974103753073224291819296394237100436269071371029592962714500509090882697169536783639359188159217578056146184165094677016922558770032494076751068804834679516102605069316745099793175405578313675401729800499033001677961959751491485428781263917489259611175290164424209457436263080617413707385932147809658460597671465328265047123609121956097140958283340694402833915740183426446144997809228173732359108923093008216375123813871337018282457835578924598055768349553661452861659880105126186103320791609310164026400370743997142030565416934616061496990986403660404843501451784525782521734121090596483040831242483159623044018889008955324323452167550474363433900226240562654723910575494179074369067802027136404233598365243004191821132380281503881831785959098095559410974919336165485335835138623664746046447667440644558197586874690353087783860889226921726260034200644446414340638880703909546375532781584202274496609056136290861650221582635125455671939590646244233918891065448041198796912762466409922356999623308503994698240824606880712975605731492383897906716233294905623664130982783645665544374474223441300338441149331149843559702732992855347920135637404618910819627468260281852947594711734587746817569187080304959645290395972573315889125205217381536714520791615651566712269232602742426448830931123957746246319975926629297200249493765704132480713440191634067271119362321808981798160602566007741042899376565081043950194847002873201192427593282350187223414448937383737917430631815876784580206929469869618894556301723051523213519357901035495518001946286072864073527461730876891361665552457056473833975151023250816453938809889184686315345651412444743318757875962845213633558386290584953365984636333061965383613326445178346279755021888115288152054810445730620709583657371558620181517820180851622276320275936033208012935748890644259968464091399101838816370478659632381554276128809715772036800311430373648350102896296581364936614912288879651795147165162955400002494865858052519712671494555681881867128277672882709099941201440527668997367893006382782089317768527168487795280327624902124748255686933301361254099996278209002356120851805666026309453503303258311278388311037132022830768137775180349282341392308463336090717484349252768543937012389417402146478304792410402112948217612605782784424650986970475973173291367581377515819682512688400660751354406660714320158762038339640070771039036042745722769613485404411354189036231852640373031860097229575269753059360174249544297177332122076388233815001779523574560164670904926808555954074599561949130973877287798093552902692837005641666472569705689917672378761916935805269282209461249767564103503083747619265523869746190178944781519044255924113896504865696023239098916376161988187314624365341884229826816365546353034891854593744429638453996013591211494678665648037082211101685317565075907436081262018730267193453938625486985666815449799710364283517680689353848486167924904868156249163266352693427673930616744107259511334232039013833864437421301620106838698356505440521405473100450863607385771230461651213850919867837823474487849729512427303175962044588287103001744397965848014639746761826354097961667362529273768231903991058031792181580644889775171724649559912589037194572376456951773253444138543542872562603348653874874368348316665189898069658942581301925236009615261385499124075955377248724407221691571162110202354039628204484160811215255812884917035778051982124167641179537821383084904764569589993011073614730501225308775127039932604886107663595013005666574313410013934696702956413265586385904939900872389327244378558202713088049990922696198431336766838537123479186101647593010627931914560852876972272979310638725122813229688284092956450447823871501210402596414797224979399537831661641823382911167110544179750442189826899316417455577876951404351584742024354103414540802979487140578758505730637537098708449861973633042566131821104598781051698700244764044640510969767432520464337830990710124815291399660908019905885013386563455901951053900149564822546500050207969859827774358724632179765239950277540095746795628089503577564143654259395265995231308628805526146115420782391857962379151304906597829670590357765595837234645415110423578868927728323924681806307374402743150468970154413551694420865976618793636267160432325916829026893435147526009070828338774901956647831797116882432254877820285369359556620582401232992181177728745948337370677183444115131898511510579084896815127933337000298766022873759719354500947599648650754318999169955337539162937583426887602804468839063045750063521255904538774818879384247925391350755393146927697931340076727616734636928820197936653006279441623959562066910586135048290797712740483529926430501992190029866599462040039143611317513879670732911108211810546310864547896266905529320114325978437842585615618659589402163459272716558117735105942529949615383528547601016405048407658955116048338967416807441648994746432021368299661188154137819163721246336898072268682572222993816272228800310967141527587139945316265733370177155840716877039639703100288846345013392512803126889142851785652599086280920313595706262051173114830184904055977262758493743459012525290350692388473689326882439368485110635243762007273896052055920417192667068726766825495611527582322916951259800115936446892257417657683221766733542921667361468753519666056369535283116367507443252394910438224619034034038875216719818771158533718850628481759747351442954611684492224917817768028583435072154090505916552718155940365683207134485417328263283352468186463941741926999707097685205930974008639920075362068684411671944103271216776428151953591027480139737486537100198994928567199423746757091515943696145807312087695323037199158005463575023908529327541956912340142244200885070032101563196064794270073599004736414962385447831481288244456978038585368311451163742246749776727821035965385888459108468371508366267937375658359930068006537489432292590282194809362396248839472169375701064244004957209800414821100201085520107382824197725876060647302542542953258609233085792667226432346037792097889434159258264764278657620335240057548638537178599076541457022717244748541996345493117543997550401638824027914962439281853620529777784225576493744593831236521899484913953978776806384196400122134065683937264317597973185539373212335017548509897082009986232454554162545369572579640596454294462362753461540054343405536897552762067738781529614486854185037398896478287713194249623332022014767680911938805874208559800546262823203290314443994317312400584383642823504359528923585292686449521941984338356051000771776563210100255524351648889360624607635510917250165870126879109627182534304490466305014750586668804305453843270424469351543213568561005101761325664628957037238997706345696372234831388965809394683905783400570063038411720130738497460075675222663468251760952757000678181639406353262658617429558901437720451420552131680419516563943178153978878212343813564630456264368159578612813392909474798207547014703374116872959289056677465465798149911706708413418674834226476277468183360163392589797625574532989652399244269363631585001888541215191589443775047406459803125582456871645313089645310894870572928020275858725652467335606243618896209074387409873909496544870440490165000672160645356073154495037784435586432148584587785596250609711526240284605763759061926746549686282918961516527761714870234008222698269360989519908369801186054092005289548238020787500877098293096619457528488095704243005190432693824604639115468205622393163395907954771537553104097457273462914731050273051816823964055716933400773473062653369211793770530616606740780939857258309677135874961310991239607873419894412362342521703883426884674801140982905409099829089461558555697219159662285034576396243263890463168662813644432843667950833956832356178767628771258872959100535559047748404410648627833920362996880724541442078344250535710461764170399630403724643618206054936743773247329599746806555935876039474312890416330020786395191158826249704628225578687681024396164862356591397005455750950343141662415864998949672198379392413348387586634102647577348314564578049339988488585291616828756635834744013521814164716085909818634712120738570700560556477523584404277568896538359883974191606013857712150963778273879053407261177230570094610201844079243641227292974687414012122235438275531663881634650208767649886953378462239485403239730733030239676253148512886927189968326607267844078738531887381054008637917965024286090662922727431710844301893249000147785991100140597445400469579138453962342738200720567773778700814162082773386603355251461463424193547974990574602135747763092334463889950186674581232457548398657293867032973099862708759398923813308779002543792204268248868154470603007251655449088657478888413327556658920309127815933006556761814875888082810546932643452316517731164474265234741430867942893829447251662272272701696442802066959729197860604954388211158541270748884213031704128890322021167501375814484902206204183998393862388130220754683742981376420466529648253724995945890583857183263862987866851207399122142846853767216233334632572306752844464714397077354730065069075907433882614345163456761920036865739070550542459103352262468998859473709495661997112616937361576670104206497697937750573224913101883544438466659812073710877812412997088259272055874963995597384154188515761800041118564566601118923571192182929575002932380595748231350415347722542468822457658784954502989571499122991452667815431364576504007110729730203880851336583156196159648465519901312935035350317428504139727447037615815320910219540550659577262600390835569668664545515556412228365282349895008845591394603563368695365701631310724365400546988776720730353906217371757274093612049412083158128121449951141119773886968008423194423662915145571864076848402494302187579453368650622733583950223235429007518805782359512185239243652114542829364295324079907709207094144094984296509595455625619915075725116132482357318572280330541906787061009142341446193051976228849811525870337010747878568817624126518144875445481466261959235802068802707855552632364248922329165918156740453296708300013152206051993397769732187411834903395941764284080180090386826842001856803476578337089423260855930053909809656494704326552103055556267716104110191466695239425134215742788583688246679147288538905595197456509222159991476187203331513470188353547199217882729956372635346804752518462461166672494919583620205960530480497861836870233387088912844826554870206053582206447676253301204485815491301147357767025104125881282166818589150166795884084789764148994354029619750602684719599413492292203181497267420055315309380403508598037975046423689156713154159385301435293179603394387843971136467800417764761597264278608282580448202942563396449140628921275864161429491453826537089481025091371283092803043140282690453135878537186150186086163173401296969015473856356323828238654155434620649925721060055322987900466825300050285581872124621698982232252918443679416075681499748741364043610350486594931128951009334194813263580473549795241200137149808919802184072940653618826432357329320767220173729811381857606295527678195871258749397795997824552225581471371948574765123637861657489700584748953830984219485804358749963567085692937798840347387210867738178362304707247786789725944354274000919417442725357947692261488004053611471464573735786375526792885812528272700684389594475461820225729315075760389785752032663121300410369331332728273446624811998946440354480657582561575629578947354284851354976264983941989130547405070476858814570839690473684149221007384996275720832160051465608493272276849006306915936113796695122547856536013186417362897337855140821060847779113356559324954779602716779188643316474116649200064705997822190090654136620151220116250896271579298105133403938840543651117636063369851699799068930112401227019909386775869094484121420091197883430921244950610787367637026286596483250449817476361733932512585861592172664338837494023338661582990873150425746357341219547736130294681845523296127976030192638734426552181011651196469908063675252417370271084778589107027511784712842324348224047603226319533624650190508474463222038641647687740320287808223019927233569091779066559350008906389054323547309258675385127913220150052216959801449792700386826496994535758297338845784861402723149537948574132010365491509915292225874178457973121615524452470102300658656614620157001221744280036685937597144174706633538338231822971716257845176552213476798752978298276474131417021660136865490298613385533013238920730890007456605282631904641635675102872566997303839282352320798774415774755542990544489128137747489651511139933664058059991782179187198849445840186205304232675274886070545629845852822987018179282104224408684893052747724095252683623057215806400197186282753649388994615950385919151115885604373980532740496218543566943368234701213865345497385570409393118982927723615552929819861279802642111849531791162860210496184126561494085289844559777785993696835464581963432918930064973460495739050259739148629648541306601027051365293467792507399429637452661384499939024006736481188031548760484752453898507774794498373426170284220730912460236896441999826955892509552761936198508908623895875657962167435934048797638695764083702833578098723663198397528025063924915020340349795547239113317414043856740683682941923325926598204272005079091845199361036634238204941463023584756307027133815355997447543097955052105962669388925119805195334143810301492058244763998675830959959008447204244691207124150242459040062872528044231043101299512362239194600042119268962056921339073801944175844962359480387895617288887643570241781586706580731526070650652820781689986276327816069032359440930046432630032322066989265574042893229568611506428043219163700916784255749439208477845217217311679643612980561104830116425803760154940013350333206567187468005141184196075736644681278776004815596605153962476286764679554780864978013012901274883098718716804926321725588639862489994050270197785609644205970347788636993431108980366048403848050576947136587105424186227008564089515074980606749796334164931628906415535745740683457941079196115414334344002933347239748250525284939715255291941735757853801026047704642535088867365556234032025265144500584407024310329876530702996625788225567891114269520004732328368048477171817469945523165661920262542400659459278676357452797824646249959890153150410326112103312594202765638883932463808682440378030457586524144802459920551819654616584047362610680094182922589523303698369098500671254267225733560855671854133493598322413853195379139339051459341551099183864878335748952093625129590383166251250907915085054760792740493962816378027722781732648184578381326145391753863322716606278867146540294514618690609026039450452022511407095552323698767005160252828040669512327096318205512747180210259956567179095105435122019385685220981135995591125628508092360294210042927659834548022345510397826938078391944803974922096570659959617533135306875870706555007126804033588472995519764071481264251968114677684976286001633458731025636787327618580035053589835534714142686798202750427962684924139033978714656536376468113677905200954398567119317316713971403873078007941469585103627249490721766493169919691895481736470585611614789834820638849611256045219305431321738172087581878810257043576131645049843530491989994515715619970966049701641689930792152268572711121276814529751612603647781751230266391727878673225019568898368781762511815417929013278879506300660295639464101937503461362068241574967032422542474180749906026945327200228299465250385129680275912706131626868359486379601901424838804779507841256129873265093583977337563401955838253475185408415843118879892263915505422590349238088219340820987236963052494890319271144357937066084661558074900850393013529898963367748159039900273547038085967501493294051582834408734849020528799518420809778766251249056743049510418253228347976844921999874873981206076850490688734253096618188661259437457725320718285811440076041839096797641770937568059320706313353067318511654910502003967548765968701883320356095008825729413018558842015498005030302514268116758828932614250258711646665560843718221707129145184598139625742577926824187743491268095233609321165024336800738337642514985453591565339876309696615605414041619498848889091156548521599774523981490403597312816012590349531465764694927612459387522595235277112496526513774176032910658932671864150086192282352078658989523120858916972893636138945677859509217599415677599623015340890769705912175419026964584168235284121400126646307545754071550138331189548930453291093838517496162512260622752905819935569230988766101256924784774459524945863019916246510206320106476618800292534022999631887506608584650372486229354255529674618145192826698207766731152963237188610639205432460019818086459703698111413819587806501433915977934933873979551114890794786820219545503099369783268698478676637232979320205023278561591083240968598960771065597064013048163513780091708470848115293979941868187728023917591409328357219675127628186037087883896800065382313093606018777694347305728541323142376837894036424903381068431386023647667960686725376199759551803400407276882786382208410634389262237477244903426725026507525407421583304245207399286714059772013696453956875193320481496387734027669046969757158887882288706044311745497819381228499551971134353056563178439192655245860712298538587757514612738191477292542317579164924097868684595438540021722442636478082838886119705657448788876432386197176000437011376147814865039112575435879635942413588218571757586106575282113482632537797516998436968900133289056406106277309718279334479406615740891736752457598114534089370977625685381997949027379891461571898847767238927271503946553353370457305981307587793591300091578738513124668801175265287327421087682609561952586182386438396826953136712174936190341893165246483682391285164171899485033347430819442654810838495738108302649936208834910037202483831912527571152317910125167667407374007724681090016888842529127119493659126586066244459294953328334011433980216518376329960279329719186880412493365371616546281190803390567742926492061651125057367219166713948127110382308066060526549353033252356318329380964930002115846240245058006546348133180317195563210697317173069118202155287230725373739577655956913562279025103273419838451066434700029864517612673379832577594673249466084251175473649527232245107249072768918504300334304581930202011441565057648331958458019580767287725650948597938775843886738139821179792040471864069961834049151395900521908386395483621503027044385308436421488283959389535378843199048863275284910802356688335875308694362097666209880104011001811770408554812920641637300367060358529523809780279638837369747010307512400649939561274234194812235915057104080388886918903450606448961132397386857505856604844493766562500330898520426818295487631237495514169489238733649944399912816398506354312425226097930970095062230478160724239022599064309434146170026173195128785413984329677895625896649998487116488343826296728042847660749226182282537899151255099776187282150269638177221691354222691181938834206856998815769122960227230422833123494063813791686974248084661967177017452650675555034819890180474005219580910253337337291931016423388100486263255169412432758450207268385096345950610398623137190364832690083874175889925190994121331208074903408730363740825659255568004369590633527256528828078881356380591099675536888922025715993587875498737464368179987903846468632843761827651373903460847228164171722055471197387338883377912953454682897766971752578794954572196060653097140787081421080770996071396396657307922320329799027243780596740657728368775993572803946330830533272606760556857864597901209975355332524065730725156474557101280858129877152605887451007581922227132453913552685272484646654667099357177426310138327821796488975933647059782090398696909559866408662136346809892744083471977462866768901896710485949345909832866456901658149168642032260628215170573639239725308993698193237920987959800444434282220121960347137325422341028175081128867107225848997781880161467443475260803295599723871294303173837444229153843893650411456906075636248804031704956350900484745689991745226603689819401614022450719279289277118794712705049152921379162017689858178726124643852554858345205535312606938026714209644645886344886436067679962656314208188637405063937487769524402169864134437618100668913587940716672044278900959196759577230014822207156964141736932002758588700633267928250346523256883497805497292014307127026691088736007078396000733713863189542169344942764502442389247509830679378719680305090595680881648065883873150090693969499492508151231051668384110227573717248312396756075339894310430908510987439490325051074306772162976035492938000798850974176278142692903387492999384760763225885433097142717088471602673249601445491572645606874980133105000878289559593065234008992065011343020129641943839814407479753539702937416653683475073682409105396318692709158809762703271038677618594439577829186017392627327493753140185379413326716129025004803262621539198083200752917436360842475790701883996488471662557028694715519722249185741992900784800626948507404111545367836027579574094597525269827878222037696524307835425601581800205232029808165264050099548564561720155281763803921957671492560578121252376187983390249271070497429951236388398252910282816510052654712646439405356231823045574982173422263056309373900259322262744964001389958722956272577530631540447536322009833916275795464346058272177848990833749406495741796075964118096713408323126044590906306152401287746823662734537909097133546108682076042854447118422400504162309179306163976210021610150795918655748232616086947395468639323062574966454385918225733506596961691539892792047323461950658178367301911273971440648205052114640486690497047078104690653371956221467228710155081667369375973215006171279585255147910701333308172057659541277661297238154387190592845842753305271226376047834067700414560638355927465622585540292789985150763343402633247746924114317749694298026011327660027396081391952347449751496683191210005434540412153781016125072017211883091284809336523579060101927966691821760026248520457435501529356701781217935068734289557960997420919284844213598504221153437503688300620793772344199724341965858891264289568325896188525364889444598366146885325543555569850415181435273823875037279561954674667701908398464528933564015466963983988005190579117692586690106726335141592805936632562824097144046517204737373400152326148030079375928071073521199251776786125171130305805859965152068232163183494341620834015955194627025627591863334123889554411618778384222950452645216390344001503224232658305502167240264722409516628048293147339885864535176225680111096718736741564995948384192820344507667622081878573920457271091682937830462538497312066988158553771331213061601572597755411258324331569385462346412283490639255797791364234262577485348987142163651043810462092052736312729634803159329546070616691371265109133291445518966680705475358252058621698026301158134610960414442034313795454218963084270509416291128189364498143133782894131318913736561890623609771344429571077267372769279228517284214549056312421807313944180914205608284434162483066926115709252381285369908422339988183360958458804188286232146942713270466893028907040893642033941890618992775914209817876875557821214739403609635964482365455794921790577402580632431685072201002881499087294929943049058353127290016493984733778537788957139357190045985142883523641393906646936245206776552866208934442523599275266553748529864271882561315453978803100474188342591709635834053376416161320704025386394905582751521558576616639359509995397777593810814219842115833015590702945672057792989326585671932555382790914180175936365381365998221337778786479641249839934929018258554777883704484125216746349596795836672476476352929073335789760049580465882002563120714351510669365426060607931872082335605117188704255155834349498927706115082792955513382589944312560357550493149230263780783887870603632764586431515008595749643021118197331397996466719433546479737620321510300991950561727355444878656861847447422656026325969334216978321272722183952952325327375239596885281959432852504786517168007317036289207016763422695693484487937507449657139388136650282082795837144592015523919134431977063752454807241752263687347243690874865930809553890801084121892257461945378612430222702022170324395241884016466818365773938325665113957229884630783015475926727100558041848623308906240298751040311352576627683776122174139740353051827520672428212495293627972768706192002484146414436483839418653586487861080663871910422619152690713894471585275896950524548072978146835820161098757866286849391126525181166348537221798027759724515559604040273051098040786137865569602680919550143568236031527326682418694761389227389725020690686280563250053235354985768432245778150634410155950497931376935456359920327972427232396005207374083080760038896872710667909007652861036417556814714554443509131236703014034396943911270253486856651173714154000557171491672075472918019716716760649979354098807498605564232166681493093385557324003737885253543336644336670674177283058865102996334064127731464531373270943241258832321043759616093392993245141893944046867614724112750080276852094741733590017897265286358037997600402464696909391454774682957761117274169919292242703932058030085591212111388161131228784793080044829443357216994561979640043100260739408985546019062170817370334103858612370707806694390118809771982077264786231224093130272041265530335444537940214839972226002212183136220166365255978776084657361739500984209242374171615697733768848985420246764400877548464607344162281134143565192933006312322663508351694861417918999764477821518632581703763246719445568682894927831569563398263333988224894087478527616763116815369701109014560371832300758403110991614491410717195881003899767589596163174149890680002865664201634565549067571596218044146746705025713691064759838359425114062517400384287512775675171773631461242257739756437538765305490116766848147958021221698297137414027064236026848666552193755378391682958850604791793070306874635943236552271618979946322350413299326417934785463198802117045171885804145703332609735957895372525668754745022592908874973113933281312215255568850102933969926466467113861006983364736095441567201545038188137643160601897070293030594353057233939331051048152703573894242839792172776578476637095993324756068897420257162509558061705689074459883034399246349323909554205157002655285389892941300348222172511265595719894987366374197015878676887151850052417098598060667009870573174786423657549614437638343405732950608209665708544234847351524507006103929243012279199172332612202827317529273411086974261885796231551750096526017050002053732113993711652934478332971235996414010588131217576247162294488025233923441520127738233053571619931672599594951864637591823973763300702055887334565412230234991824783967422831497855998734202737891792078527228480523193932428894075768734514987632187239002613711845727246840778862909882633863088073421988963427336522115855772141300696677734239292846648272228116229421821851297552815539630046240950231050130596744592689437128807488995218733567473326900610283335045598477086477820149895031120983299851097161445377092875878248447170226323084601559408965247521404947789842917926574104667675178047281033683357728800848236274278692308867862324129442840235954292224195190231830696555655263405223571356843349539486027443204863027292141850563480338382009132486401847349039734034247325953898381337722952671031579985533717957334972913223812215603258453070223194213023259975455778261098555353246847619319478181702727361331185751035067224723760263774880093112763878650761350904841563431111182696365192724277324897381359083893129277489703708200938196411511290674743890130735427944901451494976945435717169443724737006939234810681183475130015361172578162423602745019317439825869076276848247938167350754450268241379725858677175041272199435415679775469339195255175949079905571777553328007904919294815099062253852618847776231817746559649648440508849744125524014453989158375932025573567529518406584467915980950248627546029050936661136303145303291143237443237676782549828121407046741322648609903470512138684330652229787880793567903005328050419357081953846270705627561964167918368128440979145274884926649979945965928546457624699628799806651974070009386675945167077507468554328971068269730076471457138259542788983546849475654465542878839222536844983332684085086892124935996336660491276857223799860771769459387511917348598688182167913363369172448684751918289042807390490410026784564939386634585881313809181847445620693033791437825186809403374262387523408693804063715832907498112683649015783882133349624891774531872541595310832650740905499595344453166410300650149788460648598051702218443455545892000265934753009201861180259697834141466443242409392445452068647087848917277970979871598641489918656938190177581516331910044427450619253982322018948641155163408933586649768531748286567304551953899295585745336091045601235353659731486984327355054335876600391413083357299756071732500705142123095849445857522223678728912831937078034315359203673728367232074148492718593239822194003523789733816186523298066544400814557844086501858005945311545559910286017149436541322853986012423380992664251674238359733500441867953522977617686760930449465648171983514161785676706296043651874267655879035846476043474162494253107091258569042932069543397273701447261168009883825480497657770197334968652850060817551003395794750256394618705077340012704536167498667772377188964667014983833777627720145810841613918762491642691204978060256945300407887668726494238001938849965672252435468225033852520696696548605571264980712812306320927295861976512851326777517203555521605560226230401671453443306594140613928381064524120749042706273914794085183553450739324763543931226773687635487724789475813607627307181508008793976568834040682579591426202685491415950130050404992671791725321373144664335529935719191611672804731649589654030652071546300880694137067389560798511701520988619619382423738489264883844043106258833974036245822103001458726177323197323188124493988456837576471810757726904318436293568808361397937322215146383546937384605288867723977519468204139291648668845419260496408238415213287770266694312298215164256843721270031663047053832733614818610716500470074650493742960544987707226460330684303165628922761359558424975161669239353219415196417171939947080577738171089883623436841945933054887076169878294280258236085837148439161879292276470741367670392360743073382628480490208444242106418078229356797866157269511234079386735263615698969981299676632220696941823953863291916566554189312333484462006877349262655093873667628959340300603784894458857671094517537784713075932866816672844296699172974209636169706683359539855670705205207844003371105172058745221847253276269704354205532902401615917024152890981978494185336982440764095158907112019009991885585361482815059712977204728852601086379320454012984855024726931865725187392983062918263686432465412070132109803034291820272792244440169910751325991848574039446269783654678615042937593262130619192958021993742831857282167303697186468499169988724893854627217289121683191073818450745832477727995592620442198980355825424634220163127706500068068504470798959102926557255156544776204626819277677550876151833125527991210349245075392416926398184365638827624624257155721566387892349424598406412180887494081851761756323281593111026343833213734352549791592667606779268774543962713497047897155124309041768352720126038263983057828867369915552550555475616202093695903983565986684714444434675096569196437417216106814488504001402289668357341950423150284021259168937917620583663770598720465771438459137270509741591349246077313057114715236733846553021767736760636726734559933404046154835981773901582445168650941937608437565144752639757458691354642854221193291168606012697430922502329505507506630835841722004006882954090367241975136710409213639955963685096662296825155064075706295062776668939021043137791865468406336682907922909970858802140251709893743222739764783223303162705384095864607078050801784725478591811299714539273807750715236979164692550614015916854219706540728948213113213435148683074141441695132661661586409427076702751590364973658337044991073304373951902512623707230547166042005462126884459564434285079876305248120922429377746077887211810467011453299693653515300179433572726936552931608673641504435609464687052080301752412788563059523558856535476410276091870112514199762124914327052348371398416872278579122637475587836713836720489970363891701994205620316221743659969949720788795390149535603102367055988573778783081961540565664229073073245944812092723198307328117137733219669766368625886830801573230978750302058977976758856110179221671574649272966967784921973656921789840051001612555548875283123877350797053166913402951611362039497391959903761732096138966734473432215656558770787039001767935512141648475826982833910571797311569130465530989926610614239636993460664050857025159092836733247806795263784260477821389258128310845041985635982207810700529205310035483286631832734634506878473984446671020118085575193236546306541352046763130575099951539562822935569511696471181480541570244484860536231457520332567622167421938381747053283541789371712127137713019566145801897494784996887542476305971420659014166349710761286653500301568856429634048293027458551640099173572008394868613933471681846339063197249191603194480006883799055490570568053018646283879910893300311447180293767667774439491679635833993025585545891963253108742366398412750419937666045187713417126783593115013175605563855159320462288751010718108503657341452445414971111978451788138046510631641219864280504610589018477241563560182779406667262012912751348108626398912717419855039123776340359546367359772776698109464397744996607257524749130685182436019246990212429364819096616450743738255282054725194099067933734053790435630268051697268981074895316856469275203760596057924861437833999962380478613634166976440108787629116228554565954929357439312866115316848519541116182158724008397689995872339637105841556501948649675733503773862508757775583915526354433579219831368680880921358782846484377140702557321085964618869512033711953916817006098216608801937653672285113374799989839262703994415447428759623404603718414793850023745239904054343152910053500924080804023039563376666417612053856933458790273516941146705795305313018046268086845996882005634053505612854342694846990819389208083361559904002680205319058777857013653225889613003674247253226247636402096632947508773493258912892650215817892806534912975338696315328810491107847911426124034865987250767609220323116818812500206734298618788428312524641481094747260584944880990887025328006121276046262529804935666043068930714224797622857191202000934880964077965927500081553366825091804740432886008531219783361053072585534844320976531696216692680609336721158753001487308755766201220205453872805133337094229616561246041540078405098685590903181288429869038684429672237516638816596216160680529479196836441869441241712956191111334534919279905064703231696599678640270598423800834922954960260121555905871228728246680805927081338935542012586483480043271833912715756201265719354419861510403576808118493255793567180412753810647842662461171358806696750649884811735489285740230676902950214938332283689190242316783083008774661641333033616151519305272638746010459996069107179927896116086632936600433162760739280554769110533128113864060037215034844318848423915488039442615778012091859175349961773576894910587781594636325905712767764262327299302040516185666052669078071161561550456671304948953648385231399902654425297158484026809499611041920926405651284442119406742751732870294813020077197588315048952918997830438990907581004369136522867341882788422533211072695302180929201444298896546646871930613255134209631435146765181451000727354113238324617531522721074775581475872197068545608193688002253222500297042929837794592740355593761818257268335535906294159772197616692757996841832757307249044469441425745892484288126128890828215124053288609968699769044004609653189589086117775830234449722530312844476604815728431057697019555121420551283454001923572339682157266528886620336822456393169684380395587430359878721990069969646448133444992661944223327405591219412276621931956015118810964075058025237767156368396542809850386710052110570944634123569625062373192209380710176216140728857328945900096336985055418938850633268562492136915884760627488632239099260154523338609370928352739414654604420293203606302321161087014472500397625066384795917653973479929504602989387682472635162854979717583114318669084880627527788678615008865020615754184599698337278212759281875510238241467377269657927247036949885677117216093934131504033708349453743499103007023365031929237239733593733182739381596285342989214267409223506445009786158999416325381703957969769100443347788669460851374150421540667852285140472000980575912950260273282745919383060103779341402246049093070783238833306883202154673250520528610277105251587182646424877157467064464450543510394461018286350095841567768559985410696703458923502179406444509897599739269758267042673152153485119633783094734080889099359117707935033555852645065755090680181827673709953180088449595859554124820243256144111327327093603038536703447544407271849166050922309831703731869876402514948535507043972455219921691439695817465501373333643176635692255463861814536952154401505464858557464699321827763447892770122468251695267783450339152935177726889016462536337375768027616195005646959638772969677272216184729517991118229964274279852782401231672800684306124676287295752188174019736268355195851251848736904225059717100409705353556698056312290016487904802150685677507362722385115099507606890136092535860815847611762092372175834364368146655569883989820129139281856675530518637557110975378118423031243922042520836477527707230880817285766681045270291235319856771568185611861591435267808974728682752726635473661356818766433669497672090614911081334023331898915532026245508580724438925924568731600756441950632060662259609794914342240935148136930379837527338984149734825567523085028065373346694638673633066454547587558108846132864109242152438226443730473888780411256906868397275780691902517440664449657059226781015056370645572898898068274647419620108603752336898066327314081407377433166328984546831091425830953311056812243914389374523987690451936941289198575275048591949992185702689496047863525817690214297260206878219830246711826551927128128873990842942802163023087729579691231126610322023879990723099688978770918176617408990941140074199306655159370221759281236552366974804938048605252811665931540219714901038677362600862619428511181956684007201178673356008519463835293322704499119933699008351828922586960837362879960352911369492321787869469625281361848831595339421071600419615185619889622738297571946648447936268995870149212641686868128281405487088169550264542673832204262071047340397452478904413034101786699212154849281645590767667219467992595434355256856404529805313043858552322039358733981883270286196566549440958271519817523678224209158373118063690781047310606455875314285907307807383041115260765505405039940681232865977170830375273632439556551137952152857336404611077131496926194514858114226233307546340199366598772147084478867881410567161211209736075305651422361432537814112152711856394127408282331618843703627721936518083025544551074532123271590997344358439869523597127603888313130508101925256858930205255199934535817147247016593937213578340008190556489563237606572320484995623033143009263603774375056866783894200922669003338077060961573468024008348325681409200427949885510974338110364651385968879744075273280635024717846700227613148882069562411934750739937083453042347786920537000653085236872070150394498764760731500535562190290470386808945348248178926843916644182960467531898286750214344977324988466823817371422342024748044769887793243735396037227468192280821023656802433934803174102313974280056255821231085228911534511943823847721046872525693389034189896559670660565195637943315969262199015918909607121922681920647739787101331452806130128320658019713584983166846463986502709688471067586422984205000956876328961515985015158152414719681080860038666605362384937899999876199875508202650943702943574610717699519416386902268274138076920545053341978142895212532323282644273483857544608318120435817103418544293349260465326501531500286775574449067921610927261201194411672995943160789312903461274010258232541667441605399596863485658950404711728724065880074744438463811000809750460261867465828728330843510663812024304369468153466130038066376773073833692713541776319439405488105853597661071463254477016949926650606134105137715898978363775499019305681325734715203900039955126328161646420321930343887163686248711580395259339492940937184772146150347387132018398769489318626851200803270344469683253897209576816688740180219565777732627830285729233219414450339265921190639219020295707510902756864753573724542653897481587233368656790635228035526115403124889100766395512947560515256584489948196513306388615637101031816365068487175057793053846262110151310704994315461799872080580176479115045264745328019136572002211555987848565624120911009243868220852021590284382137163038916179216095171832195088922837984859676763546438611533982594289967251053174126663177423595952060731985165220316003020755668633761289511207417084731153378760390788549622513629432588847877973341681234683940348750394770796629969161581122230124615898336939738348123133618968399950957422397754213901736187428841806540849418509265386637720575299574888823751005617540971041729900277342673139401890614614765326478792757696429937498576216898443039448410512437973707416302129794490067353245946648219665349125658128292372241809189368801397087311550186470412291356310595505585245839966516635110479068047737285169062177613873301231177319773627738355091994158068887707327407325892918512638362461349856772435498412314011243944752819311546135079001064252958012218009751496163712894226509578042298229342790850984073413394036062792586280335881959659058198223502637694356444416856425478154373466716661111137483823090351858377555359769253192988436203409126031340337121901694494989388743068709425039081549864410368934643737180598158678499436296460902092874552759693251161325244808941078685169112748768685017055038211223192888905672650554541233514507910957198666967942702835101765360406012448076996177324130118876601170851278881271091245408446206937927749061597482734807975570072976248040423323833466072095009408241902037021916160185877754372233346948922808269177131951020542688115645804136677301128346132012719824196289930718074794679334472238833542710533644291350096203498371699892352708168668928463577635352133750389299207666822749191163810562655758032669259658745145585785401113163101024910816764352514682657987788347572547161042303857600181300104227635064166686271059114738698449771273674856627966930334055944689766348211231035480175453549824623070509586050278621538907073302921724453095435151204961554837613241214303146843927120167132323929873915143414724365683343660630258342022896861208338918010719065349695234290309429111386329732061460148134224236916298337358384844162446267370158670300761864290189064321548436593259494708833326066749251386947542141954784651025042307631606120541909306898347915118148126078874101934368812897601774695967827566816546512891756307766866663012995551370975531619177791911364662033863352400374550124055690249893798353698050602277259136746819927631047381828999967404079379321083293022028999748258421502546363955021774750302559415401157039961907053240527440662037428376648222978651611941150517360019912319047715618958878871836296980497689803930671701167160984384776466883138791545706731191160493139581505678058323774926008351051469648265069651849251858671839015632940246869482428595342396842187953585191925552713510556868050563583489186245760182457899910068801709424299212770533876818742186027969341457228578851512608496208606792484135435546553541489435955365738519393204650166172028602773241639581219898350311904427494072428752550349316473660583687722100312498599345805464924616923204319120099928143780755990059574562057237733059253869745276697725779252742250164611968322251477547211666924507777425520129207918507475685790899596632407235484598663822438619090315760072348457104199012629251755594578503892246798880340150801930745123226209225126408761472575697943427952187152928832676731600257694760610770596548462799292283139627563968826005338196962601188020041009632514735952847895691568755422581848153377445327714350383019113185240608441881426457246673380366181640302144681543489837332134329335586853588905474709792428194056658320130423297164924653202990891231899338295638654140345132259160892235210567247909666258108509346109082503643884806624067386604875109040686966064440428718148788390187847692841875436501258393603974957720315091460155736153772361878835002624634127076053094814906851365744087039706336282407451576161459472008172344832943997939154582597621993010760649664688478755599524845903597878289948723435641908806818902267296003301253701885751032205861282445981916121729887621857521386023444815633018676616253327079696727636892675581675600127721480227639843574635521006873272586094624680771240452027221475986543336910508130517388370761525232095158044469827081394004153166548917209896280089988888458550199710222886097419505375926872412523272673149056289181810734767500609619430351552923733016260218573508471256821161090755631386185966728409016770368858086027627779823477332650250566719828339874654472703939839998252924229394766658239498220543229482415188784885279963363325745723663721496704268023014647422626804694017698435514278992322298873490472013041652991506054221512461984745744228052323862534930960890203861325835242823826218887908966567935557374061928520343839940747702593144179538953546591249917338076643488980380802875132864252106530017318931533427143729577584175320714608939256587419267090159523333355331322619553625014523318296540900439289317413722342127995148551907112746539655780530221392807247534697755519621077680538251686250149939937830486185073518740933342907514568335698568658733661117563560911996973466837573907910497048613878366784830126869493436682924578451149275134055286893482104530130237504076287346581837331490718431181097079819417092958657628390766390090748732764663053612776256677881209129255332601357484560395590216275199432840646192083078099357532169159909597731046527768234181922571981013316501507921079507299364875889685209928801035132085466570525813821014784673949766244430252858505765442417879806617391774293636889765391694934831406786708578492195216759283671540576588140654135685805701256433654869892805672399029749385544769450281607386567060904071823992554119980184624495002773522969089744638297581263803340215371770716256375682186116331242360286512223364817729264698992763560252326599465018097753072608352463223730561436324640850274987336183783326730007814230555843774973602162175519234947167867904558649804542032629926795506425862285848219446081754587583280141642275314741388913022580153205083855151210277750441466834999694138397214907072495351914649714008318647886373871054726736308142681412725613940950754728859255223108706720788755765542606935886936001815102833207422552190948205641957823812018722978934452131462782449088200557006789610123951910711852916501584169188004457091334407475569577801753917512758929446396984651095405799573622456750387682838091761628147433395160546937131939358284124305646904192316981431678666216917045725407900460124632299994937645759104808999577739445031535516735668036514326423333837171468960210557325642012799352588264254684222058109825632371635669864452701299973018540660089280542349526586769882002248209814680202874913155439495257712843147900168002064704831522126237108426044583441679053492392221517152097450117914484660054053581550202584902102880271662716282582304537434705500650407841747023397300978331112174857825332595546931794174624441486079580929534268372375362383003968784567328616810773928463526171505231508507591344856476330310989161831040301850757611862433861692048196030875447866413275556605690829168465881607306712832391408614937379801731308280878974582783762395685480854674673842510412244350055494156991754004697977792770989617179678170738072485875366020914410309732603762611860218408298105197024450317907160944464746983664329818221507800538894336105493734418646368466656524582587780288121755143601282483415833885123412269047029577821871359961747381850210327530922286652703720426839715249842246731637645273394975255840531509453037684268444869406155929126626124015614227450920109903570468932946330668395333250831270671961657804527046636633417061249420908418754423328887332812601220877271520401835031381515947838100853353235531201985867852101157247449768117216837387611726482785254672768202190924308576627676938376389518476393914099319368671684213577999465110003554018979288259640163824438814683530613246692362856557308767983303603711974036919078821403031795839681011223186607030094326837335870561379764932240692884782761245934652761578577192427899178990380855947552677595740544434705617029868924326474894472822676058440750941635384262624519915190515873657190322123999370269675752486215519319000684501412618910055305511400497481410797954904612905194267747341117712151820334342617960989688432132873123705235072313447057702327047230518734894218541041732583037285977932929410707539337977228058359248213151089039062792468307283537887306630478960640151228292303291400652088298095429631931070563413395692396181780718847775545372590708790416847858551709241300868570878984769840709106298513881856408107675936372378503138645360874827333401145307883544508799886584038071939114477371243687350753662692923239236380130233584436557505008588638947690408840113125496810488975078837271930957831589030233890075740643870541323045941953614635932174288688843815367821435767321552605644234505081733110886566341408808656085951109233326638440807369690986455632572561561716894506319029151497489439293859696638099997801947789875227768401277821594237286660811413757271613831968406779960479181571979387097583271532482906746393101474720580944338371843206759954044402665951416435714897405644837131824347044464978985512555469518210834707112449871270442891252219355773997925636928272321569158123125707451469935947295494097453105492881979317354829059441473571500949580158475979940762493472474900880053360372998665145996453579341676943174774380477119678109076128738326639879189290482787782200850643239118388122110481075093000030540116957021874779298030215643108652192752906027803920801584575589033918971581239014960389909493696961477889267656211440909315342773361504642321111746838628395587487215832475300987758591540141398423958105889727018361396620087315584142696094850441796818676624977710772671236270870139988783300440705851419116234842811431347497047730918211026288955291310236881228720740192074093876608904483023776082186978688219447279154664250742914700519142745537335652394979780349600047449011919265316020213969182798391744912454065197840079641263108160380323008907027556241494557785861278268563984324905209551587754191851428373318598919925552618198034813778427904422412655643614669738933455305778993909958770660808331933116535184995645571941130995102121711205362536355464439798780170879304491528425967691627947863253718878720586808511321775423473126395290564551748117386698421545680097039122383556559101671585800995130293482138032500024344651220607036694834359139748538895161512334154314486572194703733768414973486008355776447442010871695693235108991769990123894455043369581009411807606525647411123985146638477814074657765372073485705036803069397114012604368527119576312342886695065076215180983174780944568166465521448390883392063171300471868774338618726382980682044214854169239511006177941216032400717327462715000240604542309119941036390367048838344943781994340903165245364886807882775437470214027097159868725271925548864538818577558531578498583695606481888861828605262347682215261614850081211709471812023157096403385843242245706955106676330684184792289272658162124366533308966127703455209294028215599738489009842723923063516023852728702905322413016610518970231486461960567683333115032060591607149757899533454386574801960661183854911235432994422894017529496351248091205859865433731652059601962229555880135460485485030118953605413628127295405551819543130413228736732799538950484747988814414825497496980889601751509431036481010181183431524097987758804871649941400922313029434580109023826504318726586422247278994229731046638437937341887958674335627389093934574395409730969458937263540684069049390810082239010239895339246642229125188891307854369369786386684607684418219285262131737572405897495867681925223934363799343937239039988947958912140145538212287933140671809753313661741203863807272920833679053385804297064749211076089231280819061765820921600285309586378224974857437707779663381078137196496221078288919342498477862294239340210979113091221725168476456322818625753280755200143008536795501791758349080027348882781020723812127276517246127149952040245639823222762977959007784215519760301361264506667625110547645479336884170424613628628226878979078691792506358731450872021501300853052114553819422263930781399904567481795204192039866534469012547674864994601427629494420852168189967411717123823082206359421275824615941638967838179207485100472985085761900269742476066067634890769303773734666609646582353849959006387395096867322365148898229268457435838596505703122616288748087277366048811918531689994170796281717717688755594094947968062619993990540580838669348879145285845964557419941581607749129327609990616288507729299475336887624003615501756579704419699266161301203568509327416085630271103163959351483028739069221290476208091036509174771168034885769232909795144489976082385061741299091970739272160531532511732301382992333940177341076949299859077535300431919225169227766760386903878940338377470037079709924430882217401150595580849930474750198104972635382900347825196298897093372129653878761885946388173768168847838013622196406965955623667527102111581936770701108840945075698373905307629048601506899729842969253517600037949344032832565313301289410103884824068612938690075128914233532180944713558749853635285302483164607686560101495129190018216548510250445088367110090694232017214320291148041263634289725158599347352534364701618136440375170143049393062407454748901345157611021685780376514811423432875779258111466222185188684218977768989015238653050065967513864108206979984198846200999987895726545505689582785139437125889533014181660594756761782570358979298145212646683037915635838384622669712818982399540675378998583727172547159582535241252944992773768429925468575333285109486922338889232470506276405552240496223089673814493593089094073911838216281135845476203671849658171272590807620332094055558641564063667408930033936277447830295647311770135808052304963225143216443076255939148934392106335922085520176051217644280079103953324285240202779733922368246300338067382599810595386930840101539422882766707971490961874076710835314177798666562026671011444978174320122350242031957736006260944475333400904885215519454751320769305982549684013832789278941237121136909542907137267439131246785554698020768837149444468662041432126625938893065008603613456480518343279951170612088477375576900674967862588824711786493994187898896077090759719257770412288228760968871846641301148350521235238511992244860787347783864424652338470903949121438346802743459111483725538235876353638516337682936007170138662399565494731593111178725159068744377216076231410928078184937371947567302817492095077565170960548727467105063167397092654388162265507198306790391241257059384913675605237177091689166679979108599056754811872983756828578175893597432871467544433172111208133879725269346864163645065254530839890855676628042889259944529522279416041123876265251603034678966791049642127080168940917239757089399166716650940229685933453812242353819886911470104501528399752030522898871595564951501259334595905967046040175605945407161287159670701769454859250253959466643370361392863628458726818666762341031115907471851136694273540323487012658309771583305877787307493650265140886900378129980477326208156223359497704391568925122693775490330705244515289916364356331989701984668480902156330990384039693582601700832864357054098293563375522805464308895919137037786254134140297048613609787085139433989486028627269041630315358922718291968372257987493320338646257662953531527271314665449256188729434163229003424912597559913258674068160516968292262980052779127342305182313625282451941605166558203507626508229218046084502334486125511009115229756071996832223347872133858453460535771794660477478241061549300709822892640605057944376504586095852504997157851955938568195567140159123598384281643066521303143022471641466832600477566270765303681457315950917359155091397522035795525397367167691351308551219758592139720577724589727097744263081365361214358766482223666750332873874058979956630508519708975845212105215834244110242667784072413350971526000531756042735627157787512219604867728418474462086811743041005671917239181488866697758409336207672058308634486800329505269932279398247234390526954087241939654327339349765903748572223778404501643131858675781666560349583430611348142461622912236478404269930646444205749091452820154994210169346618619421858813003643758514939628288797836006312337303544401936323435650668796933522525498024912098761981700380080813611258324547761075344710610111512954679057040550549595299305452547762513714030222014131941922843992166315355741507973928248755530301122203360517714225258401774036302931609882807795911154185574816335873026252086422680919183666279817758436146035467500029098893903644197345656363663486836648910783862747306652425792409417093181901266053309983474744565931518429904553953458939582677539949477802165267863427622958919592119145045730434315287068455600850445737939710637820827684923269819183336385557378616014684357999485335291343833411498449848601776236407025654923070959070571756013887712693981251208498738912976902479246296592253466413129753084969798952302407473454253960290289106950225773870934556700719396385952146533928880407469320521616252298116556651173742518607179359122498374758790431588058240945287543610315688181161688144451688871299903390365407670935293029782910629644755674723701963046362500336164382039320361751092273155774110508042154183096528544535399735466085540223315977000553163305425523921285895944071351751833961088498606087383249356877102338504914545957478739246918854131520236254647154137459599916431729014639212256533130133302943585034652555762464964321829719549702224758277848727324017260344971459904276787276856697062866907890011113080128102840131340053966284261933480106478103464859146145428509818530745437860131451645532190949523311938910449477804423616349635772685804159103125109566891601751518079634007265988956809687208882062873735403735484923340383158266625214324265080007529659807634736776841219119160165539180965012520801945524568840798096901510682091081233207201829261711737400359214615722485921423377158870920382779028109603629671895802478866859518008072065254156304942390922607586351189409399931072308240411735125529361881984757029733469304051373299899026612400029359612417573897046433532757430066513258130169460144792383255858248563394402709329525348680471459540274300575053646235909832383357510152056280995261649183328238948828381553403668611605031102431176777626050788952328811036789252020027570713928427356418768528315768585683534833955550457848372448575667797038225739134179753661776264032198368017315424665773126509425394007605314956114244235367965013329749318324747408473811533795215755229707396090471419664699808240986232980667642279865868015911815990277320523587716116685305772568439875400202633556970286613347113798827928806264909051737003624018821276005480490053273788524737763604081188993750313866139874200500652614651175987875987878496907255033655841287478724280580524193481260182038640477623317373785319722911465175524720154147927035512680126377153616037745580307495856212308193119270340760894055915606010569018942929937543969363113983988864052184190925278251644285859744337608135974836750664255753559657516437181440865420305020155908379064847836122447546926489323126179926211746425045015795866908685099842100632844429386340780554189016071681733355783857632080798058007051630105070215407420350860692908607344870225447072467404680901680629907811758815853444798695683982960163597334321260023566212537615519386736292045100773111721686507608486399370915270437368737030470006764739776345889812279378346054735786868506854714357619234720796188670582888516481487843863636103663930387351075131332926834537264380717339753628180460422175812767072666880940096034112682526801276037496275016939358020641526941604150470170472865273417086018675175841837479452271616021499103085614484059866524963090208052670464303134064914094054058379052138475959294502169057207668057810597825981328055058627999954192286056852668540096983688959816581827398390996536326791635800195848518698868235768192028758010567908057589463636311036670101291340853251845038366065572614717589668095582022895385985376119198436513252721115276663748663550515832071736252195076789023590210367556233583610992903621401126809617524527316925728040073240658713647382666488593966405134935023238558995190663733732179193609574066384407911572568721385359230734280215646377525734762992938194000758146279593239855480894602434613550786046848677641601451784196644804320218820840687982969142720168857638363099034805806085467123154777648433797739720110318110272198148604688288187475119855648225301636075957146404410348501187046639121925172309912844368882913289300369989239873924022915461401337591344986848954231992928966071622417469649390080913974221907968357355847539536668355238168441984809856195073605661582344269960197313871720960827968484908196182156073759064930891442776230088025925108490893743402449944217665877476165950844279190604257822851068941941727196125323659326232012163066323826880689675162770391002837032501186008210548217522078361097002286558739140893640942582365772769735472583654483709415689143286986709125233353504697194646686428621305782702741492127791021814249126764732795200866346539990472326888966652072060295183824258696101261925252993023467676759192277143259359197318713102747139374848538277094752321928080105920472999577335101826714974633972701833053003477305232352407120129969956502451355462259246423979561063949092845849336082780431630881817063703135203980179501665715398149786691998373637254011414307421767076155526405066646454778397907304909143886610747738294490274118478678893384881722219122477192784562510304581729253311000730890295342566816040344371956505271915412735177059332909595381067715304500021613936746418852007377596766190664091740451749142940687057400341578300874889425184205109222973480815570410042556157984362833701597374932472150292359652100868870263569932995033740294794960684334505337832550885832281047822466069444849796754745431929751161031000583610089501106971392005574155394485276616007101791453884739582570556020873272528843566427594864955455905027945367951702561747843730404430543142506258050930666354163359154454610180518757417382924456438150392173919720195309044208379428114769067446251096230862747194099161712265369261731749417108615105154106976825638024034322124782044901056787415541625371190339961808154367033462721055591541310305237461677639391796202871661229311339927292576992783558440802743579643089651509669213377626814004591718605927251892857465128272429299743221146621403078143146272011328959715788302551777848677292834580100341285221091560751906703075942667406103838336934811353068264056268832606275342281415968025183883400565312983240409568682898650706545540604838720979759471407746146928305450010840781639825298808804585246110138707805155420782136023269722417173375473351071503162754929690476925160157709384523276867994056375984167346553297190682162246692664507187835039165851843487221842025137456471770909977892258793987367911675425741203758827569632916338459740194704648884342458231525465178503049571919408648162492033573162617632779991728755581265289107057149371075161750547049423470211463642758401372241215142990461444735137703313545430925243301177200313332906996620843003538473292071421375147641628895051893986506990421901064925626868752770479897277203539173234329507515530575799955678408307920473522415570200892638458105233602955549791157661578859606660991004097701401624744207609835583808743178232191877085208908416976536827495761163985802451830645333160320427047569382211205053004981851143562428246206631888089734954523070591107247403043806800203810320429388801304998085718152146343836245190715399146831030220419161788052003244510582576998735166094360682295288210402555366773301964203876128538241697007098563707652004850725186462294870303995723430022065016665284058353357519795515074845217623935446212085410688107322576178917465131907321680954345952914205445413245627985867602798801093308910344350460125846694677645833659751712952768516964902627293433504168441540267052517329283015782579332999044454940101165983537998978026573785786180922812085300838597525090523934614820928581166448803850412410867339692537770515559693974678288314761898984615886581186854396979312466869035415682820955663342765303719408397588747757430351946658722254279784593428090394806790633934819148749207182111028648824867199474711015990590658040491767069987718587930338809936677503823538863218043892829828114644908572232419429097457117046033622735741668142558093831540727787518944096156901201824023599408750167812692476096753154931453357416276795661981442262985384806290953555011844247494120605398710344194347019835209663846315258477032189007884035686251198926827021608071920754398217185074308687467837521794483690777234058922281607468616543634766148654356022084426881476682756804006417182122094686013675031434187223357825969999214610852123652894566601897817146944936234706585869511316084515386859225129508688822202939398303183752685388580852074339033455764820389771767708962676051805563317431090082282240620538560859253713533903305523627449311131585587876576559452400289000478906730804514093831585363423074163822794800980357921316935441809953385672562856598039470043274073690481389839467604765917592151691179535001677181168152656243696809253029810257293620336227706357579197380442661038213057011998162661903744461100961051173470037331250157402785389912272239389471715035089876601407757195214410797193283103503506422813130766816001215021491918718893318684839142090457060657490825901029244728751359341534743591534290771387729205212014050955578182603383927345003144091694494035940594049687434604648260571072141823458693666907652389402369892956909656446058832572381699492677752007759966682248094383089031910645119110009349633961084592983898073613424287929879856637842979387632616642963497906582743108546145585085788893566835642528903824449439907956718382216996783538728632727910614969412669055470150614400986491274655272271248436234928990788520340078349991094749691575724484357275449711341714123590186570015162453769433119105660400158124390679996799402929388185711695780219441684539465069636519417614003797896649563570183011711940815434838769813706625281138788173007453755992019361685147509834402106301507940920617623550135866893473469486933237393404247287494407562142687375233104938678998557584207208957850371531800593019520488718917145767653138653598634734999270588000560832808776572417353207101916810424408497893139416115444911728235994019723283200990280288819266572170547128912820125298992029598186261757294983342670809915389050481414703009091296370240057442201702625411869785881674475427440479928887858460025410692013547298858995556166468484637211635108304241129547107581984012025823035876435639333649608607196118102453024601006031286328509151468904146660709072994525322065073439036526879067288810995752989717072714120673111974470056343174733984573046666582855837790401453849475406752233988430748949197641706894782202319950724555407247874914946053002321376029734231028280227936805433727909262919432016972491264476331503383642232448117820783708317072026402074656083465073630707619199815346544483981534262421697101641897370896359848720670570936544547185827555984580060719400206541070944531319433358122932193957645549846646517988977742270866472595770671862766882418423064693162698963176151324358968102763771506106484629246922425353576920943878137652406046207382846599621538970600321548390429815109826479592683140276934566453829668698270060047934295896881967240009358502860860639855720324255738715705665208353289001836431154626650209500754738130485593442436403110955561945556896538299229844064739532039682981958647640361647588040340511606869954683007599144820667960990030764514485486645960819086984804966487419733316250088277158879584440370650607104189866597503181460141391332797581085418466770237060514843034303528566289915054179420503528834076692796104629922531267038006994092952974257290589481922064996980106411643616064951813216796313527240472986207154164073556554071138406735729243278522226665613049563842567937051449936757341808077405714453230702835785996479434236555243385792493157764507967265597479788845011288861974472264059696698420377331044380373692633532163656408521055461042657331262636401090700629678921111345586777838968102873783669811383582947805199587160204901488581848519829351172375022507303949324469562469585612032259234451918333664763913169806620700402245167220205376179477448689415416953476076748570507102093112740614548472598870015416234782832712585120086033108039583769403983972291119446569198074730846533705431485049013595057672967021718722813338177215827008860374479149491807694214209490431232657336748300954942416413986810365373009262357295845121193188682847296227360392760064806859179831458483568457164136550520769508820341560884111141803908742552186073436902463534650780728255979835740094376335585702489998361836603456939014481812823221083745240325768993345800222165305387214144605443683159291647942042044660275354967810262991458636718857201742425679828835020142197746705294137943274355100280673259316797094542584761167378172604958992960779464066941330554178848592127759819553711889865781753162482445425570450835542933478459118995630055759391658953358648552715659550341672794648457865814386860753513532601852687157582637532285455885818859899810825279415230264350907085162534341932556173710493931577640344750168659640155924090044769718457442575185232227928376469211494025888944762230412912294134678654405746884016445471393745975726684687182036172957294395565976375530605047224543544541996421067462625320625463942835434681744192661649506392020511751776316730518600454454247532452749421427449434068654281890551697240765726346651101365036147673314125155914356040999090741751000410255585675303865839703659540687672584858573401116559922526279174379157308880829756440018536109186066992849953492207719243238755004828429982740287348162040015253720890069762500574021968595743896890295404303078470666026076037206857459441044467509023856188670498871766264044114145433962905179190356382623841402387868637668663231639914145659307569966020064158633625913070618817614159411476010872589542084344746618588616531334038028579280194867052445435858137178240706255959036081705429839051473092828770897091231283714115560146318677954897861484551213310328117295332169563809341555185106483479830146497380357177777652534661923764535356417043179846414163709205744347747337190939827196085672822627256742675808224761143537474342529498707418498071536887798630691673683050405087803941867927725734727411633014375809423506481674094473141794753264649312761457530932938934058273877105972173389151856720262500059103491346113038722497084225124331966240655148328182517393298367415258657093313527563385863952874337393404112696748380566865493486712203438099004250907142635765755577771625177244651395615966061101836756071263524921031059940035621325758193975169068417716793309092343240560383993149440767220605201910102612738180604164898340569969530993141866901132493529846039567952375702144169238697029944951503094984904325115120947213820529418075463518595237480458704397738166059034215101204587440685339986876587108227033948221013130324408660960322882807194951919431721042215757531422871512339202868840035768239670571397967020658346491816930817151161130719911964848809287397495281735609037337906402840147872236676068223732115369747687726736004494470775466213028445890856275191623956311986411135505473117742031563563744602447806132556148257338013740923955684530660539234427331577473250599376830410797805052331919827053633638074908786584296441600091772678902454022701832221254181423586883294941522827104797657182321109634727918189407813366102848987124410683490610270978024990935190084354858431079010969261417501457309251795749611014590558930874698940100592157782864670195528887811985342394793984444964261662884839035190811543251171769510832653035038264373013691223567241112053013739147699179023790855352866876111731195597110984137790875558380772619398480108198012948046257765182721387143891574530758694542347103971744256830150802122280522042530142192621001937015539196285652609034158912445071669324346472537271114379980451082818571033670347458720299081462872424307918541867918029217666192631341520378088681924479785042268187126646220524975578045198536710060987144956212832156283463978956037987198104294335250804607818074369225681200569176205848175635074333199749972894437953703773338649154991387605226359329697817911140971522666455842991297548055851978344724184809538281683074230037079762674674569594349563993757969369106992201669489539455990743703471582593483784220317654254837205444161128811661490114768242727216221630706896857434694627880850211512460126334701720874879484048213363266593936532851733953323963209237170204197672881467133810628033532514085369840107692079384552379330796654138156638863994450424292339235799605077159269341575788504747431492617262478254455560079189207758499726488745192312302292118457876549109812264782533489447591517158918763788723970374234856722176017199403479925303846819534828989803711519108533721710385509790106632656528023942267089443877127535502739488634428206175757416285337587578092849381837727031041795033192518515672120897338673575806190366509011246527967313075351384420028295509147036695657477272102892757707370477657697997530730584333735870719713841377675829109358656517799354917864921964730815574297760215225348757934495886592921709539033751908616875457893254193421615154922792613752194045772227420248085867169004890572823727931444107957379079792823599550864085642289774201369868927419987571534735301073292897340981329875011781643668230875995623104704718363770456184153949332659798665447294830091179912752453814656773925659724236474646774162328641720604612417706580484293047606158840735794645165854779766868376127371028155679731007282869920109772466550313942774468270209381465699314739668896721354895823262463427760002665302136562997309507751646139901779761778488920047779659460501194438377004388780790168202982011034209627406607886674844535090487199581052844136144656999547299452327512430546195886742017597504886717057324938442506626208447970997593146496382859765857747566537395040837388622437899068255858082902538443799597307971961227008408527324221134774671008557741919303659206018574545311216730862977971301790333908727534137590336497595790381193703428320218708617861033191782919847861390253844440419767868549968330167851981743504973786075795829230374046586646609411710536649589563555599277962765312448796341900951384763815266368011934897114784787932159245499250548467124242769733225507880732690519226926834303899564626041266812114581622782949481039293556599501917892806584155432667392443439729876751046262631200297132864222033078103735517639641661037492491759353696133143687004966887126182218742518130848495041503425944294396517595765933254418640797769371177287735401737115750630669072251741227441861826588419938585353068172469258110501023139557490568621241270296762053754339756373210570394474310606228468496394148958696355999328718817451865234951047461636305662802171822646318612365336874905623404747405319186429141748459908008796599620502799158921533816785607453379994092691039356595910650373277331112367818537098582308122230121119240634607610939869213294959238755008848014195205882824439693578804125980159858599179693508506672089391035774363575879831816475528649742206634960957386989938402339622055428177843810813782890882389400303773627677030743014091756515708005332546974159077417706762540632954952365742334498779279663232790531577536729442525702035536071353768484959300471312351957922650915487592678283244624248598600806517908660178872055528052441877766366577415959078978620352221617987101312907881919521740611021468275558253793625197118795177554824213438451053473608725170297643819892324246192006852375347367517043706549243605074284419752488624408498761979680459006983913681685285879217642361187266858950822095241911460304447197873995638994329825186739647347401568110944273526880016871513931771971551454184616162489475046293630614302039722080462766737941975975845103964673011495156584290874022427104200198119921408989357194817915107453228514407560926525455020240886475924256639175451183433443423431783617292368052040335783350904149640825834151332051084062227928625036828603928456540569875677202744824264726906603049244020367014654157421957560551986041240603283687356999559034468629764460607470539488489694188072968503037768682953909805011839628148223020580661581823276158932934979331681323979447814745754725349511128990094397050643673527991234806065795427087941341029274357284408762488545515384663122645895269322654568030754699443982411589254019353280416631479365060186700072360065315659601754412601438627547067255880437719162600631048764280711891429237536324063873646522255996083891998714222250919095389332797222701048793093322437869361249834492900239006579852484301539906800246081215465619138660245020827974716332686764569927275699303821529884727566327717678358344086271697998248518815653490439783498534208158969430841631542010521551524767584388720668954301955019223903102370330824843843737116994295645835754304515436868172334804720160118088427700012145907732878921040230474949464385143862082310786709602309189469824943167194686346008040533904294116467919690438707853219023660016201088935197987449635935066080825751785387538642532107104295932210980444718555388635388835886241699751208695802573219035872985578043271831063179925269303374124106863129588344580370057800713087155872762357476547358598413652365214325870156645536894981162728077481298590419187107362458301759608882005593092470823286627421651490725793813005715751704662911546240322691384759395891563420611581530806807468917017474308582490256126797281169922099211235137349245645222185588330871296789094756429085264880675352674920458292502667888616074796445718927856849549410345733008506454852656022008162877454979463341021279811108874021000538854795712948718083393477934921306689506648301293332039759933568476398729915887962420945912209835134943859226117738843478180509032117348246509388981086526468132851295351990911118084514544944259866168937705428680286663959307206919629994201284806368906461972102331061415362219244884108151072920589647797355880819352783890036438504744173568639742389671277656012243119172138516692619939405571662337803439753833843761513373800046183779934761812455470631671384193935533469143743785606270748605597468775369685433483960562892639032903462502088059747339305190501093609936647296896124786558107752427649705416984911823694108302893611795674065949081774791947937539259231612232570589624499830227773680496830712627405775300857174684606972779277095542417037897222427620996506634997412782009534739082565063784665731584280892983987034818472858913998841490939820972023388775333431851462153186255074905040836681624833044068575774066298291160784214318740170527115720707729250055283568627442606403563017132705984913112385869782590907445792097118298018338849291377473094848426135246578609800377916834227535666925316334551927120443481251729680018432246339885622071927840621785257827625098960423025676772407476909869049975563655929528563777247190401122773046190688693572757713166319650288377144893889989776346240150836201606017421737558075307431667046274385168150076839785732915443302392914441778442536689100086882648321150215674499654538609613753330962573854248507515165504029731010914027530193451911400633859743008695230509154071457597974851227594280003157090522892805523383886020995560161529451402664817611969978289840736535270027928622514883557345600420838519814629381993623440870668213643595497294937059165908618023688972157297365745710399661869881878243134603160149690562384323024944414389199469766995389812940809070119230720641210857311777172856000738683468588991433238361395354247824124717655296407139770492540843403240042787167425340802959736083953950097637955676373874206204525903114843440341304315792462282728870424514636311343196484080234949722493843573812376784050153318400325933124017587666586349455569137327015167457909587738959157399697565581914001166759481312137995680894770187790757488533828656744243628604417092455844795943811086051091790841288747961477065368168554684723771760500856957103177353335920971586477732481707905494503594450879670695558957065442460913212875570030347279895329238000507056924233486158195731932250624160658623766391242956608276140594309477607235023388846965072604319545618581056788317629234020099559664671865182390600737952270411638630393180600425376979595149502969729092269453999423376429904614935670535351816649578636561785611880528425325985391088466391902933673813924877184531763093072437610713369249384605238535122296528578056807949700559913982370055465021639231205597995211478634456417363095713083272389418351749259915713006632661377022402204694861291258926345644826471576453287206545586941721625304211435427560750946886459568269572196201439400781370928054744927390593832728527948128597104238141171079541025438948450290154622318253789217335682507035824648650040706443505944400482700025460756217635680891252385401618370105035101365993710822843909905455383852864347207090881875463175021092769637411962758001259107109785036942469291931346252911514307408214646651187778382034144140398905750404640885052464582671766172546471472782648200818963487073208732613116135597838907984217959331017847304498024234839344898117387662877166593579432795535319297048342028214577963320483516703439129334406889341114081100894147216406684839910356967366165957604822623712512918961106843668599684617343869341559136301003478545667468191055401988127035996217646844172681834464543460485864820958212812866863424974730916812013847335497972817489996653966290733714879154090519571898305023960745213437490317384174281776891361514781808263025639853593602926864699795063547668246067930496465467662412505298705921556209396046795775948706530770396276174909180731197737565885258139253999003261278097431670221353029210499187234278071429218057744504912769675587826007543316439249475265935628156169064323037691536808466196947031032647813583638462786321139524513728435904847689330425298038528274718694957391516268255959351583085789033226986753474919863851155025155014463158837230418534811030514267776222698766882766591980444460652789576463906169474760210331931229657319002319035337491116908751884491992443019596924423609906384875717767703480410644761165555843362887488234607747510402335381454834039068520992603999788357167081711216843570831704508970402206183955948779548895125942476139370792583210471316237601748635498497948214433030466159971776361002944256088272838550651637604264711946599476308254030858591054423362828923846971752951902296170564897699568976298885033028035041897426087220708821443504548877484681136251592785685289162572147507454010732173659667841607766023991912238934947869430314804474641212899905476008126092632830107938409277658988870359452434349167022613417291244197189244901516177212271250519265970642109007803695100964846763993034197097601814091592112654533178202713556673683846915262067105339992562011479307239945461014525774756078311327356957089668565848209002859774961381475694571109817923000473401291829897589099414561171479229315864045193463670684307049528906573131133456654567976816810326281907030866636923751217818455721317087572238766014119070760895281728047903378556178448054996643968849251226529884689715328149394282808244030846088990235416181912281374649531576291601302414690463576338967121091507525351157543313210058050372356186776636496962384733709231005172955985136892530013298870634089812674748579302761171939846871505495315714883994131552987692184530665789897082118619547995836562544628559005891318519040909951665827340045433489151442959144652879064452348368103490094853798044854270721184313979518192914538760008701152480389648075572980771194695948362008830708564632591930369247490261405960102238014032402517357121527710870529992805239215738748558322543243140494648552895141161981286447143443596992260248508625191275026064338604816409213277273291960502825515596193706007023637609930940866059281731964051869556857389979911550616042886876998904970742474893934456391906981735202629994381785667465748767061595233202234262930583153972804482633407401918012680370102966615496238906419235119748595248590488010489457194422722840864357352162955971929749268456615703673577181174279992255356604010982078545373763757705786403778092578690863125713563190172918871559279965314704464561518858543606705877186931988189656468362038577225155487992391827132452884539318050850369396091874663849419728970458894763096925261788251895932085675406877151981433340698596211933413307092284161182617302746013450092058507156647175731414568642829273368444830917903042246100453780822470742010019419859456449632598369380254167676619103015128377864132952392711175611307502101990643656346363562777093276706035079534021397788335577499992622308231106962419560398345629126477166771996783350211229893503852658046422348040348495800871010689984909983684728544878149096883047161502754854171569998733354330987657158692853705808812145966965641938193328178951587529139189193262643974656976014925318364161810826689884183792829959215405212977055024597809515596688974596119650226766362138591348433980477509419583971567915623884634834629334111317661040193562896388271672032330454270391305998370487862526420872453441214673216558462125231769640588609415119853456378806271706143898975764709699026075528390481905045236263718883961737477357051929647902344943513431128209975370127980962157735322895001889860240588527136934051366119995464941694193332426519258524225968910399781909789216973588944455214423596011476618761066350273197230942977587149770944208628125633452462811397856060613526881962809742721741890874841190165404244205366158180877860526522567063962271366372939511488178613595446586257432456597251754559872184879811592415614872916218968341695104559650230821379493492344003409934721741673140185861199843936027921529182643536195894072850929332454022932555900879619591590020319538032780140218815540267605224007930305765540149673465243881731173203187384063363638736110682337538651011668895308328540560105997876973977016261373758464105738647818519114928419775934053548530069961368118976156427107493936143567611828499437911769635083771717405476319988330197541659519407255333614181692275133091804466849950869429260756118580970938686755717505705432497851708718757134906931797269314363085397425341299166719801225076982079524832623359857428373703509396785353357836869381136718312458831018323071153936810050204026650998489674239167264023284055824571621383962899383340871648217830908106662670066121095575919862551398670259089962869769592157757330981856166904499098613961103149221836263963670487756841715827075366781797770371695137871432813375333181827956433749982703307973846082969867357431380070981853418410788661601055155834470718845281328509491662080673352056776548001525163411405803476432090519920636017927099754777836229231910171326269038224184210123358673859641998868412843474319846110187365591688845157792572981023394827762505230533713340666880606465356655112820771650715581410811264682933659066783227771043803047399688290393770124645425719097321807730513438692713047118983657392434849860966939398401329052553781149688146582976416441630044216035356427726558594644919927297091520842249291944512230073798560030503962719279438727913623716859656571952722912714100086381266074654298657339982447395714220512057579206076716476424251660860386240492815884758565146308782993902153335123776148488158688312646628697619726596269077377801933065812155722332832373590293491394339210788782601905020656320189518038283229767339519417056981618107517342287471447546405605899051757217658586925252913096670392819454462271413295612036034040167923989013248910578108132463973214432350640695604768601550783121539662987624426475767998462509344295597585291588767373071968285975811890819337312837938195134409506353624793331962702957629121169775964855195653258255998516442481706198648735799143738380077859983875341482695371563118103365120899582789483490305542560048474762261109942845493520712486107273770233378088875920107610711539740033221451855083809511026190342735471860091554111927054319464142793675513127720929703770169234935633339719867213523020751757463818096828995051368234577301782277931574830293741899887538916285233566133848797794046615289625858685172020878619431048158257659513078110927562381062058994475421633642176598916509213600280744116773146961628533040768419146053577191935072262210381119666592016206885796267284846269181180175015741997299591785666015444874150717529855595470971407047834555870601458449640603663940260798810408819648337978473378054520897409201781315467132607071022415955003769682074792507319768435852465739467712448111693863789655650498011899892652690847832862100221453725056861082989883327591755812284139459736570059232794155017041365884820477246702620436509609102406970615986672499999829715591838027143902256502174245072077290486415481129161401640563056731030583715587549732685023611239015389446231316496996416073527384800976817779138894542914804448435211344053751948042986102846475651268375803413411142251456144425183493448843412144675257268785703209287440751505444323307353220504361409006488221108312133021639149820784017307646284535832824676038468759601465599313587450399520512299971263912149346061982719590263719422023649006719146937618537180036817843332190821595770849355296067818814506061285530208232326736712027377426616300122281982842438153439928206188578900235144592816814236807359390960075656220986021172306397049324328659624865440179228248350654963576626769562626653010327876486399290893938290695358079539504970531351592876144392804571954624341255969120959071585571965736070168218011637585201880841984037766903969749001968022241184730886078147130648828701515397047605681587833433013556216809902077893711244995410681602844164893776222781713324262122788971895413867049412967205271752909853745400252793229820902815364796034538484663250747889082443749832897051529966648844931649515628430719530241423948070606687161051093500095326130481056042782214871074806293081175277817262816824516441537492002687354872821687768856203170075688879603568860516288229798807104891937847779860084245541122491217184216462398998182754582609346322095911785916948869876496156515941525397275746709578850469494714082770808546144038191157374676488939095708687180116873196333304258740195970922558671833351728756665447945885397187302030559442650082057547472820100753231167406962684700608395256213403772347523094047813399023976639505489017410869591892629130535799623061452952969511379248740657609110072406866991120498308912479628588583433318672209970310377407369322037398071387467824510131921817936163787161935739448735507556820336263472027287453933757510847673241338881430504532762084777748461339200425076012313458697357117303713011097735899017838088800016247460213786619447026283687617858023999913180675047839700835524381539914230321555198887774759632054042253858841622961404177968278566325974346511703262044752125617716620401204047682798086700860238381738638192874143254856961034707418434482188147171147668417356921873605383808402804046490224963314742959188014333177564290069649708143134365811946003064510179520077558508112811501194683083378107157731971705294875787004202845831716648787570753292394968194137426021487435365185225556643298825116605079972219787134747421191410727046539729821257964043863653998147477013649267429242884645713890878142602765849067823902863733407962866137313262386413014623376577628223130864461914776847422924569733400776123089873405111601959136694031952390182215863593094506375444646101935257114364051030203230670244053824351230842861780162977942814072957056243712741260055202050723518918561789730271854060949915359004135199600743314628332734884582569311578947359945694229891965708455585644071456180796776133666038594296831707192753021685836465441995891315318767001480361256816999714569396082304199502377678298498391179066702689034394124944306275011351460570949225068959655307632539050555538340962161841219383935968903057614414480828517522024690019682156698001005142878509319169606024365168803334649077875349321789787383399182289723573816636548323656051571088762104033685016094492716040350430021987448147736993911504080891316673319378247552701973817697258541822677044569568818830089316722628984673005570758679636123709490602119096983644128817549273934220004887849227659195904608741442106114114245986707279166820213677378447429889849967230101046400402367810108349889621087313901099846861062964111403161489491992980419176672587436757044094651355755143902525850698233378392550216602668293426196155891721487906913014985386759174024991094952378621937587302183576942319014427017130318055349794866543114750007755580251152544896655928898419267134613191369934450822409472950446865118218796925712961801392378171492749938592485387697068979162678877526302997754476439721560385927071615781456543766510277833440776269684276841744083698804713897527118542891388180177218093989522263476190724291921800607384209106128517372061534560112091210821387044339186857168518745677494461129943354893364245592793297602204251055051092572862814482455069290337524397155386065988296714611177222341366797036787384858960935027415654245650339488718956355041663136860013556090918360835983800866645808132330712963306363568642061445034793155399856247826269113820460471444013092037697572051066195519850448094509777127360797483002911013754436357693100091359045076233263199976123030921332933075634868693102513232823660728926981823736251169999576264097736636239143730638717714584249544585835344635436704936247945461071881445650307869351078942506424651204769480956352980153040781148886006468514568654808274698846231608431770207974225383148901032963831520275711140130389498667199121895875732243767835072023855416922537673922374484491555967684969217960699694532247898925975183425222314324161464846508745476965618616141900050951007611459359535500158025255166204263992064471607607489694419285900886194863550137558309058321080421010703666925610768360138762727688407002750516908266501554500246260867135636936961051788618140936052585127718448454523290731244521247659626216480059753853043493750785899136443761995336416655630074949245440073965751467669907879789490089542664426385417599211503023428129821020268966364880666122248030662669192731963697683175043993327341267309877971919304520075405896139787161523721569042885364942790524472179283515775521359214408653256587599583605226224812738365518136793437405688693587315956084272584388524900078541923151798221480558692467080666259085429540021013874014137704653866964526956701038395366691829105945217005480834771068699597941845246676694863819718849051309342170938039754630518399083316431256188622416945279920933674282734676371855264916922833170281453479976929537983400450739866185464521448567312353566222217900438890032504007901833535112502638182035917690880885739377485204303539820818516709492817219963592410309514762940160359196867499802276166490059640587179663322117061430837057703453834015401721522878889326276316649450600186763493282985977421637304862032621723003919511536333402658879402061954767127262719282516178335497165294441081394627277235450398631811895739250652459469733351869121871968084349316351787869073846648709559726560245501394570266094828366098185082816399677452942177920745585329115446187498207776161734318443974379117651071799611374086977929070439549871690280493011819714985822126178004812033093301666693983507088051859546760081008106594994060749913508186654976281557753002769241624061541003453734246997416735469854288169126049265372398119524359737117364871809107114777329479783881972659009755011814943238223094619047083116914373570837688919717139592746603574028924215226632620653108390364539181096808290148490753418433963337259834471326588844382388291704180550573198121042755606000202155756521475051357402713990671815733653495209222741788962673089059793770502860502330412927383994120730531684293354376996217932874415529509207904717803767625939602889284600859363451688400723980036807561046684588082341048606419857258299810791931356732608752273822446047973613730811480825248034697101545504588915439688033331562490674064921882188936041076685960619183195110385364436906609556381313068728286936165849163853232291592459705783981975973897058046198331973033423790289353219146825935811184621984555734775510451270330549714081762175416519226135227568870554543825472201290520453170179753560486389324316984144382718301163226281594486776385756062791016712858085752773128883815613631431754785985914220073075665868251054659188341038820706448168026598549397566265213832243171660618271867100373728184547374720798202874184730375419653036608777791542264740036660279830993861637079765922127913953758513654125607026701804736906065682899368136300103296334314829254051636176855060005796186233045325626847330998671185689665123773154091923784335658693323597717789074280134645594218391568427660193012161412843356111840321112320982256242589655881847930814361126618119932776004345559283377733789109704271574776465574686280121770450189086346640814037688148597068879887467978492975945982679269888297962675065910733691538568848788230100607103002619522316427887985314784476002488047861575919599174303315211275437488946683505743171600993067736351807405170994582705391140879477114362379716022612860172936749484859399081717651415186292162702541335143910499471588088452525937121024337593458863382089421737248152615545623827620159808341583752674311299196435667544922499092361303888117586508136055339554793977182498849417846800337754842844337644542708416101961079488396791477784393802740208614796605029944498760843998748449762161468929879478052218754244970725789731094383008177425313266396861628347243739225112990270258606600038349029554366482967554355704362617735376343688089461643538898354994442167616297225535521155089641253991307085951982592965547519054964471358008337630302657822522027489849129840275668114422160013597394583755086798321333176526710823979845793946935786342589439907319891536718272866063144293433843652427367592343429730149465163143960435333162552635823132535395175573769603940771311811563592320337513348850814182212073087040695816413353615287220315374093654542862112655058156276651282280525518083024562914755729723680845259303667386499850823588808778942177421961603510864639526140385134025524288155606304925220917820265247654064006903435790438937912990127287653690231253047967197660079483662890113032983522838922592689889178582916015068504933494846664467965121076303012468848142116209742809058522582952451735833620866698731797049785061598917752892564505616724529035908556014280028169563327809565309668861244042070255835702381061258517814684515944232086222237486739633243809189048355837033871011934192824537442969338115712154397052113912311847153058515418036303196066806210799546223165267889895800334657060258509592294022314987215236373914602355959642158261035476557121500642417447500769276642820653209325370531654399989772566569478569294652245547549008070742677918190977380951098845446692414212647787885692337853967117295417306689569973381252496417665334982530247928336863062731309062385373517068302888966781614955744226938632888533286244776343813016612357857192091964612129919829384568878448765947825003441743924406616093325062257324489755428980372276726187759040358998135147292067208405981782485749756835846431643938205296439338523956190241473674525237361388070159957531437618622864388704285262890126580497114466727603504431295575173420080533098324662605001812264988561985966470817171145343100559894723166394210749986695423139936038522826153728411274111485389687204730400428712483678992364190933393936692478193628165325164175543985256589908023368648729738296607509313909191154416433741791837531314415702880304459424657458103087872209563706857072863295697756297057354146188493010110153696305894056229444703753644302033265646437664131178440030886166016405691068824300221552743346975328422538031991459440222950133818059296408122293677362083407404588277517671996863603326502428199655006581354563238201007299633523204661566774084564883129528001235396422949208201597714357834964425984884747714757852840087188863715597929083445225315542251457873305467155013875027216714822797575611456841079543028335108615106989516275999552742186962360717308510421350918270126042888849549041816928570500497905762254843923801929346320879998767437649903412906800644633851166978922070220696460850885630862054117485014177538944217151761520315140226917154177434810126114335014686978788950426347658902969475804665310612984014944280232523714936138732096250103895579325484093626602248035362242551391218505600317511941525646368752750528802123163546305064995686034668939878482627944395845437470080629070346017421468362558219427876327761870954570842650460552878069622374687925557334482527990187169868758412226039749617413491409607874086608098917113288698891671476853961850746618308067249216387323179808713994737998205802070870332295082409606203058465426314879356821895572448483613962458687454384533505336190867882303029550644558837684969246331864059270990722190932014289573156771145182767241184891947582516066669860789477755221366930983708224654342097111399918923956919937509610304934046147042582696318693206332825581759200436006041896634323667837306888923162965787227759749112683047018762082877583232934960889041029968870932447571166093609535601287365365063356761375809128132832202571732134595005669329080518789307116406283708320180140359189835468070461247133901755777600405880952702478420358376226484015826871535873564622213964432536235527142814788809507632592150600586636734235512703802709070688759738245969366099899811156373641692349627842992185873267144749986698668843453640766114879965957650409017565434275170440342062158506204418873011645003432520751344808476088769712921848612323657504687423935772332322046535751939596065633730854049625275571278724123003107598005885995524100309743351330300197446697533016217587229444303339180395333930729420424645928529958537980105040534098389832861100817045134195634914454512877268034412652554422772649239189429049320597335501785477151872694764110251294101724801890760819560790208387243170523296433904301759913770127042648846911410011271882686546229980143730130905068639382076641753287931688698952545412805643969129361521002943233569406352891106079921614212634238469672550780552688925501186458238198403586730000393596795820274409028840741499875276451145516792661859266132197163151759059393262983408890884453588634919035218693999768523467221999330910015093977439784170627487858467418642731140401586792380471855099936572218095489115485861841711768463313177242958050806254662930526110512848798065618630479690881101582968112549936470026637577113952175915619600842174013359488588570879628020986423887121326764976647846341287600381453400209848488320060491060160857144871832553784622396957085648528303961102754191718713960387054099625965545370212766733950336479971650242691959465194899630832783140058280885821552670547451883053917596163776966065513780343597243473525268263829850835998283278308705478212752091926929245368058660790831724572572962331186115227684944518152840548414599076009531584201964762838444893514030289728971834948336152209384758388472488266995129062335336795981670383956785043150744905292170890728461900142677624998133984363690545830807362419030026005302361367032740425689794209339771221356638833422504924378284194672545361766893270180738983138966635808012575978932296817752654515909756256431874599267380139690938116936145105702092557395864476195038890787136305073558484545782657750782409109925827105858328392859886875020121029666813000441235044214410759272156303055193441105638439051796739244656576980835535371739675993803962252604972645754185780712976499597531533969979002409598086896569682223591949572023947286981871217509241000783644736472028665425908481915268358849744995819941456693521371683445107459086254029429966875220585531735034205165824563145640396603926983497667580030244117349538537677575145277439691688502605994393459012383925173624703530433233441200567391350137450707882248030480120045575721645672552103190549730669113058366660345912573939784636972404057859919793041524012771695791841817313266303208292308332589402708003682872397776587997358982293434031252577669942988608817518523963367126828084795070041445603095067538459930492775360981572013790382687757678944600623882762733107710521718151888314613729488615342660098985496992070474127413384477300018040554622357493957327641806113141212212991392612675157600982290377446184523893366959994108666504576237897576440938474259389649396183587180142299181148108110720111067938776533580631511099406118116090538344943212508584514981851574818979230447641085642878885276246144618913321175951679771871424392676746582860331583799317608390171427889617012241393253466863843916964124393346717138916483294383400050187966627040314999104951064551829586454612247567009292292502614014669794945531207494637701355668954627035410973673389637950154975327341412284569179773367754868301887560847885603646939762277843569583150281197364784533130397952202753666119191197966303314352599403945706902935799455613929480801686962012699843420471446304814179842259673456080343351871905306535809664081223262867928303146648017869658331126845588808857466960052243919939152273131077579745513434276452733617725037922634260064223893201893277194670241184413722002015169618642732171013596857985890146904364166189500163012635968795946320345800396022272364146478848726407372564875691869365232676321919712282774046087576367796178787879603997983801147126441420326558069998720804226817132822026530306041480209529447913738955082395446998307702015083414162005069703075299167998057871236354148602054800820794768157356286241839225586938058365270880514241139390488517744628613624042614409232909483132458469757718467155750544785579343016409563227107415452602642152392122783365430487424936585652821493077036444494924832542597570538677523720326129113029138635285444208656780620471349163474806532434687875427856685945660997316249879665188263548558419066536093199925086091920906771006287373859703103878559832680982014185176649334774209317684703734085319632818169397099718630116925632237829129341484041921989690038594565955772579793608261144642936669125563495457580361088210786415054743838095531321867677212114333971497754724154141292558251615808680628902893441173620111497742696349450497356740155643118853864086518538062811663060434265422522975912149431139556781769046769972986356609029482245349281369812861332538822979825542243255991524796200837029528258157955074770516276178013050313649122348084950033164234890989143908509343716261072605252357797991066669564400759580718757628551477340684450958013967299087567144925974094871959803539530998107847921339316462089982450614806687272621998234353352000964279661065551651504907122098989586686675070982567880309185280885830495947159582389656818201919098305250335471009991727537146304241844405131602442324928555738641546134258608015628575587099454695262219468620289373610956775465762005386822706445739170283028012472788292973267040833593471886901110995669445952971548179839723075493928821360568327578582115953775164266170328480162436939110954621417102901789913866972733445523226238467299509504272880917700081954258433887620712973265847480283179872574360756109979563028187273580415595649853671101127475008957033578123935298025730642232710548435411707824938684163178432806335136895858888281927023160192852934697558639913021331888303928936070193176344118717306124617537586081973135291915126152127402449301727611467702266056897772636351878942067104443722953632738918863920872097692606395048111254322275335306606391124832971482688092621144626427513327257315815710803251034853319364937124801875887593264986267451750384119012268551582879221468805046102020549818967136752130051578608315802801890125344327716629805794062048098309735923278931333012624539679400731662266396431378477512236635933711488843139684980149640613983685864240976743623719432302644168620245763362838008544866296653753189174693964761902255979375887633217854889015493982503672746893763021260132449717513284192097965287790138056576092999400289000276985135414182636648884033699268502077174826490755189591573179015876258309795671610091757167890421002950880964787766853447619419998717795496269039808764021655280892771235516676868902106769038051110029202821663141776371592792009306110151534224455901094485417380537304907966684685599666181675698295781857074403903629595852756628050810544013170005116826694673397500909933603950972759278232587378310927503993596702338120878226134640927703623467981661460688997955242401008040845793040675400187548101780779311484122991910301913722489612700768972576113112063494598127096759929903208897810704916659619694364949196019987098675280436977634346886087509169446062599528389069213224859577881330845723236216098331712291351681138463943687836496501694222165141428819277002028864263159863197867383612094697937115457004785099020968585844809454265960441700902374301117091775079284325486009443709759172589264797332944274994356651066313654485643874601151292506976953331018050861789903456618751759327047658359095337594018200510939878774559291648219638748457092699865157006353740553855721054731923874543858573974630983813884947008853252105792781468452487334791340640656115523958536575548359928332267339701163542350609026857353898971240626150923672762286483858778555524749463813724067044620491649960691206381138827839776342690943001065366519730793847781837170914218223421532671956729313099671010256535258623240543966348820862292706184035764155331656396390943311892012211819905805331459540720074926466481703080307511969129044592291339134216672157382536432310387296002702493638073385722872652849694785154827853838516769842324931419604994631365336620764710754924549962691827221200946067513949164792059446928576538678016436936678022522975652985254111551377400710254341363575323211732088020486801744608551020045723163486152013931070696980867444625026102357317402347808235046344961278837946782132231687198192513279501471002730627743406992663292248691746091182976491368594490512668897400677126287796157320446809626894628754294322124886942965811153039436408071009883111092829113649127047177951993894391882991187553359676319376738538124790083225908854120815181061098870810123832157994733997817511504723621881451387581577384860531247390598318844842079868700344839718144383780185372237496970908221360734773526349324604196195921102576136733376144533962344001670227883816244187622874320722543605824232633538213915418287335594526225865798106245920946091531281661484812204647894291614102992420069561662070808319100677642751805689457551381385157091525571628229923355726045597675928598613054413465121030389656377834169483545320919334821945202423322855422182054014868223859702321874221898847487604112112642525044917579156908924747084723586022159929058921183185552107378934866321639535880444981589715290839854394699791507646467065114595059408785603093931946587288155284394010243409181731991993851960698425224454516318040567261356269063766062142453689715098948598630856119562768009643989109151320439257502832051338803163901428016478766018943503280843550627047601587799660632148613916461003813422981162734859999593570370706013733646138361758149853195002016284049735871368527766527036202701474446695198318840269202283210202853213299800925722782034846840560315845223023510234454912088078897150795147319184158846164724565193917374713866143130194229553479920575161461786881660336509102506939795647543644683052801785092512448249785001063428132055268329906553542572633157711729803729386462097364273095287190479702051399267588080576983083845110961182833512722285288018263073368096516986975915698554488347660247240873876415859709334317493040382738195753771168281244643419186323594597685681237162947314546176845038898525261981712737022745901351099525422909319640092212454003256081580341530741102700951439202545727655243436454102453072767150755823317025373763343584402819904044650433712821407664268733313118168800760434571854135172594657713888608605318315310581515155222845705930085909814297812199212400045815504833272558402717525525575450616739442163749696042986833416617756938700555297731503596617730846099014279626616859084487877415818782820989840877555882475837795270371072497023211628673325095533287119051175391229260367323676233912271791504692383751471207446540055867144263579923622652156187148444138766113511034307495413193407662052717617513248727412207960363296018720614511998405583429031396278046298543400959963610209787500104046718273687996958255052629061112702031395398076244175245265015967777374931386354641142099049565507173700432909847100890818159320554356221337276159357111347572664968794169486045683282427795881805029345779751589727870713472936556002984991570091428563499426694927338823147540679985296585214870523644484796891054790263797546573872176298020710908191795068110485975765901653648387569055478379758330399385862243886912214373659305384170830759948852195666276673870778039032439513095837968463486048267296459794868247713058398661018252215767278197489127505781807028747733854744374761375555810524314705126832040262083425743198334833310499486034801702010429852236115583341240218087759398965387944500797653768619508000906776531111762027600237516634022626226155370724219631719923666184966214690978882366812671764683962456519005530744401029116376799038208210875804624498778934363339610719815602801221353702901468228597647073345427569087692197396784677184850977582357665013154352920456072370242985589666794414273885031554374999492078145777999279875843926945372844414149630249795702315918546808917617682523621744707448734652292121349948018109947970835922879572418195315807883142487739251189657296415688866069962540339953401388136888795131684233995772322921186107962204259526193374015876687122845929469425202759867346130687030069283831467560951665647560581088542642198162768874488460509821061185310995633014201323575140056404425102982269237237736535665055898470709057778676866310562891884944063489925483256305065597534610520116906269641711187283512300912287583192216920347489005488522774650326517887347830302923637694117803172212038519287954849466903911993177320002844344690660761892926855882764807078633924659280801547204769190081850079004932321153657230121344135358068261757122606545457805405017138531265344979962205774447684621478425297764519694469599934508851638750175380203229734554406636481131712425012586875005436793770536197652118358781924835404696274967833627300214687378302687887937844706105187372569925685030391976959128685483387823480417233582052579842853022379059565391740451456034339347119721010480550751930243560857408850656827270234025954108771927269796012478593862019369581056883507091667417851600565054404786322910293389994217400479426175021715235925750497368614585966819594813079222380093294453091243257875623432992335661422396400640837180328982075806034526345174379253604099154897153815878899626691126375431883899100621573749439436245175847677143005987169278453665911981603919053932864600778171627353761709837986239868208041416134085762909783156864898718817171918224548046947247991685898771213975706204202858348355968950063322955523108967434322135877611095743497431987469777368481397887838810732898844386487169124337886686547955789836477045457643332734381272430705600496172051688590405012840567561468297926572946844628034827943217621503804959798016161537257311147762567120804838995796580623311413339350295443839622695337172759583967719631524453354278210326750648263915082859276182024519289691096905583587286777103412481301955280928102187826837739711257174919281593391859362503483798391556280672244560565952767902642082590298147047055505863537990441113420247003795991057164242749806998691473162554309013194788284039073114377513538084498699971491293264188052515537826074855584860752742142464438600492288426338153180533093024708707803039317478531931383170487318556859848707676735153680213050109682045858811050376389014553307352053575227673907621902805290493206558943750752981419012524485595497495116382609292424962059606346016436037807440411503615563563271794239646136074214137013541524365146170094955292704244240197395596296113996274930083310798697793998484321005734749056804421381647414222710913699053823982498406271663020458967358207563740137641596118730917087495689395080772959564239215374972739136633921816970403325817974862427922747402752171022974226247925735001523099381114927872254212578269478835558413753057339943109625270670246798108963314273165754794014114541655441044605157635540883328117680472227505565409754721493977295905683104857864715993073396934403030567913946218772601129151322621040723063917711445022352019522546171228515354990598178027948566648486404516666858331994568312996206518578175808872664968817565749484034611095656776281364959237134275479148086890798667163860754809615303141771163209268625814234672142569105933275365015748020573556112974036838015728183279388457562081420350680248729111439469665320068758031857441894377463403570514460776391661774287002038836336527266692298696005842678317370224451719463989326542721042611491942514735340113989906818431138748605147166152543337730868598311135268627583528433389451150977038072138518757991434774710167787367519820952119116291667980009141361895558639855719839176687343542099227352074363947488768731382724560464314753208536257580691695101177582298987605586647681135315611007802436380536046818103068783902353966170742163017959780156580957514496786103151611772423396753228232191329607935582153345396016688606881410143069066817905390906758593125511812517481071648076533599894555741185707327942022502166746853241003296873508776634494793630808233463934795880222004778587628937886848916533411711237784728675477560305836182123417798653519625018107245709422750855354705962662991377937446111042268983880670331317078799353629677377076284106004340234110837213805031522508463720075178879317794302058247843929431855583132280785720246427708601719287193462256808635664813809653114284360652407577847422087753013268903769416989041640669716976049871364438914999736679812782928584921847414641632426778680643534453869813189737778812664038634199364808303162874527340483259268637742185920228522038222192505045248622191878818169576487039330573254387055194649982182452341646976556983774171190746941124838386022894093003548182806860506447239164105569688577880080070471023795114448766340000355746921416740603579812952355801477071487343234321482561448183735517307216981342975860013214119776691681962532106305458837074123919823364334249916163244844630535017820770525480853191383592157479994914623376974612736858017515246618680952655086803855009399410156947389921034248974603111866564721558830612042413846953490829315051104409001373555806004174981658490209934004554391711224645594204649213053355349094470299879252671466511646651843083146881889039740455156057562960456081944222159294254042017257047945855017981245412013258613848395769901793828109947392593055799031264118538642135208050338413699775152529254112870843495157505197104480297155016111971151187589793072360720302192806803939087092618873232025720968761369028027875891550546986035680281911964756168837205291900531987050476271742694742802518781988085988538197252129656910983465294376670179667350112745730074767856842419696080367995653309896785700884596383668723333039899591235351829083985383595786291537766056447956103584636309257469778434670494761168685058427985832351672462161099190943297557748992828639590720334833074943327549359711158796838283700790606531155679108093153443679994297338392132774488977458671561058243501902756161472927798816699642278960751057511353932544782624596322212590400288876735435125385219354879966837854382093728504468231163325242835495729985441846925667245368070065222187061681633761153441922721937687687486311337385710859843717720285385230805097222534341487427521619570102135975575737336584233477916645914123247793887904367520486362657789173748379651287380958550804842576385634220686126298204425074148304482396029862344033574069032301335016308021539172926649558165279773198896285156825265628161391213112081251940698445465129990131534858035515089415131967315114931051543417747114262699183745905434246883941103897831610304011207862277980166926646292166985102876931632557900881186978012726008914176754776355278337989802647002727148650578005151243440627152763874067297370411162257260243287586445039719195057986610420941316851858446641715740301336353806801655189797155125427084912113134753481306298740411659475806070859459354190129060424987390440528557390714941333964368624806446003010452903446628929756016985026839134134758303303756166382457610828247414487492361422622353773301493938829730089419294823452212834429935447639916606954809072503125544019787187941398427859909263975460488384698491919547913190619509367658746378337935015638513576120426836438577718215718197809479516130762631736526034747877263368946182247846314107565893103211725337831640968783199590111982184101302779178186911030503865150936969428531318673305352399150778787056580978874208857267087937474864697139733278579149446788215305179298914802168809585764387123842291280614147366104999862642491613653175414951640699937528092627837257823797205860470962133911504741932865581222466122438909640707826468235175427491820450078153245069254709366032968438315405760288649098855958292554643008192236228253973366144227136687740732817343750458575522161259234029862546824009678582270575031316907841741084303565461120628506874180271572086618857959289541937762995707635764054351448518045559196108854031955913578828934699744448779613136295946988857419036889244311237700497902861249528647495356304241864124351888438077283434743373188379700011816723538548883808783497788812545099846945332215307157951573294445037233742934123654592435143608324162745385400364791722263165695346650130320915033682800408881318861237707525192947300562094361153922293222085264580423170059195329885390503946161149147593986735820118292272783729983931559345543147156382931191509160804665392175375568532643123122402932648381917478481242266771393925473965595048973413443784514108546178230819825044144971158883778577951713166756138047203214517424727931190731834548757935109746437065325968523970286607707536586734113743738115134624529248265944949854189229803826548195224203959177876241631294319621670432722000891658646177445820239310488668486911333069390560415219296355675707707339920362738270461115339345815353234029623694095804882923803834714040255250613627729731310679876013533476543139003464497847912133388283523859258399668736249233194400581757240152154503078949496467163086487123923954759206510431721251830048057163852580879340612036354139199488434256353292890620856698470083617739007502795555539754582736258389709455933148212678270935015706513935459454772791846944674304332701351921069690715798387665700477578331472050110509098005361694448702857001712714538723809158552303691744292171251306786028338271186843005000617141690298000173354607231939228176431927515694618140320614704802692765425204185105051904129545160933262029895284364974655690272738396052409665227479298255463985871694655464989484660962793361527610519874536195861820316436210850369947402999805504778374897577805393927982238989601219547785956104062667936117621184212977342017865694188532511132857019019148366586310205319692737261601850817457113912124170258187526078549168361838789781748309368888963348953699467471543194343124519714609279699733505662548265261064751577525448880180700442481198461486829154337873923699576093684488132554616415584846083356237950600336653072853388681208068791652423345742960947871023761247674135019938164760389940050926959712590886557729346452777890230437952910345160519069459658400374687075588777090713546906113193836271893626834576349603794493012293900937551052256969582382899174613346148665912705736007936075352503667855738361225241249805818321498873086184597073661456557332248413460368098101296413827324541834343915643300246797763543858641417406118404944490976495790815985903806161384071653051033960397679903410070076474623289911047799068143074815724806376149258233632352425630211542015486156279098945332531176000271235999713576099881900058232124759644608254897054679476103030397428337715290603305891353566765431712145698142331382239141894351757611461889718900399013666001765407931462300366815786638066784999355670807193262619990418200976425628945504355801132043556311470251292990739819403007037959433300408585965975900944002479606546594148009166116433054196555509211402035428725946965326779794648059758635377570796606499717090231068897413252310620077956850259242721402840964780796019523150718389071756057931249467596344888620951088306134510199216551890103771238310796457541993283005924403226106055802166742436353905960418554760785766199502077396436056166706375771167161573513743928509569652519756166347257503840799009978055608192058504785841490781103031108423891829336771914870874885406629467774366415212940380383070398702224459057892807345986624493367021198876612667388106676906406176268898748939696775164532556207320168693165648561565252932142537842625002916880402757312388126008515414602236209565180581641025855649236401103843588277806766601207310636993371467544380326420878078764082769276515751404846063068832778007261642593412321854629233896807751570351008645645676631821263208017524484295343523627879338087007049435287333982683082728716019942873539078603652684201887320705390098086897892726605594374658948132730537659493611842064519350470318373613839071233055428533210952923193604435997182555731445200446549178184049149204237271924966552792334600939300590790632860617365291651809351227460126299995817739520653498309083676420622298036992984855643043092284001855118778711954098990201689312512563468613471782645488897738801689778997715488871760108328757359435830689577236960618937750418764692021219126808034563233355748029246520159541376975129577978085444403308956055311138329636115647158176562322759356414913659743323960260964712867876594292411532625038686755544143241228753533135584602003950833924147734152831710041828310262547726067165856385081599924558998866226261547950356610663625524158641571973581890673315668672677515868964766080374469068651376667125303548799516340993874777632776264770226778671408492219709447571008329287947271925510618099756091283799189856350883660912533492594320549357324188078472795966632059531406114280494015287611910164757932792606436525732127360287409581458828086684365589183821143759372652512945949689309814444037177100012975080126370661059791825842898896683382562658915791142012278093804917508728135639543730751084987512898115322603076214350759324176447195024279781734457316749382670076110270499009349054775566334493423346797984718231848848940954840397681311683168033246764456311150406635205720643548713406575599692968662289441850406011464456351173695219353694919556905453621816124431487506187014739237369124055333161612905974540702357114158860405532765201377821885973914151298644232469813443912978940026658587460387122693211142899407571977021314917077535118914365321412709349874957026432446005566071914135861834181999736629334911100870664020408097551888023946424043620558244016206754489376346783895977912123823552834566720576405739576285018052248717166731228234559827820526786546044323105720241353277927451067143321540200459441438063310119723915421090305328739229902757319268795983709422755367031866657105378884262748438817419344240083810918990349123270853202842859741906792825214051614835991940144654022773094682825152880738827496560481809163823090997561759348628332350247362579726189888417366960970959538939715546413112394010348796707728460231293753407002549924675349862117263578026001633841657892518654409402534325792219577135024911409934401295044363094804601602536916643830732446090483498048293077562113057352030461651886552300857822830842549124967238925358861846075192872765134330693025865088874628401890928425908478516531410011066876236402323244256577127067955259799657753352229068984231111243569102037079452970616316661040441762671034448514225094224471419229730812435822188561206398591273797339521635269046664086839375532848091209425524216121911532185948593186648780001454839083057014550839940427450835720856444942261881372672881887226557731623723460389220085968503889398408343990830469017365239252885577898622649860158120194130141521822428507840880456161742547777537263323586727001989014477329310822472277244304441424576337815773575618421885900950828186210039388310105038893178295416854448189587122699962434126709794562199218873667784957611640301068837123666045440295088782738575989413885999841205377729632740520879794110097072467831414986959062968047486465369460205502681216642489036643257986259961568452193762608945883112875668104783634123677550300663725194343390124770015275628114445432466380732094306467138203313078698317079760412290145479251464396423393750285843855107300368443930715235107515329156403399611747381008606107368111583775978113449782624702217853117077655218198948198510310837387763207162228123246372518710534824123838798739486060171976711780182849747306413387226032306902214195098766791076624892909308314249360271817541388834693191611445032837538517583569764359758983141566793734947106139885242476077133666122317217249479134691232729156164869290384345697872836638192196084824396334997923728474468126044834376017796049813043031864251987041424475512877706481867297708800374741336623832112610085191705404309392498586085943533853507870722212350555644546180725224840530845395627206409119984724318194506101071421714681143532265357633143495811876788782021797821199567995922750856811167836562819532217052864247721300131811971360645263522540450246459225284960130954454495131745404817732788171663770593102968783868902009879487495076939075970470668558356178982616237502365092048372852866693858062285729190637688419291370954820972012081227502530326136147445667699919849692199958690997625814616612040229800177775182022410338236978011763102466029433948908621610531548349704868079807416684438203832499028394843379014326214912185205357640901877339394973951665545617798659091197200694422590320794298178537138342660991013973904299586009309150290477423770872476681054287539389782716951510795647944380832513852248040598703185857236990604913675113657233857277541720278118433052772320809193448571857440661256669422383114175338081207987785763441921629313790933452580688236327986043517282107984299512231121743014183384877526301267264504269876970685580710424724133129204115247615945502696044466848516134382767356823074323242845872898677621877438189712479760914435271128310384791534521427852823215050121756047594170337589492029638722271013157373938785467483163556770084553332615316201306750725216061434893461670739345309556257192052714080309973265632799547859802854369320558950121588889018046413986273790740580087186617231240325007636199995845680292702432200007746042552858937240290823461383681960468629718851936649725733282868108964579297438235868469053236354381562189212593744401530935426980468041908451088778958249607666562749351035956777827484760888928244699331278202527753511138796946946619675701086139470238327716587883088673859642359433416330280691122336849224618021919794329462345523395777226197008146346538926152299574407379744993245194129506907168554118419485844998003682261059565214857247641680510220428210348664013391656127393989101441385241948508736340146790372608548262499508920803767500678011582686722027335372517157853840447091487807753543635833648516433256823341587859352067463133711839082675301028284922960342994595532491328162037042459524507613861678019062528174236299848580454002736020883746979479847903252880191444948329471503359795694348078551753514516427584362978071845407224354922132665034642943580749929871244045117247705159045810973037865203528721355861432799188464271320475847532451906835949868025521370505175566474738194359275314741510600841394222506795556141376045553245564557131379519903692171507466934500590377193643949771999082955582139851698634407601965842911788604580136619064576328127661913322860870209695173333520206013711167709071290781183563451510009966986265494521592786833513160874423993487031299455438160988935453150104416577402335955248368437929302322013372058730395629030696084281082980600754866461767417964847557249458673858197385480668325606859543801929524516733004225914428028566587993941269042685691488670746307634684661840705047886361916769241782318196883554982047505617328839763401217161765995860524295969603049496252216923726769255671310746141722311051345186896205250326309921549085181134728456258087720913000229628397448511964877208739028810948953517454725968696442614219513516640163470583789624787463181380191338189720152620238863258699291500873839822936678275810474902539245554448050903913746691867074196638198691546152559374706883734608442465206020876126158212353914175025542958149309666997887094285172523564299245038816107932738736958688724805731890574707205855640785012691882561810376874623837470107563349085538080852288091944030110749917300680186723858638794007658747815975862385367445573214116940047002690598066554722911226875079371270801864400956482231767286525953738740046635515378420855402590515003939242598144855649699828869390225010597915240962741584363231325979791095116322387851078089099931607267907219002194179659232742040931443751354444646592642743601908464620917690933970766501613677949678477124480009442783103720802589081200800983185724178399649286114975447137425258784203034903505489978231261429354164578982461353216581365816004298894693563636696466181269406828820942733231074561357065438805089372616077797809930126281351996060569789693405129654434811940739877436415351104717523903529209950518478606528084137172003132106081608874910059607279145767020124002102456088604005768191063300159397824677542301751993666451258064446136132667643970025579889606135038117685975046462282884538755987631672651882907714933014830744438388625840788437373427269563167065066721437874494649501113967108683871634241915433935767590309747262167693978650044163094360294451116243262050053792861741215518530902552763955064924643171550580980805673595321587332733886306383732641517686782142098623123383958647988787358491344826832002130428663840633090465021423484074314757636253174517149861538937527589796168268749481564556335159681561811597041108335740561224758118835004908110324530300903872084351357955025934678722031118793893210374687734987776705110844195742844848672547983233937213000828609365915202927298169302279998222218790119650834260726844835609794529922360346486622606308446613200040398826796882978513168847348269062521096973779213703593185749822473042821341923123950358979667370568968390376796334234477345481279233242951675982503081183561297287429591196355258871115318635595992281700999568685628080271347751948345453766889882559475552390475946598981166285177741470745309819077246997956259315749488755342223913692865949597992605465908937704103875045876072764199729451678000420414118552449957283904281329708646223491840704122638838983276616437817107159877049629795239338848653905334180522011579036459891572847997690245862096561610946662036118028248684997249860636744622621253960658555492864737980748346638763974158161355301965680888766871990459844730725606151756468955536206980051508918468505807138639307509895951447773187934738310550750268609227998571960729209454294251109018098692234814445042153338117797039683893124513741401559932979620879498492754697558010653339030041721834499134165672516901506467913856561674645385262970173057332988693922099812854939722367272542372630338453585905704498381956619106784733138673640126188619933065523636547559697454159049059334854887441855358618537559026782001174535137376129043466757470704774828481793210730796258132889534502267233026861620287350168799822838954402721722818265995424681280669670880322475790560021611918366507173031969905187064515871441258101078234699233491825482894001349642548427807428741578165471640048930008767239880590595746331786324760785096849810282935430277859838056015316230125263129303171827932521476053013027279287689916315100297438704177977002742987224259345562535701569136937437189407498436428771525272708335051154930660280829444429414149992658563446707212121098519865921317708640683709304888778997491237526886302342892315570002585863402682636002910346514775311767345420594057947415944460982550906238185605553902998495903641843138565684550910238878362578810984549826228283518631355459214546468002033305175767207625083723998670884919091488316023103581813307088404575594551503186135434954535392633250779571016207428819517677409053847153599560543828892969445121964191868562160763983368615433631145427845292509892886562193924836082942958322734863021298537961467209933954678978423361214369054398219517472180035910206123680426908632680368256321775554756237086108353320819808312223990517770651607822205044671263199158932763408489548953856811848249301655082064373775099360509615382082322517965836421463902478691597870052060645103142230544736728622990291085674758935866114456017564450339577785605874590339776905888959508818354692638175456700915986922172323692541690112108902960814028670241757570991107713873508330719814727992316232880781490887479654032711632998808311167821772603554069507399850554327006918283274164594214669932753181551183568631511641694773744146350283395823334622371581682918347642359389660404904317889784558471078891450248430634527431030797888639808605093473541259702922890870498408308551323174168432530724593407428862008198747181995561592963516648158753914653399220436232677819903886468566654139352480301330007202322752326574643172274970323844999660554892732404805460174014036422717850267404819327943784338842466012178186296275497986786459173142366868896760262388926779095200036675400050990709374923064615775078962127575014483136298417857245130066836779623390478912261246347639247440785449917483152336900732265942167173640611333596610432165563679217760400006779107529212594177436810396195378161395253752971261049364705336006527546566309598183443766911275799788700769319876466762027311257857536940729617343232398653325085610297665440686121205105729468528040333731453607487428917475456014699228042495630856119388618509799445820066810558693930415568172975057067816484569523664588367141632194856040044604645869894601089333464390312689746812946783401177263687810040928985301685855537073287074246374733273637022782100596892646605254420156109123782718920328090749444951156296278427240190496179045928727600057318772807811610244842040467667649211606317794628763941054000392908427705510549812476183396402950990871068997213578344230843767547417105769254253363355619823595213001712561134907897919593314498002264730666202175417555303026558281655717785682517244495419181855577763256947489105164883442180875543431429430164232870942414443060848133555187679500734122413747911473942362620226200694718412829356677738464761167316407460398851706961726996425686604330536410826115094512475463078660343821827654215154855737760679165820720925103725289191756099824332160711850250522843539947202527099533652150880695744452325913308997867190639672376958405528584036561782586403263515453951941646666873702635927708411723247290848704854811206840927814548807889851688963704643843638080621592621023444279728446239749181046768688701911032927240208010020964256521838849945824020453093021773280020988845160046271699397249841042143845332271184892163288107387291098720713967994065783266626711859814424131248884538783878110063141338152872559411136681301642199397398805132534262856793503564611481750255184511553582520832642774322861678877666307832589111475022287011504935762303114360066068326324905410309723429355007078624793557206178814054609984217327608509434758949324767958142511856430276874491362027869337071460048725368656202693807020353615844887482506413992831709422726803368875795751562906661073502463454911560380754987326848290224183962669606938130995687796394122961545063575847853137330841378056709311041501737439076075571570383859441576277855788202889243595398055267121529615163547545608685341245992421998058836745378105038702181454102262763290367561948003412194351569775063257181237183968654483380209638492297596930275420279165439653811039024603065486202620829988631648886117121572471464939217303149761662067992786828119876114898773136363187749130501995697337843990335902968990637349976141593324548235554202400904093345388048139146572220945962683767966293442726578803284531909842778011173084364002859861011352089058932437203081145497249823201829853866668644461599656828368332157099777649886576371127819863883839897107045188300532121310786409557204042514885936423668122886292076226940793022114142787112229033993820059881184937916669831066853525726075967746492231514450019588321501373388987254248826328431375894528000168267313074674881197186409158699682782763083008637196730650661017901530482628602196498946499121276340296045188673469979613384837042915942623186081462076372905041418483942118853087112307148436835568418294341227885519471606818679885783088282848056679810159165708039011680537698611837684433518285449184002279175576961056820663344988660061613580613232886405471358577917919358553299431939399731253541218954829636288220321135102914161011908971401024650470831405210919041670672552978446110579021584466029665950796612034779230470539835125836669285004684551769477908382440439084342934760601809903641798586529465575900453037991264591767807829576139433538711749431451259629043456302694085918393542728617272716402636853280731994437749254280625340003045611147263631851312152793853970030651394995284743619982911357731945749129254708513836984579078879119059797162513169116793403726110566926769910702539183889929735202257810437880609518466124438039050391281686632267555919134050915043078361879551912847619282845854871916173690286995291516105952405520385746152939027542520588424723552554555830059813927185147211361618875734864756457654161507471539663790741613478082268839043229178334933852143180310237476764815116011048176272230935447037129703392139577414160886768128317475351613603093013886289115268344985802358517116946893743871606048783963266622861597509222831234149142024633007379808234245229237514560517715493561357046807416620415606129974067145609248415075432116369225074329271708342130741819792699481886778734300229078636401469693271062235244031830446491293277830901123777888588202455783274579990365500671545647131245779801624238276285248598858889017057561686498723964057152278919581272142625843743701218677377515571479736404582699297466058997756351297922884569910463524187624280082075177680635668559035824872016445266353536233457903511539145883174112526326641876551998473676358772387955812165110553690105873274447699864304510226138768133379904603794930869358759636227150483366635628824422545383569426593061925608596091118801502166092963079119551180195310679916692501774041054513864075627531112305025474820668187207524163286044390867546316710442714542874734960232267529764084697123738136282393056359030535350925531615368918757811904649076366130842161247947866814866799268521742433739726245530495993848328456590213700631798376173885788306134610838077028207234680930114651443892698270382557504822744949077228029062886365516469712104744321785299614400678639227328907267263752145777766561296654814078734801897261882148636068894450282743070392183074871457473329194170454459261061164537279179687533978655596446886946191231356686958197205512897616893617707667624942890876543965934350617133244333174263366994304157607567458245768682161707578482445129886381900997747890622266117658383743044551120266923657388846446834858917357984926160023161979026454670047743566550963926479123464193014113362253450856848143710829817882262044703604626387821286238363884075547076306466584275855855761403428480404991432914941568730173286181590630937061466597799809340174788122659848603857670854188187882393364292641507674674619012699041069765986479153425856752930634018674947516110330197813056028077252643371972486188864330439240180784808077033379548306931824602536963646180998167227120450515331454736711840454532072567534798867612190108699795290153516282142753264333206252875657136778583910111720684516325298442447435253764872597521532760353832771842343498673277063422896999892904990785960581550995560606161663895329209996658184598464450291640575294518662206872162660099225152748838385564302459398650160492090614130490453154557752048852585091232526574708284234105822813549476036219881247126754332017183208328750227584794032470321162447403464825824408827257801370585718209913341475681773039749733575078011025845550339996420921850171302720110513050245617208873225829253103396819503388201560136645148298546517866003098766317395639258765640920934042617193907664805897977994859711634793949781355472440525136405837658142134540522872663778188876119051581188774001674290662686924862627833732339428795069801724415283912652889599295030510365464602740291895751426239436457329721925848407659290513786477300741784345083845713899599808641683694521873464245474035640732119683899962881061075318747338281175555798766883515566632440725780459466611134086329757793841187940198635919691227062000242801913781690101684560742019200435969218725023924006065261835315563893692504654629600484163201329476667979561514124667580107105071799155322386696843609812654178655627885046001976383298638609635001316140678062208630673289352521773559274922994186846821443417138186627168656330446131136545720309242470528103038181343800849877607527886149567474489723045247696230697989870185851710419926307925284243359645763078402548961099696891424681155624041158045918353417660902974631788135263833956987474404789133505022037412956003122469286693358686879373191977801405492683339827990460391872349000403538254801860252532782108412618265175141370300043074094283558147747516577244945757769516474029753879200047549294131444405357554157920174981946499520243134139195571942239694573422030071113566693164881184183188722962592975200295929765721530524979316614792977690307125475021793479565929479086536776486792284851451821256411052280394592451803807291309953474667693393325767549073757177325905981346377341957446411856171137629134042583404269351692732864019285933665305634885383640454107401330860903657002352854587573248528146709732972930921191633692643858260346197625809945174669539538631634684888503376578917965132020603760960370080182036312660592170660704397604261516954616720367276938458382412914726814423489335017331180628441878079443133083134950490235833437046117187411248524498899734281290494481414834979945486999810187992145570952392909620284140147506602240076984070586621084564976791008920924828452873150696863679830059996073359344058999808609412862348221685276033269751885739354735293208012341160521758127805930091454566430914863757418857611032660879057253198631525481959308660271443483962077530850771640746282868433684252612179041882688584685772207158957009085327004648682404061995497096348742955089007584689906050228456227167759620398753040523012088016076043920005640467924739255154100112466924927814668282975870993318214995705999858872946523129575697206225057530557971832730903922042941167301657255997458961760262875420464691028985265045841879192411611831961699748119612061704042125407112836215160171715873721063689934215490812857356978288066511136797009673752071908555644132359965249127024622684650220908016354198393580766136299683348715260074319443460676526758221809092974985131622925410252406130544844165715745865461483648535355769921981323246504909167688713531316015985227187891886103811679143136910512751913572577473199947195795907009672189456703353706566252918724489742767836885242702055832703856107010575919354362004255387669746061361955911037199611862695166962392503160644775824144929763839069798578656450691564855810048061593748506573905949248607628543764930192511611533775165914865617914189754335406853986045473230024385286100913898094932456142677794753955439723856905741275284445080800175802676969257453744779684451675493967780563964410835355183498240260920032302347673874297343393371332731320294454228572230330089106407932939024956571931565822795613150948393399291834609843055996675512169357473996501875716070998448571305547902321798740339024733823290545739926321126270704946471500575730577751230797197484000896693246101398137890671580291776901713649440200209069933937936209813289142815500233484217061046252547763476451573842454702982373569321672209519062831411232176552554772670516847751061768171606917834777639566645931931305260554453689509763696229857574911169315330173523027662688012413741716619892796713014290008255519241036283016616933106696638585053042774511094762985049751045322204781808221287228807405143809664648792870943243564780037830556319784312173525633188387392788633128840239107839777098548709267803224667780481088986315114880341237949020173998472593629378470407128061875243818118181748264093700024978290500862407030218735687686578427840689913594810028888958183688844523234430847112543379659050679377389152506387382050228114863054223037343610519545761994684516935461283640524551695328999240678716969210558913777958623681212656167947073906740297418448792665076205405438133573389605142847879296870901649650814520101848682486050996899154484093442708219098264717610778038317680085536967774368099754842738358440559836442373103733654566459210770935043878729762196786769852629567040563313359181926298203216443248612743977055825972787631654967441143446906558163149716748962284295611984537171597466125657216321638469630703697053230211953611372949051513706325164347363581595203138513900318812214335543268064699630979518437956361462404431890591368987755126799769507723738135363724716622793547486839373578380108591214640987650295363315872473330492228335542807766207245084882238128112597078815464774614858345225125247020032894663308273852826349031679624081802543339534290747804753691150352673909723771485906088133296102072758804454330991912877052623069290971395077569294552031904711142445280199044967081562579344826982995486560431993795243857321165402909254356072223285347862008768839366338048447975938901105253677467369611597469649646276992525155169130642636906811774078770848916608912921440947603150788028246262028030982277018010237224704315211393944586288546628148703042802838595634300899146719423691182281302774100042608853932565396170347860768205183240628961117172960623965984219727376681348707530932037069020736387788858433832358328313806937790914395794648984228344817176898703806027663399883327878606567047237001816780894295401843087535543941947673921016385145548550918115078455284781524353963739629249343426853057119720316611371071702000236548383857848334379420053632522220967566893382220317707561720961528638811973661457508142414755649311083681031551274898907164797498447596260751328135377622780384004911945354767772325591807936488295086097596317946556959513210906141667408386285301982544619812895909559031762758326230496824308197265474336013736070409921558473803699363064135431055663607704421800764722492604771557117338680388386939824368496108045800261121724863996218344514729743217551014950802965952308554271604381377867952683570140077525442075861749625632352414093891627748358738381421030974061729996992002139327632306045165403992632573266669035927516865133468046945196809827454143932122477719510093689896198791921185892379962967818215497061465297749700342850047316236994944296294327494081961117678590366244638506286590826349628549437759124185617957790885417365065802462337723687037365849636130549882718017711529417801138840246831973811980742595881566259899674437682782575549964914231743641784444541965108438796921694870256690016297969615985974649913056139863100260375129872297904365330105476415344059777850444430433080291943060102535019992186143156078283084357638055430132572465412068372253161300796828825282257497320274594926360791209372626523719211330915445150756303747532884513060431904488433038252180918627775313936415737441375601075761373121545155179206740183104954252722573131519713091983186353087858415086313007788445018337434952850187633290714194142754921706626603487324391927779878089896668418102251938623351118821292312533246836785613136824034038195542546367768240641032784653029609562008925069436798457638748089481770993282246257932595370320903170808568128810795423105039185149445789364835054174391545724784490028445261887241068199341763868873369416481555778054896276118933366293433015182777125853235240834763178890886935208144363045009468762660837938989754489333111151788490682278976835165778032229278120010614960556931191385677402605571085703463513622724391728005700881713350428188062679475207954253467627766287542626230506686570624832088941050800196896322431317836470222989455914748858519210234217619991555460185761421290405870799978741871810480314578290674038098461920115821815018826764246238739053939721779058070538125145559503795705884554148631043438252966479269629619003514169248922918406432879541715054592447162717289930032106275261422866751358013498570674435753791125049265834584652758386828894205917504119364962842619618000390613401374370955993388362658793801717837340540308959276021504840741690347399042565310109534322177759462002693069125314532626313085632718171240522427235264060937320307719756230556261022503890973284914059482911131903662705567331261251509097057983566915086611697731892987766706600559927447304615346644631216338157507341974592455963381612269779957806880794172441264214317690457028646720773936777494548861158728959077702430338688243811915387663361141680624274877037955437161449088194117514824828662834465116373218116102884478195447565013417284950992982095337729618997053224794603311747229324158827663825212710370509174061970861634133652194649615327831446703547646311523450886834095404330006969651233839252357544265295730324075732552187245061982776252860049527951597595427774023296401276773794205100717032974986577657692513542664908834390746722935045574655371174032970671343237752791831694509099626428759713777051641241615321847101636593117774987646671208913424408570013863582153900403012289152128264999622482919908597498762575927207760507783332599585920341625023156568985659080320579843091965029304565990385327517404380756037744954689986859986337038146730435449047709193758160214888427835901897342715658810976328508585437252356835843899211914008494308888264796810949407135098087510941387435866261032029631678325078723296355725611586577650950152345533607645023678592443672226641243885850002406855395952451979346457669359293179207733997160825001949491127538144937391240041350221918917021598020055663135773503838136510398005433393589067743215391281274431746803433101037572333599591833255649426109557551189840658800596489515458385651279626965706671308419782778939096348495435862172839050125011000161648705612126022015515647549598609872886772269206207796392712414454597331167794757150946992774739908275715688625265332845318222568033670687628996108364099195205522941454156394085951185629860133125845511802888605063910426859577762724461806943383774555164568429736254074118738631151916555840909373579851612810743138659088746608232172162699233997017297910281385473288647219440708332828011664047910452391778655661250522901408864596849756399578981309977271002372914947583143953742468920514146463056541338584146042080251382991999400974203249052262931749596426737507343662977719134411502792816583582058719549112497191281506768523439328246173231025402930707515913501932151753428761385770467024325959559972629567875451185472597701870383835398017004411424942762074773704749156783248014218046647219839631596795147857698543274179476225361217749108160374150857382976900827641935551282308055524914286232046671945964994627353602187604628332950667612325539359689290728568694161211835390121763480872010468562270588709589801638958421242794508538173986532680887731861358709101744784786107993026586530370877097939797682468375859851945069026733683524154884453773658115062743533459988388861615755209135974656363938914702483071551500885061463957242078603673226732122073072390862351122584600609265828433667005713958243218851558056909190067482839887130063356075650406262632821373071332014404472059305845087166600114265591101312959200659278395438147187126289809191016158357818478770010413168528360041298081840225764359909308477628279438215616247863991637772724751822150564068043433295755044139720155439695868775820106269787428573795682411205095371930538471647835861710928191316387463272775383403438789546350320115363018640461842052317698144584686965911333757437482336701142025079180421411749661679002399277427673503447960385842848413375727500302699641442749157082958541473663592707200834592511466004941563592924201961947751384646409275524830663698087019587153910356475675994083569056153501748799636342743649509653956894701210872653336099973354664459975362775667730045332733773900482785639560628725694883436497851128764760741837417574076862432747031069141717319651596834979863724651199169126269155539030288376579766541512447143633935722166563219661708117982921517174772312476907305626027536566017957326785763696824719608497036850264867183243408602886783307563615124527701376329550172331401296576898782799524219627240766005505680259500209717355524765077359534205274145729189244084805057953023120677387098896804872276315588910994649304568456610619693168242478365234997544769918499134482277789591592889735827047966352758221393353078730933252558766743201523679168885533260092546414226033820307045577882867051574291857442994049136930338276527352166694644948893342786824433704235895004281045467615069530067756529328051868857135025039617918421533582511958196368851459225916243753216338041418092517007208217853725524297608235651895164588672681699578860245391067567741142393485417499780391564836359869734212057400478171248678679825830011960048966127873916230944492175067267179885757791087926154687094942463927362123735140046197353350017342892190090572098207584268165364606479905862306906647944930374600750508378947194314775829370687431725064690181921731129836067736396066352121375347392618372921386187730838008209839215901172670290531784177908068114292014777151473644404066756358453900313409258073049702457443287251107545652119395507368310981363693510564667724591573384401071121695570328051104869768150106239289106744163851184485180804378671952915423930432580960775450523737418681594269463842054075072028657396669718857920651061547011038659900164542523287247991151852842118217565381056270194768551595711041873173200561950066899465253262042551578619377439724586099679651319622166936315110387851586340385651259675726366878664515944043821128781761740287952087886731307292047251145612595260562000591435175564508576029310637968944564799931688076330552475438353396732425035827764633882480986509829894923332955530175866665486935392139251131295833349188431352322152437489504288097491895586834613278445131520028748789795212196263998366272839275775472249730668516838984167328739449034388929751781985905433845207880460542050531143567413573948229820593365418466500738198189047553348410351103906126098258046054838511351190498384501334740109086516931413337534242985389422045669278243946710945794212424660185791005618491209352251247783708940483089215417001060242395888872148702339855041167015413075651348040620848592738347741808182179123969480501069682611030141024370300442254736917283022449689972859319823012523973460966567005804194200756081137937016121905008270906238025636620781526472328227761737536460735216526268281936972791289998688407892376545719913293606919543544609927152594556685627740005761899212346104517684642012088567112496951626281535282587962794827092863171591385602723466138623783593397758651126135409631252441105839625435565114322588924247070506110955514430352372552686764991806883306406078176179451889096157929538022564795700338383499673537406345413412747250768678888548174462641636511692949005821118028863435265904902786082430328317437051029542787691259463515812818566037491051569275104144806151007114912375142547286049560628380860005249444930082713284079183366832862526556349792282363698040238140104986718587524307874189553620711063522216126180724056826219836092328954954100512815809559115338052404191012105684899096873556337816457680615151174806771344559080067703223904659143451163043910801212963632695169161710396909284021211621583960855385844504958648931863743222325686185136658200617113893846175341636251530986958491847297169836700121898568295054308485723712482874190967277745483810062315347868758020867547086729026336185721057931592453225401469815617670090920142221234149538506522369714513581831500755849436932062158374645739132472413239889972128911306199890990248494130278016648155355774488613189921096347162058651617222848491850757543509935501484773277447169421179760089702811309554258991368634506234021422354863143364686785028951210919622124480578535845090161653320601704754529291794447753198562596300496830280521341958109445991338383394808221214824893025396959638295661029885025645129396417766873403982361874182322138453445817587048828811809269961439281494385574374118270461361685076379191313128763367537027647521868425455923778504890133572443935273598296076649204022515570559813959825193539875275509085073581410637310174786721785574545340936300820434163739642992972095205513187280353167194250872289047162051167941237743435120963243713013468489781531220986911876088991522180031699785566302280034864633932656555789941359306874654203693663932090153444047150724393791050235843013974351277578008517425384381504911004174852332494699325037639170064758436526827199897911510619809626177152471598847049518989201827162788045551468256386362140827216591356436671092381695130251646445744676161886688380755994464500955076739070617792988769574040080870438722073886217548605287560244357120316726421790619458028028061684123198057683995783666181263623842166483772272653686128560925271451012446364205828490533663145148716095873791160804799517575409328614656233171284407399947943590145244838140357520363483199467994258924061025523086489333174345204092575635348967281294328468378908727575120263624016700354199556418448651834210815044317925945884006918036118894640080528738488206201580853608645184954120941660559769031672161611169714182734330331146624678356117412918546814984718455804087042694902798740887993584894238524154487048232181375133038264939398553950193126429595070242135465110603003354110662899842759608220139065564912392838604873198903929843392217703262859281473926166278778372374720588851509770659393849384444862735280026193905248228317970021251460633429703391023027963418683913102010936887249555055590963173227620015067804746849630120073562096769469923775034757023924083812031807465362138107232303481724522806994606213647625648399552203830509566501588890600952778986528926913982215210210101537236171476417942849440479216290334589998865160759298372977996653528326006846065894797354378127225076839229447835948151145512044183419805430893637910249720147755576143304751062469552424096528087225123689359734661640661951990570535975685876205503890175337084372286017310272967128431645742335841318569681278271244869560709831880540555281103818895990747942897859806826603651195034744111116779149570362986902846005028010004996605393306068790793544765037430498349302505736423028830388214243657367191714198208059384870975577520953765472417462572836094091952478949415034661674768986660251577482300589249463227665081716089221213628858924494005589944822496750700635722904133222673569523914645338982975175926620523431958085056088201813657486405159341455950502650200332843410112220336956369790525613989289107439923070330674145840602386488568480058856545525691806699043669127079554064363806486310800708882002352741176370834240028551444660349159631232751112752459466103494116876153075733233002065753990137881430374367755032663225197267386309229995470279148383665196950657241892757129545522572070417043072731002386665954764020900594067536624619099474185971707077742750667106880379100435045647667114330674556581402927239266702640243707356716385247670625991931448370779472579176984673889855241395819754334157120749950330888287474606915178315991866204839050448525971390037315491675401622162992649872581190805961937393378381634684828770286513250436508378213927896887974291443823448674580054752412785269827155400731418928563345976521495067047566524606944635252428911986376225242546634079095962692564371988655245376000420082302474829178913669791781523327779269892682699615067140795019359813723424881665590499844059381483418201297023081437829073492483290039243047475436228922694917484196568136267406428270752236006588982741878302336904528998294738745301521602199373485557836020532723807819378375618766372442960083827359045346618076314532928894012023572100703621552373615319824971943626962185194417590036052975270961129999368686603017509518953247629352618393362068953954561469790504202871989562347933239604577252017084169287616690823896592988834655426269384818901489431114105411352553826431128453364710424784284622223302933402934390114141320306504524990628635250627640780269657852755141745294287880843381858320128337531088064696106138270695021371661221199139394516142877409149210488855555697486118494099187865318729995660557604201621917387500148818225469592568631563538523388056260890095308637094644012981787003095283495177656998151145792740622701970516823182538328315759046872285499841434210930303476998912541946758486089067754975695288241684585631493479320750482835698774140828165802910864514852977197410267556177402200033568072494745633144192430791542765188570070320990397522115458359156900678423151205107448528206492608395464343781624570014645560420358821861785981220274025737004305006010805599515865430994193905793236697586212412611918070807272038406524098313815741971491235705944478998485864496153314070054308772025812522379858911285963476170499303794905378203238470104439080838891204625646403491293397547809410420229748136006809555436395140591299807224064517472736721060219103311652810618180008892355267005051411398017452535352843926228214759139853492874341841254758967645720808266265547436219907679505200606797095459507519773849288852139963148386304352623689806042973812162453784084542741382811294661922473705299306399204822924066210353380493736464802837643288481124054117235072274368253897999777001522673155767965765453421661022101354772597581079022152711373484399243527392565441611083960889496399935823706661931659348205376060908765077153588472685726078455224405198771073695862129426859384200030543480092837207336878986784805647722011154594362290979178787406159708330465802061257362005695540133244009108749489526999349772264860971964612313151541383331616763449314805478354075997227387907290006815377216242914782701332181722888671118366913614487294485886719116466515381242451362036181521814497118869995069147006994887696294130465628813938205292532495390504230298850201190463597940914345374112911007262151028243546077690622997831616270958343370952092010523673814900414759049019389746928191519502896325236844358462614675368783032292842572152421763703884670168985187325086449350894767801646674914138335072704287335206595473474853020009972619293563298418937788642778549685878611698152624057672229809151635997002408765499663282056867184015720585828933759417885538407197504650064221625014549040906868204717705479308325564613545270422946007906482090721090512976621907245421829797370058213311912320229070389723591759625172986261054378571933312738178133677362036912561950070271597085955740548532957960654059229853877153203841998603761780471731844666976113406042177635649579191494119990128466393937862219463227838757491630490492593802014545924237831287191956262381548280074180978120590909044823375700079197246512653067579268815865225778021569977074678034508628301434684067424650393472828260664476495633234954006283381280151228764241440925704302407656582812516365881870370159975240779046558140892638468372045381758676341316995759932229867582423446836014388621071770691478610171670428725090995994171774050957613197273738092977147387877369935892309349697516835124278885630271033589723487895666881694835254344849830613568521714268747991411844918167114663855561399532158541396593365151025414336447800121023140944068171255262670383701095974100297597066813478183212102738797592369692173196521324064426807994620862008042998719169631297185309519280929736213693128793315679706532430432357441522015466635010549148462111750722693189495209874521399397605003518506745177490378952914680252873236388609511282669602002255358366037527161930308573206772448845000214297624113239316526673118513017054950784136814893546511061354319367334614439460540657618243738327472935939467545081558853135573373475301916685680156062889285147683394600408722104429280715070538829817460140495713957351255271468688669933277389201636540385423327184748502633529639392989278745304446009008634123222743825259334709651596421490215328946475582764376221721169355240894237997596740425160988967065283614306770701790820899560432740391128693196013358456457235161346032520125650779353850509389848160680444227667773194853772611760167717510471967788148306281279710205488811624896830152388919223386539752863818625211707817257123150572262146050148407853610124139182498088140034345188353102262887236040990047329811479616851232759940934831825092488197312014421564216888523025869921883836116627909886126665645592011682270620760985385172913544376190175429163932745707521987240836404537859181950729089116140778142077663726941550542812078860565427979954778411493936095076808585698868490977574536921955127560929493267611453223173392673496009232150733053449989711730715922144407392728566967511205098598127942057533628049534520125825755654321479117793622075913437432537574821463751280700576046198627223217214394789709116499274496874407030263634451615303145199946496643896878557867662935234151626105528087839421259424483280135346258535961943887122955916444304266387776638643706006001595093968986151197222084319581438118282277787849957796789350934432292431179771785887016000455705147309838820225377861259872179950364745250220603908386431008275586932431696460156339965009669385640772003376298192500132444120514590301290756334164027656745885909789179665834586620741136744242471877913037316860794913922722956209033188114676304192102067607529521445633627453709555431612823806833125767305175006680216760396141296475020174209789651178298065468393578835184100237777862280530585581904045620231819061909178981416462614484390202410596675177395928658882331684986780881149527566566799105172011355082235099865642525508553123942280598448466045586397104363492678937272822090100177032795057056942993491997250001559889323118728211321189283514190000245917511143186831398400866321193479954711057539783658633287485020856868164931646077809207968377483184977724135892218873352949882041676084277445117950250253619452509026836723796277517058599195107874241018753402107249874454171760585593587639398846363172513812797696907467176458153372444317315473954424789816091391354657489090403817135504471302766336913864576723491305588895861907495078423110580723116800369598404461764069147927932896310029343415207893907559327645155175656042297312182479976640033880182284029231530935175714667363065421719633060688123366940208936431647634111369645663849625103905379378328294293660655572987586147303127197038638086256304970427642540759809242854479022691382553531400129545222015846835500925179256169286299782277578675431787405213428686600538478179328020900160559138385452424990964462738898407879516127997246654397366664364337551760256808402972453707614686819485921233404757142345353273225195794788729382950862763754084096497649469958474071053923006788530460350047903782437960273468736418425326618826682118524597211953768602162131439787776833198893884543961083845653766788817290141333647760934401682361092544214719256945712220194934600487631330671864182547365553970945649414131931953626384944136005628590842101980125215102988263913643276489052558728042013657778889301755414805645771979484902585716086823530851145557440042373523016419929560094762777731116351903253120559714228367227318475931310010907039807105030041254027740283329764770257774461597890189840350262198135183191566122261053547029766543451583072434318754386711636410659495885860585297748776373851294795504208158215115500220686305978268450458750981684598996217855453258443010654907755025688092643028840009102788041281468659957782999185226081998471414310477483847968299956227065938640910962334290279812391266907022880874167840930701554753083378207339294603455616019963006185340817022139432285218836429348965404103699562336878735874433101880520733978823878385663831260996066335412625485745475014703257194805029889643928038052799866863222991707736110809953427924645065133156451491009709812271884561539033283956270932439020336673981041625996062844451861673389594552823497859378151462280316928420658661898103591701996812464099951822836192313122171955954102594964530165429223681860774169253910505369916884706661510235199689638657339958672335424666100440172964210128831217086162218991266494114398984249237046998074928110787029905471119653315919687347054767802925747648463013861941851005099059461226197934722119024166543777053390046585039322722019436582081182676348874014710619330504491402697739945378848705180478886727165853912859994515409947954378146913215744361836146894145335166281637564730338922604193391432080118896108807417853520150891941626232976021287465313643578328708268155920869752823558909867199162834212065696899871606601181156587748954186854121881835348142020719833911571905278569646062841212055979749020500721878896316635270841243130154976012990190487872553988987310128684571288362059540126435393507913869934863916344410453432614102239918508428725653950366873256958575679511440153877043916188756335987872258101957964561491467249534508302672498969267614769937251623629794514218631847366245856033402408982325117928712717122242324283762310845430849731860454497476244817295534345820552560003171551812341142658784832576896990045008896728030919525290485171167513650657085015519857130420917170987579670715570629692840237913956870396291503849443399274634841851366997856140383317899380558199959036306343776581218587987042527068853033246643759260176218344290223544955112004779706990662932525566337200505597779529433436624029249160339905055953671257388857326765674256055791901353952532345079548561634984736850235757396611947237511108012777703893467808396411289893184496691580783555229055094843559109413773863269718968324485845520074609418327806683987671344721024899650189783121814195757464271235992607838910975417805302760252705333080299032085215425292420122765915569657022485860674897551270881997034317157876749902877004769639428198337326305555927769567498874573570149059733124231964519176368914043646586850125353802921425695268782326857407192322052082307961419266405881453246542750460707638311935166321138345324541748669695011526225365292766167839984384801076858257676654366910093785662997035650023266498488971393180455965750697760415620058052415930440389704293046170445218852650850243010991333689034201590492001888795913960242485151048433274808651691627159495948404171849515045343083759157113448792926436222096767898989493656661506312279415928659302268001929298283868938800916894206888243605309519139952633748007477602262157690988131965218650369987143691948344062781841021538144320318229562742426575691931606275469557962006905730186770975439874543856142772251141617307345201290438302322628921735292961966419647721208460268502618648883591982657507823204606108948198188584298662426131921249374605586641946830316744556129400584587448166677843799511261553263794906498364203791033836559166286236502486644425217737072743702576595987769271744398995526617527410650062234113644845430993026444620879342508315366608359680536902347699168152700290131714726104541977259464259865470556354419936595327711501601418993758343630962371695713364144697461436537103821718848329087635877646603007617891057127661944682160520121290965702176519983518862614549466734128708050525900151705780658598356449822783791346049266711404781880456178312824680443032499485223528884676100117704512367712529408647953752972801745061930576426313449217028710343396439382163492114626941947128204082389086864543622412552927186209716279953925211922022498174649648652929802070149723309921898212299566880939498671292595109594701355520982851176458675457039859399511154297078408796999871811983020140278374339312142964672296319073622818311896584725167105160331435640175882631961208514231976286308449018446663100843909140986960865513655301619150057569939200763201453447567188735313401342023859147964871562714657096168370177458270002838024651308739833415487533140516208621622167395020189987580474249872718287259278430805259939665766862801554638636759855681422648346564008417020413118670413044109711034388269613311435513649366349335956110044805617970380895492723890365818313772194638475547826994610452125815348092313417687115493873127890835738796157530117687363147079647442075387682141539421369379431228689267223992647891627070232270266631410345233012880623874024038989647894574952894762212095893515405889299521053774846299980335421082206184108768543344159684529122740423330981268812147245428037172431463150865506305411507592680500201298202832347516427995819986077053419006969349930135333000057676765405044551563156836162208333318659789146441924243492109987582088445908791725990039203373996500226459210618753364880244867661953817389083096286652499773540128816076418441353782948063019140111993759327760885605045429798041392074741071219260185693109433576922181164152726737357757944638282993295260604627780705170714273487588920133771538656996446136261215171874091401535045591722917852534176887161984906643494590898612023853234229304620851520510213321553781735447533326439763071263284343632888416419419601711218028071378384235174578141959915516934865031372184929111180653843806355500634241814786451408839535763669109409386523995662657631340666556543273248044305939179780360863864261787023409775224813489279510652622368019256595499016279347606128079473152916246038376933243075276637201192767632823371030159650574741613992452212437496778373387248710774203922118438660930554238304419559588594262065550215745741734161572347873272109317016865431605147302528147025783848658990638089293229920289145567429890719505491579880473191291296602276174306734964558535098334219439878978490706527666795115408106730849782797623478473934044890841294249276185942761102644810188182970059057282548220174477109013849463122872317162506795639824511017745587173071716052525327175204096689368316407863046100878933815772740172113250697296228043812062181360141838410842218811250413010135733156541536834692595945801953298670932534075785370226868512687441080530549465895341466179830206918553391661723735889402556375956686029169799207942237638671039689818483744799132366276532046821134933392128865461235170612549672955218683460297024864708427838940206517235300812592649923632908617696687489047678750449540627488853407666123545484722398299254834492324122828400043627814589957426663141282502288763106199449461729064932347498603131505043463206765788279627537991101995910849691231043307072702467596242747779649478455788368105852207211615343366142233699968356957813744100038465944025552187241727899145368254798833644622389888100889976172222341534038434690881072062652433640505756886169860750020643014219344872697712459458317013697124687410692090825148039993423678643761953556193539838026888267134612650967574806706446534750444570279715924519495575676530534776256025454383257693627265767439000003516541460381768169478803915139685851157949075808276799106099811601499090708644404109189645110647996673344892996369763354051994972246782827793019392787183413905350937664125221560723663889185041372963966909404483351568998781172376454532469578966719868902549482783989679898798443753524145406865755010716641653920167178256031362653889200543729148261417791640405892194727511077922893491760608002033843353166875922660883700608676852058711939663538771681966815908344126328633196158305513061463679454131638937624438586016767161287835871866234942078512194065363110934091138551325506206684134474609991334880398470690762098908113428708571685594880409138226854307162127214878015665485070022602844870404736702668628434098323000106385313701021235578910725657253316059161367924779778672577096845905587702445781012450987799214799717634956167905242386808691657339554154632301566025798872095306597589574342808874991514083888471700227456213279791990501025974027843884017751963189983868125548627985266200867291532182989727522902416456564976630153235362324427310616067232527257475021321859566415775908077922176644564742612639277267017026994741603876591971238408678422354311547068263367386696498577254209746695787785219186075628060366290593253004957123016592780480827169560605393801639404078959008053140157565545128940322379981022412932222180485375447033944884495322962179221725914846046663022536967730793429026483667744689095754883164635616854392215698631240201737220171756558343801949746764794547036962936503586051279320627514705179769943527990114995437880600310641065322077523991355833774875212003943112568407725973873845604526360865902899649844939263339142531131973936328989378820915183192870026256135221224938716222917003483403182945422499415177471646210125747202008050792258740048784452525930701689103893296206580528917460862436182341699894320190830657809102058722633558369711283785558808383941774156383603753274613761261890391341529762671140580142264495387892834700665391670885466177008691712848679927449815594708810446698125986111478564056722545536833745412314692865286200266434031703066637128222017471011491313630692022137007325564103898608627418984265816099152605298896496075757720596243986105126005616632756419076186614390829415112572035517817894182889877660267445696627237230605395261607252043890139793974474053858793586402098872879638786789020359864040105282093061023881012145753651203553181413029614945804369689538609778355270530416844916577117233339832061327597771913239344467329445906646218174794454797087117354825029038550304894294676630737506501807625395243253781829531477757329865010911184619151263962034657591166532704019489722885017742644049916603308503899430571933647959063793619888003692826452817703246767629349527113467288597133443619588703516063010896498593224810788542360416185066402220290828082414117275753784605810893773806433855312977757242166194787620292954790190494959577118430118600482673917896235376475241750644860165206438679223876856546437104229913103005001713185327471506026295879392160004620252503178729398865831576582740484827543226248497333868414744437835546337724187933681929067842718743106626925357216170990078080121249873339892371174327979398689649109611436064606177333143103759095686899816376460550472561030068381434577724574530553438745162759900232632859924475024326301383743921810624982812989094456435272657021639975006541838419474540899243754893694956139361041579354729317367094622841038645371291587929355466761264321283319040284620021834725017420656619178433100200770093467992176145710294479025829453473440108665413590289146430728340072498054410133826422303523356663022999431705587259011679095151404974260843582504141798831084041654786412612087452739021471223422536989392782272293927330414711578818237290061111240816625338292020875688379497743068166030279247742495128386665312992024535895549272215114911300606353184357310125091507949573010218114222717776934125829450675295715106338579715331861443920978171627442747455049317919082318193996286900834722573451649556892984432072198453232684119384303845419684720372939392176231660747988471623613651847899035363772953368621812163601437772480945948764057369888642152747064836490429507964077208757779554520387953793590281145216272490688304194259814623776266886917422252866807497215039706897300771887173948053712215870322144275289250356591872742037023196587696198509756286505328121796895163135811007291754532348075890025004118285527505084339004743163251572515252781151822301130707676693903896618735406067763014488202066926850496693669648964624625594424219279200280563153690016499884162701038721183794334854547928415910264129598257590263218335972402214795253298650902202410430029989060548079649962826391814059298366617438535501855827370908807970781254261208616201994721546702775467925576880777528639564113738315303703522961035110831205625161792454092400368684952607373678339192764569491761670834852212479282555375285830754495678374920023897740170071011242658721757044905747539034986913684175774426900406672029335563249796780401589521469799050969180471710189490828361560070501907129378747210004626853512398271912988697927454380127491076243071005348071204972376283424410139556146707604454327683613736773616086369555761099467379284667439884726074968062996241401602866580808354382841057154743774242662340777106159171219035683400873908291883468518801609882973453165315444020118844053580105926031280388705181867526382654792611077803805761133769153875575849818591612772147157013016911447575560792609553522348513943859174762363122503339021140371907123851602167322557982440436971559898082115537502675786066583009426136797411706093788167972029215712005719285015265630888655714414684755520775394711524695462326083906791763735329381338492935482493024862688281097265131320632700926465316506180694544650267520564971743954614105440311882420462624809435436287265238340000407708253597488062857697041977669501563291167688433875875483777586567168491970763352115155047869612715477245182840451525241487120332555975648211990495519811242305824682569537409491045250900241372612973980174385173777963025904593693692274261929756741535440064902503482879752932903388965955373582184145199584703602272309121948795847661383708857441449298954541395905549632870670143103611776255427028343185845915727519918821034385559650160899123473924180113232428198010080653324219885442672735126476830603980933717075771681522019372325363416790038280264238609039443337038169545996916688428183917578397441967841727077721555920180434039809541922747322316042578002779219820333587024413309264910363039094822879226970574323572919581743331829907406307120110924894963793971157587071807320378621932127887642281177869464244097820136923819782161817515288796788334322688864705851856875068598892379234082089167771276383606624844813478245041347011087012038851381483337273650860110861289989300510883491845617855848860671791255103193366614600593451501980533079239032041647983986244075290465874066628409875553688530148579628977567601479263907897117037348131310149572189318656291789578304460690392812142466179723997218517622103315423134048775396917080131190544426599205695983320097215143707581909341782599957090065567086376275813216006444963671631798994636359468943992276714016878337061916895842466832240006781204433294861615056308178868189430679539537093801952816648008467595817177826076223336854138883427739413843594345666310625732091570794081180213319596707459006135177477262738560203774750007752684493418544763131110724295462020848369807804558352359300994670732207166579523385423039341771151682122004167167021097940338009182482272158002520010680737948042666879239545108703005940348044902686360273660383665751572014569142181745977079715344755784132433311788463210937561062508401760994921155700120578395433342457386615013737015417132174544365285621017773301506416112487800744905563111572156016345890456225834707957908973938045883365186886599856226977324503445679357822022546856463671143473947390012509872768771049028883524658262388850146504880709417688729851230524519373381030444436857489837308659302831835325195595594951026841357252732954781797973969184595323572216170138993066623752299606690645259834417586401586877359906303650296950211666024135811406244120135851519844542521803350481933203102494264114324613883669620321778472346993854438830005488707187299903532446658913367160132266708446531354974282929020031694564690629706995107550747002939632498441910560775033103411409311463447758639649148493529830524511728582249805788123595071929050237862083735607624609709841060375052921354814558264612830030593151384399127878784478854175075133544538902718203389146961831189447894323955394038492351887295708810004690273992766245087948006638439723064560905962116075482467603175149899525912297973989455729786656491570685953438606515398829442861522495193620410674143993069607313818032623971649312530100624809695983266784582326321174721146326804010912414149119398657646669147038178592286515708037946389639294900695000478779920006400379593096698475302885700373603490465851343331167299783605777772740028110263278896248248553242296384769494941157038932233969421288775390587323008807477200311657138653225371529738449315708549108156946266003581035412376549566660541215924966624164594595494554354809800502263023714967053178039566877074052001114511880874431686013688991772098359965128894568454671545870530307760154062923481791871850462887213008560848059536845147666244851909060861285151887598488025987515127394812420804727741084523136554530192864603465629370921275925408000096186782293535608751118827827575082580683470164318335226277686640731001526425513551839092783118043569997194391125662213549490447390864801325625837927249222801453334573906677258195698735425078761292774687408980828619745723934424006712643147151684571252786523938375428988774625663054328743469041125652750348480360724099525871830725579603078157982940076500115302472619522764543474579042355237947493030321773234800539701680271938771742605027449862960893726172677119161219986598007164017823930591180574782943111842663838972192744346082412231705109649842173022033120996274685876270504496396121732635641520841544156820767916524967331070916966627044191265731538670733225374130092097096174933379178850285367270888817292837386132028628470645193709081194655372769348508436770316897124009741401649739683391144980459024943690634826029049053377266968379527665336545286487091064303433982078453638847382177794481302734850963039183411238240303593176368114989315068486270561216113851452557711500319264052430902989365746807760414992366531360229697543148285028352350783726737681762402847814100834555673131796741583961924706916884889429624571190670150635552617171754277514228777902728977327274700627454621637960541446887714860290400379954417923789543658468870368235657414328929339532481577730548096432514729042363604370003139708774631955492336204273758239941290716864957157605830266325316427718599926611297224855385200142776578480727362688711870354883319479286718048893412507454835892465257735280685643945183965986392626242189925396583750228888485446001021099637782082090706202442367808892141162683670113298601246983508843597340500121586797524611272393449268089971525530741653667045650934471460753208224777740925796596356108422246308076298438381580159923800037177032109828033721066074521533080293875323082393257656714339915465634464915090044808199376292309612175033046096436520284767268897962309938926468333448451194962643688144741326050815065558876522618396757493076892777222293319352846573317993770768806204932327355372538428021109987992055258274654866347012139692662325266615901974065916421392616995567516965912049155905421122981097408802259114221965456429145324517005888641183632188438532003009409388912660773704532129057754056085453474404790827384474455990570716285311060972627400816047307230396328079857831620918822216725363435865418254388626922202605451537967127574291448509267174236621773844754146846334545534419282753384361497589233567796182769475374404287743486709103966099561639164861826914925636548661840815507439253969151364871098949315511834955115872751126032156034608054007183473169642269407107089391071265635667832296079359744239913056631811162594648927234767928429359233564367422416424326507495029884310855894958202266600200841849690152225199086543547223299674313185858366311645552282614941169196205403792085056036066845643634349169141736141813097201213101585758085972509718731719191043122214424382786653576999664823927787332531440988397034124612328195518558115737000726426393488644867502520751032547475108539151501596085629197707078315148233379448538376273562079959806562893353704821668559622865254466960241413798770239106651676111486321465948782384535516396954884541306237634579033211550711232080135551845080370436131764910268345014288510769543559227762410620106926750357994749435007886156652196102913795710213983483452759354707350475502708004048024067422303277725065582355096483625552047253664677663806381495802555870158885046147133070443141495676613511996472422008229470483706956414503620302339007884469428196700673156501371285442001269970073494948655549259189244519204236824071017019242043084999154386005122316155425548383431544152873614197940391642128733539088752161026735471309717584124691429029403129609400996347157957469586565810842993838563946068331165957965472662165577360623049430251556827555881678526943853990541492822543258625660654775241222750590995961690412389953817482143209738382132896861186337578968139187344456611460194613565070981857168612473367081382766647520436501126462227233486800064590352458349123897550804968152113160257003993181291903758737749998169541083470304058492229134079293930555023533355477020282262236304323916945889755623693523247400331453129397633866593281340284218598576808653336300089621644062022796593522746150239481563063476579812686162791387092294420560631178390356779131050509658918830681072764811602770332316640510223681879827032690205812279644237831889272971567008208794903495499897440023573458236620656010816291363790118338357657999527273648110086287804435208261041308462216782059977859051929487968447807289694868595232847388512514283747449264370214957696088179620106140904148203177397844846934258737919159378871391954255975507068027590165538389969346420778945311940738723634829382961959965091846641174290225959344300187557910499882197454513646603254187056118520360362268427254422759026378298089916833844347220580413851716150846197362033798953697698862297595690428659280021710740815660175535571687286504581402105910188727308132288093042743812832821148381161047736208840514168373138563900247141230081150661278711070606543980112120784375725363450711698156022361202658657633178609323211804117114786989934256003880098996298112705048265725366976038792373723986896092787105383449199229468454913684200705093158066142405081752195371603986722435520356342296666673273015887703617789448731794352102677530381452798050107799396794149138565257435727538048023058091291821898759200668182921572064583502544032882393534995131843805316344162463359037268455338709312141755082814037981920385288625417089901764288251819238095176684755989921005809775742810856837566083762351345188143855210421244445326806104423326543294717019811075501724023387784131482589706900100264661158866687034906877733257049948146403684338064050216455553532738701257123789344729690551946477264598097361285216391758243314160272963654253383429583793213540086436878395948954499293573769586263333953052483699757090611718660236203824982292117217450814022836038977266041512709470531407835736491954284785813675769686240134041601029740098064881620297650838650492299761642202806599999483105118972653559940411615603512762524346150494436987827645805068502326276648437198630789814958414165007450137501422092596139291234780662598360251454557900969957010311403092318035567661349694301927147703305916842721468221953309672692903268761255396004398513433829733099917217267160811719021467518733825360414767507176774523668100042867033268932459980702111455582870934441712677755469130822252751564478489152810175865079740124237044951626266027745127545131721857468171108349975166886282978928317049823816403006063686871657039812524493518855630719622575258145296872156945766793690178221660280985029306466815260806155564287201391186142634255493985958608210000196555146288898473057111810376466803519845177113564663037348525253302892426085494622047538396121886890389923716470778380780670349640553000566155800074285459540636238926264854825992742349657455559083756972503734320962133847950933557811679183018600752901796750435825306115327669663064439558392115463291379273910346743591221042559558209553094742333645763200619160328429665301060519775696726193680975710586874500355033244276346143513177676925971559490147643088430346699500417724030197778893825917641510960741592556072443646588117086751160688214973107682913408276658876197871043854419431408532974810630578056266228400775246030181898887803504714065347835267787347767369350152897163954937892558109940630138935666313940609584575854944790536067245189999104740444149652668363746891474651970095936932814944284511065028340699285550735429612647713084997085207455766847941949891913210973982832342755480564896081982202203531219642631804446515979002625263961607129853718140350723103205382330954641616265926533254824496530663328718436539431617391858893234939508885585050193536490291742215736230627204435777792161477654115890558319034416642682279996580697910241652963382825348935627326086292402641276302526371267593096386855800544068425515856426146636820088823842604839367376142597433128785947202655279111133198654866477520469751522418708945129706091166457101553194266784092760451313942191015183843575600397995744910917405830272584017044006683470626730193174003191514866836483069946606890385515518197300904107047809992363839105543713621744252344249820267855573993314708464287141457811553407238913352144818745656162316218071253003793031244297878878554150386010069389307067422780424272683556486072276657398474810464082390162138209399236797015117513200271242732364738157656752789015876083529281333056043393959574447364434877729222423010141986665233171502348949212056719996278406452803980291354874907146213072812242925999113540000954081049369631401765621398620356166545725499224999059920032231373330226852155389333961266355194809898903922228385534991190816379566059054839540885239568714069949296322676091446863090040963684255667507519973013309317918936909303398602249610074609177402023362875835945051656029599809190130825037261189007940730969223740471601588452150910443460012615419300323364540521149723129579335467024122807668634557903595667189430595758672008823867357535875718751204809053663100224970288194832382809390348367283859251835071217587701478357161874582832697149907091063150702697188693926595162188780094607537050956939343264547136114512243238765794470801446402361800649897857762744532847839518061073389689831855001941113534677820514425871833997426674173526339851450608578627915518227022334961186216527474570123645154517032489938525595354753145591990125899332874687081746258663951466479477541754094038019052886248269903039671473662519800167065747031152449622138737319135619861370041905842066096431361033082150862337415967826743409956056160950030119011625817105220882241100689952127375275645269473453016234611402469510820120458727218887440140989807106567074004238566824514685828734807181674703800153165455031420915086439043078772657441666179458125962034783950723387217243014288361057550931220516664115079089286132122251286859965865443677508401319203882555097793234979966590650133970637809981349463529235770906779295026228557981220117203834727681911169041713171354111123680965156502485890507945647928169399013675064909974223512848761540965850431368941572934983769619043146450789628229552951326258408754297442025549088458847565468214535186791028399086796393519465331616294325006561321949216925909376037235066512830881577844737139788592218370082847779709810284080799270428675660300466949684423706088498426299854702056121183575450211152798606639799540846503782455680662150390545705410926053421046296733223595360878045650685464055827339906268967363383907438593276727164521395990493434874905923576077951371277691403270973416681906057684634035519767466552240443730655032888457212226394401373881385142157938824953222193382519997236033085732527715132697163065406890108107664430488796181767550214251262098018336882042459616321031713638810235016097552641765791265418666950469425964815475909025316187442320708992902365294240153370611128634596722027110251430898247314807432227497538376827578374269961626068469009335481866315730225177937726023153539854651214299142925749689715895759504989981899465829707488412792826096303994017529856556679778195718339001466716579051684659468686660328260142305417283669901000605779853966310121136313158522075371263846988343021198721713751861668123378574786600526026183759574287931133777751262214868645903992939950314338771037416652862643699844157762654079459707494759653978063140006754902157543959727908123885576651436163923896435580610673580255636642554715838766646327164152003977947591351941847479868040316431435162636223936243128814396429669585922740435918077646026734456480512052184283951427411188305763297111140302547732219125507261915730735288570593236911386894773618353125227527557943729684727644103311329160824930325587809080845456457910136646665213350715215031132559122255901399894701753654841321331956876280789444801300616881196334487811681580091364688541767134073155823255030405538083280191550464283735515965427555588497253661739495017357521497669425022542401943338475404841643989829284341737306064817229988861975375082970737307602112228263759097234970678184442689505106778889460324788490652593929063898626113874065536774743176820702150181576567680958324585461454966019451899075400735546787336392003476646619473236501238522373964611667053133150374003378057791940554338571554612937778643028187188577730220629132762655608945214669728008219868345442776936693163568777282202200473378331707097175825156117491423488715300680877082080309406436823759966263512533136205566318752703324071550424981681203082354068726823500395829908659893202329359953503172760034468105670418910295837980154833949802819541480568462810968514856038993835464637153216017097371022886106871182575684852279611255991321223136190704852714606254870686229428947011041144532235750048626429023530443102437513582435900689349080059802860738133860184906096890093930773857772825967358689103507681079539139828978231236767217387286905739457295241605515030266642759551865667787384292096324709945316376467819318125100738680953717563396566529153156220553679328807306214576534539214677033326672658365222051685386131740409455187193466836810190251635650643517689682200194196125002765509322682389797225218678454397200318118716412688963814979503308717276198029963546932138886583266118848254502531470439464826850629455873526488572162908122062466322276793401271211171626268160419376830029469222350730231700543408021207996676852915118093981309377515307096057798688307807761102855820440831482909339434925095755022211442279012525946425972426043243757204747149296161378011467827469108547627204114473764366208365873579534626342079563542487275998138370249630555623153634877432841150027711487586009575408648678742137003539014956867584052326883419570458025425165557081447828298604983818734048244271549975910918933337538369209587873111994058347917674771848071381468055228845633127249375666710455846286578465918458430174100933177575530705146218391185894366530123662283595574608854980327695521122618314624415531947725474912044097148822591553318378243822337348353739604694558608318344730831095851779940574021752317968653611778047649463577021514905350126920295292550763739593708600971700044081790032518026115637909766140559930975449486031688359718917737078569551789913309464034047097833398490282782832858538822092832852322775955897266146607390796905553329241567018487293193515327215317252575624991908164615767461207053567468816240318422855944497854567853832796384488612039959805873525300015636206287563659342057473612995414046897863068900785201316246309130967309654525012423955628982448798248622469146070213038289017303517367554900668775369605439053071882259571204417813224550188138349271838138498481064244565195205591048202127276010627189369034284077643231690896419758571035438809748396485159202162428115457226571336040618284126953393155611215535120658504830432536606378492896886680540109695345614284233554401867070760361162723928732216575934453530973394978059299510850394810630296812284557930436563539890609059990010444420098274035082517586762745228575845741563572236106891803282870924807334610736684738215403150914072100129545927140983351007615276634411232308681314208701695993513830466595512661164695481200439622492850473513648477339778403609985224263172496908837893967994415357992216108199086288287666878312449944839186773482389312319629374187806432030110961375020551038569436171850256255821983410647791276729299148052751281049336686572650069294794638084270400785043995205606863067088725367238718725369592475092169487648228618310559737937002139020972989431199770814080330485005721814649068893155386985846242400795830191133586449963529400811484481261647957883946451143576504563882848898043221035748189656916455961051630166943496707020265947023140771728208877307609939813210432995356116763962590814960404473117181662338789719164378021989118782103382615654201343518500567373199852607653067093838579273005476874816485922004283240399951979163022134634907487361351177955635274393886803438935037471964527834162051884500723914107121305236820183296774501927834135411908416384698550262882236383279275685510560816687833046574383715895031770024429482384387559516332551152467594427228491015967186602199959852097474670592910252409068572067665805044682692474209007598076179501678476644431618176086148919110979463660916458510803545856676284019178944280047042431001457732737845918370548051355289800508397089847169660344477070625751561532286093053242945651754320279063339899140604237151015551474623690175217503877031012294740703783221152256652971669148372601326130241383736441934223737331236101942209663664068539699088315565654470657304116233784705099536086058810988530945846438432340747843006963869224491647051600126049608216247574683656752682325407734683570201870199164360229953997118281974697720354004818705523303369106047514487426860788786775730495065968549850702226594424770048216223423883150353816336120082364552843557141939064985392314809860872465013603176858095792598434172715603112311640280595890329726212808801336298673746230970566066643958451013962964935298803289197982769134857945028009538287294404591743771307873798096960533106944687702391252031293407309610423476541723901579339822638947327404013709672763450536855621781043942857422470495093394113418074497362895944020948650733438724153623548552644023560599546566980922654202945425003224580594972111132440908500613871305451906086943275472589170136595968174408161443391445967860713911639540473296456241772800404889503985567621990555912259425665846163442231494110973392143016623416006607102710545405811129790358304689679618719502284695617808974820081065693811056653698195893178534000748161455217529509299983062166065911276673274521603363849005221151436761771683456467603888051892442775526670212237151486456118335534717167614992026247909083413994449154052327150676008829123682098507044228447632613626293074686482504863647456953793839726554477169372969910963084305422838194279792648268597883719737185160973378018592705884513875176169031336668914113693612189145544241155400067172742633773489556137801919550129890954630327508736685532137771061797372505688597511709353201691535030028430446047420304331010450744040675149839204186555712902752372224086576308049499468772640356652282222344782075667527241136289571734588266402167129039445026006998723254263632504268691802022387341972809915455391854710205059077825438341453140386095763613999084893088118320745693151161451464410164294036033123440776425807278420314473391394368727651644420527270529496900886108762560737328089389538807524832655953654079856709326209207531266074897872072533495917459200029784023522506831927132083381342624143111054799729776975007888963665390335402714625999332889342029367501617313520360106019176575375516018712690915887767226034898969345693324185598143226179067548077287225681914291150163773699879615030848549871052792904856203069642559188998503373619401701884938037917983786174148938361860979940615474873171689672383381671883516201298483073323352327444073869803332445030298617526671550105557640957326293719287868934472497273976058715415949053683830397401541903864903213196617789399814773768676970132443698074905289294508944150213920018147358955769437112757805930548577876395272314432466707460053543956199684734933833016129308844713558308115544933571930608309111190684562002440961991785708622123410650809242836100678166349494361064717402594859825415756089581910306564265368392840518219298714121048248668575837463385032997545762678055921008995417550862791088090030725383535709188414323576576596540763121023160137086317616154648459720481667060614828884395339295498373060283229128212440070175957871919994484493695589151297863725936700519237307913625530597227507021860870050073023121430611600120411328620907502629035754526776401708943497534373810500914831165651967154233147515540881970563956321135677477215069178135833629597433005815608641483028031022696367646886616147166362180850637853124480967473055269280031533393831175122708992559568135840052231140725021186897870705110260743516086951112996315468110495841438802537507589211277930904379622217140816609509191983908011433223411091823292581907315472524971528891044158971943227297410401704924508768260875386403438488016637074150862879926215540432999943332429434568244309951476848285394242508246034031188761170187606509009519739502465684150189574230766895463719723329588579735586737853003305943569813070892003270947088423199213832715691172010157374846479193930008221214726134549483956242994450746556068130367409609976977331519514326825884658306141251681923990741977919419434127919679708261180790088042777534825172264462717723749508657598681412747416769687538029835060210938140616923207285542276450733053827442567127783981303110659527118719316477492054311446296742009151931912687672330577863398093881599517974833918575359262349117084913560690435883064945131863131777638370265164430892000702634680154110358176084789148596530154772597626494961055360033645118561503129652519696835825714116377790615838727608314931569439574169884818347450173195225271088612481659843322719958287127260624616595628166077827732375612429359301719000434966306766841298058421277900870624475897413698441444077779309389895167645588893181259548356385886980794240618429329255927351003351746829948395843060591754346797894881543160357692344161933842328056734272643147113926955188029171836939452961334573827708576331314266996706120419113594049379443965256735500988939816182947720305901734822206262290177867936497865190178111740978440174831649100568297902902392468172176828805839671011652194705952666569289175159334145796119212451134956017084883390063935489825078873878577211983820760831708140882822474995357747738821498238603607618564665614637170303729565810986078495475994245791780575030578213254856788540740178955905041738175998567806573594707426375467154115786869431666217305303256908895689469840342648682565194017152130297047198739531591321050787185511097621740380479837180902080632550523693946583223791979237303255157754718071082901444810135206020810149656513594445459217037280210885482139432141993378039706870158115289517414035796556983692812774773463596244728989899504276337821159336356594644247809819174404011297552416561888323125493735215227392906873454513532972554140500975761645278424449663682878154165665523580922678612243608040065721578893225036272679539664243319122271975800340987853089053055170261425428222862638004104313688409132561747346355687818361384708999794278647561711444812977750802875219390955642514765580762299487985689986123440886981546357009151006421370151832711571739234412196560910665181797754198267601227889374252881370322372922809573915531846840411822121282163345466865009330550946721845801229588512755755685909754557079623558533784383479861528910520538587532748337886700539651789159640206546691196741553995086827594441110040518103709596579561946640134034845196871289407408127478182988590501658290876056807242102247112486824715041932877877580409299583899138253357516711653983747329819686112990753199446705306473057849455709551993967432454755366756478775822068814952353174810644792440801120000480316984038200329654638567431390292319713234972293762988885338876142512081811637431744149392644900524047915827512070096915034688257763631014212496980806708837049869866948289584450910135900120042107957638066398749687371832226502137841762534602872573822527157649044101419036551707594598592396538595420508342092153388822765616109284533633034459078709886730132419454138288200289930058394011884775091537421951744476220050371125055037955646627951700981875115880362088111680146564858461371737928412584371236770940572084344675960570304543795073532310730360901038393902632599143675983116719971449989101911070617448247850346813901061643461942542953678182071841777062344498035729879342817898725302369836347109714410178881187117414271279825774807597338636324472767171133609712118444005393826678955089296402293645337614609680188977161157950265007633647887596797700615353100688382254483705606741374561768273770801870869730008628160750378577540300770535187625674963390026956053416584611578577761805169116458593674752063759791207435255673891227433437266386865275917971405501324702640553151433759565692874394366191364974603388131521814851360821751705659566051775602572678827669156874273526061746355171204925479000929009822951449364154710249827770866195315289475043586408970983111197364501915131419680029084789773795622458946118659889603742162078419375724370131375934517779589515728537256335001674792686465756486505727386097190684701699091954511949230349425449838171335533269646886079930493638202188848322947732776762184418652147037751478862179480457661754367011582268127934995109724298379139706851778647385411778385545606123999517198345147758025629248106335151344057834574417008063667126166707701014552827398990494438274418215369790750092466949282101010947751545003547568332909269465345707148632984373495951519617732724199365853416201595330326779655827863065411447399192416728171486694010531666846600628479491174345667903732536921976385920254150157354827768292331273122075355672795949749315296277299609071409606716909610870282952638255731913134945062231010028126354169394749861798604039762055875944518026620084723982620103366403356312073250990806315507540163841853713137970026344015640884906093456011298467280569696516645793166500822016128122666496085873335256286126758950143922512408602460823201621242059483491628474109987138855166891814119378853376249482654807954833571423830128137235026789620998282809081326014152747419757721529726458920916851933153980046069826530346621748314748936746540898108711173122871562749498718407844783356609180126572947630165773106174981469198576348869206903418509859318285040440119949829057776607783984840835872613641389536232087548698256339469888409985526586385585515735810517675940618481481929054777517317428502778581284145976795242887969903534632755040077924458377775360413281234683949817408293924594535480025013934815815672776202444749519506095686441153732768043420133121310364663600261262199264919170825442363457565504208449518556873398482501834636494757475682152718997440489191458532433588747844835177327538492959051421364075410022155810101723646066643264770652967575420141087992839893520894321241762196142790986991638745712824925701984529289576821935541114482430219428335605479904176415679617155123796578961306247172196005071846596529259477360376699165289186245723458854982170662095617794817362721038700833809185431419259724159841124984426835947189361351247733174138320603962125739845633954710568484759887110435828125008655392033688217374716585427707134878547316615142432299495174063868418584955799838573689375239407166925112168937155703951647397922177571866029621072714644556574122072474044252232228902619801380224571946505831435462317798044920836443788909174349971953237223304968850626579830076993198776818280386718555491788692634197381101589769576757847911942307988228410960620321187277785572081087050834650747101579625402909687647958610906696938421191303498097184494700821855276605258068140788665297134993621032438125684035556714816519011376495726117833993022944711140504640724165136333336355129462407911680773741514820665857195976196502890971533136007984860460143806783290325323761265181871375586568611170707126932444442831371270660651908498975216596238317537897774499308543769843566874405569616184959381661540460901240155504053177821352236188731360945954803630964777780896191975418176200751848860112250086528524527903597158974537302812725076431678776057260789014968530989463606085356117995448133628298339892384207997550269362975398052970675792977357602421841751865668069732144316896173904862499815240827582250353077173147831861885690583216675232920496114381521124135849605662927340062308317094028718985345892138460044769114438533758469305983911340729686700526591422941048943639034738098707095925124212328932043896598084275755462450591944198401415587262629543392771794478361545938963816868519223700658207750338201106518555504972178396157316431483638361359832119113838724207084815087283664061944816194733538547467598948619732110299091549910544249796619705525444438283520642481125095290880022207301448481474673872848442197322779754885880841142860577375864564637692655353534479267322960148218395350383474930631711316194961695991523430181932863630868740262765253191782701368397545174122847723940585077596270702030193665562249303589220200924046533781120910185689624132910464580947916961339654306856302537906225307446441040215081394026934655636992936311294002565095159150486016487089215973137924076116886661727836806820455672746792716196560320821473530985316877286383191487425573247488894779172345050342649774996024315548021772601228424978997450552654248117979351996155651523876879583470244661027757483336051385561599844436859088587425944418288889959035472987609528030211503450945903615931823716602478508494613979444800110320485174635610945489993276661610510655891097834323430512667933528295069333638740017398361285905410534869749422029676958587733350523371124833238972929303722702190986894209650749963592725994191687575771101120607804064503923007351790264726180594139048855972143825461026039443160696844867475397643586269486213837458143926894186169013678792340423497463991586197597340209948335311402606189535042871758964518012719973503937334704326788865121559768795767234431382338946522982211362437599024593152421641639037002964580539046294152419631180613719653300981965721847070983383237400396595166720300076285429609718456860465184305936502477885770022532870369626174504372713720820942796489391974172655173273473917568118027704906247399651037303894773165986466503320101429161700464993859037868000576260641366895696538010247721430513618756355970950003861478080071108614228124466051425541593569415932955873859270007426167631892220127227202734927421969527376541880057674935114036760561055126463582333949547109941283831760768128471989551628552592874931788807123079591756964925056387149994843464992561396514043837241551110573393266651439536158063100361716274010506289583967258721078775687203043462003807495556725974460864057542673735492596445643763217198936141445459779138435886292806351285159203473940039481672494466635864101902905441158938492657373783465554405295115006842466036955509658621304740618133748602421608337312024063757009179974437131162290509572005011945264863048324169348784588711120130935902405725724287391437175116601346768036215889093643358340233441865029402056408698069221353300034078703013706087425496972862386649067012914644688999955206654993193295988982130864467349034691482570084447862110016460945019672438690649413993963888292686849641166709556573803080850168427707974372211820422233763253045656537818874054772318604585617656457999501344273837538251426903634321761401443117378766961958771616548772142710312001451298705796541662133764429562139724175159269077132913416863724874839918234373028989310472869716471509390088774763135974894609217397170111269578003946348906512313438521037600477686729756666366512192211368158954278346748646528271035646740188679865201162848766370393936799492214079666496108171699393659819339492531929921206409557985176885140368451952385301532744203317286179855388459620258908728394731621298444742558019068668148644634444846564620083316048809911409272366745472426890550157374902571193272937442294433178607994729708135463500727703230304180492869632161798002471655937003221043407217837828519244935679413420850650141996526531990929868695160337335348349636858007378142700427801952958202187793753163338095538705931534617195005113879009292083091063082974857945248512980026957405983239155082398286513562217336708635044867269721863751188070663918818659755316245705573397727636454388561060824617366003591248672973433046016580407618482826206770961939333259277515558745931762120726736201520539284703892369304884344571675330857050646643347308186268466964153460952769058683138481830187721353883882972457192662357846399467730329278490868905106099317398549671403043027754957955254660413229680161182869934441504638150140695259351108860760233826357816737040739248335053307248797209126118107860037278784947089301629008098175861633212608719058787274099501696584896416766402409467970088020412315800793637648887703578693528952762940228988491407860461595809430867158294374759739388767627537443459128363161831277485869431469083003894388442186836766210351099304515565961434274058395889545400275989146503813177567461864469697846154581792234701137216750054822524737990099101957472343878744603885951027140949503991340013946514396542047595978279605208242959006561791449902280121877928922353186254399957526186687959869552804604054427998434604911083915811864394953181333070952375046891831323661806315743232527301085626979598836826272581774928330543293930107410550631063612578515513488453908960019294115252025505794779423488424586554460251226051752300038010440345016172030595346333657730587774909298108783588674997162597064466640939930174230321993989143066413899342466326668450025749891164257551531051829225773477796402354674661443832876151047155830129119116866816171057346994323583792245676246884883698824415382727512777812721737429657565766900981457789816010766614490527990170015297493968900599662783129495065180300915861819246550607166129663756761721381287102810232958405391392142175511201862912057597148204215299995645992508829886253212036545213949238091246040155599319252801973922381547700865977811984906808579329118087324075206035624724980761151642981402869305341621289568101915459812508750728211852272018250424953112508661387618369480931125249579777839050091147552738840624772885648098828900232678337112764956686659556525773484827457740141227187595510526579354969151092341453611134430259885877910215438965366470313739961854531335238839994706359260256122950247016874314995469994626654678187083099430593890005717818166052626558207561194850146935148850519052991023965622166947409484064038063909461735627781629730292763056052427041367171149676306559171818494286440245220392695064120009419803242721560467589858635162990751960058002052005628218410838539672378391713559887637170813569362218735335065186694378841396675158998904188660806924486551498691537421064047108279968882385509254973105421569407540747323141428212759407396109626554439224649260407993272655852048149175144538017356338885276990598403570320875022869329468753730626787947003916050240182041318319328614633180288198854321875958808360963444617869430276012084574954211576963261831111575483914604355800730820613714767788093998350301706354042658003867862912243319941748113467823551914033120625453318647746427073969416865389281194786653237199477136246156267554443877691346397412072445811835261907178876336227751363500247117901712971085905473754317437029883964055627519997725353947317827068178632987765260959461077423723926409263746379822426729041660259004986377650829897201693038589697283736103267385953052796368585481598571905151533117106975932580131826251314240336995709234144945278250736434147767520168043200213962508015340614303936098384474263797000734973122082522167441740324592774493952295455095361445525047016780304861729972835636399565627346778132871100605703821301290178331472073552532337623314984978827006558852846583500874829047220641853720822487807253659769023436739430707143838203438230743756548868569788914565503056638663555728845371505997556917251827566210715782440668794404055755264653481854642763285882411614108601956070852947095491773059194487658824639920004347258474790996755661188527815315446509748742648348148551990179088701332588415960066630944608298885205024266807871239853506661688163120946529697706520034547317388820873007488987708020566372614652465776407995101676585319172263960778358995065953227117253912338162098980026832334668397155993414258527268973156441841328107758768302535234089226975343904928149666735021965813885850788982144700098399259819327395727089287794920102825797918489018697873493075009187867183954605912754627850873850927494296752871712546755048092089558615456283097771229708578800904391377481694454161446345819217047112218497134282003965524702560890557321858438570003003841760561643616394801059550576076678424848642583628617129187567670931396841472516337852809918665216436065230273516519855788650654332881584053507277716559467610606893672947899650439123125603206048920731953839782677273531238144860644259957390530042826101993720413503888209137609072472670488418906659661954331205245145134688322813946699125590900973744827734818801233309602124890301433992837420473436947242712018454339941501802697473002386722221437711437351261072567210371153248201089135960326538699929568658513240643957447456864263804380370312782999295618375022604142900781924024270987319953211063787183415517535254454971613649245352302032087707042331270674224281904606889174652240472104297628809839137365005534340668453912088452156292928617550197342132906090444560225554758934047220056497972464485311940270350673030581009381816987012696754326921440320915749909658926406389784774023495766416515882355614621630588035406006697250694208416557722728671551549178732658158561065829509713721238951794103979731763064012494449723767485892388183404704375643692317080546329797085066845050497509691359828100781965885154456098907948506052895348199213650479553850599405234842723276010963262791074922827276977324544216126853549593269612871709488210026287579632155124902289956899621509793243256397207667145432657301975082894196961831074828857481624837287588174968992828826093188853739256365570531767261654907851754069064805073328814793118049855066428832849158053891785204963975504560944296658534041643697369070814181776984703136182929371410082423712625432612791821135418114720679897241596810252288592702444226129392313458265034290676592656252186560597128311572685571922500841951176811141187778416124817064446590198460461857959268803031784047571715858037537698342025112870286919596531384230295813217143955159002633524177849039619295125585355557887164656032669004172277804352438120064326340137829446137980586877556595621358822122543651778582647784254837002421245343600330819199678739310076682419845582768470854235491902902913625012876026085159254310899284421253692717522260803908705408255392047348495351947039203487632796197668056768759626946680028313768490503920399220222348869167050444373195736893528677276352773291013144158917829284066920089471979662781972671480881873409947671402856272088270908584008059120945011302454079172976396199177570732506894457576118755457355264003123463825896599202039194028068924199799799444183997751392983943772716271162515906795755998001864021743010860925130566532629256901902869533054640639144339051641413193717692778914149539981334757501421255552377774906797751529545322296185562974438249394828059152637938592040441635463468086441694136478305956523272314283538047227503989879767643801929126071977517869827630049684247235231173068348347180367402780343687016917871212524568566050044120607920870558691166335760433017824529859274661748333859151286426596285654573498848987588331725056850155081036858868332428114356140947432472051459457954323142037807031829781570894083940983362756904886404300476081356778758605923508609566004568098164957612051618247800130752402075658214507371177015220513155300673806444135519311899924393925785757331546120085636767068515043176657346949043712327179387093056697616844170655063638155776141458484728636884557325749625255671252514977976814101655075567172251245595835420352821965879635121413703255242395623221947769152294766346703164711781111671265261395305410589984463547320754437749800348727085044653890068558435696671383707593017577080664588243614046049211886038980583915924219494368862793177104231241915735859107284233147251393908007630365153097160449782416676285585210450470284447772766049434568437144892876299223854657980210281686017159286083619713244980210099727548114217122816515867116700863335867830064670940775203890704984309036416329073187992072814882409402418675845237794128013682846180863930978870671816675587928774306161867072781616349700782132225323385981655423302309326168178508705688352360473459671799444764329238416984886541320789463940957237840835349602561993326231556338761900459258547923031186757392625322661347825764603236127529116577489019326750347241031479994615061737882191710253876365982130313586135277202117626712971833765065179486519981170277804693698349105994038730664015392105762536721442169408747362035172653749166469811912080784609154187079536813850706395258945587744833194261957222742006778143687530524334857454632242508448398476459685894524341982931939355835597346110776983115437081821022950464725688531558879908962524788699756557165947124245387205945282908051929962691069810840570117882223654644358209212434981523145774298003631453807627511112691928779789521127092412415101019591168722774772051508359405114947199643433647719782237859979876672618167456933174136743093201178936051119825479304904381181612791207253936920719499144617663963666547179058225453440721173139754400845643155487832670273067322662211606674738424917894806085294941525920157015731644380544896766302162016445950520062110770597188414150460590166540779457344515666125638726808867202306235236933899964729600417891245541580049731792854443023013009042035706507314538890491291968804692542328643865174132713272383355044578491476993890141474138624125566653522332284391901192936264919213832386186649202425565350420096897191105457559138848009946972631517515626614202750324395893649156753501373152622260559603034648668831309799654795346841506749707957679781427716903022922290176732190741597787512085609710671725390246904788584609416369969616755837855773869632553984760240839538609911702628527750322049868060760205610649171336674411917343155929414168242334265611462487569907320342801682981776517201731760384355245274357705108929518833546734163334309487877064027708248494537706700790450542742219651743947318388383518803672492789805020860238999429601270336131177631654754190242286647837640199958248180782291835058445411961696149463934073754596625381820089191863057185559578937764804249439893882843662025576285783096955711046101333972167894802316311527537967127475440790036296166785880609944362851218497099254775455392750308773943348615313824875234662794419404773824877292740587323093313130758633019693531645888036007236069963048512840977789767034113398917811782508495388801914689115310723178764713125595183288302490863402555781345533022188349454791438543594542429076209169140288887870935327013024597796940254549187749102890537291291462458728225377533387322023696971297541435192634766532995679290028076189430677912334538293209059329005626000525683021243152724404279095727223096259492447533695496021797736373523186638849174913143572346995826527670871064308568286125386191239104271111147431262241965241719955294951520182936994067057855215804351634167580168455729266016678859536724731496268190761491680211377398743452151183639433898085247525348495065195687326112099942733295156122595372546518449605895150122958033017939147252487735917422960551675818376814466643798618395025722600974931824275276179735728199901168962547362189906501269085100122127739897491933514340824471208189614149249919348919465196655354139826022542393589795366498157281156182801325573020638026376700108669256724817294137035367350558716196785029249636735476421502350704983527569952324029046732916409763181162887611711682461047841074972864228234793688399290891038245473819644966525195577321622441659262147321502818478615352587398302232056974585889700056909134523895441293728904002907381675153180817653985723936331820757634726266043713401344737983123326199257560979059895655010198145455000947922395521288742589551032386655788745094474995952951586518938522469220470915984350947965679190412817156588147659127965809712680223609433177586645396297648118957377242120624898757017274750376947829667730538137774626970854936229595940092830675072267848040919285112578413364303826172952008542901673927158690262299208838217085748013664580510158339902960075731962643024892471693488553732624491261723441307243797802249839271246433020876664875589990663858757814576381163601012618462792618870881935689610073863844017498158825268726647452773637272596021320556897560102584204846539354823180744198828474570667942711746848143572447229906725291545790760469753399990336240863910911908656771839358186773339837430215597389571429712800378333446005233899016624332985123929035198627614972820706505895971098403433166280659677350897624516693256979458924424027527030011190714274861911389712107607217627977059863029115189530730051887084672474482868905814729491460504259447564616771667223662172599657640221005732105926007089786081638000617186534844067931169844146733892962000493864531248206105952515536507676962776643642883146084952320813869705104105991018322998144723877097878684463282209470416255362605761034296685020725252606311304762129435756910702195949849803871563098715251369595517555572754089591868638134011903176281636845869765447488615315561708352047393001318106187737883368166290556923240362203474739400444505701328953072128089721753602117907187827218158414027085026892359490827774969997427874588034062526345799671606419137784873288426548901704974248531245922813537390534912034225579633173688423127357574059044909459642323880010215232416002017639593613510266986122307926439915551418548286114270128614711335238314179290734210153124942178501636368698616437037870474652710314734168620403350817983221737111311450215324115760248124507478555527875745438402720707734950119876344397967173118252121519599115103146318211326451989543631484636792839746596298332242738095093548914388233805869555860771977280724102146029528710514592505248840888712673720170371786177767176184789957518041101831423980308349340783067160583152840496179152122484631687734239734633272265628234506889049356977228493691117022877771870176235838944279572939243458213812411050345129514449200812453136023586887781926690765644640968049844531250294784973936223106123424399191945134524476290811319754183775462171907952435765455443899735159366555320302764521018606747744801254126755759544321540578648368497271399977594395280484280807095618902210684374983309346094668262976469643954466684879288756001965336680668780160105507321933272529783148966081644349646181069760333560437698182796530009160919263731899330938398865604728445280850655343094848262168736216808185099950183547788817463543705834182756091315723505828605317629418618570469925410903688465273448107444984965538731822954088326978171801411628824485299460870290075744919924167795068138051599919808959229279184968320149801367563298819282790604982321966082018726143928835019762032114121183687769441305698457220820327789536266607804583405123502457933261780665200589702636394283558660432969763546962155660489436120135680997305850744886591994875311300158638572694487246280503078345800508910750946773852926845837309468739784504109781270660668986803559025394129449855556114105156690286869584677608659889188742313851587071952069992315699930055231622429557497696184920620787532678592304820052740395338397187205633271743534421812731033865730207892491804739924262591196222102047249065837071965174544796291433856140307586982206642743691768626976333060216004038340386970502950898321772076573869299982197616946859160693070819158863263725797795098094111190420802742066755033817039091475976711380494462218460741268428250829003797516570246201933876350985013437070624011602310642038072180768545080735717021777354918839882927822242068079933144976771570633510833831266314329580983044547042320294677138385694315016186044814686798214305996508914574324476361802835865411510454905473802413993323012706931605348474379872985691867256516272058271618736687915207273289651764381173983414192471697848716050001417972919101417575999802587505805119130296347022269142119908370577240886726729562927295987301708205305056481125079019117011193620780312090465813789543897430222247439602496938253937023417462251321118233055175497773358723200541786869240519285876483541711045604780917798082414400542707046042301137673073888464586980138561835007408908694154288473671160803410678062009667654938705062754012881863951199862500038833394002259608026971799770714651664190152826438391862453137236789036969946264130931343424597594118461824189443031515391810751700810311514856489067369374004974597601201934614676489051813313054883683237088318227921478524040178480057120518226181108603225701126957832069151176394439926770981125562191594504013710018838709529276746327658696766124097363212432736328200300404791899359661913703967599745370657330985295310589389693773881789929970360796687008667029537605792074713167200593839238452902643350733276488365361777289452885569406900974886932546521779058013670219330228307051890697417440522355270488376176132769544679080416336656730172236354666645477965187283184901393949995547919299282016977405984058895613659262066587153359281394659978898673115520384619358361460851200450807997028726521083465606070684772461111627004096861018806195104870805539690895872320981960028746657944629320979214307843452762192016384726286767920546294498714915315070196816112846098104106368817996240545309812008608651260633732601678916080756016712891503055237429899522156290590323777769925273615674613462660383594942286127823947342551149672709232639824679209008231760596301116820025961985538436199761581517935362877510718642506247691033934811113266319276798749545956580125375319600711308501042342451334587925458616216012232586367957364896396322091209393477703985995496530381908879763913204625279614732383007439947120402680369390096983232139185520712083379281412613284460418361025082463618568038799889750520809052513687492348482768844886774368630061285592290475082891280248986718466062084155855427481745227066007523500923777190462645968654991786774796346304486414674721553817440210932193295200486994955788613941940446996287968925319588226056760606903241324741208812458295371407142844651801645764160834818249640920734944509361690446452597531340595606584544216028113103958564103004141127818936774179722040066251880789952733448556622078481609519442383558738088144521334657501628569605079731379684399595364793835465862803263553071949756299865106294798888668806216199281773047523623198794578003080367816482701887107061918258439006886697260210232955093570105590069121378162268279524692410561170771593495505060881790920966767912797934094603408804913050892086717443481992452047699277555213745318499388056569546233760933848096892810159295365097063904024996149382706938670641745511645022387949328324411503517576647704322726409113576733423226110104307559583129501137093346891496084792075282044637140091542041760499994029927753553762151749837444421266363946040997437852289673414491395562593976007059918432253345319602102147310472231064415355836519780286027974994539262686390765029556520771314844019224293795318211399130259550238573156214020191830194637596407461021874211293954061369613479620914131183463446179719337252961891281925347732472403682427617086572953424621530940168092139904991055541422293046177527288980018249036117485548454498706445507878205535720276517571373440460591105160319691391827983150073476392515183737560345404984918284738550452847617282712042427771880144784579481044295178247209299587621638835991741012691040513024059401462340654545154971057739811535269207006615349172657579802081170306687851649289987255561031934837796380011031347388599307079794263964285029449924127801257509523286911577554025825008026025268496409474234932726454660048487917328735021391173587321386250022856881387592263375737210271419755204380378811722386697229281436160379595012473855300772098784340046504773993419753238301540833112486649250328931700727060267478990868169452945614132863773321923585972258943004596855254395253331673391836768379498114215785017425630755984278679064862761096373135274013542961606320834859571971378328696974468479968396610530526230341644554068669886690544381390927012368443599191555920399224623257022724898091505342615913035272097247040132074338094985602095549726898445866540216108694793741279112364612344933819544883947589208575321620965895909185084581269877043828154762121832166080843120818750735023971917685721958179522568295504353123966239647795680561126038848929297163892583044123281987403927002472065770373085316422751176852503090086555613066297425566737573123960615130144527603121893283292278126338539689771790386543343290286901702814113603128411806765367592604525239514251042827429121492704966888718218070612147165827887083094089604612917274506905803439637856706497628068025733879244516391207596835106477544732348148902225601373568532421724854492161924898670203602701605550039219796459286398522488390704320506161009754307861128127386444269386738676843817370129720356739290176262174439329543738423074241931959107395539500687055672656956250154812021475934781451609953399430463463840309759387804137661824521851364428053113599411372154291245379249184335092627221755782279175746281422007095994765466645394451935346519688761626459302643641561172469936318890909818672675446446313583532623599827179723149144661910121429634422278166128674817786925328439484536226084924237350974578044509154152328078345947715079842363139424782957813877083549109176545564401661394256450092754935727133200770277689516321002988900984631800017081373150443809280103741726252329964465223583129859011519047126646013565940705389527849035132936366082571202090705443859946180222747669776964665422960041119846263052514478224243825152804350341866743745191123038884495013573903601879980544035805256960498493948731225965211524981812390048045695242515849824525380641923897826203601673382872516196707377112985348005126861572227663129846352703965943580631150190111318842869555212778317409371876092789908464490452063704142331798040640085551812040916978021174940344060626586177550447085690881456437692899335014303021128740482147089960866277922888327280698830814037300566236482030551560840836416339310940087349973485870384218351687710880548237518328067848746355203812340126067295571211504961394999825585655677180851441200849482594632992291597816472183401803048103005286618982282501408870666586822364723724438220848254371470735669794063529612157181226181242280582215587077672052951364314672099849657095983206440309127213428201028729647086979130561026428456995006690717743166533750400618455716474771276087665343190242736387415331730357138983723626720954520597664285730021831790804630791225071677482848361390021569741012285740249206918145459381479269487447200290588667173800746448208382369213633749704158784748067243916919409322540413567304995233434261945234829762571706090345924732381999609809590845156171497717598132737134326189606531340971917803455656709746722940281788711417549533764309725647288904888534287759287325336282939687064283213368292794797821033132147765157367556533461336616594795920046291044592224077864914277932287441123591036380306155894103810787732951348928468101063700130085979729792559722536970495822677982795634281781200212109973732720946955761490499417748522048286223405480226241454530321166706289283440314806956647950697599593243810723943634519505594939719904863942697289233222842864075644494640102664435744857342305329755790003914200354309224293685475040456901127260523890721147790401207571795158859928845563193362556691009327025246079972021441654526852342163579465189618165346151942108190578308673496940955675249194953030083294543668735370599776736853408556656603896519308868613658753957844032210155571549936389683733917765642726629918909766156800632578091704447163481001105756202779293412161094458996630020955833602478417614921642822174340477366377153910974985409833302389360586550369356508540166291586979265226861440386743635243279697043348250763076123560927780546225200625245349790311246744643058002174149213183452366401062099329723645669267373200291051852524901522573556147946283264091374191741113604156566042463765567997035046339382066702533155807097841972869891391463612366298104085140858402965751961539442635378322912170592880306532755488967061361189087983951156384439055333249749932025439115638806463146023083008100547341122737949292478373286689889255767202148116615945246469077149823809889709404721073548920750853810248357354526239642537207262605574843861716109297662292666461685991193052229606425546236613771161670053691684129346432407896287496578195491080175262235749429851707994724979917927827454189476032895338773645133360035560945533401107973144870803204753687267912075851342829660148524692245679966916613131255362318193136890508764331048476205718715921965573142180043844195815089020198213222927342787612440905635982621013765734449647176040350498776559767370775515381588977707110616878235211997022228060191141355630855432873798647881632011435574836221471521617760250178030916835159271122829139439786822702315775382818186245008073102927487302245086481780431872317229502811271305608111413483253456378626755726624749302100142622618968085319649262884071965239994642873627416213168719003001172996923344149185958169626761436659061054201418327298391780745019637782473053653065939438808326127027766855242379016554784854711252779975603198305714377306307191232205982688308832407891834650020970374798141961050836475231349944488697407768542912789836825371820767760182924555615123756908504410518076581115127270158975576545339013661986259844110118486772925594953419446052602992515782103015046498154931695510452912060992869018147417495403086263676094265661213485500164966086198369251194237017077295667574600899064692103030775979467366685087859687459158725170841566392508009449016672403538136713100468863730163975215376538992951562474504706232589555218073492241603767247954534989393893861611164644714445400332982468551287337525603981086356936704370816937485814419148037434737667167202522558870860781718817117517541058976650869206051266323722265173435008692861011493772387329429202767513879163453097005121451765569298401785171038172165889725795613646368124748348434140868656422869240776115618970015328278251371735198371464917483105931305149695370756547781125163393920503744453774488781271957212236122135925959459944208992187335310157240640247582513909363342309721340508719038761454484525074527619906351644006420183557351516211081422334543445125300184804696949223390122762390376191531307736278580959868764277811412471437118642918482269037729196944807566332966592560711584931416718805625357773216293522569618306105840409624887358344270588700563883017885409337662060034001199262813582994059201557171279933837596859483318301439311657428150590053079816434203838696904544288425579838531073904684385052034666616308715305631727495880890603601232242861148583697564198377065004005829987936790035182122694645465532950055382125220755057066972588324833242581523442505637164534629630089108191036664136041362098743189945587038537647032332834744509073263393051157506973551361124398792810049824258240903837927148236634242553731885617610052499135705413871984551072714960085734767610865178881853953286320017052283561336871274539730138762402453639318840297595163120828990014973941489665281284195580416749753331939404999219379372735289608005711571077990827232161106292292979140358163047308795909649668685407594215272620297463558792285319752132462525808918132970021408098259128577510798700228183969090938345957562115906366400007822271717404670332307157439443131965291615930100526082664180189866484702690048218534206116242288676260539695389989623646596185743223725030829675391790730709107232955269349047087384679376486028362832380064525648792302869516550318427914955312550537724235368394995581024786908793258533086121362138268802215345201996886479791663899615772434376708661376991744356110303170166338737373103890004711408542435866340437253997583793967238981168262603589856528169879884633012957650903347798537327309749324043692548474308526316275859073097477831585002755147210009826075189938228519166675744626209660853155730740571942404022768827561628552990689430246047811590141369532207867946292712761093766338407704493385175948550123962658667977590307689820090595914628892983123836730414420096181960330316404215972512550795001794171026732959691692530817698287854806522070610417971525705481120295710355619666733218324466471887431584313317211853048408853552841690440393761070076343033577774088077871158382450404116728287221146043684313428275838982350644645297907006702436891372808217654328905918317671225430428522009988229159653219655552178018857587088239417704936032826233411993406935168725341400241523035971344050690382309722770218888162919850900591555105044106583952979979679360878436730805113536659905115013857424405678680704259009865199308760260197723184115895945873045737545192361267818530521644409346246613151892638657215075104908573572244012361978158227102210006983806175531133577180862744323617707433622018177473992804409085765398491258660683443253251311439042672912586017872658047232804239601686919384701675989814610659902218256892412787593445572098768983341721142474061453913770920776781214912601059205741133521455081213896451987449205694285571373514751446472427627059849329052183465576979948315260262961945268851143276503563483379914211180756134139102174744362779978911108208064413421278973203084657818627843923572512865969330127907137321426252129604314361923737758147310320751491345446054345012987438330345271458121934901635986391892748804170323727263399020929392144153709236929356272647951211306488467549794715209328769650135184788760740967837159901661385616568068253809325011309239563221848568963957277377519965310251524750038046829127788864932547732551808251014384682694171800094259570078005675841555902277728957276318957503897944344344471026810604088656626025518978179518589057141680588464466205295876992783313614713501618490157200599111412894723310667597117681655182666701164044918744896112156563391519373191306711675817159316707937052769292154765215627426795567179920720512440618000805468653599276421625838565594887681917195180892545772605917480228967868225613733078127282979636060446323503532549725418728794477981928042507409332328041456450916432503828212602056039493136350224103986753707073605710910527817337334990935271882010734847489262347448751660293145089230162587491470497208308796242382387639321188423987130530141842783582534790801118689032015466251540034075270225930194747945794406470207000805641084843933072657077859524509510121716910919173276841328446350846778539215155656626718489268290156444800554074218057931439237263341259947281853510342920822724344186860406503297060948558134148395865222908296721487180660884474980657505389377039878865151262503801401427012937849780811831603684711934551327137169402158794559018313760471463422633773316185686414982174740805120223216169772068574953323664562247615576613153293060174353745374077534703668478149535133145858894232157828096372494282719777718072691667375726691011948977834412861036086995909853659147913133651103545263622028776907669810098047128521892074881166503660544827956856519934751541136329055116674665142855374664820113687849755675570430889132024412240682279321482479174802312317161355540269394581231105923559368609243515001114782919910084300646255694705914830209753507631456585657462963684030778629497351594461380878223910199491991813781786474640142338394156714405547518983369958988724446174813623789491501027155903373023212292377449588161401423900736007154301582007843299615910404615009890187168118512048293904054564496972733568231113845486542399121821013434514094078543816333122570733743501254023323931249031307355879859611179242237758762047302905034484709091539788487140403555184782802861690786026739039122086413778616189865698644285258901808860676087987706508534829227150620028108897179101923413243068076446249639121073272132014004709432944970552204683010264577357011758657968321828057936832803954280110252959550825324525239221951128014150274920202377433568476634424299553083904073430567176424637777521420126940882660232333365227633312415767482800877882176025353983403645669462130389572012556461454085904407795784885067221308608626291449932952161284743841820442754937140376277001747629641057930556456335662581979443464255815052336562182963311453333164760406388065762252855165124688023538953339213730130602066422941967814355727067879281031599722615016124340449439165034314913073569021329516253191322564635326816391397655835690953277068495064366149557156093555233188761665223666068475577646357068783183983463055817516435287183766367822882367054761767036779579793498048729147512698649252922223147962777302003056971563575846682985353927084258838105093151459579134417158323406772826923795372577460179394579633651646735606048014330051228128406680770251115608060787185971847214756017232958057123135652497647102915916403050180602359910114041889683986815323951791139254457694883581678165325301709205282045617498941590200955299914194062962691588269659839886358363702990781234072440116822290722849273781951417417169054486108468078379133713151830127004519329147314402116761219147385517996532153937062252625466866483181664124672203024344019499487709362976093461156582454913847674230588056676610713718058114945030643140949852850851705231631326650388599124662229081227968169981190991527034825914943860024882889025899100100676516505505607604885100616603966555590279620813405783615957123050447275765484167572839356617121568893776095598641764914368833682191376940477816505187213007876497608030440190819957897390223256713299589117630103361551968611745488279290157312355002066081034548490350587782270617155110511797282157033994278081411030900272008572336308719501920033019898625124286376438272571905020899339613464846694834616293929826323351351246505311713017336765355490434572594224257028585541020005970834602605055181106415898866008133196660711759464211816912720845081896282212127504076644973163658207048990736959356329381301490092130874162915851173877417925509293579773383961546980236706634610258611743645533530280659751332083381709370554504351264347298050004394755348048597497424878081040152129965299954332833817420055067253696430773164524240627068086226692875228664388041114248802032251800388146353011779888903097601967147525289647134638856317817396601033963651173543355270194289774013388400061821435429725169015095680426952575745716996184457766242086853629403324900571295282730852461608477533056780654878049829642123019258503257050596087456718519259343140350024104320890713630640808027736786025294830038709506039983855695190769521283534925881174204309419873630112818911228279346301378320850794493125937712085445051808975500184561416789479329566653461179666925581836130383829311433651173429248001740151021329599611943108878752282581391593293502864714303898148925820153576084482976572002860711411683193737480339905028925177869408610171989985635890229036937348451517574485803845902793480807990867484931717562722790341861371322384717107577114294002206992611783452764806211705605167981522296543527377617370710630312402535306637168139863269779670482646090427814685285538446637840098652086040185781093376496015450548733213073567623738639988038225176912917861608065191618968635600972153039880095247491279603053923636315436160223460947346795151947450701525805418261938540320777651020128639593447011293034205163123435889661014527627677534050642728536094598925170743229075561914711628242482193940567784801498384515585850957403764733619456074559519071176735775752353875079372284821721153898805400133971659291055205497971237019176877325278826038912801367498281509113521986492744378365321292413165285986456026778520024433429700381355602973158830905059805629796688732694696246198524182583346008230652531381464689837115344876022035387329689101200972042001746623247612574495219725144456338084092318503935338831614409699792046681177418245766381773551130599024573599037165559426994470874756004956453737755236875303614417032739326113096790168929938586217254324944694024991818345299733922898369004330835828726986469967871020870195767537472545352772321525119670456989554805414451931440339601620990565207014015403431534755704632801609381695843971096810745253921825272843874319789485311045638980961712180365167262664697729896104745454140918060989275045880729135880403349439769602565169382681265045233639548586942729258765972490670561946488131230769924156913439128748859761499673289633633313291436811819943429477023975610370447240009799757919684024620344569970652123022056163194885943129799695690091770899899971092339914137520050536537403713659630965011638727910714383369213272922793905378815674052872802067844800529469455770706941181833924515798430213969033029988769961160458292108924917625400821182364817209470642110025835280223640429215818907339059422988064156694388738784447424619342355997877567035888706480388959037041133856091687878085808239291123539205199479135739440801122049127467264110356126562843593230015253741773828137991753119073796570564043666241073559892839952863493463651117859392379310135085837026236322281165339951951429742780318696488366002881940816416030629313230267188520830025002049577076830501941373898031623117908441346427162317231536127083119367469547931229101855481288889188484968701921502252197629227163164334824582256861707622846272454349554251192690879610837228010038035863983763036700867037427307604217916988512145950767712625452531748824807629074587954487912686511809986677855269031546977491900461459300888417576732428239042437559693734977645772694804152756674344836223876845985620640556109119598255902281009601711833883911740253967887041467464818129923194666904572541814523104589833565979421948965234103273787895877452559786091423363608754644483770727349562054457287319615395463648585385181136760467788244081037144358348669401830169790922110422670660038125872342613979942414939222193550218751840789243163942979281565110969979416616418708796890337889346155106185316144168046097298694812150728821957102966689111298424573917619152693911140581207988687755001779579056176019681970932116108524224639712990624864987957288375813031633537461590972550739948167556495966120845650754784804408637416500714828078818999070949579810414902879322404008670611626383851002480565976620611710960667771789561678627089900915004593302903172198277035800023051048494436354221244919267954138721902464125512524073098408621889590671674999399395448116554241573088872481490878466419728867414702268243877350366899822225548613716324713590987421993738149928326706291669930588103544475850284094493567814299285815760117934110955120254418048388129087104832856155848338942747275921833102246358198042109493551748185234478813469442462740037976698850485586485722242018923570487968336998137078249650945421983528183363918357216404631719515779607174897318164940206977195367061313645696431106826239394319643084067250561369998133080684650413383882959656570608895166691839396773399768728713614710840654136617153782109121440073112504039695995546467929836317270114855843959122671665807872436353987018364758477204514907149752708792788941567683713581149883655609377465832083203275350470390948564672712981159522678748289012970928909245615344520380921082716855976521938918571997897999883728684804294947097326311904706589854722942282912777374980156489104302582486223610693323228280791823332557180771158056899310613151953735184890136476661703465235865103428861791835980662800758906862007425406637308949626569145307304831759120837173538469368132393756069848727116492759136403374623850911182136368448259893635279369448578297529187862420668383504026945333975302626554123127733645710343742540296500069642850984775766367253831556392632043650740245409117944714842622434282929642716114993711355309380857304312565744974092579013944460625381851777601865441198973047271015697731674112333044045052292902381916411224359595889470067689791734511171261450799586485924455778508558574423658329410979613913749856019907325048479334503236632920520913082728827997877448895066134875068566191660773902628565028234592252824097699854198795774090562430352950185304706059372759215395903203516701388450035539265206946846288406868379135703322489825170415187375869987863536572860705072181619348741692294676820191346709018854080182866687242883715362920680086993232154237991633881412476514207513699075001249668539719490545122658041276008358442021033237914099484607475087088538335648123517888349495119750649159717629962523111280745095200292626729967432942368997867291656329642618032523469018593536189495141267438361268573107055387701310684476174679854579629564768180200321014280734367545182690624596412264239821710991942881345649444083871519335468664354330693339475910313595111567829160235572816201848342763839819562105586252136906863299647447958702824594491987746496593563327922762999721953699820741635441182562480415127775247846405021251196003589826757826298373738954876198218398557842659691920700666040463802826438137510066153418333098380214738384846931144408929614093096098084696812938418163795720380961362626444719645404832737896354068305176837635029947359550497554408394361848961139807091789528286540750401761027852407919872598644558941278151165945613922934765754029743107172083976566114111116646777001761266483683846020701780156391562215307208410472733303389467193398453588943051688295867495449021693673971088414757343319510038308224681864410258397688333703827545134590633523566512937314492962820351869885671019380710557326812038885485160611234194310810791135557998662786130549007217453114267327316693378771954707943594539835278905070944755099586327404087005913275686503887258016536434629276975620282393257840406447537366329386796426606211093514634908628930566423378699224892409116135228281627845037659339038490729015445671401749108894092347676823754467787028085855154320070244084334021715315236304371098602121613835345107205818669953378006338480394005252510577439535691279566282253003038447851834506614240075707348866535962016982349197384660140485572598108917832476460555932569551679787719146554194638543634945785327599380732935158328609780075578698111514377692985162319625633599690078978680275236028045168984325502926496019755295882150063026814823517162046963208893847315771898613867401885912552931891423396389283818135493771634523804509563082003411436813817817099037249861349935007274546275225771307798647156740930997673874613154975152530990128706771071436291262902913104304903750190242272119442348286492645118489178623167785379621980252757380354623383392329911892100626911550669185609084581908703908333412044868725478710184001011075841545392850513452096884944393195273601229945748817078362492428036382195749213678810317168790762740895161779945189252332674089106206240610721395734137261218977440399953081977069941994875768211485674974631178979557334422737484027363808814394487638998520085978642540569618600601658394322532201559692435073689769913585390221633398002462110930130100338330983535574107126554683367203077437664395619255068279486693296336952930275917875446058685840118392084322602299268250239220462190498530387590382054455358130475750046385562512833533376298671295647363414090145889192587054575270525740753169325483154721854027827551125007803294744485827675373149248953856102330919139497923920872056302491300254676462742497170684944346422102840626050409856433443091269111077640739356508834291019488200999673099580631176648357637215048537515254690923846767731211034470999199340282885252781388071236243939872001477914026137593539395482166497725163411086918138954604381522839405546847413609256191554357751840042648131363415073971767954653716396877335323125094272862258494734800383051892200100282546227836592060934397514784297345047240248825830450750242434768835639942120749107821105509871962801484015301660032782095824451607737007929448013476016541119222296014926037634094221869474188774115167522329149181437611618728623110390517094266965699522740367406942249729608795276783208534784445448518129878345121191362441445546633913670122021921626419400789869328309084251568613431274434245742655363948163684362035498520464259604949350429049556729612689610362908667032878550699473161610051730981312559278753065623426908214508692184241722246314900371366346688424297798279560719090931396686512886511581849964467597364538289423924443030892944105000729024028297567659355600071155801586076150489513443702493745256438638354690816892473765167441523166569698800732384049131614785314653308648595727764998019824054530410960791501935051403148333222832794770486798539994078850099705991041290750261427677228250081531282688295427202538998017989417912640438909925604092987443096630157833406333365537301250213229528428835576164236341374793974477028016030645776169228495832227410829396881736991022227423199815469440736207313460172321658847221817984828557768398780575381100589932567286503385653018507231661488467565874478192864789261249973086987340751245658202651484084241198500475076506456323332189063712214713154313385185157519291121106805704147257982852963847243123423725552880611240054568819525574687632557808273923227611112108078548167485929790935687603476562925092009430681768897139942963042309385547290567829146864379505727108370218746140679897064003950784930327283893655981577446522600838658723637600078818116834178147438915076353726444514632460554810998933818041107969290774395517201958471355112497085417742265030783057110780028776220831070803960897935003621570937247410361884518950393661228400667018774910888418088680006584231550049082944826759292819529199843751465137517628689018216516450137919305367989851006709931527020494335284946221497876239843839570501821666775432178547196678829401337308979616043545167175628770883942494231619837891025182223706572941104345261601689202983014938880493003845433879910846365199061280543099131226615301515607733306198247505283906995465744178320810958029580872956561949863640846821554135568583052168110379568172764849664668314882635354015059958892843028805690436196406900123465279798656308401523343104373258108033865531477702703219733838441257765622026729360549639671333626903472856467744265854521766003929074803811346954614175166902107981284286965101847933652077695559583828107517153403570025028049229424556756580646433520075834741520790205224954556643254361350583092490691074920579658284472982769090727357088757682039401577265845416066443300280992604345631558151223564409523916971969367141535970931569309922777814668699279781203732815326927267744179716833847730899700930969931917534359302958665145108092185707525247728980849275242465179384689300334098826262722656661745971480470474052411285665926226668834889395901123343961816579678034069471307836674394256468991216413705225718843639459965411660367992986115177217201200998309736770410687005701372706026510547140523543678897181532062388082219568855421705688465233099761055293879399995031222311665087475059363424110951158766035688475482348987055869290051716645881898320067351776405141864570733275321885707418292134188518697206860435732550768548962820449250607248713882594312409571955432608994111348373470495817310956588499621573766915191203305953842731117492229414088252354316069889688963477698063142260168403288140790996524375083414315337607834406223887579672934218679891753416848999443050568455435602374727044698666069784503613427721905680839505065225229497401499149037440221774992591635163118217938982608706690694169127706334044842185262330480965252597762135834014618120926845209741541902881057306419321994855532124280963627248102142543656635102329619949024458096419875302589879133761766404674439850331411662136790409837375623959608943920004198326544250516502054668674001227963692529271896448978013496189267788922033907594233918331289208150118158564781708785930805807810387101710583997237491465023820052109373358113003071140916096778850436717090213549701208186212823200759027746000678667512914721513663623601143088832295790765723710541976498179364625010522036568862586906419443753777099358365373059037612111392997868716191941222028306643328681143677021530282106333965155874152517922083014588099328165816416429847593067202189980695609508429143633189080545661931745053736509261204889147177860781270092705507397526121233885085283173603641290245872366136030652839914912616472997584628804005495836109260592705179099217777775466169014449319350760888533231887517918188548347451885294603074416430151106469943988500241683402209271956921361811567762333213582643178659778053546199792285808095122493482010928267531669683237888889981379650597781587196100623826183096770725669177413537977316353668824838741362542202275217698013094071092176631130894058341645540268061610714321217309748817782245782615730913901363115813690294688098866992209097940220101268110173745734478808430390168528106646294068533840294334277053718527635163402815468751364446071204616413628719432714660143475070351617797454332504798104061532915690481804921410844656595309364426292732773777572270810742842903302700760811676886775669692232208275500023066954428046179492010690087127026144357249487874969414810420713583544910038229372443026807336888037179087740555823261630620828741796115342103676285427092844146755741243384614928911601146473698751356523786982548988895810239796020520825824793396488505245501688933117023930361525116299700094100676425965255061011311592293541815948574344902736687500202885730020005695141723452300417896406081699101807017986543051960016562146538927621415097884891010719786958268815976321391395557372247100781745787816016510603580435275516171944325421554840908993806220465195976758836935592958050189923693169282436689241940250201711090918783999268342671778430500112302998790876884113847755752263131040949671127715980402645015501817223196489632661850057212197320609308744130804354615221575675167889035917073468476046891888782420078527504927824571484326718845295887819227028772257390181976774830663066816558698536435910827740918092216867659611411414751440078658272188164165684788485438312634181925394212305332197126367261913899687382257069233454031856339113331742319891223128161662554772496755369647043845478966449822428643194508363869699141754030543138857955448704100196689163176431488947411523133144663445095293959196318075107073813557096911737065658967560310513059012181158406447120163241291319693705462771624690472549612557854063766919477328056291568806498355412202484426469981944816587775888629650119415642858861667527900134232009465787441931369117861491139785187374505516620768235844080809689849463760663255720013477554637858917029609018625848269901908156601627434729647212089975332211808503522787090206616988389216698136041016195560969732593183960698603800254561668046165199674614324097528521477996604458087805578846347225515669471256946344059044248248369138883492286471122555203458306202485784688867624803251603815982822182461232249955514224980563481090284292508878063735293646399559197177803104638800924938185822478540224931816875568381458881954912803529520123576680560795973760086347627225342950474543000892893058909353638692767543066994117921714182237182656069045007466958557732750353586208003731947054030429464440910610568355762336202419760479795184199713662616931458108350733029434746286177102554521513054463204581819799529943195718213057582220637272496300512948161840594269580193520757489940272587521119758215639600851056232992268996002177191376945174250546203850867335815288233332104388783892081172263697839145888983893259418444466203127311534119962181972896589847477657186154141421198638521030686209204742844524706901823036837561274665643213832244963197418854773296486462314585452135688567304269132568592823493837507768364314129137162293091859899899644410488203497104754646031780657443039610617084089164413307514736994016727029997501463053876364544590733598615357809403774808348285631953478232737491900226294264525884329441233605122394808104758060942719815407034575012466056356066953343952175325452114299149435452002241895751192872271081802405828393229936403627514725039682713832441804114915852170056883845403525372138284846911002812392490462053787359369774173010708323297302334412466903951060525747944244527935049786362257335906882821648166521231100885436781903864163182015224595216688796039694637297633699640542554450502410691933487642589795629392317401492010951128400807586434278437641925583701245683476171766621507459668311240648179382380156681522913020666277716727769220536265122885774914937406160817882413487410901767316793236798093043548747910555208074077408883319637129032702842920318601522896665014548664928537265970508451061992211817718671028684932261537425134009883125971531819857596797973988985594006418840475513041848507918318872366533751393243049126734166720465688932768280099768358532518550998198286837999965098324968171617540480164624203823624310218167034806786762574437077339446075320424354822924537008761580859913733855810539975058781427151985924127377020862590659492844558621783486904875777840673694450159021158035063385639868164420336829344962172458972164491421038750011546640893711371285810222897940616354084453779658775384832237542472660092883837744650546615664252175981868036774122489420454606822253166304389875619631721378700770055340371266049246414122708043722140486558989931480175182416850450322570563082603921937096206579267341679014956478307521253362899226516965758158411020561619633634597803646222533133777255015373471598160261124191219098741351761991369353127464884487045503973431123807821283461378663836262936998506244805935174957403057096589781884774944666042281746930423035277542131598440516204338273726067882219276386068145885819268015236955069060185822603523833983408208764759364575392406034166931160153985444129703951824185698538303201547844551120077291344544919750013307107052074006865003091511146745545202038813426284261440136150779836803878927889234783948830757821922372838717736475659107298199128647611014476234424952995280655819060135274704615131117548377468300263198145683468008426766041660511914978265091889017880334025194871914994093464974348709062576167287829037889816047498575791307423287321702300644664313514235978698169109632616984895270122974772022317227204342260471038078449264147149368800143021304598200613497989030495134781564370298273976958788959032267702985129935083467270883601056018451764721887002931233388663131416601453163924029351785726067571493641524036653793431577655344522890779489681814029649110608449840188005571229478817386149093145747970864938723875473900264988769657611144388721092844696706308663254710439385205802976613193766559984146512334744128452208203061821933399351287891468293823124712208103862630844448655912728662981329783648762992729794353108624651871876178168485804064640610522320705442183008828741707281695457294770831036502361841962636563801323613405928379238264777296819640217600417762807569585865112980321335476489069591458521714451081295411416116897377455058211104199068907749254496974964807597584154615409874315705281958450680501274777863034845917689940529108699448467365197859963890817741090974898868793320240036942483236466017559254041501611941763398174270260426494238279634908887898238731778358350538223059878293901171980142652786824921077725638809981975141079391480281397526897099125263537734219304509062555772390426270091822264252103611671741915372107286292004826060056360448277754741274848603848948222288348943036210911072577537187146397984758571954184089580952245305774543508113347831008742269692727947315189982980769010605875440619351377264670632375135378227001696132819480630104445493226703545976272225612453305567250080730512049925821128649199805571820696079837443648463912785336867876905182239316194287279376243225240826801147155741945385851594323045258983293979798204826870002869340387382025847810428311376680753411676517760090203248722162690012751266734820445266126242521830254871735687924683884964107864845007656051187528116590898937660476173836739157892783643753142439703702543643945573289969993799435118685095009304039178925231331290654159872458632273421189476012433493407342836423296683120223546909044021059612715957660733946682624420447260523787972382760815917982857588077824355272815034613102712715511324499384502416901315522907946200703115772486428098586408944568665656782190657396041696396883550065328793496080215464358419164846175957206327671949408907103709442141364281408534041364631894084036037694934743361880035487351645060178260597465468786952439754540201027326086921829883547823137093143875591071692383411968436900760214399386837964269200233016710624714579708556906293372051349972344455572996498147727732452079120700337245764757532363270283422544624411991325770093343555832770465199341414041640962035648417645089414328299762695965365357427624023665105605114074008723477588537424800990420740288998770826868534401404936806963337863764030049549220668916848498183120978990264978413681024328749840748219315307646676130340100930852875203455631458171833437562705349250206545334869940773768247850572189751355281865893205257223404391025993290648146697216390559208500416152693284043818214996993232990869212733983314713898682920363681701291599024052176948818345235420049284663264612457176626094081821856158044302120515880771403603729063793199946587033170227157604714422855575820829974780798958005471624148936235616839409008857259953263261808163666794987879780762457050123841033704383248066275220677754563864770736906605316934931197207170389604354343862717761568583560439765155338757876242129101273868744878798512997751435708550525791503213492098113657695889686451749496191249629649705565470334400369314994349031554137735702427651906724176196958704164651637129329919263353431795727031819238513203741903718330734164935571049882729225875627832637707930166135385975650775374795767342864559443236935945414841088781570551560988914230408600757517143018703017179087585507959491197156369814216280640963409359757580784048977607011432850126262408064701836179869083588395108286178274829836802835007098673029343443354091929369851238663816293885411529985784827412198874782581181441272715318989782045829796628571349433220345956531436687469320260289239847032215923720197491130556568606024914813552630800160738740959881545527813431998127896346217416958788606695751509876852975667720742107089089929252795252118895649918010768783422846833892435052857340069171133876998827760881402208934147533651576467126993295033748632364422659186981597927350184425782084715347106448530328077773572179237458928212740425322707166946086990166242775700275961486857570367780818485638220437471473219721932661843429281483581552416318775910492271201035356250208160738944748282704185897085590684653418448886700176445889978354837718861992666092037859297670798328460144643255891762407893493876018178345488233968366067881216193215118267453133484243897379445046454357864379455853332421203393946451387890161508709052070103096535384690164230340330705199463619455944969201466863301119513999197124521683008131812421369203899620346914781317937671045214443183532412165961781694176731041498227741308128332120289552714068291820424097669910797660252415383690031654492589927587452244895687021363209581915533796219130151824342803115711333677604420437626676070459257898891933027817816104552557310456218969224019485516558707056727842982119992929195458129353876023078509070967033759036991978589321019581385449754494508465565846701751938794908806578393681473873953983247792784964991565167546780630037575921254127033111588427287274417186187811123795306416721365720489459015076989293911836946553421148213598618375502831593433306550984029113305493073628842999209127094488605732961779033580915741987593579101823661374718382609608420907631434917191225199106849747396836028554150174648097690768206471050791635997872344015938896843829806496453269456558170969602132861528053941936168982631542881399668512207657200484167371163468011739144729669434089734143380610666553636759758245888002122494215959262809090289134340308726825062488067833430146723472064586871756696330665327796996604174418550184371000784503656018043208279222523596663937965384096218189706135455109206475062028709690573994759577372485938275956726643791176760183476898961518482743084753480627898712551352747582391854971741487712069895408462398819852835726677505407743666339137006805033813815420198293470482028687487042701725573120611891020629834367975723034808410089485838574375396293204680146590064878349340887560492380374616532584321877284616873684433360875911762234618506300412523781076298355655355239304188686295188713748156231146472159731509267571729141449673341345594506903274817342598340420892216108217917519198414949403043009984872512384003304257564839977543640424867094835815536354302989323436335482490897955539513188088661441330240821460159707563606438973579752371352968257825892797341155982823251384748999080935546040570381008372375577440344427724775713031080169912822178579878050797936914835007071634789860773465263340189320460809482890899879615174890838308424280075079747060852706627170607239442800042946913965137488813300834364327972276822034471246341786085784499708702049058846869018861829864189439646593077922610809198228782966668625229910084344288588711701944946439014501274913856376778711465436978189889332730289053856162480700875277172642773020103292425499647477250776287620268048220464575879557840910535325906931032551185951540893569861078306542882398947811562170410330604767761797194015802852494802075860634215119511411196954189502653730557032612601871120141760303315239095829636947952067659941224391073412933862563442360183789738087054333464562708516976077923120716807464799669620880957264249363858077510513704039607774294808866708350292636573167415088229202331512894803288460772040765347886062556641951765600490141955231961691460827186945756451834101062567482290895602766768394337704934051099734617757163829673731889931400730800996884082932100028794382676075397806608883184061900366027319819342738822053002953181201541940894913356753146143325115866637139192025020856690590294711041499885283439943784504609872600203519377574744845059563406512634902889907102852225805081492398946555552082495082140114755980622625389963155730245819746928979207603887855673205653562769895330825441499134391379542120902731581418414978195777678786059293650439526561918827788888232096209609762860970122130852324161102935236274105644963785621130700216109347198933087225500676628559600683217681683820835607878818829333150239143688134163130486929550339093957568679732762109271062315929636006226042604096505374011717548078837225721381537338145008858304303024558471003396102573386199102692826208320723341918131479840566002456118972419189765208419245455709512409492008795880676589043839371648204884287764410349033093138714945806654363811156460916400799929979277481350620700007709637923839396823046936637272376713264573952273177137073182937086617097655529752845155543663477568736896356244938773450116287342728529612760388818818883015724491852889438676563995078560671578073420513641211996325938941988957964352956960184081802156908102329992183982382978329815307224980476091116954274509379869354357868189431355223669285324438893093845124615650651394912107344209680127348379620401282154920218139270408713256350380847721617035776158900539020161872607847831173867873987809588108576978309185434250805941538966886274665407207849718914865780833671694900965034688958252162928629357971588156262270376154100331645447986337339943557058529857897998837937168784303881538502557485917127548905474678893327288617054062573814545368354307868764362039677194888206380519447743028536702227758063872322334136225712926864264418110328331800197887534918994660717480358978480523837035441527643435304008724929229329238798257741451735067086997308688803864789163240425745462880403485875776506263099047457094267488388872687738074047624639070571813301685904319016881321588074820799658123513732298476989040548197583556982846675942876056113020805663978032871753671115682285616259112515474505434796605750827938858967239833205307855826613700376407382478101058292421888200386197267045229101699543865745818032833228189121465952499108367652098666287308519809203887977635375192256229808273628872446028688974762808498092852598799155629348579076854838781509632338360167059031681257009667668176641723637709308035416260824366489080518300759892152587892175036945185453163986088232141735434389946733705211064847815952355048153966679594326751009856164974477192830659620110773120452466808702062369568738651172467884411997227139077759287290270438979834444718428961313159554759394983202666742176440045662811142275453011221769349836976470848749331172860437166298565502739385995548946194461353687540363555437277209965801628842441207445900167153465258809981436449336232003929569227161912238079077825987096864002098448453985692385121145686682365722040300597315078619693349407720759061353485377454516287309841207923291173098505546648515173415753912467476234262480792768059504285101630861280476184828151655390811388598107655520962536732694410588479780356917078837888593359051940498663494260765828850651511357036009506763498831195322438967678737363521946979987020266555496807714217549882467341070382561382341436847023481841877037534602637375750899120640340152454206847757510360400867952394062305180184747560107981985630002304870135942113555745599939080185450992558732353456540101835456346108950357582709648505217341152898341656114823184779248647231886671896062607910664215969544466618697475820592264662393491309438326365842419120935844497317207031820369145170709309040807927786929818712333504149427834979976201991928543144196756450336039015146879092639958169750500496987203254325698046117559530507662201577865572426710198523766997042188598440197670411903793494285119010209217800893658115531164315894339869218672686464925696602252597084780231376057565550410709282179555058395189733436434804160172722641546243822579290426351166018205398649102665670122563103655263480942178512229471265530654115870933905528793766059599210668870778439052477703680378696041913115876174190494186260507962317656460399865499205600017550728529306360323394435303245335206251770554174957921251176917587838960219112228198950239301055747421053007600576170904674880158268413957092084439375242496953330527416215544650358414615445814808643919321667699572805450296054602922707171574889023610569816818252960906601716878503636361984013338734296199043418343658404007014794043206233736539888141071506996302717522880422644101636316640026739945278649188167134934922964607038198815692139504749156428673312615144783593919141352566253540729547859724766391058778486691891634927056685827170165881065056429211858451754108829771439694373654863896549992236798582207794935530238970169952761964451826524730204545695387353038935796762048611410326408441386126754704499996130544218885647875382682021656101058288458829011896053732641869358787753790275059811579230828660358333268511668878697117986280098457964815482593891913770540807182544842625510645178174762604554849163256132241962545899117144795905109896969357472155627388737389131278473192873171836932796388955107229276655865318779420333851206077332679463434013734154709922203000131684222382311320802566405961086045691166893147758512267580205527098607536255769538466839656601306329785852145295551262514417846487107717658892461249708554901992119652659570437842344977157685911451018983668954200478869028532551871195016394338331480066863230567156488258175129754265520832179986867061610021578074059534086867786906379373432415125337804491435139591452480761822972073653783510392732527792678020015741910309958721774057804663694374941861501234334397327546411620428630009574677389879892817931440468331866619343035969508219091197183628080937297002477756752017969500932426928117488256609484195530553324884469567175398716074297846812783354313611157826859961774191767154596766924249610271428887602896164693176822431176307543072704556825092046267135460411720094039869205364470022324681158083117359365992323184546207427690362246679795120114131113707663311058270687973038644213392837784534174338343028713032555685868444652960911845531648767836978259665370232351645467755059966508952175632134644494533926429848490119731498133657819247017337743215551950086548609507658103358480572352566959099310033803877280355374543476119459485077206461866839090446882347556218788184201578077466255622798960732310633026173490672186433051606523363597915851675563964285104469853313827647397327715302802395143089854811604975663282454787706395794540147152455453508276117240676735594848040040863849544971534516713767347013896779534855560864714419291528308760097555040950585473321325188009105931535033988510523377961903864079554828568709968155194953410981418478558606864095999866618165915024223252077012375517294338704455803251189628170773134508539804844186756619810381046528374426723914791439430968591701246592407380363746748721889304424634498651159464952871052627680012091440929773716279425134743087621398355958742383254658424761890262627853004770066459737898595756039559274993522028790405103582961002482019956350716757107420885472343742256927793277921447220498804889771523595307913547393588152373676534318263773567914915039499753625627824462099981642415154871613705955875518908285471243782231180239519216697759148300902305972173102013127518360122335319759689047273751680797304012571263711866866111012655390370079017950560913489341909256845755666941677420980473454785213847766496927432633439732441349563294124297911484954633267147392772369817874816791783470542887138192421608568513013114514793711272406200015632237436389112324244694365700695199601514457916349227422029840187444019131374226077306137137315144908898538556729505469143700604816745558499145895431275425071592384159384595019439289844945025287393553999511541704675705178461169040115611448310541846013135112676751590362158796176825943968424626576713804921626301512647957454830409157989357865048476228092444156855175991125945196509589380418167378493025347206527662282056365313512593097641496439356769500335072444846948689980250931198909095023295651473391014543412200979755840313988196136411590026780170489935473236333917404786307268770223214678522864447529759875700974579332712803717678219293773201289720144599254624204934039016279717572704402714888375415753231394816672006260395954671232766877788655219180907496513074662834570659002918053440481378447274896992563742276760021353353332521379293034892304302213867869514065596925050768400851767859392326495352488345698388473038736835311164340585161111226558822561055870940035416474115517557487935235123850595102200306599854103258343900700999005318045854980485121788395843563864418295699898864607599012338999212932011297681867184671386939293242779583576023039124595942314746874755978592992562410634319393371958591348112536162624146957036191373997569990895774139351105539096587558418541715016853068538753590495514818856665022848164721981713107351899776062129577235171983914723748984457529578961116831253217740452780901937184393736263076953750905554711800056204619840778554792864243968409439733691030409640459240907894926663858728907442521498766962965119132820627179605278394016059722156614400270674615269971188911528784414558945031824591179667220516688986777940356011128035961093180640255069313999264644685561393875188595745181889119259805605960263655901384262673076064480231229175251101203354128466855219196610767540684220302375893797627287078803837445606129670857165650023263358874486745338716628185541133812502120382277389689353324369746185792124675477358554844586542104126475059562537875195410184771384106771450204412199826709215870626061973382747332366976714432923550317765200090939190661650270867491488696440014467381595539010173240163718005104432996147320367366485813079327993009226258362744053630705546787934569263108006057656087452712504259022346937522398114511847203856299403626752863316306265860625964489407831733916511709859725545809339012806508312066273356657038548132250213407371027196001389360476443789063265922087586006110760873863517928159678977649174509632747102936786481911529949332674527420827341608882771163093237086654371412685668028935971912561558005032904669548417621248919971681876286423675136144235554301773203336569825123117790194861165046300001834593377121399361077862945005829064884163742554761374243069786048355592485480199094368898308456034470659249325124821858323041176388780198184769871559606479200964861915552941540956513865665486464707781120621509687271441993800728848134886426692255342392074844858894395715589525352611713334505922446151666202930578693588544945693379176685162342424150452746618963435011920277866717700882477061112285762083247441255935711317442488770257112484790887220111511477329607998795766823816214560522786034676714591266722303517542348307293232129457074073529036704335346595798874207142016742038163714677816682761023918774636557282396799931683578771204256908135263093123928755408846623221690534873178859640341992440412667256420113888941177145909449403226805318467441074232831498116045426004727149573890171763848784270757263212450255283096232212925136145934080202079760580610945624817679506644083318705000668473240154218281677934071810907729775717168447912943006070162831322184320656429609624097565914531083642210984734901425926464651921958607054029492866797589052120230575999055298697732565358562489567130789243766095079524193289002330012160202950067970543506919962593806144010879826871085220808102037827033264499199974672933686627330953259666955142205088982393728971475986005930428227943436981510212109043368268656227621379036967107499273451508759756701941063469026983086754766870120413658730363032581967895979836382906255981866820615190392791325314186929505366985190616954062220895268532393294630272849135594683065045752210636868821414384846356016239991629024127461715813243881667834239338509679907684278024201965812755432201769704365511907946724365296167184647966000124583808617466401364785683102061981550647324897598188255857239832292294155293063502043862437716783991430133888957031840983691762855178750185082413509278947647264020234737245001742877760736858313742246616242181864588054921334927587109780875066911199577563919053001148855866663130942163855157873432007587394600070140017332780377267994155798864140325644578347586822085089299706511189300331551755062067226546583706992711869162647273716055441101641643434555996506474062593476442200975873744857509001661994096986995512635594992981918635417715003581672646334935988073503459798141262138865357452797188684430726869944576993580098216972952845328722424361372862929984705735367477447215792754065281243830466139948914250828406017594761348907960188644022225452217735386342923759861701128452100869508231212905594096427642054156156715257512246893855596964650988203276212673925206079242899375768408668494464882548793856244450203801288019343529427312962300612926102531032006133356924033978147436776985172528187115637738431645358741244680484342853739991714225734452349503715193983085514360616642457122007109059022407749735520527349440380052104123063878282689136776549896550581198366993444561818238900898481840304980584319945340083201961346140901953363637434981903986888627101512404140484911824621855698999974788141116346077525222061701507483442290081255170232641450188201011609742457720576319013453920450532734938050593899045495457429467572429126148849376147140558683358291977132906937269907879748620893377122742095669226360216332199026830829820678765874842479743963637754669705127555718244742773137970081061374571065633650360641866074696099049383193658817113294098486675074262228997854826308550252259503211093445273747436331436119694621353405633471810688554458691295955249819120590837482088527176164176164191468404908985883534033416460186953493245478040120632967925300230429885004685307446151369347870715536414808192731184394355776236085460795046743575529449658766913670835563684563725618882890214026994535264143598213948352191681326763363833945505210720330882573129851614648958782711977988351022728441150672060183256386091275713562696866829054671982236387501335276736696210948686354813109124694996568153510922231206818204627349788084986906709216096564688121896353156528783305772917541214242621514435606699836184471994365735160083858627470642599548685249467717402707739957758420218570086853532570409159878412606831155350911871452783291566459816414275457299789353077542893316814316985568363578371399203464354889640378476451589635055315104179609354484270385941825678626485928373789442754420283308448952560035950896759267721183573158703062880283568589778307261582997626812796959146354326445906493313595063749010285035642990757320108286249490092829139908563262240388779284596337937615810440885101568310054767137142025040835267702218294830218214100793768107348502946320499581703516321507921270552951640008133463471189525665172346811889294543623930380347685514670395859484665182658663110055553452666677309163479528893906472602830580989622917971676328797730319605335852072824404816737411529945069340957159613392112673392906379622806649773955205086098247581718707720950632035639341094716521821649448101399266506229079354682344077164562836258595979030275207016930759970562112275573322160261509658819467193648965586352376400783526990684165387096532463051357840083234409970757113225809213567797479467830892005327690586249995779667663024387201933793980294883630848954062868463870101526266351090167151901931318264203854213893003379066544789940840264416873765825829801111886685247076659158389162602233835329553189301910805010958267632596905099039004901243581718276405264236194163412235140054972878567533368502013013190438559750412285260037983340311587094788377968255572399649341152698881335250110857275337498168351956191697824258947645201986426707252208150757555415278896834098515949805271750194320145809826093037573084078773361862100489364741702380066315162805750400553862655648558036592311010034169540615114880232377275703649326030238141013049625755616725006950576649939858543377899920944581490307792576539377149957285955603191946309687810337975147228351291619635557431595257305858368484481930436533430507636224851889621124935773767661280534557598191732905022023194036975883429222791838282536389023646054575460784222882563723877779322566850205926855587455796968594630056902514643793980825425680077671457416369775173471859402377304325591439110329651669540748412087246736620987654069255827916454702614217019623780841651151117724397046367943883872986653196393786422258048857375555807898167075645963206402497960826809659144255135777328091730849923402676572612227675336378000737618399043597230482919928099401844356802733997468863637748658464069193245727754534453446552041804176855048600282222575625346007663772291322831598232503058557263637006357238859731507723859918298766582582739433194516949546290731377130948804526419962707497878349683793596726822171057522819799435027074541658709621816595868532388724573168471325093379688843652005120087506871203165107884553375566261081507461276449269293754217007922186744776876435811302551163349910398562201562596949740692903633700237376176113917586204454213821807322264318894599613873647954683462118585475298298370702109049613159264882033004723570441307918408185701798801745302742278905261326126214727965445396241322320269256494700495273901855549198224667208741671608481576325391007047018853717142748874541329358305437404463995948492694628728600301510443812718991449952932817133969186683296314013942202183728366495705764843844911523877549170634840742977376174193336537769998839006236633708315814901394525946444872559254150353218786971055504818774554259916455930654984059106863728169394294099982894219503273703277919373639538090550557343928923175991121558488678345486291233232632264102787153791743864086508825255090889832612108008113979373030400350893866304155397491221853330158172194530263928275829422853648317078336695493380065336011919424216116174704418330811361821542332821668050431388750351427350232152378416469156426147219266100759963652274085819816665062148000709749077871977337322572820316770511729686928906098081771265564669604652407521812596876225142005632311416563600959086220650371145345703042777532634712283265946703908529733435282963859164581355217454255616812780698271166956840881865179202236579731336251947905856933126749829627425562073951781981965506415505626736596638457035383786040393006996335630611199100198205637254366181425887240946837409214307796698636109073921696006989635154467996507069282790365912330547027580384547111182712611946871710658563994691658743260084301328421731386539565872666442936399824712303252084590027652811803479524218536178740044267819491006002358390762074793279140510300656895157126204995055130248239013313486034716247049400701449867904653788128671035780284978012953735304330773947220836658076497623408023581880517885911199175872542954884478732884163481757613352517752331690753877457994885818896449597270701780078693424127260125448816889286049973689982082044242835212460251908404207148765514790611965579367753384770767401466386537407198809323077534101630495540317660202961004767202505819873520810471138996094652192261087950000682572613917950878568726763366304447485186243961043621876644132788191149769157638275162141232372360472762568529806622241082137964755174617276305054721765850678650510280763604425663134202472039191987670734019634091993044262298639140726130809363977075018217909846158154007692785937018277317340980135571095190160345562990251750671617237082973191746987395773228874922194676648956007651688510882592423330119983178026455350213193232525484783877527242394415407908076881592344031425921481434558900883107474274218439503762607965827156998617248276777191359221487763591828078504128459934389626842486717788164141078957013596613311652111383563078701699245403947851772705945097468856911533040634234775271629755753221317739968236383088838516853041712938456640495733112003071353402480731239634673977381574278395014101567029571328359229276362195562513313357072629215893927920229675639934031982056340905487569422743037650883178104744776628322991887559492078563632472556064441239419490750454234398911131370041738412654839383581090586014856744229949101543978077005791269789760952430527207134670751587442487931836999004674028730303373126091544576208935578777397597412845353069388577443324131406971753738212694542894921678365107320732336177671377292662573166050709744067332328501839030420886545816354331646598413057626919688111133815544297965434476354718503806366841152471533287244869913522683191497168625862054198759697364084965246357841878439856057986359889574753566590907051986218389379215697284845989024008233576895772629159775074255365992326708617480716876934647093631170557782409171454184241590099477789599871687898530078509514361952399958011397382120677308458300391369051472451110496438047625779122590277622075636189568075093341169005741787373612173360835796576005956380989711612766130107242863630832447812549279123608416771423694494468013955685863601874669083884302229856563801428128775266367034147144433950869900599002652606222973422751576204452172408765093887152265360214993196295542886004036603328350718647698011098799862760287879425305621840171487179498572666746668382256609506704029276235012351685923462560263498470877603963443672828428485295483877355262496310304041213093195509830181384344397029550546481680178881737757870563104859666459913199573213674464288523860049714679437383479303864871046290348037362003793563206121513046790352450561756755614821262177523404839497232788107827291806683096470205501243547766197938463795730229543730984468295801353232268550945136469589975604842068156660265629285705035226709824847840454534856776500055697092067425227595762512757902508125430481261708248367778123146658175899718301239790596733454597359064598168132544096764101981477717296646491472963698355448631571851085479887071545025600624997531476232329084120426253765600653208517197117036949132400556741297512780364906165374514987400069867615892425062539424966116203537654875211935653173412368400392714886243890692739470874131534842146065292236125547761552707762924428139384673610206216752129871279385994569668797946149803367883001279769386250920362803229186871351827295025083190681669414186036307180371466744531070730266481008267271285468226217438209803736882877482354605522248404811780972053404056158842627991446318655736795088417848041585005273537654100670418671512438126094687948388555620389826918780395622336780832362100316103455519228033339227481673510617133338801500608853416082484701416942525657396787027327823117943484351331690389548895302830120759484652118092202320004291068916231890308029431331913268998749822581342375612104577302550010568901590851397450744950679643234047772567492230379277968093198643365889584698128732073784820642557078852504550082334905105232561226909463863794239812078266592295695877678771237148544610971676603035901904361323616765191281730583244141389335817334117726677281419315272564872757341501388236868002894418402134185867120933201815072229001919099655395204800403841949027117144082223764118816103087884569130071687297572363120884066713478333603324873708912197976422166942967200950331679802567609595307230506537609968189008393890783140533863129566050071422613231865435696905320774905715718968412045527953588302531702964706275261341667850080137721052585362762346992332124829799288321173591228706011283946693922520463328874617420679756244900721849289225841291270613330196786922723202930785845871178639074206463265773923507264032018172290221669313648348714967360006173398034912601963556470918091787094560637482804843886994110510499840789909913071444467320312132330417278296248950703718351885575313237390244350624349561060090080991750917579580983406246498937689713718219313981278896382574872335798093271144612770356536520783491067483406112815088025978725375302857263892655941036441945690787792344321922703601800420302982310120923412826262892412684336070824435254657499284555773401317869906698356412910982252293860292634275041376420812692071195046454154493990205008378185242421332948752219390630860552080592126053374901416240381532315795479125171542996979271314330693952661830528649985819629971929863743767587952113888430037005467942005787298221211800051062634646346622503501057636292999759225263036860902854277260010461601199811709850927079028231314843489145937161000144871035891383841122527768214330726890332885821460080038792962824603905062473485531331472518025056615434860798456579932936869724429950779703199597232194085545164891389240891245617202290060621178520213849021299440321430642024889034934384419804465469096551518248296483073880387259767894156654028702489510486543523629663905410985553706953746303536820283443979897946183050678333637732642289250293400472276168508763561932185259488645819808930006488331668015878493362736279345607261656099316199069992274021715244580237408450445406277704025050472367270103327596660018643157834465108468944969699794985431404274266983290910075308080775032943019432092505280528881821800371714982623596699972613561818158916529300807822106557422613675461134618812560642609865954554582773416528305570725413817634280762929891280145813151243279012636771315099454879040538863751676139083602234411306834159517826110451920952387711175642615479135569604687382336867209920046916780533184133500612512394978065941078833580776375106512150328658620020489928805117451155182571205900493240680224177605501865033370347879956831184035676278319839112024078021436017962287288844471859372920960547618320815145578704650273286705658385134146699681466496073505958387631398630908583651638952812589069286867820744165359851519467680351094646668722370766950755621176291936369407148313982268759632656415341575131940561852894635609639530125724229250317309313905887141847094576470398701744879808351593076000062841213750724497348192956698187069857811434405668322807324072835158628392415695485380042626828618075513911671707125886402759746737004833250375982470267868201137094597428084161294956077219263445126878422127352082197717421133631885274710287297614519027038197343650207667724876934541720982817804783533571037139022890640357408241339184571120007137002764640355058172450563053304890858700058792993939041070301672289310482099971792952916846845406396503896636005802603537446909036492509558493377631237559129141757846437999777757605589847458744975664971711113927723251533726596336620309858797393947091906566092241384315786290883911077139095113083880028223260334169761269405825189299278945824745162791006190480958974318121885856327981372440252490745793160087417057485124509011426326897304762547119052466766128654388177664211621032864366142368021359056725236166351140889932681238179465685901272772646907948375414012031894778650009271882308691713254798077034171197524116014119514562505329386372475861212562109850673638285832253891092931000783690080445504667235079936709889783885038432464484070095408363878685570158751288926415027997218016828662742457724303159428539140719684074768270198268833233999663712626964793583179266695074186712507989722997092296974676857769575508749278159629398565502764503243348270593736651208378306814888667941560909110511007123615499969656816771450751616328792128279187147744959148039650368559570861653959215881778834712870475404675114280812323822277518889031168312039191011674236352170179995851303535494898056152561456861067175668029931307129553220802809472984936634898489881471341346924471007627740897872226243492647890917760058306984004627771450411063439264039216383014103247327507333999635471017578219033905169648062443558008714615327286083228679861425619431691734516015846777160956203201998495118359416895411497289949874660669267077469356740715286161681116164184094472865169901397978299808131579227390864044188836063362845423161918279925174856863984298868661237093693124511130197518424086284262430175745568597697475497189397193129039464626367500165369045397018208652262981759523635517704534302248559363981391893374311326404536215349971422429680065005582337276101242758883820124946639998051118936532367192215267636539833305982403169571432627587470507616365927186133082956544986142668877452154771455440143511199746647557022482395501127388692734393656041417078303291551341435064048903090826515634440716862784696391804619377218616393716736152491297817402015335636483049227491099189365827995521551895507358812777909094442110531548218557045392374972253269158837655730446270596429763225084387728452666547510259106404375320237325152407750817833512596006130770556558870027149358767717986013608014273693144731664313805647113624439673418754388469766741571626819413611643935580386951117657770098317976835991722974404601777676514533040484665229465608224415643998934940530546031300313506700610715901102494511050845743129764460304129812649819366772048680131141100659633285905953273865962183937544580381163064720584406056915007601818458878485582207412499852330578723381642671583485526759690011963936575131824690345438422230847313640609773944599346559963792230089921987266623434198252543634255519421964423387537779694126479367132683295754850255618548289926525032881061237739197916260899813084170098638436122280636243272002593667694553559417212892442615728780295763968424454559028929959457265365221865002055494103211873581061119813202631150820698865286717610004802629442231981070316162289612803441930078677275712175953604948992787189684873689692387681905404436376453794702798004122567461937020884837112738774094732805610043012671523420323730665392738007631585744423225511557423076524511606813156989951506728928514672983152052195313788344483069991922260778428262517756191206641516595681713583913896712298312756943072868813041767814744612620859402723513652985128889492038924095983617061019462154395638661551621435563302396139853768615663481913066394941767544375989218601015548789294097490251096277606099807263822978333245700861438636575734765558628846955058443270168369849326382459732712014357389653105221029297757175206821683540527571355496465176701437135287082840321525383785239973511272631830323986716508054137914094036910992265823424384292108784940118314501554903758594339781381553772379770084729732198722378316448196184946060447854440225593745712499341577145424576032454466117315039615331118370615816799664780843212447092538833054600749841716328336626696444563070053250918588113550225330969144734158145717972128481684664830989503989756442890141492489549666024433878553774363828321149618749571234752615349502624995077966972178754032444803150498824087209023589981576070475837011562946606355867063822522327635322456331972902964684407975117669260735408446338129775429709063420074157631940944788133936988879767676416063746878270543363715577321483576972477584865434751223955575686474002991620503568334327363379949585685731947325650167083610944827084991919324115752034360718613155742696218866816199799877636944716434204886469787214861207987511430519728326249251162090611899652447346164370943644513024541735823819329362634522218043255687881965553585273079386021027599928250758335190166521059896846728705540950558206904656553415920716365012739340541167807332318536246282754290033496306471613830791515502095736739825418464517368531119984511443157566753159798442975605604032134846333730081209746188157385398291816782478448645744570604344602175655106556756957232865487796500711990374819277991442404080012985275642465342437244423132726014549957232922981214584101337864740640074971932994001248568072077377226150097351374148184488840939362362481016551182612756298460219411278001336273819327373242032344991628303656901119416148935797157546927714202158156811582641505084626764617796436829581916686283853143767747297312842421454268001285161007981719434006412289538159928376279707105949718402661040745195059004280107963832006913651165018725089443933654766627937622002012952323574696636372636105908842418337964458710398182644998507382263037002352200508267908749426051660425078317883853130838007097089907917462372903562452048483302881335637424132441270727752304042138822926161253999769371481602183351744470431398435816030664334927989027160334079855512648598979123184103195645306331430725412262643304997232512760190235875140449788265934576079199679873803480078510338484197368808190724931295410053519355966823140843011419697142867209878402891846525178368373385751504456945606617847880043047760644244600873853455709734392587004402946158484571206000408847841624654790650369874455752536023451337521162465630148503174159259494652689529923186050943392320929756163457054002368730051120158036757910839301760326101038494135188862440349483161759971193404108459530319675342350783341386063458727182560363171604526997462054225689052618715752184141857837463667649226811612338744886457520325119794530205184419703516656262828688910362560187412291357858688320534652992212880746454492828466168800860286473670446671491160543513357305080840326603912423945585493364201310842253705127495337636561365027387675018265422100030372906316295132745677358600847956393749411208970224795850569038246440436214936721022563740620447886318202923080496787512635598376029485179356217899805531515069391683700679574088662191075002434687455935234864048679784082830218790454220525190029644754895146851880571466150684160332135020328169182161918124292339230665394689165564021236446394867073930608135603925751212262950108903830422170628859566779396875697468886691852183237839101021151723738574575574993124132372670768621224824949149472449316602831315057854073246933249687558042813501942968828864772218768225474060980091273484956473949783856733101595274543057604119593917572700587163884870281228561936246209026012239302630455518880390240913488441044532216046184754080519210955590147663917792494660985578516699802514390968786304642301942672326352713799417074519503588759928044507922501229427133127289843798002479708646958703747791773007570336759752329791498524342847241532910267289197204413153165418777264614095974314712875455767534155007345101293774966096959213819966337021644427977281415031692225883909813187829188351929740828265095245667125846057550892781913074400259177822081549398429624976211536469616613644557713144056357902085268853138168115699367728775170098147675362170851735710763694749131438269414003183521439417075974626442536275566607827930413631434747739665578443757707947864982770168922784063888540888905366888017720379742557579839354882566860522585412197034559019916134168751055609206249031552892498297748201807319299021538928724358963969523376170973189163546848482900732074380703489748341335710802587580509760647081548134784729694251991400718449683728626559670909772425850809867840856338883931550400084584043036589027361272054279458020499042521986405839132023828861100050055294117346236870647822506263660315134227175983810484732452304873284527138328845132117583494889932488784990358804874204323386630630562899785637385285045027228500253033204774737078237424420143676841145849156422816261827306827978113596522191435683035713881469329388405426271647416509436343754644671330933667199548835199437209539891011335392865869853075818420787724889468151843101914280117153325064584712741004612790708446661485797301591935820706266768094248752385834291835825448502488561594629064881895086171759569763845445901902187703069684820135893856346053283201157233086491665677180153279421421077630951202868801814677615124377893517321315947722051744999926021930169951328106790346330065559884873585425308654932730048554536799001795095997072981594976557367522030267907874190944013568655880804561639048049839865475246039926485389770288151253869190475741030804364535774733882924195130113474768831937217084438471563258490180944458114494864402254227878765169886216136256792057039424542653983682145148064924922519601164805650199159732841889475128194545639118553088744908817844813854469515936455114090612345642054161242479804970565033162364474552485755959986932988401452358086838546346660231325315755760602622364698909696504854146039753431501224032209356698983086718201433601149563843584580328472523392907908838833934857846549483724770419302386487170731999979775586179393332313184395333621171317044883575602078258986310136062894955057604270989953294039338594265931141982437569425313321644232380853687360088667981589859145860875362283601343445976540492416219045192317552998240514293433438656081411736781393137093683809558352101873241137219408222209478883995243947889382540438352037451145715165411631145360599989749433098640767331279526496149856173330668929236755452711516745385078181567908155243889446511681190378579278497012446638207368641895352422952888285944017049663700054710386674069799327176237277244426074130009620483407308498154868318519122761459232843058766135574213955521486748012152840432882694076200395965177741520601529831146638557790266938549499638397332952518040402920180558882038261904697752032303613812505091164499417945835699389099227385514347833636747513545912781575895907330871392782440598645449033617477557162471506448168398470995147994984014564127228265886569659114074255134094206605525497891076712391774821108592767933248357195917553628466922687117099766268547080068483161946577134186756436308204655824554542278331041376304665343395719806448193750432595556221002007936080550034908150431193960964745101847039830887746029632982101648283795116856706479556768518260183589816293143677294995961159490588165451679911861859492543444599971545611933003686294650732540925164993050291546412020920487009007755053906980344201582237788624531454152831378044450144514292901615453342142580093708929142314098426377998503868760691684774264997369190173578460223054265022257616954660949192493033153218858764419038671802592701648186734681759635258054577010497291184928634685152106225535859166524480786892142107149183146154803935033670118807090995118544621037670272955273705717573584861817499138393059340909969201814763440111459246530223146541374285051779964375480635448592693367270401359390045864384186348122640860625144419995977186554500342760345061260407837717451957833306421202635046592563105287581612664143851981203411884378140929575170992169895152204998340550805776354842233678537920426477713254537551041314659723456544340627411928138542524223737565457784089701443443152479055075441595578521393865018260138777519233006342426583552763048970039492053250012991330989775916521242248698526467587861813872425599322677208074650066032337564353565728581870318829395196741566474890537601440630502413156957912697372336609726790397279980855828912361659805136571409524675924717932358249777381942681610687008389381129443344204967743176903003227810517166638032281211024128831738340599215621820373110263045478595350011978582318323999872789739949145943294903872891983606765954367922876293088284372061136332414574802562440665949068268846538225682684284036294244013054419529278180696155432201045257072435811468515204842638407187755241756139973012953411830270202706628541827233933737439713012218274578178320503625136547733711258059568025414174641385432037049245774097632448420938072106878450726808639740141078586924450590306471000184903668291116980834913394760443135192779934071055167568820263203357091626147551361104204541948900974114805568977988978537845871896015598174838063001621546152377942092267588409058776400243065547061339242449685416249945714114285219992034650242467522890073056304416262887579722736357455538385960191905650728512206379286072760276342777419310625244495954042283535041247394324907821829935876492768542999928311315264389267451529821007977721430287280574027425090726759330317903613960189831477853404854826414281093981220944665857978975071837970961378420088310807991280885536536599786299715562479020837282150793203022586978407860642474241691469485418972427633728782580447843148192529170682036851457557251292317148549319155015439281110194222571626296639949162254449396459496493780261976276899153819870719795759911347333161737289262641798719661120504318370195255920654825576794490472479177508198033602365095827916745693058349254621326939686060980151106654732148387422104185748655730814683585223853282264491875953495082475720361542824912267393314658512002254888651409007619938613307620580168547145186109597341344976964747613315455781224009056904076504583604746207887072606493833401540125305802615401673351251650450746577787742619256498157469030488331272100277079564963412979137780684690942578356537757161722060972187540016585490560687399002359111894214036026382088198114205145426110161273663830947632085189508059816775157775054927202160667123840571125424439766839760171829922983833572197741687476920412052820073243410566459755912906883180080251891956143045217076316020261883165686653162278876818179223437935660965295522401657211435779092120059930587016530752101540520361346818367832446825214863258896370454130378003744894313506611903063538002653580054372574232987158545847076960056590160637979964942767886757668202328868052224905047739098527676932567300519793735405283688524663374954226896878951473411400517158621299921596124689851494061619098260413661100550445977607419715489165516940023747408313636726619822260377684749661828710532083067751805133343402194190770157399144745581424479017337783932024838066160346742563358968849166416815744163611514880060259197727434532649901754433654333300940497669857458229317455745258812473555008299135443303796407281335910690585329511554899839612899206253705277294512509612719593707276634308204452311493376580664205012185365647197193502478053351643379046607952688013741805375523242545451891548546405981473446778801421996619084924167699256950325957796677434507562985816616344294403370662188396800913386462519130657121347367877423313694853330643191324505266404873615111796168853505696063310450214256161788875171613608342129365195373470048943821837438269449422863758208441265177462532561964995541057011257183221864213200855812454269146131220139125080813278822505239551494096653746275221475312050172322213920220794448381659258902196529053453547811708459900123537206072231007161699478840368370568513052209338038532020359317200462213798559947176161085568522264011552582793360517945578976079428003896849745802716992558802727149068141286985661908347661195451650640530111535902054116842358357239934706265004253572564242721926623495646615147134894177034761329070287933431832561841148518182333122798276135424236287274715330204294179065589585127209574069078760891298382034808449102494308656490905414162049505120240971433566133784049376603573206200715716820270318753552520391713548847683036073683728326143912661423150606502300872466096412038428085163828646638732590571466236454786391948212936755506553041665436229606674538461570923061097193994229673100673365636127984002286455604714286643009176750639142462676944319819500911861654099946017379495124024564842484293282744957453758724926660000510232036338444977742615946170123048490738612622628359730752227096079896744139031218895899886034800586396827864384942043145058025512297919149980116849228676608929412442994235080146298966808533492562310538329666137168688878178314259875983640377034169914086904770812466220175647484646043066251321952635569620228640394266960873511774954289266858623792429616355250074353897332326441456372011715297128959425987166585672142955386834116859081672304175910185168378739550097846526609110047331723930359136050873135604643952858637333896283422758259707628713313297168870159317284960624750397886283490966571010825732310653782479204268499977019237432645515264018389614381956687024352967882085209937387190089301064601329721468443273054679976869724806496574826227925677953188580041303338583873581693157577390768397271137721906328342329801813829135474482843472402354440471113336549503680149162537776464330799354543443136716500611690599827396298241396456772990813609948330443766029890631625493214330155628165381426280731341162450064314679779449387794317312649824592558835939479920930912545524277453763168156269599401073789652859497454064483565342433220860943457485524554939546277618605321048509265626031738438691542448513281370524003395908033974787478774401540856882319409972046574983239858463570245426571942740213083010623819567547308738364567867619261461111687884805538079146379068456951488737245783870750312705133655753898152553181276656587754152212473031478453889566830913901034161184672385600935436856767651286000438897615785632017131505179183819188566417028619330552727621704674070704391274933848864701234411708169322946093271878662625627111363557655783783353774297782562011555220816536088581250813363413216006515817512389184798657425692553515500675811608791349651805430769429559307377190872855164471721705177127052816378599071060750733985463644644903673496817125508933752229615011993061277811486132995643486493627521955568767521319316274257754085503003032013717152849702101015514557588078237719155438281993812711320926606330874973186017876860545266649711668305957271874992459681556030107838332239925001400287212189202656977068301421704138354354000740836989995160571627272442198695709638482635539560028713623325852507051890775545825679677435871408850915047676642147666176912362707440367835746779510694315675729279618155541050358114293694466389910471653673578072423426905522840817936699601797861292377624675970832947222093263860444687037814615496470570676827382218396455174973115302372422900365243735903278172717883161778278161565763418505858137616824618907608392877113284634816507910648840546785430339760208645775070192358886170386616638677669752966199802231346071019381269089390942881928766317495511103982232458086526829306877211186537978443652846506047577680674476723252530476560436350665291611490254062540706224539314940531679910452401003227916606884275013076403561540754929788726539214196940185371759357655890418474847839061994856514648457619077108665450657838188008139982845786432387075034056970296083677970962132181206554989398920420436773517597915466122358552029651511631931838848035607666053271409044069885092871434348577132697773865205329422799606423611402036622922259565750611512378412995853664737165604346099391898144369477302009430169771561322270704970152549164580079191454262155252939758360271935066769982560096899368215302873150463279074407163423724547957367353191088011401405645255924471180295304669723018077452603423500112548488155797235564783394137604689363782825323349140645779167167590223126687248345789774572394383567409125831140095299157248341664166446308075605158773338100650572080783496573355161074867249053057317071598144303583842613533825343117901166368028820316727209682523119050404908429012188682097749470139770790403453257379245790163220240093107394857770049193350219115800332312429247401064684299638161906711086606188405839381132713491192894364454183777879171427843878091826223609777208975875010765399419102021159564067810744350745502541324614015845266740399543277042879720235259228724065974109445695250913918644919663825271992200114452093914092548240588810779159134034342133184091245943200053502739193851929583879017371768094717841489784838136902105195630685924809025468921649035976454892186035353927985018635130481271002525620692853069871151971751511514642687308669812973394178953806357159071649195848701088491635948287676313832608270972772452058879705277339389766808933336524593014638390964078161895004523005998732926503553336680831131844085989666955324246940606499496600140463504850861260951493845051249649867383035570398314317771920520782231810793325093883528710816981757659280076628180752015487749608343287623472444804549654547222987710172551244506080454167268140152424848354464354155894814271273780411108589728727261377190226083234232950276993376022882020124851186229498660083211577538569175265848549616004010043822426842650973806175649199747904041915587158544127949754498308368649305332551444975760343991693614927162775049180092759340926070898425740814697404340845769285358167998583127979670854510347764049802231801491933332886754694162166867717828994580500537729873166590889605561564192789132294640027284037346076435592831254895429466006238656917126266160713594723086549856388345983019030663619179690568767700087958152692045779539008491215009406074272436297288822570359259693390160473344632921704193337880475719547141973498410132031282142164341790686616137714197253816820171361504713807240402776196441591532622337585293638951430046488253963328104183729746826250816156183947176911125551609014724652730805906764339654819896234179456831298266937731347124159303580410667164257320223495894640607924425359321538136481713860355175142145323677318763522222022634184721362296677644552407916125431205357476125617689383291262850390274294810286240131832266669334445114283129392497906883901712687196675439609908241566979020448007234320508414557648051795820057111740097894236175038676909136198799012791731198303627518967036196173681328488684690301152039844855214770257117105659306431142242108631835089325775919422850798623977778488867724321282922031337305849994198102550365830535028875051291989107341431407455121267856665656270295791700884742314263797126071136443604074858477639672808866895255453707589002879255528782448682401849831961264295894825601387297039837975022195500036473806277172193394832558561700447646638520793775644007792308443965612317141473253050671126801655577954104406122600099558841267090422015859985842863526505552721631884993387269179354476027359325045371474082164466930086601574805887187695482652118007786067572299675603644024711337957416682349386625526886245746401482416799197716061626450159586157814153800780934206542677655180069101499681955096524110307802638340748900600295168786637333397977144957778242062935431549896330257255984486211944001599117980615433017763034009032432314957242699684086447507515561777428343399650791367793601268338824544418939372001605147463477038485953770830279414324547920507027051631904485780312613044877378676389116422763402383755879401512947319553698288518533464457372808287077221309206512873127571920662893012749571850057184929672902941422283982707669030497595241863974495697565439497591283505513661107536543630703311102186755309409360386493707697915102589579278818841452860208630849872279209323827502598706021996524422604407130226822705334738700690995681446162701887950956934179025571526934896375633677266878061189094544815947810023756800050265168087685868774256511649212194408636073371676832556491717505803049026764691029000081438443902021904975450155092607950477470624373791749370964801655399570094091472072826886625526517221265688273508224880538610922770391068464083872448544581869284699176508751189129254281995003045228889076726855883884048696004501064043564424799559386007782770663551078859172824839442932456976914419865050131831671819745592952145496091594259231794636683236916713495394947344857145187314408184809640830899466381704337941627639340679530851079809719077635794079736181917321144294347803427436488948285385248952607479327141727448523332241511807617771217374469725660279360988002726625743292643449885517716540219237553040400137698328435257371148218412949483834060595835910222301606035854998544316019807049470168141789261910056561657440729233560517882779291426973731154567911219519855766005509867212715603244944336533243251533134471761135334462257701512677021601391391990980791086528562726968757190721696453946348311591432788344571471281121165487059839985317598201441447632898174726284496963540167209821723163713988001834490111556086710934338634030583011591097468762628931828945390666296312109062203872588312886818387345377249487827826445678168281695411171069536215284643114613922853779185229532975140765405134777150395287375669984938416482313077292645969351433111878047733742674413533165004426290737454316838421541299775291191956076021046621714994562251050610860478109435718715607839392994580349877834011145732258767858372186232906419722406795281597361648684336139864391250861919624424568262375794813816610194729894510930355452099557738498346680060904092800816310387458145736616597991955741533474763378945557701108033879309845818491459878124506975510834910177664900000125505283897400041069139876857210251125242915408534956713912516972349196981094816170101542944861014695673957077574746820617114907056529309971591051122555205153617039602985653516282172627146382300055680838503369393473068617104850946544585674740050830689678962634379772143665583789708415800528780611828418040254461360259015410737128484480101412870413652985092466419608164935277330182177355292221259764901497781092357537136497115446359686892525414668407142117231583972581930714433878348136517575889690630531637789671833989335157553494590977962618537222647285921929518944792840959344162109085430239920678966617208055658227008201621290926999545018159678935613839795117502944610400903539775397764837744379964190707078517345736128171412737603234379262084997146662912388250160527266882273355122368850161370146659734287628270263894866294836453988153456855515192162156629144034073180681000801745485342506664258761940577418388190550470583666095485887627493934791885790351553067169052245389113131460352856710671132178942029844182119169732001156946777541836636794615830708837398074642132344884763093173149617876669358305769631404971308396003770102718451915254105258914737137918009780799548550265922892711701045931763606754862759194126004887668146095140582569070266562207250291269205416501612456537271954048991131227386610850239329554076896955890864256177070824533176378886710140266817919494813597450188621525252703884240707909352605365558393026874573642713312107405345471675192635731222875790190535371030799782340181188356173348491572332047604586321420653579057017827808736523461092024805557023731635991227263210982448981655422304689440151348801817471786853167776823604262215623354421412854343072974781835319988817065078616771539549691220297409495841527339542554154263750458731131477667481664994452195460808244379234152843938233914542589526510672370243479596111883991506693553349414708708099155392218581446398616222884343064404599366871675438492714289831050958611243811079801960388100492544284141995612148555649634260635493662534247385761875609932858862934771310526930745612527009619307077549663711209346959635620914745798173239259799893630258037038023929765300902255840040959212674720755027333998457740754757964167209602857228285684728980310978743954939201175488080687889417047136293248088755398355073121600723080165768097839950569673822313238798105377397972224501033745947119099894104973996298433402537326488953943562506275804390786111248387505952347326374558466620392077070225863913348494933804076862820408274961161451173321669598091648115504758132630951101006754828335450004757583146302525715556253855355718029347124396009497948014645833325440519267050962671805161286869570199921471518372432442312930191726339012805132377488479605122888886028075657566879888968425971521307848199356294835065320577649774141731366141960972489276438943359240062189251121065835339846729463658900818473295559243698583093814055349944213800615078704022038869302440066252546877849453063246808347644226013501257802290728010377452029251291737520134168679797625591814479644941390975161808290523973224978006991769425407281743783133333479492751133506518473831248635978133470463117647913622993069148993270014288514123478383249032552001481812982412793751124111304073807539531129470226067247665837331112818885043316058809864389865158286854197489733953572957088194426604865537117424334639414895716175436598732127337757306642160680467333597014721071312742490347474835541576585806433116077025066821393912464232090069575052876643040273453411391367678004239947979663016448130102367809016830040860031013652422798487829605049808023053116853310555279283060317089652511140192742726820627849064933579948710003331089762267766801100347458228387781962915477052786692232658627754875719744619802003520380080004489995162887677570788953073283355645004825238679508491592630306742591199178092024119459592242744944159201931414549450538382760595738480000492751057283475319081487419542841026631846569370677601958248188405627181374296972937768325790178402050530807765362642474189905646044432766533311108703175902823190260294377330398536565908726065960036233250885118908299242953151709311043886323447544920264616966604505826963473764640754205872372261642628140058697068165595028600215153062367474018715565991661760406903156567004036169635483432349526161149487758306518696210806950724777512715454387220064473425722871308705482652437836520092256017133078580217133632313284867599825063720022179500673274198887307568235596006514022961114570995380204968640603462871259134298384012191720187651125230017891789038758869722751141529064707118279597863608425333995831553910474004030532307643356779716584760145070872586979767187920568926692421771944874726713246836377496633371320723490610144022596130961723739530303225948521637009817702085526402750718604583325018628640864529029303100510480134315491658845734907310171193107126952789401468035312571906968601345845039485634192406157143015644446999981659918750924772607453684637337730096152823805059706002516507324054367074154124025425945699655260327917800587738103920656621247719014667030496325343005018536514518529821002868203444711809875672013763933606181771431701254099495216367614551285717584882866740082139591398838277427256267904467230412124736381378453385079069715810251758912428701410083917407684043072584058929836075371370829816736159606858439787648114829201481366747414297536370331253715579151761177293267834916722382832697850717150822240343538925545872264021615342899602504612926528508809039308200688716512605172367192384559126471468810838843448987942573255716272274286035232866327957052448838672229889373625144233252118664509615549033061917492853518804234838673087833437287576778665975116525754827677421289207867986909351793832883542931424226887293561184620499066177550941826606082225608685178609502289061961414647447750541148469066990034006762288522475461959563753523268758659826391459950911019466907683399046813334339301196680143834478827702640605183656083792669361628386856902636059879662500897383732284153576124347654372837216593021034959970910995631288080590639472806589901035847609418059124335344550562009869653342266701340600576083244885896003980167802545063685843070215233900072305453046112440115614905584776459406357050308098404368880573078216412014665611688244846518804983626465872978615616116026600773862426575238725567074068967604650611568130158188132617912100330533064795173627031769829148006648580652073816393176994475909646248213499685842317272473358381623198066044566366369197080535164445793674052801153265469182054254941329491996696415258789622361031492925496574423504701771709153696423738762261731987068241478963518606762960930818678014289799575696486180487775566748270636108983026213686952535470587045586667004173537808560848143750557690916608413673542137915718088581862330508227114709021764990673776717783670981790460951968643992580749423252596028315400782339043084215209022255362690717674834868030692936585903991113882187917958103064884166239843289088622532919839644068637396859209043406593777475082533486210406887474078732413723099954878503585265992095999802025038680980864440608277286319610853837618339542905020818073317209824364658438615626390298302155315178037918457655953442798310219413003023072355893566746988211407993898611662252623511149272899003754722869532630889554063084085974253764943114980215422758875820186238246600168962604296652812731869460888169826683743849776675849237496133650851394342394302939805411013369428179793576064420442407267965163868330438171789219736854771386295812689843077123110525299726121539901612434451042666966149409779683435233232792254587986159604049969351820972857317916741191616904612946030075288829554860258720567309605110082427465502658904543682248290499522864594777315398443971987684191226233839212064164617854654129974707812735121044780361408960329986698415763103749839293553942215093723783525423581192745009230069907707475407390204346289268772458388484484821396279216966938820534096954249024907295333050766450415185712949123180280883164794749610319733517480055380665249416070371704483738734891301301482341328830703137824284532118914202314845779188606351249472962243484418741728684992120389263793947450854287739346473043473777891841859257259174502930136149931504902333065413486165278757915577510670105053142561670677175236305471208642450657053549013837950233666216705901674233567845488248476155589982043781840422336018796957153305306591709319400624484863518121569534361707254754885903535445399268100313067880147133762891889554061295062495004655268929359144139140173167775784605710836588936388353019660832487793390386520657515618175855069058259501824524150454625602578570614307859137986273141308417606803104553135151912541502459813358333752334374288992875759950765503450803135274973697486339354403818555816743436915143005904340771910937686265828205245065839411590844550036056819159743235092643728413759239425970119134491348337772607770551520971225381851760105996376588546856037577673724173284420001911463008634135514021148030813259789790643081024788671955182234014011322663979952124026194174311410059064766424696219107436778010806612071943542909744604668417110616639382449171950401740817880732254746674013511130548965489191884486700961710250450265614375875684278211279823929228747846015812521501430779351596250539298873844966270564238777111371751808230029790097321500786615181431111187822333055551983085566987022529402358164163755874820666700647335654310482484447143336097289468998024261750340195222772572776960886923468169109266865905662263090471277699435523936205710375470385917505769405300204395477131885935125889696661433338178402135665940760290254676276228311908578193621121764018428899848807041069307956698402549069507678618481319596213823083342968020664589060171439880549351482501718349447126397912281422368296948438589874774206003464858778844176116696365347131071394536713018382161660018719996125618828808029242860678605924324878768769493951710731504459421792823064422956105779168753695614233182893427491313701984634061638897960683757097409525070928458512083058748629739358570242064107838896099221299066142527548861863025176482045064933170102369491130750074847599755120158608205648426006119622323022278786136432438390843512575451122643306354051011540898786959894406950269722873660953516804286677256839618001527724161902741392093655457085787998356069017520494836911864054594242574411217214178168217143644530286462579842636646152656715331820706979937020768899886566637758412182988697560515265858623253790688838833856523730964017411413508118558177506698243586627870330798278617912843223116032587232627776598516389807475215111801325635485875409548571579265698574168935315977245802862625510818041461570319770818970757625528087741987346131184157235985795323906363032993815341645746272156973103206972404027074379919851822419885397309259417779181045493238966027871985936612628834366531370651854358032248133340018171004648377130930463111220757739282307789741640023754101340155317053682780977851424563032073688603132040268133922044317847769528961222805936729284207439071709866378217240174871958999971861506827817864416794567939402667439618917797996158044284031058248456619519482041348469881580946236445591988454193421129660051117742871163170932402725210896794501479105582802169154370665683164963202833350608080765093295333481877436761677432929642727278408043290606186523388738098408036884554695939292221662207123590460556939712115375525384998506153864760976188162506360105066895631447522302594865549015238874582284759889983201144723213664930606332670090772682368215409150991731162252293192472147119837028918350467663073533737351064770693498216659721184472141620152729773437519818012137503100160213273872817289555447319155878942174626674348621081832462251637748701129222528022858220005136990508285626865740084748706480858831930663176316179004719914338650984947588357901145824082648103049015191301269866144087418518078700387046297451083160183453983949855418581923412698108313920479674106545877252393852220723265097935496626877998648758506227748873037529674054762413110214120177396708466136314562545968946255626478133875354093742571043986824888330877802722459505302592018125949984676969619341773279606342121765735521313531330218819952923603340167558052999831502368881463896960034432641735674706014137083522793947258799558758549507677809232138109871683528661190467786856559983163554828111499770452853795484921914045906195491242189417617269606386294507139995572476877689546196962176540413612613798418942231334651686901181827488075171366838265973336489333160104606128576378386174509591906049050645650629755086282609386150792843686978954915189037929589713863094852983457871355767327542128893618554610425868003092667404861992559795126658188147505513663807328723283026852449647411685929777807716499830674833908194015298730040080137067841226100597590709332296733383822559371301534146468130996783444276965428714009184285522820131194926370516422160428649164803233821859839374154756831056244073733771942873355101329504847013135704286537027427201487355651128594181253927397590134827085601680244071958747261321896441860597667440467278017835146794841980878845440962433480421847776064070494430589372161328273451664095668338594287844889736390418794018435783545377956620925348303318360094924860595197361157277498461909892190668625376554479481460154405905009133474608671636829574986126704981856722750766336638090462860515869946778195020532119152712004421132093210427205715264004311201924793503823008760387569847525061280354417338706936264896293051184975676947856491098604020800476471490664230668271271124912106626747976124722873298141834511190125661663183238229939047998049058768474771382826613248937649551245344956530425245991496355972890985375938465614116260642020089210955727490437264741264024584800795980645128018325736675449918532469531708584952095946439640723497449947951444399829986310629809639483692131257171235832147600740091560878357819842844997552771924245108325490347765401053006579356359389642985266019597468817776526899738407944800096425182278444851171703080807530555238386086981129792699425840578776474938471825747847040984040152005168270976657804765796421429093184076687765195155021353616950353767749857126847675655287360777073505630897663340436880360023628493650920298154007457029310959184161293148343448390905512385456300255704314798724835263615139447902434983058884868673223432453732128890925370190296362140833953197900618149228841094358255756752039810274756279244180330258231055718188902537646902236335143637729534481666811368387165149975009888000703147834593895654703840106513845455571772041549616905176621265046438899369404583096889137524152691218335691556590452213309798794335452987513222652728166050240523816550742309742297860988709518464665870837560923390061993982544262733481975730415215741123773250831275227467673445626021323282977035511811924015893631600388236390811310377432349668760910801322380336208113361601816397346431047691479736849224855226368345733797524688169790989461605297796451076541285853810664467357310071666705144640896099122196655084990202552551356760796721742761427486960314197454748200572214767321124087214079965810047775466293308436635115926015779586260844090170256106030744970573884203960946285195929383600125108768713277734726318256606199478627159097671991406877698465381195637693656695191685578173776740017860775904906374872521609553825659960405825749058580332711781044936792506588933652875363862462212945703163342297857189143217051252055206074139375482780601460675793745692695969975030688738796967029438121898333983677350612075074296004488983413179640221397504674580048588902331422752285798924609528079212491346911656457321185808410024128015577588089476766975582364662965068823114221720048211155827417537065666479953655503054901766710529112635723286291189296455545121217775953046486517991332297932620831262883661885154789406761872111376765141226606110774376070286759582040076002822397271904763218280292809897475206710341266891238192743621447290228782891871881851634405000171981374777241728123856746851448784892380652162950060086795772398174346158127150698548457526903279402337809568206684890998328925284028210940816478079543504903010151094312248664469605224874722152182274297711094679760951003683630146486246261391075060020433705295664800003784255668779918117566721348331122602763239410399660689214358566075038142104630331129846330435801851102780048938651233696457493782876791414118559810967843094772377781276278494275992394523612914669941385696531769026020879419902951852427996500734983971785453689217641892360222121284504977184904494489731116219624996507027988477093059684513764899491656465510810481191138503568891632528146516729872010594995986568970148433991141165593743349114840306015417742389589050910935075854576254310775369753083116154471937576397511240166216451172262219110769637629050693296074818946418616515594285321835507433765254568994390826810355418632445335395963197326246179945664739178309515396849268828071363649031621838885057425722795273660509305799359442915962221005481591112160409953754325026708904584135466195608221954231175961863911311526409927127945871438098360160765781706797059836922380372843685261948677958638509793807744973022007628263038384098678378842360104395359999940795960347373488405611524864321169208251105844691719878952204068998503266117582764481093247192380129643086048406353585296332612423668539019819477339543755706721261346812585228294404454165027888176756461949342064530240313603608167178114052589680299584100645456948306963196520997686493605669850290518187138187869778779806453237018737828683651968937729914399649130896453015459658003898883835618165885823021841731548378298039741079515651214323446182451770513416731178714160243151145123594046130199549326639062578893083423695429888800164724937259560678147874360708378123770818633136850628249201978310267302037871146344883607341302101860289562111130526418448313032232867856016230073246262015409162601386237042332545814235069642052422412758626783756275967760730227698786122371398955938182938350480456947765935119263084016326439676027696986010912778079969633550493743043939018499807005593750082110396124563487794865025094384346319453489209209780643837141647193679652122411718415386180780622630804245435303060404600602196784191973901213877595468155398271321839478215203631952497164598512056997806192117332110263336581020624256204806616947110366627119765356908766748748326791077746229799558361946296078246312772859680550975456351021363841009983727239903196601741312661422229145510683942780615532632992061046596438757637914677931127430501496086619506140840439378319822092509416623212699735620751273273994662838817991743938783045942279259321482290280762810504871889246756872530528507667195938314508399616769593250232058675289143957806530092021084917478019313047581697468757386578343551454451615870194115280137315423230041817895439686652068941262955169749787157306251832464763410488727194788892735709208711322864449017323430282015595300882980385996657293993422823329556938323757976563207465831205019069730356275530582121130108887321277366388237798617168341262905597165855598479248112228904383042454243708785608578179403362581071173156016781262706769625937784218379429839513175746600891077609776199197140337153086976114005384736622469568560328081541584383540637897711959589979498479138261908141946733989870765198293119027704168710783016516257077125637609473831840969922050997194732451071302897420885939576444594949548153963941020296519134385815035177420276392496675526451614438492057287031867171633645620016860889320575068247910464517993575602778121548823440026014414295776202535280198554288887791552290658193984482883297266338644250984427319525112986514538642102047375569906148938869907845685204337721422830160818343569622104586776949030950917431058427053013764740543202040679522378198425161875088030969692371920468755817939781500744076301037658522564746841821262100769595133556341154959355228503516460449673264589355086346675636848450010298519811041979440464752855814026136879135970639246534020560026271793876636218761547316334818053447796626998924413375274814988124799639923331197812148837292647222169502173025650536529254517119217418199692676949839973531571475156644351264818494076965737320977311254386668001333175992999443177408670256225592239473494335922650722527520246403805726215663098371941101511826357904269112111734454596729798055006131283938672703172819191549549020001851367342558048974871437923776067880808116469491603928793026323303126838143300555978476094849534002510147204394199015876892478382872966407235649479041195881888819458537964455470825759349073115965260931961939232301454414774387591704350551591202720465327629116689504281121572679842476190133895316054142548341411981189912450008830057226639633385637003854108570961242990212678604699974457665724078685488297719801781535894955503726634362188930663215322810475172293576234627268408120963030812922787059535429428039370356639239478157765368811439242403111992880355448348229870878888455534286720875793248988938015287271092456581894209301952828938566751321944740793241125681512743830167886469498385948853986169748810442228378332592522920927665317754827253614139607639562322140897448461058674472850982203311997438974369466062932508930892327288703331556279658982767039320851695100805736931764385254948256671349936227662816075948216339907414829776790575470732158960852165568018006699276301557965815375272458884906768967059298461316738426312492128988647465923595002435378625311668409458902020574488199341464314265422314654338839355858495509276538726702993504647717036326303689676558343430438365198839628531080417274859827654306565731945900023799062995089877082962672344669507107915811567868243347020063850737694244896936340104625516438812272029742115723389788748364346328435438339486240981016265750059111802942032093626356859713273205834010242199357839893449416212369301004778326983331660560792489331550014489081521321443162661625347987176305739180568157196844633196241538157216650330680001638894750741007899747094884845719098015712171314332617783572943575939395076526882394322543846356396421639109819082989874794047236089476421562104571053115526722132126040218816797633780246901792087201202962490741844919740565553679128635591866706366261748685966424326086420457513504578789427794931086217963697587859597291061473382826711062727619135988905864357435702287482584171591135968082847083485887175514359618251860544480240307779861012601081054761685509663417652356929217351699093738461800403989978314427668403544104727537503122526684583712206622893670208823016278074449300100090771906064303419887529769370360413807693694558017473206173595930650126000743520687541091134917855220250706647145470776608564607311530210145522748853671040354318153902078452247521067917920521435634694332715469723697862139486696879477850416930615102268716432548265908710026110086384538333130272486725053947875133188139974162849842817246040746500748868013976496161583706357352597986196307193540643549635808864646701779487734880714699514535189938856046201256056121958694385671532573892210270202290408101835444705560068682447517285132729113562912163966365729486084458729074739204411722204954439341248463703234863427256163517989813373499423023071189402281424564858268656061221369016574366847673887060470416001365336673425630394388210228267881709092738978093201296614965289127994913138428742239540952047309015122067166392995460363548533209244035499533143872215529600428888516587445766789716429349823101972556798379295232367044504794618174714700718095033693443652551836281651370856440159267850087728469445666992261853542236908562252932832909422051215435711002402999050447243074403568140601177593811450304724424879425794512308873990350538543218501171248152648661451572392777626041243484734547069915316428966395704061709796686487278755979012448002472921798049036919676192227885446494072253246528324609506868700969009278591900984931614417469708044961865540522520540688469635699722421229213158192312515435442108565984141300545056694272633749477274591223501253719613576919938406338715924882225819649613089752901095921786734200953236133038756095427770674101634250175970217415084278003612600225050719282098020109237899136009503819053656425678199686891976044738229074844425114898836140450230936640105469803565483356012119370605628894014030719365122450870727643612790178486396509922365660439451139552758870267959705151860906027043856469927640840809817959551325059541126920935559670774405875591526448304306300204863236063362676946751794174895997169526741271869665708663447765458712794268003675016244165234012336801123918298544285352816327605717149928629164674848329203708369117460250053175926874907589150582357301076775054620675498687852409846622282686555505012804357916376083446590900836259379974037188703691622095625559084047474181561106325495537151376153265775089930841110164624013004244275705470708178389570282020993145992490922291557934251918558730321376720249253229380392851062885806247773562102574969958633176552088496774900202221128996433013229692514338793193176822376421563719996254317607625565335618177449845546040016964070828818746865432059229732496549891232869669290639343591419121174454570673495950738728676908912507896058432902387254348071392177511163470709625896779142454147678504606352364299614472668477987585697970471700525881136336430719536702823924956447683953677069018155125934478335171964646013259641020509558228706481377232437633420156591136074436579349837257892750274773350778297469653816892193504345538537621463179271257611307377590797452480606845079922724901117886764044463905764567741166823864989947971356193893984884021926908820788250116710354290327144056733540732547811387907232151233645747705025510971620874000622194201144464005004282591065919821524814771007863698097746314036982804789774699533630550060792235504199154773704172000012565298059526095539693916668805680107078698209205108024162387667952869855777161289230662054005716425762678840996656800329844416367831078599986604047617687228757348709351802502925209325896358671147416795984605822569793917059319481984311006142420492518921925008941933914231513171703749625594476766143008358938279802307557184827898496116324747677949804704372173124986372937082683889166387596912352654973820876296943240739253125276829749607356159470185090217205620290703692778285608190810874615768211173062921644228335005314113407734984673448063234895568931809795252941095874681505305842079719935745803745160315176969413965878835130098680982469270025079793870106493448184567013558888863498912282438800261325961526155663153967234558501255014390429426955064104828943604156026208601925347374483708484564529912822014759549947226986107337318202711055849766071730330078737482459373616620214431995205000328807941774950994725650607013906215925812555877160904007957065320916479080129234554222042898897935530102592632347303229887943179157442177662848507054114044265341649563635940314906257313027485632643942624246945539797392070304743610503990853806589235633456859090201228802358102652119541450617484149257338268130245455447343902608240526023173251367768297471545266419757139301050358595110077113259888787049665128574022143200605052054643801519963646377061713173614396532244112004641212137478084054410732199649254076469466010496723428410049975669915133780649072486525074837318708849088538311182565532989558023816300425185527533318217786832590678415276548219898254364840664658704913956740152332073202355554906622187055355056359008349391609707342495989798602880010232784979416591155443867049557014347807293534764504308447886264188275510645650642667713738097211008590552494022564328529178444490171492886130696540635615584344289268052126748335933292612120676998043825523516155354424118757216316867948061563296623492049390754880492276392003162283106244934297029803572552162268704150118454804561254185092076937193565632815796668512364120813906154576922034645764494429723607026006483247140764883189077810485964909571906221159710266810412119289955301496763069586961972184807109790549959599958997697246520932527160858938297755212034537113236472144963828400890109173350048361070859624149180451767409147101978872456707006787463680716611779418519217650729476085712313919505560552352605508001597252558401427189769443266767970009801491690847879776974053434591016523205515442385443802001738468341600341293738889358406038127518446360692055279831027698619886334322302701245496690371872874151166837203940627922001583049934096442698986885922609344612073332446675191210722652443559468368149678534612104510704726613970904704480654620573350693104583367685566943699291268958747423001689914780946097104883667497842938182396953874467364982957813554695738536034687847547116459408957888812030131743997162590822722906973557668526956662552422017878676376966660265632560150617824715576239874112539443936795493363665336901764149477482312921175874109614036268001994276160099130750305418844477878594227675907077208901235362855547133223289476123196074462605118702397585733150885613320305686674126510863156154315279971613977919659930089736415176795674828329486033554387195468233489724978212134066564784915349738329957580752165840570213146587651222245279523645639655768536519141482292715162010186071124317046271265962125586473778582002542533417424266753931849002360142780721917012101586755023255955628987862498729225069550070988811786999897700654657747221417100702971266263478075929765898684272880003571879626909106354608709652405545429206769519217455663977694394418621795532535005067268602371491787997266306279901698839767959135556526735361306377829323086536755975407552802128311568056487675159988640643105282024311883609632078658653194402792313004087770331527251198896609404692910510841881472857407023786308123964261852310591093417749582315473860341405705770854004032959058666091602717340355888878953676553557897912128808235466410709125820694221663782659627354584016876286924951361567311534553869543152821402686712850975965265597309567047851721269746550627273450392592044088695198462798171136557480688733312111229613287021714399614032512361790315062721481891595986047909039683770269807174948878296992064227715988369453165727802413684989693987282733719261443885944597643304188038258578736125819079071604498914933333137218551456761781086915579645044487077351222337121347847965913974624103557529858075485010655802477684267550492127715539808320648853404772074600018851417260865368292786107035552177868160543702822641543400345769387987239102765419167433090719396482589116149793848691982608174940570453355349615005773752338246042873266939992726690618480407901197028803016513835144396230252687931491831040937875426224183170755256569726113858571876672200186527256004452773782574931324028927694023497717536925140351583369847097386770128204311446439955934616460334709584702535437670086215647985912069262308996589060046099390380458946034873309563358860288373284185347222284157388249793560740031251604767633055931391094336184999985599682120605736030350182798932207760204567975817914318539974930854268485632811211384606704460654285206442347954829899996532070055129845637387624942696045012111179127318136427882847761394920408915395368133798052018905430908812489556364946286481660993364828900080298913254750374536056485030533793814083074021213999519712146362731630721346609047441871766819383544820400013658958392603596405192247066060587295263202010158389037263575699832023580787468788494514356763779365480943277241035947352113126456460421696893006726796059251059414778103223516909642991597894826711061288718250249365496884621020418836967483752530265958105808500393072609228316553069103727283519617926475591885582663380989349217276829743582457091970865417288221786480442018081599972296386514492337596290073497551841197395739570008768374497103366586053263490473384123500136653797717011254411255600000343256820561988705908404714558428801852731044106855828551328005452380114206317602661858812825365745320746680057313527391859152952491323751926501307495808201354685472512249631039659931693157324867349885236665107032568460222388372951076340115482672217285919694222944739141050636427276868449148662988849570217266083528116934072576605741955745926270996915148384456270537149812691313953192504959643354995237100291767776807706923383571916740849368188132258627442394900916783501052881197927957249223433046968391012715725187801808507697360684318252497252159278067183754483915168929038560432895494409188951452721342421799770289655991711574320564931024081543043486257461690947346023803495226257236158873481452858200436886943174371217661215810744650416715805912385434377390072657707660053876612025766388563935788849024499725936527409969673719904481547933280037108730799357877763752558161080058883376869125830706874872904703172030594493787971622541985106105561217166624254010838609644130635273858216275949103049258366319464435789472967873438728456768187028455748572702673283244553012320782585296793301006750274441560776245348293176882950126507378115573265491800073377620926224398734182257288383620723942753528566974430722296153430805272821773912952224236504641808967211379639176455817761034236422431605849633849569586333852561894719256699778232934290388783001651017537906927820011220723573572946962871987758482261864857821935340433159047388212790643041177568906256851596864867406536676616089053938671371459244668146940343265696549077810628633203134806301024129603886313657888974396442128309570606221324882406937047056884250554926948694363760278163343631240601739608211468572009658260926394030827910179812936548155879027901774466476034707698172569805119079375827362723234840224162780022454438415235851150122645797965816670358066273140551384594268438151264270017294683794060555362230942508413291157019442288408479853161090189636937677545702764198605857558195184748620377236164718140528250728146071517186039189224521913133102503592233783514179821750094107622077032480321078825843360864102213469761889922962167446657317724890313964656150396166057911667674188800639763654311406721196157239838467104245465554889838956043617336999475704415390036425120219432688650171119750574958208050539487477363092167701743181138271956939203648608026288750558966082888492587018828361813738653232533731399801519037430258258462423437784210844396825627975683609000774724602202782618588766382816653866604109990982671256167335074313943120872979439723741960634793132609144267773208517379060080586387878952254122842878437224366294463116573976883384933432750751933384618573553326568480090918474535637898166424457194807160446824307315027369199228859568092438187730613802221092353725520733963056753284874699446485162733901415410669958599233348451087982529622727230189649986557841687868046919677671719105655697192338690122849999656954890801532177157667439458303062957064559428220371489482552367414167240073981300804160334305924476097755208026161331826890793954101784013966919743554826820577216123758603864195490165776490159466581707500320565162625633100582597603738316772466715661432389434029613021948229513110868808372151126112981223835559385052225230892918046560821046193115281752069894054881609560424534343864881256011924951356829759214623784971691068265057770179563378243560528644331715191315386591224443573806356786342122136261188723428439690758783716730035547137553438987740299899534104915199868661354760950002841164940645018481124716698333550007046840810127570696480245812238647586676166313263399387681673478284549317716510572677334707518581048917935915798058406187564086960324461159794116805030562853605125081414300078911612458810768460392191099835743740570248839610789083816062101502327050329388656072242598062186660517071650565318097100481915645465171434982919955219505864239631802421148789964031461936450639328087797293154203409512395037352137530345429897818430520687742029607387867325980925697032081327878732543422447371176009236887104772713405534421279193791069744858706356738444175944616445339698048298717361793141265880888759224816682015385595867773112209708813937763390783750004853398683692646876156166504105378491994173046551105789088014409561615636932668279248195724775729538888100899646584487206464318587872088472707421190520843663106019350339342643111646352638028633708424597377471852059006112653858569440986012315896568768163384258334901228450228237359937412966665427606085090914819798260750162740509279571550295441407748869891162062745899639671783241650263102465618521344824857965914490330408391665456395057354980900518811778733775476479639256975662360311319378235283677745046278271018033678865426360190360566868508396974092140358010811540314781355502797314515002105021686534625819094761277688974867741030395311273780017117107442057499700227546415401995531994722276007190179277616007434081829929560139143101780349351875478830570577920854551276939024802899284518816328309800396635826833370678492797927415904363962957800510002235789456586523231794233647250517635247285173418150005494022163969537421688762980715972655001489377936761091866358991933847841676575754868660222918599019693739742917900504352738418614787170404023681835548634734316292048623254148399943393602891925294376522063804195486080253118478656924264289305181631929975723968528772184454291618929743872011208346568546520952084013042892098412108960846698015298000147976119127825787053044154787414823183606163288506015812977851813890283147892916908244226144271811108329861850345802826685303963338884396930778670974028301535952956767308341187184557903624665430189444007570729184635879743471585066231971668481487304029188694090809181859803545613112057337524492734499448462528525493604130198035367476401873365955350736293405869429583366684309689886624074703324255950751714271342690879148441863601652666822243769238265682433954977728500019836283000283173411475086982713558229763071639744385133781686899144967921431720712987536752680533358367692693798227725903127224915402048106666366157626892623727337554925790553389320578169222545063142384208352659895133973488586165338915275253016050521864917103006011892974871231088818328464490032223453078244180881123364433174698988085122823470784070751285286577510403481025559362241065960436923607742553461094816909721353132042783970819460010940831405023988162022035084113238136399197643942442227425743310126182778331007180906648230460590087362547976515240435072274426315888449228270758963311379979167151173949468612062500561561479194748609913241146722254152399573440630568418518475445149189597112345357665467054160519320390124063651501315568924150443446205602140018004538467475356803097322147804286048721600885074903758230875339756060702711693453795584164181880739259855518034307711458184257645857398551123801621639415737602736648986915810929566575170691053795563091780453860285467641417757322209676234811325250123265404694242622948461414574669097977427478245093227065395171722658616163068099531856418238998522689988777832199237180134383982977437308643434990331440231097551077007156621260271656304528553349650900992631572972072089581276048943541679893532050727756350185953380110376666054123931368792807911631578566676037528029128420411483891246038112951117723708498019080063114016196977152498114944046070276131717820508997173129425211427254749243684431122009382575709093047160945181344581362314801037969392105611385411698934128852266871031915675937311504797017853697230341321203636731994645973532554645462597772157056744886417118032529793058172025299482586223405650929961441694600683692287763655189009595519315112342049022859058090928898276652236644301894011537675303919938273687105347856155526913911097480553594200402955789359220086143697778754298934717662575768284215207980753655598732297667446869767050765842276319437099984702038163822911618617186116064584404381683551543975280959698368397736352445154312002316753737631071112373686120308521529119158015108960963453982601593794251167128966947443804938680120224404362268055074162724462776972850796775315885384567518634130519998988060822497552620091523815077512293673280206929746978938082741339037034401802131169742679904181374273524265151332977714425403500697793314874178754439958122515343351964376246977030121477327135911040620799373405288392273308887207015253789654609785486659838117089623123894227683718813143453386584920223257987759336587893023840563040883460289361306119091255277961380442446527378730542875448300031606821957835588084009350837722598044142536383517214445750803716943582105976999207369850893469580634668271513381406093050815562995670879250269696357005943338688175252887744325967231175520833137361553339592915579068145671575870897183141859321753569972625423988663291634774133273733192102649315192098261814608623546606683426834266925288707639746756975215751975834197271875632810541495464797147684399276098551245296253787959078585759244928082035486586327671618797670649840781727646094991879429607487386433081664979771151735208931090316503450654637384733957315382975512752488936213774998191014791846368400082571087813865700487447548021402339202932899740800046084669713479885055300959584235724793602242364678435976217848031342457943222631363450845522600334445312951389984041598284933367781383951927971648796870141737181785917842928309738961615705339031441730491427367974286407238621373629738733141272148358602064834151915982161695786619700927717085297953725762260825679929181645331410612548702623857803851183762909241916493678330983545151081341308300586763119234593008623667526214830608960699028048435021857389378078850960681605524499665867698827783743075045280341985604079558013377607925568369877138154531106907586292143883459121761440214630413818947233480795006552346203449294573295633024117492161377422045551983982142958390684881062135653961218460839522290720811034485665050185949148327240008235950362739695778174371687378631155086434574827459470742091261668704809651942395266970134824010392845008389697736126942306522310569295158511776287950757328836799676414070648545830330033943309650963325225195386808496131754238620350100815707658938619133032378335360469497020448316971207649809065975683310875362003383896560901941270392673344283476422281196333205251459010627921407950642054128697293073192326308549371786732644502020513209931735690751629672561825899761298950877228281065416294581535913074857151838705667996075549001517001858116823853441613690128291146380364489725920290065601572376420098955298837085172207199432743415274683434830699961362815942125022720771123573455858023570170457260786646618440303151756515318143687115669078128258686056994573683961058356176951889853744724049268168925547442269284744028118651562219541565860652347371580233835405390725193812979622430129770198662245373388853227259548433013413786350469592215935360726881078937576866054328839906817511557538554681038031562364870304204682174649658425257392942165520656988974829073103063077070746555294997297515734849891501202560314838143845944677862645294402292941531697406530375663156184191563755319200034558232619101164641062161077321413963741154599304065825250354935169976784072977579707393587239606788853730077082085333160883168738192531906863221028610779941720428444599356910155348498539008659624191928358888584326627047442337513172854145928909967072835689381717965704959332353973263241754354363987603846835571540018204181809064926836000413368808395997033658352335421291144761403250389922302203152687360879447694362714207614311505347772606173409823842484508736042722160468397421496672894290929828813513855344176551348466513317031122307838001789743058656706131169644284215963926782579564688167681729929703811370943592380928926518461668691213616000344900873602860144181263675040456980434887938098438416048155050026175335230841176438656053156209857425767287902191880474311733496218595623535290457252584433609817063321222749254835557581290287432893880245383158450081232770165124944727318592816442234289270593977380326732266000748050823545153091749611450545277463434563098365876110286537567586205673246362762880831188048510283522546733944159005846570646657229234736539271137389353185971219911657021245123485510593919314436189846364144936612968048911083781308068227756835876074196988322277656151709679834790728786879352670657697704388765350103162543708933462289079441201085239973768074828481690993858750035519184411575013616172894499000456774535821664959727051916414145592142465081880072854815898577037187337037603713424228330457349893607768728253465608881356080257140475100407542024992024340467366399527064596023653582755553690820161625291156549358723041892403123657448465602503691104623285117356975786400899484628556944241675937622699435076633219822311180641229512305749511512491168465152027385542193310527191825792005415897561654049061645611010085976332709062230186647485224636686561224977253783191899435435883182663252003462157734283952680289531079990942029968609425510261174840123315463517549907292559074812895392392423704082642256314235449301070258279315379455757639174860059789977802290557121152194604696126071233557902853461104092335021513774841560150577161144909554750948260664264683031832079507877652062781915275089635982015861018262995615468311933335818793377497579954523241220030421204615235436803327095340916676400183422746009120956490511610728654190196663222296963295955366532801729462480034975221883804887399362088936615373816973106395471185028441516156115467464616899416167028183394353239765827337955476289976805181292944893042828596188921559579195226834358482045120375994838207598115440502153521870250888389017841295217302319075445035555467011463716873333477586179888602861106990342195443419375228499602736062351456947668223487828140586909474888241185638176086633072846330427749511276910428599944300234195755412477446956683822588061149539943384457396868955734737560261623429576671665567618521865713324821614161820485519538019728192320291264410397892406765569351575904805062220288617513266477245544211710356322583942967557098162331462439119919658023471944094881504750519693114766306147047238732466383578406649093969129081906943260642379643079066957365213707019662418314840608895540468172454823347259881027631932867203043077004705234966298253973315174767315093026498069680017359582524656815066518059804948076554480849692425204009332829944274959639802490824820583847948090001119541087464999543027180803340297215892330014735665174109622361484374211666909873748315823841883083496861212740563726641301808294692519771505308813138080767163588191796858224365414148975449438989291049432148738005286119664101812212573626360973820128558484481946004235522263236008261921527648013907768923411507105202155408959672454251742824375114009574404359035034264423839404039099956334572756804608073952125329161641972485884774958091982997132573709698177752881987072794889910214399543802570539533518640213254324397953356422879211108028001307232660047022451344351539142038202739568445392255246528863867159898964642328156525333815458357840402744716477759584376074982382637491607167070434551991339120204255722151141147106702992234302589514251420856053730263018583259463459729823891053834534549456414397811517200110360331123829743221558590078268212186035309133906828533966013600873775566710955816668298616077812292182792508974199463109709937955661493894822972169180036378436916152727590742942122921704832992645669980806441291750483056077506477815352577861282645915845484284675739644260499529350183152408968981540122544595250899428346675866892025007908346680966437907495320739710078548757447319285542895244726245448257235921659264829208360482999544540790224712363404115529583546433827848733316861841529488949823099982487555341300496708554124723264357744866244449991072778940875795737183669552208032621699419001809136760506150967382588012640567575942502462023417668554690771298134030010958118193787396244043666494515361167543344029065345132507605540303398857064863237007987882925976855206235031474426228221229645094574775021071725961147108713631054468067478773473593085394100535943193010179681000177344818655695435307076774324614075212695706262883632945897880791397393075946840498274102976555944399216845595802097318379121659166376303011306679545738400091615186496154073116448477021178993273665548910672033359111017069191590534272499232840759499743851606536499671288429592335447223009764487628409275195004470261620982077621088663976074991116121459299876355532503496241372532478720257897244930443250648198898189053347326872646434088972319076408690059644415400832924628615052841448952185231473124389501408489890434962075722925409999919108843603106428793864773484998305250845600110146582555701974724767912799964614667058410078508322137563641396143593524599660612551261799346564525355224785256938475502807486481975734236786088548341444549875014559660035095581210615950329550037049366251943900193316963975954602973907291258270740889527002028007078493278403951367943280730057751999201013475733152583671004128796762902410315237851977099755182602304173885687223598652833675008296943633028112289239457712497068843443767339193010673685844976227175499540040933299491076159045728764896791597822934521477891016298755678751000601411082822176322689974110183607805896613636654469223118287146193399884228767886638550670551044237124265484005037347571012595336655822508101101385989393586003118605902932736812929826221088137089404461559248736564378921013125861952743184938177394434761109462913621625529292105049283595226192599021712561040324261773664978881729457187757850783384695454046504552459008582904081395645087460287313839061486465850575867860575696779977246808188312545868513956731942713426736016089675418014946108626092529455466443990764086743818515120465550140326684963325980367010413240127069582767375346479574597805620411219397466561703581654174559882040526183661057157986124617560045985333737361610769031644958721606389252762434774046653497826864021922368175143790985172923113993164328053971437107138585620957440269520414570978680917740368522078817561020276956045478551165953828418070921037019356331937859407066902128174640270895185615325698599522236082134101451019692340275798103825501747978701884208777701152846425150052946148830555866353574605148898876228893295918674123253589908550300009871432136590379271613315791636562148122695933011203999625030401798121832568101923271230689716200942194839794470034984047104408362080314702773915942773621141757924882564845264943467004302665808818535625909025871837098683572228766394043122332480006025567061789526414341495391342308124420373246116067340553844890657103439951089346261234428893947837940995138525829658372717755882933718276693656895941467339956388755726668034210955035950173678334646199930209809980996692093821099495201913064508994264988006752190710745641653336661602946416664315253017612780475251322239651154706056375704871098384884979823002038676694605812023393857449685741431650349668072597743307942537396179057529632194284393028265958955063467170112272490866782063586862878255645283623707758958289524040027113633415629022182610302635768466413634836247415870323316610824072729698053311266496353745227080924347766481079758736722495493917638139071654352873329863105101220022992669887912528496200084728244833184422502777983347023795895467050232373793428810523715236214918107785009308176866965833632616007305434191830371807310818359893849238344509178914571554167907040692665295259400747878648846110348533739262337047693634576082318962631258058335209390435288405525198394104981699089728740365345286510050936903638077021970716904594389098355016149088013108651541331773716420049406231838848285421956305770213043006979222015446480434166451434191897239377338708262252729602151021073865796533845732189107457605714010556467674238933001644135142115018648065089794198814541805897543844420503471447322238088671933483954596464410772910637313637457949195677399298033965220994729410266091307724412891437921789029686622319683772550807990628090065940951297333070694602091631761388123705017546163629708955865390807632660952947554138709808455016260118672365786429127930406329586297923612535468673755881228942934822790696051004041353809069507367986452554204542138743974483403242301031993574062819911198739508423592639814974005953820146472885944899751992394869237044314457288888001470815543258016117685162902043286640923673416494862786522839306598512409179197967759243738569398358664170546975085127291909614110385887161428443766172007771626542400625926234622633183479507329158222129149118681960300248037907685533235192328836146215652518921216241262082985474587907427067189512894296414523709533292387835858996964619017956317133042735227542500091958637440877207523660836893537729211587735345878892688079933950008017515662243062135392029374742569741148778431291599576296254435792711911407328113017616730792977696236303988024584640129902319254117626958914021702734926781835206456928520309954965518688600914800422348194384114713367148596822671308227364546521589365368441484542069176738142050132903131567719802315654869108881849422892238443245611820533338860001338275558109817112601417844350693356174408084642398406617058207310089708266452417064667506303935566459343452717861444791895893205833646386022887420305806386833482013811256685677576044832959273782962889526486404299211006251711723078054233378835989087669590957341451432236652848337247949108219653147567142429457929086165613876189600860496145912819662432960729577077498259598459844665057137615738678147859868744222864959525414198537847213427575859445053938435234583640446103117104114986180838296275660611778574487272298784645671937032609590563331136636908470638785005321423030136277690133552372696779959403003200295038238157525488913465194561123532355591092179800302992725325861884882866328669920174071067319536482382463082141754941487380389860370300904687396011611689042833062375909930488970309582614014898367305562747930363184335567130024171954903792726870626758344327851491832308705856165646484339196295342767742198702564129325703145276534647511217932435047205478684400015492791951529343262645736778367451481414396547938933010898918525971209562781009489614239189482455501609650556001982563191293533506154601266973451732298664129861371601527297043002608643609220171847742190231858130879484956434418024239056907418860192973710016121971842779035680500749454480312833353442330990091152967648719117126754675143935408467487289006745586002540946815769969255851791508123980900106322606526187718327973422065235267924949902943047057881693345219481526817448951377772053928624435935876301807939270242006617372043891263932410024208969045609006597549392053551523344572323757476284348209790997455698935327011605917127824021199638150560563004900337220869747663821488840500805900576843176813852248424051234301101228924831271456573204408844900051393295504175685896268085878323215646362830031434637100873783807800447681833388302434628496540360622076915634399257226256691114707440576990604979692567425246514501689675269748218373096029721267024393603398005018616563977979949437562481748787058585618999458992259463727434019669859740759567287576626033771607546684915508014271935848469553880467426798141605614668825850163869975430481608845136268964351850165074121125826743660444425538960939424155572570658040008784372862947229687110646116561465778506861600677402996189870251886260758127476130217943569071624880216120758426812119850537224128524656396964630345193584229608513655612107840019701079087447917066309526689461823793689836088048475315082284983728466097631396386039292137354553547618687514247331264857176748717650368023374459147254917890345314100828818968432917180105542461204157721331191233161402010539909795485744777279494737462952129054846140716364900483303201622239917244445869359665330628380155361980113746620638806574615581607657526674606270373333331296475310467425852133534729927730982010012511586255685905888632877973340356463966540784734895565008057073226366592912618780887010309278751351550769753180372471373936709629928603987184863137786190814747624731942349105391349056384745764321825874806371448510035096373415980441416240968269472543539849182473556758668957301940152900058904495190383886119203075862345763151753282459514009321861830002548568820260956528696110530053516704138845131958566226932749398451241226540323852909761418583606393684525303465706661595972281918722890844370404482666482851954711071838943632438903954629739164515658089604498540825900588617885815529500574987955538573634578937825725214156459415670978792295478138263675845556092476658587777135614201077997058019669432426909406567734816592331759123459387218388506367500975557962101113825594960161100587373149724614694444914988243373599333729325785726201662868446659216563673027427006345693584592419894799862927513604955779519834052455771487634276332903735734589809238061883361335215868382385364225917004208015023958856744752242010608939885478005606222093540703932988533726361542363107410359109806489731523482348189609298228807061906550956495548907326826928736392037765997634667539497496253814999375280662989021760393772868152687005113068052370509378005029944808250827769122346546595094542246189424626614337035147656524529362764392725128866076598800023500036372458965706471513808586513059615099401200980271141072348678648134464935627734766184051145219172151908863020545241808246216290018682465425044427343523066017291441217073512262742414509091540226416144123382816266592301176882761331006804689696198439668773603074781059115302715840960968098324129891358136803042748593564351148680744567231870887215227687390116885429884555105732524364220345511994667046230877920114936210903200712450760089334229800503661082422525386971707957743671221733845130499089145564442124616348379316590231947541146855635080435407316803705530962255478895066726877319320093198115879650338097748480148400513647879781474341928579226169591001453017278161315563885599385084800224114584247129757769591562896363156359409321668940577530436876829306193348145383721694488058503741333775723828966477893440462552724148586576339953239324164311202675447258966884962709713855931411919380399971384081331652227214228552944747412327816349067784428526561228400990216620196751513480567545847921889271735661219538175814068930963202510372561986416242427754920472849262580944874660975683194048028480187472750433005068192040456595950405791864655183716825879421861357337710031841773598734219784306301821920641205016969847901021448173741390912854192996530946348770846920060837450326426796980180478689408384266117402775332120317547919667500446551513187537137450974501165073857919851299185684896544832413871187468490045311622193158322846330005675359695944737333204383762085998461302159791742693726016140214607778905704401454314808592398767970975486954222747749449505207966985584075521262847520513096582579981592459415285552665635438568375680576063637678550141668891026341204245984348860007266247696836658095914423539092067061604925572068444428019405688183664751875190776806280415555305438340765983426434565616800756003736348324690884862667912178358660787356075218929888465799048112611273324925524036859967818667125485096067681138397596473004911809786034872232124069515473832131896354350615627237080214127216284526755327611692789734926314824276159049346370921380811178522744083337590368156930549093927241395155475881545847093702965556908499514057208007592331594496017053086727388817105496233792456309638523436227486854299760224040188645210984852403828023710335338037651240743862006944058372666239910656233426243576480489643812807675774563368486444911749946459793192597513679203970212272149154614728570223467887504223572184706442267271903792804878712895846320575745957972947104479165551211121217388975843545647776462724559162508392811608113951647018106248482883538261835353177876928887337863538767269961887180450617117175453632857849766552872191476603135247615188912535574851146911971426745427061202826298281691543855117772848592243536642803552865822376283582560216215818494393460418156195990948339651035730901084934153520373002330415652117756700576433311335962837670830260652767167229178839985374989492739621205687642605512317332387160535176934952720833387601003705380929241922838053094193369501925512065532520567307058136812972871382808912275849747889075600135229603041307942618626577869885445361825891408421866519083185844016546672689901016860182556183635416246078447221248353585930191796466342531063164559279065664730640848851341832332219022633564715007296932657214893693046949278507965365064952361217686447313481395988013188258500578699427488280140938257829107748881622341904781854897136766130385740813385405108388501941618361868848136961952207679616960861236269404029887567684242248425832211455566210695986707313837381995859950276176191298640507841141810296934164370044941985439454023767928910772966755530831645028820904930400731405716390710664764537012654314889236366197464551901809042329687633939278450062240631731908553001424623160846099345318941694799018510740128414856008934220659799139042377731093165157300389820947461010967262421137729616171850753984056728507611782821935831551043600048256386580870011325695949739335165469272853004894198135323289969667329947124909911059495997146513593875788306597219149122685233379651378975497202078274618181137931810242229631510796704398915455243375728621745360389746955539295431017396436163216053284320960008145510916232098053314869714008871070381521215837233689510843693969651562149981981915752022264745253607826954573779856065959018558824601612891041708509436630297076957520193945855252995163151029704211966736257552711330287887088848988941499539034766391409316820610156629899568397150079443309955789335654821182032188037954662380767387011886948588246867812406183983047548730954452698377357845634999378918212300984645985094657544773142104632427287427552278217693327374377758687917003125041549786032330527009278722162801060987887398591561178874505857785414123443207786211640567430341745395524506185658347786093436393230836614574924469783040779310183223565536642463346408002971419555150497093250660926983874903015843463649406544932589045284465612290765484859028325903439847807557620860238525822517577489409039533395194836967246063970833406909218827482426341109844513795196584565320085196968781017558195504966445476169025194996959436338614854721602350010898286001473960103573425429954689271839031878973256275097671420121071794984570354476751861342912204888839014740235399595423639432075717305298854255015110248021019118708813441431585605119116681615609456607327410321456223344388488945145936419905941924207013413388121588586148889435928579954783753325546083880559900283871277782897907037696049512293464110456136941133154475479184010732552717877231564774682026929843807128918847651974450653086290774237841961008671511124639082496856792790830907203041213767156664608240685339590985734756384073546904253357408191862605051144034989870977878655159479847722322373446167095750905128340563700254921448726894941733258859451163842900994570531886686446462930261048948446683336867225784846498146011068815005323839146681997402779084563280400473399538814427018199123789399856515703908814389258725885598637685319458523795502391225182972603442452984260306488092574541236931512355091064925054417732113938537096080956540898631031368921966924778792343803359439265957032416324015836313884473018924859519511208400413371543827969309544217401077915667498294377315467609981441577243966379388041925643052784734058090375867256437779948658625520175089814938312378311883289768724966773494716838599890271528580714784134601262114028132214180839908967020134900977034599351983636058076373543690081724893776198254603684853633457941756471770902297995084763007224747186208802542016284296308031498248137082975231242406512326773240511886776744918228534374760191445566119178129652519516070710301282353195164487426807124248410813108745602127124479606106466133395604185677628190859611070246364391662718056281095088994653176391220768652179305149438291141144871881220184307063935285950189491118726774813459610349592609324790745862207316409467563198496183676506687031436809746511040213877906211826242812984409739736892774760238956789998106604294781643255175925101724857641578715057952258667532713503866415491912565430088259924205701884987708206144555216449326756087718488237545472834050360484645138688679168501361467270263291576755937888676228083792862506690404511344647912121235163540242994075519774874551179192426780800447568747480087649879583024151740743644526191875825041352647965348822246230623855095788158015919768201350218018826729992953136453920942023175352365471449399066384956986546847865991259658626332874713662159763407589032900015313517375677327627722316492856967398635434059640230792927905791882681977624529258756524353901519313537370753246729791096626081254934303351935879641913706851031779963647322115674029177427162243523937378922019610665774476223664216059458999590128002304637884681920231687270034379796977846595639334958782261723884304744813416771286905192684524551468423266957695190210731335537535811347620652285100955329584763002808259266073216097980205225688930762615477888402582234937670373768401522341704933783891417463429584071169554577343434141864427707488044695166690583539391705225725132018956850716224479542762672392881515337051702959354725508042166996477231334602479813681965077546289035428132990113650346810052658935068284991626135654175003431215058853542856145214938387802361643725950918990589469771074074698830236918425242662282290384410889147178640245180563993547950972719271053499453443282923898987308214826117654490451873957153132577354838782361029956869449627260054247098410544400489257166173871060786441324229027428927866359869055945731051252535919655362455599308487753550610213875243498454926020197324187286360831206312059423671254760362305372328025151759762627765134484595453904919332997966228552007741259390500647617995767219966237397197449454966243468394975237713978633425523054326565911876447192530517791845154885895708980112484060040558263077190314631939760368887086142095057659446744216552394995379469861025511424113156134295058422671938095283786540675121248919048476008797275686067340614742658373569251781638948906674010847077847512320141938075704532674709058567653304881226114825519406804384721004478628222050478449867284632090445131190024427409322284907888091428775445520724702299214341434288029562840832053806653644654629187966836545946691779894336138897835376323971822778431006532668636705769031709082112865775509425706611748230691041240403805029478612243654832130981238916387755311551048030480132886443356124277511204733970362482270202556384153816625639920426843622455789989976692693643204448405701303716318282472765373850467678772596230329911417966192123058338583456065285193935193645196742207586151613633549312907538486601365971692736932872569223605902781369124022650367598231066441631530422097097962955200218900219077926370606160070238227933853613963892032766892333919803298445122051352897371626264924587330533124526326074323198273042326360565424425301817688153089946226152643083764544967088223257806395511534577044726124963313055889421876121165682665379275553463915531958407147990953844008562193860648288934514749029161870995000923332554921694243538263023265340975893274034039337522726928737630321997883274426356758337596119090102032296649646346476999629703431333577472734938079948742670194017460624467213187134131271439114102993558964324298358189932583797636426201406439433190421398912273202742920999440967325195460512024475368828789966273667507587263213477667282473498206658021055057204137013645673897391628202170492971885493667441608439269984045554925740568192355312646059268323574315054506609116902566042312995287305215937012758314548139025294110926790022812933288533836310633295777085968162559955021274443286600382197430278652603359088807393814459457490806976316480087076871469537229377828505313773746352544773154436275359750656348514682057032422229166554555096226502220759003146212403826099781263531154894466622247631197552593019999870473817997477881971344787744588716497146736708839269764152884743949674479962303192241928293086600091486586178240933509005878969887254862022802159266270694966484020037980342152752455624341395479893704964013055852910581405714567578550335496426611958281558405532733054831000825151026434551165197700460255083367542030091041247779527344487748236413421124378704308686605002415654932249766638465807237971913726484929249406752603136847106728962141530337136113785570366913813142670680227479169158223410213405972304366879303881143187128488004697925717990058691753007365012032507191615104810475920001182921566191004555973321017099723572928655160199355675323511916255601169082937453512276117265533395347731054905157793580446974781528050865705650124654413623022038879989491558442862240540180154611575978623370592657861105019977305471387505460557306571833886486954631411465444262327645562506674213056129747294319286166562282285345023032943217179552425466142047859544043959551644847327456734554174093997054772707092762300486682268091773823575241541783503487896393711403943313365746247000679969199964622284956244607214411444780213282446436776753949335354161675952726090080944750102126340983622045529446840459727710017834525106011287641688029563931492426426488917601289947627143403310253990603756486651122577548440383045670037362159622899813864248412934724343527532220529885545408815656055022182947309206239651733548532433699159725601745394214330692406127219927412805234531076467054721003869706419783645748892875087741593564153624392710148343950901249543509593918683789651303891720869042093339879420664149186895338680117446213296641102108800949673060736703054182777532147661691598337467356553904737904503642284270244968908321508563488265794331764359269669664974136361627567081785544367463892114932273757328728517508913603519999679863214962240801605355542083700657525993439306936889950752795755067039632119964048217677181372110237489776074165116378932248046542563994196256348861058623817231461875251636008379420497298475255189737717499406152107087516134334213654692017038267476698000958884292480674700045679628237521489874141730112586415848778303953290210705700109717165981996677565662505645710247926987659884916296442286345840635380258563510093976342594464619493948220685545738063680504698663494641995165063766870089784816574923908664467581336668529125190684524416273772589863374665740016340401420451424340754764224173841719070491078557754787392214807194384069888847881677758358825020566077901516607739990904643950335053681110183374006654645920728368791273927085322864404809687110621454091519831437681563278427489588435364272521414919349731281485217830442917388231819989111771558509369248139171471652182653677468469068929392048888727310336844863857008253817561311668332473977094565888629137513955786052377931665599777341442387348582900983050229306460071022484270431065405340799228651682181492346240089880514785971774244961555232015015264110375477133612547251779897714555059028263231025521843913374180711780630235550927539000299666142362311881513369830565102883881537488436238651651744192833428405733830984030604232508178241941003011594702711209994529728694890492746195408245198252281655103753158222822253145196400155486748925436982999453840837576908366063243649590874267768339582635067531462695037108822810787544994738348677971996159331625426255637288638766459962083551515952878962944786533575937838056812310772024742312263229145507766307602626501608611770288685999386610366404926831310672625127149828322272857201145130242261034832790959712753943813645713675487766379156962561146324944773247060402256120731680917282666228842842780611366112290231106929990681758994872538724087221125058435176112395165491519004359444190042275408105222153099083105566698767632836520429055008145351766175205693317369567030499247310972702690602398995752366002824629358099922907127122896738592504753387407278936191544411191478352587407752148151444230879323593651997722967836731248497953363154452029086803584663254619938179603322504064592131270714220033332642450577216829469949493031842637358481469833720491058449265737244107122542807557915195437986504865639474899348957631500776173366871908508500196939099380394127956651837495881475184486468739728105876390272534605755936116290967690566609301483813085247060226642106455231997762244358097932924594511328360017490587537241996280718953915279247610810293201644138064007436738182650256913189168218688343521949157519717832881684277855268936332469699964887173362531887478813410284575593305219920640740668180463985942314928720309965959051752299088914617287075137378206154116222536118343883011490389869927516478512779004144329975101959591925559200920607710177560746667913802277802789926239950171092519192687390561578807931158381171249884204235334163261908611144249625925347313649049514431303297968906339048402498228696337026318246921118609466399668607426139050866378750888944438178284733161739399826047312390028569137671834551643710511511990196140803588978855713972507552554371801750919830018693496092936438514908055225317287312505081356740226911068803533733866257780664264173843062123211236234338064409301833082324379899786004952412779739980196133113995598265185276879807924790169723321879738732824892610465675781259241016435905150927404786334891184958505169902513620000992555631150744582791907272093873809346542820706756735128291109847139947285943630629466027212904129629433209207376099647331931481109720725782960627755293957400016119823167292757964165267981319625222126490518442722418668551911773103477959262999072654633485884173772108025227240384390743614915786930752548316810633829465431551226666048542374249179655515154258866293382338262972267492220748290910139964458253020802359407307248667663578407426835490489955366187093206362985024021450789641476447293073018897113684433908945970236931644233556247135330325376548734614387548541380725794493540327932591701717156997165373645303613754716473244434791659482764260079935324915891198699219832859455055912592383033630240678214180861438022460422152344517186295227321181465554283897011977741195041822318456162289375098578217769419139655874221816332363457472329616298037504981766449553781924597459950359174468786948465519095101047655122655698787065159364356649396350539775326580466301535061607912853351350431845892724667738319513847992300334399923124678249777735250325163249786985904373739261306228876311271243308471037109548737242692676252987740043378019645538480229780637499034182948945004412568900586170302940021044391176330702870079343762162082191064711680287179641566366043125518663842169641565663249131951404241628550414370130300327328544715959124579240582078789990000213873496471302421933538017907681367808912055800275206144454849372953083305200661310034942948552834802694263082320334858312709871693834262120323875044331537596478817530915923361932769228753241781946186727253893406055048826394712228437281578593070658451109814967611654776339185307940481191721773621890315487881878416708478046351756377786621884864795003511171439849935069538036867998754457883837290053330714856319705815996633820565346836139515942368603283405224986613213506993808333568953971633297138053334913946989668502698473801820905515260402416121123317743973275543997049847344759213191369170501815648066469044807502100281908677289764587385189107048159220888402363618883773237514349510045370670208543040100493314276557075410507026391262471795126701857864511183218682785518613709740311710853240497400312672113301600233391583988188615263910717176160440282194853396031465360768590099694832928186950500098796559034462928292262281466770592141620392438946244252888870092204639023808786111589415211714178855511760218373228751638813296560409717416539160766161462120611422358712538786114238069033423938898614720036696915873692353854774244644264585770185042431378263536195517750474621045406303075772630063974538198290150647843744185419189858096393307110823137027012158746137556582000295446722886768689636333199040458303058404361278590889544480809277665973035239515385410542437907692844981124635793895090575967680787893307414814658188574123744830813573682570290583625490892255620772122024363068511005482186506230030413924917028596330680906143804184413202099204534342191861633413241564183452904686822636438310354736432784846931818396811162691581058943375484761769553468238601108477284984001199809759105627424051669213675558234217425049950245416217316150953100402107156422143211879413303572808684880046725529414387202477897565527586035560201008791558522055582098668270013210056920540647478280865357240796318690201015420740945012324322259027697520586616227416269168487527064804377558010325993511250463706535131511039864661214041280058698096461496247692433028965979932576379930678893735630094019686567901165737226103065960866482665818586695570968008900423626017673711188236781592188318692710706991844681175472031111269043254354104145826001873924654450371603630787482074802502995639109867032842260936689200364670472578107832389675729869729822539889483189981068441170762446020549583685059496697501963151236296471224425901679349216870961320408838572656026117823098545520868458240453878542318495384683464983280759763685943823656173070492670289522732881866720531523402427578469865555590278087080914967784397222049466843181207172740423600509754930923874804376600920428745317574323829666324220528740371964657134770596483409863213987216411915826424630346204077402057144258521249453555512084687482216497549476689684787542054643299015520297952854289085966978822255991060246516476070351448397970722424802241633893046764805338160166418776031016251569705829813674109412093341912443624002017732846554511553357873577648083234827792553842161501626765154764634758069563350675362107605652597376022772642026400821141460328945449739100312792559476866705726414713297263874930936645243160526004252816705451437122145278889626994268468213564051286046237913286714438999663884344604110968537746012038752577583691522955463133807821111130394471542706129452649210918535440806816770126137379933404897999958639994194629809603769939219175925685024067813373960829217554077215913473623635589437179021985723292213902320177757369780056407727797501527647583878606579550499041576884975586615532647953963486705118957451993453135421397737515965954380818180550363412530867058857956176708047536357028675726055618565675595497632621982709440208258948853689341257235641801323782415072559425687713740513516894300809461530760084452283251053751114883059334929272084501173606649976036434494918368787672884881390182542547493896839592890941102583135705769980340886977026467563149575251784271018195120996621736979822150806113946405489143198608102610497349617653957455316999524580771343062347101581007439541019987447563199478038941725281816726466164572687438077026239759029204598174368276707068421240033492089826264715000871821994672454493053355882630816140870901115697623837848510004251453491993749880337275933656871565354404231963424268782065014946558926490417984536814058233260086353474936702398072368163696790917826111734638412409440747392763778468158907274733333939770229102048798583328479867678686897848651697185431607765506253203837229034848746985720954775139403443137962919659985166573859051558204576160778068324764270705239177618306734186756626071654720173126276691719710179209695431548819692002405622512763574529053355885728489757360068798170202408132820750086179639475355109846612616035138129349062404199848608028945781492449462695432514897936815091561310384112188134924921385929615186262790731441302107854991040943874216016501987834570490284157654907179279003541658096844214360903011315308728054844478176562359168852585696918958399526374826903512212943718228442310432402585273468884783988754404783009440685346182459283243057651002051759722771423428225410016248093187175245308013405503886287841923578243843010267220992450290078394016960334552405119712726835388943959369907343566316383030635690631132660551380689463938414238657967253726557478739946757372104009967058081334011034816295802365870834360766783665744480440707508536506440176641346524569886151469505175815770855966975731117400981593905629879670676974191034098050019204166777764492961080440997803604020655626475906320549944501325371231370790629048023579615545156544148581822715265351330034388329604525180696806088772183591339163504651554131210374229067413751442104640257502363492530871789167698308041668197108858380271762015992143706411735138642539869829527478858410018610462238957692213266338160497124666293353251684818777676134208342396077693031744283377578037390124245804432597650960471794577285469722777988902165172897082954572432024683959534029980612246459653442298807611162925116194885883820901919947219835844899198046886163054584775838445093942936906882856575749581767154145101934625671307334246086828915639385567383401080600613527308875000461829780709085880844600043496935206596556913563029008798294267906403568996012179894877182894738507286661235128369784300585976842620768677059015499264049371130463379022308749200247260835071515640425631267972500734017568760218857870815185309299493653543915853572709131620105350281598577656835718085187483657768968090684205114234237262328114505168037805904024251667449546625055444020755156682530436905094394058370128720208753175000165859153364681016418275653195104194415045041960318297607476083874585343077352885445929729257889394144864111016477750799876834353762816142402047198657330121681005985962709942662622981053486786773541830804550587101062293121766275370191817972311204556072207376607094258349878253201959787710136296789800509037909295291897819775578540346143556536750993206550525966693571083959222952561097295527564515173376083258579990988536006298526385388423032124924462211703165019127984270271400318735429510673473030470665334104152866388590974155450913390203042084134349408766225603817202260928881361372662895320740476659977949382582928950936548144690033390232054298189006764886526663410288416801194709213943890573853785989207439746697222961027216315508732462320475485564791282834247467393014863669145753035721905048559411008687420784622313008357781363685214585678192770196615031618455543545594323389440983308950050526019428501094962384254303686049567109513182958294035322608669692036109384811692059451558162325528907985692649359948238196606431589225673591335941195166614864685645568883793334554114766768502398194203431406573031343774263846872641234155964480766877761219239580349002697551217829866847138467167295847057901553234401391710440556400012537763549513683551838811410171653605091489648388465976761766988734329897491302285049639791008141563764829339920225808934373021503498556707413396331212478250961847654366595503259493401530820594164612579492247785764686230529171973926582377198991739212723888848115490777670450709484554159033859608826097571397371312242673854734771065849721701766248859711744558077296704362204870631348436827857467730089202381976725351315511411068925657248493969672925544438139389779535501068732483236542913821959260571809655446102611301596322789113138071051315451454779151108252045743907885424743369921722499161534586490240825160846388290688769824625135201632375400260457680024571256342379181957496997143969604353700035228560038546075326844016293903614386592602389513561884082180384336141400309903795145935979115528521087243259547163227045623064924596393132334271671429699929813097599420530190430651892753103041779980930150425474254791426424481277696386017037853828190733327324581120022565744062367735849424350420340700510282957316098051968027440545799108723095287653576672980693144479547034083881783381671228298853915334893231659255137728744059010515083139348715759613978076802276054279647246988347381771906405350188989251052704725101201075879906134414048341496499288375856561355918264378685215598619464555123995446565263274945993115264297976409737337590130357828586784098056304539516131715508494882655484511819654497296252974978648870755064398208873985612697711215913993958899034059248611561165360923458051823539048593133762656676508514114785180274455266736694560334037581883983012647994084847625850168227426978896024677816619427617090287206367089463054400860866815170249077179681232132969782312087539684986287728743114727846621463510424704758733161089848443993742803512098381540648052592976794365606671258073323577556061204798396146721604266243600549069828351144460925591506889246473388427191588983900859990255908985771037873929218063948423430680642541991350706121383695785289407937309687668886771296924209261052717420565212501842904354231526818260660645700368711243379850557940571248152909492597298550242242461826451480860955714924301545549412234098643102469117964921153921334705571368898495172531495723585582405964078166304568488794692151644512830782739567380342732450804871297689229936772406027247574694028741856760405942816577988664365436594927366153352036872956430333362536594315049105297993117262604937507900210632518412067593930749049572183237193184843505158228284238491924370884614450890621236841712904649222548194298601460544725529630766546487672843680926999279505030434683144131900819274240138094967319179674441837023888849706847765116258226556022750021328353139770954768044029888453631343173858450899645090182142772619201891022854647781133420082560259593630232315720741316719375769871072854877714081744270170150166750624284285762984941307410563072524174546349408291388786121270060807036544422021480739080344783366892240993751248516170269884032554651840482414228809900947218510052595468688437789240528461683870172408134140395091501333183174975791095558646309810506613839407875040792772678065587298030791427753328742644227928701188440941288255188018868849632529850121457623095928904281727883985189048178024160656357890676068294668931470289377864817126209122946967616433727373774673854268077441743403851154349634107543809672909919643520942466018453752458759850968444857075539420924188279227902552683286757429176098316612019233119629848355928863695179533059770562917533439739949506568550775877458093841664056165127362110633121198880850421983751315577673132049404744104680766558574269966135949011185312955066445679184975499426939725186692908793058230266389762444837758935283550285898005560429139856480260659822963424180924914823226839080579901223462928795948078145711838234927053912004721113591410459492891998591242833690046286392530272326059590270522597352123067515244027346975527362551360821447851221007636571205169794230334546269977566333798365710581259221787303313988713803496203635497771580719756574079231971264951583968534704006781161366937312311051441770589551387159700315283588987357927553990910151289231938557082038312212592258151009335514928523962354990973716716770588071992105273660299668911078789370984763037784887573151501077784244409135420925172612211402949553948177389676418144190457090427587801207720813183037715986840857601083732859354038453172454895176188884841242752511338884502668766381199277965548264683879657309083321386455434151323134474670416134448521125469554574382749241905041935592206543254134872424179542076351060209699676341601354763247694070839485680009903745980785339897493172795438381194021366140109533559521297878713697557991156804285590453982791975307948020354402751138943020428039636811139585757890386482015394105282690592904894397668646956237739045194318061605503479979958647686795326697887722001490603714596085462519977101441546875223148722834930845272653947050253364598765114359287738003451208418681292611721383075282028627882395389296677204832960700780764329147341690438339530453058659688449949547314384789733387599989915371617891687123701811099408976576899857634522222648273562952003343227767909638003184180548172697794374161491788451444123010138509464456469460520548392018229335136165682675389999855908759181989447138123317303399431142113173463599059023653104334909931043796930130668024997421902390050198803150734834514931884943585833093207794549646762031844372060453505919161443254803991969471059104215178522005293803695287052107421721716959226395829494376171517229706483525996812731550859923103097508648734942447096854799185019723902820301205903052265394001162841570159193541616858951293319312022897859659654627050507383208539556843461840948653035378471545246719177321704089327200139261740008489060087378121497674792243595936322114162501186174950446580225685256697595055587147735328766740137578694819932427201116712120400300143506414265658219314312353896670650675673783981718831074964993152088718443047809594805785703655764331989849957637410980627410824332486902578658003867156971240035207573703259449221647397612125721287879473145639180881316785809371186132169028973796439667905341204611048624419841915001783405535325701731514048180170882743515767467851607053297883284702439241095576689575588797869317248841326676462347190967963217950435173383223230824474463851566077429977305254398947257739724222284188301909023775187460592558587155281860519153064036677723229267956164346270729464884729518458647375844151686038392952927725342986828243500634117305315096884431715496382484000007396432177792656948802899179673602304977530095836544679412352572497668933170327862542927988209787012631824074130096537185893056320281761114818039918788909635739367042053310955378743766281684114721276459694363843875307099389930100179204838524970722181598639044408364224271938627806520383017142303506258839963885552353063493473956292056112107725211334985553008759679200479570923722291507699371231461599656641406999649581781143958089333294399050684543677350219437713287929055968653855172147340124812538785391207788696548079328469341459350076377716187532186209060702644483713918951964177485117540964716795537010966283932488715104678223938643820913114097404853470766926152027959264959453730815673490927767695444586022268024297883134227727738540149476098698910214759806828693508955280614870143179738281616259457487894233936741759677116886894299276052670469578316007698024904082679554356736815207153932013552002067412540379531568079224523224064903020588277159071347989473395733189201457877169199219239286986194634823892511008267751929119436824935156028585777936803231328986584526043605399699933026383331141667687186006491363170838651815606583831612402022492308335421509775871309037875709664402692726610630061983847172866651806899467111099023926703528041455362749406594907761479993548402010613884096667894835186867255314661847518418645412051347478003730622836216392789507259001235897296716832678316912989698097241975724598228075243095529422572798019749017002543210428494380290522753197102255591999658790433860278759641192242286303657171409356716288066045269365727109621990793588340784190215237779230563578116050582232079009218646900237794306376886075937541696345124675096203523322190701929964287033214597562404945830173408560722357804030789410018211406854051235000677153813812291849890990570130123623314936862106958738192222516105417370911672784545789443608609490364438823555879234226623485456671113959534696280384721290379771728281282762173295487529423380073373936837851144514913599398758382903204013656132202413947313918322308992505092809186156414401300374557808924389957714894650237818058401816414416666480594738939403039137810047980992286209202228861494565262330797634872528316384401676714416365907856092015457210240232715995292069946829272266157623173155214527259862643651876390012664414372185757004843287559453991649971616144247096904851141775195195176188503857880919629574269739397371412362259015702052618342696462866726417363856800822642451786529248146274142099506726924389308328622656130206851692264883726752741059852547365699702097767029032760687754436338255855483518108039220282356937432773673392903659416423885579135502790117350562474920074152826615310027424859131508080534070948388865322341323870594548956080954796729329208292186302852367790152792126462739211477343869324101567308705383939376767652177624023683663361229439043664900919661013605866958579789008047219458318334423543663982212481965098527210138625256336697677477468984544806172790327794391096727665060157332105176531806277335523950229342794910255463680953037043563472483158479194435760118209770989521982230042014740996196684593992555045761931096393542399888844914100313399218633494559009161018743509644806282329145459015850197258351418936152848027154319535515537589659589918554505183727191520113390286163884554768938650822858950064017176389386497948480756275111747260118460500717217191810893390594228851006087382969026130330609303016391178325936545443492905846158809503534694779215002734838601072290311078555216422621127102962089619985973684484108539822666744239086026943458653798063413236200795894507372889834566972895312130103351544962616439999881933828539910582636501756561193035480014637383895411336496375207623171970234813624396609867359219412317093406929720169092998993242459486588314949116350980634238614645257046931887561024672294111737657308240406373351705576937165678274665429683288682182060898715174527665462213747393600826184132421401808883160875194583615748722469715859857689332529022452510323562454918879198751894489224733893113691941900990385716720006675914323960310309563837776023234017510189362377783284831408424619290907831333456659112682734063829843247697808468150544477929603398439710367737523212239135385992456828866599616678092719603378586551852145168801248602535709192099547932166190417336997364368757177065195555994515199949984528284419888052558254691840970448112723476034103908016996844228782597599339853643606768409579856063443290890187157898926863945215258180728352254160632120853827908536567424473104569970212995065485019987635958026209917103475172381692533437270458679052416919066151208609155147442813792444774579376276425443173140053973611563120245492190611709632056230513931636903032584851811835066291024729246390608695368763111220630928428160045848712189538205379744418076242455973931419336419196443863134825348041688566774683833164735969887829949512040289853465383901815911698814886037983012998048734781050963934665378503277686534470327641908679709371902855924472074116065321577643670449495617852334678329156333595029520672268902741833448085539549026482940135998388524049455447535353603711410253632955877979964333691016009241045281451150444643341680116466404316273646957245652018316189797491987666297620320113986289050361615363694611709238450546132144941852260490352118166034725938817375292412126854622254894412253936523857419763129689888815447359628405713403372467150122623705816420738712551708914863878668928055151732353631432397643507302726898474315403876491299521442523389439381360500761740689006134317728194573177865129302360381768270900385444097101674770487110075995951859948870493325133324472801176064287510842099462437079078918582054058197695093069690532445876226384321699065519550111532370885911522804803568902918828745815052023357791496844775030139753260991917685781411971360116338392037638526382710549302152747782706260354762057819230909119339409847801960061951371630565038812539092065363329749033148937140617655293045805883593671488744485797064686080772350531058709987858620513353784535877511022046980657849326374847009970689940854405460546360664423598461576502252464775270205827086963710105182274623833508861238159345123193246409193403806794188503868773138461566825555056730106744213784367097025535019955409426787109709867652096856656384946599934933041577214356416708457523522989454226291004144015650592676850586597445695733996495550313946619007370932292612317471931323260975032909205385236401746039624895264645677041958431534940576000593946061813326727213473792634381445147724661965797467595740335484559803814341834994433505585169553564044445094106903938733558145754756571609446918628550798228365967625806085234984077586734706887589701873169107601711246221816295927476583911867146656911783341615207945686604825716571077308892871756318161806924754567362331978909581169632121722095825757870608312025710838174676477774340444861695979944774664206192389887785660522508491712982628404066331806736960371971736917965359066525102949643143329340694860038079453252570459209539859214647546562679694878628953544515611000816028049319061234838622807685917694731613339875690924332885481954358003607031966345555221109723285809906467991699522386114835960232703122837146822776038233510929916744563338502100781906723479407738170489432429568268933995441976719363526854817778092370966142721988465563378131522124952784347736575348320009832712458126080294981450201961453736706784663438210356551015666339151668808202099169085389732723055998413310123373045365096950743492617267712886349009257061289728014991546809997743623587106285529783490597619356439340267245665273213150699979033164337322532563190749288253465256671847706623731993243766497742592518927402179828664652414562123958902100638971824296961190044457892252274950789786169726317795763784280098080145677270367019864201214125310381489980575734821413892228293312182824015967253423905697079896030576017179335110967256393699900310809307646842933617678912961848098828085874306060070614623538703120516864044020215053823353366061272075185090988084011942515937295516734922812401862392616863173769947111668668641140283167856470835852860821695276215819478556923565376200936499157787632857880154565726082864250572117626090270836101215725375856307072269106077682828095974589265143025933254099197432859671201675432619671907494023785022066686137634259596775720028359859620058194144824421165502035316424193515383874462099927503091641033464743507424392697985432866493959032345410362196290577648872998100168383300138069594198251135239469222873613727225576583957173286486343458928848450407001158843689016355358399473862284706359071927899200018911732298244685288995062950467521777211547973410877352799806445698248066447195247025329249154475178028076808941352973181179956625918530563213940715489171839314878678632077679837348342181556304570682567298843144608808935885750886774527031451046732787355574562612275705413426469772382516313701050548431443010491476764699529312127433408978796433259808088275345927749350004682885585907529755014065127550602946529255813927085346751559971378597481283096746773061752113355437206371438683452745174508895151447925508321968017272409611457892663203176912170104529936485999433301247840053679281071857250765390777834022815008866187644370052146230993934685761949880378646539200296547109280659089513850639601075780396087125135573157288570427076668787363749219447969697232898186276948035767051667803359128113277539220999961360704776760430865879475610363309527015486071277737920535902626142176845055864989655620826997629875302036233081325105308034762977056507160290822046700032364770140522335368682004462451682698217526026489063442711725392537477665097249715694518129674569092296248485487237988901142906956636230457254715465259525262074587620809543919006998034722452081146648538562462399484974251876991008347547925908722474535859922115364333328884339426151303277497574653882419715657483855859795877007376122980459588984624597318746235526662692687513394263633954969952675635783510895994326402164176105598042315751424736572329284715101757455206401552915874521244101231010969932367297411101353918512195272821456810877418869392622791240243635106721520983516223810605223078519399085327553848137674402251928872126629214509114570073102400443125487776676627484011103520175174216684060513201461887264413993750758981174148279975632579315300130160438186145157440825072613806104417412554286074347687183632866369155766821861257297804442808514341065677075494573883492925768742134447444922948211693439051268457351378207177554680263092932278185780606227200770880425828173066259681947664003216354431740569098301631773603329166697928871187966656479692613592168261577754730105022544967230150786061994214764122230088740637369064998151779105629122494377423700915964519231717977152184835548069190366164783005907773733745313544245560010059594961933797144314098396671898722936813048469968904170619743016040099564376434137416243307954460238685698356300235543539699934477481948657962916655010175008903865101630027692390800489059299816461429299959762486912661176998274933061945248010392332710932814633501636232232110150334555190039956229962484462606187226698662444581367098080549652954761631676975098418902562364078260404863938732118812472713811379214685623922173487887185166365771831874980718154395571912165571033413365399815479566385071636644968459719712572638780921204260781940119026765850183511405415225899103238531511397868923087788743462997409786565175918272788219657312965922385462877667212547791130787370310991627605035995600759139877574435474354066706026033053855317624920893101190184061638785895761643637655268390666698673639704261596900133297947236942088807933092465975298227841011057301138183665065438881928983473139857638253329779568937840950895199460781014643745517985596001091354404270541313547076383710761975988657384253417088100147572674492639105034103439740870184742220637384910753578426243777309427177478943567498242883705298530851954111615947132854147523353307985542282233664625661715460627459404857578589405766990473746552259398997643740456981651624843026484315503274184510647380373226329141918201821115756241032749879869217704465837194313267710306738102602534404514563503541823853350258762052645184228840745859270523239183467528403642075201983442793024777799791439036859837560600237188992931382622940173874033412302841176268612737854658258326590597342319352811287383668656403570414502036413687215570019866975581269827162345684988944128492385737202432710487480317633755053027283815427445194666750590931957382558234875252055895789412570463121596358738968440421345459250609405648488531496688545612937506951214627406767186121694448146051789349417270397974290121353667788372538505321490984007364754827385283167179003528582085652521077893172936099879509827788778068127939352684323684136465211941511318056359006507403259763191542373969442068925164174157673962797618366669942813960504228717524470622670319810574655590212764772169268292916100581661120020584123704605266375461219137107433250852726883283321213430502430954807058775779588730846177811961078718541596023261138464550597329487898142121475806517727775602560920367928906159978938712244459616746288728707815399407371468327332736195945405705090831527005090065166603292729779968453531459081775160588002779730624885973531613398980336985138456173204454209564764631934788309581745958395639819990475112077056905704198266408607693286682510567359377493052885277184148574166884891814233707184237625555646243864159829320082631444143179121383121513589786421025271202421137277774514214398181880304857637016103185085387428769823375702217926741634176568280049725954618525016716510931129316319536118337968977633886774300169056960156711280661383177341721620403277380238431759928439604989976539752989958692795209334296353258242998855333910909677625754960021418567907030207562816798319847718028660498190888989825141266382146247176100358879667066064925023563970066613429658286037965869954577647125233178473371515420446392087294878357549647138871200069904416134421404578094683538454209397264105131347916745001880823412802579978178789080530195646689834226930884444304469712461553495617412237771997818433109028842401320036275205773898111974376473180739528684572148373456294716831630082001884108277003124455746344601697385851696729233180556856487246202010692578478835476924889729436641391958878936692702634865914395731801382935735443755363041050173045164985813740143446605735445770980271222609261016692556955790259026361317780337993102988019912623093670997201549235652271109012690934512330793171544562955498199636582690795690424672042431469785996927739374345551211970905388888151579432375716291086119926854070750547843380371163123882138100022326775221876857870609992929669294454115302019987059494241389465815662176732675974427482217577927137943439085973709964026487590840784941379393160345140667630896728566691173499399489447661157657591297849963689178965811448541366224828197417441070116102539020105716192520671867359536476623656429415721605933053909640696651822185731669731196498947976674165661611171801674489246314446909780849944506827782585167594199614526559040704202565121419052236370860300134060346717835424473568747189689705360591681751639761371441096853329714797959236355295347422726423094223611674910868046407024277653043276737302959103123122505010562896770821357030382717070936937660369019736553485590411927476831887603871921411202724609975598164995072301082114021725914451653137448144628584171327357944799503126899471928306914176655635078989101461631064291050445209719161134596778998122375573069027951600148934700276114120710771921636156617769792995474926789156289802972829009360241015846107891718086899002507560267716758709224553484105039773771144663367233153495855796812907883165590977821938026191924200345116452165872102501443794822240620879701493105206241198293606502756110299137825653972109760648006135025788691310520090665701308165563049026273583770231680379073112271682460220219666362220894010849495087587429980208241937127463582386113920264169507297952763827770524831893758753961853807423637899271041654259951710332725612211677013249752859068289753875009240191997488744167304881461193174513575292820408056283929524698532274298589033805123137782894706465971383296804102903105366403884262565541398411685711132891405969853114409625582071822993249281003976210023079985314123032917129279149281463171091248547774311513728108853848353586415415291394697867041085814277299945713931367186953127215598007659090767926257302306500168206990498612635268985553095829286707485734759159226009523431079372844516518476382606498883897421475142138428199658028844568279205061764636438937521344308126529180733015065598171348515072779057718415004953911932800589519517163041368534572207347167459162612348775174624468405038442535857169325429942733306645703600074175532439459179610409148768144545041539488868657884938153366576492423289277896485791956709604024427251878161497347829354588414119266694393110311242846369042789776182896772552075870317268953907832918422810752979151940826701910635640397501197931081857498535870035277148624162360197569407697728107739360940737592490917061897117749189997031446960888185143285322059011257339815561991865877935538931828560197619581809175747306215514957299597176096183923989460066246785008373667236474731119520218445192790438045924971404046323826433430656020134438967072073323381962661390603705721201314372452265923590445879053161691299508045210278207740607517519526648431168975557339587509084531908392180163522728107780760073515496812148116344272847776339574217457304608492725665651016187118205312527651035434437691582784798404036995701367900811983518121204241523325245590276831947198667351810972450010913613733210965036462776322703348726402963920215590511573363702093912393569154543444464793045723555221851034769249766426948143381221488519016746117532177661934717522192863799905580531308806009010026910635757450717212025117563577652509357320420933407731830293810921174952001173068853539431918950725777372645016562719530082776568885913096816569735452663712160999449176915606241094854173576768402243348075400132363806788414409913092213877811540397874425114059937111264565767055495014894718400446796923146363049603851859375295625332639920790471403178577987830415814572525999496414876751995845630714031163861824322574074962409118800162993847271020495989201939610768040416416581094286575111617538506183073240202996980660951173981158584654157373010586156669791541615618544218689454492648291548168596402438021475879190987236614464952873516250728335351944476141689373951142596385575199597490211976733970801057786431496334034070035786592889166382390826477619020868388409697993841037718701358339361758916913174292348064553966155354317091626895739223133326298615650006834724699863626342287840471483121865672180466486494552863657179966525409160047903346715167916640106048295040591395559058825492880832216765913337331038338447111427688867482083131835527496655732032877714095911303115996958180492378137930093816012464240615512813844416239167192574960262008549739008978554805410406219378245123058677831597011269966404071748498075511978768885305035701903606266634038010097982889838846587588209844018077913019459239549226153372034729480376490864990931334062321726668130722847676163558274891834008950043975874052028493127449168437513763737573110859385083100135770417795081585499247687086394151985311550789049898125825436084167169200711502058648550951164522830390069934547929516015672791647931762863367443619203176839588644328179059677243730366800566952434956829066762963671996205226374936491273690216388984068922163547186928206407435782633569708636157508759719398263594900462070105447968352334782083147490993650310686591884865130638431230010295960717250212349489065271476017654600088843288271179378100867290003177570114521624172472020198217558088489792778482846736851689612314701435092647077700666783639732977008747554713388066985268799319342417118899282531397519687893276801359899677277465415495054564538792272060109034921766641066341832498584559811888581466861054532484840343573146546877726103292602066403355848100378472015163090598103352969532533174715757250236887372859854031073349165076418586631622659747005489926026018244410383683057762306559252221431264564205921711290165092723427086419842856128590256390679752855716497785127348727171686247873622850507931994926838458827653903573999395593734060712998135653075809125420264090949707464024625865294774915235600040827662375421216281473925763048096788853068149685864754067533413344313160197923825342589397486291288572123370525414971371033138393699941941905503651525492983526797900013707555992130485995613582211361636089840187909582271771882631466038153561904450653525854625589657731442498902544975268245375109512818546656125558255111177136982114826166177350805876575436634983576109531964341424288294018411409043936194008671212955138060336113838360991767502287359857102183389537555019688598302523181415011881424688979682121982492250398107228653053085296065808333392461275557033050022522954879464788420932911194864870691928681056690054628563557868854592755083943884524759739566804814910136750009362338727072864917538820751966312066351455205483055791999419549196902646299188720502545050143115041857675159090773346040278051813858999536236021014588451473269326114345683573772133103770110813566300239469065861221521127801897875273913672252106378044018005762214014673556540886255596407056885993151395905483698564807066523840821361303712655918918713873205631999607442132678543498987444011321205015156689549100674781136550503254995683662855410941150139171529113735432417897161768095823018897526631741543287048744812206969447487035784383431382072839301425898194397535670880777752728818958710705061397817295921049800686722246063156068506975707032559743923711737472992840909960615679389460941281661043249209238462900688739319496204882829807199799381293395571667900701419094693964024793382435070721195570227144738900343740063197410478284275488198993071219854168700948060690655096294167503843520220938738749337736709083734470580948623528065545146197120986512439169728996852226402262929726914019411113786821638408676794342098056947361945793380269282449305315255403981643717476639033489234802125602330114046653849865147621553846488693978314691141946190765771921243637102625430049989079770469266560403825975101681678785860241303168090106116066796337227723040240338408314061971873259261783914097350658205061447035986976254083705430069630169321763153287255005863359215995836198683768053513119398527396616060600985266559623264087604065428503911776383827010012327187791471968303596316905134526169452800705119553144720296207520399785032633793460226824169018482950016447849339033218690236485874484806462311622786610238670612066189509420312827414663480639338960091480602511046771724852808348344192950409709302222630159615613421090597347593368134983227974411212070150448348113824765032457256841673922197232120265707213099039377553144448251454780987725523096905142805837802314465383211472421434146859952279382808141518319918041268120292543712059952581910431158305976969745226606131464457734863224573292505937471661415095912722859605022295732181351329203930144970376618388616500825857173563790253176193874859946747742129588065191587980892150626556776379127874409318979609340179616463195923776598771613408503368544800063319800446438070710422088564975050035308339263848302003834031574885952141036501199925759420211848911409200656437972271795187566924467127333922076732100039506378151818440925719297002296011640957453969747260681864222211381477806326030068722976505408253207782572894966050364118526918472398764136090671371179007557242759505285388012540902126072802752853980582477702686160917450528993925135824059002386013247172097356736197176470251966436329793033368112748472116922686104735079661085245643387233559098797620330732518941318228064549014295443579758499638307116708401028111987685646161433978445412970156345151306668248152285000543920795073390155418701937211057582581673868357756097671510640921755922990754523013379912065453812272816131809417326682088916429492175452256636488024264607294798786191474333538730397061994266401882737623688583079620857390350142439151609046204932987464874664817165137159675775630897082705843492532002356845056507375260915592398180799268093797212557543350379181455518300827746227185478201678251735550790198747461226693528918475315738850710907444298984540960510690647912422281156491818835322509590810286071518557786061693712015580678489790021999922695395281775612447107770768931383402394691530077632497090526618023091791073481789174815095307305506469464014464287065964409504839852479170495245190959282450097047357437238985446536155445740710889474629090923215232680783143184143166078500836351152050626823404810782221908580707825985681833642057770909783420327993996717262075792659048288868643762558374066017915065057959311198848080810575171572350331743486823857865501803975933925795148962952440287793210668234198707863851593030537482639135905823893552525274571922371667140277460748864283615942431421518266713510390773577004333270020074538190766483449176545234571859544844495006036032643975730295979482569529883723782097661163568953836360220385024112591285974078293909122573001229999149643606274191977174306853438641177536786723049629651791564179647549751739613644415466442600243129985340218126843299337981133363909579250575799713742582267630305529439774454049782243452800125986903502550462389843102742780800021081654403387246823144638211931465556803908748083727862666121355978737479395666977819092828779093639624536557579242506955318335406827617763565375971496177459858685174363950953114069794875115638250216307927081681202490091919171707057236237833911797570717990370038386493890909515291527779536756635586481218003255285673091958641692647606558704459529097123349121022170796107357315788016301980070867985777561776780405705576360710386852891169477835249336635554588305153518345757686966841966095832203742276090024728092101189355672036506505471470042963696273697754741122950620665990702132623718841454926910875229900315351816397936863580868343585889294137763480182114230729579139966976916708348769993022093113759357917843060861552503195368261128296137306442811728727965262222885601813826288412421149309655061878186135783557801729226385459923491720619766817097145638928959029814669391367731061781169391371382310877965640374794446866446888438515912526334921303890570654905752479898912766570239485263465294418746780562662644217081111849694910267904709459011659711898960240871465472884056946775049652052508615691988433098689917827883950828940444714035547105128273994795116614601620603735943570316718814594204189634709284411753967192130993493374512085223287286532305577468805725257474485638585134021806658544218958548950671796710973325838448298717565435687658705535477842135647117064764747782156857719239087058650266130453746618334586728204441984163354104649598439794502182149051910891544840403871122310804973522999052114774713324359852982685424178560965450810986006145816965916384966204332008643755579183195969907849804741193797395219721241230761261756942955306267728929198560668648320149570518607861989769496968826208325695671639816425849480299108737783682731200936973569334768205634993449268757630745044844558159570842205066513987528210099799481446194019894559095979785501516036710845583815021472165817126216837952844146067762998996701283716569366112559006791903542571006044027012634408602154323481402810506113826271316608280088156108824463323861402425633405757377900156353136149607290050836279022719919314808221435646351726329545719456843713826746510059851023936999079532083516859487619837952294832355337231250834199032995338223814886280573234925222889063797897824390195532751828530702169154594834184115846080750671962602916974154540559443342446976787132192525607227895146574114811919082329819119789357580428134568691532499219652040841729411738233192524681327017112329843615039592273403281654811118076127911902566088601448328548972896433353989337157791268477947387924433133890347222311421683924492262821749068590676621364422515357928749726692896435288364711132343900961921452863818454999733827539536061192867886717330741681267230605929135965906960354021725392693384017505423763646078617294506795038156565122367448281984763510262540061722102919242183526319377910058272504075156518952818995102366546249181367711719808366382910721815919881370261756277068052109206342682434894666786479381046912839068753433001163639009736397884415834320878603924320737317095663140037932434936262970573137283655089444929649905694030620332962439887832990157701242981486811215449200380877592867570241789010547026014205865064211979714482682735909429876753061114993035788007297656618479309224258233490932034978979353142820716710361052440610715014725930952045770594331933855133911229834703107667402784636105908128023592653211960418468283923491493756275434086824237854360916832501561580397883542089770410583151902122471541400215636776236213688647121976298444470122657072910314122258424723772097820329569922868763823363796863618146131456256981903533588716136275413667749941987904451711339355922690321839734169088696573220106424564164556622785014730734710615475037344457710524185691947995798018189843776546459123904028128815224591074506140816816831210719753369884148494600434485093046665696739185332272716649847122026717472092693757447857056463593462207997223138586424530365862148945513700799158967593793941782138819560871382992098746576215172485436029311238193806680932871772107826046767631164318716461312614412498677618187767752921306639345026599490418807791140486165163653486414177279162238147729697931210271381620538458925747273790690301500739491556750517111187962145099971057857939510050619265293854148924781024388700191143446403149543807973482056440924332472355874203397149283500548540532721992750739802674838652512025337580972007210774902832580948477284418477627531107445584536449115913129675763646600842904613238242527714319807444568698439621982117745659030376235180413101557500845216856527435220151966158510402598741602775666574040928544053503867161956181452006046355250857439258934069069017101376270143677870511832307907687123965288524625481505790487024790694773704141010864331248424470415507979228386733339658179738640666359924545701893594757535416787862377888844615174305752138279821062556007435722535660126221432918495623233231744832730349072787227218464903921315781977782820145761254551023571236379651130709780746791826204984289735772977465416664655233736039068317314949238341805101010176651910825037653567112291309305722251917621912250586980481040323146471540626198051645088470340852205842323605583987414430585750486716255849670624595741419195778393425539067332801770649290146837994908344758036427090901395556161142256949391411936429473054962418683517732002730620172765080031989481691877755886548657803925575098439569193414368986290973934943280306266005978563431386731692843124907604264125679968049378295739025821054795569458009065420079728263771364809536529890758892676910539451251746012077086156617995245145410457975500347607420235982439645673744738883639170645593611351349741476767693720012700162491945309226085954349142105355601444247736422945399875152184153474287184235211542255872794529417141640309143750351158111255672380047779354809972410266240401168107869404419404401102858494760719045297619805434845203089999643429869769109064799964030694338162769276097196461688399885538090290077718438496006414297950804614516716320110885477874243998128804059634915901189415937695662846802726174893276809172029341570279953120245738203046693824824660879647909623481897040811295727206913605336464882001741621181490827043344712602541103611245813035293623654922262882569483227415907282853305061282773079033107560014254324067515045683556616082206171423909585176865457354489715182616824880046512067549046592833467298523185162069076886645073638983778278092881972511964684173838150593626547359491966553348164791296766552531833891051774542550400720983904130056816457509037367366574619584893872857186182834373455074328328700684512286765960999532256577351388190341545727774883923003960195190963599445278655835219518294817341474916126172477188407048304824322369388243449327280115270854923682034129038646622667388267308509652299007789097371166018988879408938373940950079993090419904000160164586118633119916661675937833777464080839855045027969780726495620034830801229330287284448198434183677238425867026063770603119933187711301239727013638257187260244976337177973041048262394033978762884339977513086501002869306205708085524065090296864801311852044973457578242636711486237002886437488157187523471158150329575408502257605301477321281355739250380593990710085874944288312744523317293273581223688214600192141975853730422978022473182783583038736525127084453048398542620963978990617851072859251343509743419224274717337895355535557159560188435678009283442300066528515712230447135535075683116780607459577931966134590131548305502523365049214842170324098321191689160122106414169359309448088428968500779408907935285141124753687415035740560152164326491612765733624002469627152843588044813226645509948072155374022157914472422728840006210204125657561758759675747010879238332599138032635083085263832616709950041626344074699373999132081875478725882076960897375902224305931728034613417182558136227900391603414177714404776668084992065867947421500080360276473644631514036391086984705226213016740675847607236582424330639476835007370740792729640287029892149546847790497844790471224480952123931673010504594287537293769120478570495199654016791010557988208265488286464301321149852215465891059028214988969539330445903022172685649463611366461323417202856993241259713112741074233884516176215611711781328322495097254720659487044728790567191940709928327542942956044995511517551601516386384765571288198604678497920221079180420063742510906297773515134081621758189063299664763219314800747602250765214819610913610625702302982021747578741622683893987801180041158965868034975481759938602085549862466402072795782025461191506596380489617037257536965777724232590363213078717801269741819769542806610667388274687535878485349269044653622021139070508863706257009573973171561633870066964693969974597025501690986745742136305772600670111633009370746398523715357654820268996506556837650462284793344387724110277208661174926038393687846488614739615642972852832270275288562894948736254203788320850496695651888138479847850506076017112232982740134872458647511368353770648879760502441155959807495502556145941862786981247318858304557663364335312339408624585003683957442760158547796368990553927387699851744276344506380908443437277794464565317567299339869634459678255812805226702550433384406868412871991812021053436273520182981785880904705057498372848839841521087010655521712472261065684503525961730109475245976262034496664109080333737811317330714525280157252600742175308013965002945214827171540593658082044920972803440832237924929920207536817760016475533291240964863965423615592195028773848651988499471676925465305234046476550445463568771772718524445687906864520677277201588363507691473265611209059657404071452940120128459485454913419845220162661233069655894122624241979907004311949328565076047041902825518559575225559820088844821766809486797098371280555372420846343121158568516488810410148584721084775595777363205385269674671746291102083104427316199931726838637389763628829174560347087953215696232440542111253556791977289646529454711582163387532661619001282970103851460940116597732676147229054446333295598346119352443149095185627224632184605456500238158876892317253025170192447330879172150012361281050876050315576694284327043170479256492067070363716275483952805002848949562983785938174960198971254720724117816596225728220916797567589409374601214040107615447530078846918325541015125868377666058461818709601540269540808687741145435424058519645582383919136221656733883869619164322574623981676056275503074617737681402455140144403011138818929908285534365119702990592452022280669436696886289776074960250636114230889354511222922336977826455296696145259342622535302123818683546565980566274660840186107967610354121081650263618642259775735456793290388560990571929301111701038288711558280757284914472186556300973117432038851897287364956496892267430564978895760199672324230470957712859561835363968377383900762521586410416128861896950997287189423123340135253026380166647666709138250123294686806415007285671934344515604070500956011740589330208164765113982189367736777514179232674728581146768610069803630831258498019185998955337576024910265024505005122923950180061427688248060569446603989307322800078250818400544180761014494987464324146346920801493940995363114491512121354056582199264111493731066134100155237424885678797394698714658177310077529910915291978315282177949721331218808081384001780874080903000033585605529558480774145167073122633010161157160087890489949812812606603985938716355009627229068739050265044273032645687456988793166174364626472209687428678327126666844566356676585681522239542925862608002317355151986945425809457221699808593070055975011053066387418448728852821721767872327910063888662046107092279032347171154849842252496291656933266317372542969486276696311219122424897546966848655041774055612695854927550879650837099772941117013583071682019582834336345368132597907257172106580096449322554217118778915659010432794684815979503561988067950610456716163864222944253398314141301747323891739583320038727410512460822360146971946003810179657506131117158934715813708308149675031505840930149483334104715105442959210586747630055620726867084361766456922147407605694146235098711633217211919992576369636760893644093068103579274936321861327265420695218904395813756631314308732453394692416078957972377720364419251158746475209871838054552812269200309393294848271064495194670830588639279367378527613619687045064163991842413755583320334004311740481495828502727744080390672841023095381053318765347620404319968371285491213859662632674228482637131759714770997930653732901704098923937741872619023602773567896591949789715444785832582303029428088447076680590603100421745340562626725215702389581716833414013089678161388189468566569330007314785440542375196318469790210228840665621119866205256056381158396736461330885151334935506845679662536244559565067416410264179656305555105074217791038089176626014734250357226406275079176104985261995535566061039729029973591413578275988791377637637215815727703408468888660022590889393412838626585307231612078964299167417708058892325824989601276804648486429489258074104222304794413765498417905864639145425445232940984306387746997360952342364272085064189821686607663318873447343035034645538918080201655914463634598858188249575601058472207497361378887307306116492833838130240159994012628032738611743749007045810610769238736583611150935080567149906532288842609910769135901103386456666311425759798178902233378594478435940894018384324944203708912552619166401857669980891341252091906446480027594867100726791477639137545532494527009224787484978421571923679342299206161652531791875697073804308550223046351590366236175335085593687704303682838945509306464205671212579866402830380198001688257219636635145406858591783781217136054232670136355708724396262521905449766176605112892844803053062602433353976982843868060091782850048107682007969875520920023935610259723181996709028910315227245209944100923160104830365558200498007796557007281053801648358792626293986050409619462560360941433702921918373486183573395774852123386812229634058750401028547471424912325251626116654785832800943349056613792799016194339146685403260280724339418300105110865253771273543989022345329968567334931695550797358682746500760216022996761074455757840365760587678395040221985272076731571995220808462758996167486281515186322372010785820038108866807699248221582443194738269944202009946269712710410563567592372883874949515421069129621406192003933330574468158541080798881623394735943569736993738856239419799394734898410011474777139209902695837219727736185987786015623263333809182346202351953641115285185527730793965544837514160592439040186869687800448816410903201229958117419283019853425277187857767937813475069635492504893710868008495751090949902715652956950057938147412664154419962655885436891532899662006218681794891995295297478274755426125046411335648551593830789073268550601271269260230478088209584381814994371413557311619020925706414189304801497944544701688956429359587804922764190394196059469133396012619393228516939041962198165415653424253334066793528710496985300682856933575741354347519801458933763261980262086932203225857034132045886788513495119070813957094876988676748876405992698256212915780847701375195448923020274452453534677348945729356916899636848148809399322669016464659189682346639721781981441852779311450127817607541536840933392425918082703578731003063965575826752560608296790734968834068747933168209103270432830069015594411737733458430008865837850667806112465892459475594402620611718418086358101508989195968647778671131146907754951876840294953738858260360977648279328163686188060845339247206180492443871527409611078578316375335155543723647376979508180861639916409618074005183326644315020746024901926674271850905991063367664293893201642361062791435831667779483507716110897008161923183801045170961996121205439851958679690260509950010896790529788517699294191679999418035512885362963008206543049956039767065251046999572135772094385140203584484146037871420117489009669939147072603900825122476537562944489455681862457200714881616063919126295861257288839547167663924453601353605848623108201380509213321915312809165397412356875922666050414966211459523266752299919295097704945128586850505417774078275539504778268355239393266646524204246849479979715530546377399039446487712854887720693888681366530683852256075693576867836813549746305591331326911540902222530352798350343013451606667017033642699221951933698026463047702482794679374464044281399694353623079119476825937994380642769784105984935901709456972811057630917092276266678667587489271892646887782479984549662598227547493789913615378657264527244759518116535180797563879759278442686461902856681044663262186462954641593731153894062523239285989677586105242351955546654057067210321648510296691974654069183837680306390883112396808335049869039403273221383182602962808364993325849269361897767095910539954849973513018098504677239776644635671599313992759325233440620549779114891672551243397267882504376182141175038378211541747441788897236825446963803189544323068404503741930035071523967674857383350467367077950054576046286131411451708663690756541400575770645227492774194354347144459377720565986051875623093816315180339986023845726611647928130683743207000896690202145309133904240288783015426148796460709275668403008502890458843247649893151327854653108493189697319621426493573911444269205708391824928988898452500561181273809057540244892531814107720867440890139385959089506092081498020543753347233192356834875600943662640064696050750709424395215741690372519494171838191368227748651544176554246791328946110231087554066956932377978056745466946667307312292485661725165433051195708802526944293729135358108842600720940931229580611375627502261733927473528251106280605327010465095019343360097442497691641965564170831702523302336684359664244278949676076528223655793404706352909255339041267152376915637162513370838536355584331494293015185424548433802609835016887899815981728323892734121805228445794264464415577049112889458154585759206392651037783268766029606978448436681371128087011604967214816362847555150733388577481597057275758091197110046048710851043135259726663693082576876878980733905517584611211248700433227329065878405236642489159125279207374967660552026220338597635968719793518880115387478512550768675060661139764333330844424225327666598260972793352030345897123144194579309574992469865569740075801314309535084993849795806306568184222771439371446957141402195655065096333841303209095083810709729735667786735643583344911342349891322549998666023472089280077183373506300926223158703137061991341826782987875537336499903951584646493006980420311133851267520924482941687208946635288166519773563783226339017706485598995757762188272341287940636716574841960533225692485451356588890551589093678250883085921973989030411741683082906396136881690035280298702537523784381737129764801183019987230843218710987858024643207703636815864167229114127706106301774307370044685659936954331530971437166296413025008910910971114066675538207610728797110118781625862424698536346533945313400542072056992369640338693906210328829817838283549654591011963353862220237848571299486835143051622922175125878434361926715046201218454110509531549228486241883043529695583829606465271008061492544111015364020781789477736869032333836631401258376563020841224703565389364098545064969112227288057661629869939812546213844837747573406508400031266544195009407534559458752693445607025542599013377639865985404330460020851843939246454117940985212966020549882650673946325450144688615633631358440728382785103310830513519664785899871849820776811732867905443356442113075688848966517864519403460291059262757012795920773669021503988597053377292958208904939246311614547859433171846538054577188511609767496512914585196492933083653769021056926222921940345436847132861051716434230119041324313410781717259766361816389305847124866296860869439852160122070551974970226142602696432036384184400744352079361341121225380474110529905660506823200904950391941319238236020616808737735773058094691635635571261227726638145136945407819344386241222029335142557905050611871857457229915151144980224385573767425901686209459823827086518816216561598627639499778958154730140973233546029665311805240627286577685996937071863157169846372131690031385305160791470282278606988068030116310651521871313002478756954450331597718090216164840437904775042801222857327046611215114908573747482591976024562517138018972104492293837112858976008050968193813252111436449973746127713751213714701042238206906986837051187891946982113838304802649720637091383695070179581901635041798861551057147926533646966131953130647594318265812461975593519708862415299903991288093284767930576498965496595462350080499065495559986137792007007053210494943388782786287570872501407696340869041211818130683022921424243759412218366637128210450585781194710915113923698792347869156792098623692266071479060531659477787272190276657567856607595314488559061929452767907249888086194673223785633376770547447300009533688195957012050463210775602587563054104990630657585840315428576388087989198876649502369742352258289356655628861216015135365640471088966319858654026821172585465970051732910987161334778937049695095144075448333532670883740692834811166129033972238263406414835204861827531117991702883241907055959713629879369401088737104479309794833223887576040576146241503572962472704171749534956736191634316180911863138853726639551353592132176641968513015079496348957403779431192403911819154790090195163772529990764639664781375654087009905345598019466507884764964349410221052871659908284730477145549662762182918379019266358008795997681005357815551470408566839238896738332161263850163229571359169758814454130688272877175222425730236335676017676943358675645038567814316167859962083189261018602527907618804882245324783030635934760604324639312456878145150380216678280182740444877854562887787208145834280608523703869041635618519790346729477063625794517831113926439722265177465019452302974565885447828487416538332826788959915396528039176808905854833407973264285753650800985484240016808813863987302214244065420231625829191195951218694509439602072595758817737838262452992689313378266439676397502148813494218730199749620833190405199991532256711926119135803044678749765877986539595231483433246344426700235572887398885595547095867602003818168311341880829474906809387891325835103777905793681129012177373606973277492801984124909725644527332076752644260318117465391974099248679261265053322457254092245278778036730291126487409700466299949988406589057916274079507075096498991080527413132511813776519790050648152828744117656024325059392069061249604273802009732171463804120495756157321827642523994202440979636706371375200366304406809743238310652802884114067628129788187583896627920266140116826508212138637632898202548998694443365341871355663886957985809543755319402832238397560846275449372762153060943212179439953284588016765097204867815124247980987558712600565111640232502446883288278820999770409308471220946240810977829764688897531531093742158911675553316639284924094341297685448989884367141029363782538830257031842412958030295253212229135516042298633521700892981526028618601920946986231121136468189376314927378825959468115773832107088102486217789991022341420219269539088335493072361181698564461135229154655848963313701368601763665890346770328004591501208583397810081398240942285592707374549786698682875259160499343570591602695623973965110480910575683775809043881254998873686974766058181777227076094980121406356987826261779391581645388529716659928144862187355231017789249401635596621765574360554143126189987618436761252596571991089692957623998723563063730300604534775026594965876722858221073996429153457016869711577199691184898080485185186893454106765122779055111641327996227322157307759919081424161517777218487927085353630588261669345688326048099897030055332814177929998249366114043546897564980128644104142057852372335519397821686062030150896903493312434332821580158204321260167483236423811950751941111837432613929475577828901988324926033875376511781861016059025646789350874493882351951867597435314047046763130713001662195628812022766730639255733355254679338064040855532518717653133012065110948675235274420472175548302375520439755768814724911946645691462926890630222613031928128869725314554130668167859267877789161813790630250937992386735784734340577113122048419907162346399898834749233656492145883526272931381143227203849905564577408285480554582211920812450105579350549164770807799677326036780623050068986861638903252955262315226339076788466919823872004412309560869361785682363532754060754114713743852894126598264411186601181955631921167753133768448129479340570515883421498117528897196666600332180636476559526396147232694814081282709726644052676524165336226622128738665973977140579618740504284799703863196254938427699678991122985430084396648130537031640045022441151054776210521663535046509634253061886295250606082089651826983580073391200791257325920562070994504050262680822381061628061497963804282583457181182416425863216486328104587158081285483856065410351727014597051810615857721625239092444210658666015222133193694679685690459979172777853833417014190162076726838579825895216730996581001796321040454600988426550205030348623455657289785755785057144425005469175133750085297064938722248385726904003609582165450660120236291284177253459571135011106312781989197337845743029922084587332017219157067435158612204115514923545849977832186871834262225269906598545208128047292019677117700644886209127704163013119692965942173484409905391479674882776053154764862968328632002630976254092543582420565226633002678717161257757696372841530044144308185138034856084626897325470484623155202346800960246786998939573265089642833745188555037225040453665119108361207896022839841152564919593952157638588251008541193502096900656862504627123750027614065900793450813611495411002292644666698027576598254242889107200588827054984146508183234432421905426387501479868338600587870560175585322238970357763915852123271415728589848186943724964444330859577363600650119856363495932272073635162812200132570147984483393241055391920362412238837526230656121180828242240355846970185921859079725611664349505919802671401793598154188662666688527795645897346660285771822967077112203665842415701611245061947004374839649666163854198404053832684710014255571415839419704151232700266474944545019445387608307107676469579401444753943184311610833118613780261827390105575519787201205331301597714450453647818153460688001691357720194509378510536835174375555392672951037722237397178459800368742773049094596569684784367069802785086945942640548242067780644822088171979265296535791142203900713695116463951495223778398064100228599993843001132601957068681701383173393827515456565135665192852604022901213409366926507755873216964279614278954451093330871550396281497824253365578719000298044080217592360033220547913102613629315067241745450693525871351722257406207904792583586122822917161047908570542605612963625239912200685158635603082189960148693930442444650739842745712533007391178954119428037896661586419484568147686170484292724288371484774892215697467080339203653217947075475440882992818431098747971287593302918558398834763652270451990880433566771057747177716754667538646198937363344482466750149011955216777490085874732372350565633793582984693281448334897592332682573516926830768711234463740433167375467897362312888828810928234458064311032546696681843532690319409758643768138192042149994512062651679489949982798287674377211569809709070256031703933288776959699412732174356227334770305122979017402886688256330890116308555241063514187600089865523412418921954152519474061740638589778900344938490406014319597432261493143633371543571033239276852592328931825379387928437826325190683578455175108068140846023702901637651502668906074643943523698835381496411334949921992498190158807228232247030810163936781706050569725336224887760692165323038905586202420500780158971785669324107790204376822819220914514094302005042323744178489481249718956871125683125389071563251526923873349163027861933640135921299729387998107542937697215668418941195644679835235590108150988821528518210670381817914052242739311886007683880094852885971417003620001342268310568098633735698513962434192896262927488357268962538422690232384325838968055208166877566624129107126219210410641680628362491480301272055741723926676508625941505659608967585545091825743733299968247389805866690382561212832581292962544879154373266775195546312501475323222372810049718987266562815142490596284566506739230983112790405714965326754410335989769100771342344179928297835609252888364076854400449952776058302579346054205911193870452509328373657389044949637241533151104157602437154117512044899594775395789147463638262156230882692565841574527445164169599104505456186681287658911880572264591686749781296512322129527367359246943743505500667888176919311483494865175022644214458045241957904719636975272670028483113436092743530131889114324053160802835962220763003760813798198048406439904382247491091274102579255895597325947871238591140537096211046232836648026973638902440893203703047134392028400387291452926034053325556663166905002999578699650898621154557872023265034655325525316277734725859939865270001552163123133948965645667937737406214714128398937180420264132617955031386389977909392512567943320611914648409856585596533655573218628061650044816695745943672613767986274863530440922823715459791982866731489584939826244870347488147522935253140661855889057642411756791241176585133217311898525965491535063891046777688654017948883627119447698073612737708030237008816642912846127782422576611769673286442868567381003501328242627257015841461514098208850467692316079406614893767430514017669218243920931260660075233944348700539752840066019031804714254321706088705677792905269281234255861848826259601938552793626298815237460198496075324414699152188787783514285310263609244936978966769089263555976432734506105935784909578326998365996607966275924153681242079018428995452548695994901861934790638397635888666098363635171800603949142427026336327065179676049171546339397675356152397380040435912668084395143201345481454865610431027083907535015438806972908610907894918192685990179879490490162929320577946030251729924545576408571115731826964057922808119509410813219716709283089337122117262097365251978239249681878026648736308779984237065364830702978250028712153778507324023534344103431376712227683148809279293719431232537109328352271242399260419582912755287502585155408299730588272498725660221515941761235476712553811230571279531069657542439264308538728683935695708249644073364723687008202888108048859684201914991934104405951840367335358847027469556792953457127454988631465657781412425147763988301012833079774210930812810301572930028280240275038816269932321677306290656116538897856276717888972523342446111527716065799533104539718104710442869883668718402439818667722172173550845934281134257459593139659944748714839719347928684361806002602329077193033710609324477145593503401010202609362518033854507118748356483895219236966575987684298871396255648262913024676967326937899355491003751067782602347606183239303503379474831371715878198106944000459957292596751974472035160887301679474655253486458955000757998465586634660162530811311632731135234295690067181256315532448756126165364784635596337248210625526507214382749593781392176739445300615412044450516905893065995727670936653181072595316811243094165077327374539407581135257712556660885130394503860344797229782225455376445898609281719452919687656748263899803497895549683307712166521809590019404730609784710063854006768795253258377480539103798034603295001887846403848235050586531202625619862851427364221416310453344075509564781348567875811164831295729275491283891130906026172629670729747665341451392473678154643649848941237157534324225412465315219423596868391632143326993069933149927101815351930247671423475424815943201759208433641865820599232813798081341322670060561469444872697649572116250347116059011301419290896732090020880330536797769423559251020251545065627947996831582741421917179131424765610088478308511111693720434419976588936543021182386126481039603960616812669577356098421975151834111070377888932284303807927302525424086868667783632160566177770100916489563874880221920882082738075397450824727175434134107721524469101608991730254448578870863681520030811260192490826389281296547406604367624758992670634685682408357225611996235911107592896538015545475018204732768345437671282200260061571875857404777025349052626163036913445747593132678675025843988210873143850029018208382494725253619291209936579386037972494862724048820885825961235377032585298531588438603722603376680810514218986667222520902880646835487076733926456418724449258085616540597797750489736996116108082816135616274268279964386884362717221329481491603754711569607490595153977453559996157432578973200836420322983068224684098208516069953155162999900058350546081034580507489510635807778471866271185834588839167433124473812484311197647739428073465318277653230765464822273182413987525622781591136416737089403133742508017705065715993997060923512480994821244209808332276314964602380742224663205014746197305602099716468610268133129013484345561994466841720309207900623386239410681792643509921403892970378131889748190505324724791078405232523639739037440561755757172176883680113309720125007287083871840857604345662442403555095080576831291529820709390038111458019997745015351886769124860862572126543752236756421326102796207666304274741200284161548786604351866983854085584699849951005392449694093948498297678643474331635130215811648501011161342767306098835836375732277570356906657874442558450018061842437054550648802605150251998552506043571692640674793594467224728832359926711719537773159456943302617306221502450882544713790265575243953105798073992330447121524395945554947123376332785638043796124335477062772077046339410269558241024824955711046197132835791767796119981280096784240431595239740123669664588181272274051285121498029712547265614806284759378644174274047569634515083545799500350348046832485976255725328680170436974170231192464106326956515226885229260024897846120380659611214395141650922993345454127770735556737373317701154501869737447939092264662428870515296485162395643927922086924454873814270395624005226455798694125004585924192668960013160616217852737309717619525532107236960007812456011382358085017506048586176134757249261695358348899755139785191871119082359225569614395975669451956038351018020360633410481362668641086043028299378428160395832360662183059414618228326520393666759796529456815296984988135242313114572029751272229688862202984417220736407042350241071767936209545978847237631276763378266431600152566514204478322327758820777213227539133157257560587923085625854702586071968520676276173763274423304687194063613639047040723725479958813468791315750586114795515322892990018635136196864125163042035804864160960042008399754541838774708290447527230738276490242597821435830983860079911164861958469660916508434634898367443330047296353426643522771387271758413622981247566130662454916116637836740578543267056204379910522582543646871719124670321013938199939136475823543097681537125455296811240261075298070443546694478334269573473861771228813927831694480185592715786547360879866108614810832481486002120746142835804282565138091725796082302755270871850464032290249718001410714964143010021507971677510758072770895914995631315830238575206889142847869594659295897898358196008852608271121863486197075563544890648038756328305133043546561517770971397117308036501531184877330522362316752838805133510406370148344200623866966728918758646198224085126315356705877977373573406040293540969565759961957190674556499678649873041012114067419019113122327018879059535034546680766883783883179725550394081957085782255288204332849598119082465059328611051937290184152805225491479386159762027133912954133875414961284594759857993831323830378645661410031490761123862525336997738869001861762944299796006236710830833512898174392941308941242620290242102313127569375897172546680403595019988282351929325585966485611133177340860467071574110467246863479657731763010489283144167215218356175252080519773829013599076390212095989911204887920264425527606856837904178416665943568820926070428369816383661546578671716327388809676603725221686302161941786106052553085073556435962678861132568494230915725029231634004158287899337979494314780418691080262628901480619215926934600250000690597085698314517414440145438052826244124072454331840873990343174722602224585321735357974760465058241910503245421436489487763110193289949179297498557485699098533418288456538315420809687679638280290201150601891737867300851303037058273730787502867640303739843112908763140824648587211944439545334592095395365305607052770004865559429895114332014082431254073632556991803969451029326248061615419816260747727472556487766769962088496638601521519991898054840693934878086742542525449157697549961693114536299654767377884029789111257124092660518181251419743412165965454245133229590315026925631280488540333975792443336337659178758796048232628577834790855715151126198227583192341535464304166823607921618251947362941702673400873474160334581276660906299006723382989551857435435269522646273797269349882062250074735745190531948793345389158902614357659684472448229928979165050020353772196294003528310979407273191596132598048919605215622194388398125644649133633197598475757741067863934786501581236810598799968452000526695956193564749324977269405919704240694143124456715172432486175647400778085919459554637850858507738068881574345950773984899246238172999492936003249912206864880978516401205274574623838869773156057683264122517346825142024995416107619234934185329583075914578219936944719462084361481936391299786580823211732562189388712055354598194707271731599195130799968174395815025583376543829823883110511266039740364633863237830769961043304723998232330265624287113074299971407511990404609389749149296012674170905968979006728899822996742438796969242805166162814091974065606413874364958633264535242921171422444487427849491438470297775748875805538545741552687233483383111870672850299533250975052969029906842007633454567680300140327785707145526480301799631056281511150603871054478414371795953834210122858826687172757850959671584517871913117288472970345737738614950154019113164510970174594314602683828574988182845763508168034463953317174549633606862355939506393681251240799869965060553934081661215176605970349408528567733230345027786127302343723520551908898336624782158075716409718702205352975241882516268372998428853394037613933395786671461686972756850093406988313660549778876657640568381773682322962492239313312150225807382703911087779222168306500961246288424870573933765777627923312895782437119570439192805864322444039678317406002373672743449284409901315390233670665192282048022586821269121287149051608460987481176329682732059375299940155933911119507067774069027317861388139993306110377029653930648264604309633787189444950022783884364519477179706486154530168892322477494305188759164873963786463254842692463881390185574568526167199181247602535480669466078998239872117480641843030175916638098189270522961318097542660154180536367279248822877329648059351500483986413017553432064402180500282331836152501014161253894668324467926880800707111175020209395347738110026600253594282422795203022745252918624910677614747454340349634485662976591988808088948250609371025192711020354081132780495662696451467738148180213741176008378914410432983079424617721804703432870883482572246981711493411577690955621760699881539757832902133818941623451043025788107334772571682456122321145423853816468085441888539257759720272772130133117159106734348917847020330192036643527726480501732681939771018447470737676506181415944674315318741380390252456658010349659452833644870688643645441843194472549234771404961508862487361348853136967431695390987251487461072922296404722853156323222693888191640816586906578430596757697041772106886461628882881400400776863559679960568487803720595017949308257417757374039312886158545452944360668070649317173849520466844817565908007477773267392082726110323135852987190953729894609021918703777458714754575678074363202854434079227620570074548636846008940699897783477369959660086378211344604082757094661710211878976848204438014875272287525445709069245746691839249483373263282618491052103623315015142179213784450078614945331875606446604209215713295335385018292988715407066457170096986575399843790920538957338508672108806750300678219734355113135280728108005680481956970553265528641528843105690974299665146631433153686738400677039834108963046387708971912152064925416256965985113826519492394712540081758431119839150019958560812831489343418923875018397142538216978930423830896006187494297766431036985962492302527647528503273509037757671643380929049899654562537781454561485356122601132503112836037528962741099403572452314259034601535974328003092930744793076216819867196720524567738484382680262686927897758051378185243377566495079152937228035831979159284725244768130330016632467543054640157097123969022147468438030552791494745584784863249196769542493339537227374608969862757787841275456793466696578272230285874342384904037641474028558534903010660125659564250038883643180905619826394268220072595091829489885282804332692320640620314175244034059286904097859706724923321989524213652530299366670759609279684050629981917652740907825494260150414813727103462355182185384600810771909523188729600055972923895057951742942878705026032949574361693432987600456845335803252505298861976173538185904493962510052858185377584876438236666541593102324422672911375248804007479435488335084376147096377484420614704182417018917966553072158003364576443709565994601896310120248372040368582750100315122116164934948140113316336674380895565416284042829098354680247290954657817461533102432994842035296632016230906107819866329117145091388570439558768405724894638739628203854288083154548222357655051218383738678739053566305350762880905433773910281436898409152789430522987474263807062164658405540562281973417767838497795341356925203147566153045630644259230118036867637812788145893097266005250260022234202384452644873750193358395664864130665313841570942200350515118845996350829472416357375834096899420261304187648652469749733862159456901900515093664036010673722730093142815000413157296821760491295681879093728064957381141101704186462342255251733310462355498265502866944958640279602248665164541289237145088972529194043795871952958146821728778415010083588952307088719005583347462357013396265791280216475703758358053035208813247814032382643360628636502222330677521932829652982335264725794199371953319202015803163713272415598731687737447203912164757325683476928090813543619317924493215193297146561585062323421934230258030854898239385249456509004518968453820904421757266023789888548153092068972380975490543543837035973743783331060586473884672087712445006394794102736030854897313524296741888072947091502297538694929636723130173932930056328984988321300204985689726016097709421830020341871953284609936772035317249245177667319704736860325874125154823301890981856723704735023719207605048004795362180922660936330741894639459708942389586333095372031418711295963131335338743086366539005921791139107280519052143307140276429939211739149644044959349867397320278121053848246350957273855199511499912225549867156006506323074393391770317307202336739792526358387791245223500770467227833684605179085651233382411779415018416010016721197621684902466649110683580505409725028339292519387929990989178722330524439527449594658633755983609498578534118595981246855555362451919540454777923692097532192412699992047436940176105483686274298048792556054907770036934481101096320482724246805888592102162344137600274571172593096146052415971009576790009750269453910885294456315544072318200426978046130298155658521813110278147477935146684923707196016540019254476898091092846448857546747814661255415658434018321636722874939433839524240377232054003998898125503205853321488298121754621109146211079028561701453268437100606840647958214880501930266524212186004177673700766809858410701291093711798116926952676826982861787011656903841827270302252500577063728258947244130111678815093843114098179758322945508313781758787829357147436085707468083491700677304843155490944687690679731079055408221448171396536063995159110579170863309422239468494777204882642738259197835243924210574058243162850248158535547254783601916491335006881831145187266673974880687479341366477630967462853301207445367810820977336146782298765511848541220477218011804428541461225334638715603413534416678924725517144054735563853858447786809058127827251979436521630370493251861922388802486407730389811109294841237091992539396651222833572417638811780535749646658576189312848990085781014958028989646996436633559205114362954393982588181595583694578837382744813806367743920436900297744968332575580422770578099649953225019288582600756095924874888618315642783694658403008637858911774814968615237606052514412734502012891069358742101134671712602550571242024181645606604609714784990314700396409498562972922762389006774167049236107597599050977076109967788655735475553493784125583347218434568845780015235881538556352420819063025865135614003038748108399306715613259437801025491178403754009681148301885266780462809919698050339907919757037128278199866507799401255481754496902732932162713480543649528508995834233214567325369734349776961688612015422184833871150422307481158385275793952030059990499059400039097948211435233464957377270266390649011217514268091140800355760184492500397042812488119661696105462649935382561287012335033946692839257980526814556143109291635840385875465132112058863782114635449137427961203811556781574671013016099991339177446750778840989281720854948685529668619464385563279958525601742288303166659843737908394380400026592602789053066488820989944104064453752027298630571118121670652454339262721736035833473953864496320700753067285471468319935200385920768588485256888899397128137745226759329052993585063663217250193768288825009426068420080328430725669330532458468814377284583899779245376507301011061515538140835218938875269159209078735409053314564307016843764467899167113423621332641574314479453558807957856539497025026467411592513313116467927083896139474741982544664234015678545972598742362545613166005972305559677764812742006148917939900948187046632230333603776234581545112955166790180139424770453556984160167452887480869503418792757528917611378045536783362187400083682373402225549167019304353218768675926802032077711941022028585546423374739591934776265394365119135264245917783362683822219173913842861295379955937462428195510835376834394732580216156281274942288690726983632336269862764625512530337255153187662215074701884370760137175840626991948532973856371234007758739534978465730166202921763262701938055362297699741073886192353794114350717863393945622769223168291852839184059885058193491388618660335047900106903272980306014538196699011519929810151006059310488331798519283349316000862695387202344090215573722781000057993669276086038061101783831622334743093996915994200206221375583472988792864090052624484055474985471020647647697819280524596892954696209510990171857110467789264629763652795749402733399254916876582155444603281855712300287674538717055063164229303845320423277509706427308278863053589657659452684920308167562918344268846124833541138640347423464542359035502235826761674623071760756950163424984911164922694802334943316835879641828874574356440046168451438919335982659001666994481643830718642979503345109698150207522815668701960127674224925501928686813079189705934238538541567496099685718187591363751838416851106992686656557101774363124857733584419260512755237938325550600561716410562934121319029746637792588930919761120597834042563112186275930984297926673656900748320919242873085913909883224878229261618980103526217059100945665624718555955475061859996740568712357978537205676463520845138694998353529483940134780195721428320777718197289449603103667433197668176923962225864280063567353699230030551934940097095026781722262126569512340568376804171324919439429000576442445397960370022936825851200544860897171546194953942772208560056695006283478839173897713757616080056910083969916113380847210885204162717681371897444367523039886472018312424626689108457202987026141645980657850966488815362230786195081107080320300229991902071651431593953880637537393926691038098283512503447884954260533316190201167196027417106710614415418018064271034780447575085129537123572821173831149022663100121856858244969500846461792952642265933597444742616354801636147438152932044328039444710066547001471276594360159336273600477804557271579400563959872976912163840266260298716821596296158389918712982160088798849053021501736903749747990000288987868325169117763741805028397069861963576644168696820736652166477489851263289777494100658435451868554360108697036607510635428515472423494680780115096404809239144839101830899398785678182830111687988215965727563238419602694548526598961685456719643496765026428288137480311666405491246095095122686172153976241143866478606887331219557934395947178106756722833276654374258665677714333801634411311727553902628503548940317304729514349070970809069203618757761389615082472926363873287080264751025168365137834058545864439070333893142208911645588053637363478529193397300696581585929796012182557656503320707577294973111685749081116316733980630605558823548050551125933968733381857221665806004057388195754682855630670082782263106439646571149454157655826124373631853452176119932471348817741069289740515762939559921109180413047037152891105744209785251392347399803597067494174630093706744294899575449126466057722887292920702270477120681526359689802287675494634464255019515937988572009080202447072965966864936443329757543609663274232528504533680812761316831591576716162185747997105061048619920751088234261275870854195356791319517132717857517460631460753664636111970616411698363354991194391504121278588182559398476188776078665304569197684261459773407197188303529210225343038705281890759109798313468614395953992098013623509832277192443440741770511968271615252454331347210436046352889722038410855292183953197307845465105296935135012137935024914021574492959354138483745615149834434320874919577313088095159187356940486540166952413667304395374832400925417933423742869535497686573181513862024042067805535021659576180054449707669316272004820878189352751128433459192666613364746161624771908173114972327820546183951733998416649597287150011836187843193825820446324942276072863753278968090647549873822948900749217940897666294279125984964456691095966947100397105894077082991371391892792150030045505477083795759468613631228212687172165123557917411383528689782977772377247307931989422757395518543401322930450806965758328275456659663766646531207020190675868540918813773918919969332910949937751950117126659906062342648341683379302214662456492444645818929000266782199421741035706799862177551014020687708133134707717470321918476538497282388470525390734223090036966425233810441449724746395958455489484517570397372292355077175581313175965427520266126369143602507224206510433656516529911784229646064500833801549368119100137001372677525377453310666958889482359122455004786888117169443157447313388575124814350328164302597304311460295741304138274095891485663169821880655920966979096640493616322267737633885543484809185570148897728420871536618952802294085220372490438609814486384517528294366272093525695161309398589023602678575374219622663188895735959009010966833519846569056172912480816256969315070315574029864794174406672670813702403731591814067773640437019030988234604448721697378935415019391249648102989960967526196382055730900061092506004018052624149311258045321113312839118770148763107854984461128859416153986040688999973463920150902478575671086359720479596338243057511721650880718365902302903460701410561520477188794082852528090393510839515417540940478391267756225235826470961385773063556879786390699457531830115190388819458678351014096721225674662672932166948691256708173417094132920942863046620591902185438953345797521042995041714889982628457224513393042181360535243795177296594662746114671924517352458138749481293959896313573436778856905932489783392555366535696330821641913476799582583926955167346979328441434271544177223606086937679248615846848522519243991119594885029202272639498352412306971406605506924911410193834809397180601439680934259389144148830759871203134092586276245645773746983933274207881144710664196309183675108732139978140007273141380027966911637995612896261600683047586211383573036347660336787454555421420866691089261931361670992276857286778398865622472195976006055862557773627570082718039920305809191836774740339158864003476232483649533578695966396122838776859039916028869978390402328758642847303517560973646554473481032577402411078986842241978816754362393547188550672817192350585949950824843493080213098852723953155105813072493799713818547092009984989240617871481433307975807422436150929819018208401763154800218428673693990328171992301753055450363084956961566243662520275815176530372094814547469332919011655888564139324920582132981424563634842668774962731286087429199194971457718965156658395595551762022388909812974543416865855843133475101718287373824741625462746049078338884487920460875864331622566753290496113707181377073322656732551750572994718499826578679264263381926840083299151983394577490408326182164817152755328966593944577098413988737855073043709017358873893439354131365542291944107217692169674000900218610810640744550099848321576595227600257889218192262921836641704213637055721739044756862474746269723125853140858463133653695503388212102978376424398511884514649170794976677303907080359558011564948316532557504418791992698862119710393505452346002171407398805696349459024905962341554511559480442191150390187166557421844504047281112555648603423745050983457803750005495850387180844209906634950542536658059404426964394942470196192747515854440570594889963132274394792795909971568832753377892896294384695433812217194413844561313713409770037609226034476626857812445080312523750276705996060342659474946030546423697699120336574933437552913387416114415737855922343164893478812250275972215357636997633088942586634670948576216368861353125758025214151919191909742899807804568264753555549135571126437240234984700296580055456559695330487313863319778392932397973541830857079456255340421136134907387458049713339526033294833092030416801924970208473233477938414916988416431848820866534677351770571253165728213629390222682581071942335817798430838868032457272377753764120222706965293576352986931950920777267830543604497699680262386905015061931946592166936990056848749179238486928928144180766912005795710639388945315832036312657279727720979000056117915074678305095175541848038899528979504992353216252365213881031957655879079850609823083239763585940391585388537503358585026345183310876056309840777852980409827950452614867652644498587057347832289062486344490724340239579304284180114713599130273363626606308429540927699204544110914158495441052963301075139562268239535919275571480831769380043364988151536420058788921553873470591700089828984576566642773262806144741569368186022022049985712459154712966897029315148049693272953972936070807126632379717699758520094355508846187530192069740606704853495772985731360937054032744564018088840757964203692409253541503210330170797191494548945017247254805414622423973072301221187414377010775284016566386671402590198429153877580348450314608729826458431823421544267338097649657109374145462827710974052750536039257588834425597347111374714203073711657386221487366159747017756395197674377171256974556331131023706976909696102313972299708624517534623251279766980886256770649476724369311141497260804173350350391055049363569896332046347852200308523737852356447487189754877015186217731667141826833387231689736847320790661775368998464457669987029617149869099372982988862257105867930190999875489124147933361909501637382858613212688160258463098656840840035603243982496934231518147842952100024017644766321425633993378240829191636944787707881995493943982156639403267891011708301777835372682181303325270203361493511909261518814632698274631078875092854909253828057599137762521730279757412882637408701445757524706275965188826942673315953039859516594784313772631679318788775996218228578671943286577428594783572827463999539682290276002908182338546925619518272044664064425250408433355640362838803504037269939899256234905372262039696686978255338091110206482478984863814403754884621556525929550804292583084849239837182297086258338629159098031118628023582119121505297718167461519159861407450295912755035277182175208303403369204855232106010769472311187529247583053336331769944303114074832312133357322133917215555286761720140309811990243218214610956141544191954643679844588871421665516278586555164445195186591476368324284358433018923856350993280124655644425722723714632168687800638570693899474220380419673305227547755930264363311084207379291221012702302235481396699513737221009336790436450944156058790651544590295231128406100467848856963755626854529916989596917395633983329825228214880888422124004350075246723281964415231833651858541583432010323787631373833415580754893978480556020303838320169384203281003718104464038903986484953259986417736805543973989152364157727227720358436722570598254722206603310860514365211611409009022203584657597583418115637686514960004724249825708655732689056960323313806894971961492042487574934276547673039085450518001978803911297484100454645215506185390352865633307604791776820039354585744473878518446757886023056740615414602409044115726529457681471184754519662447987888385479149930363120266416837135861105139143861194236420941935018375535319209916356757235816920033911987906753982990548992973465323322482363816822755424443221659059119654002415412023727651922153501101935516910905029750912018842494769168531304378866547629569513611730358527644093450441268327360778233871437660637333831840930271082572743679435872325524766463357665839334944965991416944941663731915470492650084518357336019950780657803109692745335067943350757081878251901198062269903186567517907820172160209891896491280697821304516640436490469605558579908875304781623512326315248575690176090357045356446632867800613401963754689159647551999045531162476482464239393752889215730973599879614761645784181998324182811888494597772653804313802813820664775798606597708144910937889940537978643563632450341333932085524281706348218107758205467077835858352983696002482111535921281809506124154024062653565607724304160765838719098043002617801661725411595266789749337904579150007147676001180217948946205028702415856058732591733599526891839084114797479144937590876593650044681919145670032029076707038002738939479470148036010412091463908018703834282141000177005244098550156843403861296825396206128869092872281697116641684926362287931104135497874556912888059335491325312663912120074561529586799133689000689984804180432483381004312077625153896603973003910436432772170865429998352908403265144439223164540769125653722573465504772455537871330111656859524325222101676838413447591021656888341075491526487354250802714415943313179930132123110287145264414284073881137641786546856702928889742282356127724982152459874608008015514338888167774770394410018201054090197594862982509153591124053993023124376508006904850899379475280266352517325415231393485378768494437988276350532765197014734327571611082038552376475030443441911061059745130822742714712656402573469257380644643961642546162783351815858496836981260954795136675735615127801418203259652585846301491541605843301695477997055909684296939170706371486556000714103875476231053976577788461916187205975810925466017345563742853596005676180490446264622313788553494443209863011453391454395888516752689541724131719034813095053456329379745955606769373730184720443333118816310618758890980244323499140836690868607221594182989121798299339017717566719177923651285579122383571680524309257778265750109306536591856616942717837562472713431932567035502197947642514547064797457539629319958015060521901879385628530602296970312627325466129956404161159922224202478055891966804270040561881422299220018144581615025729785337064414060778203296568813090803457347779965817953681550515664773534548371786273282538853501166066553616161563746899567338114037483208308896529766883075711075762512707720795444508770448020792104383916093217711452591884746199093791711159507072081707035525505049675851921706678171526562242035378317289448021614026780230558120482482548445679207420828162957295607532923707191532938465443129914411649435373312261014640609593171453489258247192838508790876746205682117070711044973006972858590763685504254890240864859459660228784748733944279560003803133674652159085152073691727919493601548403875822850823803466442226233687846280202885725420327643040131748166472725990248895543340257229437421940048123647637102651107487175454935419402075026586391360244879533642133739375943246238452467420746367413392030302320237185946707318771658797558923196982696185414584795932322997584412733937750579500011887772061412204143148005178241036226062325478866812022958191273115098434262358295003746082182577874127322763296878355357548696342263941032746943423953344893381875164507818216208418827156237396077170230547022163497878675288374477361000790905995388553048953843049726988910511321357722157228911046095235181620764679229402354667856584098913187556181196999231442871066484856251610029689507919885655641757354689368034722651558101272899851671019303449908353695173374580721706523919431218744523367624992789393747526030044676870491611839999303552781955642558590893454322942910599465625414148174290535385835862502350009158204963840667385414028289749050742048377946116325705279967646281786314393715596574047304003167186850494031519319522647398383622234999969054581008016484916286769943180272353644985871966555494187125595603691508187083034288580169703103623219971845235675381902325596472665967991708599123688633537083482439635102734392462839079182591541196543537654780395681171794022715997967400628726073502416667854525802788464291845380994921188071015621316390778711417769542212814723235594194244493948299082693586952727799874282728503650218136415207283399639209629125753063818459593070596778991338017608798105313015931154900164680396265610639392852314622426933547752315844325136021216103315305321028012638836153519915759188483209667417015881029776179790340312675069569118338710651478924121305405451278967094321632777258513699561562578904733240974871274958803116892967480852593055464943972189203670303964676959155312952392060458406290754219389920324297959748003343147250943495352346424081785952397470657894988917473950562220981472975857685329945968455358831656795264401433970492684431200042154693569949390178204667103911095827397573035723392406388643113299489434004296514782432236042468682107431708736274284945576325187019787654622267693439556716490660093330652258253045539477189551314904840134877212732129367289788142805251706636594788498922230224834952862200449658421472346090036804314604220019509220434796485074838085285812100591758511026733367420869014734465354943329936694179610684789136531246888288933232414796462736637384590791824961265513958420876776602921448373291303006861386775905337860834180748851062811076455697670148115601565901310238027876712345329483730074704826434282557387904718075341069435221779803981645757112538679091974549178750948412549476492909006205730305671800232301405671655188770358882651659977168033563534162991634004822322485535145314952949671942125046169174586393611300151231120772810997396557652386823390971723876702620605555525134712026798667779652482847208936732948025270761531596821885287981048660552327010262883329916538240215710307947421916447375570375784477795826875105612409932288600714626523197470548155535223854505228082429199075853214898346752273832635713810262819089625611296474379338443663982054728709122081918613622487757997509203663805299658873163059214035543474968872053834097134396758363937909101283158694820312477645509691043352189755471647629302015777359248928533104165306796607051282951670354272660676774872010478518294799003223707823743189272683938740965443518281050737793675551501861691676533192439729017525822457946638926312752313939502188778893846917889053384608405912088570678799343198641293861729034938296163840451020509576430209193555047416324405801569161384454108228146795145638704321448800169679172618676577100317570226117416731315922993989368905878888325408562440800037378035383311984033309657068973365767634790681671150347127975395171008899357510563159753010923471214996558139488805451424577630667979498290217315815671145894737328594385959932745487101049213778112893916201174441880086657369836635072081192016683172007578520908128019806165201163739945478958196807552229359278579417377904266621541495929748244100633074204074456050339540478306812116071733259034462285479966829903937378073957020920112950084816275343034273318104981635879409057728830081359331427160351211988449870219263918749186457624259365573925822143941762680142880927974376362046548181043205696608987045714331197462779122696707965507316732218496616976115777195831811946511979832814174689191056505388685377056079406951333377953907693617912510021924076537887521028438156323835277470718693537614446990675159449324531979149053204504794170894324015821519177353866380942042902461743341687432179472252760187061347156422823704268577877991647085933035822199773795647678483099655029596082266468927832882396838818738886727442153180837669922783882728003298347635514926955111041058804287036866253965191083078985058169295703943290864329455541881123112375926375027393998238000054444883416740105549754431980631256652605207315390031550273370318231009416012198175539861228781889032257030940653958721254787679073306939438736524204764231588530576400065841978789862666700453715343682343638178369433006712284648047622058655672921282423138183819229551406959771483552286255768318130859323849459222940492408923774936964705689529450329803845876945534221585169805462558981946462470927017396352815326079372698175304681510034595893402297735227885495063897154765763729098604271970672607721036457211909580321529377024335952618747930428947784584714483061524044148922596022784340580478059270328653199410645646421659784967083888263894038367161583716181315036241253883105866926265637240223495765699647811215480174170126022072952779565515963325076102751038984497439426213607199530903298080611185702465059370747446423588761631106425577477498056149147171740559715902104307199603422128950696529780838098622077950271504588357741645872220627883148217328715664146315497342836342459260187565976827638028958059536482051328021826067812397461683026449335243556721887265074920895241470470689006501097703762742914558115352085509434617812603857190917065023429361567339512833081280827737631952356891704808152105089641086374623337156217449189095773228244760699832106936050052579417693006056100580531024880038387309384176264592599337876700923227820859262095241729107023801171344314619163831294337880755233485939724856110523279508691243463828701091316362988292366355471658183309120606877283091334716123662186640897328772157732164004346138589978842547051467828753897089807081271609246752590116774520182128833374189572218632730698857099673506945985495697537793903049678401074643383592569864347435610946541572383543345925618868354938361431589353854178612724166132991006713439496567759668648126577191650602278025893693707751686712883492960065797122400611218228457923527684015225803255766062779952276426002633658313690900757023322893878089764879449673335330465159182895332776172012396709870290003776459893261814266275727186034900879491834577476063540671293304867522833126771624374644593779379094464338105831064272034266397592031180437464646773955815619515017626023101356159785033247965359700089762640933800697420831525265454669879326593919753551813330144548672020166636765431398277138690914500163729172962026161731964763376875258627773613577676876231633263559943898457770559861616463314154959577923817737745368028104774932231778087146491823683170280476918531205048553543662443546530326826725567133972141905699710637242404118394525859727697788061682687407749866702167831284700228569957953614033706665285829359098407418999286118181830768921486596945396863478151232054536192537483200208681024532445855815741172386958454144376921201883413430786802700499673306225196335674041790058766334370320309579905076922611111693266020812987649940224399782068448932946403562853715990263377239569327936823318980220479008185710401344323915172562163986343939764987193383613408963316705963928631395256393000503117449925643311042026776053914898053579462073369136802504432045641992997619843649511547380584923496244710796025796485476656611420052105514332415597582401694388880972739058095056408961734307734381592977387751496879966654037347809836606647050302189718660508871592476693523153828393779871232722397168577072047434870131620112540228062814545914359335200021824515796548878832259292570452396735520898730533897651646415236566506494975506881349496413673896235031510998742016749823609066923161040980850311403411966088812810712103093645148487874877028666628082105650324476281119118144369843791400706947116427935103297086085767026873141037799458815723850785892450500306829048945869739463959087792922166501554577599171870201828997881070067581699796724040337751400813844263680453454506026523046413122712908943237567197812347183794153883982803317939510838777714470658542394300741776846852140579315042068724776627970214997093536882772834199114214487072737943358809276923885696306774591796094785823644932703412881077864708736848243514725400483921165077457877828106290791610476467954937833025351701124028977384603958604552564897857945159215873772238034788447420205906398987629924282747766921583393168772148886111586316585183708606465296442223366547111341004659446373639370940172509577642405557542605581146268995997403897030407337690358724573517120653877265001907121076893517360999875941653715286165563007331204970228114152350982920210988991140249454452198298946108257732278761907631313690564736573162572845107734360678956180394515965968379560297149935710753998056118764352520232332410745913014903143283227198538136611188285172615652055183114076687578451030050669538702983323369047062282368568255838943504140112087620230694691470696053635826295169825544179213243229275351926962174504553355100991651425616604898515198353779288129049300157604421215762189178590017401848780257271335651021147798910743452425877128854884436323692765820260928572446802485720118190482107691391191594800910063774183690116095161261748531747060947550258354928732825915111668395342335376632720567504820453018064073065368767280991645309703038757096846920885123723275704840333576392671640229006429045261409274057773782536526955991059261405032980647849900743197173789527016238885215984479477710040942748057653525548867329907139247826764915933138962086555583735723564077825000710061362601227464357352201230193763704883799081601616478175530612944725265966486710752810152071785330249459594708375650118855556702029125774282849766598767316794360183624033173447145342042397138449962310211440608230774936202545777617975905114720289840680950913077870016264863716185389901204608458540644397726189866469158815327500839845637531433312483213749355601030218351247824397224629514715822600380777844787635775684325230069652319914273797412714381772968064771829035437153736475122084497252253638442810375020696051018177753029130000913578225943868303139504419940348200381189389289458856169148009996948318864360153507929455753774144611490265142954528900186547671444455152889479232780193428673693864820243734328318141131039208987728808306435718331613672572074657633562490591229700784259544187601112345780694058704281235729959015728902556869667332950939110739253009199159236222308541050387775675105497406607952729714477360575822534692108259285875211703744600388163407178165075356377535923011186729030383777989282792324476110994957212170866571694022120641119610068071822355585548982102854888033907240039077570924352089418261154375660388239460656913044398996502543327970389418389445806261445637460730640061668618619348763302587962561694538070475314157061169757620316284456206418862087496142852899924406600580116897921679816966625080743720032728467067831384641791064451841591669479814170616093202391421652094601854287360580571833961949009080280617154429103887079223044813236539729722175242972589766486946290801316523373039929149160685947642264713971380523437704532926731941945446488826747988709527542946467224717728766188940220818577260665469890798134755475345074483012928774419579792251565980037766616090975671583095719505572832624237230877630387440686810819927458857355489841275856164681819672044201224400689855222854902041984317429276938232194465975461030532249334436754264096764420999005148630783172429836983415575280607366511897596698821555236339387818744879181842653814780592157892422737726800227582948611010118319381601328259632298770673886271410234761174939341566716524460162922780852163705366390654016356432628400665964816923523970099964013191660913631362374583384318208551125286251338134111198450497255538001212748092310521280226353546875304756281229380009679740222772443212609242039735673293038352465499373431124973137848606860401415312625363503018245438332974030330171068889475830265794493262989606774298200681795317406210913707626374778155345003734500151904889923780011335170965714359452844833487884135462943818204937593705895746584298843389361892743290897282683582436960938656505993495908378461097995888898973523049332128504710139989416016332516130784590574459444730794853652538689463739233458280678845675001631408552296650162667428141015097666966731441934418072691629694324560929445994434319132512049376868279015800619491715093089350808599411119356612963370006876396471347591131671096823493579097637101626370348989667685464863094963037410363002362791590389742899247359473000617031623476512604895255069666486428089581601138821453619179405525617585847570899187707484717683221084651825073109791581659526919022312328627308068026545063296682260366243379822241298789912738780295576230147445229987523379736348108745438213076186172407773279603124312372195071024439979003234199172457097906358074903172725888519682968291765513434479143895468258109165959970153435179843276097964991546219641334472416990693970776775993287953699082041568859601265488179421695359004681539535466406612400785779290613950361469409535955803475037513138528750346242574012184534073996483670193859432739964126106264880573360610297361245890728448086237243226352294724126794570028130729954086254134314040114011628413348926063552246771641833757322383458764209009578249303479228887171025736296410614045893863757613007888751594626696026978026629862472576428855054443020468603255411246820515117895093080905237477601783222212693624111588194104655731936900981346196503937884485429923895604019536363943449839112708871327623280340700482503119313774988841337186706122074668993179681309738796799476244774662160203368621106168772337764640120288282623869523182994515412824107439253585214028430383174974304333916677595168552962942388694776186948927164846959272950759570597006926982990108272106420076781776211214334059548180378679079106638549767052935963873404289240426452303160936637389143977333277537967503202190174178356643271480224164531741465383493151112867351230348348757195842197128338645679256700115283502137845042726587278189802275526688416600414551098923984498876178718835741830486245180754462057220873021853494321066335141193908910846946714755948765680709807130370665332894923018197303997753588381422501058833126970042568098386009596658787596207747026475456555999548539077658905605338369977622670523112083275001546270187390454355169332393543837986311505934013902184905556196123674829132472938304848202152155764267069077557355981029112503828364669568431852959706347577536641921535080258143067671354462948144456563218672216919936340270007416074479492216351010378564725429143833782263252601464707983505287137446778759403622779654460125303738923600462957622310544314396781438613914530057367421649908392772328666643279192883814894079404848215038023363161121288366124699393201272300621715182306206199418253057456985552621920091191003170670437692034769891278173099822240620368660337656558054178748173929974746585720933690240527286259818397399470815330323019814922730388636103285823584148217397714160095328165189903144611535378285971675816641090419344287012344298598119310886989887642542678686750813386774921855363671569338389696576360209763442463393007506237092611889474754355994505656330472692496164162711501423924600737427330743496421350460335446999470248319514530645847893800545823850350015678579927291845761837757401651764665119045220881808521424963643099688554232274299737240808715782599937839576198788742415596104754771148103032093970519101440849159288498176965502221424550572707037415136372816321473181248432652870991837113636486777172697179667831378858046569826749075527627765932068252140425077331165892235689306478283994784417922014489892369971215609360262906089203358346541105914527388233825508467318601444798455840596491710779746656414990038441073073150386642613147350869393999511858164527230437580456046725611827349806028428751327084680742936695254836540183802940873167983720192693393226191715708081644585851616269497257764652487182202324494810881871267774990744822518501248976382653869056679050116803003026913967304421464980115377099860176537101868938210950932649689497674922651504867926888117435719337689613976451712783341230973224881799640855835076995190852120651168775162135598000865450628851250107685406505065290735398015495161484839888339244487621269307574670324226287911298393128015149653168847044559025446876909643419540869294295833013178759967534800353204107451870079338051558463555163731468052871858425262657650743212894260407088943880762070130131309854123449586914020181352145725622842622234190806354257394615689064435525282953506447452320000874841557648048801693022528476219306068671485911820707899707538478351374654378550039161631925067036654411971449132540803429349818060748048732976604516277074345709511746443542183053784745488686049954976978745492777775866804911336945078191759581834265438456563261921237886626969392955941424506729967981788834939173708686793856171648976412404929942804181462003794107179392709879230260156457516057839855204650680713416939371105350901342268209369731493913144620122895950466367482773234867851750782468827591094525419229808084114079566501971636669355232475804998534471895766881098802388745075786841568013546151432971934904406437354194272300880415491227461171676689441235150443901376158194617876550875317176719129776317763955835118667885586290616626872337383491908816944840383437792711560094688608792469401861945077954317744505907943672573944931860685140396877801353730393513073294158058857650892186664492166949448132720831501309595336536339180329496862706442254707047576568741523069548597712776420717574828711512995198701629918774921928969995191605024129157427814600808552354852940077976673256600687215441106768790786475795365088260628054425531451538163065534677106240672479111633524981735830744725109317612498801451329440293195953691210440604119899297278347157096320852513205979789602439563786316394205559633623037139994640329863257411796518537051919030615058655887729437193292137995840568605249113967104177764203259751566420504970545036654614839583739945020841270581142320627158531801794269683674289528377477844859158277068211372721536640473011423647556652933098586439551005488907097729584694773357458786322329843673361591932318781765512116874572500469911094415463863268360842082205344155527427581809927713038664425073827432120114951826619391630088962033585512489477873146686901959399119524834643869009165202999114391432868107797278025762197481563506815550787287843274846782845112431200322675982424773084433382435894728487657267896587413082932121255321490438695148148770339393760511348910719701698847335075665820690930190771249773957432477441462156124539908032586570198347080636054042296200038037801743847794264501425417271172960725446982209537543283533043016806617042048103005051911876935242844924732081904206695267659633773058861649492646223776538701041860588254523655706680319047595545917994145923343695464524142021629045043285146725683038997069942959020887796684892516290183702203969787612046567902943586979242915872658219894829210729893885046701127884985371066873169616684386788583113312030165753101298526691451890882699912313451416156688465349933750460937203128784364283382640133040999236425571513099564807042425646240506252426074840806808960416978818210234208820428342963609415996762684608835621535636822154957278380992789676921521391262858304648513160235904292849302245740487189640255443111199268431457584325993312793930404517455812693597782441528407978900515486966480024225876755223448114670902459063386757489833711120151803506327153917218979368097268168042263791365524244916130377370072161757305679119215893357779661481312863819338734056776016188119497542160521831653729245591980434224306445455814981447596418863920752328371846636352058084916083649062212994543789494701741767301319999937275040012330364098663949046898585821935691371898212547413248813271200852174982900086583016360831402568934717877241679739727927482407280794405966612862803613375203607369279613624182539302325119373855374311025307040253659315497012092959214917502725747659747373757082841633880249847877376319852486465430086929428983051671364418517452497673480564544251192879610674654719575457843769683057756388157661675119178831970464524230747200593874211893157353242398786672101375323562831340364825230415099163407264649268512351380512670346898550613799126121441132297400059296939211891329638820967922491256149071285775126693612251921677560496693623714826527914527343776493934198591521296981563808753804836905237733747594348623357507081776890078875794214335102392713282479161938938680074505394017338039418245932775526529354189754501484193324798084288272242682156758397634465792415363926019877345419360559236785081343260109622353736479769349148032384617091732708521595727577025677463766825327081072975557394408159461761722150563524021785609802344658155316889948167465343517114947259374823533118716969398001128176449791367552460487943467817598514334910048052719163197293805428354388073804145805178013360163976318667753493355096769366521572615835803986072802966410744094079945697124467590965857212747830397618791808449327515212621878199823361887078862374999674224377159005559406878603449598678427655820483292729769778197508925598914515441868886646870483842001318843664273587144832002927288652502926417484163822516030461106899612048467144336535346581896164507454329497207843162376731519277004042597773465074916193778961062498461439119333132438938787011288154323866440064635437365266465643553324673248709349360607304555946400133001049488637296037313442237871815070878896168880476560992703096417522055210112606455223006164167103138400550022994513500731094583207262632544175101571244250335447883102551049631684619217241609919289189315130876033321670762954110703355437092010042036674797016826132102889132839197217202713747463373875972329542085338602098224344478910414903676728301529723701158369353914031954520526958281173299197788113438934252697838234713138341126239950353285604377591092829695791547514238342327589743872160005138428507537491408484599661745010009630011407671004887032085651277750240770930865914011467475171066126809360960976105307770053933282772315848010590702417376722544940635559134300544670682038049107352961150062389069703715735272468861613408396567999218473925550726811017953909165726403695127178822420669197278120905168493896039233823678200806829773542668790692195778851039008219234292422569499049159021559298598672838312387361104841061677609269787781763764425143812228097065028411224583383461182341435716687888265322115406988562700946116518705792396854696761671002599786264522834301335207569262374460927673150768024326383568515658046687884411803862020680627881034175448731489524215551784375259880883330745649921941351295177585446911307882183721247559977408977303274469286521314171822578317401928610884274978488474015019908317440257111590684259279346264903244239869877481040353500465231710966780338241825182958857076851862555818122280812854007670216493453452294657635382244777113430353085628748256646337880732209241834874188018944466081005099168910143244762312174513538889807294252147828708594893364094321530441332153180500164240934401200263647605205113901700227654563430420474996536967549731337597757300338242187732444459145537100333909874756510043492660394487371519344521347919142378751768213856096085878843590456578401531615431455392558832930203634898274730805055867748140930176792952748141787454116377513243526958783179176357623977372791643510224770813093139090494800825491011422889545736063536577301931265985809785485738632871090230277139883361112133178675461201180074701556054924274498645825512502570245965503091709139500154342077766982008202181971150933928091340780423164962593404729862109751328421688466656404731252327203412987146037695391203906464271186710271630698345564403413800360495511336260008794073665492724039247528457125033511704025418739785498442492281085135205238721653386036914073254824585553513988945439292152622413022079412087355761208103263868894116621790676896643968324664871473073531873482548913129242386131418603600854606797320241469249333713595176126044310818250003350501498523961843294778333878122414652513841497329599801800990643990265736256500392184982344406087335722628658392432571772701261255720848259539896422707481996685049794406754192421819309205153736331340027526339660462709981628830981637973031578773735345987949615405349692185047383396795095240849962634562833103471999786206607842913714285048926088940893074596227549236553814867494291206861789133130542426729708053326472467803049546330519010534044382938968376944558645037610354635833476189437057749323932780111883761764751905331565147675171747335265813217948033818559961721604358328559057137458260747544998750780489480444970754816803730814759347719246640485329978016082408646275345394115029924963166363093385421094357393219374579984795394861564098334153418070159989727798119277449156512420759351355092786525753408016684801901990893465054036695788721978077934073418538582830069386525799328650181333530080146737867279874315587016502495694457870493892374336602513004314083229538054509300558986823206593652705260548828218723369221879816221299836768777727825030612836631292380679121269089094152729468862407413476520339349208033416582197867678593537156321749199407362638560093731383682311585458384186433340527484099190810675174042650698266562087307033435236550878517320638839328605837516041527272351387138608886915693410346691660142604632451445401960874329146339713463324291732088834970218710089006137485168290522346513993397112642004974974288908960072727237025458582940080088679166937661609331429536349620038881553209830384238662833688873200515653518105258226967947368671122153656802796512073491599759335893723095469755578792803985695239569480823693000239604197020615740694404679449879070115064555090807916293833976747639991964759161068331925559186079726851004255937412305954805041020677253456656384237880578441741929755518428631153349512971644696527222125454698883688241014056576262056625699636868383733932965344433583374147608645052334639708982910247834772499778186852071839040477730532588932161242214977465369277532756069193084664027909507769388613175534533864090750231736816344766977197334748409513687406985613953043823125538756187250616742591219427086350116204929985588397674798703405510886501326035523070863199256121004143541109473904831753987943351773737288305104844854491019614433325894735927238240549220936519636902857136433796963713217341351907699162522501248047246125574329266914634692921382908450003951110850933118353108362557209613970806429120763542731959274499514034034245319341577742243188079235905188764266983636222745027174692102089302005366488218021671566225875867165779423930237891563939694084147661572788474251957933034523319657916987983252065449544592983452162720927399206102730641541181063413602060383351236582094553825028815859779372462308732844742895973539700514159931481779611085286318164844801864805818691009959358797172657971628672395582500804216109242412688052442909850070621618172339429712910742918215636092190197273087886710683173121599460240000886965752944198319272622392936793475767129482452966734158260308816429005050284095290845657233594295355583851585077979055311952426867981618443364698777213923081436174722266914682403800583357815779395297899649455297170235366981291371551310956657931077449165460177420252523031154618921771662286221075557062595845692779394083514616836106749713786674696195706737297761090972214213962679890326546733966610648176994822865969326056494531862038381816815498518379516412576781507729273385022484344747327719727321619704209117940041527267450397394839276925317070856500483540202568649038918327482915475538714682642558042398752582731444261515325644049053157809836931505812076364785355677544811712810565108129084980150979467310059448761649394621074270871723990717415742557435690861502938086491196411960347361074842378209729967763623054673134971394402033572921712816119140593351419725102103935094897962981916629015258943350765045176222744945342791185027676182353412745759152486230769746402740834529470016610635213739732785761896878785710132820038917227977699385516588271329846500459343768701748341492621315139644017380156710331030217915209894521889658836837160955288341897598610396458593012524649750470493708141843005999013747821771588128493075206486251916159995731757365713819619206425196362027163042878807161948666323841645343074473127717769836164823126495005809348504661188223213599383411448284777241396308787692553975526060763380994956811722494164745712639439186019227725956576559876431517656405497975226916306176448259335463990993400958325048115035757114486636996054929706929395646699545681281962883648883196089258496465001866779710280852635282857063441131429006917735601141778377260032347566584009105348562132660076400629653268111437716393389724164629447670198712095093434696217698377572638215594405622044270193917583472969921514416710577156599366992857751273904847908390882464910051324053948353928426694958335378416892532230498190203803126388286329788984718184759925427189128642371916462333503674360821083126508459424057244946405003432062614666145584865070523601133550862176822631768960154789879850623627215007682987146478331422509755110524184402455592804670696155882079173975842097473131980366446401566575032397774744649798652783409744169173364595995849488627347525354073829443810129019091812149458603036985421200963805632249408694883733188002476124079939225175423067234034018216630806692344303210285039983514252341386334286181403252263096743684458933784721843923575199337094818576837871716430708690914078563778526302875379616061296753207797487993728516541775969384837256504812458351964654655885260182855542728172450826990350377500835798035874831755663383616677985407357372203622992469743498014410793777564894975999448356799106733896795956803152851749564664864553559644199067101709766286261228130137326465453488616993128859086328632024596127801870445238487802045534864705507588439902578976232434925715203356768159764853704503259388700090354926840043819528092447715064730792562839809249029039508919442283026243455741361358427141802128839702536352854214133748900607894742754958276982700190441725842752710533553600726322509141114131953752404842730714654770419489972708008738945259905635616446428220183621817327138136360302008103270152924741749885718784017714493293985303818258934811205790828165464917960402883902250180404501127968101048549957997924907457186367954840495189594362597514870456422962369934554704514428938784807562483627523110917696441077688363271996131610060903079278050607362006507937739244804119707229237793494397270353477890165251866178922286871197775436300040723785065618890559705063025363711831520020905223456809271381900769632503898414626691671427894330775764543398095678298601971234306886716203502341504077800792020231631163794138637828299731494242411679339351383797731276934236265011156664514764501110576260251255156695758794341881591147747979871723770421643389519615905977060719129908999640445713153050617483342505540072452144709726907206733028856957699723058932427900183593390861116186088653982550134775027402393656577553995866386570625080640555707173059930905307898509841545583233477868519131964053582265729922364866728072264080598730651490016943700707670020074888449049488773744662645971610513619308017741167478423038624828185812265872449656609161241321900533863809866420374788086291820881900942631780060198791345071153968982453407201675114982027541297735877814390916999344663175449214794094712106252280255767537095561571018467317055180589921225596424826583717863925128776046629864860584893771476170824237558418045567426286669827745487784734837784563411031462244728349990201131472236996494648005953703600615269588622953010977093041149174385578594523355105525588588800681417519723188646330537443046077000868156570711567147990177583246731532454948674789670811952029582139620799223614376677466488788060061619008820297881662718443078830424042235249457057327425367023258085810168780575006729227264634805140738320742471769806857108216458698840210863696474151579850513142028201611694774390276430956475640994478623448819638095597868300479040259735261726249085625467624592390609545663319779981908986737229823821248489355209176535984313551985734867206207548944126874279058649692353679330963593112104816435303999915763316305915862232028394236096738010397853229927959452172780327356934031898820889747079759839782893585608452147978424486177184760353018828979632733686434041743248489398639674788995362089233181405615840026894040802090234254693352837013070609926701564618617995236850363048687872759090064894115958456898437260113238563252346240269772343501241337085124710849883175109666603936858433084811947864550447746233326772685217381838982814823665671669411446085434104155260205513270752118245566561678735532261765582097544120220380148136812283558885632061893912644704375387989739271907363322302405934689441370175701339509391598645797354036675977564163770431651854764946968367746505267885797318887507502182337934814346486782361165996821852337053956330797509433042027099204380980739508326550863233770220872102513377860883594816816932324088043860100284511879575987040952209181950248973371901515038312191301532130267065753642814004166803955055246702880930372564059206936786397606430859311943622820169035346734092116542222814470305815666234315778176788096272324859913239734642921411836429853871582206043175028717668868918149811032198837112783481050258925784906173022368185586938404963760104862070018051929279520713492630755329662030971980422517247309284387334859007611491027978635862176953339556516371982714948265261801795848021804796665124718215505196982870088971926608586410338485689636930421568883009887914009475498294554388727944654819819952502278414512825797114714225702177932418010536731058485002297838930346777906956847323179552102889962052947150997533688597175990492771257296897938079642679449317848696283837621932573153264359971519169094731710238418118195959703474046937119908798891766636961836814151224417601700734760195702654768072898447597511764592075365082959202709804910102229020210355738009749598554074421645053985650152671999339977451312660902636089873519310679276018001667956803512771524080848922015821011921226525287784298158617292241590076275456704732830034629305066657378460196988958227124888867060648134767622061844915990104873503698222887731274528062578054079818430697236553988382647985853426731329218262309013900552130380239709195965537366701193731578634445230697870330992980826327825040460856871655872905557187266314072497551298728453022602252550763745702130639330195813738795987721504961535264888787849623368467660466647037667882641913878458295501781899319472974499886277286418645622059894164044988552023645993116506764476893625959316266354184810012610816243744752193748051224047256129723079013035437772783044143719188480925536372789055236163320531846116864156809625526366820252557996882097655343070892961110187955710414987070340056407858052609262597439224680541730394073862634184884342694662504208227984814437926336843760037403589058280477468483640722869987707255297584733909566548392064498577652523159239702062918104469836537438045540059699011839224921209927343117314456679074572622430056091076123324315857168904034205660307871783971254377735869977887348461598505583096219165838884606627369770156437687344698749517899861432549126443363718343306229691785171026945817456717888456327630372074789179528327285499673913701901077395772182240322831737648362205711551566193727540217797771413536144187718583121065918003570651243213667630894865386434334679896330909682775647902122813075608581955527448688732698918321981832973639588951384350669098573399836564830010472220359434940621327208218538264682692332575564953106138538865102010686767896460974639146485774598574814348918303784644128570347265461755898647234488358408198641781622381049884963932404460236560271399546983022095296495906861390513743653039877474815271378478078049689010554740585561560083413907390950515859785038174491174739477588975635778158110884740782596909415231056253391882440978777708519851158871960572356737020660265216803396792130506478503046661388434549456212742581625623811452739850977899638748364722223139520265682872036682774999880296821135652421849589811324952228053502819029951101265475745214183031518856373982422103465558610541589773025361145774327232243076096852463623826662623320403207908414939052183836220713520768572078419884267824854164419036450672648430693203672507070728616373930461601437971874395020016361884818799627883334896237217713201870585038377749606030902935376544893510834549635983809781120096465684557080690611167255855353631994320094685661533266138124741578859630931986080921543322049709794854959503440425452244004905257463736495228678772699382991323127504791026239099519033373335690378074531736315457391568543185015696401717593042218166859860005874395242482747582751851773370756450400642069567320296099371250436460326698505226397168956166610436151384821551899784699090120223917913695049106746845914396354097575008842344337214170482176438338677739103799394040442209030043165244558687090546879516369150651727597274335743451075828896392004215032445818926854180075410288500545616119482074272217562093729284245684328337214547177490572651040006433083310137445446881613740594195588762339768182240705922167195101793305966241235166065035892962379535719665927978275305415454947151809219645391218291355202060934758052154523754675272106805338800409612345614961848788906624612282282836802971340897270814765954275093700812729304338408424059015599817920785850399371591714250037089718741736118182778652313273635659698603043449498630907564331562023304983335180478196062500603131667603942713119818227351739362362856038537511808456469205146225114980768108449323295315735567784749110099379423282157492992759624139476295163077268026168224563415616407994714123036122903902295091621609837143523236211182587820763581017655405876175078986122854401017712372598071833742178565736013401808209271177758661736157845667337819906720847492046487584037360454733862047044059283464482109422551863639347250317806211208056965271268394123225982875674478895471526179044721353589881269926463492674950930628745306211283108067021873170047447750966670294133763854448979590358859282041606674065576118922854666930173771025113858050800373703011026858635694610910420531283165757794357829665998430257388620169730246877248829300101614816563304755735680248294198924810435117500356533281777160425397115248659259824515900643350674704227589767472341921370449563454808775396306115359608048778774106341613166948100364658439246087234460897365918755598093300562058079880487643338531654935433393708814109471114095676595277338908605417721540842417366265228750725731837572817463987569468923794496552976521004249091702735216369909612936347775116551309865422885147558388527168353485299005201972292217017984517995299903547206211502069010986421660095631983841293766284185212776475522932795524395551137721227750682546081886643412675538826458431995310583224289561178844210679231917835069899811850219207638017198817030783983994143167575009248555584729879662892334584378716223359097289400523542923184874348205938408212701979943358790471529976406000216141730501077503110739121342318250199224131858758290133800206639435413363099700531819225678557929382476806172293568575009053556664983400376752672286815137501734810984869375037029439671625078600995825991941946883975498082599461664940050929335831423806990451845478658595809533546776750112792327057862899079443854316296882801802117556362410183521092349652765156192097071394831830387022911399059802157251003938008745694872618965058454413379325490144893835186679908146728889914957931275657213692320932918011278777051443968431287403550780742874714522464614258657730348322731476678359764504698961332986784759340795967303402063334102079107063401088658994308500509662296856999703083944748203568291533252309473599806785111816296466105021277443042466161161296551103335157763500837468180956096435037631851203599214557497859287907836047688952650911117366562227464380514931347497634114649736673630104116786506192787005491637412852761749519959909247441165108422928472274988409768411516728293190105795116689013591799005044654664695874656495125763697874709716868513719407790159703029156741703848810515725909565293163149965141501284698264976471766813510810069344410639964478734745696061272335394358596965785971184933995999769548641479327275170384165239899797943327494713983479958074135838463266861596571557695930145589667345906053662598206438412911925578892685469440338910351222102763824776677949091962599809215363802641876207439149812422608930991904489826565036088012464212405438455034429912574084167737077230637370215237701571987930522775279016266515107745026687087260322635569799385977993040503187968412177121967676186533453806284084984428741862881829910101286045780742448769748083435166900146321776108133268052054741450474647775746317261413110686286117122440665171838124305999576580264248568892241499185781026332724753216811691872811727627404933028025843568105942146843462372329676915886031260700672246131468453617320007285797136657246656427858630273230148978559457944163271798298966247401990464168842742829760655106981657693381800662521714145485695091473061925275463544102754569934529750994566435240221531221176499246708373259433884847383330100214413812092795644539308530263088637616029351406453517608494888897798279360591083787517141651329088550455759878182746315753546342117948129247878917541648263096042439677857076368261122741500778999378508139153631846102556894441168030502164245626525457546551936031519736814544363912327528798397415576563411644264825594228950435620674739722688082338462900419495786947844363136521741466504780328090558785108485322077138374317849893068601614902255808568552765911062623302506916184181827623205967531119474033931219745886037106328559984522875111906833785324851706926586379909863025647908907535846178891012495508390942592420611253606062359031510318699044673366572697895269203169735308202588334269363123378134081123201153272216750284034817826122497509866865077921023769267716109974833025716238802762891432067381861726744635187658396788990107979075367487082650593960606119108933811070226230315617367934915908410408156236100615036847912171554821965631370167093304503785235045554450281885637609062786123857042776133099258620918551292055855059778146920821875834835352572585582048134327700872398541312146171049109787863340165037742913037398833249257882651723065843113186745703449063241576184796252042192751595045410551051703027565394497325327567235150460403262520696837682118718349961671518458464724069924000375767419407613756623728146238134133400047383472053630319783153085698689169651262678028293072787049511522308966625243135449838215578849726988347472254601856892667483406060222413771670358775088838933828083979561624396815399552404095933642542491883488903598887457037935728185735658321011578271726098987973022394019370758984279387249498342686407067449476731519971931885611763255046790985639604479301364110470655772441426168084011752911598731498021146601148501521870045627693595240225453186639528526915826447768447309223910852404010991510173016142035122528599480612150111048514225146143415200383465190752222037691903804690400917649331309117519397441531203237222533652375088382864257084524474576334402317585755121649243006743499330981506783688045202427640878590729107696277834919094935047919064010638377233492343490181887981456876772151493153525038821638133815543811805524780986909903009563038050790993103195638112683159540327610198569255108307479437755400370348777304068263589610433704707882161603257589101082761824525378647519110801185802865689999042723866757359092599728280266001560023530488535990752323798885047269300174059711687996140867835454873949160066411395945643148783167024872599421912084733643029076879655983777822809479848578718589228692180713666001646369975647486813709642922563413056881561122303836372654120017273622411339450843454878593201781142955091843478048259923628245265782953831406294790390215217454894369171234682169651539912943684524775247205288770425769632118360687709204817887427184967947380139650208151431585453323413356661904977114864170851823732569755903866945327825326783055769712838144874727734046778983966605676221873281286974001768733534760734663755059772414253295609390876515637323553061181442212612393903764983411962702421942442065503950649652348575447668038816534723329228755937685251807856741874433454282070596390841794191779196413489936673053826192661822816453635053024773983614167140139244185565379984710797809945016719887551224759090773031999093364683823513072501463900186604279929156867842504796573941034075120190691298011355128080481339896507145792368378911381359666756890699900428496994948205656474597903867198587314133875588020144971123782148724754190276907985095730931474083842336508093201019454422912466336195808422986196599658608518615301151322993796773550916478256508331928946914310438448059035536893119823425600804586020133967556083982666523237964482354144814885779288320058968087493213436178399850492473208143217006192756312596887854037087999456514184107872281359138257685500914363274388930011928780317452685429029355740243790517769335151587030484905168490847244084680436592125635173090484141479199186559403054653720672569196325854289095125936893345914516921606802809760135702875820487630691604703259174580319572238972761819977154431801372649943866969250439691241956898730711791487016027605395950330122285593482785513842547970771054639848349372307531599080843691504033125332298207873017850610396393641120453520456994358012928101138524880186235173351822830611239084872278543265811002673296965394729500127435207543323898248073104930499813997351616182388939814869014649765826885716104100215341013535742689273640618537160592195550461054752835548011905536096456488629041491143352975967206138499753919137934830721462375011199330836290176181371273595747251974200371181467566114823295605402156907022529988147421741526385258493071988893917975583430991516952582554342033518107758337175435604947214687916819487999577360835215522173156311282818811938550801929497708690394839584686851957724701830242699707535322169822203672030466344239469060975172904102374530378700378217037172414318973727572371157651512252542618287642093685845496394734467935200905052079449837845883687813626980729621580371340110017373987879787676589287328304084274288002946001532143883521098743671429786610013451225237952035765095340815291547543741327916138774060047646108458119631953393153739695590980603132120764820887595103857101772643757288506754024203264807774010028549577738690792342415080935125144564488712955335959929629833869430198854576342909434426844592119041750485081722700106146960839925747778121851757464457787887367257848502346172584251549785386543430399081997974959988063863896891432294355350149649365244908616920850968935054208395018883138298714929616448754658913723302576254689343016785733776372838627200567286630914064932828649310034375033485375761056216710057497943258841387410745262898102296646502382882403226131184122370902010817224358505831180307404649264722252948050337992458927048214849696319034106089184606749159103833630460372224117017167347172301315158720060623573563555522233302687065066216545248879793013467213522860900589648224011527726554817080267915459650211890564969739482982891635065780386292612199022159812022553861423750484460887348100797009009321231251385774319825141262909057225816191322075142138989814189986764976382107390866999366222106197821818183796874539963492165867561294106991882618349469323007203495728556824437708100911249159627249902512815717781082308999504654150666570723445342612183245248408316775312516978169035038752987937436179899927988073685029244507664838629396680225549129736455516321173005064068606598451831752105556499454193250075306457976304410081073559657336565984965213974604103806288333049773485211279771336524500706664114498902354317939026520455011506003198740040920307084382409562196051481628783259620989877232197544166870354994961457047438068607965334382673234723043239235332977543790617380963396678777663483784551128336974024923960718290121547738124215602074235750293164827000821802668759453614861095021350709360003855896094519869928297044790121222008475146303434274771637711081407024645132113827088828239132626661548682437812785839674636088273905614971342170405645948964100157477729911928054979682974718307525142988368049234260953660444920513097871636462732386731232402187364043670225197933939681941316686617438955421036677879120863926802180531101074981086299803582261484861248526672888620391846402935214340458300517001111287206318459933420487505948748733175479310327268125247838819100733570397667672638856808676088595093777074538335625397149204387134292430338796102088480088002594638466614521133149744984161188802425822083475814169556825937986983565594959317741627095597106795210513924285581915435823231037610224658356683759667145007301807201666241351240388553290706351206462334351358587867901279746465643383386545868160963927339416193560833392373921842749690866774133834365141497885299180441250554992293558898250760492189583601638161295267136776716069936840561472669168642611660306558803131222066212736178932129523189292778345894494956321043723535783075751911480766951253512783347425171114194546064956487399974831700897318605818690291853453869581425177731848379280619724504378296760219580432014172293735768880280211113716405910057928492813241946530555113579389430106542352024157211033222223614994547917434698513549804493428569075156786172793310857061188287306463867515166824525130116303525622256067558721474942535101308326185478202861313290594039450771506372033239904554441078347911821971002041747749414906773090938526636171094760854175706452349517846424091190766362177570046882965076462490183970521021219962183858725125218174484357026678638156931888083720429821046501230909758873707287685724465843229713286421350515524179438772269300633277199304194215717915923055215540011082088755331201196310080590530727148635408790377378553716950010109354348400697705901617936179512993397046380343610388410247223155222171773062143500882497232639858821154758114715231161108572089123705403601615778345884448612193869407664409499802504441354401447503726189644991645388884551191587440461424005825503445126752490873499364482929678504519359491150954581693592054296714414747270474541353673626334061746906993715089905204764288005902764707457967375095745778236968919752744705894755462054453786561539920971920607243281979074469934549473412653428930080010421044308747996752395910649557003267755264742804048038482176078947598768542023249843219692792598323023029242273593297510211490451147799513231898265775502816523256794375420850768418271698740084753495388616303258050869769286407870893075509790913491028261764421916914831835853439017785325084032179187289863146069427032262243412694957546686201900646302677672850274408408786137376583368806030331898312877653603389695752801485146823058980019359665596999437902287281271137258574917787765734758527751411556234336146154292437591128515069758905750886066263872079615776620626052574518283177526145169617912469785977938357767272619083689556541336194537622449625376186204081212234602187872540839309887188288077969869072326704619524782743854950624926779590179931082315565848876761832835568660983468226637734955557660928664343221319253580242377130636321131136344712947517456732549694561244823114678812156692928930957960956344507890137818280535250800076165467947805101605500143978971054978966658537199626502493591214757746475441456847772764652572933410635661422422589134316360364496513825007482651672828078869165297019984606503379059471178198820551054779104100278848208612933897499642078794086678188571210041575044148552979742653025549852216369011655171929134130419231495078127597593965966565349872380354834981692921059589414209196960419741398957534119736082200721322005595776250670236603713188192751699893447758789263336644540447938643532669251548244529458213257783411831561777149869373553391644276418537508135838245192770255704497655132689829775146643959865826687892279429688514237251404872462284420425677570739807169446768974274522152890829933316786113286732871778019179296895581916888414655461382613168426908224322904156644156929461344035289732779344989796048991923315237721237260265060002343219979229772032013153277303856277427118923937750681925639171550526410199912522026259119791184320388772526557422940672341445480418884748497280251222971291114011248088230324771895314199128290790889690566909934952347137427294898632683869433066372265089931226170978910533356362957919956988307425144001868337288373988483138075648978650345261779081712908492864100915042049681284032025255490824087502516561153507030851299599971202955829317830029195035626124142774287927603929126787115194432077269845057138024363331810573979903424789576980899408071484495848786193156868406409838955278652830822172247716808047743140142726146927396188265686474021120798478872669872397395701168436002157233915448677468936711805879025452108684599746478170451238456734025381138099846237012616858440154162709781635422727215681678123589936539025813879267275438195314133053244966271706568747576203616618140674410331650671422515245878414068459232157180950300735984790494395069621729187516240220074569004784336820361270373282222925792403383440138089088645057475015261067571878250385645184349304922952416760223693520840053067549503880787659103150949259573869941101559085649977806258092600804153602829536398019494987007280232647623369101778937793886320429231102784079381489578190071597825795346791006356894129322523764675140303537322529279793124487931608427468828056643849768871188398264439605939008249888670658913087842730889883899385244870986046809241274375630175546624618785076235741232288255011331711986414441870978821084697647389943935673340125106481815236102112568237188706464204698771223955806182777772879025928721110458459946284164431863376633629526176618027640989644608051634478047996571159206937504002422275374519949332388068716984181806818300210844244631754465932962743223980693650302663037224852599104700674049038197277727555755301433691357174385502585570759714562628249701836489623827306294863875868914604706606361854043837469036357270681405440990848460107894745344744973330519776687072195063140438914191734466044728290468403094128756325824953390619519358680144903918969685227682717920503770435045103709367927714017797065657754773173548998725756666671856154211798186816577920624604934994566638699989358821470923257992244827672686261934201364444964416763862507203451825353195931772891245057003811865164962473397436085939157520145814881049736060469055933494075279720214963285283708419232056999658456055011645217068370091215645609572395781572879348618381985931411011885321744325837344851567305027805325180847251391283248115382346413184413735589319231262004747123377055477932976000093078677885793009645508746290262752159853019557817764517020069021066522966445781488808955141478380308741073615789181059661454749901315703655704319275845946394785760676567010854071545783051991452187172835908405784606126088108518986258417237044736947550938627889694061183398573871076313203619929531668344336698599984392584028988489683763988668995867600878519633219257381266667671944041400643491290889532413090581925111589001097422223576617400108942866088651930967049714054493199069828306606917270542733654599682503020143544781673023105413564965894121579274310025310793837937936694861414507369670577876841772334815350803002193560812676152107545357254180734586896136396572429168654068454894697308892806642547558362033224544705253641516394959807297282336928592977533184444808835834407569288884336970443676668169932938186203788358067243233608263732092030365569604808355519459505004723805682132046674784859610579916953407283754968436133523409240480354171227166619164389635522379322884819878699781575017073921794649517626314562936923789349321014840620745512329582923992008957925729592679842786787630625952812376548504257762193666905268654472716841576335016442857512411668629392890596332203509035986982670109631491574892112791995393663136522193257860501055657463642416037491559765474776417334243692789040652308418527906953245281628327370172832915728887492567175130464832339109152656945243062290441520957926988111734260867641328801788008094306135568583330085598929695405658513575723645278332405375166415155109702571407606529811795585877605957930198783853718241968328011578702970065839189182135241749808197754366004837349314409379569232216537226289995803470276601945744288195784391837655334828058183528065564226733654014705915804365810152296719336883438026933065238078674486733997406891540934369509558579932862727536294896947067986344477559123649694233819745950113376916557498098525800106741277558066540004187897895348453302175816110812817808125798082259596083248905083430542062348105320246162295791945686961487900514761190802822942089387040862381371122205830290237466823112024010474733313488980326807405056597049311585963681472849367743605232642605050113473899869801702028959355684826893393781724958377576561472360308433721225261673216732957775557615360027271608198678789962205518749024599419269150095397061761064976458317851391891010165296408471638788002669584367924842762936884700756108630961270846932525888746865005925443558635575106885893922895095285057488560581064273340251164262364183981900818082219738615969618010022153229994735541640102097382402472911061473006778382316970834475026895916320699398216227991614038041383099089691767351969677929051997175636794549889028696062693591735445889512070184807944071600549858847105982283723890769981368072243158954672952324226307880931601321308164349511479546149007722593704599682303822667399796619823784163130489212398008654941361711503200703541450952847299412574980134303297038349622599124176505332006346598245717012561945747509496414695600705882434147729075700796157860063000664423375686936044050584998600399920039868886384986572522773437136430184129855651374445372883697233013024843939834822051803078571461509783768387298464935762745104704832185383202317924079504402992461281259169575938592195375240007175978704028724544674063290195004611780227605375351457962831720461869732887118588032593388837992649714038852001027628895162629393827321958603480621773240796406704947004810614414087267576706167611065709222890126694803680759373592336646606649704034596594321755629919848262313070036493954246428385440407064925353129936660417786364881473107563747415538116196105984741651269585594627999005280864402364382850501001117924797580638150368550076807284928855427466108463093242138067392095210765709339474242664079530918145176071767809114021752408875561224957247599826132885282552837887798257950055896831553570379266461048531410779065990619285442278831608584217658655962316516578633839794367718444351309128557851988470453039555822446299696609902706675201186907875747334010491911073612710636638584283801086431026983823916204954634544724623801891523356031708707915137437288147779437358164264628835409615091930750580635178320491881718380283751110364454549074286093097594629277193839205605895465120974604009047209231583881665379913602038882251006198306502821417703146163763545295875737641746267490163847837669628173014796641864604460985542629391266723795327595786828858994424253129204280516207406108864992125866376516577303429467290127618075775541276479850228896447884694445837475341779102717917117171071009537741368168407357052391846602676033068869522306176425770726700466108234118929068089252321999714850815006045747344287262197173236803564791587885101743509290030192759582388521931897339502463782935507948291976928690309230142176590546183903619510235130294145445426105844669732217506298590446407126788669327263090108145485921779300614495517167898677212673689384497000388994183188807950168357628319561366898662690323765658198128823299614012412515793353949050101286076643581033285692286827056855904564052433694130661278028479316692292935296418002383761350711698039407132747825742153084982705035694680810281780640928260975436403848357811837244160645016209320898177283723009139823838736190406047386778728367185699629184579963179778852284135238982907028219611170399605402675779233283841731120970435022192521546760448168279059970391807398815848182313179446050896390604548338111547783314909573036508889926255765045796410185522958610404849521641604906933012646794515121886772358173330313208008508080138285566548078838473450111061089974826773925177348338583731454419714864274949667319663635639782237922272897865790424024513275858598871593735099743464878648524425795834483302149072925606385340158947875774673028127983079777893755047701678537257714843045298259292154022263560297644771833724667131705323433502313612790063288358422845573301784405274175308936297511563728258156161372478046516785506021286842344112799596681311591087689121894033482647755367472325718823559174057707145283697839914557150078867903880663944159796756908352019332714372597133964365220393591075102260609830981602578464756329740528323577653728330119679220743957577620668972967376347369108716886939407910127269278469776696463332651894305497810695711749310557400413253858181893670076101524041054903243246557967631918013373365127258753096609915262935708292721542890805346359032930067591877542083858898153854892008596692701898343504715848903644816051352058038699978937113384956307742190248753009684499216297958316268841726065748201461215659227614992856162526880386595136342369309687166751373282511868508880656199342557144387084556422829453416950997823574546684716535592034801940978761142655943701888920798573289423237271820090356850581271785926375390529645759786419229655074526978271826137510994590036454009586592545790715076346716337462678504225436266896408134549960627304520043759218039527155187536052766235218822117113225068603486091873110893074639269127689643189973118694879549357690933538559479524960775101478144883490443173503694121949899118071758407334084646638278760287344787890369866919916499977230196534362299889717474225414160545867844292758547019192920667047277910263423066459976416763757002183256212830873252915212539297253218698775277140410641903857038176611929093730156937265397506213138866302322653771894753140766326058862150341278417641501365548450219228644842578647879514716515366472788551802900489763768132452158863229105682210300851167411934499714024852018227295018190862275544951363541192829164251895257926382710695058470669282803125092015195713910725838166656952020786118368927170223353162979005356151446522459719300467280492590479839663208393124592913287845174841894140326246257507535110397710574820561992678971350904613271573154154970688910285915632856051907032396020537913989862615337576576061326198570741433207089943387686891078366376261830507623753225139223747535245900269430253230975056817781407436012919937915715164670350804995651805415630496492682952946805991571794843741142865804745668590613718367890805351869296544579885354093736312470980111129524473008962173568325288213563989488765614129847885947070737591430071306715354088137347942986468191273321663135639506228182870003675220800865131946727252891286178689132286959882214586070879775039074565572530020686051334675823245081311231475338219057633567172197631413324230336210822030561767378305744028861895847909455011358355933243406635122299574483294530211131351624950167994890083513969948983691413497615704480230709617089417324271344699917750629226574217696566485232123977579643121576132088135195949138094245806606022264361823760142265884846198868192746094526095971574715329431722061887087817097713717142625251035828518010670800951845220853399507635109369646460804135402472467038144295606489288361990212323253339940446836913712865778593165516538907757093245950571169699305490711831495818573589906946191265610721295542194567044541647525957764116245078010671258204674366684790157823909567415696016163926769415023509095784303654918065087705383881313400807128354691105202965610642806676011133282927910870604245242269690742298011085402398383933078842191700659895223536602837811568574907750212342213777146819149741443063688482975954754162682599874620808840406366240081881177194357171737802775135464209615279875791757025715872510768943414583385608173823378159901825424942822195089082812156696790880415239307648618351873759884024085493502077490585130201450394297771317309500384100609019057665534858618882496337371530717011730841172624797572475413313103951385414697949294846641973489425415192630272700892433163908234564698728239410450956556265654420893892762103355582353484611725509806957620457034420886192017091550005732103924353433306265986823246958514997026425838491680910473958267829226378619023320069759232823244288073034356639750089158472898698174192707867721684388794418397754875856477821579937056701028280615938360993285416185550034869119851023067146246102098992386037601468340729960681776716799683270357977485145493596815252999757339358180631645058402951903461002721828449211294586803555621951551199977915745754641354000352349575730408202891140439025882232217016551386633622632791084889856127842266282761239352317741708097598000638714268404726082539749906249421656053361296452233548087772602511309838672330578003957700553047142622834498604153031639179322526252444964866101259159080118599323492487274105476525189421665829530023928214953912439277601813051899268871773624968622799074342876480095530728494353142453415340431363581819554408001448531823832287794024427383450723998472754004891592304576750502667996208622629792153464993248303190741725741139739560405204281204455821523429467046370141106229120285965470050685456688595712069086528611101685057130369993454358994202425100030254975597054728420243305352951659352786893283674218203533137691431392650034862887239287059597879667681098395582101227733591855809132198051570116285207181592188342406855008889104990901019662870901724972193291722475210536430764434010206538285146932237373627679831157484925346314609534388872132630625288706113894156868440165595378315069038407080476386776213652497203245361927819822007305112208002966978705199784411238046257704232955302582051714325622141521424282877657017139881669108861389511239950563234963014039469328027489361014662716454172376184385736916668590187919505389732221068596473025838215777150078041576071356825999384896322610879118597876239130706425494953389057236129599081136948058345334187900371808796350184833289980689500992676791702484164713877477385622145465898827996004090845235034415322306862829467626578840416291715219047408299826849686789038379881038080578487052664626944578652158644035694616285428633417771655483816384113815853397830580299827585060313476638745114159627620866539529529672137981026554107372461152099687818797561781366246132349076883442039866338192625800375024390489160819814759225595467071538818110827101732951019958385370127854393645858894130567644307820901057380154006536457997120697559818917123596890582866743121938116806657354077744444191086566886006807655792601407078355652970595723877143088704420633713871250222392024923604194002670432079619422732549825390218957888707957506518124789744926037822922539485346149303066333274947520341778959957710296827250795393032795411479609459449667559929386722110747058374225887045511958033940702605189660313909404233741021534342824554227803798910981162741785574828714782885996392590961269020097680666970965946416780555673983206289173482234010401390366203181481268123383614431434832660839919506268369534356838859902949583013407674197617892765917686858086804935658526364057365466372802655084993095707215307170299862392997043374353684492361373798263430692197999020911042954905613939796971509311531505154192296660946075418502049568501142177590314652667176035778969957200118740362583359369191422897477185314485505400579926824754979842828988629628957122545345567143203344833622742666350451089192728829863128308316927370120175167452241240165831178196832632027574762791833233430098243837891452998953571414339635575488237505527034060015116751480904650012157635383553237555903649542974727514576625851421214182566378605122338457206851989542715993710358780357872409043247380874192844890115451074394146878074232260778119893233314061629104012463285704254704837599638633498817416317727866553185872914409982895283707571590251516860620525732641889688055556046702086934920366559430582659749019339010220447204248939142705349840519264534433573546267108753220157349895073969534966323844067382201872551806557126976256571961984814754163620004845278598916077700839796459649127705863994855168102858555365950830648596042237224646534128655663485096771843306079582557145100896795240649602639552702993031910258051517689273024337483652532606875611956112924028800134008105091364369994079392777497075698804808978917720014207800460353910043344527093578744215553025523144532659035553636156938717407091426197950676598543159707036501512381776328528331868241888782389996792350593791617016022383616687404666486855580913701429377772558904398923434765180150147109521242542726524121753936910012169309029218265584375062042978164688430770855314238069176379039146202567234389350130875124176786082903043692918545671441897182700463030981528234629310085904287081990874606814356851992073192074632121512441531762411902429233449113814523137610561826863803700633988558499341290439083382889801399765646474135429073488593846912496687191811140159376083332159215712808926382085138723471813311090307380260768031904048876679854122859299399648600634335907477587263179215970474621122477758286573504264484749459406181479154903516162187249385951476014110614108283039102122236533205876282050961142768311474098791443687151762429951796439493880104742625617453768319913121719831212435265003229720340380425465878883780450450062358320816789840747834490793210248565819227623389988316832356513031268748922540425977227678879009871494403907017447174529718323383502336249941021996021782133212262074131020727509355921580727619986112807743560406832374862464541490834475841718357909694078877242641024784275874635378536524874226903843168851253241873640868202550370155911923159584892107543002274881261681143358639683731401705332751435177242962750917270721165428515806139849603608890913231168377000843249694328442011777531175060509648063746926875032821957835839160506312921258213674065111429878406461174797437324157243286678096023351164928579010849588781420923235144468796390159488639517448314152901595464928115554216044514487626920105669170449311759119890651486142417239555572982816889593129430692197377454262229898759552013854220747404442400315201545075976486357338495002693800756818306082228166155079418854660614660078067495312900158676542716007609540786383549118375510653567085652363873340560217741466807243810051131587452466314928713327347351946567083857621180653436554833640636630689469721521088194061767286438445615593704964003163786215524483908620765064015803222078688831303890233536336672270441665003998638878129957639073386391369215841115785470097441453311281850362706199178671204584947783658859848525532364520430767293908628605335845379420454462231412768669186706267969694416014141290973982743354138206809864154084395947230007443240614946016573663466449563791282154622611754660506771624803664036664053474780545698731475357757372623985043781794963803096206440579999993728810424988755900419174792130356563273653733243026232850895223565768588061099083253417071626518232066309640814581330937514292663539636114594336629044570923366231592089991099152601736717343242427656118120710728516640323078273533369309210223121424699491331637014729862038112574625338451322739434881452404783336116943306242209256161969180835354083250915360622761509117674174979914491208454875355585806513224129189252399230210899039911158145061210614264607738383069062080407787034586066232057731301492045072311631040077736023338709234403350229013727952445145634607657537933574511687551149541259110560457505292735702969952135004784754873504825081772966009948353787041875639313253627487640374815963126258143653279521965062100354391505388917615822506526372679724234376960932935326457792131996167965151729514601125672877980408430902045479315373852210865062556591310761701872110346133586944264410948040431180623382178244116543041332656403076727239516130609189022562653135947962893390090235212626008314810389908062863156794080622649222041274855495856063340931159130169738019993464176623828543119631717371439550093798661753735201325804381967504415231509778352345256477072844584189978015058143134003350642872620441059012435826095544893599029261080307999595279410820232575274407063872331635136803914518757078350371283716953435327614747373936868349621238998867037278389343982935433569564660699342103898283932929522488829760178022279294080007735748975588545075823046559313914868151597898248849025111319595529096499041624476993095363414163649982441886765210777717646846935140747023746001855109380033635921186497852349677276236169428869713735561502673565967041851622292166186132464474831855355689653009773492705323237383023405680674504931814510789789409588688411480220042915809680647025304528079511795669751852494878356089915255097373169333726838250313521424480634240231563617719215119311808487699878276201522735239106321537132863129615538840269603690865620702303704507486885034861439654897214753661727885749361935935724468041554869091815542684997687149348677248663041745011674722234457380201163798387215802630180675448557411219013490710261288903618272744045394255162883421552345075500852583877443566251430670586102446753544481347191731127914552885314653327869702598608692660443671567356394943482748481900458981259397274597800787079750692861526929033228780623115707365579140178886205905554072032972767250598565781708164831824613969286761618301618109038578586120390244119468927869678027933902543846780590610150891383862744795335858013954719573027551866395170547152987946007858359945778041320061650923558390211166366671208385302551246965152611035531026466149942167477291856789691106119706117859240130180183864737916465727296486422195029400968793393362227847428662551358482741143996721972467629915208213378142730194739802516324062545293945578588066805673606335013121935942228178451923609995042567624588575366817803597884315334410748832717511325145936444626535892468655965531244139369201293786142556175427622167897064732516516658915933129309871013581365309798182654990910186815729765034274932100215507049064721498261745658426701682391756848846133509485162230040905887893523707130324689898000190306707242066627315949029323921789674638748898662140976963231810624307213930020936884754834238170376341054383577448301624556210907203845007280652527497548306922137421341609765054404678638345720208920457257907323643704842487426475684754634816963574251090714712783985586292345433675603294188971410946620918026930597797813870290029229338456446742106248806231171531640533831014457269665343407019326029079816341038718732549545248191611384373220988188669855117500603806492849285491965444652707249059306463340912684771023694698759176815200727386561189804806660819341420243483838936732738600571731757802296150357819251959669142705749493077036604031439206258887610085893912483768947266850561447797378196185478745289538822396900752706645119898362432397152564537955050699543692415978637656244021961875093368595380713414617808591704830068456073563245474283336457880438655301192188409069543542543780176329865735721364866883968404349331385867815655211495941851614459407640606756955300651217378468304808865529933498567850030478120242601880567896274559298222927140608865865849377086327623702306630557752482630312094643837062077774620087214964590587149592476777625964367620471108857209264187283922862979395959038143582968135431947553608510110792618143781666311470973061802921053030095131272326793735138566303989304386404208013782007231638297590567838162065754144887719254682600551132984400320480438159148387542170122283542752705342604260441097141067994646936268463844495261025391374400581711525055611588764412715876878485066540257412928859041135766588847179664004888508510111381850993190838735641207352551873466031432603314183456012825358093145942449439661391268574794522773057260758796928915218506286081090600125452055142413644025227707913387396175129605759878751404203626739452639749937964063707417615856268824821789104970028756187463525513434678362554360896056973374911683677808681826510923617390091255858231111006797712485672483634569437056083830678362538805841726327417314412445512573043490997250906106595000719087433084362545860650754863468849229033736479383307933044243652949505550626952096173559496024715069322057548091620048847669357776105083029796977143371632435277557691016020081817306566377960185046437924904691366998353253306315297706689791796273947953395913267049368064563454163353093834849353363929157716011595347460905590254323048557295587994296810046543684101800811590091283008434206189093876946556380560405644793632111923081842695177731612596428258156480475003624425059343521979796267157396036671579654597900258051511429203561166200158101896941530549246740190416803795933694674386933197301760019702512852892050323986809592715399008877035573680961016145415533791037257871638568875768918742107568907084450316560570069806497642156892977291748219211124883605042705814987743982771650201777031082870050079489945518239794765170037739693854970531256087329130144036315060301346005287177247100320411698485925972380153664106761924525078464456081611698255609174319568179607185094537999629370855267247508342708809710598887744315543272510333782127877641206460750158715475466100367000019873040885168137439329555126422231621939131101604837178377498867066850241501299885090423210152244055276771162947586981533847376491256006158473465762114251311067909468796599052331613300869635235325138693795443997350709218745742537686983512854827672613941722096534640912985069000026738946732162989340653681783207985219517346841398391170371895571556127288633409216297272604843800585140026113500259939510059335095936487400294325221057528137832337928042706881125930745913812027658608031893958432391520911108864328939651102659104075143343402762600100823315307765353425884945994804705206693853127612039305279492997117136548465572105212557130748019094955726478915113342953047140883554811273544211882213002521920141134895059692963386564952143113021049762308067797573553992552290772476805712800547106735970744972408056904459519470312696284066251907323222949667467560891373247134430385802156176098452508253912806906239181070752796666072630621991912547682057301871179489183859474886273069326750471388566607543954389645290886855666526324672233932905099374554832026834426758402408029045807458521232348223461682187015550740510324374313513767641920417291330164070981385272844319664602221785036817958991574782578613063618613034041676958166200440385030837348899663314669278391544711466015210590001132054611103827433732276971052469221753414493852706293386589337522009960418059647342899085759946223563049605290358804025795148606022745211888537259902944030545279917551955569951421773636174014687495803772307298694285092877431319970946941243768392015191453502074894617728777224959293238344526366454919001969696229982009382894509852247413828668650295324351383384931655210872344146258446717617640010018746608103922026241553983127535705518479630490949392455442129541132423387624094186907310741045794621043893420460216578632755551479969855474306551037155858399798404092587362041451890792433296854221646856512779717095085462287118746141316257004063169347329664148795407473676697593855728714349099984142285729003950143661972562690463785890222453197348818008423316190193126406289441423565904169187483273009179918714039341305992788084754517788554400960644722683201674478953626989624835105990771125536379452540257838170617597347601084109183500533454218509112614152747368407278605188175104068809585050039823622766112404575440205586049044893330865276729221928333667305179098824435179374864508110582195164004606644411555121313736634864246167774996323253001249782358366914581968137188332325672480934484852699757553136298099487689484073010969021181683789438076319593070283518311272685242937064114427823729751218267979472904550745980729198308766598596159595785292219108563929095982468755522653817798945614442721180652905363741379606936802701507951993120437783852020866036499083265994044187897350522506228042032163298175964243163525363295597688418262051223591571420588929337434748303249044219048331538510153508568937642847201694982053604413004261402972570402161617874075634576794647990740412643837128764443668777446018280203974313308820434250355739991914538983223811359234360762095670450192137391977953911355905921173099923220949557324175118204342152508149116585834794823614491914069189458144011062158720633585816760269476221401367635569177477528252970753322589562575917005281276584549571812858180301741636669209715756434276690127131338863624603055540290786866594085028481433591929027029303091810553863619743456988226260805721745987497482110563387138164324251766335109300084950889388909921797070198498271178919198624259550758495771498335180343883118966817665349793766646449228956543920387318595237634321186356015676077962570657513628688734115384926903390300082487250823502299258497941455050155244330185123587319651192917176206763459572018333747920115693862937334909614355728004974318194326119628896957364774792826710600315204401508595573381925419786528853810099421446790526432386461134434678166187700594580834626800670259953429941227319153894172101090262690306779970927425411680354024613048763689948669819329242201812420371964290104105611869724791019826795473139265394523679304247440774221314630422887226710703970048490573607124916562592100707904034368683105083603384347475198142542383453794620873651531274552677687465629066411265649605348956130161377946657061911649521724916287603567416423051504321830940802999602282266240967069200200623533437768042083751602589262477286385249630741477214399165684559663531817956103381734116915565802353564518794353349083061217651202576049360541290854779824464341578046026660278039754009620181864254522183785535525697621820014186785837664409172794467760588804845768217213491848751181181226229137093250200947370040421649654553864938506070647913980643670685773762432957776503399546094377663614494087504419599068905009188724269204175270946645300742432332152023647858284000650588540018503428252514500676071845419463262665506745422915183981403318478163533755071441665880739398208917295319010547476483621041893092120024210781087900762786385272325895714479092971262977991687526111764250402603173727431713894937868702961577000090281856164865848658857672162175765600838602856538141302178777937991986682089057677657225276603405538095940012749499094081020554180855096673697794951465167667853600587860524252964764833510575167120425227889999569939288447145722326334916032488163721911474115061916389879446114452185291200762615497835897156213599687752373938574389457378541935223885631492323556591310739697835797605877039439415542422417443894640008539086161942904641752385168745450475669080807269212757316181426298959284439794605776081179839340810640966818709513027829249830147784468765243988390699325066568518070459584626500392602885849739733167256204765455146591599273742678766021289041602812924169048462947174465001402663363861385756557323291743870554632332522367998865908154312800157199309046676524571532157656536569827710925145169853009009054124979567197204932473393102352176433578345965711248012212161834283747663524857952043950623537949554966772918254924833407586841307862123213472229286358800915558677447384178895174109128102909054531785837722898220776135920970834435322388129359463293474284824518726525489809727929770832269608463604619628675732797840385719363513427784551218096502365210818576170964285939540737902167712575581700167067812944925962473527319776462818216504579232939572740138667607890882036409562728585273744851552040461394699394066165078074093412011149852318763915266630318030914545551043716172095855770162682141941540772179607138349633317433057836200654861780038124989829281410300281239086587662674093514942418282681059575785340383637336398373951334419761058148568408748518306674175884923258183809070936299219326317885243982397902194407242098357449009501940945880473826507420063084608713026491306188128480238077148914850573817547980012787018441083955931430228890908874447382421327346817928518934459037473246157054151694600153043729315756640421994970412330794180857063090975439772369843433297083098399739045396470459142707370226410812616009399314878803775316741985256019886418368243694935174085485518518615064374906608911898240492698466246357904437619686914485813785365509071326331589661272958749572458393523310633590835125574123338243609644733049721087988088063810174797257665951428447745169398209503908044987899342389915029052069792891394405679207539794281120931041055919064366452015104845488724681366916317543541925994549264024787080317011751165325104775716800470236424846029521129183143633436867245757885813489335980907680284006898635895344127702732317253283851894255991778101139691971611349476128144360342567630559826405494557617341244308022432577327356158882006954418305928612324436619648553508356243349721157678853491822268655554604687193869277977526555909170877434428018197278404995877517613969219189349269715193442863235126165227328217343604530562312182564799371963111613374143868193393557141761075183438153797375112047220362368530212625604592141010205841216093727761188274523505418840121336223229105285319639062682693431564893153784545294509662779357320065289365386093672854023529839521690295890682075617409481211671553702372808580989886419871317453603493119921032002493475760816038220095476545707625157258988227037157708607318763798407981027912474757681257069776156131507891446610693493046165855418949230196586622978373337026705072571749812442510101527298128527384423334280891070505486010266415294325771007885330667846180217982123721628821847620829985631211334545831646012514255203673504357143816150001550963707012866751764958772422983192970439519810162194855144362690786883989491796476620384570158121710605335092950797023183860668905368939234814559142160754179237923966746629516789917674199941788701415546376071381700178011674996282200767729210133733944889618677811721961038349686804321804122258283991723209805262250861748325441646595671430712955752771141974346923458738135784152595945347252029543850917700014005147397541452061478153125553961516042519098528151958346404733007571929447522162441842986575887716651717434050031180824839476153371072654697360135504943401308254720848697945812798694754249435696468498908405505950874020705369559020214770235884948695244370643331590219097110359031373451781937433872669291966450156763066481665548331070960900095160114083766414398784455573360529008229763498144291713611301601455332786054985596662821337416093092720843972649011115155821520689142047554113617200338257130694546640301075102396510320184910485069594212521605812535000617031106962918430849338586824655889563584267545748249980619872130876842419624488323694839074250549755232817603341903139446838396002709131163054124277922737884225823651801426649108042396204591052419831955310571156348492498501772381089509814670237744181057073908037659369173876855478537017719497693651550529259189071136827352850809539643795976685486757875791186756341171847371594862925137867378046042674079573053737183022139353320421714013816394711025561848698801775724755122209045420683375914248523048330690837194224996690865354860654795907099269922998510795850300836519450516843467206611977107716992105147927343275129401570478142096788170483135649260870710083488241180062390683023272905568165136859559322174439775455626233048783338972937912595745699821362790067402011099660437185684258364214727322595627938625233211259846570085439068247424852259676830159648883883548029222475430843586951734645322055501072523148629961604909551293120405628489923849631905449580123103559786090308914393301954520790454800882520337048648584250829588325374870191707975744442972540805039064940823767193873749231951895805436825138173053194845164038026593139701828972495429602548187627295827176060091760625121421457755351515290750681266315641914184741457197337071746425292519458885490859241497632773736544044498439405916962049281677824594874120901173697488133569879314770588569424488609869538626929455207689912343494819937593340049520842793924940024380605871149183193648935688387330393421469026686836251278514114021272640849966937746910415752624508012056621322764561270598683389323429522540447201228936070844742255140546313161656350096606270192897908129884086268363653356387523222822611145906133085059496878086788229944725304550813102139500076832739227622140207470017574213516510039595340639236897731538695709997448915670408047422111542472702921468369388719446951567329446281379669034047604530689369964487964614751898791929047118839350549341873572620072719306765423489432249085973372674608614085586086168576889583401914003985741523319629078605022454539567642180264391353022551081186742043362160008841262896688311973966281238700660528442169599890240169758890824771964961795060044278632794758547980582905830139609977731879133664722063270920349656336615607233690305777158097200997909178691196633284904982691824184934286285833782617048712629087050540385529750694689370011999119033312634972578324004297813241389143219301629990618969439908575341394159364026869074794662481911996095831372787239536269403364499316507748485738758521258244438429321786175675154639443560526420118070234479155600023182950270473701155798792153079535140180409964730279766689481394143616738284247385239505520865654884387713923271298989054558029726357561762802200895310711893944943019985171184580024010689314995552591427012875184668843518129626522692062348119409163113954589088759118759533739567378481891272718889958449833026826532497559659968418334023171710907091286354408135316772056517794009952048651654529300234865369180226312243781523080939407017076919808584276593103602582649240699484672348463073924114448991374351915402655350958330255910415340148388157918688748747236949992205243707055921635369336263084533856951270087639445896497843370361643888285881858961744702928831351061914822322645108890045527110648211842688214476252453469765582399645668987348297711530462962727027675373161796371421951598432530982147434989777342367620612622657514791459762829358282876817482430102479140364098167230144386310562676828816480344111809960496348294721154626629063863053282139206390502770427272132801099976309909404817274181537622101580054386693999773644881793935483653802815654453964336061669383673571377984132693122786171800706601000037995438762135505454774336523231206537291215513548399012659174365998354915208418567847261427638274079020022092757229374608487718421732759912610028952692343781914768681150464296801996003417891924525554631661330024583638450746229165618293522202292987675893575690210909989359302249250573166938653443040442671182149522560113632530122399031413132410208012377882355467212997537772011926854592092424983055904048183241824833619118386742321615319311661983150855817272604072747657564621146544635402868500265807045053097731521534251901221470778427278305985465083000376529407606527949065949681436157966350146313876875817965805986463391168384738067528277670043938125041297855470580470183882928002739220070617442095070536495687645807377291715550060585596523671168020938213324059683522591890996999174789654760158499161499694079355370540520992386669642370975169775638499731132024646287257714287181473916984303285302680101144823597382495844195435323953851576143431179414020511868620551600224134129756854654213781722776045411090034253408865931435035500718195953056087047304365337528139233971173539218400023243457360437191650894260049361502576219074018379968888905697541369716565331942188520017767401651952627777614895285792299788748953193695351523868073785708640242396908263330255229204602296007810466911540230901188269692911956996400812186872787537395862808442887893016836412173608271794723915309968400717250089987837591504907796341452857756746433791438936076853648156419133963729303758737231823364234646035179978953243774411300189062954778046530060839571612129848148762755660602095476347102116131484443433899300206792887018931585836281615086968868525799661907167226053908456884168307023131856149227632593822241137606101861974433053246635755140023700298359165493334009608506639896615617231541335705281258857323114503057078496824307020126559967853190185467420622083022492954287777654033357983194123197899744588346916367810066501765035379791098098639206094221733587640958673625409616291252518457308005346387291996561432004701873959872072473726771480195211420579402183491225569487570292807609835620949772854312025322856550333029205727666163601655413873395092315700051348543719622052722561078814955105015627332518300949451047202080995772561488348194302656365673235670307017200870944794716855032793725884092513095300795406433398813664475103381250874245725430424256062414542449914754558760778348748396325963790596452357699709138229616435377017115582495467590353694923905512044833247882035248004470974695054083256414187128934808323264817669531859183336236337873193520567916593410683134862533199154514609620794164297585083315579576398555854113266413643371427427917281363916418715047896487190223697506091705357472782018667670829447895861274405392331430935871086600409327426992006124668490391994016296462612501644875532473558440371350746446992124988972912704922495919510561437138471283576321899513291010619885981187174359697954135083678994596667753645611959443434534735961064513399906177351453777497269164740659659994840907104469502393866216194489873805663198694687731024072507626118327909716069224764873038661506221715407576135011164020875069452189414100915472621298157473997613349207733342899172507518393186207998133019957536766131461887758752633259679096240556757144458445758764737707258493204372771487639030490091972049361933170419887549364062548186252878771421018972068933964586779779575881798138284783312598867888614423062626990695736408512665409427952827090256259164987000024701895818526652913627995308584719745725218728575553827600823588882042872238470802758807703857906770732346572048275290231882584596100095865131931406898429303359732064294881217566216368482620432134539125244894945897005527853748164018387291119982461294692969091072082773388288391586668216039758095607375001624975045131668941669964184050466718053986096167883252606175600275062188981781937928038134841139004762917969846486902033813785944155613630057857568191373427270095843898168031927105035917508046059387766067250711831580833402844567784339808221736300634055494662458324148512419867001533230479392423782504743624467463716026271220282088968582753085735723199214153025790025337168961806407957968116170193456451311205477838371076552580944251831226474638255853934126878271484030225568515139342855245546480162414149425439350234478524074727710526696018695558433571297797100004625558810770293991159894883889164555444489245291211267817594642404291340857102178333611500848821374646588466550188954075571073111295082352249626571527806195082783121589327360920371499999720996239223657548849816815311925422002396046774723930964244410364588687590890905584448225093495653653311199741839765354050170378895265757222537706913234965741657483652724643541965909442371004329803984432920360084355691572182943727182613321357377911352308133189024810345352907885221953101336325636889149880950182590565066152264729878706746023451446604739520310495556866494743435113953113377155673213604262665969787720249616209236921831034512627672913229470552122151100334454156195260438796735918169850809066629643172966413459609205355693246280846366980666437072069903202236530351637763024390387851888680044778426017717303977270572706987520169153861832077229697629851812484230455406485089406398522823662695062659068995517896910476054448584460453309111129574178200735253411414109177410180468299405031826344492702011808059112158974758935188411344895047427497871048689669894194313715076800177656874475810120399915894104126658508540291076653395189802448926528524738139459300947242361044091186181232799689032244596045134034412256296195459630341967268986679274501421664397010519418246768497881559865716193781585219049815185593480868659750481902962997132288060816364105016860332963641010011397215581378123815434860247971943261595597418756319438095028147275766053340571507554135110551824629913169520600642453275226178667823009930182056982568849757007995347665562846694584712251967545805761616595472044672057747491790626562071198689559047441149296232543466558624658093476827523476890131510976772399326799522677025684666658463789653276016388649302130272394975568759000224455274757494119901714326128721487334453747438514383201947749604121895848614910585860361278351529340306423324318039707060932496931323000315003178056334265603547449772567258453198168784008299282469027638233584963833758212531283157713694653130426170604287568431056704328864689313191449471852100779784251612080889048828495799906907227673391482110633144994009168512214533071889978228000897084314693397554390458235451432657036568578774745746953700855393290816139906347911090673785767514346458827033247987027694294413692052836224178160634493929123086073085678906290278380823375729797526768835755982673845439086879623535834192852605579582796671005172906371228487210447484794836414270973783307527671429250995817598243535461436462596922159617545700669532030126097000878000864860515118117684470659594504137936733297550978157197596352394724723377229435814439979270433588007927756325993354691355494578092916220280880490400225977921440062174815141503736976756153464757577260300092938362481284543038162679186606748882254515161497441085986482808121822227906159071615314612285682629974506246759208687649428131461898098216908692307035015024164771522358211617976093155800401552985914904877898983414503017213469616912441758044092905580934659637349487895801282888725715455869886681554790345523801959201905118467322069113548866589331366399781595575721381359229982160051255807648189947231171019076108297105798856637132163671889047241577757171031379972043649998346116785103558978209780847165399306284103149696719819158383768410162494227064966629018584309968959929259897329341886491839293224586114736981117168552192254616201027674653166610187330526086852355788353453333290979704029834632345895937024816461345555974280618061807236023061526998453783213266094975157192805379074941273952105719605268702867525342945794109494229524535908917401843509082214953067870172502316099731605608565977729750786858700163901091196253415287650777120956429293967232537156507302482629034033877237123294628834241636704211146168755508970250360191607489582447694543235595440643182927041792892005821279931809998229701125362065410821071562050608262148751059883689624102801587737831870368279914483508347999258217315807422317454830471687015854018983074839511640097731884674501787758368660199787735953523053317042416839936633049329848401488125236993929672479175556956630581510379184016723342647978825893706930640603507094916889979321576364020171827858011898961595352435061980393106605246261351017050415598129208328797982749572869756889287624944763010779809254859604002093866513346020684819052725879656820294839116434998163611816210492886840062449821310510995646599420938479766184546812753261972019553631709375344228652574031606012329027440023884144770042215319463018337152108226192961130786715231633621234607663582721602265102288273420914812067451295644357958941738001947810572631854954401325490265426462547484706041755392185779980292851310815038191624022867943669311206591066500741235813662055053623469759742819247354092295468728944348848590009692059867204573511162735408128133519237688364495361420497298305756399237032978595560673586250455569383052053036709504130495205063525442798899448750320479079327544779801002684186467926198122908537279094909766872675112898189571754413982300826664123361413642460716195565673451358504312171351055068852578249349776589106013455262410809303903560578964026654331842062049213275440979061206010800279958605440041743769209317041094404879539767738008226630495606335170108843461844735046445429679599923551458344507814238440511734488789863182219831011747721720281188217678779156917250673045862272002766198932575574543581279040663559430537554459639411985191821954217864440566532979482712851240070528859265880617654320582810330052069646353302016823648900002079525219011207931653075726140579308622697195193889242633613220068509103916956039411410942929580725202709659595280288134711915129342958338420481894480381700946336040429279135037874675051040768409209718917869231836193900556461413852610392059067051117335064563667495828958757214551054462805645176723023793840285109227831187213824305521813385704543701786972311636649702948796141751728706874315535068091347117732357750424467683229449278059340229317513411228327244369992594055678890794762019001834715111706538206044023920181376928333216732258195953447327476742441491292762388051456082089678273481345073762219188866015823145878330777759804846217298462113699814471918982145450736817846334836763243888971552940183174736975937902640190795479463807192906657772334128060187662979447334123429618059551820901325197837585363897525196814559078849520315468217140778452510683379357326029702412903686517633946075220566571411955076930461472424154955381304320087492871191052745208031966156902186101879716967458658928468831153075158358943072302275314439898185953916678870100374038203937739479315263009271326951491257055110679373926006655830393064355505740864037382961947875328165131230284987514863993902870087342387741118309284751025195462285858115484381940723639266799613660460509374652450272500867207590862454916185638809499286734957557401785922127739548905272508301072793046664421107409292403877350582157056855698849975381057098832980307254862794623685153578405779487071233610734875908576347188124108781988294011619907523166970794914099425764632294530390782149101230077811851701379962284449233676049133305500557319927731104836672474596833999095175043228184848438024809424076401011834228945686319022401769765674982509726235051059490505938484109373664611743916724030659504894282364210919488331096156282915673325490191867634056725051595070562010762293527413515030359662900829429036007369574294939398320663928841257473198112915568807367792901723958095478715224422540311315375683567573180054088063198034436095240903400624813951729687876693288880702961144827793504293267500006838970770076043145959883799546165240894990483226270186700027724030271763390069773773643950836331148098694984421023030192563705616205788715526462692806225814177055220820552428368560803814300414370578182115230463213309568720286788498446034972627181879324245252758677731989955434031487004419208566835783818935237887011799792737608925545026830594184730544190418168672743946251479329023221625049736516824237119648391960940619952442833111191769831972655050871195540918630685829315708074043888711462450583676450617937324890454280086315317876092913088122392534130970951325715211856103078167322643858897529559178822772531245625199839917579403926437625321815620190377616105201774940138002987765997144130630508234980187126755275419213066415203259942689324996749916051799223777643617478913009148728652894917939023228182209672630094491551913887241033367967950749423126226080596614109364120253275191830038939982229333044713642517921791420360188445525678063896365319828216368233081600237523585551783727599932274171071779822265103595679140812764087008747312530123918929304868260703505984013210544561554281445740832382614612803675778958105928521507683499555326157702641366825098649192325101047774588297299025746063944663630571871276533298694260184645851344890480300871469337422809341016857455787882526105576180681846187177079352015300147265748176234497808759482481930249483078026613373521060930987854692052243885440960273569344405892124617240588627617363631163693983845840365129178352988638910428178610594698770043533802153810237418652152706482215593322836948254486799207278749454176694599391902822444272739592037219470006809921714716583573066519237450878269565464422747997441445799658943697157137233985513781779029974760833786320305463674990375863878174534738246300781732041633668400968536864138489332144893617893625681564544910680913683403236150489749996014671305881950020382256405746437434072012800649077548834665059556672044971106397162846782069478787560090572800241398820116550911432982009536092410912128083864719336568009696715942760849099867800987081277690168956346047685219676101679553797087142790522309037391637870193642369553026914062345867524540008508328393405230169510444300805131638866256337111417143706923569403791586990123610580743926788308794057579495840076611238515597502667318710681193946507945468353597886619686504886399385394394418482406345419588306244386525733729240061957421793536404230816822214273277950728911800005044098103951413271940643587540833473067468037935564609090192639140264938022019520999824593880702948999546031330584044177912287607588265130635061062125333225276963943662582882554055220282531950163837836611146078141661479162071919656965614949323829856651374469265389579483421077311127131081397564348162060192943526879775796068734290392098773264000772855233478769403822017872183145002234441859760374619012237523800651256833788675743329045552960565077243885819286569909804235510666470594766025534043353440742268920505939829777981638383180185961239303237648511188719762142680930818678398587491848041381708900747567328926753963098200432913454944206646323209814100135857163357174542944626814703456009534375711853632685076460325438013114799517882829160347097661723751338204448663558495929999210165397406343052796482356417540916198072495724141101872289778372904652753446045306158984241202942158706750432958418935683567024796639587242073689327786018362870347659320318160609673094835682146218580683968600863925406077015787441652934260983900123888405616113795242749651883279604561657299897094114703964320319558741069245839955452919406691990809603856121269178814673682142401831023719354683828129026107370001487069849636368117834495411290917802294220355541788256819268542641385658356244279239666382769814561351872207141771937296970730783615960304907293237091556264836570570538594150854936630680466016775599372256552145766892669137451735394831712435937934951298564207151962878579761589395260461203040537300121952497037083239511462231409190071343913985243967400448785764574438973102111111185852264582371897225190082311748392009815336759796102882396269893898412684184408803824107470707010578423466521452333384765091515848382151179803400941331231128733816559188506754126722546819283799063270345178920046093234840559350035415995916398756874844047941795437388572393579818158047358695636329880832170971551429634892062857166972455769314526102124293111565144826012661748105958241684764023489616281634151590945972846341664859560053519842018519766406571592594054362745399045701289056075277749207417511908139016585920007903817407326684223175827812415813622443214203923281876409121894030919962200690360962718637654867800477014441557390553338963386440390863317801606401714179113317483884855527965821627438450394725749434437844737740219266672710537970161930770642053549364244822463288084367538545901508020868685481497614723249285648778974459301155414994740010716401708777344415484861304079716590975416807876968606342212565953439659872995282475176315239384831500668351587732141060277108233312349948397435300669731784433157380300530504697946269239827104711289091106471527713558498997356954004837284150261590984803916151503437468505305166979398029395257298931309948894054082863346186509751017986653493505200192802993192450116537309007075717814218550398732674032907398716105190668524596927727310188702544258738662282961297751140883965786945350730421899523966929378733615279388128953180626350571868318027923317798862448842441041719717530846607470295195277519545757416382659451892500396168531325833631837782838020744651847537575310280260478931265547472199380263933894658200175131916812783185243660920181837661432611241208250752370935022266493426511008334790543504288539754612912916498161397819270527298080606500915411719835354236379015936530172595638681666786842900329067571960841270075325577075427492101489051772213775946707890034347759963036519200294702569608768631326263991266484172362496782932138061398290380114394319150782594657852163745266530382160239891560343803202780210992657848058554304662841572861289935987145151823439941282456278685511781683777774538197397650685114443176239116994061222126191018454851274931620772843361514675636772033609425159327883669688429416784515025908951691094953037817237805158830349379591451489197836832045734340157754305726422066828130834088641278196546210891667822860610185637354515913563516264297434623539947605877920155472827176589207617624753133715713349112212848555686647974730191852708759916631405612069258965505930494718099343501056296698033016459746313741025257988570645025537653820440377421334420635150795633780339173410576762697209664105796920522129466174122700717240782393721430040290651959806366407960657293778351751560934592621117984974959853826924710723311797786776121679943744941049439704360688187430997338219683525686016033666171358468454068407299898071335722966305172866961632914466392025256385715758496430205232535839678228701317697922638601009378536751467598191291312639357330991941823014279878249480720873814201409659561344936138090106661856837991640786208347681300700169447535892509540270022824163043310715491364884688965442827491848960962555197303766096709600588050739090039712763048181663028883697720402441823218526444089063772864609883994556058207286007687023430064266998445846874349099914602637697155063967385721131143231964126722825574707440094616075239681577543759671641506938858063807011415483137777555603775274985917100877547592612299484520265602624995709130466996453522111418280390672255578703537294269899270585985827741167261055443873939809182279379084049081078273618982861317141211834763655153226986963234651683089102223854561169706937939161177166006329242877814592408708063818186540978601922591441555182092687186376761755420230373741005431776161889225611666223247741652471081617017578105518047096790696427700474056976241981945479426788566410744794716644034199369031653406992163099236321023917353887247925475548966139509887158813821106606968632115625814411752633311191518096101127903624260746456927894516666785314936517347871804141544763430651426566685026328312986534238779821452868471782456927846182949731973857832431953580007728370037226090878456834375574404787500196438214119244106003764879572852820646112998080770807252522829968208880878406567456900058054125075336663933507057591454061375065548725461524024629331932261323225733385316674815499704951138037743264584624173594606728698089273301863285043129392304503794333504472873531703853277944812487748324718259350244913905249355070691117148006645849138327754333547587858192522220201823896989377332716540937745146937493595165921658024764323255251915963489691328758344703323763881847225068182338499816433910969238577128283822899216573511505325442027694848146504329123730701927802745925715602312607879067581847681502885411357750581049706023643613971460797702359037819199120418672295123567317368557607624498410981034336141521684049529610608951422182468880911717028629396332408784986729029682099570736146528130943858042584670135690369159144620113523463820102345986976365381469112411545545104346964425605086705704204302237979378264370467598179531832060804938185681325663725326266510671260436083583897700928064658378256455741585066072174643922282308656685129607131663233044560101363275957222684603200053719775570608085461972570837327069524755423845309105393922496226062373766680401823643883718613362158228220697592917475416655811167009940389027556824894722818803604711805178043950724685868020997104630143071871698153354234542539132666499116047731170499011554202728216979970375896897852451977599916577718718118310259356089299083759122106672436369540209877282167031012609643324337685539546843336684347821199488167128172347461905001223719838700973173951477912293379444197891330528730205313263854806410103403476730129574799878063169429846885483766154010329169838314883434408111414343758361855942985183044145127584616276772028853849296251008047913914356477084555699824771463449244836647626000480960300360158748582325841768226154990932807926902190286747174516915872976513439564363459363492700277583230910053334505823915014734115396880661126538356325105391141334371179710515129913808342235440206273844264042705028298665476374590391149973973248685830069504169485761164705501940741654379442820772739518554515659540840869308169352654636747323600931613091711068709374595420713713703451292221830795032241204474260610187814624390238421182486657829456204507333804921271182723115171991388080888170914315425683890511406910096194056215817371929945970998748644163669389343785235689972790243951247794287953096896055838446401595281226515514062763832510862170160304604698727168290050601137373067447355770152614370962427283586080151853206946046142171067596146601932846023596968817684682202445127039554561267479066241928953420257562645944978720258170267483874646010408804378072998883768800214939137686925164697477632122954689339865944310380272266559095845574343901486888843010673348841583766383377157910892998310326021493278734223870676742854750699928820836178063562864338730090282153733672803422276528701832648536477609656295732796597903526504424805055172258168240302664984787017325119955753705879946382350172773608343872267152107017621293925065453941404394573198770084971960056869440124034060489647406752281847843232712133979975987221294317974761637932558236505746477722300079005534167515473884199016147624579159792209976223724188559526613435462951074423142306409305592107252436284281099647091587191784807922977290173443100349148711135416916103514875449358790498203842031584579737535904534244439270022635559797942108043987845781088263070812144156920389919785797550044800684980262279604713900205639353743616485789840649399278303008687651956913170271853070258448241262902830125463778326798438185562184949571598628336423248633162360302676556990134723593514346117722316605646750771719859158840011863987285113571666586590504255033832756789855338685871466398607538185594075411649163257906793314736638150179471382687801719450492490047876042112071635712014400960227047207901284283597334665589267875740176485578158782640548414324274214161081411515424937645062655944203563028684305546337612461346111111571679517219076487716490622381355908347757303618438271330525823262469488386822662574440582480680500080214468059627710668914471270327647031003618024623258663886118261456801781712968971984925794261940144697224746640216144663392001282066425690525522811448474618209885406558177271368496513537598212311696852317891500009143788881468264951455576758046232783432735188811361152511938230835778180785321794187402550055454856974810264548486746756709678506029165203712598751615878317953391877698393776655115078560553644333089933262728534921206907822050492787445081327234555441581543099848361419441006049365585806495727973511562594167095246979378535490069696979496883364400934414166156204253094944122198106369647311903586244483361717334118788649406973739504345902210192207842229790566861155421126960608349242543971726562228950723219499545915443483003637726059753329981986472139347951249742077509216880185255130115547413777867579350110204157820414893336424270488372245760392504206935036968560095751480491179550211380319609386619673621200377652689470883852055167942830199014945626260295239911016662412249672366590564033722272107526887099635086812186006083954684826554490835011988781136842510764881069418836431197538274972646637411386124094659970593723177403434450166021323675440943385140743030817633910246729629569229482452057966640695357978801265820510037776431632905328023240836870183587262943958970854482777739534197135542315253970420154535182555410166291232526217616009477600263713590936218964731753020463443177074257959162318330769236114781695057550885085658642789726797898458421833696641950103678049265386800910926795176419508102965466563420777941897811982971181143262477112549552564711818382562671395904268783248823215128643081764961083732043126309803351660312454430482582921789857306946041150977939184595308860089799244921371778042025334175131720789548608152677327199580975135459699939072550340153047614900563643715298836494491149800608103889119224981709854892589320037270760583871807852436518830899964335087349912613287347987307910044454160371349912445013679113418126250331971316749270759839022104967030805691376100329553085506696717172240239328493137547175409503787484130571619218587921873078104510874387421489697562269434053512952412486382496647723110344051127357794149657155964931834085457141212078990742427674294228596807178251239306781172743737270785514416279733972363184110967839526420417653204075747718547745862577502985328326460674124594779497874547040167757435536786036432178364876537714084542597897954858754590720318711378820503806778793554961616755520240864795386623845745087677687284779599312283318703218589656179797992995144947901225806756813503131258367980266564908010823861960293455449463803588784709208504155965654395051301372107078217510182391222514821531180129278583492908195332757635979002431170611371321797399495950763796615281435564706332921567921377599505773944112199942773910138506077151686926184735045560234041354531238044017608881288005640647484805349857330068839067931741064984769247826256353012688585482218645741370163423382135760640872728777284599255958654666863115274445070959539861215440750474683367388086710039641822317702530019359888448301244370170061421430795103904443107140091946919330592869420799818090473985499800031891654040412395630839996377159814133337989249299969085168194659670375888352107596498749640869842828243433620324727909937746774683229738414677090647209297099912693014128815076530214981958559445518846991334383497083291701546061431382567037391729109495190380409088051992766260392465442641593379633177491118881158379673941742927930947351741586372608900868457428706711036814414309070398223627666705399773596193262481791181031304305627713501642905078645665734995471261972101567187086925933969047462779934566240484386938681326148935673083797765293891424411079538683991089447064535006010117073679930550893746596255441911506534500307670447827584836667400538936793906500715977014861462246150968191250406002030457047885107077224149257938599861765996254263638792105676160979964333661475087386049887286250286480598641133660880636330934287256898204407482285922623674714727717229486027810463278706992413259893842808482423101744035920280551175196110271285616192831644959921325059183006013121294632635284505787276621615552151349388139485202104204134590679266840474530073162749950221792759461523084557068459762384551163882072398860869546337890611693450171765606357984111661245375164614924683063288348414247772076082355635005285028315467137647927132971374340314090215688712844658959306192216640913553260055548430835837050245815584854101155212670526331829456173190573384589890692623552255522280386542684677942972312377753112154250252406049762822714285279970812939740085091363026514714109873808744479967754010693889416651957891902419494062097305180582296730925355345955051352592518937545414430391905239559384279014736070456716872581909794747470274913900864925631716907885988987968427718173553670539405253204712756509966629669211010882009458564430370934246500703904784368620691921930150093876006416849023464957307047441822005234471707428308044310491373754919007033228394763028799707551153426983050519863534848643750048264612542334908331249006768006263459860416910118204436599747887174186104475806726495030663902156697872092312352039252243625080678417657753804500113908169620401161562478936802372355788340338059091343315127175118877689150320249384727253366302055071587178286005459572521449964923115878685412518033548583946650708327971190792948919929589661065533701962979717076069898469136831643546431065152728658857464712570503454821286879699084660520336158504828384761957442199679812063404253184969976666996459252140884366234615699752471742357920838489095406447877668282117297552119857731622535854553886692419989858692483865325883720444424711529737649587889926884449059885889417785108595913036774028145429385104901604153131694206214592051146067798425145220609965592751743826711949460931435538850421461840400766517307124909589173974867650440125440224175083356415074751481046855451287061704229086017536193651124854028339289385731633691635890448425038158385665890896363677140795830826206167535762972714908597796153525027128675380613587881763426196827106191745208850307776201041797360518716444650734356430502758978305635719756964331766970340145880767306082324308312444300863329143549377363863544180944315528743717137998403229478269944202722727395829887053943124898802733564473637029431400477920730080047398237501333079795067352051778545257912740126838739364336214200065493342275503444970731653849394104567241636759080481280110702872507790051640746471154362246146204799922670460626772894217087857301476272772014105410385767701031037034302198468787615957696451013809040010552818111721526284431523363860882307764279845356645765573213059376676952896478143723148976810463783803582486744182232288939931007184260134312239765638976012115607504679754319352450046328310737422199088363908620098532089382045590812203177857692931705877308961934276812951183584759508430647745630047511849747687324102137330806637566288078753563165282788698066582858443840909472705906637218341910973934749876183598915583853601734868803515577398554570739396093362208659688884871265137990994904719941750750760245976492603222959759868677700787091453796019807253655623908946401535609661020799866508971204126360848912691457589302883245166327889625009118813717238535072398883915430587361204653533290401834196991661752936668663820733417809468293383836416430132291228183195662150147913273066281907573203897043541574896200442645064741966947722979976718381898336058293496470388343792892907662374627776149314958132179212116241623260029114286605175601548543750411488660830820673242664477320074708518005929944133306159571112877220660069270412238496672363208666568367941551507347340669673467523120427884430200726771886889897641511334731360082228194702416959800310308788780978168581477231448687082421258634067697669806974854650096774623914318235239246810689686893608474985699834897474601470409892935104913061511772889857983569284339333918719848885967764412641437261681087094898893348482380678481573149368815133029346226398302500659157948415681342278648022857569152327069260403241943582563881866646378212397040315071745824573743006878506654157248463444802462805552325101479169712613359099937336383858084417823760300409912066569747816078600652918117513411799209004412871638099410160388390435256772849420145328351924875567767179821788811935756353507840648452157396321500460418279562709768098630025680365645249567485256104108457670043490846056407604497997557012819327332884378760774657359902580039162782937297616082331100988638849192532807175804412236258681409278362686986483434628992640913232552687097081771068378783416373706472097052141170765815272786317659507543224929470656785268664629492274306378222329641166531312482422549602509298857653586106786265690188338425419847480220325854183474021479857302042574390443502935826933987954607590048227907064672844500400000248761182431497198288089533223074213153844563055331360713142254112112881671231590053673945582586769260470557998523009032127025585069094280137186203698379886997543262795887932736047915022325079377884239735594030449191649150923103596483721805543529034605474178080411857534219783936107872882757995708591960956034016788556540048621782288066884344380616094562425477975422421568718058210387548247409469301414624195023798146857898212825358700830322600589551062964405860063677038728563578666816756501611002214141175185772908528065550148446175899566649809497750598467003750605791313246750082231778202534252509394573395394779900246089961461170918710849307956735852156733152033872510617940968058230280562916718822960004133422851606212511946626089136099576005076440838813827400262788579017228349369946549963009399976059548744795817765578977769798594940107091074406667301276283636032045039787998570547170172345060099785120303240310602115127084488000505264329584994181113791995839973229702886236405449491537290202428467823194610562723024487010803292071156848230428544444568082555937832538396209960848014642934968083255533672597960922106009375715539370879220191626595544869901370668614646764052662487047074452984017586521891481386925977892611316107916237313803183278575012959220555871615136636094622264733384540555144357821298143129359512839909933555260211094105976847101953684715606596241201561616088994386714760681173781001759522368716353881147204912261834950582064652907447855944753555569246134152979262977671408004805923625766087522190655827618714196328346259105994074798073483981179526680191165577825252768844268404969743656136298399776526572136572712924925763137856774948887055114028993249001489020383504873500736911908808723301586285596981288275451560009136175672883469917005824659229235228852427500980337480916116370336177336519683784488157440412317869118414349734416084327472115897579959042394395118383533022213113464471089533859121249393097599296631367212753147110880022352953273131533802906591868467869150481519308327420306192725780822199888062687658876284916804791292764414589794078038511737405690393530075857942635790744172299487640429250607091380389888684713870448412543177777090544145778645266349082511683305725420050412264882561605991812274835880214262994160685957328920050467863579305757771415012195007668684087635697323633746579368068957568608991838336816484530933017502228437390528480863308943436647953097511961005799911544325305972127475890460391317129663734943636620575272648433021047044978112578554202359352730388167414538904514784551280826230896677303027720347061325712801206086092087625353030048064765500248708549854415594271625766904117325008847851561523033324666643923373946953691053470962975145339686053998892983865614756093208421316837902182738760505842287464482854031728688311717180889976328520365083416310554263474491457551609328107165146947636077540471702392735044615052938526007296058570607561831976683583128935939025112795638190576589943029335988966653549173943874013323680449684024864017195824517126876043666540061991636387001649205224348790540731191295172812082894602041808354161414672643277618686530488945663972253434248294501100207978850510396416903943259967313562530002412617387332707468946906069155121184424620646258157492308536228866874763146580339511384971533903965075844103537628953021682881781786387785119434449297215634459383851294950609185631134576569485050629740816596731774069120345727491811881510399564515792206464714870043684309600543637389862314977262574923919186349227067689935121254604051597853417057298429767033207353616348752684043165703654290861028215944906780483804485323157888181435250150545516223989672295443749134491455019746949639383864088446906236601924768851456842982794753659720566738958209727406032211141602372178040090153206926820547219717443530863496055382911385507754496406366835823440687186037225461933939948845380134219416593170398376892899680894516957217735309071179824524666316630865121426732924343003714728026271964907147256268669658172793186739553839316290744233263984046919382521880241648674571249116110988144282945816296925282309639555825162053697304540452980245846934430898797875337811847749195382655779652220024861241658318566018513258387426190973465332462563148852122027771532613960089323027438016653276395035562501441778591719892068287896426176343099829098152197481424708378623657788480984730199046020538041775835277147346170088833865991753011839988409990369016563860471843508064000698905863231545708811179216341985595391283791730745432138470579795875588856274265616732229462536147065884053399240654272410791057100605200166974473576158324938832548370396036993956989997984401817257742978151980025749698946701562666827217185951030425256842910159221680863245565956274794724387808787816745601325215534705284559627971623338041471672985380346084756879253490291680042275821194877814300163804169912950406873250540602983906817235643191560386383954359048109839522176645089488196887820615304480312002287129301051174426801296136837780585437767816627194884623106374271654450021648256772652821245803313412877220965325104104434320534730956954693699591316881982835387563145885213054691158683499715246050549246060696513633602741201570657108506231638101362152790372233373823873897924240916488295069298239192911956642881257340718856008848015308450556200574251025422386459919643337143496364580265491493615057528355654832033141827153696783591610154457272733617861852594678829567894568987099778350172377454941582901021346417229952939660339058611768649610812261434346951266327440991918481233945984337065897489859317966239869355651574411089483419386242616718921168997436226532774282928089667708756311115201728562399274533800808763821064175247579817374472554791019342688403181615259859474720866420435228349452005768270226425485478401081631830748131070585266410747093583378570511145982098945019684018667578066523837284786409942134041968095153048566325660418905216763769949610149351730286977137129641606041492561361482806514923699901416714869258603376817261674708230000557382195794649371214358899735132650426803095598248135795140734191237232643402404944556947365406673712341002972624218889889756040663940149645498715047279006817845471262139216305530536700266799346744624061469904501659468628021024409231448699100647947028474017186606112945095019185653600751046650789711460036448802696505967816967803497302383980445356934054672671862621268529077028560282232362944512923932143352517533043711231381885862037982510135333482560885197599391416578689988685168437702178284238004275371580575923474518878844118632416830645990470513168048453551936576308340100226015913104110452751307251591733863659835215789249587275658090032118152093103577422803624722503049678597347327045533589517267486501529327503610362119866717156836809346262669676050843382177029683576936554112685285763254905639631447385078320731073658966204235025459955724890944378383651787512021836339567034533119813218034984508712688844827152800865659275666814469480487080752627252705251860995895952493116344621557600603264625210401881936580825829367498705188993401710506735410612992332972316915459382132293819631463453381312722348883297383977908023542054029743520247598052939358197930435657391974238352658872909296260162306717244216411277635128928407452669099994400467951060795443343790083629045072704766881240066198206796250016308416193270024901702779684173626337301281720480263994113522486447608988090438911434862174802142325118577443336189227068341705141898864449117546818726491313035140917375119038417565538427035174336750576479937701943588550495108136371024212775693728945453404615592952189886634591588624591896364303960279372550428590619821000388357930627961630505469371330476439965467528124717229427884742619694934610649784745550102454051698263793194330674713496578573027280040317048950252704404896863260120544275432623224546471310223020014978477298560716313742808915341657142768114752530371617510798924511172045625211037666376810653747019851265959132631122429532602003183827440944229964362483656278148933511075971427498940183249770774667683337715758363014594058299298223944146867262623027531933741808052875827842603099323481024674971971441294518024929972483479488488969734469063387278627666663253936087616568757031974034966788850320844222206161634543892981999608839466932781640334758542886500154880161596050707678961944866914132072728586371656213013105919485211661609307432119042176298916434767124793116995920306565910285317943105327694418465233882891246984413194955067248897490614959905166186534540385689203170307262232383328312512345600326009185298873614248572380405826761479532243973460455852994455246383064239812603621503206641977656486978193750659582665517295467513759248871041185711761862328448361802781718670585186475147881704865609716128408812029172229984149432700849788082721318514347381216672736561303504990802628415209149194540521814299494906093708513021157369668802314865334426337861652685946391332192912101436654891091678666798201980710326732501464160938163180347010514431030274175967861747767744029654393377623983762278854890677103175597289649998506368191186401474896857139491186767217828276894227641318830427388488612617507212360762021465890734745581606318947041631250223278712375677592843400707341121445974500002172505557371325806572961613487566038393327227775449880617546974543935892094010181802534768978597574659167205189560645317284852811851179863487446425446313565853784766784619586935720891572367202724220414228222867923320982868861979143682088022866530722736252982606792725603038336964151631996240526575710254844388490403296181630702350206449515659325026202107368664200863641910938674597388015996604677139280471793845101997816040767546759825510185514139112462787257182870526169951267737134441115574297253845942836660735342213107505094693400619104092072279330896045752292695534719626921674363567043038084545855719724316076458315150545696228623598311777796776892188760887087025661976361635996226864995605738854159733342662471291171278657578850174039824699182912695304416198282268382779163666659368474911951445806834878252639328550695814912531680762671615855874670222928599130132523886821890905225597982209991293434438921619824474642515253518666034259413695712554507112723875686169385553428232618059759762185542522840185342881820770793866445922345862167695589047521434743035522244092537990831501404989501582410460409127068542341610112038528136113920331378942675555140668989643872507724869948864750790855452424234128902516305919075960449311499911760010214847258090021778089328748218872751664747865112337141850883087554712712234167999670932512125499624037544241742112130433549982906937876849257498689163028148751299831953957827160175109433430432760282419838181615804583245666946440441681424966338348115419543446634109911699650730703802736405136068227025468742431127663122814205336397015505370712569577673025061028008375703507365588601779412110823499334857239383378060904963716063311456580035959180619813313904264866672340858830893882220549066415701784209079945285848507894678277680148316153348072057599358042993584397821482970199516026789238702013216808726267099342033735807579030704028080937919835403060808406484967623136251109298234567561355416954839231179159106981852489781557230804453572465255633528903110746620784848891610364916330820085381675048021473647242264105561446452244108027582512962627906565129541207927835031911187088677713191474015912837808301742149008608041463433208064135921278571910229844048630126445631234852078485712189221528136046914932840477956608048451481068995521250253676211438151040342320689171741912324745087339368627686870561857939474197790663262135227877658681025112064527445418208497172271649187995984692402439859652670381857811943372331950944558672130001688329779955573632372267244430876818859659464741283146271869489211246562944765361893405048163484082197270620577742450186790116519200248176266037295351750322656537321132227373151477482634336100736049314748028776641859078956825349211037545417115159778603384716096080919285835790986518785990587121450851764945448485593390175671829368728947926004275574976543340362184355102717622488231120918269774150905367611507140959305532617344730797391476832425221916364046435475024580237942353600520073411906496449277848423744677784921344746761810000461232270826391209675510995456036409345022166765641050034104918750339290258148006240366277446705530475721711455507874116641456803986679965382586357351375408184268598355842479335393882450718915034248344906849944932293148736404239450046825580202656888919658962482225350525727165501537742087284791480993783477175894634654462386098872716915715353647988225792335054147541070549090969288209947446729787728451909902234244828619635776848963871743913358652324999993923083691073119839075299894959934333975683978176822439266640648383505657915946160953369176205045631755301974429800558314007533135916594063605412090426315240902711106708165287171703129322489747687974522953222405956631015760348183966523418630987124506624518093412966632473176435319220543571654394037139519506885680333391723008905224816373770179379573952280835007792945432701470535993689102927190297908804223410848402096901618313761154701373524568969227331060814893291612629694675088656833270585923481365961926456379801657988042197482676023782346127704563675590925809101168202487334131115405268950945948812639058889797690206871744307430019558786430137518720374575166361568016872537499685181395506260370166430338193262301309776715064660222483292015062748134091253263116406076768599068029926969940543472749431612885839086983589063553596480340497878332734140296259639688452045377510680074686361114121876708967264749064750989440545551923946508376128444961847945248943549727804231761282212961393612216667990693874378064769010760945023814151346182812738829524302854712484778737242694976502728866829355918835663994697706366675998665394223774542516393845367530199651736568210580906379746109662221697110723477616661409483166244321823496176495826744645114810233213241221622447564101825962090241163224875005141247346185394164515488810255851502330883062335694683286609993463257287512162973931928453229510964747381727248862051515648518437421081208905662519382310022610024249585366126992336393288559362721235243178173124983545155820333303489885791647042174686611038811148308022105227406495243466163663565900321430938273608604147096770364272936599243586380979286921797422202864008100020471179348893340798487677871358396343372900781278249612559056396308824864827420941274249613992520580741245832183665993159463171466705880413597900355415530480870391974419214343322656382777008954637123913427282988040129283507397846878449145304617103144632946704971412034494389556606926904630219256334234869539661424010906168197097581524709731510459110731387847004611431008568563799324075349717631450272996733157471319684134334587391402993895904269703838730425487255516501097612494402326151144885023681606220867731853031019344638508940850703341859599289846622118541089593709413121657216748779555746299380443403892108501378174455427714134788660058481348969406560004228615148849236066679026069547238837335659606907524863957880718507489905396200050166646917382688218737033364866291570991060042753366176835323068207793974815898139966596184982725332930124658671593912904905688639695192062699899049320416328604216006072544121425200592209313239298835300987440477428806542683190300314755012870897949409727145515990754223778503976571670417008244564335608477720628070933543728229932556948731317612754582743222097949303270743011824587635646243447998866672989993066340500725093521585031690592552851314083744056354693253671432132011801984765048989398813287391404644349463568774420891965336297001303944235379449142119706426233154547404392034751218323953771233513239724227826450291822130601965656588167452522418146220921570850194316922368199066187739653413559930843740997466728715934946661808603468127645710435334275000245510447642490255180894907571096236495240540501371312464846727293811798429866779625973806559584992761657437257121148418755285558414243498339372144174768106706635416528414551002399690132597859781767453715591192796178794959389594122783925341857002613767134131998191779350835269851425648846783980364807537680188615716069352325800398074564049524813274281334977820920670644870011024756949450610752502346696701424888139890988855080494214998037352846270747953819839563469258676915683392648496869969025935613830439981895270055695663774348973703865201031238090353008086651671319674796611160169816660742042356320364113210044200523859034395697554557565201164823473091730325401177707783829533537561285108881339619728742520437160003079330510175269751349760425231784572021119136637823541966451669149553879156117343874582249399748385833931059527203851801290851484426230199705108300894925557619546446030827507755104171392702258393974242119063747270703355506086759722739666682309023591192550453394422545610897157607297504892192143033738454699598630277976563009295292958862718312395751292307826160226733319593346287022722390390183348663235991807396256168443421943104703392112946633465039050338110034034397853342993024859960660237994935939152606503792796584257628707078275779185629481656240720542812585256503191989606105365700568406539627553335485848027608159968235735719886285802646274946150528877807235544645091871397790607326351038129523234360520827032109716427031736500231370712339647052548725506613060686034416438895599648844769546759521898982895202680001760518862935696567577283106864683689366875582530417732023669127638189075858508893568950944265188844308092204643878186846117015938029670220703322527991942572608976567775798033255143265486978932165622051679074796391879399063379883111969427740780216796797626327705023546902301813498612686353736876708480017451985600211951499595893877479414052787536418347491406827358079545779463388432553819583898558941418794010239541643965598327495058259292463069960937408726442015926361909672239831151537073325830164244257077933842041971837954290519386998429891743816744933489085616007930439964102263090019403536749403731750429704478768212917395370073765655224184137928153935710502385383307584300469284423622916022522471280793363151482199094168400840165539555236402964781997627738788231696349801540968923355862988604537433093663764019110106423669644942027348145899486691002073769092034015674314778660324920650374757767370888022548965587940543853435065059201848192090235021225419392764552783984657032865516103112723895131607856169815527885883264356438270978962485463498831082003189153219767423445621190934117583813895253030614440212604256575207476240981571729922848216734211747858463282858584304992388127671572458616003606490707526165408895463198618114686434872465246487697512211646645993720401603324267861153911025426628194774804622013762001394660889681898194767453083613837968460694596425799387723131720223946484238394898124221017090269796380261233890959986453333520317520066047706136830484433164189583847638071236962795472218968500908719690817885476346098458853326140556126613009409064382283391444232377505729989734968924743285270546902680548171256323633493646488657286695021072398356320534404268533473352727906797735624840108506038542250860122665092626618391417161949265096794533712692687796411051560614827663711064348012217579540884652521216213429712098658225175958954454431783418287489829938144798470183552056153347122264404607785057718604848148693536216292523041846485797048836578925316357213255130587431189975007750165740728852137057520375239946557359735569286880105592162945811773437881336746862445763545135641768713556422103011644909456824584353775270636501155524608066920495554796843639136541879860958067148084438725746586655678939370628225881641302838769964336594985423204362733578466731271457008597511140782242828397052011484279443381751764436855004983353494646440852174736913071214711642645960326110239244941569658504676234757978858489955372801697118218192692821865273722950347111375166028381956271119527176452848854103989017856728217721807976505866690565034198713965535628864920257178410627791091325836272148759684756682335020158063162115795447156267242926654672387205535731210145731700640832222370840263696917113845480732848159717365354979589963996643506978139662584207303991887289946613725455031789358304366453202787942806744930366489564550815816144920045839309095816937973611835339643571809088697670972815916570701753816491343532298458065975188774090161872397243620969917972675158525804255619984844803555305988614903182958672391044131050561685419622470063982540312174493632590153846351249128167789672155357194655059191883099963875163670988526140614648992975833099472393384653717587074471182091315718684556786742666155112897504463866520305734997920693539488352195594888512169108800706938001467896816467612050459090743585701378735334627115123470336272064841008569921947149752661458925015396285726580067024368146225236179299007526660394694886499897017290165049446571737212515124632120767359050496378092965372412812463275283565031569264357457954808437584567540323161767797641214234703297264012728424369892961905235902525032933417361824677459744710510207933415471894324990696971726505878381688742952857370085788321262760153477310002986131434821244311941518971642538066292168037303551600207486300438116838114118800961791385259476314702778253770435892783257402984658376516126702275193149968476579973665624322219108814630302503527445808087204382370385741539417646766030391212613639594587557312338826951333281024575127153578984895470381846821628461955561354706767327568285531471025841828262362666992979672963910721050744507821487746611122232396985300180284911104831322960721817137796663747926749459585145080046720500550111908727089829096493945619108905528785803819882036548644742916870800766316419602701089153601837790024895130516093097283981964443266088152346986151850268091332316162024867454638436906764295803487904811626088535866488422503044590981749488036008354187345430643425649050353545356055995952391827993990464653970665719070912426538663176432390926167891605582915793047111207628671667605396229656059027787014108681173184571775428711855303885167977982489520264942297847212160627254865797893473035115256110775757932121405906370406513614202709467114569743920960877565832826412129657555345362456081111803486395271533166417796710185071808847204476606381130109986421117304523331698144891039711940194738928051675450636196829996414451862590284105169275742594138993605485652892320270477747345169532967091343776576541085202822479792456446223810944275048165583907414082485403268511965376271069462097762629169288062263085739383492583980621009683930373202634891240489419687817009614890495332956088221913361948138963769964679522948211914153882258754006840292904354851156267592537529487156917672322196801144480680866047871195815707652997138717934329632559722120310651174680217710787751674872158153109452962271417041419329258763571694275191579136452754803271266507760090105359466601821770283465171456220605620802066066944187475417567848826613330469632362449997625983947151600307064672161049689566232827801578692935345214084401958850795293168303288277378161892267877753217065608859482159988790448244310090577216384806349757569882908542034877774722449014539602842147457073010214398903578742468381494865198292975532249991852479284151310338724699861190005626515177973331268031464648362816310849753167177781030932783548214017520743009842012683450591432728982722193920570984877416695852590463948956416299684958896971934269273364793588319947121537170403238941941109227234362930838886779402848414942407287153262055377856408827944094400537791791878580035718038804056096098059493290576676727950790405438075332627027281993038796721579042138629224160629314867256991916558149049323218229101902493769198931399930936481417448248151110528736809531255505592163868154217857047599100822517221038128751664256907883707019048003933680533918476667514587723452085031599867108327814667117456558425581393820236038471030710685211240835787877484707820159342005618072275808324274125660903542865468636373899209450800486917387629051039426631877105679282052641802330718825601920294417718639708975425203751874602719548457493994894419350704780043493711715508054187296380565360363354829511093583600208900589034672074202907868630756925728758933937499887591388289925484611751958634686684253537244576812021884148345354613947277114150254388472365020133239628808356456370283549348133540455897051011946035245356870803954178719171080001807449001137937326393165921402846046390548204562584643334388191593897813391890066230476557086989786314374271128319434330623644695112607626258279838452608955016702571660327917869018410615553959429455232439046983077867407012255151822058058910355539251611697979647733809466223112106348030690580821645443094946310669130367491325568435169365420822967819232360474565371070061768477956328467102969318665389894115776606897690125623600041313835843520861344887146658292765610003430590668316582467976768401536337769811497179174663190332793812661889345247225162267703469541745145426201811809915838267947977429933019926543027205911198673789826000131160009472145484776397170273984074070911393957515549039046452655082052003781917274132051365092667931351793055709386636722475208142354527442076468730128707545296872974155985146793411792124564291245795856329007438034949788994440751135280617552247845819075967529196164406180451952897746618155965156877309083705988258193793628039209218372693438352588056109285733154160288347385445657863238373243904450668319795496274045753400098175442817464920333509580433747201564342216111728513284335733046132595475679106935271983941338755305970120358224876674641091117688084836549824784110129748360954384593322040100930054656639958807352341551051269197472568752110217129893876675004690442651250461636217457925020943420691451772992385075280418673134108182029574933274106189376573075182782411769792532543937492763259852901742326104717399346162331360468327972128972844513053262333019263360908310961817453128500460612891194782508174923001210843989005090077889943756879708985107202898171647756476631478111853026662569863967140702329066633496302924653752166395075987079413868628635402726253698945573028345356101876197401682080333967479248137875670400953316347660024718554203608137953106514947173318586319806373635367179245927796137903273568870108562944918421637290276508981858230018404889271965682740327074458896937243738413682577400257205202681634274913433454950116657240714955356319620763125923065596256746784131268701751571981051337925511679005615748203891375370026823957120504967057635192874300045361057832383635729462698660158291746419586613243214829781669318866826327990944127828787045299910657346602772598325356826735328938467418870354565813816754870373871440695786648948277346209083356521404258954647807417628229491975063123362633123359988962835928633216502520313292328717571520205723813496418706605004342379767802805697074642138460761441439975146916463101480624916591777292090133032881852276846927553905382496995026264036743126767351184737959378317070667271422586565004672965988876512151264257468812016387241594352758661154175115053197922683040733940401299704809488463291629514072197117144594751702651917592835338093877944705206984469337734214828074935385071833176452976250801827961978578303696021105424489266930231464459263376475838373352099273793753304638303257050301622696384282750680010173672393282715004185170133036487736677398104690495613905934936883874108863434271834884862783711621432617220567928964972430165301414773375237064023042778497555672581184714726953014770019442751192865326944109095816947589755868505479550484451823252236682344810852449733315978450549128767458594200775865900873768990267240390611402620865209199693091001062377346565920935501601098947268049646345207672846383836931564495980224460610614527696667793265292745537088078866998388748168528280244639325987359948919156048887802104683408037687854406861861257997144326537194519891754969549260069359863092427812407147060769473239275482196994059394025305022380408337319802508124547581315192096840221606536642054724056466232758893675237115573136695145490198123659306600354518837356014249877275781704493091208917261188405807215175773929415615589614758345779914367540865285661553376740924682101688031484481749512276190193783068837989833418266792944204244560510174471686103916274963633705188966206372018919796339784460320859276301453453276412433103341664539761287013912802510981740265700431529362476938208364719381902532834893902666665261878179817631532879065499050894498220247017031819979663562616855838345640179834304624975796447493866955869079250602604173396219534345283541300265282837092579210571685144364609734889736527020715744405445118442773128417774871199336803151546817012002643804383496720124635296406825686385349776163386986485781458010688577662907632551199192788538647134146661434123651987785736361581916304485552355103393213269887267261909910536221685777939463347407096530174205410065440889287303630108013604568243250834880115140082507116229369659674453439358652944175607766013805930275836393796900072569089298672107337764728845346493482142063316319437745132521692510849462089653709912148431745388623913013859519926437596367598007197221443745543516522430281889500665247213373301995602992438030396030135656069880396996423948118134766213545533039153763723122929055926471212703244348621915209740660622500484072874989008857621413047278358503649236419135530016273016507714849444803794426435997666853078920790193498313804419791239249178905095232470244393925584228077092401299493396084816519289489087715242906694303290834369133000398231608217621066599768642378445224236737361521374589291864950733782219140603139604795874970667137175631086204159441424941713006397746002742382536818163863016330399148431737166076406235392092360692940626125903659098151761828030320488057787097204456632001705158434064162743777552898876602903559588237100050365348664230012506990789881649373282907318852842710453519336512407470841988110008761087861941394254457238604648585711586413351971924598054339392856583333270100555166787625493189913714521039949565467545314848165062286081930831787581807090369113939894114065538335430124540067801921039862908675016879078796883789096040399914784776663984223685659334733526277058319282079810809742835983328587635415716254189125508631778963447815946480225211773374191597812379849756332710774334986208998513770893821874196037799530689091822507156182967711317752078303816731421802633494540900931001283649990844387591007076984913651457971754210927557016964804860775251616523031111665771643051846995821265043047039645642560019276617034348591543536900366012996485962575531116366080177670915800804761902186851306273483152493944059336536772694346724823195949496243062215778820297905340473195441936855938217701220461339912925316456307278634713605196898996222284643465606725297565097670728140263542157858545753514325184791317076518485639231957746822062474199856878917229897837984962576628869312002042669200923316451295496900716457135727453230339428542070984510712606242075999536848816554402715333573559388230545959952294128697361333452347908794299074636095771918840988215148569846373853189552880118589198096020938398815904407668415076075816386382794485441969664823740050567884137885883778262017819314877195174366103320315169903499864453223927524682906021122576727638506718052648593238084822867511178980762486110050419848386975858652227065739272051590132650197315795776195182298601000458433856273418957410809357242046105500172835268404894479646660974641940219213893192994650789224743466152967926016750399363473292305849764677362152761981853390759312652958998937630041065501439082241607234902172713317451461980284147931443309632915706815407356375639389325894364498565389076464388340094373308616301556249494521042395098601057183391608484089986521774553362787440218469196419881670402085373860212885662508684842084877904281573321724961920819531642735676884340679722214510086500822886741340934155246172941843520668912935076134667338048203884097647914321571996682992129151551182209517204695908104369419206894314966293570760527286832186071264329758138653301923534247787702715666848071537981586340150596841054213451458190737102937810160655442579445397950758827898508856986133004916148637041523295758818571594341453019663272458109379620928176043540573334277094077628291845574859993371410601210177487987210373273609160573717861312954287883757179695254197182725765721031406536066114939974820699720363587543283792157155505305470046224488153284154577723133919407765664714421905181565090446104146612147697337152857144428011969040987417714545713497930427654925368156269211531165484437869858315563229146654064541151532990155021491720126449098592986056540184025716425977404438063914299373476020932749690069321458071905787022060500151302504333536688308988643190169721632110704096321986712422486160911378864051896275436513678319209389486623302894602966674820578588111006207081567422426455040826585325635756985165975323839061508276420247189675675198966455166604682295607492506903311976646426152232007620520762247586855654360925431453127043498026989562859326271038871347273536268334322170945492050445054606348365241044112797804391522988354481892697586224885582739419434726444598835138739815036106638375325874071184141422100903785312846894762169767169701078035456913576841460656574197871155351994582533014499921295176651859682766339608318078629586832005386679729481030205848743796777897475837537556942891404391859302189353402370590248564940175718568205148160727841791821812167032832570329601539488893506850611904625929596829123855868163861258549538717029999121136594958333587870620785985073135350866305530081435980100539994205325293807578481491564743804561342262887012207698427455807722497238323007666928289011769983753159489098297633145905915435883589529541394052819004369831918265449594285774071542551721632657749977982043124471503012206762592376264901007354806275839637168417510032229505097052282456311951788424095870470685256093056273609193733693726851695895136727042991969439693228776659583549524305565126714256333232984958857813994137197553864117202960807451672579203187913863845640093505530185015253241891687852122112877736116003400207736868195750058097830643764242114294498445264176364990776434054914887327392872328888533207327123386031335085890201459379155141940367866047620634612201544851767695438272339055433374141007739803864712670844615173874496700069326862655724520454987760080127631111405289652548584293363265451540338285668144173044673591340939795705433467993381486518528868039394678256504824922530099598250379004017349653729500251132104824685286171378879681904875030513462548850148791365816753987238829039443345446018137191585903614076417064214365425731695780382573024466585097543291841418352477639120200415268893712546328417901684833663179553488156937188428433886563617295900596886154932823069197897528128002414165600235192947568679727659564768662578198969895376343682395337866770825001935385858029521076972116770852116347827001930903550378126150708761811850951788450678515768557019403730371923943252204562183116565667831226269674752978691193483163237199819531542373977580157562881737340571727959743492133529736725695943418013456626032687853762924840519418008354213869132298360680898958163839891610120185633848896714509181034597174563841464614733390677497091175528503517804026738708075100332573666657885961689588251633997684377625395820916966107667770444714163774396975215699769281763145024496782658530547055834283764324202204158407359337957876713008820702539204817473179958256125652121106081036880523425635497478583314953825480423978906915300893246405331922505415760909780276623286759670065150405495034068988704242643526884954298287069653442069495145165111096101261461368504980166859497337751412789421851177222596309596560107186288011300856668004417340192512492593891556987787197847137966655301860568960270676149847662300956497265113175142082628454442621667753302023221837190556922272034907154951424459955780878863172798480324744971091719002966969877019727154862165161515388776728991341331926730075627032411543849822701354820199316295651988056316087458231726744588270259537875062917866151330025016646476198066080241804471137797467708323609382361319010048347626432972814054875743811752479498959384168806279669367715919253038147332752079360061085592723726781132491770059716892820347848790723917788125835497194334149266597779517628010542818492448152258741763056974720221352840588849050040847591898130808647361076134404450966913259396870177568171665383724146537035456825269993776070047733586038909139837313707388454874429911388009956144758215164403296748656308650563767882096643468503135955073128750675558958330828666457234410186086697104932680155746827149479669559512531515392411577216619424460235099212904730462103163149433170518750415209658667544409823523315351595977391081192374073361102989976623126855538102470547392522177847642937628907580387457158448679666341213992696547300952801224600210012069176914286113011435097186759003029144332360415914076378824575916375656200002688637649122166831489825292150137128403413549214748587344789083892361648581995513879359890537892001948790040522014113732916635433749025427535469762065932285061803834209837981893477953446230280214441824904434074678272658953987079046800700018101302702467472843079909541322368104142085805578915502778586817773594215328687215744477401889061176128851036765909852669421621953068514146228018581817380238673146905342398331626559895968594259837474163489667635739616626211914142588078088552933955289040353783751033823332519514994724877755106106030050088249691332264443236321038128564971425639248110506488437815766891446003753541764029224651960844971201950127013585770053583439174310534847688177194920200866163687582793507979145006715912838252932087586683201258979521763192232413693018514854454477624148506074483852162425383979359307872751669962405066287027397335355508875044781292310216954812628146337901184210406255134789699673954280546958972493453634706374421795488621456276491109212273910287679994107547736116892236025549057791507239822477504830481965399641558656765276316990580278127769790067209468663657072638544998748295587136135688534443739368019181762431424989284502115354807126669649771080321738957113472597510049370089680154451452732754857940213713390722274070083021976172418812408063719060522608512436825991395675215338517972834190481584803025877560654182346477483459344258378382305875542442729568559878563279672640278182877910621525988787365780807918781639580244817230433091445294638872236959682387378090124416403892153946521629566427508756449400455229714624397728694223847596216163185614968942395314752784939844654550940693722188740440260758013079607147377787473036904240970834657503615556917294222000300922123754409536439864011436109015336374958324958589487733198094895953188550014747730973580749277466455298597653845633447778823112230946308025527575648166673816928126672063710591913899640085209237901982728920272332825395327990563837707972877057311141618862709248793924708345514740497195227232035898872212019785814125035965876523547596653351511710869304418685537196083354724659349122627111349344372051863573888511412161123654954597343620764300627213518665463651638717584237569842153398965997468227487237889534152096619584736761319170941351020784872168971592601490182735160987550424901813057838080371820141416850612597082701994530309238971927131729345180290247592454080601089456088794650803354604136997670982534243589688154599233922340959186397917922312382611278571138067802280620878923373243854005347555330252626393287519412255982300492404262840770966767112250681269873417874153808718733130783364374472171468258198427242417071384117270691674623872945433757973528959422174615732554248645824653821206686919467233641396920528974407314037429260321641899666851000283592923038247175006409257246481101206548731650894625895957643421791071298961586745132568348482822977941345211193250606336376010112667582079291590964347466529888286137208921969274202949005042156546081240248790542546562455683950395112566950214182843021858456011828254165751059438892410229647062269843011624467726780972646368289900723561317779669402725771295051676720641852792869539894234442349799956130599865588806751124713482615135197961007914295109197389669701935977566216365334968333095170624028526859647203000353937244627649931338234620087765181686531990213049686331675065771340581644776437946467447856091310551800319974566560970375764575897491202239479052449268162059502341207477808457707863727259452928271934325083976049332731450089002745511064467227804682753925332199939548970418533755392374850563037166364703758230111496298448098954774560491100827713966168894932181649387297650070551568015826728545296169022136368298573323251726001570091958035312365398637157341089023766120853383797034532914917880797789719733068469611787044834507678792602463787937771611464931719658489223414598601338153577984531779940123858927105929395532919187793391623673439063903123107287442296384416355027560440126065616105529674035962655295796481577171415423223742648927414942393636570088758484812002105927178588000894502807561760783504711932015710868844302303122356744210078813708836526157637476364840604191433476944026243498695354522330785602233237382614366740028684213067362640913905476550247950857286918127999361261681305240964888240146448233806791906654030989403613589141962443014859431024715840002981254031937572765610271909883553920435239382069798212187949772415732898742976192398876141988935244324914185999332314479876714621907405130238709300825111466668968962688133251622196477658000779530744359481006508735871829884505255646436724748772742396622197195288993430288278417517016538805595276386070027756505801956157747200108207845666984964838692865162976452435155641850894989530180813097622037453673242715949945124796806357124081525823568122853142448430654988950832600563296834330224456678494028169212123790345813451658488462307473353549224860121006222376908772681577720428775758485427328902741654864822087704091451765730067918231315746979543523376656500337133491316142284466417706369226522903107399743375613710047233045413325841211161996673716654791168768440964469462985016570038243596961960282088257220239497256122080783960791440658440983542209919058901152749825392376883241388194252029006481011060748917750701814048596796509030651271676742785062631864487633443130734591503170313301495610371949422682744422609498618678067763020177998845398525743284361062918027492934309524589608875215471974951505511712691563840363189730239126893175972645902752320917035391244029360412766195260782036693194250866940011421183811614358830948632979547486531162705383962333173074771196330404744987816154940410323143831245557522932965829871890514715337654856980617343952920284195120422796607377326130362776829733812568744324107953621932399576392916301372456590913540599886233998105924187506321972523277218712076595208841778290008130923064167964258423650592041908296393300981266176209390984972907648524824105677447307194385702112576635902072392243763961364724014723165691968429381425111115460888694885997458004233344978917000728864004754278613536882406370568755226830152448398080249289358727383171980147037079891224579639806013006032223919669657011181150782036506276720700319699848651581622114526824858372909429472577112932562064611307709979690242594997445856085781236659034748295875368679985301796582024212623202596883579161704331728595953077123466586210832491653550213893499720076080279318956163760395504619150174789369695411020450196468781136083611364635457616829187279243754348206749958657892245016892623473571615006819991710884659510566700507685805103076191177842314259916266170342721700079179460784785711664041900439807009069853974071728817928685396855817495409618421872506429684450735025494365087923305366225570615062691588983227059882709209731198470887966428121209549055332010128747814108804394989123406950121623253166985431577642019862512388878098613746261136228300439906991500969789643642469647663538807482655807530175659785415212639233376375650986051831845524717411954835732692616826073350996707638862724799400094760524044822037349165358440697166519937038447798529843598950217112269751736953705225090959651318516902616118318132281260889129684176587983690325883617525340824079455708188575138705360829750593955940400431532414992017881246798593428945134424123808366884968559343747990846318563700530480761680495220175683885366040396194790935134389672004630245007375680501061135061453814732890058188988149270944368491746567059556310638384897313932444500378914418370134635067144282153311448863750885542797340693943876831078806994664582992701779530589266306675772697604134202033694398267458851642788544623005228850116021633836948064942716662119187465041843165747103632306955910022977663202161079181332429516904193051991795249484135040122838711992428487694246155718447822551674498382601823356407780480404165654696381790254649476381109980254689460788721855866016422214272926085106579697624667983741330380310246938717237983046765705705741441725339239295343835584168630027899635037910194069573080496560072363620596922126788588185814878576732672120195758806681382216310197818475057371593503788680652644630856582667182745814870522783933969256986227974958802283465533673317645944614278564111593989030009182192657167212865405921888373201058506022760098577863034426075546979135582050253891209921426778029557936921634292616776340261401918404637145475659406061042917500555699315030546760707195048220660988654330107170218502639239641258468863512046924188797551241128754777665839160971668359194674616846197297305279972946716818236221490520800506472158517466481790623812531442822568802362305745611990189696794443267259465515495576478177286256057215848345508011472838461378289825497969798709786481792139618697416728351818801078067109979374359994193704922899999624139393810666603626387878208505968626351538963054617339661613684434862636949572618836275416208930732098181057620603185650656670380434993034502878063555632221625639020105380330932606792328821383831514262148751244513122782082250800322985772609632444499499596611613919645943967589392467688003996758278194185613410108582082418755192232656226902892038386115800693788286089812892213002198387353584998229539670306970783633384884332280082919213079794481778691613054487239630441226608715721540362553323545035173212096216693239786815720693550552560572465447466499350660944336762762330062103358779526899195856333418907210223321658791149398463656657339513966642116492464080245318557709700205412675541591382801305869261958783182873933441642597383922649717078777305360089477647131514441585140976227648150862080469221305133449349683196195261149631592676017100157087626643075691243578725447339992938692452890131745471099303649036635191600301487678249195352693943917188518276180951995382400842245975851059161607875326807165283211171205790322069240716803333950676187586375190052118523521600038973308413507516545780303315357639024861466380328061352941273998125519883717383339641559660585132523641514312057181702575394303433775356872285547116586761997310409224027981229085041233543185560782082992516639314395432758680838524823681195683153415215282367005562616063891152164864033210953531042732934362594567312887074668303221778456337400034102117667885965540601149798540192985449162328552075214802319443662531792900250969445333574912919102010527357600895056104274999250375161808664366390516854142117671924461882262243165555376987846626616130779769503316091952046404065888208016211751585776430206598248182012303456930640413858715615216392069771654147397062917403403389677162865249900578787951159344674718562746054962725643962766452448459271153230135198469531211610148821011613563426973009637982504854296785899935345051517867546261602846560715756224799556390503858337757299836661209765252020684410942114201775260332436304247901857261787464463384798053684056849647394516983411934467407992397381859412478856573098547002814047280140487623074940355119138481747684673446095065553521784647584178472139236967286550586424640119386255179336815064207131836820989396934430405967834548862543316519615622405356265189781985613301353092565782929958941625231273106192498234439830714874944859528664938318145865844307696687435212890278197452478503529958323400286921583444231034127681860137701644470929352616061215444861216261892277479801792754494024735681998668975030096798646990376172466528236767825968029091383958801015979786190437069046626891839199211564759672387507343806480050253685289711490685373574931951906294195091379308446492937282261971880247725309963931231474958159806575448330133182276567800767543869092574751370095939380007600600314898041743466759470745974705882906537122551054288417293577132892920081805638696613794078024902448495475796138894039792342059945662521634902769433722085215095410567378587508556644467439558986742440899054904953454634967695280160395397643023891340434158731091168016781315710668572773868715308066520949309026978095463710074130876947312258150241992946436908613404933747047333825452323169896382164784830691576823388541464004110094003526076174626860233906887370498653452019872756871536484963026743133505511579098152558083437852673569806317133456570469246728004034773273895615864782982076557343484812898058916552122394984441029720897717850460934079251794889925281774344122048392298540967455102154690147333537256939738613374338475825719781638631834587872600412069347891259391350735806841680524769662137332059407130151492476641180022090356820153790183586126211254481842878434066092074105982696311731822322835214456457110269684877353375923176383158578637880235210401590740944789449547908502044031469092738354033379834802705068548396238010793948595109963768801235438860382176458171017254793028277838204193331910958370212909761476709668884830563557894596897386382488490962023986316774466843934386753855103224286818714234839062421111351753501939897575772860452710352515589766513904478189354452038912295623141817386145491588699996446848772647122554154999199390227903744560779429146183366123867715316545053759339810074484939957167157212232474101513240000082064684248618429835385475102416638509971224895429195520397386202863370920692527093621888967739937184696774802971083995166531374767163472172010738027230417228025825471490297880905567765815035500090272559793177440418510316287324361627711606867512806740704059760437876310424091921791989416822323848555413829777643623146752268143391907875545231957286620808249969745374627792063985524103520288850313583291243303968924924683187036222702698114949183229203652577984760100656949143088787993201578298922333754658261002874782952601781193094916103387850195729543278687683950138527282530767442442308697624095218727298789887646796244464424398530146067643498119846747052229346353648627459993618813477896915919257570242896345855255394856706387813564276963530409366894251608396282759330670141347343959554134650897911416530374630574317803242759242203434293109058239671825031477884814016244218064322862943396679020983774355319651292357472482769607563966847840070987982657945975200018099660593123665266924914648151043302487448516404785696988356719085682885243252756969750755471302982942183290190265587901027813680547417998064577239260701428758450480107303917145947700835483959993918095477058758756855264453024794751584588735236312121921833385173563463089824097862993909551687576378982193732538607476554836160308578503505287546079266928350787595683717294813645156542968966030415968909481352751977871401140823751449947437698915496837805832633113873386812211617546116223074564691221370621704996477765168165373749039002245922232850363726738047850637006882632087155358102620790852189543084905555764880834572258061146435293063432816014875689854795406492083837847958874972712519327593425711872002838766473284999216092975856540045349260136366918492012688132089918543400124948872234337363048713571894035152251200097234841065687350486013654522661769677467363771684490223060922878233029916994215460991514988324047649400815236967012530383087096256314289605554580893243529932105116502468259513313974886291921067833365861401015395173451337060822987057889290311083876866126953877062134037677780860997302044984368111443425510873594169761741675262884959606641432554351817588766258032760419954576724066122455683186729516162086251484859459501751763205098820595016846634700141062631871449513756866176749672749422836469316958337436228875195325560958131225587008547622470572748668466149541012338746718295362634526815544002832284627965516602550070130643312625782265955604762154724462639799362647155348381574316025383596861073646727538046203531112495633662777285475629279503574753389016650444105984507569858184882775296316695773859730578668335745671062847205138766789470468499212052971281717776433493937072318378957949582921113587914383236613589193012507679806947586123874083138222718743450934551441277906109460487374947261915595702844160667234551093718910529219789647273790055936042691523023414024213981726646867530927036756867801102673145015882268289296444404914216374572671285746786156679986640483812651572316275544480454868218491307197607098369110254232834153918782640767425372573410443649486931020908406081384432152399325335951973760528936933587239446628306761553039866939534187839262355741518520696527635591369976221954935736035216299434444671504931031864118260082105355151426592833842161785864089645554279639402596473811916054281774025930058254439662914279653723169425945394652766437321213846479927017177005754459975163380532542131634403500088582597281923108401336155256061155891939720008729884972796398583696748039446710549685822368256781070162699238720500851465671182100246186934029562471549533261489937347730709664546957099377283483909534055276681219314476891551165284119441224670913840422000431021869752699511652249981726322160419415985589200442867908106664163623182245910417305754283395011201008612294247824425080867137325957184061533662446198325332735272224165164719095613090978985090901759259151440873736210173067811406976504302437438171662836561700293202847828677637783249547759555238428558006409076973773834397095311289630373011764394349540270993738160951290270461177342304843545446586191787706477490147732164999252928952320589150130634674097075983720029445920475720079046440884420145689230183355240713696233025525607100338037379116299909413863453699895641430847437500157948217296378611479857283642004702159788779767670639880123327110753402809491280491673880908854646236976366236747349474979003377797913867788931165371793390410732942189110612874933752349033231439202291595313915065849517485851879251723797465185312437381760816199412780233927162783122400788388665739795157528649989943945027901814042167277368171334329716927279892391928459673934651545388496330307077153991082409019879503837939054734458375084989621092368378765738259440920596115266518167709004125582990868403159541299702326641370580700613829650442885715327893936040248047140848546012555932158894392841911636871551840303760590679624648902551295440902127760334941734275149894938610962024017247915659302420261363176824278192403520037088274126392333162438147758818636904631819442589633115789917263147744801421899145433081264162624880951242969264590623780128703790032194458518481501408892176616195065869407656641255085163269094607779232585876097689797280721555908674417921324833990792766324231978754817714661225246448509758789640197596699339504114769760346424458411784520401714211888907891133664737570896987668865981857797910246311682143971006537298884902593109617154600462548395879405479119994975561442296377732873948490631168524023666042237966744407608322170520403294641580811071322034686814753614565856468349513834364247740424699703900816860309850873434853544973557154376154586257764340684630670777511290052378126389185995351452001695166674326585429499109977046251715926338051795533843277932820988709048548209330341989840517057359448256496158069637116382801722291160307921099629356308834764758340069427766037723627307592045305016433142223674859469079163554322225828559433430841512721753061831653659384225399364586868712107327806980933118096299996697449640337207625763189882635004553588038459628164895029748694282956161613250578494408910220858229822809326979893734667629614246346410285930724585417465404516336808307074938682370538100487272826368006021825632689205104768367715245442735498871854124847423018047230197788095322881728066973009257813907736607259329288167337013140217241049584622601323316041309393260563111222562352466328695266793309026213940953650668051034175982594550484527348617459317103230278837881988470581187254564510246639741440110220440818027100982443591038306870921448462980433391042204223431982709335953564082045404490479432450818326935201568026400315065541566759598683437817338705868977534452622924321165194966123342643188358771232283300110592475583346524795780597810373281410987174470813208817778561008428249169398910643553119651069015383742631265091610007115769968209234900803822465747574115634861061719165192456852967714889436855240739719682275378301867199864171449878137994619915563154158404215252434004650817805603509323999651626846241702360875868486257775207686847733049415188619758259476554070814357212620500716609574149158756761115739023646138628288518965034336640068662632298261366946382849701744057137562576838489020877902291881946269592913487037040635941884212240793034512277822133028320945697646932389867251284049050977657904808283497031205630942501325639356750424441138042223631841982187128402499419565090551409174205339721461679580073347643351316753344100193482914191801510368339613258450479346118859404851797586754267209054578891472512907956834421860863457717802582574398300674639518607844887850881047866011462787528064352558091612606693350641298270897724877224102561123942623763487373836565008961834868775800375129179241570916282326196956941530879106439679528650038403290498823051246877692789933340875473678595804203940897104077859627108681591995363069330860762663979857381278602826609248957282493661655114770374250680435217266262979037278129419889267794528874653811307547046981093497199282245606381188938005342332997362169560038424868373508017361615059679550618629503058674006249400531964760064577288715016138515700887019286743192535742417160791494646160727673372611577269981635547329979636244501434337009117103116151882475102944433491022500502422574933311560189461967730922382592764185930800791629770825007946613766141971008102826282076829518472831210348316713306222503369133045931528883881104318965488722786982316398803050242804695393551176385178786053894713490157923524044329924208222201037035330089211674792822240207711364366270958700118015665577726184250890253900390849047669042148341315683502865889474633168538470329901531928644078809600519142425594547730848179171362218873828923715183328156487055439696134978936271119861320985090040425047340343849334967549638806018272478528927700812622802502381058212063111483892353009406736247314267356499936050317807343757105297595636281688251779495045909796190848045512731306454609048448767643576879437056512669534684147337793341281182890980572987032190065261170567424829956707142719359254858394925919934126741598962198226371089603697621531328447394368994796983023210569705720778538289411857311530332334917188859839702451596676013821653095690977213502235036589124838488550780999654916392172346948926146586332242164518831633339120616550256026548601103839358766628976494627244213205367343715651738254532756226777675382666614684103232020328783433661200393957912762027573413651424387524876670316694047157413313944678190570163738755357708173749889556837731363034998183961077081988328098125795767044833230642929208060922550582166382683911233501756648305263575329392335180559388470311558640739257930996925660247873890945652673557505878552636280981861982061067509311911423363335531266830218017528464004511685408922295946207070880092651615703210107756178212345177364661031272588589456140300066409805636029127144902528042648284022334224013085332892271930117719106681821163406350163713465991336213396290354818317547112120221640294907731810434009509995990479953580471347849545255353934853336977353073507254759035451693263943579947016663172057131446547787695181249433118961613651052036289013472352264780919050040472576550782551975234699974099939095396595027741964653719086905767582075771979536193353141351781972859900200451346020124302495705833975374007187051786142712627569549144740890857058706774445530798583088224154015601900454538634538137669224148786602047451429580239971959156048204977288166243303287964201607685697642472648126210049258812286407274090751784023744662543737639947583062591129283639220778945567129972970690995797756852425827448100606357140300064957939118833182004468755661450308513516789647680013557944746496660422586186106032987102675004745681929923922675099977946590830211396942126172324385072961733224225896793617839105321990456648065149863892906320907758536098284383151060195651181217143824090859362694254496822811527936959590004831726072738165627656545142316042742492004734650751453757356278090582753031868922243631998461737267981496617988076762109320203927884823448108518013602722837334001406718881983328323450039150964336096695477838758131069133815999189576704890701334484224998953305938384435574599294229519790189902977688599229463424741702049693514095073952395189593587877342168679305000670667700477749818333853074530526884525897268453118420168466879256283949325005816605560724657667539434573641508788551075802725610722614763503617437691863357634255287088425804132035526740662357629762376056048099047865951887512189100966052180685737338383183865058364774745376459316662351732206860601144501112332165982823195550685777970333036317229394389110862017285731542353979836633055280871576865987160059261985255912999362108176266939537967994963602385246944397196587571039341871108208336743148274390366683281089165503247604140128160364978008439441206257072222516110827042548902223876260091243239740366588239470634918813272873640216434102173442310106854484546798873776449222109203787643344242447544106636929339534106238690013195488958577177020309507448383140027458912679727047985644316574996698246381653384554464524652652973912867912859725959036960077003660188690515288873974166054278809073235172765468902780215060577098872537719188785760785467285491044658829499536677076079310773981394273550621777327631028399331944081430292131514212095318903734982342176547557118332634503432606037569846522995407399830714950621245917469786374411687372098746939884936875348431864578565014178852187059955436643910473041482488327411177727298974500732444524386899811758821859023805141629643867237313774867512855785149741832829163770622756286900923005796105359243339120250160302699080665477223796130896169890703919325920117829235049973073117543188407348063788052293352818478752309136999899356165444809179162598638416778566907084907073826667803728718973487951687419038311131020334692387638907193696060634240205892041736058732311118409188656478438690260697302894901289394970721834945548034204255555371561581266046572454169261897481451896518436306648726493266575199377496981099518068575287426724358361283610538595092026948277541623447158788568111534660151405951966837464754228259508553143398787631878832115997849900043321173991875434697013234686244921488842977640853099879960872986254426106775286251373171042655534447310474292629420712538018878041768915667992579798475986927730771918888293981674399913628747516198954348154218603131595646135398296448782057294850473092695750825271670392768491714743747771689322664864781290605942890629828221998457914063867055062708964057250120881617491055281651556420726813843204728277601752927073481384014222554923034286754720230374718083812429941494798230682837344983393162424185578761119594927030362325969707301143501638035176927832978079466897149296625139709883359823888874448257090282671558419138237320588378536069573996375248415430973159034698407051634561161416590327823257043657341577796640911202772004978454060152213115667080138062039452524192720522534464219405357737162656640597546020607678867424656209543460796788792972353960666334102168384554049480425736299436702216346233189675936727764119540905012573898682638463967354124954863451859784270574099133681443836688809397302642935215267656291345060962200028959243683694715007280404892535844433352476532444409872459516390054152337123492707582738815874845513197717578981381757709868296547510250539366034693678093710831449800851298442108785318055286826674999297420294715706912806217451631221626108120704849422711034320431510500175852406656227942409435261725264082881868881658625364051564248199322848851865843120735345669303388254431090522023888047363973526351012127263310162352401014834056257998072949029565656508885217463769086144905933847553745664566501198316654375668099068052706538620602360484346140115121476528488457987229216599550057004155985717702767363735691651310979660833716705494124605299254288018324677349528574004937081845628656039000372899459859439787285147318066228103480177064458885078708001301744464173061255645701533883540318174006860908110653313918474050238866498284830732227348733772473203092900502838987833513393570211973833032132833983011855174255666502339110602277984507564449190220228566077193159179980027763410389597572237163891727483795004695320424013315727731148205880159626385786804783677082314177596376537947583742029724756026152726579997843953922529374891126850739899547523313277803431871155184003543390253571012465493897453135017486023831437098968038437378076999258705006266960885626272700342587371103236823465409125416085535969994075419374305023925647995611518764413574398367553056882867577706603780424299857731587638931112271389676281410731884729021506738483562193326124460653036970577510836494574708209211974842645658675824796849909244327237128971842265508156570075219385508589307266543283383445722611713590624536988759041024676856592628666424402523667206137944064385626042226931240442935349051474315593589147534391139214072695945396363659383721420963545666344839628093138273953070031914864697883059561051411680962199158410326750851277924421970261655532928268037717593935010076609844753239868166323847272043901318181347045637322946943562684621569648794433499076999225908639063215117436321284381041011490150320132878658266076270312455763992236909868271992331575484432337619217286498218073805762069810095108003458728241326456327809048964328863105592277538690822196696329792824391686755187675771988422157617447330078517686175463143026117165654070368307406907939986165524344094599785198998479352003813132944973591411268963576220240690375207248772461921714797288132419147681779610867424775835654854167206871114655474309711122628940226806625570432742114913609512707668775305315820428530471335644924123151292217435971185307581632419533727410880019884741828537794605602878373935758810827263218799339993729446502827265582553456345080607242057865536301327050437178552448339755265504935904641221765653726001096392499237298242528230589064503517642055862654890975237329714251549498645213475209985761431569091625162499759963765034236054760688071847340444055788432952751044367757734296618642947773077443598921087296137167692141880452879265973935773938935756031038267087709812876830765926520348430637734104067967918040332649399986631176324962346801257955006986777679680191487053257056591480465611129776374630348922583303005577448920141467442842459352633447417735052477036248676419919545559389051011537923634509706422135660779427351455771979950322690971991523374660322137506832967288843138545778432421734143798275077600085834158947469117364724460800101235824214452127698914407691876341977859948347392105293373328491337872799533234666727195649144664628449570517571657832374542496826832478025029497072143293203707673254790862442789346063897762389889832674333551797006349653154601281329275238842908064156246887933788615175699262824627400278336213254759958361430004107674650975214728210783151919333121131974214776403440269564948257061573346669426814357105132129379152582632161151674799438098379812698268601662628772096395757946256135232115123973417448214638901647659214179140830750726207336427516305538025165843138996892408317665832631374997380152172676359235578727418604585386486604709629763571824960359636384792642935403994741426682411196665535485847499964483936868617370049093454483419041310238765944197271912060111156813587136157322541600861689416058904527777702786333389825783956950970549274744952419129779453595710078005953816780230878070258986450623203363776508260870119553423908655288195097733515271301196412960254698320812432862686381044767330792300352353539506617794694763221081267173460695374328143659630303798968108821704153930841699783667523252563331413778351005246538549224270559321097534976290900129859020833961391721116565338665722037762182127130487138825691270876846579995958017805143481852695016918473669463576315998273711888862364518050016560283953363803469281087181667911973857671362562571904169035466190277944108887414256003801846822197031307671466706222803814764555347859559534002909238470724223565980853034069216665170570662368383557202064190579760647868791002916257970206520477653426378445470695149781734255888345763784863319671908119493597872139842769463356055415331450611000489238142087487811278720088173523990260606503239518412571727415097077850348804780999330458043052313748263027511636287140066022289174439684516222525088948252030827065140379867435241077472308014444947116264428257438356179580751424825420572856188927763622332952074778597297890891842106501429540048493244118692556141544129692534665346968716151491798770448681794628761150655320772812537538093348424969321086426249264463872469521501796431763552724930838515602241744030502278949018002064256393895352241731858088062794219059627867059613259451906317060708285033730533604965796363581205492778916504019736153726023737154343943566552620162649370050431029561616765729897578826790883423469190419907421405053018019860460620549517271068645460944076803473714738946589244819444452688285041926569996348045303783794849968889131914236065575344966127735620241127332641329369612147810858899375859307812033878475854535139500293459338166740955244104660944296396177333041229071272752500383251552460458867503174928462217148930154674832740940975363585400071386066878738155587631733601253216477703219077850681521582573759676761954444579471815216410920504654946186190979590380578059896525970759745970143703784663946777324930062109761925045634649586258888486080434720636385418712238516467570737807853918335014588150325702333410023106937983362662117345031677484404743994558862624104422734561863331514657289845203709624217371122624478775663756007726236006321610150896528501581228639262231159979083502914391962116924424288350313124458493621320005513360029829116769553350796730559721920196092270159366753195597676283565696687354340052719709069010130608705157852107844398931950173982978334962076805691042200366080318359597048431039899374623181202438411737112146145327838947588270071825647349383012158045590213529465830723211696794916868385149182570513242170402211724370809239400079043476115473915123489990133509047499938360442842513248251166391310611919012310090283562701203039272318900142726748706934807693431413742831167283999964069091473730672385137020759778575951065332933728907965473565323510837169529838962005547385462672920229362558254055245996482375925846023730136132508240470902499126298297904261154859122750030242181431167659283983750381722623783643656755328510605983289727937114019274095691463680251344937637456289495785170277600720029566156362293474356528460255641487544272451272079612691971789235782224526087014395262757693699103345568776857514572881250808156860446364962154425559858474649401008978512681692611328744989143002356750451552327453444969267697872037533658376985064163363796964779470990631830373593294675349070117605219649257905312956449979137180254273623720610842259132444878227531489861067142527257532529782225777227183171526310441487866126415211934823961281594488451315839001075768072446637976224785788340803308843627028584817551500940201194492649378216057037317418933974579756756311324900035647153409493966316547700681657000923018028960476817923694340987962291914904975055229597944624735344556825881528152372271963476617521304831670078074330536583452326453694861165441178832153186754672153846899174762369641113928946599566141274345114109797565500118948730351387783041110337475499107053651304025612563454617787184902637125562434591481423891797301573345269143641599188178929898416478961115759771334828727127000946848107936658394566992053012785211775426881588937054794025983794136333194673218731406614524691485524365756795553840505795258645009886780255516005399015945236531317386728540792769121942908954339716719631149297294857899836377524141137086599902328252417212447289452628541027040388869838890829148517791525578282793840730562772489157191514403655311713488633849757093825162371262937706694926826069122226994733115873315989533234451524882430546005197069276590034279580854123564694904393465115399165452534547457163307023821675782203268450916861355942636646256359310793330278204165475579047576657073871505100717195688815687076746364251705633712703212249323381138674194697969986612014602456980051836889556375585945015187904607382427002966778427786998614299620127261347630821207040809016176291447161761529835731669119736550212476411189545978356623530088647625748850075131863137380372362016878109244753010875975248076179145645507490196515604636107166123345843879901029955130415362435593420505119914360888244732286060691567350871662030897394038894141156947287415170622298194401487259536836219794250485827295132291132200498745287231021994259461020574809962669150243306386573027636943465120785448646176066459070675339546691178244100046897502909161098892668767739599139528758977689376510077623009529557565358743563429864830708475320977195506407943486811159021722097222261327382575962039683588376143510288760766348165956109594756878442955000217664870971115388198839207538216199062542217108662413934227060195745621087977415488577300277260686223059031399030210403968731418792803162394272501366382703031133895685312680469441104950240961985350838408647555128850712080651000261024311352090947266536253900377273836938429495938780547576919820981319070192439404324700939851187501586701725634485506573326354407145122679717194684376753054086128031042363807713325399776665576071504816433967396882957216506218699778687820850361285273267632754416886302870731088438083581157110627404640083372388191631006137598497158927167121753306975844331619715744535278128388733430421336783613450310782261252896398504810967775252054781996648712246732240384516793325375927002210323548969846783484579985751634122649390743188887281280014253118494444858707238568277359792799409818000617686400287537279544087427332108309358870818168879728070483714615113696691579596746185270332689971505402724720480574304504290852814964253825382665572226667233923650483233026539357183494172939539722641827309270577403701242533022819663189748632561922888680681049311982990081057383238116234613595882308097641851060698144274288374509729146856725474490104328522825460743101923880931562971408482031391395603549799344951369746436764004057123457560961267352969250256280487251190041490846426487671613031685359695118764468629095952154052881747086039100132781174221871675163710411067325153169887649555778795820650970840878214936280274127512317596709700041400888411155410728771436153972800708392599784720594420788000458341789959387144659572724600475768588173921564034282135117339164472086706414130854762976274690561272730861256895889084798780051847412811160771968934406087128597621997507484032555859231336030593465104154408256812169532220783527367027471184183875532628554904532528195206489344924200561727718607787090519252941934182592472925156566825034192836233163759034156575834054972487152700738562189193974183610097011003257995636093094183118956946283133672855622209921388462563354336825660992162102743733423978239586535845782298684586844096487691106380952348870498689116487072208166758788191278648703083727169672157089114244958034114258957535742049440226305245770734296772477426905958688019194546773810289313281948030005409923064133000858150817392093779639471402113648580634794802716557923121362043971418183275652920031451609924539343305426780961327590578266319174801673431049017460246768105588917782846995537074697149645153217315722252496286548738028498092866106719718005995225942114626992218575459362436431524016522917089272184890043557551501073401112181398427055406389915633900064188737253665657079734495485678782717786757514962748418006652718316322455922130584025111881923441004389857765397085529847692273723507772361986502920591629234080516857628088045406798055308703439627273178909841859933776798641653801559971343299491610864034655997786033622768397417920618177676639288956067824050881644858266216530033600979196055814678051991776414595115582107174903616523292260534487166375698211412755029395963958312787604931429345228057470147883362892827576272990400839204181933172217268101864979329792482971379950516723468309516251132008331241398956383731371353175709505255829999683580544324132404663725504268056152565945092254515030506260198400259287886151614628147955830133385745537674620618143518452462193881701863382403418931518474078947432091673998610358941532514317198915255995895330826566093268700946662309721824084923706419143035858652702461713875341808549463559166231002878790324952910154974253833719114276665457518797286640244064875845406537716157418347648862738056388456522955021061547501603679275844233199419280072915222274988891886419664080237084155646781868007498689276307607865626434227349377107504174975467643961367134230725527834162986454643353001672213071844884015907484993308042593392457517176685459313352339083958489088193084874196303740530279264149483729245402332741334433965825038205453285476960159304518614963785406693571593111161701480400901168120450664430672691327064588222635729114594415322080483703304501805724482418919812108063801974140732586371657404317624276784796038874781047401011220105126404672835365526708288353855089074247713531625151270307208479173805881745210521235288074402890580228501499600382010426460217822887646262634043666038083999313268325450984865502087106369982400204935251393325011489462063125936305498628611807010583102617846405453348637586036430112112569988156090987857878526227770983112524677182634024732593002093309389451844804814945699757072346671717243120415425936080479694979224551951898292845304337240596225331625641925590830367826444600295946776699527662877743052880793844594697082381817613335292267361650897003961737485057677016481255851392286097055801318060548702966447906483945805058837447425877228282638779527903907021018396773301080643068037597041919354556115063522575392909666224207775631910100706601772115495409598749793275284537186687102716065493799787585600179790210650547990161814012501620900253068482079819732248508914978101015233421740845561924880912880722675930139812815292602030109825790918402214962582542994064034201084067919842387149038105669797193882862343412956279442865233497025961298568947972720921339588858013593799041826716832862824289114265722336029673255681438205778247328130147171078995046550663148898750386766420150357437456747057419700486200830403489524422314387998253625873022469041910240758277950024789374653655089827652872177394667406769833389934195191121811218215787600622244218652578945925403980047588556168762724895241450918742326988608725884249950722088608053603934868318097496067720449667735088003947559900548917602145766088517801010368162665205805575787971924502890307622720416726288421868939050450437374038095912717559103813385905970742187192224906029078255732442392145470999951939964062457861947124105841351406545295022944966177920183100669398508987342686617959924030109322281655183043012244696528342229846426706189875109077050284087842112212580398187512747524052903704066619723427135842943354989526386576323449118648775048752996636108205475821897014824625873562949237734072262211074807786748665103095670675003093846662753276588786956700901028074267009853213405829474301825279187096766537707975097910136196156153021474005202912351645591850191467359325581134175072009036459928886776864767056179890533265431193193281091388669579327168987904866167264213385488552405204823194171341759184097401842510954841430124101811199892030272947573988812043206841344721727139218006391371058069930608122026411131272709414871108730289178934538067930641534747459002339451993314378822407404621273727402683454749773536476567736896092984972200903387877957757284712444170515815644266630235896669374933140558560926287317859371199386553073905428174671173879546227662559471890084661530632625644113815021573790452690712804688493308057043587216193006574688300667855849382827145734887736793928374203040032322993511539699464505886878036087436062531649811514762391712291094784071982854819979341587305642992486288130727113321437173269649706022386310660462948391483555308018269143442907103350707061700017111730851296300154822248907618570821080608335712594311919368164894333095726030838966653601115522030563090141014945871067757435788946908009789489996281931218931132326862733680926748685603493844061053655721505428895251620096980211463754941260823714468012607661872897849320903018308063727004417262488777678587341805852278644645867740949966312215389658861787768996677247955373307775440143979755610847340256409435298663324948124477257549968786334638019124538070167145707977922532813547405757000657441305961945351626000728542354399255299115948331635834021468339211222206310995383804592984860730332614358200361437174266160104978468050688585603646104656449574055108450303073882909632374307483399591966417837765381738485647962860530936001713983319373045440885627369353797618540340465442366335080382683799313876163212235040482846853278764021329027820432276569570470178650698207248889235080468497263887160080398319914039981292781459586848377257754375204917991048548244890295427653289196841879984617955196801871056597356797903895828733628480734054968088888476687466866894906838875261783944617793442636392940689700182622553926364300085425655131963266377604716646053817673209820922849307034350426903353106042973086639187670590639433978301843771216141236060339110935493468878262972659907629630800013070151484694692229441595165063092153074554348356404618371005950228093839150603673643674771145183599631746864589347422901750224298186439985351646925197108266648788244680223230012588894161772801709034766640104010179710066898134534188435736243749176113799621528810294216913859636755937695148580833453843133000962568999156287457548484895844882006084668892823064683382817636632094691306011171265566101895433139867748606074429807545280939346040734323950336963848441021323854980981884310410838028927394295383662337443618859818110272325984546076350938501559910706732590385491886211335673864988292739422484369383431532508531320986903554805504572041624341210194354364990938799239383519677189661007775975921119720565022029122897915031156424641130680712156185279974432070573489889504977002703101257913219383190062129842963218448185431955267161189433654883937542781101344735549622889070784902552087622389715815548325743342457817794790874812573826644017883811124973464191448134098798215626063727989150805900857188523117114193955734225340922068424860667662750839133743239603869233280856533377025423690804571891905834252289766059506882913970526057250439780022474539629003134141409627573117649411965091257485011781886882945185429688579353581940325895481653160561608353291449143510779155933209235555649970871789322615967372565809198755364143370707548917446108655491359793344468903093844874578723550778696527653255129903492071932866796636468033377987146903194195544136370033230393114292030085689360524886526408273493563588396019279683731829722261755930582825466583497599804674371164839410520048660840847666845210908851244701781391279750713305849489093005728673510370674366666418120093311614310399292083949631674146517627373646128605225153898906321535326200527156373877176336438592477323835877671705749797363004990847603311881212866784615942775854062654827388767111013682922380948410652362661188260016309840386799816315147239620110124564364524716932082539483285825543343964795279738344922265281999332294486768257818200338088777322446378994803739261623453387933376226995345883593532320022746504696164635656199248369993477797379177630526207800559573137645935030407892922345596001351102820584558038242950329618469611135957030732632081356698551559938879183090623159438032245759427049648728551622405437790836349255665142900553503408154566140674172702877252666802862829629198277486228951076503796717434890344568200816253292354489051519104364422452193300204889181860767279175527369909943166068527705969269954741445195875807603629334470231056259808122434055713423467403343403124778988717369733440236111053717862554881838247863811257687509860101155659806273314953997294173911379622870814518525361687840861145501484672018376123480285318190774265711527373849154398174675585218391720338020988024218348748759612378514405383747130305057874199035729048758349497672701929044718395785049227542510404588228011630900248332515892129041072263348985572407412723911235785826864275441578299143996790725789048139682773925366368452003394637969619839732717638672861227311758421865722670831007634603999937822053649786226050399321762982360720118298312234812350591190900918141980700789390422187391521055049110941350698976308999674949823759944240093994124144718475548365602867693913044375108667320889478069026301236606737540879501681706258105038291236206596469766647894005396676346063142342022025817594105552035069653830407386564968163257877764476404510669147108716305544459459696214869072818470947020694240168622360865463476191186197931649093525382751705639581358463178660951055870663093735749636446460814590288074117335904695342345788500552856794740851447637290623667982329723760091205479578542639885748003312606999707579174075979718393353328697350447253056310809368924272116837758444213988696308160037866695003852359819393445935633204139106911402728223752353616317987747819885467744522321953249786732798524998079143456115638432460675952748703446279655773988025701272829441768139561219929736766734619277438883155708083372012029527429313157591524773715134304436050735529700108514108740606710958766821058555226439358451221278004542573761391738861889869319501916645067812247448980870192348800850072760669610224759471877738440421693447650337061972175529928337844954353494464306361298816801530154282927644740079888835873496026373991006182493101072232840011727280949953516150079056414632026685637513812375224258712053140206485890341030891964229664673599477522525446688689160590358089259638369807228186328973557436856081984993330695079566493575139870557805381912939446945857801348372449412742425143411226439856193138877807846334920651905303857912222361982560608881386335466513088958469485360486125943681482954849181463261951968001987522061127524416760254910919730616534475533022087283590754552707723390619513902129679851681749491969377418771695147881240685038852661842896088454092321999557867630300905850860692118833581212032276467581140673718382129560412760420933081437190567942200439230105198190872879427699031035788855189622466637827047786885414672805246575862789915479401860443724008274367319429197291515073399282538863544029556481502746388678375005234502698961874001425435939973735621695245801766417576473389591574907747711031392032422586997184050699617590130069170886952664501625928291536924948589665177329021228705434625746520749895439480650353375762179144000946223172372923621991672487564685465797470240767918589212549260484464951798467294286407889788275966980861807581422057820133927209161232789817714520322913372874554219263915801218521317173870132865237928928670802858603679526995835014853735990191610788458120580090613794381673368001806557497997344099845491289775612156023949742525790190861854127773334378140596849443352841447613881735007528375294770853201740519750788008707842139652794443486404304609117259716331596460998727958906083778526673917362859048222361898758020140759809132295152523039774171432831798503394163959285702439718056966691225248762264602579578127525578366541681574047447124577827034846710397468551942783070021753978358937646878425264216224461357519003825184551029664407797408596500763505254827358259590772322275234213015071621589490831224279361059454258624979881249098594844758348060152442873854480526937277553195627531587476016414462858044561068266440342349465153830964154244099939151264464293612173911392502692832378021749967397490555118475267301103051666080457223844934095632852141754644371416715097940646125900631980543122347877981967324353638755396304156672186752191662328960436474230172111478745177876937399575995943101773875809907387183166550172582628037934835922162815868346737496468585337024267014039534174565253763427274141504143015111718751615602347904338418724373210749281162017207091560694343942507247209495176040862382378520525964902695448154485120347161784617071917989737018775366226752594385466201906595705395292705544315177333348133676456356817517640358257657177074960610848020604348267753809182987411335887080918459332268748463529139863931339840393248506103151853226540549849992700651058126114281653746566660639482838560521630810794721545938190065316643823267047545225365142738911160676799547105991554287492927296491248433165401124043101190704424220679829581428023480257083077964494977868098670140442832196237054430676993091610871118511346707006480167549701529331636598124189244264902507682687682256895066148212898427890682531444759516745828321614441649417214845249931923819571307075905620375524081501157574294606506946161121538937772185234517044955400137747721505750963507686874355033514305990209393975272749682987502813154270118056378180740141036087138222571177544592596457940087478915930237764689196853092123973048112015032298408531124934466668158784151454665530633295182620460605895101967735923057923346137109288173698155271209199776379902107971376836161816274799236851931498502384851567959712464470544155021954526175931175552384018126653661253225091826621395995538330597757740961888423935562749729088021205688304522750989182738484655877665700676804340656009492642771663578414536562738473372718740236387732146579244699585494875462822656106819722096582019247904500457128910586329248339442141513700516568837091222539490741131261929090828835448250667590842159119282221357478901754626766959805685288626581039393691710364685030673258923347861340082119349434740838450297783972014028867757676009840363168966346392302578601210641961435288913132334384593485292349320005583617570400754912138500671000545612925747983717771275029048545379683653251573946623002292226436946822515013997029689083716574284641484778149401295197386993491578789363157778167555055998989581008908252558705412711643868732245003126147160159068681108533705340789482372350858200817480257796415793319839762659329530425581325575460203143613321033470552345536591753298697555451164255035673077333511352688453770731209506989275012868969499559682754866216970340709160206954963244954240080356154073688089898713963583236780739522975487636119627426385867858120469566916883036007264339735326904130228039772073835099541515046009405141940661034070149916057111783105521964582186538526378575776072995554532342156669470652952152396068338437625906372699835465917286894364021289924502189406076702938624258173630708077471907381652596451109021366770085418602217601149019825601901127567701615525376429364105374465801847670134030202550012730185428609227391311673166009882914114387636716571652716717002986046320795014186794429091110314143991864516063321866336514083054316869296674065806405954163420558740056133658194234054350488491989406338480807134838633970380078660984033832085344441852933346068558456408884083862753627980359326640577080811285327146784258080304975437965247051484798503681218703388975856436379915942543898495433789106355831699212004556526703865160457150561433791365538655543785863500589054503328768697471042450042253376918712688717683511892970678914386682839986916272664752618691847346188892817451216741998025469017042291330899559200047969125770948120352721603590654593059464048465234116285843279261985362032857382716588805702207848943161370857867842947611683246734728335399912955556171445852139502733438150277290172122539132867816169418238671497661234466663522963877679374009279194500416672008966914508513469368654844545113420902128765680057122835314456133383777824427443938402702300395001272112198561023225737511967283883528851775482933319879716464601962871442466643773850650418586691360595820808745868294243629179698750241463546197651327232199927199806437248589059543646976062985497785629911445725720312689579280723603304662938075701581789994356730085935034247972205606212824447303178016203380723936859951821145444032662992261211053882758496700188652244129139666110809269733768227739573116081352961940358983730817534402084122900870436518139392402441910517462151490572311287751656130866768288627787573193137313859793298520476994701773565085111339181886595013779947922893116607257114745326254912697688240145663267244290205197555301278162515971022999179118815046106769874458253852092715080923905585355363575633993813507202309756740591582369601332607918649100763183345791520515979768228831933749482645125417114828682566865089635827674814751798143445602472285268837787607669321105445225935713796287604760047198010795029096038077745914928683380495113792195520390627230878374931986185066529837380509630692026094092731189130609347197306651245466133776091950504830640348734415327535337254804712476627115033596855141039845463173414621717859048175979441320856018738658925740572625686991071327218950036193097052289404822444667215737010410658855723550890364024440726225554640718524289445803334225008399276433240574690121860378888701254949901963099787760363817044596155044331750236482095843624855835199225166538092003319523090534454659592481522552413173861011649172710444128456596030913564809441318962976332355300833222392033057310132468848838890570090604987857209219088477340313580801541485260955586088264237079840315608207502830190521492142929061105327701651257072487091447365567483315916809416714090746168260868696135869047626401512521355445377625245765539231801280970167809851631883083074376824572714210840566849298699638015895439774583103129361267384570113530465210150019369927706925155155623698135919272376772788668537522268313947751716719524128690398909045968181412516249276567028714386261674634097070085029626812013317778019177503335183592807422045851941622984178835199318117871003269374543506316072147760871951442759853722061838819644115658211487427616786722709005908690129788932980392239388494982789481617269830284271311672604075321486279442087260640156910105110077154848719674114818410767082781615320244931300208042049499555215443919970542804097510986191325802915335997716457399251924861982636754607444865966139601786706438397869134140732870573074539267226198270568533077865615113867597022302175415072693765845018232951763288949587513738666550901749186546288556368882880860190789210192560163646442655321329606861086687078039211109284969912239395156607811001419337742032750560539024290683469369053289443777372152301307463650054916541743107440217704922940821496392914833141262987462048817810858296801451094804649552448439528862342238598082668673424559278106312958183971358743015383182838871199293793629289850931625134083426611151409635167383475632626754255467022694814684322404340352946063766590648051306737562681370521714571965300603382274217122975525496241500107784018276965427832585094549810473983119625480945079122210198143049681179332964790728624007389914397596261541335769208099481973432607197758587846037864723421416742749289186815006630294163218737742031753034579596174483187322649421071608031324033967027285797312328641264650397373578648573442756233954699083519155831261109278908537019750890696347643151311260691809570910267053032007684746906208093363387118433967414028792644934002286191883222680258750834573559563152983855759856923241860163291145300154689166723985302930535348707391633596674984163769763335985786574556206741507526526334539997102185234452527351972480200792897673824907549945079643519094256797993878986543867579282014782723970821419238848927527976511898339691173306653724369797696895139127118994518382452245986412187794565897363751827657610577670934667858477406074713632290972798996360757662845920895343782372624777032627225151741140849413138390183042400403254050453742965114511672299502743215753074206813213441200264078733040831574974531822031370327865157093159264519947340531865661997591169425753410241060368171134422315938469578008458726003061683663545252395085132744760763093542524101100232663635902716134458599047585367550539114449018051181989804016870043295135720912631283822317963883141259465844350140568939472887669392926334957032124752481661705273439123856625200617236693856131391131186820444946876690108285774944156684015796901676246376988590610449655376582837361589674987224198529257362366635424246226226510576956473640826560130304967447966712788746326699519542252940591449790751110696110581252950857527676391638178591502625321129822409939683387913615824658318292058679019604390452787166840751896765402185763905695634222057690103253188539842828340674966413333945770033223358077083905069304865622315659116002681899372750931750100667722320014438927619527830624482380506408915533186547194196701527653769310406013505108369696036209346436196736658110478705057118827675651799334028057660047083141212737588605143098847600034500255328327607900014236001208682290310703997879161825083021793001523756877000984544414770969389192339810212659594640430944338712431808981449475927558760286239037042901145909351821670855243968978229662149716457490900010166304691921887277378365733919868980607580051257753341324627502564470022807617234558943567296645958382224164040294279647580007770777245287354486538692016687129371035938635824470873343328828939964735973974605645671451608252181085935595939055420421516269544690474928268875437569444192550202345050647632362742251936903944564011721460302582132615862816835694279611389740558359068582324694621074634312579833527842564976721525445786724518195917058112699123146160402987171877345479949759172421525682450970894019614474409262774042936220782223874442205733540169549587619706092840614837432183250529404301210970069861934883661145669693096141147337828491590159012998588701554326986336448064856181184925464926620187427483294422852325747037912567628691423758010924979848234345661705145862152732802499546620353398684684358992663563421506297530566020243431363644026474293971233456595674563800964263463413736598983415882945624838386464764637015779132709012264514448132620919802117667173482619696427580851590854443351387564959992722337268946438996078907166161742581385710466643486468288835553625924939298370380922127577802340912188455586491247400405401246802285436798793842489864801040211915007229087384731981565043384595174347288137440649434819490977153968408831889382608239411160189458922152196503037062705702349553650724942347035771975192032212282888457145656640399158132003025070864514166920284345465399206211781369649128266778015865086956489591459748371116852513728311363242648833822143531654660721071931099838405555154900529872557338288485241687337471640129681883849499510847864223550479798337416309954910131136579985543707968314809364974563453467289944361552830679572964786224618629619971261945179962851719456159280146010893863952960445060024573451522632700739695060048776950520376135745529768328498886972529665563906042386351340119547636796019485253196303062982067704841532695958974476247801955143666917710039308831632424499372616087547827975178710033596211715464062266967471198018001799072900011869937669839534202579611099536989742838555582379584369352786220404745637116610342914550150688620845706591682429863567929783025975131411527781896421027248728879284336300693189166627113684792725219863942844379888122600968025563088207490619992487705963090849303097613951233617017179414983646640313908062899010819809774331104507659165751082824344245165826120571995140519371594501282159155915094477391484082974397098815988013426340635502961345557208104454848309516328973313711722531089981321706240812569736147268494528772707053626057062511827874735563051046974153417301776743882922327832579789591322241926896598395929961046739895701986646898077921976477638248919700879989609596702497040052084393141650279796944706768969092136822875584518336890613136904095627909738699821118807527794930345793391936538281363566136196656767922481475572758967519959359992174850845071651612841184020129408233910940915695770108138156836107352269942992935742822608328560384242133042787227792843712579289856453810641218599070348989868432615413052602337952887438588659160605969197588021487387888929404807104800760168574702132604459251845745284932050670409807468963674816468183714042690653863749989142270881693007309731470213732536873925582833156481282823776865992218104401879380055902094276817516255749985222389008634917161937337281175980358992940978835917518040487139503394532880159193325874580096955250823112268771324933252722447515354602549082233538797822224149734287289885036958525892573136928972418542534032654078790289124531771476349000110649209499460124582123832319821259035726064691283685668835709264558744451525958205763566529116442894055057788652833190053323576483484312342463069732195110354974914636873716259742329347804411016726633308926161232509548571929776737300422469189218812892786937832963798289919404563720006779715609102367469647364986166587616554133102484906120008180529351444865599372784580400931967822162630237468803242712560083519537332197692373484352050185783037551264315764127287643456075360963394487494191675093128252693065510245311170747482320194512047687821936906867384180329421775592360150607928478466895591816951937243843022005344483482170299667700584018774876489755220028923865655708490631463080023767505303072716099089135150776128604782693915880911109142682413024608406299721624773398745669186215857759989021796964797357361241444586361214164209679228069822611107058936122405171696945395377261128872696615737272384108433699850994253529069621767716976815543289091653517603633767421531813730131378204407994591084485814728830021245349443514795502325870691303330262802258216390989470320566551487522527771257687921110336002720623656255264905540265492001281789259054077840893213995257590376943370709106232125471830444267537524979167025591033639343195876672405507209720086180358088224155653457248805557126621359665798626462025464551772886844457648464525822147136784858353726729804759978015486073324153081729704697955488802956002107318916342824184028566916087773068975693165670268561297467921176411371802150964978372540128738116886705650650069509094534932511334461988617965313284497573509139650235983946096182292464692487743131855898290309808140795781255969297368967413606108778395314877101741154535881974790390989606164580165939104552946609894868199918194301873527367943780633976080940839146935633528935037314989777106781357572124375036742730373386206749159301124727401785278742628505024981221571754173085464119572039078189420745175955938017934481791012451680405759095203382790616766543728328109446188443522959334354187685773036967462909710789836889431522415868445676407026103361762102220623889393392372629889802560385235308359430475459540131998608871384331735561572387783544078237429940675292839013141633763478869312879125404867270075854442620885058099026633057349793488995981654337087624710628992304338987365274564355775992041215993891736274392144793621463263638215375799731678738449261165509789979949756020812821746289824469945303031175059877580987969647333645315271575658098631607335473092252496274302107243108442898463413356806863664412160033539715867507000373893348585131971975475729897233413733688168466812615261475503557176112402180102335910589745946832021781492945409366505470186249938591446948744506694671596226249576707622626551493030607509127915239429358126314349428566937599338941307728741344984545017392793937379743902255401234641824257586078775988166713767777180991034994283722585793368726993203289560711590961125799996487524548094211872493330627313790184613950411044322441761613745861809256296604132436869407077753581777657664931315595966110762644519229756354896374064475776256004137618343552604141107267727825231121739851955723759825425157294495232728475540702965264052662123509112763837969242056502764361962378002834238784195164951996481345126770885283120238834078295806290484543400807657272072766572943375013418814933612208831569655893693697622976906801954198263352689917724236929942645725979844921429517988966910007766480918782314961322283678386079842962427259652172451999448049931471520557018328716924332892635173750505047086952028137780187614764217333907777623243619444366921571152028631981849285292657105989701587085314187442405861205933571108435097629263348605722076988344603698024411482607439202216033993479494466386816598716502609858942530030798816102736659647634442550919782974446557689599414628349779983065495942370305927275824127161499417098612845265902755620417141669208286935238259126758353328362888757512224122263420407685245870496357626062399521981465709367148531154056498530793824535843423800851637271271792517738848692973418737011941774502003776591371455675533928251788673254883240514937938308855795785194581037248396638122715215070800927952595677406482802439567716251143089069291954533060065615005725021479536392307044614850734523345258731348944958215203798160267374661680043292752380423388515070095964675701247905617026131335243584481966627033711311629202343138778650941767773023992949563111978938949215083801219046591676910702965651119237910534202996889316947409897318479921586880044820116884388272817235100151830702964607143279862385972756168978994356527246417193096736238433187558763687703934470591515413064200989878291462865960067339787348508560918387030663812079572926312073604283578464148111436504639243024886236077395940360686679404587540181836680901333682545941155082165390093510311200204240652116968642541514081255545417283656986360365278971179430361125628546422513832786213481087637230116428893641558906510027603267194876075257212679417109781806159737488288715574419664493171208460824092791363694337090691222602253719200808168964032441383580787498390718822397210481697136800524931205924903173630762443879928408899149080099953364538084628407201211259012565534763271607935369716281284958008776133410228655631414789602711847961821659873329484685751654441983984417681226235805421214082353352355875996027974075249637070620332343260370870205252296286149474706964351749742684128277421095033295623811710513010290423139595063235078651621433707306799629923768119255653097938784875758527107784010774196391615507558601398337490731466144785247697115236548876215053751249790417900671544814146689454533375886460846266147502828392042166930960383607960297578293065157424142629938810889245354799149416445655872586218707956697893212667673362766218555599569832054048573455129813769007544051607439429175063171554626489386482192388639356016956798771420656950247214998607722036546063786153609172033669962866903062209331533618364696450732397297972535546807271669096210357743307406573200356497078372350998708333609305048031122694769473143735628064892324923731881649164031250389239555161234538439868939969764717441833131769503801795461310094912540901630370881199356694967036877775957812459128555628364758195268694170874184327335751199348031752125847440205655579037824558535749540297237201688579673705514981877881192983298511873172857651524738691040103952258919121186774523337698428682458269330142248322406067679510125342505366388789278563546515259082467322992044612910621742111933926999505972398875447511868294981826645962863045390849685276904773082497587814686727451469354914154395289397143895953701086482191072687461904824057765166895481082792327356409864060168007645875141288960286585810934341960980625944609798441562156855225807017357257581089661650011199089719997272433207861255235582002192000973994058046203739250047550834027520007299958168633100346727472609609749406745322041031182006186377735530752886740087375969865575722766933329207631759629521574906896776737536183076203595895746549799637278123607297839773468419011304616407818366865934605402822849635428104477713000619486331278464916206555527106320628526882447858287792456569392030614422496330754099724368267367201792265823557155915531651588430677406130923899164091401993795310642340277835651706192101604562416210420670090060715538358045806385818915798488065910190721736780111452614443056741069803274171847797328299102819778335596509756748463677946557263314757745161693439165984961622587640771165652772863397121873019797786211042453621854776202400562602449044992910975154100952194931953861390856400713253320825992136673343905244198525470297722167776807259843008094315516402947515195810351531696653009401910297079754473403852607649468586175956007340882993710868900520503101398404088620315000471287417993628078384716959075330247136844391372488534196789602769601392501522411086811283317081390710690762179224406874384596012613306145776207790357174710892900722377874792690784359592767349865289102153893200671620928092719941329987106193323780805306259301636502356416630177351331973221101489761711893894362561086032241182677000948887428878372468579703666076303803458316533280711530973037667972850575167314593746969413226097044649276033234891931334721048386339526208479316298883742338482420839012737828976254529761071226716925838908887726388127897593239065711191179813488340921253574611257880432033653191665553429000695280052872119466612072181366122418905354074393489493917465531707178778222458225953589967628151692216359918203663706244435369123922434486856827881725666694039154878563418074676679217260901297653196908918476520748542166987400831739871907099421826402758611489957484150792063822434964447775199743776237884710189269072758899795284754427822934829694552286943481731603156293407594359739086145229334827377138395187254601720436612636217873197526121550100181935979688353625114812463280569779852759555918453519568557914528086166040238113478002565130671754387475506883883416991671914923465260819841930130624471787021303448973283511430172887615547104210348979470091716822901771844166554280517677635563859471113966769331854264262051571772218908138137737994359448736115179298658149355296312527790028268946578113073333448661181638053801167476245751630886507453668358842543291060763647519065911202222778467468389329653587709711752198897547174190500277343681442729858217333693177261913019349626418292778383188792293552668794447100049128129282007653291462509532650791711621020282632639199421043001247046377618828145250486442877646451215143088879248366758786219829606490248171817400655168442064927703905210457793639548806000366080821689145947368991097770809608693625647357063213659726891005878733105256871528445222000313800831296629238707012678050372392666645862377941588469071140880223835423715905569076143800179096586748514820041920036197609288168824360739615535395684413089732633853735588477266096814307959604864640778315859363531206277572508129248862315681487586367692869119608983763482948779191771298399785690813096950060133830070030459097722838565813775975605104942336746809935746598112305927602270260724744196151814021704144589508145779447270021699876267626813678470275782597415709187736241230897459337402087237862928212320085213042732391572204247281787853648949658900292874441421297953260774789179757437486401999677399066208617203881058251298396486603673077062281345203433254831706288817543233631442822585932060247274496114866814003821461394473712248925260823978044295696256533319729868960610367815600908698697771307029581242139573722614465229431584811422098253785878038102540365737576326249877829645743707117665905243726329555251627355087409583333570251270934069460582274588997707232630056337541220196290439483837431728536066809581041656336621838138534641498288989985033858531790142283987129180384274912386985468412171376385502906336271520631735078832913399957609988095706330382525666711612262308744706944215460194670154991307413702435768051362614034858824717499434985632564956794252926818228596090135956926151706542849947621820139115333047738082935990798903280900665228273802505626894759717801229192285107702066591017977085721996240980145212476855665867674651908559683722309793118848550240145531678463654958671866873714014151168370042118597351605065707713775075815870525502324145606737689663606268309409602686073796897542924773828444203231688884538029161050707994742341169099049168333947949309734768468305432613853840250993103844646923585411320869194138297971965760593682228835276200754761685869865173941683772584516980981673739014102220479837574590184857213123478846429213704324817958117184891239622988175199506184305589688331620004741625679400619540286920835730663713507122752645005271766396272641807739049393933955511403580168331279717479835550783082551609602070719672427448666172916517301277011489156241900474926529696950536684551322703959758973828676821757375367046986762366166909105894751502553457670850424293850662788176156420177014542452454307104810381490466754339720743803123801367248457631316637257195144554326164706949673482819840712749509858934559890568111334282383239869951320524544416699730336125405619480226207195847865355225506447590345558777595859394574165031282968552995844076814340697138829725228380021379658853616563529925597961149450483005081272799509011162128000594239668718267190173472082800418388421269830921976768922094898235496328805644470893433310972976045700681800758239696003961119107264861322746936544322425233416852696942432696879444378848001184062960221377756368618003335133646892850630494949695863676079968519782394310071652150456363123554341539420287744662710688704890826293952799497810429972785672340270569796082037141157519356374523725778941889008661298732672457265723087648286375774007679318850572111312544704804782053371329507346409539454596321440592392487236187971601357523286577186146977353175794216798330679085886325496434580789036430557924138181056408133332438003320984279158971304643141775637948636751523573715179731352670620832611947707187049227756323234206591585138162938215361124789214278404019747222023502178599148300525587795824666007178034300397686979503210733932137602087169776305877491295781929544011074266370351530412125114708373106757367069887486344655085873822490343484565650938344984361093667671274109636526789196455398516615419236633705253952285982810152146417837824968614529532920318782969308411364509439599996239417951853519333832845810058140336180699673027420406843612239063073808336607326708090212275829459175441741460804140538201306154899789674646888182691402851904237911033307494813111944568007020010994694331343609447090289940509112310213161064454199060645036340157393380375279258587178629024287205964952775364739660372171553768701745419972522587292780525379925094171517623944379330975804273280451388065968315594509449956367431687344864183750325006911301590397069212571824509813870029796044137664022047681386938711831227567506622358898245700406554012861675428000388720201790882901723639325374212426208542147952005305835353621298158356791426263711007426685679124369259748141036771401093771768488180221743269478989878209785471944743424725984520879148532333723193061883309395457855017171969613311823079724722480498545836845234367109860955616109127988727267176781633206011982532445019655419784110153254894372401003026964069230926293487637750951767372738486775359602235222376482841990242779565207158948766935357170378487517060479247617746919252475565272215975668379147512240559289061067266106870812360705976784059465326686691792330990158843052817025175629625273410816903942952242935770539952718822038792456180815916702934028222836203586506619186617823968389768761710434486802675378191585249400690616018365259798561453988770788906183754217156449247617434747735994218524554701077456141590199285885176297269918480029388056249519074649449427503574238196683929008474214786341125328780755003803089880805582716095733383415786868995827560239511482985956307880446086107909790046820142119049387032589255010686006646405362574873000225346679068424478276567391947855814677469680418855524558122401513482373817682119344843346940882256625167084783660952509547068371390396504976792624459812447665639302065950414305380975899396735624965251057912660921679161811194371009696793311832088064753855435952291019826952215019932682187835953053934051514280667879148169601669230351753164226229896316443556784887352899087136813204225974304622461494043092519032764661401121270883579429222978396826989223888007027721572343930354556693115495373729705369930912625940452873461549359256857586952766328532984502898615542779205442854842348685791647963086185637786909126012996138163622944652824176786654323040269476702222902001763451570119303308224509118399192244499797948819823508062243689447199961516998650732782941989758152649651586286281970108648409409191772754081918082584985666855690375601142089262471539924143671786130503773267189810369057564499403820817462873800091500867112633148011601115515637763295376294915747758504969615277659354167680088781491659822081415769929395658363502829733964940275117634864626984719970334261563930315350584103163091916962989852148894026174517512299947809004808103095935419204808431617405035531603773607223996018882286245501517495076484290628880391282490247939636735296220851846334630752475267330518026317269787073744236567064577989618794422675454135619893094951084794557778528636625379920860143492836071814581549898903561839559240917327685454191847978360338105979116995120167897300826078427398847157150659281730308519503478913317698831580805111819749667039215812191741995416636955149861181408142286279245697597785736269049467276604547200078124953777179675478384561256212268241187912472721905300356886286213234638737145838716172485007759285427923711604286550271665005694170322527820113238961361351373652997240330052235012176652652429483765127496391207451738213436688287125838602148421169162593642188234390697826822059792683311878184176827411469355112558257064754593411696908073061746016533985301537925758504441069721662793050593882456458961139206708223057616588321331702715125284180036218518391367693163226628106311787785549043222514248416537545858678513893887667698280229282969171349790071296312378886658713647007296789835224463003147441939303254451938087025047255625955232004036321900045775672973856483108777451738274289696835646070776825228799067608240652719037093051207743725373253228397018615647044998101101766488668213476154131523407623363277414550076695852181784814079529077428171941294324859265986283104082652975843471736009191770545643200022114730833044512841339151808961021130928217365287065276417978953474416579746813584980080842618648945418246484620336992689558612116500421472268552981724418489517346979555700551398028229477495318900467430288271084802601592458369035766089284305861427852308057189719974349355686834971947228378419638279104374218961760031691228689736454611609227075319899206649576194929035562603793635822223507138897712405607478790296780262497348891806783688303600752651555507299470175947852007701376380783659274456008792662335645835124382967871157633776190988385307496252384126983484931594337706559464136701564458995426172172709923469881530570274079367263847478005682942138320540235569958673011231438850150294415446454862895490725829173283806577651253344978343077227911709284772825838123882935210965925881238519919963823513501383139111468432664441619267796767358122555105612637172795633234120304500754225921008291300971691957563450293609077969916700881573693437809512208566816192784605232125218129032330774728450962165644754581844942560013178050173987907449107782347294848483475883429389977682476932862823836828593921408024339115256380992876127481693382675693914972260901686756499592762807803086576055637772564702028618594689334519227642797785842284937341387658069021156315452940102975586227903579287254943546800336472943573081871056409014424795833159597801583784191669908078655542531244000849428905287709070502102770042356676561908402103002090449368677241171840051854689794034219509421451578051298774411894681797522257677874193021228159517036048727780937496337686045777983426888983271301239017131273719973287215593749607925229549325464539449278295240253425086623701971740884349481577129638193612196359013052504972554112125545535881124355589586505781596487588908734000117952255655761361559220837174537384926469291769711788980897449236986409858121004257953053534643895194963694634503335256346876176284123840924197539544162118799624513036149151209544085936981935959966502543263707796113553083671411538374963249168700145578601993563129758728250665003533195265366219647084192116615375128196862988060053658616058791581156377191970426494137175102046937015139340222506389487760907455640932329223452590603726524421258329152250084330816799465992096090446844464628653481942480925609617026090981332042224482038087150198848828772413597786626751771153967931782294989657122097787115967282580045013687376877962188050833637469784248607767029061789344072199823215444413138633460130032306071655596400909840717128148233443004037624463978618757345189783221409709988233939579658008904540868307888139031213807409289945174158586769905496807727404232728769592296410000728780121806617174687438753839956248038017320827206879917264463408586948156126316384399566087151532497846890050219142734080899006463887650970651765860652508988841072955762408500829680902442824677771141088739970172167090611063942042557280217650164631206024584112430854752545834315757085631621670725351137135599513874115689068792281242171229047286897179630820102587349378840136930538941200303669382548379936898177096663443190580334412340873028719185261969865633154615891624555482362564221345911553224862638487250392807625620762952130356481554175764809395520735243869138332868829419906362784361767907003682478601420020245990761923030249772883491636416240195022341167655019873592106338097517438904157146241992572278059119883420983241116459503467046139696278067715177731721659088515724355528314989559638572236131402026416587150263643527765717719192067457230815993649493203748040689543550928344267068163552601177755728310696110885900704659844039548145018266432962702786443725877625305615510982986085311047730322808933222454621732267758835453902191720200868177598976449630186602515224924781793112102600000418335267673174308420161996321439231639871113619537031973319259664448454649587172601533996707795685490870644210865222040905444875607033367980225289626839396908536690077474602864647868997382462140674024373134404098444292641136298363911407587177450863215630530770705435462689828764032242696501011895107229356667438036499218824404340747542293765697703176393287140814065474718409703734326238173873757607811140872793808945192933991634784130392635303357653218962634346446845079281198853660822733330216990277659758617641277310239222032197565060209352831378545463694705840913531414043987679099743820747662605404942469110266245973997719147174423006311107902150132674680755272370183854655826720884878358722507471426020893062530391328698162633878537633481299585117481175890232942233511041648533910180503149063710386089074188788852428012482629761883693768180345845836280621378141657195910204282479519471813283463132713174090515948010047361296659469289730373261095725837138609210638438660668434490901925897665679101679670237724797197549872632116419493949981982246331855009616017336520424825128470226107416404079423733326543832941963719470911971465462433789643946804096374857816570390799551420275599277757165383850717772715240098685464193581591988424847286069409578705061454010586719824889946876129632200248601672969873513636116951426446761289034384091836890617828314516519010093425750643359333246925165493079758022494336554006868341920707121845605500733199006771503891775937193711420006239692086889868825011070556768125631383939871663614445363977901435645827892576302657808947130230682180058681374481642360516544465442239628950056931026149126260679590369508483872362723448275317996888076101885501959277757704963020023711869582881940257295273440879097846646516124667394133569798951574367518259667904170328412093418310667622019328245123162965976340946535055233668671477276116577568944279664593407315340695258013755683646464251453672309216500119627737382256890823564314203844512328969956970454346225458903316135810445966102183493900087737423023921100020348876870566153571839168634945265340255510589018868062497090978239832567071510926974827623644826189844734007299946968348616045944339832989325009041497116116370269483463400520706423524964540060951350124414058057736838593556731513188522373946520731173149464843038208927258905986517408332663694213855218462127458283474511591621899590579614688252046918493857379599770410309895754091332615641689058345961283740712824148708263149437740059334127391376809936352489857655768747085000843154031502025407602426769446935100540842399939521413276081876956514711371422351935997932597945746128980690884867782533128170376024017154170718078628631836657218864586380309118880347015949179488385747543082694966867365968870155415539398069870602198014482951894524004035419698356120036936609775233396551184631396647717621305544906200939036964649232772224566438743923368961414652820391938874620364864177687618057634571772744787404988652532410011163283394427866100046791253780471430447324736252005279505890903100363055279786890865138803003128156605470536412436091830887998753697515695511078166533030331105705254958055810425357771029744241998658400417246329175744208478576343698418883556137501239855406857793977747522516498349413619182497835692127362173396717745215733466795482792154051491112495403018403851106748912430694226351320028858214686491474901117911659757458449584263129417139241960841249291607254862529595928099189944253443409521116003086563670623598655301485516194230043935051390984235388924548291312981356889201136588067893102738767688424078955540212841577658342498484066770248190539285461069935081698383075361234190229274279621161923033916295560819536034968147854107186581905097816476850116549899930835030253880060100591320735530207923462123413888915764681949894546410590212611765760934674866327875327266850183148496925218956294871907000641372441676553290885859848460026481438716352230356680043596159592013842014328501067397679598431093258625367006418843213105854747454711751343638894854714052000338531298303834527454537093518004578486471097942350327222408472681690283368312342959246924839027341209536934051895956517360384506767655930865796501144493246617253672673552845467079301444004785191629423316052686427003532642678281163578729217823476708426368525446472865448858704027282281293785092230815293836487576321102745678470802963734939520049653832564634694188973696784663573802404163290344577063641066089330433191094636305374059704476922458782038198208579432071982707744970777823445011149858216914281889919344083025344283814972351223521849282002895168466681443003135450757124625265617985377573543104257205658196408539430097230040043298466033268965025503161041981596587703447933687851636458451217263735368813225566839465373190249771106519846012335935214123459584126449821688760144800143733364016590099784595530560996011846463986667503393892082554298241640651198225704693596717401504298213940629386385240756435419105132321170111966218590662664387363422444278416989967381359852738044902254671084523122589948210878385792389296964626608145831678851748714916830326247186751020954405072702607276665803812375572475122637287519439427545114586097511408950572628795876824848658553196661829752420187613287078185599881307377165921854351950042240817201922937758677944533065343827306581886563957202575497479507782465774131639207079177544675716373290319986133618333816693066754850206381365870895881026309085709574736607310512941217180116064061411492391396865538458543144331552167306471982865348199311902887960647094318245328699343691767602238017418434701472208361139000261330800305239918549568288744338163300975350200574404521389353076436171617127263820072524102772211405108219185720117827200829497809465380158111970857081871354829247419297576209576184122410289813155737147059316416665257108306031552824000140724176389402512023399152480264695821196043471012873825831057045331547293675886984244842753737052391981947254800401565623872801986510601082204491396846823688302489934555401606917047270255506363532974398581427497766833444471335970366517878052682504979742751227933830532676305935820913616030414260110805770006383727078807703837467846396453910563040440598250022177082205136979188963491491490327473772193589316658228827056804111064842750898287772286528709195843605559905647551959980338165288632848588225883737538153083707735580651478495884451373106594160021185426257439231089367650253394413796739459801534883853417952537808923912905190032619827998319760104104422481310989410796971284088423496279955942294633449003469014771574850970390309139512259677103636861559713392746840209714459102187068617030119725136702795979849779561649005796387460563512876489867475264171089683862918592914334662029411842179302362046694118000482165910103695294994087030099274173372343540412731616825810297913726548922051642854693636427525897396793469611931131433602670427576042145241862179432416499337625855464709368541249878161449709891868271595291593176698487068521974535947720677867925968257506945716848733738917037680832044393502205295754450811660748850218527635577250967643322156983039499322257904553236125409295393822911746869050991331840619976120864685139037239347414034658567802714416014270732656530605887030548872370881591041413180484585220160095303554660806160882030368932868715477656602942675835803853082912116200750231188387844235690766035337751405937877666436148070296069189739398805995762987756814911606218526692284862047710758381226173579723798998388440066115496009011514490088065041214340632697838951965489394457837456645818286339495154011247971087713122336768880806862695205119055205700444867354792694545226220341548687062363558289141577725725128603977513835222254193847301578118388578809667033728153117391597312097598809471296854887751708201060486512287330171415663991808053418671356188455662285077350951681381680295297111952077936357332354335181783081078607873166671542908459856033605175145884765120988946822615604835317920806001940750426279870803597722870084493219389986901143543002806977770793569443187477632306249585655078341213665317672045861878685170518211827199745151932209975135205442254402255442916985870273432777902071552572274378415478425870073985204563199065098124334300692440759445048467091399410180783559123662944933395131966054452290740326357870007899297161654932623236550947155494428551614758013812630879160498587336272043517041811172187430786149563275473373577598897721630101820958242154136733786296414238747377997978158972542228008196625003061529831833437185964420244719778907458159081442496214102254125951221425317312449367471670791469029456284103539280994742170811531257173783136391938048332812363119526620992895114342894828688096145393577422944265351681591792269525206742118040818065909948374858486372330239048860551274772436904135456271447603058057315159786309719952713606993783558387493199893495558669981779103599270336178164391881606109181884782849099499955141055622705432488460572911991464262199064021270013213988095362386709673384959202871792211498386839625871556722065220455540290189310855924031364412623604363016655694477512312660585775514012075926269078287026779414677091926909027956996802653991023806418486240263215927695690375063302012204024216681382908799288917951471917112622615556074551975258103230297818621239988571926908636082393433042708136718636923192230938656125927604525883389224429148757659961127660882449502976541117319842489136573571896156837495915766890296640711220809593934179672050493189708872962112286131477049012284647985420759505183040092037142119974346047277677140333790762600056626142187658190300052229077317287901423639800565421520406269731361039811310429662462271674016811104183099254436074533204901593488758002788860308687476331965282851804374440512736324837927809132107236611067264320232548607808376488535219673473635802392969159799191832919103841393494597627333692490289379157460804388718766904789979252963688184496053202135923417083619051134881928361667616083496152155043485548534023339578071038541402854820986935803996021067866135812980975872347869431813948539632428782353497365700582563071421361197503112596366873312279764683601558713894231122407120767019384768029998927137654559180034887199900409389588736615396208288663478146995727648321021745645260263366087712304811744914550810955166300007433858288005237118601541665282239492992040419421847187020327453708691414677189764442915817502206697297667798579866285399216922909755325065110362326260885913441450630773793693787124718474281780537751195273839811377387698576421412045358605778761368100956725678006403414748609085661455984418372655155211044641533607916190871256694974017048958793534112141957999023500124383751991864353330965726409695056070613397488294341216364592676854645368198509259424521267932538160482208758751989355494582359528505707148824128619278842947892975139837551342888936725956764511068477745911686021678933089377409234421158794794374197459080917313813053637733974221966393480932867897088103981965095840288891717786274844838664067238403504136986377080842003448744518556504873418075020183352891156656156965987691826670491319224720788714495480483524251304082705041350747202795861911520513694071856593020751686883885730694603300759226718923992878377223058269275225454480571963955634623862021604815026508366237542500035616659416369128643267491753561643283523615449889296932682579330034523152702519299091017770653926735389128917574114963936767712659513842578943931628924293387419506576795992882334278799862789742128703625355823247196263450440276242481285066057322416491371638846418800307621025400486522611901646700033974626852917675509666811086440734954288648654899344517552999512096258679819845368555567237356353149060309290655540264321317692125068449060010863013589200336243510711566237309730977953393259805683750372688462680510236826761714962777333056966326712367968352574132570730324444568087039321607927042493574271423757412331789476211192396950090621793337322986605495378817081797693909468454064208443655454887769452411155384817347531384321311419164480504225338826783773099952955630757366557745987984176282068434989253232778892887200566863681798444013003996452424471517876154006321393202257825240283125566327487464573659679369930129290593159483469888575368781242328335676621685398665447202425455039619267898516823228105557536008047740921983558049749944598680990413957571163628970361431365814318706474849534223956911419588616410296107319488044661953692182326026662781871541968238221257765979329873933404184064555144063029071011955265292318422387774230906149583092247211214195682536909126466090094597431711046414225178907942397818924565290543354815788114401723737631711337247134880951594630122072546807874178127882835081453534387527902930733280108630459841136095878424224566875916018812604229009282755910120004070461224836965051322572315843092984626259684480930151823095981971019158193731682028796125294671338661259922055502921756541644421495062666628512781587812397362003841461661786288898975824058991411621763626164700409172268778226576129565752676600176761958912823294201549975737133603536206365893649541594287526916001628836382919215174101834513058219256263725874160470036675205297737235451447246760396846584218644901841253874160628934717989100990891179383645506952799699776505870835461691065379953726156304125211138110733675519890982755397378918557487843126074923011912780642104322535289917230131937070994367416955564374574768595416013557831085637785783813808040263985151737219112767254418258155620182547946728531248653461595087172716563641219860208736357910029992292277435154254034541366951722020245638672974591355878409639054236235697611655053771618954935638463232321215534497754299250313613886102586012129505047837099357252250073343385070080660182450817294671837283533819141796480299528976260114358208439746958415095983565212594270439114794763456464738712958080732228348335441930292649129085752858027363486940568589957387772128156596242468542345832200286294039166131684452490953428617175652910409965265602902657978793931976558848766479493981241015075775888842309578007031978127838042443787606880899045789895679613295174646269294449333979088530496290683821169161662218647160937625725249028885394337723852071171349780448705602271250319655811361832626075575143898464808050571567919442634387252077852237788657170363010561984252322378470544903428430090355342640055225182043575840463078107278092033505031162739314777877366243099071252077953416016097946774694854655492828142200541425466463452231984485382473046101718649941277823774719440882430604604931864818344042305505417864690677044220082626254408807679062220513466418261170668266886877343457273751929250990212114536736221281483796590565571419884080972964793138965201937779044115682187487395549336077120145320978403754198416109359195332868776577174589630077690797262578135819954135401408762950610140567776410111693025117037354081385145672015717321308971636222740437848830982893154797933954393994309488921999664283835906305189070281608572160457908276757935558054775647530108968721291612300154400986090917282608895830055431763742336369593581154837566818173220944136478070392895134593128966167986040972098902291949968592143136662339216038565842543677571554543996180396962587427057950933952214732757856405147080600082566015945164614141009220541888067181987472047986845396343661300480208995620903516062268569185771500558487619883400584637088452618848010550020071278937591753664096217049945397003913234660703889164965098163176139999683997641932888367060369335731948535333407384888580609130169456142937039946900468909851054463913395369271420854836077949455305936750769411460400225963759233983224058630440560412958706663402776940858216919634497067327360639041164741782144578020586848415847487958516636870106771176868037197155969342654294666480825058586621393953469889884660578310013842904495447481617548323758950422281248441690276588515606013316982669706809700984744089262322689688334692299263205176147721162002708452520886248014514658377076352102516051317159671411523276783826841773332795240456720600270492707762255753439234998139771294669913808161248748228901167622246426911272064370729854628571609488732604159015782495942249863422821781849854131559138619237228265985106392190082554198822650769779762273487891035940864098216051001754324697514722520615370448242291098641752995428533060296991151094666963654481898099232878728825626925081076705190491767584708423088613023360158178496048028399283435296687418304533866627280560355530173723537620008997518771146920788272624665139805857471953879409357377485019021573280826098527175801949567160745339168408725368522113111498067764585430360356012334720273502416220305646358673948431433730182136401677870148692562703184390211754241870745433764968842380608448869464517443337518707223697546209173752889875980508486487671939454200900768748646634202594729707812246891206427230564547750146382447680736169439020716528735320389964541209832170744319447661777465931630055045390031386762829582457193141323402347124657789227324464036396608206808635476383584300156178012320977003942152710888511307458728926672867416180935769113606650774055546847776662869909417868984543907676903754203476282376963883823505885289443207719250339067087781318372852907975231636190516501374345461820926138165590500480182612456745560970302739683850506366610317973781502336178492170347155314561347867353000603669508221424743693463445768478181402036501744718740093020404670493763527852771157872881093986675030737753489386329539874428983678470880579757804908403178563381952297890269918330654236916062144163243734597037189506016791771506761106875324247694890351262807433755707303677049615025400539744728256324345118819760350952698324009591472400653710604950990830303532389521687080001087179549575591406971572166137612038037133748459790794493920065407677680743658986734774709457786030993003656698061040645540322970705728193795745818226867386384225107619313339155167716710531987307055868753312474062811664439350094300437096345208911952986706749625780950810882669322821989979584331685412930353146252408402540510312911605591748093487812608977745949949422922558097425148347970757717672222181888023691050578914278710097838821449388795461100571294663363051002125143203819243697767402175525544670400592141732002182084394803767208660022085808310281838816327032243222680286428388364831295302162003812485382430909876547901524939742588298832922233082146420251771134041814431725930765989273191328127372285619307906810636601763144677090914834128770401076679368467942796514060913116394285029572261053026761206207780769183316266270143005701511815325389086695350562898875873830464818096025932862128045674442684462733872304013834618941357955101230913344985953376177972820826196344348377173826541304148443678253924170656619664172947503916561057358209794019688723879455941922442650349200405300289745824955545320743754895627080950947082839216653526019354227130568376905815798524214772567415489024085621324692938248800065677750057411429329107238031355777303542670920842124242024412818063607237031729021221737277323241529131900084813891304955417037146809237357521598262442610935141560990333588011454094087091821293495203406588802282029460505411343701628223201381158850509546404178062567849330285409596675798683270177496765608341959272992090296952181238898446512591149896200870921233905419568589591480413096762727269470696546847438648514285430539718330485110483531626405536802960061566748252821972408654120089648503186395105155753653969886354235368475451631659467602295948059659548098183372926054057757528389257295218683082777347379314057941075064610127369453027787363440623987567738838028141258834744735692403429898680119974067079332353230267714753721584480086488504364711033628801560929323683166538406091073271933295945159844717581969329457691485709589613458609903791289944739492074092579557626885134850022805680530893747674716580807944730392565686580850476969413977467471351052190869270013317190149675630211245092366843439833540523056474489117238092335422188310335319583309415151477405667222075794235008929161705257077657520169933870590550138572677147405941902301673445757912835217960995137193011611346277277215779027007871784549680417364215159581297539484419720886748339913944222766007371244843229787112093228905828182070416558458666302842765735918439828678386236743300133032855120334215472221133934222986714344596297721530386927391894718168517272738152032314328673613089356673254801969623348303213918039356366614584678680406977200439905304494454189926891251062446599613485912720837032909534499176809701420376988568525171923750060991044146005790550904344344351004934213759793240706955820802784926713080964256724841300291599917368828904523209935198675931577278579933693187823873079296753978186021631550317077091406077777495823480625449328878182525994303490051284298529948947220678985788922328096376174288430781232755087721743745254048690245887067748758216415487331002984542173502012908225655039380956879921140995162855162976736003113652919071776143507838632278432546681644613500307156690892649894548391693945650280165558987621543315548503671142873797801898477344394479488303554441218975678231680751916344781444830599187980851340841407782132416399527920571669120252933851195646245005703905888471948437939930296376096932049697306613771637801728665165670880800179261593014449888297029975911548256921579678025265486518627437471132190329731234629313768117248023627016546927832350596127153395913275184960362661434097197171674805762487376535288172130200250683502729998626656499166384233621521553984902696825202658224841688769979311836920232496760573216650898283608075130514511268404400767859587960977629145947916369957283642086973673295233037091540940482736136840451035091491406067384717331261477684749030498578585664058725686653945546364882678763526072799998362834578467204258353635582956289399080497692412373995263945114003797129794564713850712773695197313746996182208587862687383402465225088094523196918159471315103296426062483545868375812613659495456438753456954030633519928681208089907378548981179628262389735818548843567482108408615336697378853695068321666277202366083649858758460944573495998055276621595615204202414020118422966363312521182885553760122846136919038196302156370660285585502806586378311756487777372028461567141766614934012266070796308874231701306279040731778860476713829684825016336979112468091365296508623445954793129291545281834749214982832984851669779834719721367037948172864848999888578021015349739683381182358303076623216817435287990885869578758719822691414087675399945462638535382296226716653786762356637107327089291232656076956280166559577493619382799138629823987423897130461919244789719166413412085554489796748620528622557534996540454428861715593496123800044421801034322041765781185229782979789827391430227598281154745439312435742474319670568366248940851519693520833814320790862719648821065448886520790887201561972357794093311923175351514591324196230549951074259985915976336584307040715163122321878579376289338153929123092503621247290108117905161789444851303658517947411620206378110212174371812377471558683512670639957691396408233164934663712933790150962401225105844185177806131164198605442757769496595994291892971022252150949447844762303732311291321360108399064772256296184077727783582878555033582811616463514342272541787738930902275337594656499347854074453096537725369354755945163908990449825675254591429787288982842831571989654188808416591336582860696950183663149314228619435247305503733834137743940544370592902998520382713646009696579640042741843182857096322386615087295332928118202035879443960515130786985711786083476774903191891903053920703918845119831941595207871046960772889242558458882222939751530027539335821356707087619853665752202715064676541382863660361547953199234742976629715402730264912893531060525738686119702020484719712086185169889804857297597780685205985143571056825773349828047706279794197101224370822448636782623456943977767942078266490257329638164790779371549246548903503016613340147157643758527105082147124064369453401900325643448595323608356647003655409401421847658925308731102458276866957027159075437237023644651270450660498541431843762359558560374259946343591080106000122568717671118453376952583491813962090132937897565293399305306852828029668997077756775629136660064757346352369135855849210631225110559061877452061455948677613656119897518047990771469227810101088633570158686056448782056740763864925576994773734811002234186321571645425431331231744959251142240751972671644721036586876140261002226274257857470316311683631669591419220413306931498680985633881556307011419778552639555035923316023920940072033099851643969797747287360746166463838825046605351089531433877218639120440909582403147206163440422903553759495791012296199399265392713033290278075589863943445126191014347198261072101550130782424982692657391588737461000377556737947914336279034771938521594696366775331796130570997737919193839252979290217414246691614261732399266964766462599366993077232175215234944108069715002565030754416489201356092819058131766053541274058791314491792907066766900831241840632527872219066403803563885231404508562397945777637812869978025104435857652561594031478037673792690271326693736989424874329489117710613728078575220548788541371120698914749392955391107863101192802884781633136903675801304349206521041574016267777386534415762588177826640345763381849246448174420553915031092940266943090981892423728522746868348865139362069071907930872348708765885123094559303112447473433525527808766720792517375141289936534161738564644460852624049743978819110924774769708831742514625360553141120995961581106206252505589909402584664999752885544084516429478422154885188929238472233295050784875007984980997393722067203736645454752911813816545924386171047360142566512329532844495779831339940072718431542892403549527376312396519472455022608222469216742221665610663763245144178424154563739216922348450991369409501918962285132718601357594770042661468654269935656666925380759659294781174143066277458261877775706942123854842856987590312366619845980361944653269102438863195466316709967001712275145794396615984321282181724393723426725840166125220213755842580940637875770685466411878736860989272494252803180033777188719874221009000415377795870781945610039776347834631217011536272007531998347653354466720318763257583017383331083305313741910562538138159625141468592284852652465527531203548274643346778874592181887356602472914444218944270576415832871281194205539897350677582927853599643475377124474047075719685370772627419572929136087014687445850292599960008295529157859401006359148958436184229700233541264471607348963676528394693850797595643159978682396945415620608494378542588631088968737030735627755486173788905561644989453585254593395906988941758246110973831385002733245485430831630339575997683755482174456781481711403060687916774756327366675587378849849105893816470060603533107837592844386900221506939450006624504450927451000961015552017227198471061517203989431984410738692703871485259348522814080961603057769474823637277119155212966033495474842656104803517378942113849285244211558148842189713014089696758177943310601321373515890477779732651687330855091325653858279689007018902593814136016520279377495578845374745680004720462603768141741221907835466756203004120054005512279809843385175620786667762077808895711981382267311737375546245174766574752607368763377763203387500245122398734969603172627576101548185843923517693344215622949445709002823972927999588662091722826477111972566525956832595815669201880513008138391999454415445780318968979344959503847813277219498175330810629257923182778325013798750507106895407608714942424608561871168855096411700010076568426408721153077172446908026093087179846754791569917721464302873087499117944859154530470360662148210984025933486467491115175049105276713383577462251680164988479125677105319422488078048035099594547341257788333363291007310294781762280776658234676855490291373636889076583987743660024580395451370894608651207024886574293683265192085096006585189840577641426691486871118489669668810061604152609288870905354812250472526316929000665197800739820234397916023574843818937895283519731948108577121201814538957914696770565321262340509944794230410213080095847167542812319594450158213228976300889553739275235430123251750564833054237664108468776032800551751299271842183052278398279304129856172370644603899724490136790121012382723278655863585233985076673799209217610199789198951108246635812243117136984041515451794195245107196349986986802129443083968616903926899072102093702161688793058639206797522286894648641591740938153615917778599048774112675582140878117072496974947786687048745556980352593572296849108270057377266116471802208158946422337861544578088083582842320151861688307656339800731080150639343430931853692960469436801042056728681945600382256429215007594292374037260093957673049208169656236316503667920361191113604581149726760480846208484840208731410005861281972522947042454698815088548447512773053016934184414780183701904971232478872939220178572686189559332763278192265755815380225038557919861846497943932318003379362852259149705307058047388499921384124574937061447292164320681640511267466859579794389765125799756529660588052760499870883532793950309828532683658427640783923724192010911534618818175689930965478150534365705455001512480236372750161843679801434673050103026369070290786605222938371854302135533960060098485797337654051489900957715621921222740100216354672213420234430479724276372485717165156969721468540780820748084506177957546310631079395655234413230043547311822624857849168272336685795025387750395749313269806142118287808215166248370167806594466273781729535784441936154997483424176997806938635922994234655949235036990727103247465170796186792556485888256543541899738062568848820543552989557888949818108126208341211502221287895629856814347064957891346968019415431781276114706889641611363023139530923576072852749277916310810138922888976268087262614999844289461307665110019694001458522829935136569732821884964724297890357118733067414312294948250198134196247416768664928167199925084534244472055108446630514048505188195637710967718992838306031761915549778387376924180091086999659849570142812641961726861636655891011890271978005899637233100310521026343673201334039856809477156217170526219720593675727237775468861168754182579318837610543693664069343412247639723704769112865807938544129905038415712405888129823690312986020964028202442244550581879098777846405783941795406978996444562366296022858909735787868478307104533726377346050596021751724689229659890258102597518358699404851722139495372830545416601863456156082299757309203035836699773277959007672283090848059536051276959708400504978674234328850670227547590429291207995807498988507949603743486915930570890626660710277370086804044771360463025893401741479559069817406466095796432821851260865917092343411179745088457933746941084736534340535032093618758821636459651807998420582097299164971024851835808624631269750870402146784042729103750231613239514577382947320560514372804614271852541326036086898468923937371895516864247019262912782270489462284942623342091540246589845018443760186099794751464996403297307940663465783994850125141706815784244599500578645808561781606964119470111978818761877767429610289842042138411201942197345730287311933206123936529943278947919673440455827346330416093479751764131018319300674320386480403400452773857762662916448108692613816728273758590289146022300423768130886926290469070386248408824412252764687634968371523035907585216910406832963628796517098192403578783471545747612038981706077378074063228637297309339509549119658256111856417614533975351137181581357418972866161488810875290357505225249251976794588601841770084678483018147040283451599707192013379630447124374017536529344859456813723138934866004103094035238105866734691766690903260078078469187844341599183614467679136005017519433543287819629348945614652536948787572813495743222173714849025892788480872606565600785146403776028517377614704386833407491165998259834511957136119069398598070731513330009606568623610945019307987984759419016784484963345965493134694594006043562446954439325903015417980268617063647439685950694440551726044102910519013881119623797162825193010575467443930468428708487255326617228497415934774945988531950451848152531570501469465358660662619979613333294508062189025495675611480922516751753985413499457332679456195172354662641724964447526294193034544284772322883742639367517623512514300928543736679688152955940441656643727482342721404447149932090808387585370233738091770731832378737855920769188603474449194113793997969293889307782678823004837540528599410562202155844744414619458421128177090524572686963772464703969496297526700654706801252440579333153654932604002484565580708155973866688805703971102338677014876391149176120517074861552090667052870754998291610086234502315009266959072320488102198339550272344199578920311378651705815234033864186813135164417806818810184631231945968312324155911098190996731802906984543920073655833904886222961751922878496335153638715317486161645827219381696552857926908565316012132248214926692265589837133315825471641757465295281443633018055498868308184171340961764100116374187643023142404678514554216072275956493734909853762705983063829105828629933833654372088635585459058391173585139073200089131550930453451376285667961819314916823019122792579421244830585646274846821058697334102170884309374913642941384690033930445082562843055379698138919340124916794240662912499693685201894787740985054032534094291549831928173140109238740987198047740615306167766580519615015059439889231305208995865588770323627615696978766071891699731433634381384036299370272458693187821579984580983619887488373834190817109322575377726021952544314053952064616768867650725414792258922907077148200720825781915137663264093693763712716112026033383723761796136433222357206889333843510512421944034781908611925956935064534625186419306765516198782594342504002857331557629862107627835323763499741431027912219289313549709843105128123927619984205587594537392709073594920804192897191332516942430790894078569723727247541961291613177911114778324171343849076878436815836814730267037470898879904972105262690747634271388112598025247842318050889387286488567378497228659291419752338052135925469691937053718734099476033818484900427393640041820412049491870291736274686187593644812962020303540921038823104484890680120102239306314693226634961031162571538398536095874653994098046619556886690137058656211492353014240250113477783957757013215274900275668386113875573677588546985677853819216349913178372875138512443406158152293214848583910961479474856794629019003912463029858491788196588241575249929256197598155360594333248520613964071969866439009044731884271801853096113690391443021823671240950115326866244045002178194230336194827416509667431258341150630260119639588267334622033370711767618132354994061636416026303653973336492216190006092195651201770223695161876307454596120334443721352237552063386857398625362971656272578210496055096320656538305925212554891114303985224451257364451353902999758581441849828739962793505769163986696968858058236992677628040575792601486846717143373608260912056210378965567872958940498766564180458858349588169123493015781971935715915146424735871977947820139072809472201373192775096329431152459922125807548536067487601229235063251547003307905507975528584480746628764166383607795426740660732149676664350177721043337111229064672986432401140980168616709637370445704785196731187935246005038286597877007772149845060845238692550330507171283800378174773693013076233133570214236772400256218293725686626952642608901927499823568152530835951945247288960941766909619179427993126456297428797107937871981112873641678551263241749224683738387410500413684049040638204809088531142573632917269535311663994892184448808226362549682296500576181316347730570946246185603158463478506806976944390995564499876827189403366110027814629334551732876477459454680596275768568645010355800889690812618612757698759979493593869939520510496126349001139752749269659310789204963831668121530021188580082732735901124902945724771330960159678717977249209387999946166234464607268477910319186234214369326548602879279400041683307561375621842997533947170694699777652646163026479815052564977345190106594426928404610791968582840524960185877750031386834543283888398143755531430546301307749816917945786581931060893776965383189921828012677548796644238201421936930117101176644920555288437568975705945143217291249974256932646536126664159938754061647913611044325459651568432158489209457500505790682370712138493157195863864934984840806120507598059682281028044590838854390103621021120988678479020501179798433781272231684449241333443047949935961190106210057119045086000757430723250942214040491981335317289151722569032187029106395328279515824117755632007402973020715829147155394284454762193255371859141146220807213857194146408498560603180880886669257884674864053596159840118870785849803036295724234183215386898439370987490584984084686711034915583053451248562493070224458014535769201566828678899941286486646758980827057651832460659711943716462934819834275355266434213416374108388946087162911130197081810352404029206171965162143241542941098212251669476426331323652929910683823157752760890721841570948877322401477126757817003474982770302464161458073234257787573268226021085843064317123938328191445710168803732283234443080462608862497022866110327276811984970765825032994088423248709549525499615913303240540883891533963992365132683979508552427767688445017107267664564403618948126504385737200073192830544320359640050302596963573504512890529319228062032743656678123557372689445658634339065161475339003623702311833694520492643365546539703982325860680154509906045986425133018670666461376408721384327347048181846735839276922986311672825894453890386190024965341870843853320682203643016647425974429798119902309690100367435256875574961467013595994751010377035750026599871146944516061986268706525296321501602461928650541588285788396715140056048223845660296034679810122353607908522057073401228781001045179598577302015074009794487757934786336945210259560338294194956663734005248778369423017943145965753922063901935318914879360229981827890981536036015271492537214032968188988644143976562361708560338404383522799243467037929637725974246361280466459930733793956288013424639461252013214211451781445843395050228971463056108522101992751939957328396168627988060290717967656289454301125385421811508816312604053885398947554458555017180266097794717576017739856462267921202949582492571955117078979832200485372091350871442366195721515116498065261946445593783731441362620235013720518822952099692904823769667100408205390042891486522719209724563151298761520847532907413446114576217753780521295963347475402333729103501442827795479251365503604954132954168581866131015513353363883433371620326590919524037071222749885585514106464483056736399999539771311286643503476378942778025214312566856612773762248505121520386295592984737482271703739528252270463706649083652735562593352740174601890927629122069236726216272375583506470556783173473072379344997032279485019670125099540951402687101545660706326014697931883703049513138695793638026688163991568012421406031350876304125560424335973560126622278981399857577318103862057610619558462674485595293721518545461586975142395016865075224827484243485067478495566197121613305447932885084639430567775277084782167145958796812393795126083103209264165513776259948030962499454916401930432400828624429431768211107184647192242349893873493357041870954223217788945657988848367098642264947242822754979297743294392256027671840327142537744165640871351807292030754904239217979240869594088448163722359011769921143519729715531172701431176949976211481911931298741275903552528557034086512341203214172169186694519302549138746141211714539524347290760153631726364650608631990134950136600809969691307945506670767324870632910009646060440961705356794410075929089266913546851227996037404005841789243195957656850113481321049818219809792016171615763463435328424539942437225257701457408648657007443884441489629702487103721067258085445748986274035617766422427959148821218035992956857993276916466369597262170795213387975186617571923732932349865416422956302288657058167158392936285332397154382291863775478211388324756934518598000722599762555753323807428689109348499194980748585273301826385973032390637683117497947132877678648265856584148037076133698927890307037274726820180747927849274635466805285564607627932256696221822139806572414182389371550389741932909797924848889221760095546588946210340620102899644469684521267734689625225312380140667643036813639484319426920735747198835408253039376112620449095652398331953284282697944177808435947415611557005602540688339151381059008130425565371269114985839462773269801625505219438157377686330136130345712785463126549038222036973066086041644966875114278440499480608087649721676373411942812570226143662723250409232148642343283463923761046899828938501349054476247960453873768031848546218044861538389727020747546379433748377214737018602084516331213156081327467480708019343141652988421036240953311221252924989877040022735917136664585692440131554986151533438572478810736938679924100461325971545278143689362202183921146203262596753966957134311504605098317791186435286725727663565258108781924932954652804647549756741520831134032232880781706863953224519605277032411649531092695133685035233191864968605471848742938390286323530806423493725339365286815146939910417282809632392668977858621778264678938847832247170389860275374458099853264534315984553750416002666716340175682206176920912605468933408210892275696262302251474055545830650309033549883944307820820147509406287036492268803043741520856101871978635865993719239667186462976572527659799156686391677626608168695536172074608863676825478426675296300301560137331800420279765127198460794862513160006354655784132407814980521537466888523155169808426732839109164318444410147523926297689917380189125612095429748728424746944170896799780348529115817756753290714650665397329994626424709509745704645295178755886994396134224568348614137634190642272545319824174547773525695243774177936630096187982493823773969352372395134203077994606427094851315622730120015876527314876657628333875988454581339602879237671850783206450575378813128222446946871037011201781873837746357762636457909391284766489294339461965575493339277654464311402966358717684743908451953936121346130197628908690375762117379612261183635140115599423195016645387378024813976587457491838039253727397894769996710092865904013428572743438534180561601322674979365152973405123559892040031023289831585602256933070191538568918044671870597771627872180495786359212226159571009721982355081975936609682427622331875928655032532119323576547095123773135494522235521823408723895367578936392071214754226462531908736390384892962931150266997791334532992707016804230114756671431502455045233576538623029561932241466997405997984211757024483118009456216724350417216195477170422967134246843991579374065186703834491026739420800902227172864037038828280536269878421004384143673292451935713501776099850156515404055422093809927954136473267127784618912493087340564299445238093769219813791275634321868347503536213303530814714120579819797037513269005604765951643693750191117102811028637892471486218705487941454832966162626760564628737076511012200458301185256236747364933723423870041812739416508973260681493768811259857109107432103786512229689350289622218775820795383839651924107189772177779126164411089985561301477737881436702853660631316505643159560620107610385910985160734099315829662668967963691067268729065363211853147944526901886500897133347674867711531701283230217367798878120939592846994216236808157557672555884631955652149440756684402870952601159933774122930597500318899455561490004423747732338333661484046372168550799285072823108609650727533050740133142140271998892339348635766384475405712658562179151002703088246378381813182102555184996399580606549841264943147676904572297500739461952879411115072531313398535876194677029800347947848098286820461893304717686575412813331135976097928220761295693054003317135568677491783158883357330852712561995418776195963350751976714727175114894518910933477289363072387475328260221871213058608004579491038486333202316131682931077165761554562006850761334474411052194431898341063687414982074743518265072845826719085962223565507267707572514050165252886025260511443509569065069462565949673811090213109834220302595885350856891000394322615575281684118138569548127353921045001207870460871991420843566405372176976250656514243640405802744947371912303992401528396722996393872948759514785825207245820545167327285040578022268740696927907601914351387113322518742245994040961934864390038712568239426417079839564068221830873689955260266060533537796101984530047898753423884464811737265746619151837142010767723612870647727532343719169705521629444050972380661131788771257321265629070893921566287796593653168565643642167324794466838962176523244595376177963310583609614704839529504194722381992782704302104986841735817537973707413142930615704845297212469638438649842393958960665660327704655627683911816564126327997167460687265349767388828934298060584929998236553927767902251280750939673412730993633495122763778782916790048628961452131064754574367435222093575322398150992640636622142214305469699803951896011454403396423588828593072408411867204544385927536119122157020762781614963145888558269841410537835809913118758763057424092780766516961446375685153979293395176137428903611447154232345430952874744452682442832446755466827520578596587865725364193955837899778060074963599390537526122879287774091059016696653065083643802653812313217392292247561346068569771575970322191870125451210516468441559043181020009238355071311629268289437476491378238383854778912261994049882053420962925262578700967668591572246633479066272310945791196837871951392360626720475024872687799371152593488954778268416983702886619696440804495519830014861292860704486462449103975316761640958358132564279387011453892628501340201205843153537142976424149966085859562036387027857911138618915020247786652527481951049766955461038435521020675127297478455031588747340242537908935531953628845746023306450489559079943888568822291636695182442805752564631903800754043440179053002037822064870449595591875531337081513214240626223905011065095119842192778384975477754845428896515572186512068408676777727695363579959526447803503806709412204033128765600400606343013082873538904554762337377706595723418570675082560028607834091369250100954037421098607728400202667600084501963726448740289662060729032803329472349635156002080373787523653691062009346433767267326600358022875785944510064424955348898345991173759199675705928533373194925549015916249957278537340166513648841031237561112012683278529859436106283744648363938695858422855975110106305362270819746205643933714172949674880699501492776163429383662768353808998954871272417031740224593907181379505146416700275898183929932505883992467311546595693125831486249511523029762336393729645940302356624393478231024809825788026941024548078000314035636344605598750581153023314678942771537529086016757504036408246564570600172725733111182032170584805195917146572080040773599373950140855920505026354176932642301483999425194986576893823038639164219700139296543945719889558187449938706592543801314642935893861100870397678741780110823726397660270636042034903596154757370490769975568592664954461527434050757103869297632226936296120152505173509042526514353443674405243785263121301302537227494903692294353153063298104003957170877920796779256307644915243362897886130327845223103751387835445544049194548387297451662605951138977109862839461101374607760027271243495504684132336439303685168695270812619388937580442331587059652248864666610250301281252890113029532391295647495660360457790407033916938686547639316522696509373094145324546229417628525243324526686345266240603299810535352793298238335425278480265123815672435401051689206221727345603663944252235882612599234301256595772142229482528179673332551415216513071511399213111185188559158626389966829700778721637110846193963481048863227839994963489276810940169655044068246694120297468917581534951138867151076215632378230840803560892677815914651568973311752570516425583863137125986234701190416605551271188544025039218056621823466294848193767884609472649832433856900724512164881451017954944463825791976506016782037347006122544930069772665029511683584752713860913831201920316819005030505398971104339739650901361247301184742469722755849086790248365422417705966284012375897365350452336623256375829415733076633852635316813461581537801441537817850898665386743289600600367643340275320132953375108321222000625077590773248338452926212835672984651883676774966245038816059883281476250489073795998921150850346652108514068631196540547013464404881687157089098109621670224237411818744006891274155308789051447083619292916354847994895225550857224957775763226911299568616421828439410033081140398918724058590948182570170280756428213738499833516678388956451336744104623539374387428735303241111108026805693416098836686238717285466514366559783765188634468547805952625177265258626319416225748013610714122983770439736753737216763522255659222870419160347431786844725007387266478125104750100336928627355406893543881136066192969667717509664114817617526899344919694237931054578924789556173163880088023929792849473332740140880495032356254144938259374098922783377742651271955557833266513441541479283212844507787637465034945800899934095305953320651705720790919660716146672935954835926521057895040585456159420347644962101806513082156636457097324102347657970110609372312184670189067014107239579302857194174629437623202107577126721277462020752378997916364245219069382484151243934204331575289557135270175126744946687680916666864192982594737966341584624384537869847095387317546065600215564667203255855643259023707316447628281448392355357334672327906805719651201754825334216410882299036253917683942505123638600616262191701066443189755066356258180197005929274435873485934211704370663205318126725911917875460955607993291457510436592430985853543527131861102685491257192128479457825469340341229177999433979283336641557473131912975126230158169238375848291019870936889133368708885966418253177317224268668298426510269150108503369661104624799723198057489820302696414261270019278503417582867008429447233118083623568533392960356130862289907373824442090666643929020180496999514381040447346328921117022932420085639033706235252239022334786804109347868223023962473887946942885869452225338248827432550263223438801558271129715564509200998878848271411854032361089646542963265628495495022279636344695734162926964347771067653928741307227918065063508605043360109641302335290537455864874713962588830799224302296272839246069420177710132420451964318355188078061739364986590427705300984607195314982789629693489220129582846451257352288804958782186376722551198057142738840084890697686098666808331564916873837375321678651941214048798440387091293366154593126776659912124993093240173238648860072474872490170114655657832797442543944040914373286409691446341255311663551883474115114358163616435487039835327967318132301413130606036528801979002211248462123729620632771606229109815365025147041382457038901757135168203837392020388153142750937383696269770032373623979361173256025222830305095795522087542732618886078095340080952984879143186498568000554375643268153702733510574832495995265853040264895902385562472200496879433011449431724121467658119726615925052078420628991281307424960158614426435722112898977030980142432175453641216994240027412859265520820949658113829712723719027905774533076660521193120003128557283272580628040973873638575400290325507503459474663847322257564326101221016822797607017237595254027823013413112521254383909492745522791233125669096125660595934181266706715644138402272083337073948844086321502589226207232483398428102073346932595455157879070781402738480032899063786822956903241002041263020106959970577760844403225875879938429104213646377965756298213011759831639849403600203889256549955259100236805814376985953893069453431296391952820887435707078314923004342873996396731785977387313687095846822351923891610865061878836707871311790575377348933064124386143924561671684849868870843338749727594525376417799175176557018573826208292446788495211692397257201058818806793530041249361252423638097471305116982691389941883059464665856315777466409705662563048160107443131078946757240593607952150118056970018791629078226640515068465525561930554043768692949348996904194567662808501523990030965211631717971680947811513567702314364234914759902773863455021873470534234513173025494974046167389703566762793789900749641239232063228396190602879116969476030039494258489062730076805274136832328297780202024195896207549267711798216870482456462030629561055630522606971847422536232352557284268690162191869152287348442554688283020158800529624168189874905601811243679993965392041922150635822085044852422510814876182700738404991404536434427851988626341125250748945405852423937205785793200659433122603163642144644900833212701480878495713157580248181219481730748502007415003383348825167432785766014884410098242379123657794118614318976495047244959053872937437270963010533984879177443094315158027697832747988882693744503865058734579203756575147659473530186032233318611765976168247358850909513553794667644378941822441965808837787688307189420677407006903965311861946934546186617213527325647063924612815233539172872293161310558643190311465093002028242313225668780107493999723715990089808925272553212583594297661852691700480320916207054535719247788138891432719003762465500507096250919925634028285132572561463198530519078363202863074075860312705518215972526042447395160931117684374265341154712508288451873071545214261769043753663435433405634256431707827746732471120699104409039794199675150118392756366378189037363560174729684179855485371171293345693434983327272463804401257059624458621456839319154361968551485853575064330907333704705880937759468954619711664374447041975272939745357708232682575200064065015356502247706785171211243519000014266241608338731601491020828706305777137536387216511735101911375829208598695738768971353829727673375190968023943192982268489415025966522629364643520198527285719347169201140534020730685835378197399710579468373140261324577491339464650742382469530708505352201229893482596266948896245483797334028611353278692809377533837339340525388976276472421810376480061738604645548638989678790305355824585050358190154610690536440784658846432327086842721216714306079379216555480195081531883028899382092127989792192796655911919222890482080665297543424836181370619964131086597053955062385793958032343103253432581812178876188732176009340224949369818573832419959088570946106414861501183372591343229768447926579238851028918014444288989195153522921761965006724028088268449151773816727519123677089272693007625233392352061652052962196076556660990941281510215542666516611975385419841075286279710071399369154796582421417955440667761939576715947314537085896149310823510952388726951841024774909416552433564303889230032142890222345810577543077244863329358859278846540384453141208093087061198402223866869695392690776298800534230147925969287621957513612218806531839484381916046158517432473123121599744663835269402861011862303888588734777893072065008036888583412985023722722652289951135903443677802731942391307237482240280144718470227003700507816092546687959170373037338610281685270726621426356692136437516774998793558744471144657218100664288459693713597152390274486730687047343855666661519034856230349007456415238230311667169735631510801078283097492412754255689918159209380145896166633622893499139480257372299963228881913619130834899604918935600978343424593411624614314730224723079093884752916588540626834863994104576816049615079169570574835549293047672096601735793862454209002238515591462280870914804473779079297159516438783450600493974210607671157703960410053349975374300129605446144272338142179072731939940282974886766616114497297676137018995343978166801704207740747260524212483977795236122522729520190369118072583561248296028807430517472996258663480411155740159538591502156278751607600407389039359928859007107447303139159703479327851825032617046142876685277043197467750261610681650254219512304430938857197657552032897485486214348199376561422230644168653349466947004464537852930160067847788496894942307639396700263479599971592460985107646762728014508768713935213010585350178048574759533325688912664547922029003175628479711355515582139032551161679995840945354937853020789965246013707734935370927848613419816884349261053538282771169218881734052133555094974477299722154092734215441378374018831269067354485843963645123350864667378715913338330250325140870807547331136867679418628637775796282105456169364709629640511560135227577630287503788397093662229292176776691840132510970001001621091640520629081543709991473540272395468432939669985232096471067535780977274685421450004830731707292732682750826531660738767231423362528326858404071921647255395320198030816465023433947725795358529767143257750854643644010852661914526746665053954365143133297200388475350205601529718891449073517492565314460427001144868924031844936985285301913838537378986739482910608101983256679542532992570475640141044098346771641168969686631097591001664564363652736754042825922611552971871286030464911074700255008853796997512367050769549976580668258496286942513995248650524238137669450187813089260215796968679087704594815871709686132283928502288694630487492572668350078202446017522754849590712549918641587105277126734689097573515118517234131013936316268966986637270376880439413532292535489107415489633908611778355672265031206455687997173755689899202116944316383036284824581031265630504117554643139619934730724398558497434800583897449890706981589931668897514450829610867553980282677187421922808366472355802279828260965853946877464572511204642968213845476828591364148446136309357601383106034496154267706914118663442149935892570667028605970712829519676163392575615706175021877039742758134085717585641614155660174578803981724269482519186342485543327356608366805947095344447767594312079279525102993593458615724797984428258977700300124989543221559164167237519879782892584767855015652793556133150325890036379683521301429898975710497457894982112190601513696404099658698064128175086784371174474179493917876869856447986771167479647346323427698003819486012210697412878064460525911869633712422326976658680967659781273934425314321368238101183304852803897886948453943742084528977649455205972943468551487117667851572066450777544205485288769457580053007634462466678150894921260242545118630687971281476249722200202566138836906733119097070415089197138998634588948690779478075228397300745268331876465086737120189858036550299293383045048357074928371608767815805784030708677822905967341700641114191537862814789101399873761734582284642114579609568452408555267785326528945481452085907204985476638632893819037365669477671112389291817027148309975588043130750243008006493560194708062912107049637074712364111901050745873790805929203581495269452551770604996900155511955021990789936298111859619753008594611676736908438574713356256716006985044168256547010870561259147012267874411244912796193925691830884231424225084783792465126337925088828376539372650454217618564713478234789954971685083553773628891922112148465875215909320131282952708457855439631734118482369979353529119702122981092145648709976332803981372691854316374435518607327718938253015912550200922985073516670506996916765834202488896690410122426035704958023770572266765672730270813291760294410420765273143377923247186232985463490525042575304958640599457369154006581881519017786234861595017061709042234282056674754044360399187885485085941296415231579555503036363627772096474655249813575617858983790539255329744189307326036115020083854435732007718380902257573489469038786321470437561476371572495504694636594110105089848498343509931080508207830660932987093525814760355170656035842696050163469430442481796320286577937367400552650293331640172552638589939545423948584836472369315510841888643739031790184292829103386134656310661441204554371294038905708868574930280715217425061883464471287545416107579693272601323578184034534350272420067479141939500682443450496522595962719280417554488852849864409589343625808996565388207765765071195148051862157743721108734035169950197080035202237524559020513450245769475656722599685120700121234698372179934278633580104911147770056233420435055473994580518082331109088033871076227539692977465740393517336660186278529841608650412012226234620566131971584808559634298305243580518610881427945388982768007502708517264207439882053591014487323311467888916142714463452459818004674110171195168067635140104006914142206126633522515134118184147098280845994985669791357815552519803571495747660187022416438945212330860871188248102778938433525001855359443759201684701923351410941192205992815748092116131237373097332271618545518608596838329577169545801315102888168103625589672651200115957048846648463561423156413012683000952897109475337609929199377421947661631737036538802374242642036394217511253971302484704201218216133138434486896416310289954558035545534743067744720919849690351472513247156700831279445300652706004659892626060271902692822871960592161089731832854062172760325285119472937056078962875698632759982379256000775727627362833619473865254335436239277738175823301588696957914850288287544864141368006895346636372576315394791514315908092291446508371181970952394401572057012641302747218420086387957726336164072433096141388039266147304493956826806042651167371524704052688061157552950860673550302889492807771865672965560450811334064016716692986461684161551602882306619816942936042397423331430195717683736758933264520322976823145130471067994491419682086860776833999521830801740704175990365663683869146940194172736315224127637023612359589763880443467276206757745412834302517692898768994990245473006851115404269148157721019476098574519550617682174004728264508497823439035742521637843559262908011297592152849556287847173550070271270063540370914304500512039680220311016163722106480552801601205664712759504666784582413806570115078716440853620769990231211600891949800368053105708345276408181172535445057047299480661431280519452488041019201166360090785085572722555587504658092379531757938797837158089234727098655355024918951044690042153651681164448691902854708446991737512322983819416909286696766780094913348287366535893477749679317273548712099367129265663110445163616335194070651299819137268846583564108254180308187275366085698132997739682178914249178631959549491392637167776002308669763372593150865002775681864021513855160879095521023235704981060683683231640250416795764159644355600275022378416530861360886588276101097293232207582258943591012244105650058197669131182277438072713818372540411157274479512036332144376611162579177150185141268528317431599385474708338731849961905195872181155216665649309331983419596394210413702386481838750521769431371714916914692807163231954450335763534697361699509309834256968829200486735804575322650929493434570175220635499118911381321064935853136492756641133588698911722044714896863117613757243018381027030542377412271152959181021285386613105366182138540246163292384715565487067268789916003698833926270289258830107049609984995922081097921257533124482398030644564592873157812061643473503239160766820790003068479963892966284454917538712720421681930419162339517832466559267454517091728634832388283359640637608112834918605483495261271449495216293281670095702233693863823721657921370549334291740724441594905487323095618629681544543183195034977432921151723699194034098769268169394990026211475163602105994567962650893334241358841740467638062940539513824153819806980444664192195967934512775027823653493775809836982914357446184312208705838567826093903078052759148756937762843927758192666956210041527001965435756958217626138664669815383082360907464278474851019655242272390299990143571437338629104766224915235956202812397678690384350665302327107982655306175657530948564465941395120400648057183939300170413250063389300450858819237809710835951897324920948366450127341846301085444911087258819418058769470354175280356609994122038064147664280004635863959423555520436428482557891264670716594924154805487428793828215202208964376090425484826595117430258065178478144572637398651054865461252804088563932523087127792926435659929058756214788992778039933072491667490947700964389443079670344607102159515377690061882961235086986715991275027840865479682751585730822783328282409893746032823322871408582496533437606407968604382359369299986078479304077497379480458249128308841570075639018040451423526966159488553778756330333475331470921436646347900918938082636481254699416015475271354458257336723780016573121670534596812080900739644884665831059790878055156799670270658702321315062885340583511019808572618544815120024547852196543870910842080963907277790348356636756851930501748120693105928631300945127711574302995188629122788978944213435541094244325639446441321644673547171145023919109411681063111007785702585222072982448544016526839090537177861874983444976869131551676484639844734904696954869367612110895913506824538738625621469649696436661070397871339925988122324273390006939808944363901977962292419608662040913779429840312503675408760179251559087275278683749227638560089043274800485924063492375353015148119424004857871418191756397951193359805009669388987151525028231256793990649456032008076182345091030986997430761908446187677856541764094651866407713447887727627572298307720396219379445188794639737631576772352400033024699610401697056743963242018586855063573884315238370353671226020231730794061016277350281147878861020273370110507381532589736625878839531928533825608079720638199033358302456722378073578407434411216837699192841515236807101648186404592698107360332651481538600155127229019469387775022594542599121916563688497142774065880265991065652814155698739562273279988652176961422068667076870066211443683726298522550202269869403212942397020658574083851503559089305358872723931224601296615381825852950291443294724381088115029881479927500349185769457167297412434550749620699623465127229766621376792940517338988283306250286210355235203459119486174667578048607897851773718631371939364251487155417412074893791387875953826893504146100860560798834185285175952178820736298755136208041354581633920888836964955271376001189106130362739116441037680923600758883556419414269680949340976839616562968961166130891567417021499150025068466380420901793648085015597423892977455990135733590556037132188169034833914530947639381149074324986038533964482918999017136921490571234478283119443362438326071413034060925177774507662006130548836201627453354418796302952582072858607245760194976455529903074588034454521142591427187344983922619733911154669158636699265295659664499682959944221720237514836640582562996884541377867532883416877445931971635013838872416800888104738431879581541067990945464526787616053568097214651244375414091006039830158431781895101634322620530318435505014071773789835164593142352886797597526947378028701579371542834562547394423220793083742610333374340894053778375078415887636511667342172129080830698616244143454986104553101975079702773196384301571591944976588970338557839413110252729791466849877438641382470524100159526236147420492807569894629814880944738480864017622289148770865329424180587472163906764464428962325662598018951394242260778920473047858711685149335141133634276847909832225353244771700619524658264753550083190804965963614452836565027226749321136085493595004052513042300601009512390527161437979816519738652254627692621333595327805603976684663799116025722479467724567125476351769669152482231576757118972516048881875957139589857740782922351752193190916129637688673473208352647737307853062238312483534085920277694163313626944504891898177129277359355238262324523209524852375640279445111661380204105282680678192078866816155428863168292116060558362154610175919914662166675334553438983770199544959303363862557132774365429805897414016376050295080880473062614146214371836156259084419450457013365415232518441547198462989664256924511097202237379556269150922823498223958951678907435188412818755675308761516883119142938555173701978564083545032474950840737682060020614998370104394044685037546790478057233433307539814070988612898029452654711139781597766779684956176799551361174286279026886569376830727982292364431681826140177177744896882518676807421824717423733762109265533629740505521206329533951400017435540976244134574310678256940748457431966001189985062773482534396028264444235417013976051107899389420100239472796812017111146060173421957473432197942261302484665538585651023035063208381532165370931653020876917151870897640911725238856754497374973473299339943612530956115538886502430982719604853414793899299577844790024261655684853554076852946545334160953364880732140738546878387841241422566629371156565657154782286300377322563367271263962235896511249674912659228542861805557263061860010433373102274760465163289553992444231738022918993795288747781174264819008034596829499752495247217380907670106581485067856944266698576595996460028799374091795914078218374044750159264152005711391431232139281523900385855084396280885781982621815742098790622145974995749284047193616167879173612749222511350106381593282971881763902635996208339064612001729391555005756330091996849168614319750590742932347928400742810112219558565026461882847198809191289645980899845422464436417235977255089454547566966691917675089491376619715657672678938037869652505016322555250486751576335165111681427694239975146248877301749887612327567058509150446981365198725322424846014802782481066369277393006973625065373408573086768297318032198200956462067599872903050987067634398307954893162172596484521212500159642200758423906397525046316726922270182480562703604460937111483856036299868005895608561797466622462672262513808786712666556073561005004398028858813539615521513451483940914485846822599434911209058665342504651226998002244600102754745527520110315988859402942364950366394496241130157212094179712402292453649260532557317099722535753054914644499715739998068561534453363714493562079236269993315339945883985299949353311086817536839607609933078137075824410275324364113504785779604015445584767824521542891752066104977639269243729411752893655868843277499465631801460985361562090415370407040379508745689130259335649834222102377222073469949253663941416331117980760918244476922288953681536702470689337757203383202457926379123100852676772035861301015907932318395060391644376889089079748021911459843155022151121822341385800343638137872366096105200419257513953963432845642536498979950457833156170467035222804965003627967375116617686896368381107777164882476788484167732837531837914284137520184640945082459821911981916105822613209191621154138211075995038302397129648413330403238480667203044565980786732369825233853459401178835521402639750765661393190039037134490761945293685903369850929114499245344992704252341313159207879353365304439894508185529234843537250550568044756362212881600269512104135396863852817379138210740441344577484760232631202533588397231444374515621491287723565478196763697550931140646649906952431268855840820504038269946527843083519919277091517449289495800808512694441482175816743589208173122636616264551062609086598958426832206108878647290651757371484663098407759390741833320194515388628475769910299482341189399624075419740647485183418415784786417170008305001124766040139068116793437540835893191419381472788320861176763318760602004182311280190703048846322459417097708791185790125874688936470573341588908312274498800431300466284883856356041906779779266899201038748475512587583875831632238291210641600798294137691103317522204502364726189757640421417859367871839081861635389718895335412224719921599661025682797978898908743597170475825385362197018457555357183376504901895423038089806191897634731505576135411861398004461597818473451720843395135520673497512861199442798877367861026997009903574870925267346243211992745498815097672418961322417714491267919481408689278545171167324609937216112185308010200735009069982565807175298768100088204293138574338201121903479172669357579593412717937863965519020425694685903869005754309535963420539548778844202363503092755764809794258423002087970430918895795260491852572661323223008808003082943963027761003622079963939298409845755222045294770616478186211009628625388548297288746659897049260261731768564503359158826624883852795208807784809232641184464148050991948212709624515730216599039660530913809266174040002190939214349404520945919648485720675318245613157825662402607355791977777559018172178628745186776142387978337140069275582796972510754648460027865627206399916886171825516068208019047288640997020671612965577049521084435338591216472361602346846870558992930661051088250594769843890165787917601925077586317248412169612436378266136539377104896529989299781768220234775687314820147722774061847381538808789826269997342876671072679065185387567195945804551575688394744752201140985933421462526515617519008581676309742356679574031495323639532021728807690084233951482876135721748446876502562450947689351457099586338006153601274177747178689653591429054280101288234807490029749970589728879370563504637400958794493152065978277334562754686945586585322843365415632110726968033036072797226434777636876852312110145210484573193109332950134978968977791332935414622309026765785523225315166566386932603217088627011438855429923443052376392344408993388608551205800830120252284448034840335336190064074862041949509727735739373849391772062572033625397290283633881635000180546169493944635613339094967542988737234091620193700194341595160027547981843891356346934849895276579926367394299954241464518837644132772125269009001114712486351388264239451157288823837124240506556317646504656921381563751155110890046094227030241140313386867564761625319237922382925740757189807087409734120352043512743683319511217258888915479923908976434322954615777092863480293183244640956294474021465577426070577981091641508076410364935534764751278776691596437617155236785467958096711422444581803353256104573600159275190670177683077638793175955274146934426731068050322871511409297352612087122392342075240223557001258660963565506223495964944364077005710122204228522206514513966857993529571751944103959559988371032564936779247600978956605192915007746608047585526530258169501638575005198465846098152174272706713137969101429670922551209219774026856236104567058401736251243867116771418488454791971443321259388919114546621762160843847160289717477193762969347906790502368539276549186889017905239397584282578898118154688758496089519388085090537164571127149526332041446734887099570692431189612555814645974843378476059700674869788347891828269413462099140566557352402563808456576727217627793523913765515980831069991994531587474198964576236906510695828500542246411641729591585841026675880348355821539669292047317746476448436357292166492032210814009154585182077785016787341983339582994752366652500984800260190108981505513591629436664346151066477976658286735460318781989666546274224219347718763307107210515928485046739178146100248107115619565028271663208503474270592881530345645141877138834530301337443080939976291731664304368232883049141875847267749797085554712137963986129913370038007884632392793380814392701074800776830185460305261406004608163719725598388366044705692503339667703575483709922279161443886438862842868471202357911862460917150528659172954080041758972664798867521879608023536456083586159754019785510053649377851716447236017175424968935807991286321090237646600721488378547746814436770212770147577282981927868309397331933049232568984868408671313906909275465558282539973021452215309098749553678523111548144198921984959735334811275870068887479334257501381658323767417751106610245043643911998421147370639215113489753725973703655140162151183634985633349594459628867911387667584820096031198428689682798175873050283148868490538008987174617863893489456626067378285961997424265715744984224380540914159052051780219111927122015289432062170609326917149500241016871976063954861976818261798538970653652019965518313473593565828592337841232348088453504513202185702811077228973301753371872336056457861875328642082924980598608833422514749965140291220734674122952653584238249961480932320583095180871911004105998125121097889868062944883515763130547641663173275802846530566195078221821904334227164016065656562017298356513897565359919116596658429586370716500455496582628491279693461249803627020243986244313665159712799622751294723488104279297923455235513240007129362818335302779840175388420985976236671758946114472944966185441870635618545479362302944783264596465848202621415742219035073757540195955652100824480458864095460964337249730719850060118842240526664572836633486691817549771153065091559171002473811315046111296261140140730857686238405765897224764583579081694654964319101234521379067069462804673269186755541004721720441153105502470393288774192639568420007071464346797973854484307996560306257664744451326609560099512334642400564353905271119255368139753141208683123867883285781939415444660085741452996146624708099532051238445469520823280132029511850010392981871635960327296929735495154215109141701055230571387802885087434183522257015114836093944090291395918964874991338615758711861363888053051546293359311253264936034960592200640130501106906563911723110260769304484313799755298502053697296267339854481985419477187812311722226525494414244082719183726291315726405188109745672978105211967495318091547567846073079462034610602571544911711606508807044535999879060218396908731366508269784399760785986221616629222731957322756836628040481498944693511436303507870764199301404376818270544541451650006453542144442843207236378869654085458433277594066207316416778542783605975279167846621936354619617782821703126975748869346733510364349034540396293118158226660629690829939538523113063405472364855530360493838937736345053200010012399916301553070243565784787782515669285234791696773131820014687095025298601866402624127029492775490548001105828251148487028207908112313204358977992049824124939554915398944592037013044777204391180717564886761035127509423435730444109662156068299697799079376158004378811000562568166731066038464411077854148450741463857682434138370700234462845538135865681380944335277550261024780306906224692069371315054151895415317899686977778041051665469204426642292257989783368777608045884163863062055465674030208716645267347972884651973294654935082866578719003903867921701835341398805742388460683170328740244476229630445706198008798309914775895570573580663983197558064249685392048030311743620601392526385847368242541367025430438378696987433133096853912991116931879783692246443623222280509206454296025059298061821295724893993563002080556830159645821384232091338974886985856945680626050133541203683246159142821748738302765748816681745431490683103605176097513551736256236967077057936712449139369177432405420066718882647736395369752843215190141326399499307776857896546508052866502538383781356641600902868732858554085013096518023339420501735463801228587738886751038480598848860313096004397043138791645669354701672193225768590091145878429664875548548384092191660672590153404491663848997454217349857336913230948223621021639668824723931467451463405466684795884404279871169393615874631003522264192801685337878466516130706121958188419875157299588246608293376087540362141797272409137746174508095169462281951702392605480215867510610170608535003567201509851457338976700621609204178812697576026222317186819702991349710327063951642194230440503065760090055893061006181165625949407952838829972843832216384288865397739417416490797304695750062545644582113195904408107594107819877966351338143391439273660089680120985923330223101817659861300568815354312016986848668399800911412239401019153894631707433258258837013645106304989328178449609251443727874171528919951575185224607696849437511910478005737148026886790036589893048626165974192546961144697761104019958454487846190455501455208675054421360013132087957945966207702936601447381074058232570897274486712243376075486833012680363052737329000502825167753026930831072851741811888619226287173540613204485016126401250110189837350401468558603618295286564385342603666157355087085325646169602465687895121776506719009876410695165502429813237986556886159902854293293515967786279046227189276443291963607836702529853653775334131847798911967423713200692322547925544860158100708245726336935266261953480004856784649130529533562774283054579072063956290986016721243025894232722584839003866517735819646261073325441476948473213111196274764257757014734797137116853924383441802244437415082122465146064977168926143445016316688309221993678305134877562269593598591367338367359387531496314293972315197513839138668837802285231885671673282465279370002515816986348488674656005176395813625380253830127086201662353483447388521384508722082351039222629980963248522844088111168953859444719567993571288386707137451780286977070777173987566173456332845387971758617796854953114868074461248752341277957168880452767019597062513574358677787109081221983995556756779524234601925772427022806684654037586954932879096885594999022672498825585659968395422676562492775011128035410526933552767182685773317082523507367815231570580821181874758646130940299512633580467658109574980501786498112644943537147810801140884649867974574278632358980325521774705889858135387303749737839985922058017510040877393776894338022485473532056725655174882484159126655554213006708030783941154270669792022611119139764075294620805502480265140435358174298870374445570380490403064010254890812779399867088762081134324687648878274836010138746862179418409396132372906462929133554834978466814131957220447175169507409399587068678641867117403366896769135782468287720298007331276114193198416636119300606984719753957528939946895656941727773425176290996917623112166956442794718950938945315672692051264129995682101770755577083910947405217702899278989413305689063856394758073071933071539407958650086286752189046300932271430034444008331146735889287222950438001946091549786987395033546375780476809738080249899398090196152140385176031546899396147822677622259833511026494354614289503705941465005340683320523275195281634737571717754264152095416815055148270061019918954183653862812195120266252579374402957959277746669529687591581016443781646874201994328918332240172369861271506615667319479582082630634363419739019626553086060179621211057313007623716173147371157590723860364867555903606148859521389109526687075108766872327273536089187813481066779806137234544709241914834757495822948389588775025868464684289093197043993036496921740736683925050379532228113419841146368969371378692618907174650569960672705645884439893962196098043840220384223396884657571195752289520912112795734593617009147013038552756201713787290848629178213877549254655894076124944778292352811588314706496258054733775575545206609779511767449847682140052569974027931738035192238997994488020964170689628763305567304359872959025655735613074919116036986749949062411781706654099680921778260111927956044152787202001792500377299007081395399283786249527102139147117023337253571789771092364728443392256205430163951407367517328105021186663655832931904518373785477549005809571124039748955154905894527365859416987648688056354966107565835602959198317808582377228894228090340064127445079041487789883417218912658805492504240906800904507196272031466826294292498613053923665677533398885256417653914106044253599264837778382734495199847768924059156170469720905269387140154279263693058658351095983706559903731713316207998013149550063669312675273007922646196863575098222777840946758058092795231353688215397820189371068150497281759172328149688904779716247312108398032742011463880906422388129994180272534222587434956740523151134638024998812273827145827353485942722273223954848666957635015356709522849894373352219537479460933543728376385398705407672370385465728796439964756618591877351622569084137905912069971246171298148261870957707947806614740927587510503732775068495101973754630230530768456188748782022325758186864067559117090568031703891315633905287437990055955031190967150590914792939363855609913517505650902025150183864714389524806846826993754485134314662436298556456389888684529809328480532481122199939258227610686665309325546806131813157258868919452328602245012235666052489551148818302038826050979644970217008974834581207969693168173382805553650187138939955195472850739007741786254447966741246766783866301091915888901265911032561397043092839404755208184282742109395934239036314918051913245894074377669725733692692123133248693184502122716103068436174170920741021316247719890329227147211745966043843876001524305140569973046997940216579070504090273717045881243858056640068848400850290329759742267740275799229319115511313591819485660989582333666306779181999802832508357435040858928391774228912815132278672634212430903862310585185286829281698242652125481462363117750064377818827301272061538095562274800592040244863211852629170388137470147656977075066709717641798208086883283238056837862901863826287093589167206053547992540816623679616090143367743097883307591617411502988553607808789670270664492751814320629470420271691364214656062981361232639780744496467509827372163105549515092908764831298833930735224942120720805853283183437645696452971668575251395216819379636671955355178369553262607603877614182959969252851463357589595441722982896941649682249352729716025869574780510587098691291921048680469327936453969297323936171227199880003978746841749158080254323143377756619210736985385786570592164005842028507774430641856871857418317463706336596671549156119652290363228699767830950377966163175553566397861681906591437441686862311917485222511799594363806801478261832174974467376338405332588289643199580995567742796109317616742317191910819978426265456352649576688460193079632695398954909970761945239025133350514109814279815225955418978561252050818270018562924296354351108270185643412012583117528714095919900108911815995788522763852685438892041403456871910031051828670237768932492278314020496770966703057007251542497055937667739549291466246601732783498601432480859148244882490697933465761109154959832312003625823409141941031459177664916741097912562623737429146350396812159894598652785794126546013175883227541555996048864719069061133299126500172205077754113903855476170598428323705491829965431114033937372120833793493766869562021921904841867873324591342953029996830999991915416699891583719629411738607459137083886889296787178328016299129974834697939095941010707353187506322268917975196194705145001507998500968571028194991467995002293390909614455121317703979908631576929560513735261886798171474788331195521989554733945465927205098495477620626685941759123018392831029282888926395653092434990452282675206566716212992614764080064754151920800225812089689179710599833091216968689126745840651638272654185053217283031445063115238768270846315788044457968471482881518048647420705102837128217863637051515938083987100734832071439196566935448516157821788277473752479023181743737068723843383048830740571563712247607726056098829374451990396944719091026533579787878464666052035734191351349611479994145373157186882359826749394129693765970945965958245526530052917117012825938472414736999965683496831560211625395090927701395563136039042183452559862839421884380076781830393140158565778982752099129878431032712957993159896426652662899245797948981014774848664493308800047911603114967897314252755169816891726600729314612549808907985860869427886943064359107027455404197145799572422010448710507890403249195864997549991276816174177793519135545909952650201554059098306822906936363296530860908924050508313893017944067737487189342874492630361899129783727622391998814748260822332987643018876085152744307585684873045596251819295044999333992399128903533090177953039382497099209272380929868006344076836674294085979982985503561608221032746893772345825331302286092200459703407388090582897530284308354724404859773890199562220707781609970569985564171624908899727851915147229722914958350437535779695774891147096140060379933245615233178699790223652731165771572965260527401541498741411510176844082485421801118259645494917819935376651914171243220949463034341572725329118483088085876839658303010308021206632446490040647805551719583128530590856472365959667194716395462533820878541254301985553378971054009195969166560744093081292210790454983635334941000602580419023142612223360233233030916286728282447107490363768922487259086690963800985211002739688295074779610224125888514502113206680989473208885836672882084885516830823914791567694637867756649973806104195769381688857851473322435595477981158842698390177665598273859237352954097276568844460626937386132600507167731062148867362711917643766305156803388881543358320083556638860020336654798432260921966747194384909207003921337025023739738134256761018433017893147021273154224882122071139883866657905202964342294100709864763156689608123706984227555252862305826372164376587412231989164242356729046139561901126664769214388226057059864444375120041778899214579657975572027719447535054199501436125064519011236775829361403303535489202176684939693466313235761880081433813133895457603900771567901546657712139114348525496114911070457182730091164984665749065203440298965276770958347845469521573983710178377243671145716727784287316581891125689581326289200553217687846097971572216471028000778976017575960339671250501331236626504957383670018534865028927785055846030948508753751964464020207693403602036768677785019679116041299030097088829902899957188787556700966177719744948609725199707405040564474673668970866743840691226526585417898009922944823672945187260053508303581332246482186220142191572884707735920190597155717264480733901610583380350901625267612283108551245664466993850437950839797000538202161912284903056696067152015393257668176744438640499768359835897462005350419998767193557511319766933881397632238737676591306189049604773916457415491316954167904507938533988261517300679047100738151870191670496671967358511380919090273974852565083411218706872967312201875856733645841980265767366173626403534365235294686464982433325449990663083755903509217148163656120254172769469627085229172848894754054871377510326305096088486583701627491522333260438084928559444563323213514804275271041462908021106914685605530257079529120799393585075715587542902675672231493176458951923626796071415123443906683640095015358782936957675401537926739843013294611988868588290657362703523114380235519542156556962797362916895248692952541754634738963784225423627036105519861339658321879959370388238696954911274817164358420586786314650835082944415038236096997323877984927008961523606529348680479016149456821577828596381562910045728582443295638778292764857730893480742907556158878429954826349499259345350245893275871624845417230678856388688789869408158450614207692305416770563081695934157579288728861740305037208815687287187920035252435237737311047841599249640743696594078610500016574471840743808142976911894279441859675068028477314166067310913662695520220554070226180292596300633824915654793518370270594776145798455649164636138919976771105628260539674725642381336038628268156854004234928210297956743975434088034374823770671622676724283798086821986635499582817733593458050438592847324321393816837801542698551072957443353944474417561110985024470716400475715112647850350024242447717203411258762051091546509399835046953988975920638949354157558300997873303420818037253125044135512270954994693896048320911920583001545674456819448153929097944706066093577519884250891096127203580374394072677222852758817155310874533001373884130325808170801501531745657445892133969321470014101475727312885826593007315067284440029702261566003748668991696122053711951501092187094735882700910232745977989495757836158918606067895832476287534788233056103678510289507255976703817927674456300498535296221227576411112341775770690436683289454155708902996568208318358904387356849677619205874921085117863389821117176576584944256083591503103687090349111871543876682631103200584584448364191644240795865670739318957423287780016995855270172688089839908008172353317138089767369819154509793494325965955542412026769266174606917122790552940565968431188147043861883140507241925365017870603779330178264206259013410001266205518722266919630331940274197146865185367342369203026824821736414646521965227318285560001373636499602312216794502075038777456605618780892371731626482748901117157185562902021852494594304092757361602862702372203754337051878076714549515022637249566521784216614445476393513686429416561304079187036238489039808613156731558908904638550627982613237632968806179313430003500725572556302931734970332263750652031734709798092218860045652829714835113457376429594899647812124402399751625226285286387912208149429170089737468774652963961593215859766556366133151645988200671974759796807398910715324591299850852993811631547372034046806337285034028353869974279772343286521976974543462956935121538329282476309342816945737899787313992471038069904396104937494105841576819634820964322427719403345734340892310433661741628017231027549076286905651377048157152749465641980195680899777709026467646492116634479362929964484629226471122258149714586855507747942726939126596006457782897362685837224093826069611541905348856854118385645393372161142345535300621506700975534992024193729562968566684831754992279151173133429950896372199023437228051605329770532533043674375310325601051416836968742691746733787529485312089328909556929459544470591390495876496166857637922701493174222014642354417135921945939823485343885763247840923863060417561300478974885071837163112720626335600715094288005360674523713508313555947130396080666859239233743093267686797228283742911693618821216236096439500243118459699741817028791556930253210615618545963245022818875105321731537169848962217649888164128587219663848527709046442394474171232780117757838928478205134571653451770879830682567329894590964638555789371563266470656640867428001912664287920060264827093677295020830703922227280571388684592578487062450388831499431675818850961589206864788688684414059965259802488581065696780021576464225107669713067883353718446612650687858311749659686466928220623301852243535200418094514433276513964063710827818919808396877161930631781242605641592584040143630712731696397879416642788772735822057115736411748559546050777184518810204812514712005813892339930874499407097751990427633627581084215391904899918991822833006043590632320754796691171092999108710531821912091576473044471174467362837203124782143895354911366922393521387045629289012477282105170086758456967310860851117372143282397217841809965904596740110440721056629731618199069214959142592678412163004103091215373185049478500651418762308059953527200287158794822901038237210649599447395519741679455678505385759553179646424515625406295712933871203921697681123168483477621792114765381322938391010046989833240112740524631062147033071260655403369553388023805368664511212648516047519810006541761439866390088780107647483224650709642592613754018503161437536025566789739820724697762568679413899739066385318825805891545989211963526696966990400615798972226951457588546271262808842682775730104190673086926232926920371993237215925428073087875529403045950919147961602082583855224810849801104912838169609194270680280089493204327119576084565301258963919927346424869932435316292872201561657877870262613663837298540952119299848467028755316174165659937090297137773032875378246777246668214542433408388232982410883570587261098645799167261178321616480262230703072305107287617043855317250492250372429093458568443822789063709885530373277080267628137700767294372886813716572377310597858801868772724074383231534804752576613260253839407931906151925368515682376665192756577662830953617440869929729247300896705699532429602389556408311592401370920048980080305713153019650035939771556309562542292826097484173626130235725555776507595201077382675165732246792200569766055903278523432815084048360976231132705662758066511988712568833226427528594243014445567372305960999518119122362359944668768384492912885932325908752597057107168117233134765488067177364735542661025913704559562992764081785380435554323389661057414350521517936883663053272489573229321853329651696737032156120848990254794844307765176670404816764039708227656571337898193201697040766358823328295186784019937985362681974573841617053461173788894500932983205654703598219360878890566438534129519949946243789762609699771782784431582361305807806322919052109600117945802733145386549566244905087993248740013487171878010057651505716485460485584795482941452179995726703826447739562307355309694140729153960435110538433556343232662412098434047559481241352530092568119215430806107838184500431864161892072261425111431799696282787823771092455978376582341139378227422084671530376306091842496184166390609140643303268651549269079067386791050747071174758855489025035158463880958930904180415615854900698588969989987497010234493165013969137302478472848683747790761433629391567241853675005149987117074139989466005706657349535077275839219562124086295811575368869810044855719077897803005522721157163040702099105497630474923076387825418833167158344514804559700909252296473246617545604923913915379157850445450115630866784468964936929396148159803699651041143061051728584926548692444514716706570158983850621645143313274701429693876719117557060140598140350792018063834128567769779765535512765514493342957465027820985520210180997574297181493387358020287946698115531448587237573980672195576342977715949233934104114512133431684585724447431869454241416167782095146412227866547645122663620186044733502630998770270671758115809057799769115956846042889452999141043571052530268134834475268337678428042851691784508281442936452426697105478890367671346708733454406531142022203366293246944629030072130903575074343335062696991956118258789269045684226017292753472021231775458938096721204728573798347266416928549439263376489003050496995933387798123942093021696271132605576096368063723764886379539441629803375897129243104916946597149342120358096151049007365959616534383217470709682819610745197538109136281886585036254047875193762985102720839612997410444236649384319710242806879773663030784005359582005721154356099708435053805394843752480096416220377877099930965488306248618280956911060371652308689535460016782589352469932351111417165065481253985383602601585138884450605561971317663260312833644411691974647301549784556398624394058704425970036847467994597127299575623235902552356422964572057977115203033274493586883131498182012585339350379444907733887791514102031947461773526805476864374872170367954483851028822976220012557973628362707378592922681747463905313344446965044663663425566307887287098423880211187259634266403475664550005522436225166190885638762106316524518258045105739584566107540197747871296821893858747232268596950836149716432519604637335696169910221979986078221415828295838639923343074850978847006776008953202159178456214392964780174670687055252286528724499164988291040758878997738982577320681225133763684459866159112250831539297692024883423879264357671662152883411607360548378884935183078784687487428262332906380385242950526970887745553837762912811681097573600865870999185235186659786170516651183500057783107394738908838718613513193828411452166500957683385537805020900316762714857990273905034429040841733537924338461099713002439944369440087690024491748629728662709038112187587706570174142207962778653031005689759631817226578573106989374561661754076461287682465424176081889733405825901410733058638640882075804902517561514417135708628176203450628688943711832066041693047134963720661409964172181381396236852053237094442603674955877008745298617962246093986962234225408104184760304341408536966739695721232515862986084410060895921727902650449212499114586897261272555915546428215373372776174771915168988320318444917481948983392602598725687079133670825003621140175723667391347599709462563612610307543159788885278529934653922479901506195827702710174245782934210251334936898322461994094568416916441085230798587236283100855910865846402790165689060859925234409705909157350229641788060291569621674390368544663478376030160924416259299227542801739267393729810129442369218664875841086780035829867249697202359352856029260232418112724922988034121413423711504712950394768424349825973212594354108360430751392109713339355164398427542710954750459959225027021859300706771074610234974035502788430255078864289251412322301243939786787159377271977242813023937224498231892709139696890215585189901703997023755593205308672990919709142241925446853128622279068710571928484639104828560790082683144433188131831701127223251443411157245118685696279531558324364689055052062433702792057124710114667768991908339494824702237735009167528207227814491827307666203454203727564083596607064574461798925656025563377660651514937829196653786197723235302148008170655851600798888238585460946088145252456142199184299506820823001454783424512298958269885998949469137467510405697103960067858864586213592105732922719383316203737780162335495616274358380743976119906913616330331453490532750239281547786905440778723102455517431728170264991755156755510734491663862635062761381479008536451192173548811192306090934573646855032090399662203364840764865346950537333950993334065572668847782695918284240556058805899651294095177692571688451218524450750067727623864218233258488197947496711858758172101618858125464905544050325444204690936624814502230727714009692146834215310547159698231745419236545453059120074799505458518428887371184924147635387518807932586278742094993634007742266887364721560493186109675172969095553306116338842628089515310308309523605665549110622368988342998593514918979829232053793246297154570696694304339766856678661804327271606401292671822510758322463598035330113559985982103514047071461767529199725805559658056777156171842251285571678518409285194898148436671930314956603964047986461168022200848146720216946495712474762058124860788678488752760172411427132490065111863617430449723142538544172177597694829098245235893258827820179918086467237951062451701464051114353028623970584330876828473057705376790036662451844513352621125143411951749769142673764212580214503576132224948933218408071722212591089182909946099202847797903578038714071140765221533063004950791437209991171436617773808441528939554049667515633418737461193929169391281552195268215232793338119719507884651629366634997265460689777456654453723713628028826421385662119688182309327611186263454460943804363340103395140480508936467525851502230485193507396716194103774646445473562865417896391248316777434338781425136768004640393891955240794368388711879542163953257304468420305857450011484470045791373191109578505892469475140532839449680365779573833839832413478271850798016419038836295970413730435814094576557499482301578076435720108915826732170905954379583570352559165727326513437338721408371891788200109271913064832945902904500456735586946897761676531648467001843729838948826253551512287091475255700611649016904434670809692135950646801677608607394193291061076264759937577284801549953792721491043797804632750238887612145532389729195006464609762627019504957008568998707489058358373799375527264449651025056263194822569232079229589780313834276752944219022309323030161073646862826457301327357913550198201763446504700395869581579804141467312393531479703832298378442081824407276992405264893248894051998738453459813555384687274769444464485666759842228076524712283063805241356480091240749388290808506862787820780286611247526220552763683479050740421327089571608365413763119829413272399969531320339993550494232364312486131961080220981406529237022199615683765067436431702783433899823720079662191112792164375010740373789541094984888166293084025657848256248833022075592633983290058013245810991259991781690454661662190395230729182631658760272320037571967244910340115590110561240794522515657757030546404539378457693551168087342655666408185652131328777221575525901098548455860042784093744849736001590353632127698040984742407364656395085552057828069367747237198367856736204679085299177038124976873798814639182040324225489555262891567508030064702573426575198001224976996464016641878097824553941435646879920373750816420338426635642543108230999561875648887801882764650232233404212084541323366863267161876486918136020032568279531576774338691275268045593865404654690966372967282603888190001807656107067212402739429617323296054465785267784223272747313660665347218383398460321870742694883856843746811290881789523854034767845906824360862756970236004835566019980129826497053293131183924316739649989956824244252770147196389088595451906338173110034456848449197497530224966302488993073482295909085046174392131714369820794119795198914958948322290467417276522105397635726159841184403346397528941462914072970469028200040870000603021052833164099591860322943476498021981115839274636676188086951655398950101409630051037685004786019210427179511040308151144313878306963285439192467880136992135865343721838209097560872576444625800618275202216836437241239027397073056944602604802173174314348587358819275703987063161746820142377657564324956025668885324715491305885660322352515721928614867488342889516691148416217467888838777581453642073023088594683699665891260429591771497497056761588552884904601634369924224100813396181165692757715598649080680275185299552242437288364554558822350177235760270339721589465505804850222021004916789839231607664930309317587235585718127604693790465206340107343242264832087694073720586446190513970076100908698970076589050270811609271217735013275591629934665895923145881236677503597070211744582210877963346881187141652310483029284962633777607857001781571753262538265015369821257944639135836729758282438691371208743350942375580484965236284662384519882561154273011592962166854722768542219771063512085916941220050310860960935939762270286041103515888080230925035050789257570735482317939187475351903687181269386696989981026810361971272247360420628985944057449893620627996594943289480245490727529203955898988581376124753285047219946005349692503382399033098678633336696326808978415295355986838175222853377193363917864997407319728269167044615374815655071444658264763482130793165616296243861616700040250483689392603652966282801916634831571302486935804178733766158687650534993853302631740036812404649360409885257397100890934405582278932540526637489539474397639436341312470359213953270108176819862687051763801225500498178069839060800081926783499850435938424117182687576088500221877845930783689168056506427584598172331433538771823774649809562073638649312318383352185930401755958501106340382316443499126511708451913560922122124948992000095489059776603768012932704800276785832638148972056584726224624757402926777422656003816658522318397035958305345674295205299368784150232445214088245956877645240919753949268400643012066152269314377051224384488977200010300256080366678676697354733877848043843478794282195048041331968668109900027396078380826518106776497864374937426380797221001441534264992947023258369312215579746870002852621017707934801520285235977966872771842067501841539691726396093108994036323245406769736237945973739266082418293354164123470296341123861541177487163791006483806432936108165365175336774195498439690003171207678319256706343768438201613740282327259781350836001551201771805830404789579354228325566154407132768889551584393023580710625412060995298955958290803023486754663975643790999166541528609449835682250223458704624289315814360773826678162690017635202291894341022749530688696760001131743550547626074596156993919202025589061999546414433264610079746802869369480571122883950693006577587802913437022044821960133634037539148588226556264120309490127101195200927487319565781929500633885236843530595053586697573314638026898460982707958251508454444739535967417763462559855390598197640387157209578150607218814599429716061088077567307703003253610455204480862874527760995080754159960694255875203743562306098851382783711928919831566775325419159574258575253209274329125019638691353461401117042164062959422470554562145672512451739004467085248861769470395598017332790249420540304068576116057514498653062069935323980891619579538323760171598212940285548887452220886568809339854809373529369501580974791234816399695486738318871144752504114004124370777969887557488482227990295375212851396611502629221176757811336274658820525696782955013824346247093536253820155870297666123809698874309808709591604632310593639276574800554705033559844519686739909416708498660405467992230855572234642552450140275598611932547823004412907789693404744079440877679409701824255145229789461946060297462097877498441155626524227436025011749955262347068814202272632472287616459588682107156994718161264346712884934723834299942512047871489595542026724719019962599310179168816143807540527264877530720335352949237949344681580653102449981887634790446032718764260494451027393994450927855422076038405411409592167562637479475037967941429579475769506586174929822717223309197280475098463971021395886791172942282527862928838847060576943823818769451598999233658751777743524655548333900283584841815009061322473804063168575538027995988302577980005500099522554057868147183514743489534583948807802263939161992059768721299023137089410160679127830139306873748679873604545444618634153063653023846940978069140112551036771045208719662225639878016900177413890416819008655721284283289804869907717356077260487828727232938453398070362071672800913155999098867663060490278502131221026950892450996127129695312487578625742793542721769038215793588841651825986331699177004450162667609790185549475542453035360230873650253038569854870063375300688172146947847844580251080351142432919443158790574286301495634401404632388196277329587041379265188805633772296509493571246311055413511209071960371992905533264679662386280540934302039617015630023387983572640263974347315101091717541236559918397546667053543173656659338185246476145273244884895464863484753450054881254081226088128797742885545312378898636474505765118623716955290263717778339188562596969284676427541832177939252907141772046044548691655239487158496039121255968583463746912175313021461972479663776167834433074777001011882360214384954930520318463735075373785134278599219161550223655143817207613249020345503199582329431826480321442380147381294609194753738706808865573932162871768955829554443620737454641382383800091675711827019183671887670206193396095803336024753133036752698690469480464697451987672207020155487936100404343786039403187583306557972811636853612640587477590878797009429086765918767727638320166068423081022287018083242583728853720397110374930155328891470741814191162615620686030593777824769288343162834743050040373668783295281332026870882689487165289561842643954460799698527311804876142035484405961941529479694157549477232705424542173815159441240782196625454509952697288954173469051471807392595073584988452731031486169083388865153957324740335128551926007765662402572991302301476641904855842186764458994257582935502818995733861947563583416485545752959702931959999764702861168398281125220580780903203991428893316679783276208376531886565352311483476559787566381352090773013743799259231155351436285172146057292052188945249104489466756490318142793085394466859869889414051453728899331022101673817108683090912991632818755364461432503748923630197956012400887644237333413379254860114837233545095807642680037170230197547297778338182801287200150976346106651874616194620129943545060855669312169445235819024515670698205737251846184673117070258374982111829924212158289337131874426842655536923014727321597279470264107169417763337521023975642601958802974158521262387624946426419353229898349025829818219453921576718419488490791071335674232390670678148782398201239998159127295312707520270917654701514252179022151655525704686194958060069313034179769621982453724586898410559945556983709500661416609180395303228849368277774667371140102089519705459241870821315079150857546891828997259317484961244666186317195140205184294740453736609637342742286106709495042841139765826973518963235014770937759175141297436471670625225451634541833165241473952711950778170898235395762315431611890378349395124925064116507986116930301369964941046085095303019059422908713931920798253633554607939957135187249334273936431181504648028819187329187104150046955633142495812563422010860964762758378145982047187479701674603959608532574845375556142538311471702309883587097816942206122861943380566179202958728411337928855066691969185808957760243097546734127470104952018147749879265598055935677411771043039204768818786264178430375017166405866745446144425986813213810162459574673686224781724226036692293933065151066927147366015523731237221489236722597622943514996151129855977708840557823042934015539547421388346521132427843659108058172394147132770097045200166117180735339614640139655343368075507586465952354502848208865634507065468173431203313241233588229025571077102104846729959142942232172162832238647582637555244357726771783921542968092601434678869487699633568192987880635102263436071239232724488213308356678144545125640869130680352899680703964148389597937335429780150253242016360140012441350524624283134827373923780933995038673477219917562048215470043212914881820570516085703939418049445328601169480296692189699850827454097587094148366343779318735969398298708360682685097902189227789975206943783199050454151244144786539641941846627794861737581469171484314685467697643334343721501411847534796450739967725340144770580011480727261732124613468070897783479052989414361090699766780431624080057074319932598446707725377715776260445171324676461374087794407140762245217200296286114489840565089800338474991394660071171304230528008507076513613663480475782933764405688723182002237593706883943864302136931877861573832598301365866965192390332558378169880566904256564682410683343529621111993041153406740733134167255656483983198362793607820608056927159563247467976977150639224407284474069778482998854206245520363007251835747415507410730149578951500233647030899191354473363680084044480955812262537228214781233468792567252001321232796571180823931940055883213798031730059167836635340309438001829013818836896550035657033856921767002089618012364562978709649227349742827324079425968125743214202850985832539848416873281067132363412251084127343696380718379824712008016335412328189984210752234904068184639728676668784597099362521552673120274758819515466810342332497441764223849801105698937715975968662916442765629036699420015761132940063008456329133841142660569772662257967883829055819116953585290981795495684997554483394095426589924401972246430088219030245093326945392110509904579561033423141478993487402782720647892295440289314587266770924663478965719102170893325609010913103217124799536360539399034926207210234879768501310322969153728667326892141620625201347176841286476328065753993279392114253812324576761965790552123190823448337592772931517129522871734484203496572951767714411627335698327556370814645195318861011870580625874138505260791209133319493974053846910334157706277899190471457180868694570063950124218436629558306572884957941000143425367213022105826298145776127133150309327182573484607213306841033847908293794824568307732591345299101695754736019280056691256283526639387015502539844220776092914740751360342613117434726273853705642664506314777499197732100909419302269620823313546408200779781230832119544885829476912696711724239689655221116897932539683444637538937346525938743326129694211737761780647438518651782253151826257457303384894861120605331111015945446491907686315142460246922280750937998521026176005273056599692141130739598058480045290566402301058559919471569547699745277796103047182815303624162556037491479430313728273450966212453200553193096027047976073984951823112131973998043890369828232592174265371184440784317664305543376516702015999625346569082745148855169828885876421123768337423929989753731558455072171085828173164986337507058277127066149881530088061259444029484449889254483360577421933313217184892556536303245888977733760752194206206455647429188779004467511490528860881684335562578062967061888859359269488040056786130478842653448277399960048665612055361334511826532523727566784597497770456628603844627355146419144398106632604527254232426984095429401828772512436923572676583107376576336557460009743446020121565896626830592454249527535816319550255484154557144329483391006449464895540318761186512354872216745167629285918918448277269300049439250774679983168478468983330569776247299523746761489511109725433741337213120365925300194425110883180180098801265344846830690933272450071313171886058038553485984034591506984120947433495083446441449738371887714572289250720890710101247259259231304763125182718585914118076419580854968721443199156667010466795355340746292249007936278986462980081976304435954172546281765124422837922897137948152129533336474383306779784100626996472633065425377533249621833715969825442321742878317213382250786227717283154554966071465173634714461115628008006716824553674602450991045628370682831609634580169421603193495638359741127362281383825748604728559998597068394319041306129877976697789883230110951744468026148175091718349847236846241311674668879357446226905764351310790386690725531334591399628444576993992288819120057197691537977288195465056707473586005443600141212268845524293003892904697213541878478055810334648207088671981233362947027944637234538921602569577134468205518086315412580689023069584772311266284502654540663200532345618726893724075532511855740196308350174273715098519663905503010221685876195602719714972853084639464780603255231830114160549784039561996838988999795626164581020791435770318188419887340481639087459964774585785128089474085355297966708230137306985372282321314635200441979805005728619824908116512401430522665084956188303279098438220078720654039849075849849915945462097967196295399337391887306364409072506826362984715493914787277186241251907537915239527338547527085860290184498122767839561098502973614478937327118657971959952076146480100556849436852470366723720874804816271688457117332918708276408361290263429435163372688921349259947707840876098442808899444276594938025196906796829441946844618625323042001626538279127466412765097193316521300374899663383565081147240634000931310779311292920112138776924520026840599626325926118422757672303628836702335472683044014024672729491080217977758803234430942141448712294967186028705598432878706576721997588848067514809180884886554542673992582433593842731906605136089661728179415857604349403818803379259004751123765078849561491138288911807766678667297171138413845161869851429311309754777541293880142029428117073942421176838254100936588863625883692919856640306853675758896395457137272894773779902720556943476923753495522444326683699429539266583361984963392290783725396889836155195132803683083871080317702189938726596431229542190335896955614909651717598104300241380480605007741233316496460884238839257415561660667088420691903547643481115206654586681285842223485739706783747027787679035932062533729877583652907060240425898344215851686438514527451575327844627382451452047241384615704941444375207355484566864626663993694933911689906176163981906336370550803739722451286702066649984368834290855461063887808532227919097498203954135615358960744938817821422096844951255861751501041202989356462872373956015043419337803577503281853434361327686719540245769192697473988105692906163998677410811735182083895437470305296907280072077682684954725300147528287684030362346489909600975476447700174045906002050439494223926516592730433732098103725959894719495589994086804587751784124743197242318778182187418599808321867000825560785087096087482010338723799056136736884049795849400042224330873795495193617405775902779536192556434721930410064069347591656257623585160185910572243352847969157013799622713585161807809714938122554218187033368025997356981677212158073613079417935718497616634323485174590473697993860767175387430318454739832387654292763280261537790912067744733202817378776454245864125976165328533483854779438131646430161165483709024932283461720434121179688862689007780594192467662399941838581734019767012687602745121026319686752527027274605114988191704176447785722975578353596840888084147015640470677441379721885691328144784260932149988556973702147049076845164276712538426778179633558746901668630039878031436537825806097370356845075204808985364121537454968880338355599979867174633617127547610346079809376855509178106641302739186590296269395095842372478396429123030011177969613346439846616538836290602799858019346247706212318679959139048172518006171130409184868099449961052982788280923182919859340244211429913703363031227446109514361958850881810033816300652936581584994115562897674766031665994745838901134491748017537840985022448590822486625899745761068782132401903494681078271512533341157446297175098178805142133892700248553645652922388774542565266899173036989119777771592473408246320431217349966163278834543119135044894195810698426735635862728113099191116773743673816472104712868565839468640056729813304698724512594824595251641873175862251884236168194824299489012914978205046895838233712516495566185725554192763206379491872081450951466011697309204550263703286898714373500575804426322023022733231666618809817104687520410930057504835128196102494907991738206663007075914139843238718520738697484882171341675544766381800455498686281812868494813327428797425332418845179695733164070703709261838114275981465519497535442205602688689860068569264274406346239732053609892634688465791459669501137479932591254583605526632363951090904807559885639031585753797150690254454832375120152610478943849952533731311667061713955232041654750585067962423605479796503367621122459313195957277102754270667785232406831489845524937770528521800528139186590503438896974983771554679400636947861023644029072810595136531178056541346706705787145087520259572241412061657479261526824438027733184915948087693453995795185638055667703717145820483959122739781150292820322400768124114723640125771808394150819902849993118163046631888953468350246675722068978410199827076021999325937219513382990285792498043513638180787986699224978940927460390226007064500194063490686302171121308655209303993018150531403627980237868329405090699899762739874885178591202841518552612927704538609090232936366776815069842970622658434916485202440164851397692343238681503117196609824284753857863790526803957540493877732837591172158496359111613753645203999315560458273618180739398726206917323892873662664625692018866804914270395595315679195844863413687342629372300526755816908150588061588634890722468533516242122463938610582321712041383521883240756496055770515913454081029159977940565881957184165564489810970143947943528091777243205938512701274704003496226943924312133905599840702127216220249340367323597051922268612750492494326966945544941752790741309115357286438509550230540327321525822443778795875246605577615797035048281638884693549883193623429086256632771615621225875531053238853341217306738532054762491804221606440234686256875175233348441536800974977437507873821627215148983487641203203585913838881902616193100948975253419817512547605001035526822035608426574351236505384968893459370215699799144879225436888716516505830520514462761139065780024357121605232299164825454467567571782210856176857993061780657810066599552998743356925639842647711438460261021349310401661613153805303964793344614335916524799977284106964856960755845942184033348989976398895918561912213535384529430933698524538836693138473927798792108556236211772562923394849635385819204943942816718248983443084682715625271466807924712806798299282464583637831870886830427998345947000051754864458973933079751000231792611668177170181212541707915136267375713784410274731741850277176856718024748424709051093917436445401004981344721689987060449578087418314127932235959518974948781410178998078268860286944977484627971596317785785643438138847028736857500831263710628045006477257286955409404769062007463253244502581473082738408512761422252229563004180403750130117503341115496871517470705053248635047279340913763543514827429878877935698209694982492450678267127246280109295154344468837112283621705348367127862661361033612449283137728565578285874253566917604884417736349952723600235090862594395800029084873105332448638232203167884761810729546633639829230023045776286545923204708537384739589722045860295022194868959960946041980153308684776592285936109679389987398542064262562630554681241883431687847253277788767965565887564912937009941257802608178434374324127125717390678728945982157850045114213598225557129986585452096925467962418488604981708710192115895593349215887934367119101566140239624356679443515851556964795522451151309258643590086378428802137195862440216739330295432645138366683967231070217812090482462153185975697859782333071223803127733600323208628862343200486115265417202480287515642914813150902502890814072017153715992854446339464813535654030693114689619555536976043163473340860801734196902304018869658558996953018702164850275826393246686193476646887555650344668867053413920853533836459599766720086044398844612672718654744808152373513265926977371837801906127694840407826972888696010248349740066676570436145048573683099371649127949622583408644747510342264612288004907214119350805697559577803535839145482713472799541115411950223578767209572679917016543695029854635133397893099114734760390911140202391432117287111103515605002533755443857776826177911975256159401987078083731296954494223887744063120471629755778113503960605249315619038660834140126018268557057151677824504369297874910821958909597472015798779912142274672240799310094445147920799706179266809379511524990374383265550135370627993606981456894490993641873081666997891790913600981107840393256896076661673836289637336062299025576622410194741001698618142044077714390931520153937732009562755044485935136260342009880761435313711661113068880262471397768750702223392957727727276387128373552363995397136637104491520891620740282304751849528003658759168748651293204664263210516428109555116717289497279851962431168370545894291638907055309973809398900383342892175721289911357311151080154871262768316957268073098268289004891466118749624013050570114339959952022438889418639208127001481849960226067373355522797747092914928963830584103168243024394356718587540946559165309585449346054731160656661280008569669347531542829707435840324530402392208836344530046371428850876203833883817273954491379898949204382171613603945275469190368722732934202076069868099541798334217990315444325074424069629740023010258242038631266673211716379893600114918263241437484519652115355359984697031199910390273047293822112003910580986573470859995392356185113117054929451110768796516261737222048016331045614319453801936200847105183241080624204490674458928825991683842434851084296063227233402584547873672312728777837206286887860715330103058396875413996880389555909353280934540227083472930385828198043816497000334327862150533861280999459905332493583124599012326491694375823116738260564601958875100951706625650087842071238420295295325130009482061507616142402193515485687438643272693667030034614375187871602625404846948198197308135039700871903164010248105296114906501958624864695662348706876179614939522003718632713554971924300441717985527469065945480832497055030974202446086747418349077168985185227040636553532939995351799792623304107347184194134767801344983820579238865366746247080329558495329846666001062917724621671703950437193848476840239809020247739228458354044797647954009585697686377697154444518766947179213935949876925796726649233191555434407734617274957916158987397296623308224284566232708272350405838035269599503415616986356537073108062856638400911119506238245488942233539021416757215150614782127135271824822889922289865588468194490240573126094617668828323447841589144274276889860943291338554536149674594797525627336689028443009500818814605648336154024345211678053557845316281331178562042297401981185543059498485284983284394720387714331794153649301262504255117379685325689394255421902643928068976494723507676411182988242312793290695230239071860380820327822275679011580679688262040432798877344030738888261361896303080992043901047213895197532440894300229031636578815572682975138235180939567282419083615633033134843307003928029263917889203894556002308539594896084373187932660030688681934590083699017426610374130881254732395852230373214548524043675717451423643416078460138734958267602070602111431191238835606252154831227376183642506397591336267033234137217634567061841592343123891577196677561376516156079782415111335627027682629003588526861315245270970830172942719071454235338453000220427104640940422180428798344637800131698694196484154064533029467897765568062477434401663224605709348005618339516771606753523052335079772341187442682145090641582962790999317315854737351425581620352117611642572773328194718109505612428298878412318706076486070583591759022146413380244599840989415333624734640659618516272718605291176582988239262068086518318696512522818408120963084274338489531439622473907655123848991175383861338668365341502457741832028647916928518254566903771185223124965254293950502187795629122212764990375815575626582384107665758094109018906099465251105040015225881928317534378648689421488085602189839458014857485524322236180987651773068564271486047116133936749966309707776750644190837495243839916087945442887153300646755769909834704733583905501551663997110003306100427457060644416709687659104013945835390471869922436471881020495354652805852010535681848894903600836584962022458547977835356758940842066226621487083180277221505779409631495458961456867651488031545196594976841718329020877571597571500161021148537257563420370449787329462910857141410756463174301158367245223509119504285212366573917512645653007670406125485887356540438168214978231835658752896776142831084945380273369131033775964397762528547828626033409880644760524208528691603476048715802992955644788823853652800922020695614453590981984973139756146063323833850520694361266612227715158228526525359102226167036885989773202618701270651551976450757938696603147580314661827919483508613000210594108968078922244298948109579033180615669701756052244384955339544840439996274487780923603943203608032032049060605873938658988052364863500296867937354143281772292763558921604640953638662522615897997894449078202948408121028469908056213998882333075489023012645250463578333524551385158280075325712213514146405455532235020268436878384438617074505616446792965571930497237864993776320266224093273005583652616003418155228568866123859545186380654829391004663552127061268448683490987676797126791308478641291538467487160960690619242201472922004457900465219254643257334003398193113180548536463525591530844661659502251870215765135125606652979183433227424295026410754969824843288908534106951055717346142783376066365624008700923190821047698354535336853670167021505843192708432412124334001421230218309329287574319428965287699033482402340514242680642711120409709198586714823385511210190225697733895160698407984612502461663059449731097713470166401261978744069143482534469168678363759853978635119928489039935876763143215518944530791811143735705150802665897906950218248907367687240510734911946746103803215776209956422170634248926260913815829604938688228422852824935103753097478032802096620145425349053497836069094429947364554234160838991618803615752011461973553074435650541153517937977459325512594499113884491140841978501510369968630892088339568221658994878152235658696729520641065479788991037790688789624328199523050824695683869267249722256077143214976118836819114160499799724323298968701530237654691702603770573391427424922869387711601221495720490619083751214742663519791344156233335731614461616016525432140674464525422233343305680976620611934316896581868802300051959333077538378936793232904026605070223213470943586040233007428586236579829124221856311422751950960389958909261616529998304459894084707655392273408765897943885341257568627304257912624675192800181059201079289383041207712059318087596412450053817183057379581676477662287670246881366609882259540966248757247343767480603089173987389151440016834562973800439219151499181093329993838008371629092891601171166529836414043263658424140789849493266195621094382031905644783639911612809817133017741612316791445871877241343234841043291716136017887857624463003368961173032085668004695550523335828264730920214004268055290301828570285031077839769402489725417948912448683527774509653907388124682037714806515326855082126689492387826107123540716516456435648221225289915608578470608947273055670811780619009456920132130392042214897205993931882416450403268619541733825322235857224216183775687184708074286952096671622461688713868611178959136995812325431493472298297950884715566571993296258874027858324516515495097761894632827924305826287151780987105468132032227255963195975451240384832646493738417283948841316176143830553988341908032124831881150943852961964220429136952077019018121492766339656531972231154907765942334567488794370668800013270334009731975947385145495516098577067373495839590181828579254138790694038028138626543949681353752009730432353131387273006475931199755260644213475985160496127434712430352892606161519737953786097978636755379089124515328976746450258199535101249530090117217254092625619611021516077798114397358729413998839106993703510647284169305761261806355867604528232887032566850489207632237516852211323662789923148722533200177750102001743851776049643187452365465031719683304532667380896514057785835029304879010877835037732056090332482858006733150064378254225910024811255209698324539127411424820244995539755755067591486796115010522329110165276566173028252406120445379258654682091834144764848717646722825127964722115144612950801463146633002825678097830346695003608626480891840105031831701518328335429335581696695852542706780571766694624188252582114949570098355348982401320909180367546676648908285981324973920683992927596197378354065240195139155511786937729556506415671923227444285991818721008148014342508619394919721380813750564521476421250660455585115150747760484760402009125942292770944970474593670921190617744161772242955990684662945830281516629329327341801090983549092150066818546820329097067926293093576850465268770292696900500770244525542631436407005979677765700260488394076442195957535533220790279206305692016905267834401210289444717899296276158919803540534308053276524521091966820849342220670257924427937681427094749218197307764964825582323455785427832160545267931700880243076603691969116298770113957506796609881525239710248158141664004620469335010766460113565404307899719406272630678790795623573580913486540394386987502406006750513295112316710025043238318534495137877128415096694641516480989767367215457062854152654665710372064822461284465065063455599581723242479963198936064995660498841808674694484858322699037861578499571126332040035680662768923929865973235738751973430442978602377946969862927088613506145072062151375538693080949956797529953682371196910255770198083439875932039407267797709128910119446586963916036831117383919564183721060496149162159175952430357146422882303990053806529931107547549657926298129355834276360483667414224028130295024847499120825285978175709927653521097106120941137316903148447258071614370815635395842354943014456814093455359154811642589271560161297384044327756862659285712893838269064066041590313262972940305823353924637353170232803064157400384227026835978884185260322353410730188067479389940676818553478778079976367473661488810678036586765663679435698385554962320368140669353101880477123985314872734945057578824907607165496080348688813996104515187981117646765405672619433642724869262124247166931123986163968286587485271996774829765808762125656310346991049198368046723106676889042684535388473529411065301014902631480734893181694850024409807191242317821465876345024108743303229911526198417965354544581003376709448033189975847143929884249944989715090937821517952062643172513346869495205784895032925263717346271044891786559135861066046431704587821351553794668070064850879335827737991020333536145605256714113618090941950200468595361632080316338653120955176141304061056236800431243557049602101047812801561476709734322283432078163765528517889269582578235204618163351080899367009498042110069735225964362553630522348880752769839756419350140285999931636093967548368804006916625558475903691910816622142534056900578728047224137004565109629938371447320198070001658305237505241550032536651093798746422450590924193549054571008597468112228596533836744337383944093328857237634909902171170892596879216883550864247355814346027410959440625429251122287854937233100158033944300331516195942006860048751258012892676435684603458366374865835184894638555844119505056562227367116107258421008724346106377191427888508076134411721653187319237340332330954169754906732706245398614659039342822824751522343399891830727190390049895299286085362264935031420826053919554381940333095202784299040018634924986799084599454619847977108511782432866068902674953369892235971956297064400362800941228776015672341268127366634354402810028499844498237060673095754877417887975208124650437766042855670583731762299333124673691702045372032573602043619125982673298007895044087462605308303852755392505270684981456458525422017340883462153357218333893975795007510295888354329846502741388130344739964890182779353660461086827246135356960844229337720359421665689759966119828349145053833699562145995526533383352486940402891225246620499325790449528342543787836482512674746011841426196152031091943985586085019375630550152947132007469882730668750571851795220936610413610875552420417966661550280522191943799543429333432762330133573140989203302479317034230763667626615744127651108057653468218521838905967645357056568728275639299832018109689636494742601043554776729152472828216315681112304512407076599319278791332245491494567870321280047024936826577676318604016485293345522825351818364119286589790755906097848639395879367301104270845301992160632038719936477812111172462252183537521814541099564580006348018562430880665405907944893121816069493511076023229581162646147337811390164640406166647815799059144227025202208684111901363649413677461470498855014725757817127182763995410370396815967194736742263110390155027851274461450372226247829830156216190241555883072593606792641702884732057599685588163381200605902446866075984833775314925834184964352870572499739119174379919905290402135938936487364092086904742474239180917567617739917298115150429277736228381647396884213207933308008998683776528010626636532565409975440132183200840263424763193950619937200780074423564438246819201803505066468011990307957462563249648420963997535774170138375071488572010817406758014194431862469810690444982795252351784789362095165414907022157474219639757787206297773540718878231301017085636319768013371803370402702807593976341082101710134282719978036133295385642310703663016698674423569601688703260313411427584330867960099491344832739414394395572846732864432317174727348581348915479730582358366464109812782331049021002036457737706232073182166863817115376976163265234874643987633542770407008115631306236785860845669618153055558958097334658982871083817369459053517060845823623483993830223463169091684434328389454512345203494228975562313680502025262397462915991015338273464554896558349631715349701564867220085478314417580475628322738951721114363502225981624911554528658507400315425963850384409793124882582969020933453763791863609988791043470291666830488068144918865805250210357858654423177807964076337411017886767526896481917690331983195245642680013812550566250447136331670719022435379117779884415003182868357522607663250034776068163455014921851754549965540183083363420961170262637881605698379164207769861130471313978013459591359273767173506615238023516768223770110798419581862499940772799733910523732998654591664651260260841458970955307190483184324509883601342646417761417764419577912160046263764951919328098969395005445985997663784376845326699076789586996009871065277924108747219959349303025700042741766559437312652244163639861501020566011527812158898061956645203268497184872613960261219496699797818744981895942461139660448730851120351856736663973588015586782195736612880243782395811860728720607631246691233458268205429360773626489260348598670020747921690106573375784998988892320071039280256364778228332392833473341754750542373467783348656543247802755412253510967679940392570919253209704034250969482865005916854290497167164989303739235421148213594243858127975817980966081112800252133866590892234682347746552699535238605954364558696393156929218393707444279317853433334055834908347732199741388191042851857941296325905316574257959741081430710985344851095901569450818882824213480581058629555403355727506674707574487347996066974193204609914837801644004010019393380393627249329695046455505991537329931551884280892329922056226562704042632691427594430062033319968534127802279915367475279737188484458638322518547584964308895053965542381362374311667851261774250596328227342070979808595797915356379170073352699337328967311755575070141537613269573282364047472197705983821412447938556479067554549368901715731598510529735534396572438173560513682395352210506126752104266808130993240054604221088262564055903989458110291104316715403876819949307825863147477385674241798060102058201773167324682172524208834556595331068029203680797593684800912776593933246182619191671657800252755738176165109569819642225910621562267618137279138497246339857958344707444435384716183336802096775583360055422603228516796684727012459836486247054809780721378727925268503126166714200550777017996130140791597141565564399601664845108987561044183026833757497561715087750907208667156531908993646782023444229531313855529002702171304921089904865284260060459007090714222711206304117530213594796770923825340153369267875044866841744700821394786681494613639977495962268475355548698782861018177453476703703513629848296156515571017809050652875336961976422530609821921897997259492845602312693286190448977273075593964462045149527160270093955207838301303302066693650991714329344526112505440401311923953582049046584740811859127691664587384073809048237763972755016511162344632003064932121490418154917187785437877508740156925086268042995790070862364102386538491073597735972202599135687806383581170477354344908490761176510936181827187308057049753043342674676416407668261677641180813397382184669084847425546312828192374122485226108973932138230252084290790704564935106550891967295470364147311792565435602536540448794784844338578569321002646199203085125525584274793254470251490074648337518848807984874556850894014542527693969602163044444522791037599981559474160279756665146959046876991864011761601349977167894380045500917887200323804810519907254972855504934232999161521402082003001267729629588906738819998376954306256835659076076499404447374953268518226183336063931211570618913480568948542005250202245242615023098280539287600725184233005001305163833304776177202526461094797674500295246306790809607708276938107669028771512341709086096367662451888419667849001382501983012108997081084667662598739551737552320571771367219670131114050980742128746013462515513980371585083470777618505719908129570794769900727082277363589866384321639375249503483942407554153686702919547219380247523182836650648734151202026273435374384190056552044955779596153805314216392575249697957265373876781034719883541493075937329262284823657629556464042874927520425483279835152185882950673631752107438547423595905528839998556091140559558819601390957614701390232627260974463007226082131969553113644031383352969955342994420176366713031160318634007638293708196578301660581462985984912980644099841606091811671703430519067444074362961722169919435880418198596927188813242836350669548532635971157977945727374338280087749145386945946806235995859931569282209795057594630791961558815258616277284083029794803808938594700425961179953387141158521551773652393003147748783041611654473289417608625391342649987101836763572213145456462636617106116303592656402850623509858721079428162197851483641567637941031717526479841112874328779282537585031444095527867050176842281513774076308087755551898895294563925893600632863076856371314516063389874094413164511412307375341895877725147775052619421215691920237704425693121413010725686943363649913745455608821065488787883322787494208389200736589705722636212883380485590261671268205370294216114256051517149875447691124548445258288759701296574329046735521041390801101631329658708271261472287218118636042118708828056782476362473912578572748181149571190720624060726693590586336173047682001206469545535765725679416287399296688034056297057359206798763097167780490637112894968165247202143838993923302355891349358768851665409342821091810953914032208740990366674637060984704166782322791398575619107823473288848168455459186098209658283394001646239963055829970766355048059818276445866082998247611293533631777071070389225369302376207688457818358569905660097139438755123243006153261984721497503695679095310805395451960625712234602422829976145149429313067689088162456749186756010421510937598178648558087002348570443613795341777925632771965452010758989667417095020920491044976395909930620345934492734602765488686914116008035222369793149652333415988426734504454182986363674214529658963622718836373737961480138718691933193831071516672433487205341942703743108536175019475121234645439942857032104307254289441706641837107629310649938303439942292548461126230107998871106889927924241106175109718889479164657324705144527124846645638426319457651637241318867534690133602324070741448556292182347640092454721348396778676613593736966922639285271955562835527134196484124576375144738253161661181458955924825880996792602345277931197159457590831470434203925746544408361408201339963475532108674318278595557198916009227609518599828390691351347674028949124301529050609919000612972781041210835111061567916608188403398747840264021826543693194568840962320620194828083501023444313887865050861659414579835996150889278491444206433153742374957175916914206027196452696062366980916782611692232914107393851413449445615856492281359276709000048672578221898803599319290192230286593141541199862773666342126401112946367941611286857180801421859545748660058277284136855536534789531455676396058960875328286485289389974685299952979321220382150112295168720362337067596751139485927059428023221202750698779137348883658648545561604235601474512235780606453643055897521420439454082846700623160721562332437960483624612295152655729453482428999291452252108258977371788024474616104100824373947522589491207516582312317744156161547652682227216470960425383477748558918522654492109808236773829552627778397380012055495369877380540728543382160289758468921114301489193321457922088631745508274889735854084363495092485116951610475122284104081811106478466389892824147240899728600263208496680422685899744514701899949674670610346988459168556374897353133779037848671837711882527399396513375024786624071747955781164872681906227906866692265576073898441314670715395624522929009716108558944517964231776059142183449927325896400561604812966417000412593401071995373264790649168137982201597435332535461609399893318330094739316914463344621233251446279928386390620205095736757122726787966754465821917062598444140780257671974794001721034929323914456645275687254040831067804245961642638261437131013639412242097800386505219280393210651702960476723444677373889193996452699043895433550180378859885897539199438867759358132194352767703754966965084538011609877828953577274309916077316611496599840046340308748172454156336607649419213394004872536404914368837297685332072876695836126281236229398339042498637443113578393450539112326771057218238735648657282714597021111089397096713725544861382908217901016997205948957774968319908030823977583502609037812970212741855044888138368589901108996688876791148795550152778363007956649166673939974888296884510027809931942997859065120950279260027666575815725425284256176204072172315232379842633364856908673806888218990871250534458920729394635567514271576578238048210378175762722747885238248911668646564358776196305822055933641719266711059969697784215407830823796977233328660602702047216850969404731391887208488018873661972089081260050254062545018657002094016911865996466297329507015798268718202028405681816443457185682475802296790535406620771717964762608548802199840444156004737386240717036704163493684080623708742797508778393906819395686883176692515212647070639785929652684636331301490252304460563386274053107696455738151850821200341832018249183408573510851867634211735092570854756066200194502626772969856751933786070605639278475519066546390830508596352954515029904485254263057037252489525400915974524248292174943569854092733886240265160262731733381386107506955962892362505941125696687495988648666057372607178561511751149613358855978834453812282943460968847280579572800674292401818394416733095697878431698708988571371020082565312511787369621372711945421710677068078006141139983811004437853744509554972585440397101503907601466265067374653347624594084843786351515874489654219854898450591261807448847310096635403760161509330617697715226857941066281199901319009246731488304450167245746512316486550472927802905953550768918137953066599246643686954159602265614890834859997566219839612579662378031160757720210941667603413097725421183428876846823413435700610961360881760346539590180675694741389485581278468857867264674550305206397376726737848076575108319486076849154596301953649941064563431285586415772846936021306596603506053521775088732529686770824742790850338593808612153357725893443673541396805197497739565754698472170638712728575531997411637365549014432843506628925566753989883164621340482954917529213738615772710241246849373031929662654786642267180439020823287735077318405553711568691312386240467701797486687393171184308571406414249217414711610403595579809393824082519278235650067692512686454336842541818360493711391123300197300950079176487913044134063493525943229892680925146664366296358319470397609987384531481171312093485589401734186550445627172004337231488729894877239236364292679441284687225881150708765556565093606243596363488021411486629931153381661050908990644831302052198871623240718372891822377718955412006135851565822178035267071823620920721727469193567252529465024282134562915414135933825878904711890684864276514123508174228353893048634314395230365719118522520843663913110697820770894805579745318700790084559695764810651431832229274271518376352476639100399651094812065377506678262101939839837629314975244970853514957061169340484648013827180637009068756548390224821999197895556603287676942353375868732043851049006704499736732207522817410543388859381270064685098122541259913036280924460125342784436151885395058695539647238206550366020647025242758092990452295885905154251614443322654169854353428243969376660217513803374771008536982405116708689115400291734456865483162594103348213186006387560805100556048928020164637231626527211733908347900656211119245194270686880410666328030277989911430595760266719842110306264599260587462214471056945857213721030643830134056875760410180750947367880646251422398678523413014209698383567130338755750650441156171505818161223402787738466702920450690751708972307092600548258252148019113546789068243582296285241525405540447948070125930720360349372084671890400129385450100090515202907267680774597868911120387814196534937152919617415979839228943322836270760821294373724158209766325367741745110394732737844177174763970527664154759906815785278239268912267000556341054215745085208839964358906397290632951307757694503041207663983796465795902611967783872449380639523992140926947800460074199507800495291633383925766749269026620930901289475434106306108849779506630723301923856449002096211490425916273609213542929061465852501231387619961198059301295577768810162337903169750302149439103591028222126710595463522499388621254626451832742024084649284071556646211260988170118383678043860303227833314812979280129065001865131184226853598511212184308528783093764603662215126040121473466410712819321009625929875794714553015416619256740539939778730089433281110606971771542689856070637498846846961424635030893240432954958745701777634955415217333013751022273956756755615883072815775781638884881218367033999441547758188329758398695759090520241833333405742888606045535567769551442709369014990524186645617780364329912422327920531713116357651473156632254956521216045625567231917597429807503303856958396742243715092229862794989580920274676815747773858693028504290098622809850857739591121827841672143677376140209890784466106104424789012184721634413385965088054226515027885984408203747225209270495348021212604849003360524115493920722467208186874798303542524644965952065103441034659047783749007911309809630671573012429415777943255891651973146012693419039282556984857036537020898747553039498143591456738620956758659487746417027734236496238147857630465713118664512029917648238843972590671844238984569475392480589804203222792925697348259072405380192307581059218048817624353359512700609404507064429039972271581196195970769096300563986220839727976031458261503762764278677061088577118962384956825584238594819428430917935138465837042991296500786084768187708647829376354343343032663165526162114345140151033711108617872145961003892858470388597344607275362873698219362748463437681111986592200677601285828065603286221187328286473980758982343441306369883137546725540185603436614190519333586856437247180352249948779670357658371033653262523209210395207765433960806015444110539616501695231538276297992059914606729459949822374575045286833681415446919817116940617146679396226703775546073853976475471084306303937078054447202618509567346397926381964473577304890862245771559626613553390775377241305319951968091140440116775479402006244605490756173057132502854170749310262136859605924121244644931119521298184228672696708747858027083580579699352902014555034257483833276179336002228442438328132505033394116020957255835829971092112423240049642907144589937593165560870061702442039849706147977731274258945115804477959687191444052976251010048456302071365260010024076755976872080000368231424517519030189174946437699750162636976699617988429869542060297981473457573827910184680250145591469088330494529774761989398448261372664620726654986894107319807396735485040327294588965220286463461412103789372031588118855136542055940959229535288329365380816801665319154507050987744994666419882776130288181755493156949802266529406638356804105038240927966706549089813376946829728704315011897922133860177775096458430318679905588604060743921964622355861858137895201943697335275761562754822196425122744455345860670699332088057517307214666456317658316167744741321417704564049801110919489700429337781178460015187396198699929339930870810633559388118763486078101641912993578757790699216016064212988275156591648986923912327978212019011060910326144793075221852837185674010443028319131859153468636184954022339188094154160097191237026821653486439582557624090183611211884914413644963305388669185556056753074433029712216288455396679595022604611184968302532041615685288189832779543143311749190636419688359009029528252439884317816134685555766206132662299217442898166957815269593799759764915706730504600544834789416711111687242991676106686064771761480370804104556271512403881532207485485739619711257197276784190361219325033260084823193207367013382231158804385397144943130770163952553720170567546943101234144884493647819066194430572956570852905894988392860571576048366141204965544608126778925043620958502424851558675930209006779334823433314702393051653676372775166249985673816995937918935960514909053327273518663110534475673292091524231284350854142402740256329437141822179845987734767044976229647654214287144676975482732774795929279611040836092699926248228991640071109110251910655119768013694981811590534194440132932764362496545543801946169212780209615170738732445773646470575127368996367580138033409441555646279328805949418677705516518374695513006797665019442299630041279563313027888567115172413413830591986937896671423184632323034876762965948016063853414741124335449484981299204003912260713666073845229493363827512974739154831510296646490427868084733921638465055777834997571777364859546937268224871100294019556689324531525705913087680456533684747859155276053267499385228387292272636716427016163711365868990663959075416817776256760896024582941948288118850676092325846421402543423321568479558838309851953203384270119380795448152789196458913455929498285704276962679196312101122140022365906896333288097279602382833584601642027491990144425630423087812023962767011739717547493797259835581650351327856250253113375344823971391569443998769787512740838980218302169412398209446462826956548944848249551177722763268403971721584669605264558372402939415730050033418378451627474683405602669853501439225816968277887028968727034397495829900732953207120848301692776865359917006657057753557438228155875394557304888307579679962139895310446713911960961726833277330973802676243963849453714357697646980938337770440150133400321339707461733881390056146737095706409281521445186626245370008181477186138891006050579071505214970620974718160348492404654331520070507117212785702690492420296699334725145051327376484680832301106798065841989073159589956832096264681456211265085344604639874409713239284189348837030002802175743471758949091405947634322105624197713714186481977746922238492562600212887995808450925526155420349534968605872173331206479967788441513033660149647098045907999638733307403335325862542724780498728791635389849391840007536397287452013640313581001801555178388889018971158605226546461857381137417146649020702525060640133408026209385095698376443228941236494591846674771725109961270894362498707657520196547393438244378357496933745528557585744359957164460488257055241057058125226280246352124398163111193115758965300311512951578979494847903673884539358747632648070840726356867482779332634232613286142327945882657532735677978472341651320076759909267710840941989752665685925278886874460734152736222684204114987673554207415824436049783760428259594549357299689830880304846537781221056377613216897793753980151796529546539863489962344612286558206646809435933773173209299731163335591145456016393629982858253104723746691650302028778905149617176791240829140294159642406272912771154538504776049780325235715903372240698709999985636119986146952838769496633411484639448688986300525222511416981336013274908652515909518588103694889849396735157746438619506526127259406493096248078598364054787425436942411926329845980887182345309644295467465136036747997462560296828553205576796991261000276697943389908102749860713856250416293329034773755716911540819527562108112432477547835919657350532131650041590408648168333069489119160237673566175211671929348251239758834257894350324036660442342874698899459621375160707693477262682395606404818361558872345824666675072614580809741489460858689793460065883513999243202328064110476491932468691783480632442495950976573750511068809923792637949428412015152440949967248543750915760433306839080842676019658585410691943895459573225305029798691434546816323107263613315154246204931088203375067238863560717112788447558931432384216947363324277595418720547969008951988956971689612355737638525973571839172739330475455168783061523418838055699359145393930179888531951484017776048649384725173365521495791215864201283375338907190958940971527076063902486651744185232993673580591887213217855085803304067638843756365190709104979868672120034019901515933564610762995969571408214013781342593956026442799201045765644892996861726181677551723060746612255159544108651544128304769424708361414500466069154594329657216836400956016245894410096342080275283053471947066189584154010717515052501810567343711262072447550354991882274565289524619919882424912103360234435799672787523087014288412195375583751736839188990824297082991681414787972364289400383139280112858813838464667353435533991144217391303060873001557928595032683011974053775881714871978039406432514780185883878775762456713189817501053805233405427703557043096741406419324083864741990473084268831304955672012347761124267238733102216007425742909689922648592079095355624616946945290524002246119495641727451352697159210118987413928964860223149965832557565014228091364697579628985850966990653668998752626143224920743355236599741468500857832039851244762688362731041666869383386724044856970920948402292784065233840092377763218394590252347860193741769381037791443939855144402840649824529869694848016545694668028707455581625299356342136697976625366702913581301549583010507459481381930144384784057605122748251975953313455887252129920373633179929496416582862290874271429342667033070087851268115635456298048643601975140340774598220231585052219344894988805854690396117946944607091066449221490286014067553323093997919041064577650608199964351908299619781476551855848174824782737698805927981708583775758991602573721650323717326957640979564439559417412202499335904148324136490336389762931765083761288220917017375614568981965312300001460044008911289940815985573909989837292248199324790028170977651442468905806443323040735553485897167518885914089290550656739024586556440132054646623202492992364724707801769182750837680706578872731653213618603804545290932508778546480508268325535305089543663624523822138520639706805237945964534242864940483036972896875920861248175775441014573537032765327394160651912639827840975704039137995092863506450385469347671913156719369585497053279808817464487681173634149113955652692516263448320818821728279365586891775543326197391593637078728695617527869263939598195700679129496287411881843236510320669700018753749431167465121195335732764502885645062532192353459390734535618245634423693266097864415597694158164891232283421826829250513670882391392149243552660453519291241485975156683233209174765226179069780828040591445631852321495435025828631346864790171736069463111854264474702730625435287770953268590838706266234563829388260465312134659429629680338966197612798561887957391116691044830839038010266927560223200638041736399715948768451072135647685874291541229454637400887996627723186865999397372243728361717889575377998623950547187419916548650603554564562379941344724048708253773237152737652532342409000232266212210885887509885021686981863719149503418063155030244953694917075118048461886838266401720847718784988194059941851536595439325835222354533018500515688729316584214709465199396644614839491196706826124660917964614511395510480354144649515157055584632666040665482076931311641814279247596069745258788957673606903315869800989456665520386299562043366424536519458662828893349080142558883468904897298072727542215913952523889765688609181175308852217854011047377100154879824230828526185932687642557174003994080748624532051798866959326904813090931513001291263980461942428537954540570119693148769515041702398553796013304649754210381591678394558078940192654545008583548465756219045307534154016401352801832565456940739890423183173269753965787293964871081048684710455652086148609679258504495457089220151610768641343569247169523880761800761026297582865021255308538533514630551694050560089657959019782582055981629091119816285615743913091951158861713218552036861971668598749499347601620023529816629768188494483334601931684932118044755567777983907647653912640495950623629187259971991216407274429309949150256007842372881958723929134005617017618172052224322785900717859275298960341871002490231100036393889255077208185909558385291942362867612759550584758217286979435481702637521032921978201439316057317687704557619092434609553031762335553006168629841018603911739210787018631265148377419544877106498804306697794435560453654835140997073297546893941567381640846562034370593327875251036220537618934496688170225542250199667213319970206243959379005951842265482967660784905571198232024329566247424135083980376603383404976797548138389528657528021404032324545910287820062797262072527202459099869517263572006018297163596813819538167932340143290924019236289061641836832279819525076473777237621439033297781795563572889551867735251550791480098325904961049760005176872841870434815314135584265126888897576850394557404006659648244564213688042471886742694150329763319942127734970613847454849424013136231338745829404840270670402731745242424330606679965315367915435325800028632917675784276071673343052281628881367034887172258409857587736091959847645896946080071752589500150672872679709859934395024486135916402742081376438727025813516686922733277070116882558279709391180253815880296758854005794669015294825722641936859725911898494551910823838854653412866288016351127557676574781608631968103861172952412967458153336918437821848873821118515507508516049252816313095892735773791283821892505763710469884882047419274386314906632481454624705305958485482514024750610365085399566405443170978858592432266654823304021559434565720872210109538408605010387994389751540739116544631144205364546656409877981314716656990097532226628051616539811867179608677478830524193400522815256883827895608775470839507268323676436043280764097320717425091723394345805705005160052772036204859018635621607269038336651073001071426568831184578188001781376555512375284701221779558719209622761479792162966617665426192376494381436816415329605884670003399520890842908460412613977494090135584428377642266992170859414153130669545347324651267421482420822860500801436535689781550704164937900561392790876781933253515908580663031876237492950739878652903285177129247824163977348439875211948518087078623584360443260962133761880291726926070151467606844949153909732899397638978752451885787805182567712188308740144243612101978310022582327537490154239028938506083053615335147300881756177205276454994887136581023019615920401421285654280956647082106930893299566200922272617615675309695083178846069632896742566929267957923464700757273035970830558149392567538937178632244970045213078555005033438371927016686642752693629136172634708006880874869747868253120316037689619191561959717104974966258354526775230892750632919024127348161360905948084395636620286449523692997078033852811842462255838174409595801980490499253301477961992929865827739549010463296801271164678731180530714604894080052274650512576276051458281493411191127468024777444101156824635373782184389655211917839177812727115180069123786192207733277696509351000586237938132259580278546100070402816942061465614206313820083279146825721453802162591212063086597770526365432503987175714657820345681180588271118218431449760644253717552751875148095604509159442401415478805752220376302727132285303020394871314800735505477362233459356495891013049035251685998185841874022765132559915080283622402370623288816887313242941866649889209201629552689465180808886392578014518779641014639023595178586544386578090287261966482460308574657788722822182764292693957202305827318600028108885556836771653908448075856733170817944434654603386586135008490237140483745218775581837459799772436045019675981778285894836111015370467971398310680762347428427429607277428272871549683436707401441939400600336682306231342460552874556444257647814028250934564932232575052827704473261016574386217890162035038717268676836112034763206716270886843028936137447593861242312303410948302524454560482221690794576894324224864269072741558369365605065378188086301317613877858678965482538965721800588977553660310640885336979394284990596615193310097936238535855258912661073645184068657254236807849454272112964452487127301998832398763317473141132934166421414402543820562753302534651205870582886762624023056869550868434407346320320866319954038647723706893630658846124675030494850149416097522472202153549550530558478842744144430757164172108270661868111221177949958417816627902587809947777636420386069057892135398541911427539461411186124856952485603786716619353607915031033179785196742262571492173828970061850855587522890169948923013233311161328699955597473128951033257767882468327732641118389284716283994623363575088048412071091301241663497615120490596086472554149751070304734432499385702067391303407730816239428654314801516481030836361754931468445645380393174852301802591574014075233966841133149433194738320855371133597374535159889832504657745747711068496905467895791916535238293005087032786309885730009958523173774604243420482978786670071399142529234464029330381565879665341053133600742075681451623446951883864890960219812550403170782790380603246654517213972115392882023854390821999774300703137901297917662290921067580984886285790287940905508423431534790149944964402775223863752426984873781386509054649124203695024983922472054686576436830736673872969117448285435447284519139257184816025443987976790925523973847889742176445067087181482033424540367304433570711959165523240181102686481642817690021935115317503095446064438672341030365293814650963416123477527533987179403290634470697600826339541751500161265387342148719663906990271627012070106911351999807989044252825309097693066789786920719336749352919505400406344951228101517457295339110339574136272942216903941973805723980273999066103507472419331133429599900332643168644221532910344426552475920281883683082521228043808611204759667853148317054265938080825778118859665660645810541526763812793165447170247295544758605635097947493438642779902250156169772313907039954516245435155504409127105913368171733994854493288004633978889665102493042995738003837250258918132094590259208861586478237991240430902248616400283466052000175833072036272196056638805740718606309094563863970062750307268359348064802228926469354800644179472599596407919398361886383133612117017337211280716793658597018194377229718893396411554568952167079662414767672578886827317983523612325558191256196101079508367369038793639613185825734377285930504932669180450399873847365838626001019881034381637754199440964351304079270556845862307286689900848035534362044904960358818522852190954868180604558564972849402072266821594350430179356658632809293178388392698462319988410087278810343488684693323595757611495041655557626456205254241084707747624653393985770225721082415716666650152169402344613840254416892874023314039452757267742659072551971546613111212924324342691828594567721626830245327813985271169099011106880322681395627485453154028792336556415662592516923395959118053669008379865772895174524285915025104129817456163150558948251453430191695281538447818416833178404975067248456179760524442727681343839488925327926124439065307651410614262458308274245596017465667253749653085272493525408238061390939221627829582281478765113942362317895664434877039012218562514984799571022987134253288732251424654477806381300766571870652877922915208270283976675407317181317971005393575281115244624565099665827915437024381308704486394041394955319999367364608471733868716933728167135138568517654854158756632378553033294385601073832319476468990680268285630303438868189655545962375112758475101081532964050737715932295866902326257959085500686744206797231177550762541362605030561957983568936951259907416134845035136877336539705757820642729203785199010100761285150056630528860282920507794062905247238634607681422209547484657815946252959226392627834452740105563130784721163433950937717758940259863522332782965393767542198713415565694767528523490740496711993808684695751327818149195269128560308537136473257360074701794956862024805331470705361687357142826431986915225542847066127500288550792195784842942376486036296530095358446010584258859959979239811864597775320331614964189515720840886092770529073568612919009286685259064668473571054132647412251424314708890262873431624347617906013085000984318792203872350386485756802888428847208636508500457932930217501222803090913738032876326776769327446754633272092084096710702055721989344416896682145961107453039406453007991527678025380434962912556800286891895788839149722096382025649185002953664785002461803197411008114114178779281695433886665163837517944926572833718219863849079458924108014224009830780008416830160575229768609751432562172015468083078628896643548998465778708035796732560500139520750835990196548107772919340405858917661875887095793345116228515062858533281540637432412278056865076271781329027529753171106040672911240699061441311561383994677297661850536394004364031812025159357483694392800010248712457037817499408892957077988777191542210727226974355603446768120572853008264315979999654950687166088188375551633238120994731758220092092380737329969204351643203055079295526872238555528034474984904705678227005311889186597871232704041357405871610879050996812473532536190080487512028963893131219981716923995940894292454303007233741111763621439752892031600894281036181842436031698684464032556727288100331344935292386022253986165587796861866828867421006904578796407814384690847987384984928834948107162644138075601046894473354938463901045157323674771315205738521119449970225767703625806675363815938925114997345811645001080817467642864233732902904756276580904847891294612851249507568532925998720168349450945731508989267338456172809797838512651808318372696377367119284658130762230972886001673941436971707326707054611679851975824213483818182166303437015723248464272050122076074633934553793722960522707941793562893955350154319105983432365362385362130366096259524000251500477601270396833136446789968892360359812458232968461986494005369667916039930775836934183652774404657188717468363283630110845943988668136476629840541925191002885478242958253521233052477405180764951905969315271303439895106443189795191690438730550833213796465449376258969942438368665050712011405678494663791953333529215290814777397676491958480450099441746004394658482530931659301657280864184333442713942554883876287899724680122420277816791992579774196057871114538333283278022010467874277606702213973335058411731961796113230195371328210105134383389546408361666067607264708780173000964133800168973646581717632754233515033615888193168264573721074810040644257530363046808654270148941221234923603458590619867184381207579400592294743561684165212671676794981881732214407206040371434314096755350506620459626376882494569534269184706524401524003853157188775616274474457646269389087129456292851659140618620906650840999142714655557523051123836159246938313819661918372231325222777010675326041050458961689521189022342716497550312490600935589917024731851258078118364016966981721618502217720317514018273226217274911004111877342263997628107024468265707384622428031131991451075518320764902037906164796571321995030347660102643943464069965641229829023186175727142087967619897992431539524092451676484053756118249186683032957382723603454951777984694275805980030028946773329018855022863416685200672997981584062348248118046152718027590676627783412685979324556486676539330598004708117756349865465746646831099308997369742441340855742669642412827727097750570805566362469696933671297960970220816824558744602720248468800512431848763358661754935205315005691628007569388725801953906657469293542372563207045274438462448620422091820298081660336010022148536958845309546875135229116305373723150396999562230125138381360124471901488071913079941463727452366961481154151020745553699404050522820701035611244621922713248712405793419604337931042777372000677906068906457818903752842687040892732777132601542996699888691163346825930408705877450332782931593424221317717269416475613067054243205844684172656790354905288986756869228675240559220890840409943785009438227737307663411865052090983198909062914126632297128491814862303535228469073051847831629351064960766304648522362561639648164944125564095997357408592817767210206701276664276556957010562992390810262515602070010775063688844585490756803827928577229058290385602828572063204899260633456830022977141952275479039416390046087505622095154033829873647674260264207343503810656487639768441442735956125460962195599222192661671866184701436868398554851009343035156733834616588067511447266895224856657536874475216438337757620565199586858948299799939046340074652489445396525279622677524678113760681186919062282023259247095442480692545359485583755560818023914641662046271127794388603141680439327912933923081976298676785957880578234798210176334818841227281999504818869983920569190625313371701644233045571374309013547681399709867179935351252295199820282621367759457313053347589224332647321819807529533015054907033710091573011235469751894270839371579730350289071237124619031130618679578585140169569324853391684177603192459699288524484238164291280145115978007890885571147697506740025898666625307478957237798269933145955779723309686719047058134127388488921543612066773335409304600766738671211280428451522718103749357352374109127865991060337625368633453663468576161774174949010859516608473601468986838834696186820754737586917542153400985849760047365013338558297820713589086545195625601466620844239320397009754248351950033570249662761636361178200776648279347387432298472241862589043208508558341149506328962368215508508491548491151183009950368679446458027417914906268105219913592678934803058669652147267317258492889357749805138047073807207658722311104712814585170354303498978915138470940210804062645984154382754329342169460278147739032813219241208849881291549653672605772300148726993760508747638284628880076666078621198800153946848246330847940008271618203908167442631709020667718979390636926421973841154144413937396978506033207951488240568156598434770553618018797239085006109379738210592215086707596905966134946047713393183057932468426315671322334431725224132510257937080798392254038105157971534872987807616175127479803726215106721992147792021495825561117939318516210126155508936851493314961785153842912986392493254097279957702059939608124610330601266587280899186578824201402943158854796880595363516764058295952465899061188482464396818016679385429012202813847568660695143218282928013938227563697951760422634635817280395554393576244813614898816723189052678799382958127715994498930915392786811825103379394079420212136863437293223939079892448530950577723190906544611195943903230158080030464193123582879228052950548883168315292962453280729566897548660819063739595938381564077944106349541389597820053595200188343650401356753741650919312746585568720432064895327585545512138685573442814776672362706152872885459111499767187605893812463640158735703239638377590754312408980252193244321997295367790279091629958416025930991342697536162204620998708341290905027642500346506657937541884937000758690710785848061015480409325274569975323686187452834791886853826541327586298348911875864797427579546623699742315302133078113397453121025989377159810049489637302913776680696970168014161973601197316413349653292163420350945707098649780619040987348938355261611757106317942915780978029742434374585883023812703398924653377144575945741983134888297316038070581512916176007772171559385196422019699979174926879248533125170522601301705720040486912881112601804248768812924118908526410036522196797954818965587560426053098629495303780694655429668244075740504952629876193786810302548215390517579790145587306644917139319661571438766553889026162220433211572280946851979101021630345531810700298659347211783011325702003770359392862115354465957382635797284722205795372797349895919956810827988924288258774967040750257987910839603039343731386554744604322007376052719904051245929564427853025767525636697754753793537346196377022677237325260821827606335760721538764655206833084501164221296336899486095850029970754902257393697768758410659218312521935433678918977399091054888307948078074606872840237934423264739876879769604443161600269599337330061208318416327901559174780443250669586516425325312333272584499806064945942118968863083457317924229727895816877043309155859661739936815702440385769348908472818333527037935228594928962888916268376452715975431661361574748039286964456328773516272310340107976413907250074328470969392871227927255055100243966376992846344129097831915664917164017428001814786802104142464446305967049788071906387041875683668002012560980245806817315256768824795663835333010543746955952968387880991266750298810559881508684307818212087080120378491634056536769711505374043356094659253292632761836199965601601195597058500036951509415003777719004668788664059481468582361841582008762120855461989293456570723513651068254818937595206608007595234030536767945832043795086857881930549458093057988438053534284752946451775396058668186218602713787874683402937664520833140074295109160457848683311296190790242954431358238048483389396867553752160780868431285804642896840464480362976974765919021048999064588180386958742891764791579710048390070003360688781704833878163640353720227404650102135596779243542738789521728543341876418241467649310894598323253446603400318464269124509364684272077183730154624098092589680621941125734823570894352492713282051861803793177468863568995946700169220150799171448833562707938315208632110706897228396625904887042308088741939475721608533456623462615475723343991260236083081813817247290597685396615028218057688730869162603869349953943293946746213766635237618808624795095602182619999591064530989406507578935150860045100353234281735989006374449712480594898930475055783597274717461576021107268155587543450980394895366630600024625680441700310030648225472861444536650982068109792279526152038690887646239187121501102206310111612871659908863175547813409531834823900287518668691522284013864726759464261027514094587361378608967229324016525090767491692272340955398258855030324257904682521128947582631715861371967095423379629561380777544599984378429006326332532898223556095937222548524027293772533674928260000687467287895350920206652498166771832981690739880887696985713701297258232519874774874279454726843044002757198957656217648169248262301245140677467915061005825559536832260503736349505222482419702025610338581175962946858425808003334767414692655713391009781529311444822162003511228327211907818389611273720411921191534737931601416600062437662185652418428149095443954871915883231849538602332801126592167369468608755559657376914832273994305701176822503608930077791597698753507448910937020674146116509693743453492414827256225268029308531822003489076947725238529814277944964146635322761420024762220236197896457109921911284574593634806144833315688454310289704793218155387521514639972909027546451666522036398977791833065457596320286483207084631393108521498319179810796840436753307318154429081192354667959632505458009968103716106179016949082073844559894015976085517426653913024066515320157245068377349579831883969084459122102133206183904131308412269560880102538501848037135834908954510564277564600501918380145631418195572649079690719464400153493231796215690517776218025680393839574074210302076772658692947023355008909981776063626296523615339807457228066388802236106875598966742915762214554240849676536672811325578751258955615429096864504928887473609375198920229968895163905830610374206971443761338583638225894463822079275374974636806075206579230665737358388730613844874018980615532603051045359208201565045410633863049340173486627077929395579270280273688740316278463580006747215399236425537890105743565838597637437663594149707621432242208576819255235230772244771183629142302904432748956705785532205921154452479431121035099736481752180197168214355713398347007589190217003482147270642541176705112032280428103002337544249665493440707869407175234305651689956845248328588438246451458163810196867012929275101774336162797687049769656147130677205073098206826759085427189174113657430720757578895133893954128809099447183520246954714220564127165915083727679818903818585025368457584085842234202624490269266525022777669746163888184721902116789673475388871266976289553100416461624088107199436933503897469594042417216644115681375493510547315146857751858416716834234762746299003953040162969203119646492806230013914046395905649021427639738524574825015919816480378720906036331478528399867061016850066946620673953764527823887365905651165593441551976888119826850659251822885343571514483486954686522460032488082190283726701232677564700937723773372862812835979680514318617265019181088922963041794591623051113249811750370788277731533597279645141189518925244696815356428093756606503726804384395391448846942007379682283349456797536966765670740969411692417271702237114425158674901611455769229304120780436419950775118018280959398496962218775888091348180017947257339905734909051801590772860052150434628810009630019675503931800059146341230751147330084031262027664879021057049180674299555048757381042978354960715070506328228531236329255637383940051398023026316049186747692157347780600493239640607539947483152553951016331207305021427917413219233690408347784045031004151590936894655275913198776020422073851200124102533353270596186844083087217622730664862251667435599246461747052247812680358515988429308556960702055349648261754500096171509747710203879794533543412689241048839437237911218249533340297535431945918846303424782381086834984012299864846183932174953205726425705450855516633219618606088338815338341792681903978292092304011610299545747938440160590918676860648377302499957748798850012838629462301196890667619462374425578908649072088405334555803652170294421752817482542249421325055965304409039881035397883209449408491032902498626251080989177558573581199932883915841250906943599554840946302730175814977910167752478068993295328421221119569097728907209451354804034133646220389021428823087226535364098737729324145805443089459359758825799279134338502319717112910676791267840721394592083462800728532266556832953180024424013039189257452561975721083250022306113989863795883860095472523675119344302588737141031790483027450632455605627143926872929954027302939706427428215138119808938944932784003824129857591870664147714165760600903393948678158825492912488324120284470276723010603458594700103494570082427944041450987325964419142998999108716538318875378381265658898057750739136822967239226495563378256844821446069595587104185592389372997256919406127897512692344211970463570835838025024097994984699038390116216760122802768747904371135128417546551697734006402558537160044968392623127091032221488933510638687941766040420171089998166578454045244065592229399650553917205527511646657976685271046892699290876814588003799922237575060544114813143479012474112472084214278602443876618140218519959317631904695956586891406720361586599671005237621788751977120702658758221147657835136597653323191063479411065561167612857794917720617132442374718150086303437505032512739122750286881646696681525085053236615649963809391571391854254978368274374275889320909091769415188662474800260819230127722161159583047502875701278812655575860882822701923037402856545679739662124671608368588459616533751370073703131445343949974069247211062689957869658622761851201224627188074252236496904027844352685070842889047965335552967610665917411989194085944303111400037507899591248010187324077706718572499987811515400667397500634173599024988035362280543765209256313788094362444606756975259979807687398694282339210060897589695638728958803653466539025556448477447423563104713393628942516041348863377448442825503131618732561383553448057960062271762960897181195327632497888496706546368342533917116830021519503686888073383765591473896754515083849693318558110304728622595039870579957443489060402537990383631587832996112330817126652135464417803417510255658555639057174310658054591166566733545943726601961322693944999407801152972404898873847768245416804873649032274313030234668575440827447353575208309359412973441926475670052970954780296877993356417144290967981068581984838365205910203031247940802416885014974435121693621862078152429980980083651460487951373119482820758899783700135774796539841170703007312479947202700586835584462571402039743508632829062424749721060562443628528303672285240566091161734736072300129751956962078016394399234137692028612987284673313226833042514914619659697653527123822085460966887671238023319995639903449477466345556367821390977832264917369206509227201371510561373042701422500280174057394950964400299594788339630509234690386130355596146233094500564478206559809937185253400963647070975718927697394060872958465748686716305826196000626589187905351012314746247039473451864694643481781850340089692256734849005511583418240753980812294016446363454174011098981885401305830468379116363784583944629543345543644296915432946551009390087075599395037465854914537491900280253232805419070457592724386486505751677186209800316620668155857833543597272702786472772474824275504987138037269887601930856155705847214362681465651675111274937403367413934801483974192628189134100850116284206032730487640543672035875945294892580505731201402014955154629011605549538366580379585265442958761055723680388712568857720896743350775132538785717208690175173459121053762037908415950263818245585753393385023503752344696733844663296581515560436373537981134363282579751048054093054644009088381761936944768178523229153294210826516124752672544526653029018901999379838337528889297010626030918152902450560740568151142339091662899008507956677311100660647412075761565075872094700832899943757975995169413349319810334630021589250709056886384313805905139067478812866467739147659728768436655014361451171936787470775552594562855850324068579719310496456232235582380275862500591166022829456672599251770195426365681129760497489851561856509437919021460966558994742317635613576235248658501906461554400665299767825087859715446673945551769508479854647993216245202891006963824766230144154850215848586261404286304924639170959634805859355405128970312488430736407801726046261330910930329885145873445635844799886147859270439301793723587797352250707027385237844425443768749874703000477412641744319378227043931067078969922794599002891510407713973000106135586224831703610923772780354157606714782958219270323994165595068258410989386173969113531017286649295508646699034821511606754729736713871838108905932647902176026554111626771731730377014958214026025260939569642265971730891923831449136272655538501919627182201523897173533863837314577485887702872232194835687442023729043275608557466861132219893152241658727620035287751251131368029214664771853619431937652004548153664900170209964534162368491077318264094154443482374443241849393432504165421883153396623751325355665213857579474446259797342573977936441983650628577059563148172377099480626015460996945993800939167647757624575276512612540288258860880203337043553368278056106721040367808786513923211646090132522577252864315680504857844588401727849946091477629263745291866834104804841322596666134865209111745781528831510954290809533877940207047695328685022710787185499738832366008085621100359007050804129936837391853487935473845298967702480044045001671540971945422925079830801218718047290839545956488652196093396654778960133544723029579595162652227372541615361022479341416014892571721723383478616575693479815835954143662884697112194499768524623926998676851935929044536082564704501382427367189627962671264534864494384577180893012120051853593244409314667554959153002265831847688166111399772042134079726971747216277925671263337660768836048326358392532453836284792551989038975895799038936417076342322640649544551144878565225945436801189097866810426956808082620485346947713652772726419407583382216302336788846451161352363552342951513525457819002110139875312064875406458621024053769319323543269363387056065146398207015543686445861080969384856851624820834547197941052709676848867155971874852202968565438456777311426695629102231030514631011388311811309891288157821494345113089517468713592039539032509160823940074259134540531171774968467871113437548396935225368830723669018273822469240813268220290646111423737750836021508037316760631991842249372582760881200762269185551167467517932926894145863948512917385942851281499634523228355848466640323396669205576501320881486324855725913748136054101729223193969363385271271972988353543571561156750672192142008633948494883236298664794022756507312045422952381988706414848840323883421689221582247647899775139075844871986610576409139227142691801235202907536620693933598672042806563700186622485150114327972370551317220404599155826391180412805882842681694035041932053388325167253202144578601594009287821371225165643796714230368663543163188869645081326503802173618347800920532295158736959020845955791743608500694298132962965961777139588535211783703135865967712836822571097564645464549106825239771786215510167540160539240444400243095229162878691382886777847815351040918488686916003380333868452917254266492569449397644030438368940346130626184471510049924893379345550192975827381391886560520691253290526481137570830709060425635466848452148244006481025874683936190899628283694692989784098346101309802183707814359348754675062852545037132355265688798534065659431763611048671665726854886065657113402184387843230340139991976714435444465078691328860179154582207763900950820772339813697185518050320222196817926860915969914797538153525568126480087885873828469962414139394594189980767896542868142915941014654444983374418016919201194830727271947724693319898281247796213513328828386030671965980724432159898572925364722217919115767425538171292045591267525705359018706842774573658016166643843557176339116728780178079992493264478687724988692772305176661005689024510283460228302651479580156147773607552456546406097809026213573636324693936806812488367215902225688495853004716269999606380207456812780335467492982428432038281320692851128567240151868536371004471924901554203332144414857889125084855108281964761168620004518108852845231774906423951581472021310594216917620111066614540314164251453726237819384428950257461253642763876638090978450169304383244885579467248510634686836668038898432105449910002969297286091608022667581435252225720258649285632315012715933304341105837601600177055938758876563048735717151865520687326160923858216505818272724212575522461352352480966683907633298619057389062240848309083082251134296241009621573182970726627695082198063492460860736877306931578369083102300879891063552747675939109717421869715766996787620282714444047826059502769634243729887784967380288056190826759058176998757852310307076865644008436850865045215107938152936241708840128775354540726693896447208220652030160052557198176661767202942780665438652571922089968212415078888238250657028124983436218483063116847325922724291075136823588857144087708867085767569781685502185810409305072362313513661215035619529732460863094674290225315651969077379110249405771024031599817860878027337956970911209626364419307616868873121129243250506647996515866569254560571199103341271612668738830009858784043993462941971373587146917706591401449814255493143291899122502876043077450867940967749246346162986764400527919200804446447879644522714608640248650075412003793040707135749588203461143106971142808295331490499432579041223568879760967266971889424965385287426858933438585118780282058949579169572268834612196944724556997434826718398289408338710966488849540770241834413636046149033567267760882849480959865931107680693235299005918120202512542698298639606484320888957380219833875891725448332160225903447693671770915054108584957293339551364126891589389685411740178648004603098044496484172576320430959431103277341447324201695983491413820767996456796345761733786746639364782129203596587553137156459866496348668953443301238864676571687615512586222783024227402920199038029974639634568293220211538072353778677049104998834512882628990716778325671032126684353525439372002039740170068368429478761782803414906584253641568294247934885645211517824830128340773093312490234194566824489930995778870745489713285917736618903608530989193434758445516813748992980493602273619261571129719134904245877360092641832851999212101242583021894820460392520449300549673838812850804611647094977705410921339609168482595418779674222360921921241560881018946211601800053671569326837270099058030311444587696392268607652653577643057111929149642374010391142089260461639706224135748015925918541768146753066067941547371820637501151412989863919898485982373865164743920754836812098501109006248289581927969796077416708186986280184881737296620403787796306099736766942960997205999226425939724542178845001325480533740400004287206839473713572831171475300691438540825243694442778494824569403484172724787800530746935416749913297728467128476823140146280742285451101017093073599760173204259218492895215907571957338262805132590297163179529386367052671134337680802115666084966758897173110904266099003742868483412311757127371736209345165017103778393089659887866390460118391494380878443162009853002442166985532101299479443528254941424988311800134046727622258464716279444790357359484161768612200560996355236790165589340427479191351865899909970569859206026585081999520180159711478650508231374141794503925710507904599072850870771077622015116608847498249527529740768204100397836250844697298085972410561931593524158275712815363841286533182094945342780669356546961607809743179974562349303567365133884884258850088263519019617185977302409030557333606363789462921055922450802038223167649573660216569672535462978853947133188021647477531980050552455713973845073126435518199838116329523634532436836473747589197240691427554077026472225165219574307696650293762813065760610709988916754973956682632001312856200966810705012257185140790077227627469177224040010437035342868641522151619318941217823566899584565918792967961461933390135327501761280493509627256938889146049814519508415418841245131951834442945303050328741970112654170258752341954186142412012262192802630143438319019464402145966161309858055883643126354194108894285907718213665443163120527257247977662631761577873140289281669836658011614945378782118825988725057975965904666548469285702777322852270245651026396345559060354636642467841086971847470428705862360223809366435743519699184648301858214014013088106521277489088378214752576226566357623828537407497530005403636308669080980849333297174198305311907288070268711031432569178511731088119534237927689010624285978385422772975659745263446683003161982818761454160060706611251061338213497389232861171955697598166853736244253426372477676608820185567762273093041381460147437902820387784529203469084857759152043699798170868607797165695609229801151719135646159352965746212604729455524973141247883100740761476099915559069350315752036018899247016186467696030061152246066389980048673910688145184684720206723211516104636348058970703455809532136287321335326164499438786281031222649422607633903446378448134612530882424602560007749342334075341527855772356092389133936617595058909076907764222046895844544982450799661803878169260340240521499955411043890307439551344231975230634314654650065048371526067605568650605605894268157332360531354767570817826291951308445679110799948798196373493980902643175766719429508091989593438476882972405274949562797259028923909763316308977924960648085807781325128492847866876301497314347892068794478417105930866238513640081927502457263788756770533607917839616538202918198826041993824013374166964973406346690143923809951709829069967685713846836842682878102059922185388054532034768895867879400921352066519616247655250038648963074715571730632605633847962013363921140054203473313332244605147521993198603162228051505491130407966659691590466497788489788761763795027219898958103730013862213977752076524023115641591468854560891004809408765602544076248044440232671631723688154728710148625750538543804127013305770597610912788083142337077241453462218771392005502867863840879905060498257396775800650003012829645933338371045247628445546017891702392715849357383558006504475824298670164133428659851398357230149644902160725611591848599446667893920000881317823454270692954587293490441271386172202016834007029434407016482086362510902072904382779670804634733628509769282968037451996154543986774852204160095210324842624298344092518042177779838683429980805225309567665541625388394476284530704089020576538317034233977154783941752212939928153550828259482348476117385219230576207790856820553443101036588587310440203281889497588569871730843967904221116783963372395841369875733659587837124887058775624802425938229600632555209432239438173703333058058343467321419890888734601285943284231700845496868397028617817340743508684235490524368625805121352175106018012540090541660719152707814005156919869225284444046993620104597027493685306421581179375038134114179574312095317580580332913897439862034179977536227347081373869267990768222315679418675594285124870381570038818623371249515559438637855037812871219459911825855351517260350857721228110212488619300992513197476678838622059654936494149706316194636016063622576395001306958385097283771807628995062222049719568761518581621195240660539605177812392744795715112647033317958589310282817833857708477716667484387299838482636500935492461951715436752259424211076560104192088183190710369134749408179869002957124049192396551864842885547976531325003190182749971154204617152430385669029493525217351989600612974520132053817059934328798894297257533940821377927431126156321883794135038198386089318405162576594474055198928209979822967817074920359749436196236585424899074003828678553604837127436514920835519301456029604264123344569027772460541954765289659597412632661793998829930805106458608208548619234306061190888615357650047883448850423732687549400647634444045809517801887378004827999142565986545046079182784409173808924296943614747708126290769409426892225374161730992274127770200120114788123384877102809567275607076524492000413647940635809357192499172259506044369544661836730022570239778370883472226988811605895455469164253382541852413093868639847994354426953814183906117407374713550646270638558109394350100622782712584331257809318684499524132432748125980219330656966013151114801094182166112380151126432170060020848398066221462186392899330362321391492893716957452001431786424055735980819978451488634554521150955146260899006414055007504099468208632691706357760751913088366066756807532342757726417858284319374687524911954562289224018370149609684471475990039486279385804029032092891934046436840009751171454887298372052788552000541032594607603915972105849173071324840965199530894288294406287630845563150825519782078241038121550295972963437777583972836652717439591464153374855987498007225872604878188779869653399154403374380108673029745725049030139009775796460630049921116901847560707523507026044659902959353233728616513449974965816257797013480384786039950503528700804602952723698125510046976838455205693827188433063857318445320600843234832084649361416484904924025446695824111947261001629431252053975040175710113095186826504199611565060644269320891366654427449620702334961698959387014761569791657436104986527621546915335508168243063270446888041161508764999604053887885635143841525048384492396251753505320482773384674652916469759101226717520900827564659373045594846743065302900248336344358020178735153044103392280745892939550504020022513937027281188338808197404480915976293244999986141278505410714105492903813365430702095666401182750572764733885755189554527664609528349918036752465666669680330008162794813532212395197966006999041299111451839936237042866476931012198146054200529010804393227941040322038192263570913920130869381216885449905797675757431286458342371324635963031628496212439537273255279974041670984747039957559953382628259354991240398922134829143566337971789848092431738276347981168388605053994824545884488566286225691733913708961084683353835840879723885404129100290528350922698135461513743172152392348722086334372399156936340981724598107626456402719057203108261345574016755836207793928044534412585140609664031729745113185986307578699552172207501746979693536966545722472741576492473972603896584174991925276572179148944445257025734878244414630910459093309339393015464158110956250738163412487332090801973837708414910524969190789566645660252342878671978373960855947593346767022801629098544719415786093667155201459995118117430058846587064808968103766838868188231939512092087137334345343969674606752368310224621641344771618047911300271447742951775781692121560646704689385852899905915764423473503373284964421281161229215130385706167912155247121130085814645685588759694454164875267193805995384777239140183914270771808119100395255995384142940579279099575575634604693803920546658732568076290720614029944886628358641464326132462123610026194075375100635109028815214391637047612104818574350614517106706914517679293840228898450407172118079962173754814062797809840527653997628909634360727942291506905987797144474233409009143675919488184285515227967910586524045995294192897581053304324680848928599569292253940761905322417999000128626357961630997504660287801798159944657567003353884544568065306575611831264556078075182018709541769525963594280376644629912270256071605981876972582718746041899385653285061029702178487424926782764751423310778565055793376125541290475118509201566315081905501637366691112070371842763859984640852598756288960332527605503642957419173618948133943773022710162385116446147812651889801860945997780266796229814995625442568840219045101789247881423097760665892513167003496287357537280166887438461294606875934439141088034722107333394451844389070518702360128266031855127088671396626302758805604391445268887113961872476208932471576912923286253532721991212273075475165408890889125103023951912261630419638427845664806723755388369392660093300161600045135715248747973919627279046721404271924517953807708016231228471701191598302468883984432396542060588576495337483618233166782572343658043475655788192179685977828014130367494091598698055484828740344755307235846018135271088428057529629938652620641595830685174435975886034850580806590420563215982244123423789869344225002124252840991197201613630935287492587328928941026990790745806767990127784261724519747753830938005381933830411053293793492536115928564784737102037180092033111109707522426476649853672633503190935561102854845626007921011104084024425427204523828400568233824108974159175268746391527290939044541941290914731770806093030002796110510660544841281926798043585864231503414509878891947858865412632750941284151077034279468779716240853015343481487345812218605766132964012149840697105823816680053945800550513730422446187901890663396954862303483714052195659568249667980805872598188729615487375900291094433590351820880830712715900491046928853973962770328281869495075458903149237589684307644381849904835433918941272322410836417878690499267620565329326759997595822817695400189700001617059859173238673096635552590245886143546450127473166230063156192894721331588443097768980275477624805212835612580348858362452198804251177759182503807137264503917113203092610963585846980057355955880774216553329059222005928184981090354703550470296881351098443869115301474450783118613645653580071270027744466717442482206259695899222198206333532142579068755495927333998873684489187309800759773064759144184181266956102696791946410945132166557427454871475149586282950919104801532570608253234398220152607530998376768897038431150863256521147843531529094114740565328364552123883545110670463735638923294913767385802011507750815179300076006142315521341525369810165893805398012142125792816746065629279308856357986001104675489734742019630345013892504963139138184671533646178880594246902274555738741210873476500707233102479749180743968899925046148875374893946727828730994122659823137076311135618342185129538090339610445913000528120999329229305617709574787907974582222919724482857038053072074005937344568122803819992612361365241884801008049972718229865206721636858013794385176652425915348146954351679977517687366481244675618810347363181280710172158626434885432650002616003637953036276843668583472471289230950219938036532944018000163027256869047474000638793039008306423039208530325642267773166142699229095035537894357302475688963409667548031349019415743777606121073840305465489202325293106368974272492587875425961784201111375976314273657679754769360902501690842507769504883966662603345292412879882529596776255336390430251811407785593885474018745227400830073343042647089171856822656369577238873743415974870062056272110351197172567949519385751115283423268244092636620733735069769271321515546662702879280466412427933462501849987901912480707596009180732198860372016272516810254095445071773927019673538358793037665908714327189847630585886392083396370339958094254424117117712979880401712477074930406126639210914544134108549404993690357864255525562018718587943486549305962334130746876425119273796849799680256994498149683486295449722925350066445963300719353956902186630645169838571602474885830707053272078692858432335720626276667961093666224203111388479270945363194143639748254040519921350536075188619938839023896443817272053076693040641752137823293787637796108742510154592360300759073575881735338594415651394637885616068388963023765915558673383265521764728618593531722905691541633111250125646439717605542482682319533375030723260915536791074432345716041782484648387489746487217666255896626870988310604480790435825364008445427411481179220969647652033642556315427409004218322599484749327489301759610979757292653490954843221208114912712698595008976019976975622552065964376783220792876291042188012945070794233218728054724595043215670845620542439577297944762723447875451336214581449730347428802693067949014232862259723586192327948272810919612616416516340518033900770459865771143318471769592965298073424228573345510087894596807669348142570868054129573707501167538146049290186231039594668614367916024862730613317292645508861631765012149093991776262865322123198037456681151904136922047260485382821656145159352160224465243520999594504871066194042887775564014091056242190828669222156508477410734498599391886018980985509313465767936757438967266708258221403652983691343653465551092824360563775925071844071002156531809287481109542921703661194841248334412491392639942202232494346238676433694663171324829244919542982363806804998698995021854916158658154767720408208991301760525978902709625621142608392617349248626993446504524932532665342353279970081054052137080579150128171419573589350979681814653024891047006792392299880989598899852159768344923130977376005912913140151153954050533753228101182730443110927303263995909463545398565765504955198653687470497918580975311712035272965680860171234636661331371650765139330429490822348536329819955091681423556267125599420623107875803637659125117188993679612065867803683500539475440001170781548594298239595221356810285653429599586263264027135650518887651137801169635708592420666670205457428664458235730134969524480319212162714844053949280348031648689613136128002149172687361973580530905098911039850155465531781658926044063101225000592159262074961946989490378241700449759270077647847434527580941600650849135959175754804097005439746367775696232232972532264656457333897377313244704813513795058000215513407059913766716133456300719794115817267514572446505412670831484304760622737391771995805537818637267494300527662531089956850961428465803677974509723755705356592192977310411546968490189478468598139921997861825092692802359470445341616114723554220357658957077315026494920388110893233427356914657069587744507573606369735373540489227603997504378748147500922155131427076053104345616559167623240082900090357652749536604890816336654353120074469890586817062158835314279831681383064660444488320996815617737703067202606918482479310467011867116118512876245186928525686676467128528506092921881188417953959954559272183759947487757063452101364056637989363210404462868661151671388800258761164214358690039810601253874497910194943751805053710178972777461206358361031256768799837506440694718411890208866942520288460294316908341719280594369876040999104524471026581664270041147826710861319256269420884955815178417515998381538517020370824163659412758914882767062074676089344950886096981998665247851940296825890036092935372246685191453901197618384763375992446660173518054434528285213636144335923621386921041976066838775967780925921779603213799761085150070068266194634954624799394705469530132822792854952203459516621218701585769788151822502349494464649148544977512715006059748408122918631714060903062292560444914849263002365873832633566635418939390107684591533478503656497825646707043637244446652575385209403869177571078144166446176366816157785633580082406758320380235289330597628582805499266428415713759226628868232762852129259766353573062624343765693724870954447757731963751605318556112646738950400354612208813026889588570415172249171887065151598584417420828630644583195297265564722607493933297689875072865020147784236341645015711014835444880520050795694839283538759686369551637262004133081664373423024709239286425260331538855105312994951798369902052282931196962240313623810992656896504820231478612387656470228019275490493018390528973527008512456825301330403344381864061757268433253205640848199703275590035826270298919137123997731061143680674328056307856780883686369820483901872127354920918155825768000596847872768734517369905511144223725244229027940706030925782705782809311336250995650379221482735479329170817772412205898064026976336082384615731099121916454878950824727487008120727513660063348729625455206999274181763645506927341501756272713425553535920243139208398717718174588092406898747285901594617248446623466539901661318401516877956913677016559368882601339460718437099323803044919493011206567601024252895516178119025397115903112541023619423571892948854370681246236032734026613161508454559380843958665612719558394522893437066675389484896952378466926379101984628433532685818217853200789446400004429054282594568495653875860621519632979043446454476952831822043188272429900960682769613271252059246360559935075262820992791967237424032047266578275965353347733027141558693046173520956259923846257563456828673388903774236085758344613442144344811006828610171583908977124425612199051607079955553828087431679809967691174466550743488291295164029649220569310939262174413416128443582563534941808863505020555134165587593967530043630484865462362692715279393876883430564137379877807825044576386550957574478950584095167864361791040172999369281891432722929106794942605878724788257574631881472393293649310914309088318112425425558278858844147015169160709810326765470002455104465983685375865114187264973537361350793320653939387358612633821635282229983219424044067870997858423976167823329831080526685292702070062589144157881736317155065010921447496962581233961330506826244336223286774049284603566594866655396703001582465623045466752335549799824502227878258467842880977086761226194974494811990616652988672375887600125279356822506814846864584694219838095745038403519373553782628442439304286229290249848152383698685485606326659346020680878397204584572379694884686118496974986502868662576258042874117135147859697486260221562029177462569176585773472701411639446472770946646427241705055837284952866970917186996224039999534634059686750186513707750901294841386664355423422485805083789143875102480034535142792420087221654661115024256170692693467371584636154896130164521268010118161183422584704234729881435954313139367611000294594531310025023379646978762306821858170586333153273692680906384384128268204892057695277142751516782259073049600815015715024355231583064392672842620062932937502975671308280537844142699610406935104898262123779962562675617611442740808173146966135908489288983512467014624670404890983896241176834000868210840992326993291889926687426432678406052162778654143414636483166525290516071068838004006197722281129430685306709786765183563516290081049559029707445823357595447369974246544624322096411831259045665973152215188385232020890403562823738815395051015871280876999135580950755620754764583728145267780792318005362099932181864534650127353634268282074025599437666325419092101192450082949212016730498462960989903627573595727459976754742954993552271266487315137288183296481543726223522685837671313356707275982891762918032802733507829169410384397467062829314388850886874406110436363705637921041235403133452246166141839376317937069592460823894873733699606418520873525078509616007123105508044885177537109768011048461115988166886581247409151589642076292597313956597838354591973339901925036240289299021978234198798105619153656613934955863652088915264264529986183155264924274727368713741039612953683035712507794060855481454920659037777865083994027564826708779499844608123938355110625934858838061905927518140768682386766510915357548382060473908369245961110459280765207567413116872185480638862053996698098893300044411408788344211803903509618567487860297339298179887300549183125281572073478138035680802122860361239816135037365602262449063201508070536494076349506374101415744828089217039309856036558205137756656750723159844806110564017148670813991155927281634886456548424305212961483598724345339032096265879982743822693304478520166504865980092664061185121435061567257301242330178168017465465408195055024165673638321194369264388064222960445458763654970634227300753965991905254051565328369579154820543759067328480622868445391673326453018067963246957149800724047326082310233686200425434328509895174758924630562043519396697726625038525687549867393136585678426445756834275955415106038312379124173769087847774548581729185244797512764380370926509574015776990337083815111693036365688168536012105616307957374430800809754669106129770183171043662677279265702035993921278189364608851417852271606388658485583837726607293255941228378246174315811966332240503673372811540637805200515053754711994421939671655944786545341828291161631184044551207347089731745545816482712254800221961198734168040380506644131604363684958506083000942909721068429414622112933531126647054369951532724389878206412740714862568790991682611585241397140761123425678953839637409775711273361580948336239404270745179914342966896996247546281801188790720901829980515318651386680215641503604498808957648445275336053324500322464742836074654618751208301176451370611468326926310417256999035912746221749910085549687332127463002895101910425527244719201290765558034934457517641352274997550916607604150611221295262267414958168128736901465390068216885653852575561077003444181526174787212237454531115258227722185883196616495895938757580297083698724761213392228078882691540356595504161313433586217906600541606200883128549110161316565293120475765581527921151454475039017591262335194672961954091334128198239484261868485850790077017564190472192779123915677242925894241188000948640791240999547332328709546110883015455010576695653784782090822105678735514111600801084255519023459853318891373918144007452214519489185684425676305908292905958554305907784597658798195326362562324560972987644303065819828345467183086262000963624192109861468060002126654248855164160973356903253192260953977623513647059918755099806606041516552151310188044259192271981592855232184525061515053283317023112654021634223320547731935658399042597496421439632823212539995685292225952061270002398011621606363202743318732013343708903616611166294776521758607023303007948799794306611765678620977435020198995284775058741820117060583017361374123876111468080855916647457474522427505660843704314414960112584189774622220949382437687863201563060673839678755660873526298303883110253015683839349212126680965258187456952831026263487905954118846302180924776664097103607355895032147668220383946032707269515090796012611241101240555279379649885225843611633329511622531078338274835594450474792944682147438541887111720342775581203671641087738518936564575919777454649514596815451392602860386469775758610269911832939906344857111326720768468621054823380757673508245252762967161927436517071967303132207922299974873357234504934588067699799602917970237999154225391028318676232262325318606506742650158479608518775478856366466759810970921576251687635455662578179414231858664877539565022881525692090512332287574599636894631382840901304538768262020731799436765533702394700903154017507515091906759340140999381238781627811042425883699114930562343906410150018009901419330820659607567774188322638195906782569433250485536651207982204504601001031146104172328583477655300007327836066290861021715330181475685975450282007609505757771436453305683062665899209329393641759620999903768851924659100946967411929615148242813459598658890648765111834407715682823001178769794375356905198550118281312566472871882941484091117817848588025599380455546155396339710305138972984190414566337665501784182736463640020473957089647876734594109755413645147558605964782485798526156820038707257289188117665719351506050040960896767694084770258701688116320949837271151020553317696423570302523526196366008220586893038582987726686456976893990349500994142293023132623337747665028077981445043860541753953163392932894361694505087269646599191274703014604346984081145194260581590254678669401167214040532571048733355129290567374742222149755684716786582602369178973643265377390010008818536316547559363155504178469785347324759788900643861373650040039596572172409696227502668143595775726243165032607476636609492999130157664733115371792343695693831988470247204503838882377673299792955415675832568342459501649824675444809068358818748090534046113121301376166683649685425290353445159987974262443569146357975804914106875583266848250314184652800035985910193445235896110248217338795865506762712177347505422587863277164809311729634071345776616887024587361689352157783731002674261898573326482175394169301106964404815589096126863488666460484440004422439885280462338692938668070026567799436103117015256572199015667540422191891274877912872931765294319033361935655165412695645155209230242432169939792563933977590022725501075657767694464054820355734500961075009703632062205859974154793131243548406959143650355672007267053475598513923981299538771610101303611725257246908942429329719640942346532065348733146653129684522287934595201210153661616220811354064364628530686686407794956889925676753233655128519634515601579757718184366964906484009043168165938548653771170522784479987198485555557458759004862805977038745254228163022252526631399360943260034986142548141411457159897994430791589512297098888295161571116912595411066162888722730867988723277427514513331235225160020655126504216585440094180352146514382557065272108905927635680860466574877887594064379019588276756098812404544307873060967873787025077620535909034644173066550022405768622605108982505432661716869930035637477245364152472231741041291898846194346653049848279477198576046867630891532213981820193055996522097005292662447995341894582647374760989599105372558480278341561198281902917670552094313162585524549263285310095323050589855090378172749264118208148604416341873190863818305958631988307246497842497413405607069366066670952129213310693956300884449633537353722586109004920857765239968461084986899173947096214723489406459005934015310075782725757463848272876177468458435069739125131587957813551261947113577197766370863233398780562319243826845787577192441615601013363501010434118114361585540601006923068212816468815284451817503193054356156729101493522017778028508333236960858556239129037639289268670941087896309328897086335616570301855852837942903373957450721422768529993630661295496293787477167193215141926122852409688136153475341924965594676759576539595974876559116491253681226102373535972653883425201367358227876799684441068381072914160758543750608501057832818482026307847142668418321295029324469377440831839635295151619394131159713004329870003763825651423088843837482728730631535041649623970042513911471857117391459262254763194254473926818490721384587898685142426699186021515680236183214126032334731741492822608276894507792736516464888517973566999300132530863886707594661808281061878079643357938909782675236887225690396805088329195220682338097309551362407078010276256044487605167278890275769421605561342676169204058120703235770752079090290243787373095924372016634245988441253354899191753643963968887536883356750918883285594699767053007679285825328786973377549982773979159791526324093847715607896741347702412068521121430392194402620281598500028169305106683588480906637399238460688437573724228554924584491089431128382438862816261542145244826982721028835439925788224817514630473255778755342688579999702242964080855856125337278902885706368273738009776197571098360508531831264251462823578846590293455025131766946508323192708771396777661318060828865290468929615352414295241330617843583067509655512008652725811079415844259627850203207830231430740144192015397481775213562975039561990365608675382397775553179892361260440934593712757352601146716830877590494227580502205850378788310566891326647486119120891346923020544259504348568007110360278566367170353766091681305855719136680197903986429368807828270586975871402050881756119761780952552720304209976800158240278722536937565459374230107184143159527758488254968752180951682253471662874923140275728910741011273187054183967757281877100515625685684167438961192299291734446908079886305055606691606516094152170699841657367643388390397011045784166148830022483483435618357536566981905858030807440090679110633868311858825416387094090703466655178366393741620153224551302094900074922870496250917257823061519616519167632190450390004841799373082169957449619020658731869705850325322983302278311644891982448776317475272330284970596378894331304838786893763333582906345127528417705497109533266409810250855660456819237617840658712482922612558371398844629697406113178405389603837695924476616236678709342780749847780657371604071470574752443388715297799707648345046439417143032941429751905957973041787225450486804714754504004381837768983344244680240747117964669215900490333691653724986560584293896948248251532191198416518440936305053899390290886646721544019581539386973123284833572798094321285697021981849169452001215896260931921613657454107556338979828416233745079350910409684484445234341656939797635750028129442594084550850585733092443972001778285110109981263531965103457340268829770553509492881005419971405068503959297899044395405067168754610436214505861978208848756819966003789720062020199443632018424814988267331908941606122453318864327318327942629010152595344242036665881004772933857172477734712735897527620543908355322009646621339546583201357207552551183440561061491004101944188751358582285942445414225958740903157661513670608764889351754660709234190689943346334774488684783793097475314864020732623514086822890829998956460715433627378458101481537474944014731207065566886476891335935710040994200974903109003234496049921563053285991332700523485891513126425345265999475486762345689576592328142640829145110256461922759812095015372874890079604898972472057924369089524881457739887520592934558464480472607190708751136205853765441237338567484683707412557414890640873321768868366345125855824933042375562066060050611103989373980779256361156491292072982192331389676864024285731836834764742542074023158630715076484743318254792634254903829734364953701744627739375378967203440396036125460316382928501197236625742666082064414573508977803313360597367373466463774753503629227240365158185676655695337183802560739349200315780575468704141391439981130959371699496560939795233284546234104138254057327649449810917325585573374814286077765571326387681445490917505312078038066307701887038456060389115853225673597815270401955845794020509156576375405572463081066340579984454521369375020786518065856155614601218866035239095703942808654266253831619472168621778993882271598729183708011794802087184129196053190397899340550157438406941307659646249951046705010956358917646641259153143305998748888255028428604721023645266216390480947712121489361062388574210120646012101711790001779846528292858129656243713857320601821521662617307664778283171801249678001642961158235264361635803139983696298133947182564185307426549275554616369895805944754637146795060724534418129993935422086729408066843417509743585099281246450090944873577793547418917733512382061580467772565534186040212800485665803325162865113997076798431734753042791278213376843285142214063829494745807638901376431323833620962053598890228590843629232041427439284568507930517370832862091182473895952744807573012499636877712709742419127954363958146636966137489110778780910880507808399128712161134159290238260185718025981816663552351614694574125763933303269399811669959870576249926825051624904936705902708753828518976300301570222292558420510874361829073532163970638117229002256449743971763413333182229979528761864998232317824538334738565493427021555868845598097730706123441076357361704464999132075267186562032414934447168912592157077221289239503584720395073361837871065783137356052692084327621065295576214402494610485399332825423708017838149164891691282272460674859921482346582076406388178874351130436369001642914526007203407184081737350203460178724454000424901235475891584121690135121682271500014354443643733938660884541398890621463254554986923549721182386819707113497663429260835888997829179002392519215920791784692751528848646316660003206473911866281433877787315353886597765078009076272551204621710776977110322498153587967724435406952980391589060697604279644046991021777144153173485253999000930096417508359777131839283154816353634949548616357132201338526884740978424790207579039992398248412087267065170373084460746501430376859259392490331860009955858817120838304163191295365809524599634320812638792348678729414255968807662219983602849981400937654966923109184971655473642637751502787326414341806197613282908032474019384777683326040658640033520575681304218063864801561548577905633833376261751831467860117917694285174742090747233782216175503183979432152797095382546801651478792899140899884601913619210771041323959513395067851380444414514204107057909245767529653083550436540686634028298590556549986437382979525913282685973682980460683151249647859174112294633127066677825031451736714088035883916537412627912613860721820204434947156085925498228906107158603566251544458608174694622520182813765035412878873336250726285167800994309466612836513378938561307204815951439074119564364412886097914022065133252977509971502847484277972850446624039404216567755693669737964381447503915194329642699069241816042869907746190611498713510976825154968315224650554510292921435785214769188210970100976192924674599745383181938943723585927305386783769500402554151616623267306265657532268136234560578088422841389269504196414132270072707030913385657252560554492909967768478147136798673918813439525866347466141528629385633433142416070010219144255871004857885087194928170287691470820682485194080857100629085668583338295990074719335105722589807702722645872834542811660116176360795125502844892425742888291749569286643980393853571999488551112711780912152470868280421283074824550894492276676625605956711746122842629050936489400622211016317918138323519909619955199377108430037510455878954890290044887057672280865008232615804089993520455819947497812984169845924758462136144874896409595205285046597753283930981034178715679037645198725011182498592673892659467852920024958744655564336523916314646998990117367564348645483659375918986812815097836275220035407993633167897677833610210351236143915943982040595461314743100977997808026355597132689342741007773082588894530250240800576324008779174657557149582988905396682489466812752416850965268202991649331161682149180667726815265975288802890290313880192700218602931899359285428382142556370849455165744568571702449948570220089207602714456164117766083635145897230083119459879736358429161372103769265176597097797895208191732895764117859826491921092464289736485724507963660065366153204980486162892703492652049717133030507956922833734480261696183790028913264774829876639061780102809949837456290658759272988115253016763336228855347527861553261854324768348483377972505848490154258596263179950600870697099692551568827336644263834117490306629866532158678024208050749811227521335490876272389094591292127297094911129835004704731471984278659057043591075767604514379644040045188681972165197013823729801599022603426756525320033835061160005020480344516112445990785479412583613944724033458412925463474587761618923578850691853074950301885752092930572282189066478389297331794679048379002292004582994352833843198593673814763092044269950419422029247059520422318480987604697722900591260224895232562095223758225289129407931554272802790884561667393946237365896859215719161215441482819208971756665515999489766799317449200180971492933901732209118631430277558443524529526972756379932941032718766270013479097936453815754588879570642330335053998993452019140378282747686516345510035116595144635314066724229726796527096041824588463763270769274093955669127264136815810703274044785355785042189919222107223024934689377638352157030040363345216231855604192645264404301777673008167643023025797522489477320494305044318409559402583044631457416413222705005904917362073969512893893053686943930839877778518386680703865338184351102631333057942226747844514933626119661985391891352358165966212217585708636699919102282936242379469520024285562152583018236450417931627534642368167645351566984010844592146382332594878491035572870970256835675617236360382681124394309041889524551101164292147531414550281846006835081716486155467369023788808455785062034230484044932574371692649850252103631884894660343781871327274477381923236962434298066629095855166575818692301179938191765994010440546638058670478163468513917673176822764218610006741140594355940575517723768510572692850580917679810299025817531622103209968819736669794546573806511366071199870642931343335206679587095592856543220835816093972394988915910028925950749293894189899818815133411230924357476009981200071959715957454749407558229031908034162576606752555038842599314950267545148699772199681244589614220494156586609530122377992200751508400188886294423799341845537433651674962268186676985694265451562552854164814815624380688632839223440239922802341411205034045635251932079936599347865990368599871917945779504164551254505289476211941311745759908230036643400505264009660754504179099569147175213214093789095538663994924204576427240403875564595274259956628082152139650784535225463062765665198853434062526902735577449689798103910259499677556291461495806885454739960978548760429137871620720179144752882750447167250114523867656829617017152368475808765495454594798475973356937307384280696328725529449367143818601567804229023513420315312093407098169258993418176372490086521569616880711912178783192088022162793593594844931117640840786083429881469845616327213060018261572090562903274519037743448203381389225738677763316452966429714189401517078595247444568002082701774712461277985707630687804950177772453839301897379780884572510675975541616540374486853624989077506860748323587524883460232040018419942200166471785451883635466105719178551935166373479068304914567035180360525291578722977509203733567682976129777241966213882757148338110141528459149155378239342138345318542627048715646114884036728592454970956324032031655260737312105787311601495851977532435144004031498343341630345440766662089348157014864569310925336387061397899676401777294635484610398194522952918569672114105688401155056320464990442530850247932782426728138058828899915552713036684104297077965316189550104198761273073163169060501780856854880746012509135857500636736183275044622128018324726135590297307206331992939261341895122566253860184528711480117504765077681972600117492911878976649145218082155878762567700090065211493770331310121694444915296192207821959093865195321917475993427875573942143893803074535614554341902036186548717859114377212712469214079084291562598960857731757183860595062628296282743975931548081293660400438232426585150723830664799679779917551909708605513636576854449194816347596308700101829996242237870142121106801344165789639296109819597002831561061416828574954850495037767784755806407084689199425118036737655628585455400569144991764952328154757000686843294301150970226881762191384786445600320606318333189870793811194649972012371050854981305676200491872089736211629218290001509020251993755798300407087263373170126791384091505393123291458082086074109953302791082529410087082679790757821588049333701210428877296728385117585559838497829530880224644640685437632449735034178753695106245324971446760074449915670074640715999750402487307317658920039345136432799984733962840197408591651231450542665715596351397938272607519715324566702728543365843185209396928991016414336655309473008956364732041061984520930745515577405125077792792543891948208457067914508753772700252819430435706447254937882879749846938964288858105287512928849292896153834767482331795774829431817950699983545922471276284822558040356448103581571637443994485575002413301280421129039880507894916159481871980387672846701939415516226686951490648015104497711911067514910792475534551695714410455745256583677722976969793365104972903295222456587942206851266271156978013288991768951233286710289620573580775020955802214137458631301846136092575811252261003137957023101383899209961204757402835973481677338558778803756994370646797175750364480985054093299881522157989605186750620628795953175801658123235792025801315420913952895463317689808951759560264291166011546042005089352228627070655870282292535380613815997062178494980961251066487603675344919468283454152969517786247912228394669244853765871265557734372025844738614762548966214023897290391039488784177907085163140159032495784842009716904988686681504400937223568324472353254586689636878914299010844600251816582708464906110163439489636497987980997459671311316620856731742345664458039420889987751594802277455798533972933470817450337980534000143590360866690508151506239063779661921749756327301249200519107211204461296433369350277183895349691211658463963644430186361549506200748835475774268707319458665594738149552640668457909422365676189530946740725900678088453601805285005620699367294023597905028705443419438686477804914959210101020381792418408174872017072939754716243016549514307254892076924484950332810631052328409794795511868075317835032240602504221993234744956696910688244349198212139423699779610823297528437801259538915545964532198431347973722357648009767867118201691383692357512057000384471047865630752791010514279000744752200816198620455375777841014023297914641985885778168121265978329256474253544355359296822625083172767358101190703817010110713750473803921706401029988882149686131038214495923116002259051204988361817229864636284145739997049733239792370858168139271027742227741294730958793525939832421808667738548974623971022305439659865478425277478793789272059210907480425517510383139978081144913823518111310132116005114038602714574485485538058840052384556337877127010350842316032247828974613852494932437682564013454605482524647488293957930705267602727228725895527090654543643176482360013973617908083272393020599479747174376205405829085166694031762634252185529591309097565292188537569898567223216332206585703805330772158288376747394707577985592976518119394545240898369454103374422512554708980075324789352316439485066627735573844514252065236191577344894579817701244305817702771608508219667251251169081442501174905327499432356297043066497983525694976703045312607852647257971085466548621035239319331788346299888942265494652121966956773571452049247144886767330640100801596715891751565490907367946041785688605035471467730739741290080787303609831220776349431666520169118189352898447896583662693640187696368316165068877820823912319426938195625989860566544859610842663544459856590917926700381954024132876857167282236837556735153765120520836845162587510670504037011027392940703592458928925146631922861999546177946322684944467681409539573355040422454361540975752761716113931888028076472640944649553558489054187634592722435591934106732411983638344716192917691332875150706994788453986207421264572670069727229972662059400575115904524493989827444407293983710275579513038570987291855448727463377621531150675526552878502154650147212405697733458525739273520163086178618207073412299421063019155632256679617787167631832335319515086599450333968473065848269850362759176580759669033583534664420281436234019933876766158115976075036153638142430599558206443328739276570035163197981270742466919182348225895083397556200632518783774880761166864629373185160166194565291848999515226068860445123676292590978145599335129857218707437882447595669412755285608980713818225060181435625989023433802983051672607638680070608964912812642743661829393018347692507023443529394138785940694693829486029511554618949496196595055237279106801931838362805494379529978263483885199167250822302589636156737084248953898904463619538979821918865892457902344860734795050044044963125458972374280933559302280385919161100855646778288224299159433242955390707615285226337710988325127573652031728334248996664260003202977995556369534195599578125555457849444796962672451122283622493940113147214195372875624797979796606103174569754136374968916838673709180567629683709239010974940244041428989227402141183802509042855629468632566485682464340296801396454249277993022687711073062411562135300393471100563031433998692113789769676550723350530769162766678613955493131779955854014451087818107889655113475766185169074690661896042654051767759584738360427093844696913823978998298058114857040713483713331611309926778845345237104876464484595505646588002277645526561423231253322049182930632000450091497194254506142748392906538337989895933699214618854664261789262485212507139560076672860569064232170041182978307815397605327773910851206938869259546807815807697315873567935866759991743027170035660118914786752182937347078911168614801201311960773903726548697962622953660082963944435670348257137091946599937563948837011609813130877971678283209748673658102422090346067656341478803268963591326426276100795432567716896623822792876189815311603635664553616631995560932482472866823710360939993295942982078891622441155872271795633986656302713529817362900250743627937262342783527884181193799059823557132803868626609961354395018024332341633535558520015167053363032586216735125224069653117796686117318420749967998182039228482081878508188813063266930624263389313835374938379506571421034640102504626948404832033828425074561109568348508176329588844114233413569561132775078753632431067267300583336581796033274896786145854191267850080331511109866480323525760686583645466510167156249735809238084512455591793209707414986642024487664575326657012014239166724406287071307708922129609093663235216717087254984433024473033723369902010390882042159156752081142023003338176862983247896216340044169526601655584494714279166872876166801165167483018821609860960278727695887270402520905858654177934882071646630251485782437800215235945005408355472617420610534743125081746396608493561850534138056535583115616455668257974629534566159434714870502808531306291428908178352828810243530089665520172823281197273147599136710755436569617153647738062682318312964561915411784517459971234657562146838682120188993844004613516329441023099010317243039410406594508863274115947859995640390023733811495516555200042673825207524700713154654569574384329247828715344830953726338634556755113141537906174108471273364610338160675181385286232716626268179519814465721986134293649454043423962879945493513133163872798432116798192952755478943411792130727440901126707327506655671115426012019499659547199605708924106413175062904703535940620798684694097872727223524756785981101448136270721295207174164889835518685789111707405283633496589061678773453789114671120357144894821851749441079876450313956450246842052352602327855979688139099219776624428567299701178138246873717839718988861290667880918845409957798483702022477803491656501881236922660214101983194471236871100881475877758747838445673944973662089306984232835074255632425081227106567254029043070391468222943780468557333821976380512100189877833053444769602288675459274648999921050122941400523342036132569856804151497481201218397138392516782054962501919464505622145100461889751340061553473893782039225554170680030893916164811549767237015529726044271576633002530111921193525471989233531892495988061182270129059713686837151252156442081820441203620664003721650873005897225074252419045427979801355682815407014123242398622556556916254177027269516197127019047240618376187616163925203686167891375063369594735797844396191100338029573309618520833999393946175109716643931219926316172017519413905559154119140959686352925354147202301559834293318705542264809360773272535810558620602283525220626411513033471784562005603645148749517100660696455749429685555673481320082502417703896417966813829306532829641105775282459264668973985571010445710655560616800086723683218262153930334250825600806859624150418989614199573935198517463382143319882971695906224931924188678807250152649336763310407190477447400204320357821445405064139158620477514677790654954936595369209145864593427282544965423720850012206485092646456080845072618944437230735721554143002044376182350350481489835309448757889317934555926254183536667858491124840526125926984924910888550452931698034123301836525508018213184027452543218831460037737217430728163318844898009210437756211168245714918860460908630994938440123146780435183631596972501675690517500044704714166807190510927902296351084452466427781777472968106179502792641054312443076292221787911846208428733209679112520315886758264019965003341733525974748745851269151488337465537560178966825945589786561563982613223900095784633485605418172301308822976287100829435956116135796229785419984229992894591774462362168458788341859015630406297297917811955037017825010652637407634133223064502350245663308190790060523609183917286636014589871358012816897316982666093179913823541618872607447694156097954961853818439130661922772682706720750612535450474701275980262126881613841430651275991936140339346390209250144157530737032675521772940383976010873316974644343311721022847076776601925358304201919399872075579904039581054312003628533621516247254763060554186703740160765927639458281736099657699673994523489478913064679982887457593057612381075854414831969033554381204755776673266595776770317173499135793017291719463753062080711571256285414819506060614394129530031482539957535656439194049377037570398849051000977388817891705024182554250146732174917560610743021480348224707385261779792258179132641181373864196816563468517639783095012311723093046766378721212536366849153104851110374374593611184774999207041368193013793951848125998104797492164021514979658412824507179630138792574239997136692197399856147486939161444531346021818314455279432886453096555354220909028262776411850628561999817004075197714026297412568894382965605144373860743533284523970137720024264872348176343601297554643467402793344757050650776470361164525120176274804979868620771580114450309900638499760464160109208996040814247069804251842318314863020972689326185607757169632575598924817963640085238516841200324001405259242829241864480779827075201392229924545140946354366070948831320496493643199953638395693123666503768401249450510310782052288821708787143682521614148362368421870564078591259977413777656044583853538889836623956231333236146691653488702698451686730094020261987829374573949595075668812118010480797376065101991740512164551587009163645062914905766999198425200178458423509190029412062623971659828385990026751452215483841994480311758212117787831116523458240914366131230868291540000898417955969037155787016548903005667718462173494191315073501856833144653173652080647906306462631785193569272732495666875807821585042900781409149828855854755335797021156565474532097568872910265222724209283487308149163965421568509466256576595648725850198459593925793784425127533210104199883828263753893406942904339130073025474224233892249588946593970432621569386015217586249586171705787132587975656931057972419651162179258796765836208532873434899070255061275699159411583053487766155193328953921395497256613857959599235322117692489415136973479287417994937893221589187242283798512059154923771998050857276130462845666856447069942160931159266555831388215362707119056930917592223530675728333986082080019084192111483585556611187624005188104346966265678364825810467737500069452801748740118047559814793295159679601966645725062522310912277444104718795222366417137257183141278439391918824873914016828063629375946918293542430028454795759228780894799003741865792772903562011420006645011178560714525586359969985055097385169549770032448050880012698602893335158584971158719253425108348248005212730103074261685092950432095047134176028548179811616659516219926758590675441323755598702481077776293351251916033170482926488373387662440554748861716570164421539229432318227147008248147733416665813761489650175210148098147401817958044871681777982822286572442130356198283868379684407602141277736477432546499413546925548244753492572876046399052659755122497499169704408355736466041463094827720465776803933863734857474066690188631401004419927066119794604824992721490549781218088465603629143459312003326797362265343381735894075376841740570153929541344809927836703686880229559843949343170133321625191009285418704394936807435880101378511733989109958002911390417227050680427163686015506186418971020005684278384060655252302664886886636485144095846532261735457903000756319521261275881461392032144009409564393664404237561369148084315611413655741465990294315621935832748867607969807289664216070496426084810549173261367488188191673305903474056338056774728388459988169145044435097356796940896865736122735219277387604097277227042296000532499772174743074110680717201250983385374665922518252464945711225613152615002445693950356217514115673562926310136526402880698690267874836833624149113538136722986314814408642875549940452496616941982169886933161621625955915847451922320244345220161008563436608562156120604246062797582980707428735878902954136113575539998075824721800135633120120311885132204949043135296127249843690466739327511222170232244659645186023339005952665074560071755958247681986069087666226045327228569306141311842603849380479410761692474134460944480026061057321029360413054326024350999684810620331596586445765585874710832279371293820377386180332969555905996424216663650499321852094654072492211852987581541743883296281886703873137888049814666228854662248255715137344263096062878902106244028778823774822056109189091539029493766133967453247794387606664338283016132782804929274772648872631981953771504119150668202810004696490887604928809091011568244101485057714947419534028738862085510022802865447965695202889569483086342721024199255965857319134282102212288336764942030642044824155192959083707121097109905829081345817513633099476242974558378272562724102449916453899048810647773860198528871753580666997450617589687469620491203753653576649626176760962537573143927444076207300408911756742567670830640384268625539723846693803871054453357390833783364197574145220382864348782488452603493780492959680351272409668625114892134389649787485180846621489668640761654232382211408638594517204147635612841736354655952591916463853817243235960693207449796871279979196234103963998229361227155028040104509539364490456552847245085429230734736579420057166991663417284703523639163353970042271482999962091770854424611838400973193349854450802573080601490058251107429931368066816485241916345876540679177353238714775404008305926748046866060703281068650651916031186878643832045601029409246945965599134822568767745380354338495214745719042362575660290922794041169170517245850102747173174053742579783518679324523979692499448218475241195489014217092370970292806409045715036535002206795556556486220148546376490212388318606226922034798670693513852569709685961766306484618765967650037106053637038778682703589374365118334871537171710940095653714614194338852093044119866008003981857010619262999996531717036721975141953518053169256876917643455769617961102034194646914941266260295430291688919606095139647884225858293134991031164698240494457231106733811273214611828935562328552600569094430663300536453923904584742411737317641101318414915890362064784336631045163750033177116998738085759124041920659843714381061398989187431441815055624500601985013751804587587240835971936162455185369291810996837494633776408916606410487335620293212384192691579000399204638674870085419117225474697067363376662076475103813066688464819869787286805076952250718593965084739550419272047066088983721508306303704216243712076026643739125648590531129677824117091671967740086527737861264847773150045482533328671146857332395481124285574050872407305420062758807178544603489229786438233962045048490029291901280880619822582080887478756306248100436442691936605970597778048899283154634618782794274458152604029962419858007827914713589624876870362325660409258941414038074533981674569580129015081698439286192650133821751859573706926440115583327357371278951809039575188151005285480380667584427992187233446682480041903314536311572232628942927163623063439019664801694660623704619620742704653760701497123162379626355554179244774424819043601316910834591918814606289468491297810963138984906870578676173618127377482430697014456812637386456651433759993965129643439024106715139655605889706574499616025104627476165495643387776757238465690371281760796333923778959743714474493222001213055558198977994071962805048796551008692776152125030632265284156823423127746533992479124944424969023359887246467496922610007700804679372464441880455641243406586023564709571980108703783157181235463393421958033805022069554889087354565461334809474298756885742600843781803977411368309954943085934353573737222379597021006760423413936325874533223435810362426658112906667847955010480044653628816246220949477234386492152915956870899345997755000704964879579998020001876897630520732319257997693944810987941419124596878119113804594158959346061061226472217050522459532107973403386322040709371677257031557749926276717726232022770178470820521787822863000642575692567903145699475916657263095092063886992683742868814389844775003174196385903863407980492685326924075954435987049601331664101648366892320355953789298628053437569075440323644711342551441256100006891265328594652551727941599403764976297030725321890424289061596236185958907594699627063113969427936682969292907954372823428683504300566475037558747425615408068097399812267116039969926883790847683641702971606724220022152712738832018297251588306200351462421969078767832101397241902368640255142380462575800404907841306203485428158392706756148144780322285419849001065332156123664057850570608951856003034789096844144608511732576619243695111035454128171834507056333572292416789195242955945537800143262477615576803951615647444143944623260848838553352335421634476288030327935635882881590862785150068651676312193732722581918808307222110930498965634344294364170968817016378886780243404484441784512017706304440582562585390098411585180253449612744082060743220672277950766947814732078658833941745062912034406622654698774660398281377566389070886465429063810501933347887574928661985617946673178416359297634457152510132943461980091692713017662988989212309603537495187551870554848015234092668506238294369079975450759902540672488635286625351414596983347875006548908412405913126886122443557845470360668674183057251899476115995857764932438199837911442130086203480981440900061092906161765553329681141769003675277088435942563425156549147769775404870867304162260983937526514052529631641919009969478338669298902023105337735388564224426311341511213002173214615536516261853689307780920433730723108438236407389539712763155451611769206047728566969126733353981624678133579080350269969532914763685012167308327145953431044866734662421680434708013095106924143874919691856188987656690601824506972645821458213807606828519635437470694466805465001027446835823215761050226414852100316728364471589842294234847924721910846310916129836611786667212194437094987256193169378693963928415181590615963765904772775392796816146837434058262955539966995098271064666482467645932370110729665621692340388145147513336623374024047256668139620188122014443400959749265265951699798594170326255548758176830298041130555450964197799868904726360060690426074878548824666788112276036454920648348097503867400270540858388573284260550928808005757118344755953214816087529109588202156954866181358951895831644400085633675372846253918413089001294205870004993572329882897530104457278141230148014212142386816183622150397015880636274110761125030230102300876599085641710718300480121020578913143440062969146634805707173810279986900051211968067831747692352725979356290524955454195290437049243756431506136312222232094254434210380456795717154472506569584659834182300742934926152094951714026703248586465267717877319435044045435618412324125420924215954944127549459379538884354031815259305308520868976179972028053016851494162944805607372416135915506516395192097192258452807738152973923877337670327662359509294939398562592607541658834120419383181408554924763136248275419731305455952970826597829433289612983326737965897936201655400274301205455568127422569037060942626398249678649760278581959723193327670827527481346502086013608339287874037877778984690311884075619986926162257572342568494216234563893631935844158433679683366311972152229745515517535837074666240248992453576124302025769637702440592123928331715701789904957476953405912231471425872725124740398330666405332536169106148430198080491706204779368724361181761401081988627946250601992011743268583140984827016566761138243832662445779757844985029240726913720491732043918944057085192332662622974765379616581324032210827104365113858892091416448539956329262952590849041821257381510430474725868723111589303120627141706580368916761105267020643171291453843447823972811356397922063944153915970676629895131147268820022995567034597795823190925317399578828165296994294124396593038703162809748517651493854160947195341093582471891207591444417215385986413671114893380655435405665138013386109791715571287719730649630913998071840163485383206067008587974707734958592218999433902675060955926346897089999552359086152734814370728004797667506790556886786200085104919094745269875950744003607435591007392738121578027518801098115046628738701104111037167958887273852425095805104052705771104957760135772307571013742078737908767301914026621620384312807304444508669866911171121693392225405850272697484142459053325248838125975521014749640428836864358061289246354182327676291379481615229301721730393913305375576867863852933870048240343903776860577078503482055468856919868928187343599059964855190029966531525412208588292301477917032089878934363089643009101421424140235177262273457609870441348257283403382640005974196311990212333430205973183154629729729617857126990471543835376516693928357587405407941515881423905622002284921935637348241545985749683733010424864367925549867233499634811630707617737856491845918076071269854207695042384786517227870691445409242511530729864692639528193527355596408523646340941063701058621911544355316267914953232881909640782310912741046979734770625097889248127222309396096337781049505307316218714046188955625408888814243927246705740837572854237470346327997469228779315557464562450873158570782486349335136700754309375644102248648408878809897373628412464543100751108475994090180723368962071278106022385702892292820044896564929926716018543559793570439758108630654694751598883332673800644820067601338143217655351770926400562891224626184326248267303008424783419673546612954634160663115860086227931247930551996970508551163000791845187960743326576371634663424488405124549202430541622876489751690790610796269007937928036407787572435368668460697673244844008398591528532759739733651797436651388917288412540898412852286662136808082441418076251371298497923926539933740536149626522831927337192467289085314192617510496959765092944281257831568784099571427954121953591850437251914059327505312660020142385855265172899978231870171780634939431091348107054399546319453225479553054700041863618605283774289860438126016903705167441767679333669816499157806156305703953094580613588289226579240937163806503628581280462804808966548592527342884291219820797630167986813191362101883010225308024070378597363142013710998260553890218757420327657211818155579408002143728872602620732016603840277337939286286056000667081388101907878283546363993489442737692632848723839288982867626045632100856188017335900168597285844780961179316258165899824531625750429190241632837360977508208664950765850420092942630755570509483625185756407605329882133961456020046821625769766729229401975212225479537300558413486857065517923081258385881776435039622240652492406711915443237554036703226180478695064277932797680797102072480074466504953887789719025645536210454984078527996598290785296652835954820920831522842981238132043122083806700640889034245623853226914940153393088966981181061217333368979572077252696918828927399254376973567083717104308058729413080291735967706792907625441849447538372048904264505218797495325601769898238500890068034356995318745556660682905631628604652467819362489098678998605543646260216509680761708904587385510693257094754300414138009686767357467733856981355283542112205604569871699040360849994399972100892709419777447697640624663309183512468916617554063238524321750110428868194028907820519043318350573843445564832051847412578143780855647989673223751864804161631834501027372177003044536334025055989133221202350995701216500805882025217548973344738577690972542229429968784309096965185498097037915744988796441314791519281417773507903635397543312034851804007401994275013707870250191979500821428269649587410431518793422917520064555749244751728975307690496349722816210558460975779317536623908129323821807777266608906958884783401372998095929204393506957888398272945560213272409376115026898951424926886529334002926815701362621648954918061163539288831037472732350822945892830531788896963187309357592828098489975642006197810767496634694321296696927297813781128940363519941428422871973448947048183757137567516695695237465116930641225550595790756817351244479487761856325585300327007166550139552896286592224941531664068766359434306106192422834923780869411422727148611314842009859860902403236286477643447787963857846247957767480849902904917832119036683267292724321154397293964433413863493521218249590174069388731089407127701054413960335816729946400895296749573252210441672169208991292372604176857213272960128439406804765820683996177207520712507910876224922306385352018154126359666056580903616710332019900087700097682733014514732946862710590064725894032214451455764423697593020628063744377683930759553756176886106948962207017614944092507637212693366324020897500247288531459777853055006763613045751361037025189884866343407964616486840706879204290500445653773518996467531855009281704960151584122283901928917882645644830544562497411031851192022234388631780578440735371552459807793600757192854527882451161427390097513689631803869917364480167165614769456026336274825339530718196334605008085492682122880883696133971021519350834942808875689968525471754245648233329778140900215603393914898879538932328042770044684324957156776280322866607373704175337216545733812357487269675734895820083230182912781561902382194635013782676074492935121224799613901069991673306349362628478702666048051657170028863928007492646010124677969188314887919399479140723989813219908296625794679064517504927777515356309014601709657393277380677625296862436736056552146705450443073378323432966672254292496454244334923510443318630938994740964973113219789814957309200002592470972935484199232036358100576710159338645135293246805957813041512745215489653904463860489335544263307097719195376080865336307524501512740068836592944509488858122144446815800140852299655143125204902247962585694584464330049443127881135022379582737564952529844257328767495694550400925134155621239949057137723056937679934111204518891537456188509913073948063034428384982615869579732496488566104102836337760390381144690867342119523169701658609582656838649992890327364101278787142451097999292229768836652403400212097350730231362833564284128749755178658009748823620913225083845452836215822773346761889857022719654511445985930560501682050314857629749906561197840489191152232937696957362209936031986186568203066757104006423315917445324530696124077464422192774206958133410063670367714404423267875927699598054475393215357885456682970534590126797785730636746040660268231728326454975275471256771288117857345682353737820245937408036558027351281917777337852422946520454514621915166591863666661187237573053408299860307729008605166848904830781138289275040611824500926730549560905816118078462543249965560988701010135742226116013271818660687956453566831755903932482726732218215048362026230004582616248186122324174391376133432218469161091009159734189247815111159879434486720005573524812120317009591164400917119636589951581384940909315045675560889648992799453473395960044241467687855935905768151486013383701886711681568336220242958820999752142607505694369714105818502893680568087436908065598464943740319775430222955744125893147365086582941973612848224831262348692219747678138430917488553802657475260956644374458399677377644422443515592127088863602292463693468148886649982238139146878449430902385702512558300508974970117557984146787029698157382087668872024266279788331289166000717219082129942033080964046239154689014468196202585488650692592887925272070832776747235625304231056076349789243750018515764577666581351643067116618118651457768261235495341131263131947486794419353751123196713552600068082148600590199909264606024592073102410518933530706671821314442684629717259087731581538384907816350511485637623359860101475070856843490729937886073952747010369116415272770084007988167129086405603621427230598733726060911302710185981911495777652563681236157334863010794939362359163601929444460813544398841785339693411347237637620509788811263608740851956378195775348924999155953194051689724768076078514380015711593760685615027636777297493895082980522803382627789460518582512513020798687403492782064821484454232020907201464205781178367021322551693458434130387565774632880622964927531311867736760301314903116006358810832649864017458975439153896359633010272856756066582902032657046918093682491117726912207184590434147575852573519716384939050232593169353234726492226604031654203840313563253033209411226506167037831670664998093447967923557797846527819479474814094397122532378375730357115516347640197526316165682160915070771503518688199665497262216495548095734067250074838336081386966111002185110908777860873202085664550637887706490258273245369120393485159263990125633717918942321235868480424474928431161080739271153930032046848549383571762707821159206904251388931701407180396460490038558106444890925024229302497629440263442712555037658151475162983848563151667872166113636403356713077025689595114003156554135201832538446734781737362238701609700469228513778861116564079003300770092740126722968047639884733296747202596899384162881194719068670978976510443707494571005810619860681468964297391458360885941935423031981300199117446713267092878045581962550827414046599045900556821641849178561413735532620778799088474436611975482160641892064348889389912328329091297201009045039302318091669108106098469765848420054835869575651349286711823575738629308094460379896099623534251668112264771968059393310844766099300850465870757505154217958914105761185932446389598999724749855938795084358327823717998032485634007086374030465710457782600204592216950267640286519472062132317871832608301010143793874043773965101965513128653695804312839337208900124612437298219173431161901612847276547226347879589111343730416899197178419107983303286174625204420908508366149307399788903091736739810043082886825071831016999876457871988671684129801852945262416881706215976295695713703025984310541362467767991115038106860440315388332252104562593293431930168787389714104450113205453285702402771650403473528958283156825799703221124684782979168954039441652070560241729052378283185982865432390161105189581060909660080793674848096401262596573928292402621727922544596547065293951444958358094343828938642752650683623592822361717609426406368392792348424903911661051222837315489050707519516859706913912668440283162703967660179762723047424147136266389720225688343300027931604765012133880440106327958571330634670368329073817975602789249287123802224995660381894087545390189899839906497106067203327444180663880915355034723592792496713198808671779785500047006381810209100004065333761782264874716957024874629111462192542131975412183725890742079737329901924061729464317206685150941036775546459869703403858785414005057221903905127517125269316113805271963598185906340890934547781835438137518443190392019654239064679639789157964093560083311830723651497444914529348672102837570850780336073057911398308898228020428894960839169007704365339914312502677369794700418852434130390657956264638009603172332819876634689859433465192165500701421141095578650797180771230167223087590704149728244615321115631824704271478649900349859931265619635528457295707414943397313545784775777096819353361407355689634859295388167631487138769660002143590105079737256850137512494160945325527013976793352895790507549279742295968021568575348560514650270184097962724176560233669483990631395734638231121429632920548963170400274620685831464144847203236787403563136648140319886527957153237607380429588195655486175146218549007963329565088426037754379016503349123590577134311909626904722447686889464226646945635896412438373434249538164961798102197657636620398318828019249395036939032778852917915342345209188589409905317679620846803917600570082958245490488581203215400607278642965513900802398457049764950607668928517967440674742239260846701970039927648644361794116176346449329982297817938351760706246052487047208653460246637343329725859446896016725534015321941741432147225949106250376054333573847066650878491994263283612033306856091740290767087374373486935350076383982034745987704404743411460739560052954041762673547994499967491829217991719856576170092261349472889653426316252467356586069679386566200797714000076770567550671146322038515839099323038094151772485827944835904699337683790483588364781177683242289263303935618253898928700659612566100579033166388416245489843217952790121148001025976392475846833250009419625077802795543246446211449711370761155722029756977175956431050710368380653105585729324233883780148214749708597485082020200815859609813313697344435146168129291287995001437985731772871264732499577208645641502123125392665639770113428055628867923032204397501575826383056095635887101726075206926567056260030103950686459761142274252215482025536923812436243118787070945730807028036542334988453029639185616445728249780955640185095456115209897652135712214295886855592079608542258971776628794168240844038034389644809237388234982053972663021026421612285122570721982115974622434092570966151796408683518094993042605307028780589537081177054924923499804694968570292947291618570561209766152029352787715386365957036099670280158015395260286563841635921921865659704869306644501777096592934775216440736825546915976129542953879368810566896793011034481663779966595752224334166483613583329867781066032645035638520779501036437381931170011275912644890570712434209981620014165439224640537810919443825818528900045391281110679740877717693385064026265228712311201516178057708203941111348767044319939121649232337848913641044315416957926936620472569884500581262633145865761042145976675005787582241618098519812563935073246835145822374579013111161711574325313157607042179843724762035727472003769669504343301290773522343609632426783911568560640531502430290628239524786795305094550163884115275719134244779256632185789960389999156350189884074555911803682748617624008491419374603548105263901456512509396353531732088919409642307647948209486091786132373925706452016501792706530595807446181405292371679591000914301442218030910352358193060929829939692799497241886636133447130153438526390391330502507518030553928859087394907942214808986392306827951436463847414924878559546818548868218539268299204093778220008923550929773604506419524947983593746781848447931844359250528160044689970967503266132417229709510018681541049699273779644921861198984695504040705488731862592516577357115468993137081528685358111964472226799110709845691407362431456059676574027726801427109822423841104289871722071343805634887114076073199615998831460785745641070254549435697614358411300273680659791673359552744765402574192008909159909863511325680939984144760443836909112333291836853968271222218735088075362589678659390564255136773171979333240728485634477816393287820555390698725669846375043238709260492807042872129959103064176033775580219082834275400939081289701413356430750042806272335266275043492821857772969522547311347599041620871276421188503493986924664012723241576100065018174561064251218739084689243888234141135840027942885469338500692548686411014637046803927862158065082230544023683991787845220686466618438386518017000030218119592097395322899022543585435514296685303357231974172280071297558849932348157836718181925949246916986088643393738675590768402933747456694262299668777584131006871343815147962167873634446479281972771390208297627846306219610376185101098990388756438951007186739836677255527826879939262440796960911283712804045783407144109190410174774361021505770812489769542147359211242076988381950664197588303830698419801388879069199115390268135995704428326960165222989934869081155677538266305064682766307819617578833721524702730631359108886183811021500972350324853442406615287175300144177868932192324546839458926389104289812523395895397893152335081553189396119544725414379288717208933646126245261985799709402920933265863019259257245132270994266908977481816619976819472724191206993033989097187679347149557176638474660915467359885252105633907157799350588427663178947359790711139370954238330634072101450963871975881926430830432982472315812186074620411597099408825107132415339374586205507082812090735934166464456607661097494114982095764271469841448782071436421572833333131254040335263878168414930656252669368785328202234285056692150590187897712714707503503615210402047214748450940591358455708228872233110919969519644327532639698104398123033971897392720144267724303376781436158738508497122141943361945658662370936824281019613602566639938322207409442495205571267754258016234103899864948011657502681310438745177321825217722815013226998203745386296460004818018002364473012095030752866391655156600169840885514221360890620848693244156692751685481244673136168098383577486550064157556976835312536558130176902833190822233182933241797658248572723278622549819354386657831046016867205964963391687927243577267908156453195770503906574920056170155097456459228285414965814835733290132002594348730838595006199668823285614185081371764884317578789482886148470950283623228728737216956975890419806577353435588501957336825805712806961409451998552875705072055683437724493557179628793161690405152181166156082162967808338110693466187557100186290566133722758628995122055040632296741897600789815550367808452571346215881188232416369998783196430327534746579600537590173432280858627759655100068855979796757522137710394691910877076295044507709080704012088209265562280902105697836728962961798484349488798725632209417684600500470016958406736274202593803085498665991994017122769037768302473308410681083615061628510960500847004644899907003484290587628033637593943330829640306252707861172494896328857075389142561014856379098663394415796895220857290947863518862178140161875455479925099533815606160159345483223101974887306697510774506447032489670872555090483946701655676128785982126244639740775155410469688550429442237382509715638557672884108402282439508593562160943377610048529664031282778525684389517962101179610885230680707976141157844224890519496508875379860233789407900884695108520900405020188028456268867486068622843735300617319993091892742143658109796681864176970926980430984743029345201082059365019245814607131010634634011117239479977090481272861977215225725541608486885707882507489982283679803488366351319114481125547374113267229992452471913687964296035081541981426527299456824043985828329900533954810375554509896657728984715071448179553917915705271131907398979340312463012347421030417053110573409761935491841673129908643475224263144986597526343477776813089088471898816310847354243724161206008076602605098936859481763396127731915078111823031973145771918660510359968137932746654552759138034554634110331358856601526305978991674821997058137343942679033197252847561134842198241578443723261911424690775206671841030468704452090593240736991680257678372119563143402394078993981690458270818788864959066617419659217299710923168804358194355291054261451512538600136804268614467526676104627673788096229516614592608134222057950667339600240077636335768728286233351675767738368486339440747690634634034977989762912239344691161693412917031432298250671371572382489666700384930357166743908927477908943719925726498956788051742949772835570486529251056967927733290451249746012536989572154101791396300065201678772738634988391783224567015298153805512582156241181382096037094703179263008760650098074415973305654270648219663901066773591634898805378865829060437904936409690119214008034630643041385372608167860654358707710169617217166894704084572555082548362923112283568712521745459351096938527829525936852737135410419892814393678890427118568931391427559964161832529862716110900331414770407316555981071437873387509621492575457550010809393409143618392911968179759303981378613034071422749760245158852824217204657795815723823101211000600185053930384619865344767501821159985227118908660563518580831140404712515242623375943067887655829755587151386859018791961101761994891652303813835576121473888747235126137957050449046275298476137560830241733637277423844392228195629530511605923559324328473555992340070851195517320247374492410066197813157405064303249548176429338951976598686445084940928814514726675138386165987386627165698580638593131484910707471769048987814915010852734051489498609314309073378778480461480368870499311512113547574582310271516284274727019628762924809516581352974943745973947246663090920637533335612023552341343331848493461863002544144978383029055776585063738844203382633677119390241462289247145410189823230624419726124606914660214537632633431112338866254675346060612156031580399658799356750961523032163490202754618720583819343864905927100413173805948024951478426382583823252112833475056595830584987166387082474613581389924137628179904511753416780953327018059617081143607430369887465707973740045607415351042629459012431379192601066801315300126197211672044001960096556365643908567535505882687752173803020526973455412697074053734503105462551041049701689319059020712601502257509833603190498726508519177940232288134420059348832028048564184037884548802462501563374147774200793128241651731416404260696072576841441275875151587632289409984985374301054283840225527153935871902948334817116985243241463164133822960760202663428438867278691057576000068479932632923774064124487820293235607751974239540907272143490932605998756204210437884218951977886638452842459978778925909244782058321986997482070614706633500036324070530624921933052315859155965931900512395855649587797654952515565567210295120987653629117951522382576458453202246828973783355023212631684615797198881441894420908075762178363256481798406353836054519235165231715404452434869854633440341280383641841693779909541251927236906030892375699093525067676067307681263596347030543415242412886783847853960297210832555267545720018126166691253218215247820103368098098993919334941657502957709334588140891353483105278376843161582637222296104542136356728089698142990641371532417224274135216693685327345244293333383381589080306999962441488592422441959444939865249226922708693082913166948617532462579735354377604007356403839115007939081394284772645354706897436552716707891929564599780556395763958222849538083691124655806382251029071221917896436673286990650866294602174630603906307131613710553861203586520767999343938726756729973747075113310040536455821951914231462012323420137118747736411662368579771786048356073581817627996287109565016578538643482282847005510988261084903196474095425363296481886305159214996230305129686486009296961939229481131005531950277563633678434371944850532463643917916514405500704878400895866606109732864133096445043413847634358480951692040897778269981546119657964543600989353917499079966780697299453930974494764147899303763899421761886889190777114838939303921786028481526028869377161267374032056037502608335621095236490054777751606800560575998451844465101979045411680434728198378781476378818516006106856056113899126489473038457180271367675587546455756060904701184623501885531349655513025597968596740533004198544129575041755286954162527582480732992577220075203921055126353664719856679663947861875781266906620879183601967024168909925927434203326687846708972964714236070192827622153504385629570332239765542115269428194156877731821831980058873482580034272183802710468687690880209224379334593957388218718223200332678107508878718078288487944103589161236955153832471203145762704939576517122288935405900550819326568454841919798969901209830660785335015038568069932287832441350352551024977165613136652228731007222976786534110427666499271636208279101011042039341234139213104366615454099671745939416160079910673635598642262021400124533285295072149581817579472903491521042752061423035143524738700123679725909109419879310816239464004650886071927225115446850589752067568259189665252004240164782905871391833166016079221723405053008756348618706367521719515099041997885223311684870311911809649094719295350475807480740939806802710352716770939753059211789921472376848719617498129622437693408908793466257193898279546598278238182266526544551781159166017484981925982246815837461511522694137091349748029507534367429319976104416598943833206992496123251608733409754554412905770382999867914093435321102954848606017547249162429321041936693306162020200042477229171118069964911603992230928575011407134030705566547244114558688513843807500641619308495929322153819380030205871024817483964351388728407820270748869392103513100678971803165408419391880228311120906904047703311757462495280851833162062276105907073488246809280426047153779595528791975716299778861581151632864569348143492288472902749174636620915570590069460721254280394610784983220438126014726388636444285176065567591875535090421395388463743990714308240465949695316589465112541514819077609180964101888382660989632271914195443480698752156595403772156268474837982227163204711901887018574363882052295214783851031263398173777461759154105840192542468833828810282679314081975760998307448001449756169272584122352505566734703315124094645214373599990212350978031291863453015621700939940722816190961653570024795823050195690925105823275637571116659792227308947287408883956702064342250539210818820539016547266633928692596606636065832433057760703564985061490502496829368955199177473574205900519718684684516827967883621544466105678144890547475054005915168885732818439965448647359739942226119008876215293875212958540529910825212495367330265165550326999814948243234125694852437081414599639554244172667310825407451895642143613370669301537546666197390260289386569274529092708505003662984614548003634544490978383323365853420322930043746823832118590290660788750773544572261093356872402603064045441101549800869164862266846388346810638668118228487217000641271960914118604532172472555365716940526706895398082521643167609495904009240164292014718155787174740628486346794190325765537534715719671942223235393843320153945806889478402325210290478596546529217496277655929088285056950975494159380825765577330730916076476275960958954318913200415476931682680208430574375713670770511093462663831293343641431581313281246659850125950746579984239640956356275935886180485996360955859397519994962742919050547885122930320425705175803556917265508566704840148907417494492822887106222134347619039885457526970926705155640760963380010905678957570294552783780664630639070868962572902442041904723266331064733421470622602959312163173971647876284841530461583827527215266511111718924030069073939985134373670417988473054760282255890889482959016753455865114344093448159837611412659830425361263239301856801110849342331557806771395481395378005660758523292225280025167505173456816623439034429269166635794768785782793456776779933269506917912178705683991803361728469564664580346523079001251765952599026766625195782755171602259594321758376081035196368159447615059713018039955885770770961253970329399637862361123356934453365647358739575580319207423717668533211472681175013782156261748426648436425142300672026783112105214313199753005368111852773317507904776361525415061459585033376866006566455432187114996769301468767083643980004063625406884859265036535419051469802126642569698170833011036710446215238263387039246742683647433074125910378076060283320388634526569205528930265764244967187472536091502773168795115527956901976628722379181764473383081279341087398547371046674573026683500252202742574736998593615062440230774043926645896499667603450296965914839164216173651344375407207614553347706808553575497786494694391608664546408920120547532616684164589362332782159893281290569996321223673485344484626021912401279324642713324250467215323009554447139407519070634059020359309063385738468848824375095672147852286455161871319457277594177000896094288184543327297701564307432165427966833228124622435928427452547540867563657082151500646157929803272878612285869839630242187456457074013250527620795500275871941919737171364399266407168285846746681418545760210592568368747667024857814704780678347761777992555110675898022538144260174440581132781814791315960544579781379845848420153638655499792201230074260433066350931815455013925658383609944399302696260031215154402759850121663573041586443343792817720026879208609056266829630568390176618429835189882936120756381920310273908260591721176567327768026066763828964997798329624168751660243178801344750798534964125837873934229029448021409706858105309353141468537737661661093879619994134899769312541902552916077694455182096080020974632992320924733572071577240895368102812573672514042101830247883291811413065996182314459291148686588170954671222917169052845966575109620295045396895868898792158449297249911576591589132027167024906227824869773105752716043537634706972250300837434733121663659402762143699472222977420567320150737720867956095368175464560418291012757600501418957395958249651751963625101135488554517555581693603175136313895940928644432848619829003041534030173276010974942039360600562146919178780663589098117293134667940618769574481150172124291082906099028711561674123212129947926364543699401841664914969016291981059958205093165336922368252593623748932394039909463771500505221858718418224677964938700031001652975643435726005783119745770588321632040409841692487648784778431553024593559950764092949531845575417884225582169427532765872460838807172597905259761910711264142966813312672479553918998540980576704386775495683161918299734502302291270090353368047610994134990493110850395375386020979585527344587148278095104903612079071010607321672536457677781050155422430947155461686801486536011064460874725127057383649215607075471148111209144432304256550016563995323093332180111033582856971481881817831810189601495888498237538478343803012206764761239513681296646891843237030027109497198841163613928551648254108126544854524722440128459687039004244681048678801230528764231331452719187362315849877273644993833185526313798144970946416235195623115540748198052756784971587003603940142518767128911972845426900907616286481612775832132408380497090745631915387191346139592656799125854334922884870871892699212620343495869050845467102144929108629583011297185393512110973102840797156251261467529996997251252330154329305533048590924978172985976731008602169297973032521571504877200383980417704788827755267799947661394393476092910091393970661866960492155454104736342641691079366356987681645438382125390020883656224336273771446788292024483577497950338650541885365717332323295946851933061071430979985872778042632828978661649268431621420000143754529709633113983474586828829870917176737584954648186828772488387436339287219660692463937202003900662115481395250898874232569234207843491107563086019466808919506739013121462331082202741903669421467262533483876261268438705631859738954242794891776058704608953631468698721145833807236368254621938702839923688347202342672451657377528415319677505037657500615068631006068597175262273835140479900308955321205345401993246373445836790491879344603785314848378160622334979533006245985892001746743826292814113138548002678958224968043618728199282902867426764031790626287859640428695039381541679683142645408209395869653955502138685278425252043920718678190497514518009261523736321508622329919083314682487850567324027271033689620884247909337396406781308253070336485124743889004219401025530932241546142871768948588219260531376818557325607535372463504074139482942366236939385021982165535138354119293736975452247905934201424018315863022423547782472021223020071908061821651989544232340815442208501783670196296154832928918209651705560609541300606390075702093316152175918369390233417029234773100519430388243976040882868972701587353388272380761794589248630318911562267375777990315944613825240744286119809868984446333936801074397397424840702590584159562229067445852160928836939363144278696984010749420544703489333135921400111149107445970398885651262072325846848599985881408116763487776932022392780901739192246284108736147354945364197907953076521377344484953082916084890235820571813828937099417904673666591391912563624252657497724002830014821196069398480683234187289337131410072613625636085570839676632556369824990646225162661936695148522122856468240018336140381231356396801715940813055393818789870813268624959225385333641355150033718818719340227960971011431084001332789395870288827095164431492900805398067613914119645755126405611848815202569964188672745854846030533438617174921202212631119357973390419915169636055905291906982577726801683527571734519230859905964177601696003952673492650730003553575391007564744273085217610493708122335824758379050647486186145124268396177466791304841678840826880882101216555193193500271308597429482738032658796263637534266202768783578419877755503363176216053409327899186747000368188264182730740206297982709672362393753849964950728890735883706495356561799201738073696527627948409926251286895360356841125613605274337469416588058079267176389662634383155143200632234762501139496787836571033372340526959090546865249956730532871888164536398125556456627974153481248481624788411556652070741684285221561951933820547578711079766320008256459892982171529595837399496598971883985108042026774242006734119849776481151326415076821420826995511905618112630508428029188219489480499027040961787473255890783849174762870959280165072814504153582854009986133067051725362546126851371154264054584822941634778908581619889966328416609464384649404418531749433332655525469485026994419874603988781564017663360430532549056193752002789752232998804464775108022685120613776193939454263749790116523880550145469606598199697149683424009008052018865700865551859601375640471622838214834380792546064058340212512843528134083671227102540263779801670145999645052015965531583572892196998875254452605273734711437572314282637554867315957539485196417108247599161286666154635905984602702858975089088751440457875263729697978282819926523815277412921819755676787531941962575070954453198832952592266284857449044358463630497574554871297411751181985571133894745648189781101594231296684374340797529164143424805114956523758346563970279584581060431283834017431140537167384881859078665628657204986207246138875337007033853508243079390595756261161453624001781263772199399718057383182096044354643914009469267940398952096595681048150730273284034841491222982875258036581619231601930706910080350833962583323726366344471715137726937628709071028167843992954897592153779840424763497801515306564988854157957315666818691845636447459194999147161020102826256524780997452205035963564929354749910049813164783055139906821087148796857048340482001461385214487090796144387231644553041648226077184721235107288250550131691790066138864375071051615674172769452165213721169588836019307227190935275738169415055041623319283849409321991886110481551130589507267029058548501693220615795310614965206207794804438120324604609557498743554282723205161909020586012167358846321618817673403650542998771758723711091831128782698062354960978370811728067316981898035224397232258653998932747479488856595723458333287633787726687643199293273747930257948763716986844416462059897168859205167691002303960326715968392507614610635270021096492353136126518260832047083108236544116298846168041442356564822829834463317599708870868296757997133397630501564837158890305986963333709311142705177749640104136531572154956221053854574331283972142385876752056801966303316731250639592100238839863967377191209786155051077094261209251734360790810863558699065396792860210594429616304177711267702941990392451893946281248976545942097929105385090409530829006875312623974140395673247319218098498864989776027280956342406265857828889650472143472940104949508204985064158163680080609180244801919020556736226289451541235056581346123910255054737173195198127377334768285923552542989668044244493578004028376580286342748074438418955772920875037697890008956476087465734074952109424172103835387018513660435404507445982903703196646351406397986186031413633616811404923215033512296333192795269248244274307525138739807318260184332293282126129345719879587718706967281465138327688600365698126820690289285329141386561294692752222066277328848441054432916711541799312713483255997202506371865050976569534492024979868142646929074045517037608158860434989058328013351988108427710621078424725255755955030265087801714789510805373563143443954193556307916677304559229139429976850328719549976321446808834543174750592067148651121150960657449945386032719781061768999109953884306234290417308810203785360151918758373685758007451387640733692135154651778944782290823175830623757555692940788739407683676950243042096419269958681675561739224726373837202584149227144405405040369918957978232993783325132692944430894098518343462158289153915375601898967938825616625610744903816532631336449844050830165044397991157006949311738630767194364305519346287534290664054705712758342572042798287124021073174672415677840905602408007014217528428313409476672990724040470121050457556942549087125772791756966170877395791329282360171977334491001969647156976735943345970178014230722606169454512055774452515243103536247177797546834136735958977472507240009100778008704993569414521314366560845613582082867896660042826076086931775973140680864432699247779003056794416176885256876449004061224674871342136078694917947959281111199493504742350539089168616530530965249421906193361157915166804528424268006310919611426179795387508902437190654372515221740676518191808398449325818010863923104109279108310092240335295621123875552326502760672148642404315393634756096009178450989617911447250350942050007518701178385140819141151073822843495102816519320581187922720808629821691687588173150971900335309880213773746523425256117226571924721695153556960512191683138625727364109872755520251845000931991257258797825172663129365945060235149074050193467992861131397679111372971733746865974181347755701587161692584386640232439206805418714182047756053696236275075312486128177318057682283309830718699627085649110128933266037460020898809348675006799341672382723964861081894163094255544424016322626600997390254478472665591016034364987717942999073508808344107670100991147521629512704026403809443939992034095850701665024194112533037950076333286676782761198888523142606869485499467704897867838741913292174023528806564399571944629839703672821662930104230667205663570715402474528677305265573588507988210133503927982536718661429861661068380293068918831397141456785943987408282897534662098848990612969940825791580702699865304768256504704808852391861871883976016124481732429952251902837312481998129259756774768767509004641945176998662764181694724036446390457731514865149332337462036601878636884922762773588984212219882895814578151174948941461659756601776328181213805182934252050621147855455322380289984340006814957242831290473071982578442280833763636584316668447916007057740484113223456211512764554148242873600832586210035029064135502820740869096886466153802251093545859603306597387307239357619861730843128768690796292271408052990834450444192908772112345048383712676057253360533796467256278709029412301663736191587327291160430160579239318479510347283020440972418798918538919196272783353705132674388013117530588900358172903099379239254026057273201407851598494316031655323307000926125068200984180626018491542005200301640026236673867086388513920525745761863915613416228526834794486655045259495658925736492030357448141077691591646984107082152732399797027065144536827778405963067956098566499428082835977609722918738660778163704335946046150027298191215515609138027578175149864363289807769867727704227786498972757868191513107901025673283117541702114073846724220768989791984287957404368981932458717333224093420938785564446559643180934068079284374441333499328941724759565157707417717349612946798538598523145460489945257355479637146196727670527937769932325777392547262029676323026920977792698700581647292597616080797666594365114470928426941317880041020423725903374754731727590411468288468399841597545105667190324780678085487268591731576597480878855016689522375595686478257080228714178281936776269060110890706735509291422139173436412186133224028914277286605672933791694081242996590131589459487206289148481967434717529712685535632123568599550928135534090490530154924534181628767286564247099661103735501280322607750537386914571487714728995282670326904795435547963690754580927164548292212652884570870186336420552468635127723300748940472257269082803737716788544113192656072064623890395652869936750762562803424807339285010765419901854054839803119565278073733388843227546544198368682524386712362017806339249642310927231531594439663989746573411252030111503800947503183275167122037572116923254007296378056529499522862041770875903917360757265409764517026473498666788231624695215161509895727791126415887419059025034913774838196988943695551731513611028860310091354284876949145604333125825431201092848566069912375045801580705787118203259695666555090386298836355910734726174342754342407440808407348396837769130201760409608899938251047518700720366566598726692144732542312939911861957779570147109716442613869232522902034916928642054295015593773586183026662459657738334362602567228471512716968782826631801985784228689510111539744734663636357102633436275727444863292874264867602181665112907489754101998407260871225828650981304181954785497674668594296882376341134915122014192799445398213682005412906073940512641564602331189737251808435394150099492948226986436083716088139758500107355531017991510691248036770973977082396744153800988785222900486397804969463981009737373574731347686095582614540464597906706699434973001776721277141129988643301136168431480459780858623041444392516135532510707725295636121938804971299312262665549284174832964423495914178281896577813162545866505111956945574475125279126152730102466854538676047207959764083606860693793231696500142236375871296546652378688346602804154217285983370937933535914301495077788061193652546381129669438276528044845438761022252730649768584763045740191441677108660704988380002339022227438272769571716592452750332484893992891397813378756936124960727774505860803390938123178041428347758103581913640014393443706936614733807372892477952550090177762269151344739196597131546713876269977633580750481640191092235395768431066578129491591724713205783728763845022081557470378625550742358500114334973127642642711758418666874785385097064723086148949840088473129432269633987061144140849677277770730555243610759518880255363693562003260972373217993913050880755069323292178288109629006380164004960974479715001947069736092693395095572868342326049613492109713325907385886899780088352547537773973059381847786765828553649794123243183280455417278475823029606607029645695043799579968598545812580823583355084619846023919282001014586929324352152136431623137103401055065972614548450960283913543442656262769235599804536778085029430616730926702402150607895594964199620532304994028185705708252304984194474711111806065583693353466950867489247019563386416618222606671229547503409237380789515743837830267021844059820954300986497891384396139477317057914287288343044025902075819929439754053068085110172458968495656250961311551218368423845089210976512887104760526566510311530415464782179725897996276187175897313780620497208451535580059641163923803657089111469554091070514820493540793676137565948969060088811877992094262185511371181820736697964295266684653053219989332581155492937900453275993467629074712599422683982601807005533420068608147625282838304081669444967363388509770331742439904664048694403599961324099356402539461215155396123084770338548161389258235138175379008566050550783670716681006546886950157080205318968689107570611550151909021157479911049917820079755135043340439261196759818796268220050422851490551426599303225671256065558880646333375570131682404881827251879200744625310094320660358598534404304075555777359468038729958124189924871611616181525128774382140697833281373048301039315043479618337989925708551505422515544852439865221225517652165299353929455417278658819204544768872716802357285500837081317053478895825559023077729543648187601637097270403490327374245531897411030648538237887381209145323587707777366646389938543016478761377474581677012618757244630637127906112657303183537113100067239706401730661313007701159485014339464855884279637772006691766540610319215600211431567842406260231544842109268085990458198057014776797650899610685104537086072768582808623036660970815695516081260319846664794796997778351112642279902218212246399306278352013812353053792764210528797226528870421896023402602110521596747198604422664979219964629390748197815209657584439963709609544994260033397080222957751818876561681469357551245874043075529613993283285994366664858832776414558090875794035073965123375564671631367266167428987216039152242405413203626186791836430967058207386361830144683130157418553244548275505959268796391053788393716209305529020632827828063924235561179556693984665635732934680911429390093934174796657798904698384312947447159603496464935732679610153877447936887035678810374691157532263592429224603435248209016746996573269617369068267864695927835830023031841561225586939527445265250281120355009505055559264857204401329778121777721997517978069613426810965144916528985407881719877753547817104342626620394446069986791143982473676747024580600649567950212235178777516107389792294242811337930900259478117383055272543156403500975749143866544127586224124236912516798859880733591137074221699034859090964913917764088470785294532315065288270259129797392707154156426628874078985751705279007709524086420118216564479066723194817772129030876751535456237970258733025705148688413129035616462795527398744977282645133142358673915755314856929521761651179003363704541236115736126883780068805684104482170612465420060351469405968278362684028008827206496734619449416947911048796982177494191451561681245416572623752634501548208448100632875071888111487703757657546961073736064452969413751219759443319218928282355644068749114028977765251407845669325250276450416669962170500575913695792252236096094381042940385507914025352997141438945763060450808535032143413899945293836741490653741840354026570531299853370450244433809857564490504832618867734177377942350520681359677963903373095637518870367412277470798701487018400803769094199498227392942428985197298021957147652371784591145492621832619763203592120948954365051892621905730036997244607259342564962817177261256455814543274191881286032126866421046959096575862520792202198961309179039158270986709454092573433436793590591053479078832557642370870553863003880487354274916739284798163261366288613512299737610595531476639237877288544064604050014566507608116121324886284109333951774084971186593468115093718076399305883080738534634977486925930918816589431293160371952595705626704627003267411463331238893262598626797701046894139358009123912931450881713208420912056017672970500898084885596145229287748435379793946213568917201917195385049438138028802146333030722211788314879457440998763847162431090625735967454053832072136541438690491994758294854679121698708236082499055700726691752527130092590346449973997953558189064515920086038554415883275368601460260924445695872787760624869522061180738194495014522047915670471686202469323080267452727058973266591471907152985222023486793992247731564824345327820676432948053013002820894242680202289036053922285402111621659130981715811451594337375551416226593905483590969587320857965896055486468799438598803400577687056748884680453600742015374703087170868425986113577616479595816456899215055247632407669506721859978907582021923820805743077380470918229305086504787174104942416236463972768362155399241255266046408839071772773136955282467394509706638831609741328753011619443200406060408356049205737147607243610060032044587583879661834242702528632567286802839761406806403878588735025253627664187830614201350799625953252622372785752018290287792948540521184777991724799277575434702045150144520271734101145184531645322922606494708346413556047936230700693787326533619848985278338500856074020991279667017044522451989324809829851659988390340871817381766005957127457536248694410677155502660981275866699918074829975603807758646101139213582423045080792532782330048991591774504451139610665923444513253841234297954004332736249472915693801457229916892200026801190713827354803764974252191141314376006711232994637349423222641803967450808726883984440543015814083004558859063201562925562290886140359229777594328582624663794181899008674275528209497839594134632826490465686649652857512226890705225024042833841888504020450663471430642711218192822406875928650580082704885663412843716629001159625748623083348884741837308215509827413135791762141960831451005394009630739244597286812112432394250578091017525936847018298383757349792190117468047978916619120552109728946144991823951213471518670115539828852023023526870659938749459015981029113135012273860537284881903643216096126543993913398594008351077903743747205457122735121929531768231580763729292273540568594619643945931315114155739122363862572049856106194797534507689409233077666192211553459191820744144682363826918496111026879138757673274107274835495680020851880260993795093123759070808277900119851996231325398357843453277680468434971339901011053193892596921625908988280436794815546899567181314277345030662284382360059834608508771042764408488478062273714781165637793784601702223705530791221476795511659106630136544192252486147989243642237800709118833783903464598655703675135605712523182010659171849148143707202963552008165233853349238729626051619982598060301316651812774399136295200339079339209277120712315431891742602486429121414171600956327398015608347906526296690671324120407002276785628421550662539154223559405929854849101366795373816091556837725440726956913667007691387603226547386820053274607365320038127851780441600183466339408819753448323090995960999634379507800365389547992485728639108756493971917949859526216782389501751222066292591282188992014340676521310230926881857849570700703427231495961879379228484109640440750689407942014186622993955604110732257320424491778230881465372168045237004697336138254235733842448876129643671343771568211490375618280499261838200125961995612835957199157628295610265190834465212194050826451364059649917595599802842680170778473720166127825077136676481811772430347618103976835887128875788128958520607555317861418377262053089672340925973779626118679415847465405413560126300328215808988091025547369539542085932839234121878294320621198226322065121294818251132455645864126903101470674971863601897238609173733858440889874153046732865693633436719650062661479868386540721216814370271290868480876644909083919702275402665871442930010528583622252116715511662561861112046840367063908041462951588802986702939666707523520210913567215071651930757449269832049569373836346656742180321415960107940671652152801062121248384743778814298020221375984504576039772965647818064298806773279448548067300562250332571519564196037290105336043993628361428333734448392581187557827575016315773676082829761503353687859624571104445558284177034709757052919930608699391831394188868570297419476862621045586693915039131658084739631719845390564099677115372811129454490350149597670383165490458220565711804454472474252357419076845786234694826855117013607048945839564243455425778704259447903104952944559015669562987743531404315040526995151817749015264138699619711750933409268554637101880252012928771425124883118646094458804913431789924694480104398421272759273436067290165679913851121275304597549746645461111140880621095870800244604228210530883758179026766622532824246000606447989452542740832135999463492364074639516412004766649870046708706866734942756690870770537818566665786625013535903132953543498308834714860465955732005581701296163088111943179996583744589519671187584793932579878767550030659662970826568099464595045361855111957956676956033191933598343725761767845768179853816031241501688223595117317463889656930591700058690548047572367654978619707651133612429492874507002508899669635971478535340227672853228877216175333062628001127822924175934823013261835954133426634742271559728733266917087515502818861823550294746754226050326006126278631875968676364623980890425162451223121297616412620253577514679100234830082062194778924302492656326354148515283399733453010593081778558791340535203066351247835407970335662219921084770260850697122403197954621544339880830245815173530661571551478967776424411119370955657817481054254141873588647252255181637910764200016574528828444975610887318894202423188603766170776413793392210290877220171624551573146818985031020989531470717348471380093980870714510888481482891478652900065657596288780121236359984833615831093747416216026104237085905004836292562455027948331922695075039741302996349693851375703845281156148000738579398566163172880357636954550872219066008357391637310099368678804059403634473152379934582893014245591812239838968192679165011769612942484679924401047300450877806950641580964071549809670617018964477123729751184828395280647181444838619751324062583865039948114837789834273407620610386299835756100422300528312181428676354375022791669512917910933094481458709582364759072668909604843696711564698015448781295000792301801187843741160122995856284627352092352112067532529462670303974172992188245358160951987039647801869909689667027701643291874617498169003554624000831417640506600206825519324405674614815135862334407093542768434497203094809713004668611214826151663043054335675290125521142751788378649468362267738342854448198310494746395305052879878695016953953744202430828099085610016002010811690817905291430530058063007819891942124544127833607101514099040743528727700783905597364668097233008724971471042030329380313899325499645362060586224424407383567703999661321286561651757710612154856415022170412680442808913525638018275284049673834278119962266512101640321949963381195637445436042968576448514481197036981280718061468455963828748574261459754313309463631726039435244969959565612377808176602378050964353480898817559801870479717581208100961292735589149906773020212337508610551965859961272111608157256829526376879417920035710844985835703623131449236982005253517642535846668335248675949558445319465751025489357595234853293132107444871097160031181180475632883525321839327793458739977271410870218625161427182145114849971054968663703127615089658425654764792091963127807462916608289636197319045344806931334416763845908046270848032385440589209968726108740982483191539264488321257017778252709035521782956360851024178450739302932865248831209549175655173207298765812144254347207824196219762369351447078641710284753140516304924259067606454488181131297470280835113758334210197742023404977608206720971351638052754886315600520712627435900379237207894621602190439225155039706861711469173735322827676141530290664981700023939976345664174123744854917239470407555423017335303755216621430539683653209370835794676055005886852249046952003502928562206944714984099502637179078711639980614413691549410703620483348052414033199967953471887014259976971142750044549109477544658513749210468244899628710503891482967352160060965987794794106678880547211235138827694966250103608232509463667374738202205928965096103327699007584479673677927043240374705705009358621484852228253029495376684025863765640793730528426143523856519807250480460720476182220011021426629179848543378396410989882214116824737300388698103107949031379288224518953181068027391142995127311034401086726716540594086778329908628204136385477522813537717984419352426071167554436106030360470897912596709749582808158577476124069131020787424334415255140547806253861956498193062134838518017760641299689811022599969246708963100287464253097184697621405655941234314044588780281818044940641421507353538697406942340176594142687100423592187548072999874202951165687870295076845950597566082263654171650739041042502720022289261726100817505486213060046445762783213422263882296683876434754225361886206936700688451551771388579186159377277778673131911032799175450773217408427562640316176024422593600991821597077094427038770058102873501663644379464797994156081534951699701583348398983472288325990446433490481162163265630443499537598995762929486014115792251801303716827027341531413740948141916517037630818006758381471817492398366023622432269111750624125676517402938005490401168744060900525377923799506735358179752895266386303879265234564743661246008488186906144420485802180831439085633856642043698589690823674086592455568230158699250046574431300466698537062978592222971256986054627296057299449022828931627695653141758415502072567528782740601417003846322945835688846332456374920933469546829108934710711500279953725652619725467993546344188135616843881665581192219099819875270403729107880607500757768083472206217260132045267498027396273824204275354266501252821856746648794932930080155311456945215047968233398052791646127241224007309481098966033801752382107578002080611079293937835714882241603319233520711083280613280849828130590026173447915158738499762355938742301262566937843212052858882337259018323047110552496786421451309845629935666626972492083387690401454048479773804048194250446228278284902576855432506338101782008227986865250013215410693422656190493955404870644523726624567475591747351807476137607697872383871776842220797149924035017739726593769422327201007975299151214662635665146844673741167580881646780304620322450803925355210747280877953547299854591263878465928318539952509854131106739159889918938430980514317818223560284136749692460424232589697010984793440286724499338798422185933654573200600853010982051310193796589551635576581706302900111250879738370917044130249650014527551236736470708606645005418028065320468056174764260712097135268316840438219917395509524748643353848457821789383036354341490887720228827844731957352393559925676756010789631526537004506424692722133818904175183270297845384208876700240728382234108922099924542093019237376944170073735178632161886847727656271210746478474430455006660258800431986514688729149278967032636157854012736739258464645938609520398191437859471748781824316841488894374882316068146758571451056247286781284363438639176285363706089220013528352353463309465172216485574353606856633385751812079128481203919324131126001244948217964354729512373954934739916851151477641914376228514459488262216852435504154209384580470579031341388648426698302026968706491251193013519868030792179973462069710368949457855200052049228321424025116366779234976493215083220747428785489953575637881455639564516977658527303573820479196253858446720090177514703824122813878094251546694693575292913923269446915866186342655481206379539230829566870131562793495948873572706936129772063877148624245464869958085631211754339416977792790471980704301845345584638010051931227982051416222525818313880707221105903099142613675493781214717431253977023604640350886741591516509604290219653024536883294427371477206331807349662312100889340891960553350701798205394834541542107128863616689781253010227304633007292249811293790225082109735771999083009533810857394020345765775951183201086217356296064504232309358214614076408815704371334701712415445457254774623373904175650743067680897618472819054652699297575129452715157383781508826104747381909454503914149759667186297243981178887548812470621522099820024695585087118430590721023932110791984514662477659419370501337721439994035972117453323417799046201630303331038841944289516089004766377513836424390240419796565517604842886695848864887210440725191856611081765620268101370453383296042308534380039832260824102499969087003049464393148594451560526021540635952056181318524073513347085039616696982363275405393969802184138576827301406762338744725826233239693891425598218716638748331038257922667891527968120533941711603567202560045587087604596130993338775044688744073640231666873334585271135022071078564061833997982988098941858605818513899435537307583093694959850217123908894828550339052067662193836536518980545571750966248618467063708942607489892384554864301068346701619752826393751247580522210354547386361405815636135677356674269680457214819073848669713039781952045160696106631322054155608780480373837688241536466688500702609168041220511673769577002329825764854544567389308136084145263616907237270441883609357869644292582741842065491356173737990161463704963418139953061126637299245721347368110936932664531276619564145007504808662276788045142337943551247631097630018889518776231589144296326150915994905179600569849806163787603701716027766256853030964317805577357098390858624401479608601675835005466040728787768091947273427419515555899471816281178526017612323123542511160946106960441786667509392957644818895254921946917631330897226420815309254362066802283697402661884695560144947648284658728550261261819194885705747309944843771370059693908281048943257101212465718901724862746026671981389475721938262157201548054849684748871411550804380774307206729575828007527511302980092740585236302257915612007526573925605748170279495493251534687689470646320803620095229603128635583946608062284163527322245246779423197334174144614037685183637774417898411014980138443444705686368065708228960663629385406648048257360863249350672616345322818542298326119493040905013137138146178646148771385914874455538993491197709510974661098551324811121197577843149150122663936429124908392392202576842164938837492524627614805143574472322277126804492779806146419346491295305574535495017795749110525860911033280180170995188432556247979404533084957150643958646362711686228229423787344382479563045298598076416458985962172429602670908882618899165236004422072026339994327679872574628034724863478361189682818951247164845708903457529564882939029060539323549192528046913142429682667335813676473863464629404660943218664039360836337272783548320355200654116180121261163569163246063203038543485868219859016583949915823619299809630576940629228122735787799825387753386644570893654814292329439431713188682416953713302916156083607915294571760077381213933472383048545204606048603630691132765655726564176757837459176051126127132854792187311840335132328869166163552511329783620662344492549522232127326576006526520838283451234298973133870227304967678600730322221803815152988394098871730149359489729613926611903046690472841080651382188847628679842168869032563719236133307102344830753069109217568466988841795193683546272985254752786660925139472254423615128632395772969561500128523760470336497915070880501711766643120716053790257145611767785136426690516875740135534682003633850959405512580885844174666028649627665601446708699866002738844651904325345702016252583339612791697372489862687301327432106817567747875934012918051463574897606432053651457179872610583702624340909974290096255530518419931212666406080202100943017922269969301828335050606473016779567751088919218221510730916602191868124228383821017880588963224419114358667995319366105260809844084515692845800321535614620789969130220215930588223615196305476827613153383283465699251116789082259860819503452594130078914045286364744877884795185146638006626037274762974328091535695469935339168803027359230911584797221785745931125140765496813427258810292230090659740165308789237068583556838016311257731770895507551042076096656833631813529225205083036383758185048385150084978356591833649465693777593420870545470980882143092075233051213595182029537093054764617090959660501077002121932880667718224623259324423331800720840671654421791231277758034713561390020083459562953224069671083162631954673848051279358992405651139458918640425356074464813211454626701575804208245670769558722269899034736930583447782541006161772373438234532190818124972669270002377924794565362237192488510055247044019626557749083868751295432097753803449689779111384461088952674373079160048957771246001969201987882977814151584830798720617263962830303171019437842203980435537260069153828836524418875969523249776421179262388133551184706764583125984901473298404379749769639989244354864315469683094947197665947180623542239533578169278823808845495820288897705457595484377685882177862707172173395266070749740247111244284761449195803483036832457387149459295352849346088101521966983862292481450201428946105660069504423584022087498565160983748400367435836045858557448953820575570439575557842840082453089181302733492637081668577929547690792391980967302048394247827618257163876202991971601056088674083587549431172303385714490463790012047834972379153459574071524228966486100514518980886925245995706365487131500361475011229023908370689291625720655410249282518490339617384776154317223056231910687022213380941004163976088735639267663162603519933789967110183668762595346449306128259366160067761639361377967835333783287714452803469873178394151951561772005936116402211917202490312544592596467824630494689022873961047226865283506065861215303196862254536419958304875115127303842162782389795135915473797547666218473179924124836701278578173804849395059767901587777587213401672844196253862425508725768643131788000462622820948718901527929115772895347463128789628438340371330873351616059113044374495413126469355202197286116444218313155528640860943743025793929256029976813026115361844975030862354784055627246367365406781181250792883933095250261552232706063888708610895216070830713954633661593738983396132794083048486348626513685924308570467515893239739898908345204695363240829290939675751414533225029025552653680957507639530563838626065430139874928808857223388394204745471265183853679175000721672504813306471476447182148598184391653655712235191577511805613294649081870885165621502657146608611448335840980285741352053930648420673449930083989167663720058860679003797468823344007514689185148256434152606321169530026497715698878976638214534767791881912799484075559817930354299020990146080622122735512887259479204520473134234285621578042103610641391294625510688267159661517867369294313153657524983670128518714143508377216882698770950232387931991399383822356062991793090686342465116656050558609586595752504632115739491928864890330977272242021677379091159785844988448192782642854861887135341166651310659264500978732150577657737650877313224355388593228579459880949470782852007661590333291457298139033385796072263236911936492062789168176912101492958568903425871143296399837689828545412136259570709517746891034840374166231990787773296455691416507960111817268082197153548997782647189445455651048204822589974320234852332178098306483243278833436782014718061635214395071144161155715832963802551788843668567888294366455743979590677030891903013451724119868483153588500265894071890705413220314271888467318147509610912326321995066819440601339371207576923861574276137981052072855907587825986079816443743631233033009936593544041120677053035030128733631302118354412348689904991616948608339825251846988778228256647142350529700237632183997790914436293382385944186343501102053333680147471359607571678379331551835414162603791080091142569342870856815648426797390770618521470322896646838994378196581083458713612484491027393109408775276146555706136368767146428182232777605518368591849529755622764377583405740021644532758844427128165509486302007603323806254965264917599196204265172153019171989505154467273202466053857763903179891907842571244403564077857774749093842995054906904794818587222259461882045583656176281963818595687621699441974370539593489116314776230093545088680955550406912066550200094317479189552221532002325829265403292151550678748626485830115773690791107869944656382613930615594110518150048510777520962054823832470961317197587845381076466416925099193231305512749187620283376204802490541107518951274697207930935472213233654096503692082044305060564467460037258719965139140682826542570410540253089619956599200400866493850276984757718137544088804751259397071202309871742071399400135484639945130701010261816236272224008222750307990583643992235301476513112032503783044829750966894849110122858780246839818537148508697081093904444084765152829295109381603811617792708375820440054014137056852998423970128861659819125001937287100068312941886917683277293414785953600966384645208086500616673872353699738964572767424048914890935308649086414895840651035559957514788109519920791244755480063697224962650780352468854396149963652829103894677126634100708730039104087322532872985459883009069107456016812615127681493145668440763745119880636100419995085935050200889492870206868080814470907759478110696243175243398228856427687152384040539762183448816229522969713027944521165956290268431040823516472399250423875868453549089425090331009991248999279705592691345589955407836895905493204572734218043392