PREME/G/MU415031

03163655948045054282895526407537200801589278233352353552155496153170700268458697385758424565299367797721389521301918916138988451827787239661943433213223698861488881691194821885580216191334456240958340319279148790174022157230347991469911279899193337284386823332538792593595846493085588170664840439835836441484108056688555034890602496941306942290227306277117622601618335532393658667413631713946158607337469207000836268977942058217557166952177652133327582112527261370731540800485739257297760254669660723033307091128003894789565246624733577701965691038141356216677017745989609284978163225480821972299136772126230806419468941551381686428692608104940713176435870681161337766079965105104550333042402451106224728603800219651291436292010831516735038355356728063702617042289585154633862892674457193034260377630927832266015619801119605024530503240064662086568147652667454406119930592676082800812582997758449416641509633851986133238192181042899526743966257524803074116165409535325414982592419163966045411967378674375082828042390847802252284270345721664759514486155302842035063321773636786411398351494141457720267854000245002903168979009812274052590419436763839164117186074569250277136754094900175105389693199964007474495617785109860202689684546266874385947534736938598291688060529052168762014900974284606106433127747964520539424565230634595741161054309565438565521096629982563389589492963284774584630511718949124667663263317187075254916660104459993159516278833533841964132840792473171079608441698407199726332748379767972901987348093622471121497086817871449286201152445378525979436721425251072641583622926999670036898928422673804115904098737178764103674137993716685574600618667713955669438367363002788277496859790165100360416236546964588143892683151193123502266188710497694863792669358536024755034951185882806564591789675856933671662039455687035796247996488166487348365592020790447066415518225741512841961675115663734260572170431245378519508934044907985433178600441620116791138600952066967748666529510565544690726649711911199058665814419097196385923614003145163732191454257993451518021591041609893806726338360014361973026819626751678929943371757035854096749622686112668234031310911197576057305689213655533893659447091828153300679565519206370230040297260015606039461663960207068376543917706000081175190670552501973242067473235646591222112866077612947327959124066468795122102217317169837313266957114185676830527983335375311957905823823959376993113323942755954865193980443271603233919179968847580119985172229012242184352833351156220808230137304725288652992410485790464771980686854931428986564400253630931812451389817975442077874241275424819995929702565362841001135654541288594446096784582538544022958608397854213731303143877006586867338734626011767461020194928690459130182745271795168912929715682526597189187089105309353508514848755380353186619916670516567254106292963150171770680616148551823081932396808464696624242713099844204471589936241837218171115311395794289994995911306006931212722989897974307105813315625993933332510655295051356649307120923546479463527639232052558586215055617225744593440931183780840811338356270228630530681946737689574721798955138279286146812616454961973511801157676504426528515594543891421554319243691501585438971798963871496343589067261598380402410330619422181754035375650780572837015598208654139869759584333575533264487432659105133406357366673349529698333583444617851123421576532768330069785490112741393530924871041637004416729349482084998677759746850857762591191862480226949502636503573433961151828856090333198810050619596924952884062950953155013297267639305021351417399306144905421978839258349064169160385565458093121750905392824240928979467065412428016772403000655547899909063627213150251598825871342152503867669603353788794015583891445899370768644117853870337024323158351718411136283166542331110491366794507791161948634769043654702527593456785706255424472029819847525513254151110594858686603421204230851260749902982733166896178206880307963295276313772610165153226898332728209905968274436285444823980116074731138550836026568996053026784296201932932632196568329453080499243106719617183430552061436773793892610718668052133628045694556947687268812863990950489155735962874236742037737500837051164894850671684604053393349322060036705014873239218439949824760118579655553356924763822643126327739019521336006868833197349413890013221296413245068561310050614944696188718958603565816855973614308713012679476744566369803585334058372012383421230080294575063615931541875778385386001347983593077041964717475453079084991079376449073400341849197759636652957376344864495686455536771491793612488539374752712147158228578179014457969082276185547223329572447235719745798322216984459824180811903251538295868960849542596459052562919016594355082712576648593207741381921942110506606666591385349574074442059728568595480526177252363947250500148891203116793304940308969732758932106439934803136999261606192066720001294199728281485582943619879636624747760754392923363371462678529716996925380380974241805191672443051741477291904505161807284321871587782879453727166474948057818601614352995356290705642374201877558805929398407512859589910625158926308033762573741985475284343783382611674366919884076858731966277875195581293876341484664448257026242661760252248037483018535407463061607330048694293361627807271694253919994100568777146939295618828140380172166857483051247043600538219304942918302038939708567720004330452562637277575825295088246424289308257407394545867572565732231889217603529557416629313337716304677971115224485007390252557979271067021966712066647419799124423317940365420416421782643621087600595920799144158573767949013129177036486982007046825709551039394049710768572413247839889564186978389734171001750286283480421691089507141545002519847009327785014236488931073305617988067665007200319732206330116081351866779968850076298686488406736485737962548393401793990650735752749402058654065916574879992717562731368196434245058507341209130897764359898949571030373150131303473017731663523245809411072765256811180975335632260656546585275310475407319745474375860594513888565010482259135457063921613952125858659513894719417099053921293420119633066600862749226989464230468709943317608568146741299499581984425813926972551550263148413572318128184258289798368529256552036012205698127875577981937013261576513191214086272451743259384939751298822293148857066565295821045974848771418619397034128548649080337359370631319262456795995409097925485667319285514351290202734725676931958587227230952891348357575215797147858422770354618074381434993663687788208490121307916336106085246026110807802843184705449338232586961579916426300141170831634396866038591285564876129638866862078902129773152370670655960890878623305274124247289077403476722088290195562315130011567555825735829874898808010814214189392318835025951427109262129878321419425500505002504426293579558724019947941208595200171524385100690375463058755429723571538446828965168745693975539821484449102706871140804463575740287460363675328619724254176732942818200966447715402205196673598817601551777581812725619658465978625791399154200118127396170943314581383044430124998708692666019334295338824244293717769144640455513669103676239634888889310004744971096551320476196016779256417717734564672848049368590419663758955909328525361976158304126048512929825456965291187571109773418446312740879696883819220808994895361801507719594886474230384791026806443820427415366648759227126173370072657809939759484092914836924463293377112798227870760982720346855932408022000451506886506755691394561917895958989049074710590660511355070776732493433794824243315062477821618373651009377208523074725633601247460277567860415417907986193788620161863707306921105177579481545749199066414804125882446756992400781015786027279758277891847769443668297276787771825044234650651320703856806943910538183624440786135557092525659118077122447563916897649726014118946865688245911337621521327261424671762914062611092784571899026332103399013559449788509941593796858727125610617250727932703713531686604227653447864489824046538455205788168848798463625022138322205577981161997762664155895859106967575690046690226157895131605458948864155600490261314663241239186184807026410741870468576206655116799166448271996305355495541620796499719924097437050265156134041702197078800287687523534862964825090381948442960926569198342486992649601207949897466387214583979259151850941783408613171999359793860730082705944927680687763112189403298910423814950701181313152995441159717862153313094869916793038269106914610813546318482101209306976056543908759409350714599859284634422877279889850700521506943843335936881952538358573755700547496856395836442528109122705526806228896244642391355325126883840562270146254635718385040012374437297740723583232990237696886096612463923271351987612115879933326408904697188929610484911171199535619316539204722387744740535840787120463588724997086073086396806116452848013485767574704438811684807570921596352781705973536845485509277146599182409326847462091624697216874313415404097350983487819368205107999027808641968881545622637486423905983966512086412329732321693258289129310535856399766943499842002479709996169772381973099645190666982895683035317864839520169677756749425361820640001542497013096076304713964130699314642921354636950380967692050582499553425367421893324405962534634703185299213988489715053095085806457339934976673022716088219193586854219803094384956483109878823527269398134113073136263922483195786998004515894469166814316341702187594733930743579413565070129963363647247443687439563404286536045717122348358512360242630378448523300420222360869400788507920438095776010249672275829216604784162107580383294980597359338745964439837383529747577428165165650547304616455255531595990515647111112993400229976067166858639849712658171634433675846618545633939751977388910936024234897194060439887359574995099445926437406228641390356027244088391730809755414085868793877603632389381211293658408244152115467169925689784044181584634618624954063735688991936318702798345597865503903723045839270295322335875244778258510024269291157702953361398586686896106506285150840142752218761794155012993712675975156880124449325659297816001452287413891019241459711537265702337926448617899530539228223475516462016628966701644366279456404110916122256761067143654797450822090370791894348029481144976832860453507856751865692355153123393353925213358815646292645692349877477041586838075506934959349258864904092156488749481938405497403621956951313965053674712473688874697314270135259487688790244340294453247417448888913160728765062020159057910577399050444972640652305795885381150921575804242705438029819371885669841940674194792824539713704574770796617563820844714750728687864117870212526006557810486756021399416117254366405183059147252114847026354597385047436238015257313832218671172326563534918078774244196060453288754439373133986374228763020804946694626803769988107643870352700591798849212318185883859853821314718115297168158777272615906412619608742993210267947396120488134604345627437664052780770564020534334310498454182522155232585141362564190149017108330916416078124727894618945385575578799671279052545600411201257880487404074383569961761969663773110452628775959727801539709897106861733243744028750113932642831319939911738546770475192356336308708842296283112538204011453111460410635446727270090475475306430431618464357146588631667187420633140087084656885590458694434264364803299018805870311380803256134116766902605318774362873374936546688063303240606252604228615297319067938499356895996536305644115845055397706617364761584283655926728306840248215173704173144321272478164050572982464438377813929135177111321857303753637420191190563527344284041630973798331557492413452155891630148200443910569052071706588483488736834215198219909342503152558003923570005420781149056415241580271833570238559600710600238545745629063918966147012362816902929147879331868116065428267491684110096113750594216911834963204427640205706471834450390656621271347931452395043390116037663404979078221031382125514315567518402132790201050117828645489521447607618906007464856454243562035997500095934433962337837985052401793275792834162119018029675956298693690602683137503350386618404085812880017731801096793303568268186209703583021465949945829878078616998032664891743791486964606266815579264771763063757523757016852316684546159302195044659743976172885414368958685686791376872162267042226077866525248280341087440893457242144031387754285631826518060056955233487151073472193699467309632597422215972854214394536270350905483785458581768963944641605152537090531055579422942062123297931851421672562005992677525472634244609393117121246475728873528081155769191131347417524318030628584509390975303510391089806557115339133965740974303945213602159165670304546090776236064760025359266119193169172096409518329570698989213953388347738293861310990190289517637586921561361337822607134526208472897124102391442605621517805161560383769409918104674051168956810049992056258882769644505975528599434456098921058691648075768291334874536767856575851647005145669985487319666601060196331477093540050649120687921305030134877658889339879867763343879971291379266993859170955271536553684030289848942891232087397395119597487540592290846811949200951993170897682687350306741237407160633365596966851844278357501062992661571561798590497323680555420276841651222738191923882673241521676215151347061915275474628122452425940437001343597966527437991254096131645498255777041191811267338556220035966602294635401782477548447556919001968651044775590170844637321821363479244971750052806707849836390158395034466821579666328739672199847277480349927044264818154558530520734001411589896356094531822769672274405923638367034376129685025549760216768733790675314908830581310369449922259837534025321683786879232691105420788243326759942408438527740782386255808456858738931432492671583046696503024691073040446049366681804312320289878104350445421054764393413445147626022020222961057438591446995300350635082925329004746242763878328868323094808583153006078611179210897821739034758515810789188008571347809280364715881289712853072205601328691041391086355492243027345783675063066899236574245843010209307474621095179956134785187905587597518093052497417363171974668520982880293816897418034448254125616287689233688891784589554693812476365204386371428889065221239304492487316284217826894990037809774343043480115195546691496324140346279486019349712718108249108102603693290724134423915713893507813027389317413104852691031957761713965187910921815267046121142682390766803988648433308708053684754220157343755246433567637823079682829757456080233467180446077114285739506559209605306733277803727259063619349685344227890098162240286756874402435011619683562452764819604960741055345007327557954367264753100470473210708373883845488808412462884550501696038108740128227411303271278479171427964598992076688625514410158421295476536364505571695691019048197393524869764722709500217180624300633725945343330596160630371383108586766944097068173005461526563666529171973756135594591604420333277973725088770969292752297588049801161383789662808795007497834247208057684913756091822156905774842006547340002623377788216013692914072881655514083639281890272171625222058258312818045370200880924712870400134363790693923377138539123731981665096688528350717644547301802686656167681995767151276712683294316490719026662542528567337475373766200525864632327801029473974561434906382404792828614019220812474116916248050461667961361645321412390260654371840568790361517821415939624804749596181644041397861784831283246651847694738712791599600652025381257203520535953784500502996217135304127755235158943273262616063233964195511563528517054358980221708391815318197848478674169103501076648923199880254885438253021219335993411072345542729065727515767762557407742899105038680394270988870711885870029607586252309885168151088551683750138784223660598506502009117889447087379703436764613767046735222307843413266462095162374214022968155677115011729790652675739406080359163700427879653535311767431650433599337474517406299908853065676024709951216246710816359158767610021679972440235860097021861493550441698415840313310514323311052929611151171252362793691314146041771481750843014349457379282120255555806140052056976044229533178469886487722096873714003167134798383106698709886420825160347546167571366027572094433468496654643189901336333706662725728624144331449709562629464249987699942987043536734091620658148633917590491937690850016208866574391521454456327302259327131818334485808093042627188680375318689524373292011749514276385939443690778925273251433591592190910093070795413460230728247313127157171212750129384183972263019982386457496939817820068148264118540967161674475926788895976562008251895594611331281984326772859657038895402112202629539711935251927131337934899664463091019445888645830541533376814006861846836461565019467000121892144314008704071443262086931319554311600378376059926236457948272554081119976952423620218363867770698873088842642396221243875669745983864465579386415690804507418739473873816858365209290666790989220129187922178916208111224850026207583689910948301069404616244518927904572123638540731570891346332830059157291334109485538048559084229302321813346062958386506806840600608536692111620632530557612809810815658219302176705816908304957472706194079072207209028442544003858192141604701439050672768130920013326375455278854055655584397730148975135694152462624400411737808202170794263642930891757351776711793334042109758662463321962526778200583401536654841222658529322420480305493194029702114685792123937977142062335334661559059049515294397875414931889122451220782307306658506348470870269239271141961766750380344318024763659770459001454017633991443042868356601889117188012595012171760013676037049335801748204812392803455223078041464095380677838350422689536073185997789270245269605270438756184540368084287768223088075263389662657606951097752863034882458570566116355661077091532357864912413635667310595478863136857034963565390427374415387894553250312154872535746843946303593746872681189716985683573250530625996537800450946230407110639026698483859757269205848702425399280992138796352845589262518098380275647111169815511117624089336273673180188569794051426111385094644422963433907583694931174447102677373469389380530738654150047518490987875053831900878272385534325240879129151906052075861188945664691779964504774291598833067530194368812681300363474526388115485838243829686839252465777174872638696451084088145938355205681266407942204895031404809446511384188406837021711966949106830280869864448937572515669745315912943216942437635592509548022321653110444699833159393705237097686966652236009496815710178059577516604974499601707440896670691488347888783626457704140867897552383981451749074915407434981279300988010948035365396169236725817373007271502320457492597710311864923451576219689830910041475258669897283930726711131087601232300174026604894743875325336800460320603114393446373570945768625967259646499253332044321185322863168576888924600495123712811448613821355234522661545993040846708465894578246403659434071169438083351707288037113262318501662361321930925602327583199259702440566587810295002506610506489707952789232548159927200969503918213630807207212589314628481500853058667381613544470889451380024375609790526934329620796676916850544585881755663011244438587504874108123584712577314681437072505661405311836352477233554205686359025209957292017556474523212773898007733533914343782771574339993759512266096110575581755372824347531863115928949995379436083350176506641841523957528792307780811369241116361890047030169768026094798519329815689592267453795442847791453455827530706769537947512880910186833636470622564106498442795324066371200612571407008536687206723068461253113292945348380751017694084157972093714142255334148912470083664309058512666791574765748411768526499291596867039051936511733068784843599186172443478857279849613582668941677016794540815148658021299935956663164312342015069601137470913468087804304871120625418281508956626418845719044790294816104135945800495031381970374507371621463174406329681929812465794500945788771006184305971608695285999380019737227184303927457812241613648014265121059045565989877322458082072159534138227463659773429583317995704844787528838499548542592037194705451571103077812290024758816062294936407053284232410299440496992813677947929852760833894478546984308369002503402177053505482548205079976952988986809194858650939748737268251282672232114263058067672693201504938178901783873324392103334798284686681459868457682275604766898811242159567398328023921720289698571449423378403101607258463738010207833309446869513445240570906347533012601332050775605831955375176721769460376486180092740030116172790752471517883816902000461124136643912807135879627614428932912642859174695260582692378694647777429706152876644738174465006359239549668826623069883394160962888423280495048624116142866728553351291009961307208566034553555591680611256110472820751691360203401333498539508301077303737505277766872729495301188679547758272871149300367908115769108059243302961868948247448475438957947122866274773909034121325154952145437931155224599280355858078425528220135198877388681163971868222859580034719244191838720873093960969436552528733631622737838570666543645610331597291093029217881451945338959924530178331313592806362144067489294194188556755028013369792781206919995059107146256131328810765338638174788561883788305732119729526776463502490371040680145537240620021765183473162812686604591132698035351036278782366741863089837301533459660474548039706110153027838964753772778497968647000305374717461781537142949618406437744081367193507047507866443801898659009417071208491312309120536985940029069141226592465327758869047374067093726510507463989704336572463817510253603682065849323582050902112000958606492572310243519797575352508776191898183825328008081805990460314237160471582097537092258057704584442551950596442358661982084984768963450162050575139251200061740230848121790216685687980342966574046412033176283922338780400404973396667986302078255587753641685659288165090062278147960522813241539013065481424946908938111871118927889351556727392222326125611207273034708714439551025682972987015502418003093289553188403155882352311461947529221759227576701237178841874394130536520410740567516114137929590108369170192153109996914623131999765963665862393503857050384020050173436400029754752967020353555613202273720176062456293294866666876440347775972535850998410240089099004224176832190252832576537169774182324724908705553227212578213236581497091173968276186842474861412563230613012577383980823770675875502345397132808926928990521473646522434327467513352127245918659100102365629334820219881509934532571404401944897722667666164165394089090281267593504744065062551178311490700640809705552926852790097675159745475049314786979639180784590763851659744410657328005956700474326307373789250755060611874395076931156200685523969044980319212094134321159876552318264678760046890340409953366071198876481209200066892927594384043500804453021677978263841508476359125270742608545369644501973630086121511464622423562525829460304886082169803635356548305772631262499921842015682695464985824887216996467467477077058155790132493274741794696702900125741144542002545354146787428305652253149391453979205776804832291533152408629894840133670228321838684017320892573681998736477638160720458991680032538993048532930321701426695549198298616977896293003032080013505880626685115930498216479919833314927948057721715671772257305637847181947681866812624157183737139875526327069561351655590251816500157872688945086976214060997175478628464943693986118364002083483862205316360153465373257883524732770470733570782580226817483505873388835098202470974038006938527305539566635554694673945912373117021651522166768172737358843852248110846061431897750232225541016499786485867257609257403386882868824418108767859922546918102034122619048037451815093215372684966362309587886777427401980033096939671620579719049458292210120557546918375841739148167286708634456656813059770368953507427995301522134963288966405289906024214267865728879819875236124345262932843739146386261495356832157266990983118018094418697423222848359031220009195825435406150120970119922862333833174395156730241643323370154180218126987709595140881511376323236432073870122143949529520290961705597300494519561561125939177583825275297965643006057315468047418003167066092875083056508192135241845839615327222784224453856381594933966574652710990518267484324627332587489064079969440684867878867633965484246289152982597793904463184745865287205721958916472068211224084362935080354233650028934488577306332960136777259295149853129647645247478434517938734756555240868350806530307078282830371081032886623658737282483751988687519796717538737820916790498285877501009043989841581403073101498959097461107661152415751546327708823082622415542836634215107293780971977184292424013730903399542714317942611817044782677836439103583682394539667408304235015875081417123407016146780182468299456461504135095294398003439486598288885247190291385748472944393223681200186593816603397288650408807383872727820757551833720323208758812761759395564712965294400609817367484890120061734977383340741724530666361329635490308921404612434073553904901228217383629990147450493180906852898188501719438953454007256289033928378390030857269457332861381948151446970610900781274720017339045860449852984047349861196983434340108071339595507368827723406969770885924022225905660540093991204737352447129228117898994652817478332248514674298118897250498942541147333492944055407038533249144843320241164182610226011828443436065987931530002184705417954426464146144323556381095743900076797847927331387400593006006088614333792980471404119543708380695442906249979192557225350027923133644094401328576696792658186701460921134378077628450429982564803663522073246756759182644504097444979774809329344714525762452569470399652114955917917618821605910399057137523084746874301366020687587003343236584691400970870048948551432975099055404479371571647583901824241753374514746655563695768486145451212759166367916990075611617057237688081568947157335080956037229798854231836384714744532241496370002032235594332264089515997888538305528287967320944772111042161349571920046480659820624218931501273935044965228882966075392387298183760476884508741957823107465206347051688566160632254868845804201023477712926482296273728255733520339649282547590463916163936085328658232428843089320741942751414063980470962426899473038836132592706960579440290954715981960399511407991415537051627732433441162281830843508858153459852646240506204264433586421688692171268000693407283747686020415162088797765510206244048851025340058474783326650032790108532962397337675125889205124059064496533689447415185390036487586217197780969010606674259421085367294188473450874839975502553980688841348649426655487344774163997703286346392948529879826323600242945918171457129114922773951239435432341105475199304439754371113928589975804200894734468870300088539338302764764707588796449379918254449353830210104479146425588091083250448627268273256745397083788203232117892297165235415147851663059593127193145178787898194549756783510078291481090267972515212982881307750741030916808634223033282130312205011573764388429759860383676427443297521670415954924585341712837680453823650260544360957726642621921785505266474552316948798647789494644962833965213654459405487624888826906386480542266119956518673846338029285371719330294456903271448962117018236988135752266375057655686638884426704280551192367020015880010132886556864582359992177774885660515858261854649428670332525200173370087807859562757050628013691240243422782321653272677447264628278118701873172383296201846671216935880517017318570365309976221423067785817826753308378856595381019349870895633338224013978228815470154177265127665061616989836117916180808521837494414990085459986520125963502501264799950012430679470657774358133174411941665517949127484311909437409503805986635893138861260477722303604280006108093166740535185508658691296849593641367509399808440493865151194227499134313435688988779667615442945147226968354384583745110737562080337444250023041660695068916990222283051184258335469546551089234360069590835857681982254055272225553816391916824399549596948084714239625299991768084805310636891431042197244103979630037564184074543936845195501744359867194753733431996581163358400464623391578879689972687012879058742448782340771344065853550670306052425137643155363819069211262669595815007871842353774543152521112621676894220595487168186574657682988289454993536511914083919963243310242517021682314175637349439311812096592663922005628300141727685083347598247519546081063275079854827365353821311344913493213770421046591619733829251181897948418174662165427400760842702920362715046484255841029153949543955548854878309200188189771219347615111002089538000380449146047056812791924320859119240624425878945247514079939421796463834101760152290583922646956351284507733738558223777216600300604485356909558857004434199573225996829156579193392036530607369118872701157139914915434762724807819205669782083727473380106153478212841276363409466762651183406994347611180120840736407635973310906093569712748560360692047081065276949922260850870968266791385079928202325123065620211172759500486635644934394570077004300308738662121914220521474466486394134269761263498413863970740916781865446352055311783331609875833312540391980971242927572352078973981689651273566858131602503820914719752044702249833840890419769621897890834011219700317595396674354702856077538616233316504790234912846327949577063341200683974247422648935630064201962280594090688239436116747108111348932290355110149283795132382873150023049391775455113443592626524167293068000547451091867791435800423331052720752522206609460541827463048762803060056419046707267927146934738724503173877598017609059224986211886365475063312845435587135666670172346254440555502011151960114420092026952870233813709257754608844308774618456053886711730772381271636522334825245049143360091738096602095733187928718872588786736973303473206368676420689601334774289205277865704625010488735832159989852672466557520672294594200203212751756571264559238383394364583254876407057405961928035671927110166007851243377298466258596924507123680820334975433309313580025577715439211071945736640168733858942830152844059042522861483470256801044451632815993690759358536855475340375512420270862651373834459350513654559884914827385581937971385919585716995487687518611366639247077565670530394362241625223413439582072061226306809694478925595490358805894552673975947180297203933807775106346733135085589087672602616546638124209282916726662129719386771957455977800179972854535630665406953235805858063657642395576232656488270665291871003727586957467510317209923707721057951497971792291245391161223811752887980304880966939039842760376418932694594263815736289655536629561075474935501651154236745450494120347667451043463178184114513761451438476591297636576120333916110009717026656262254034653121043131844925435849074087301831741631712299458488331743983813481687497823338680084515381665831173649416262962581453678675005165122141530050756644573826413600653942004860833531421848661930105438488653946327407104231644709474776229852395075757842919204691393497554802187345609212612858035567094384711422513595452191044883203003372575567968492605212638149294291492898827305351256839068508342839225080051174195635595280222652776435441196180265232568019736731741066598987795976637122602654057147976737574450375056999487561342131856197834675804610763220394758222899017160434524080630814392857123587471178540579327789035604402483849944690909866991652849337674330488124888037294587513259611732583452049874039558796496204673606688358777179396852357477391497782183261514030758108996858956364549663094781634781121248014419792177781644169924509549435029351048626327714511964154521295992829936499887855119632083992081910721878129813632848247908756582659038390244972223344918065071372966709176097601957386993181152113339374292172944572585663044367469461836388213713568596863763485183217546384563748208706022284881030991109425268055810437819691768430931306889027065543989303458843601934015340242336953005842707213091645690942212892213048548258339026338079358266911490657944935253502490926601395183023692298047932113589921256434580735739976486898779871459887374666762995180776734009317867296594423653381435851560991237909897074657514520136710888882447976163790205030363890332881069906100339636325398685353757664079433778375915825169347053155995973709728771824507832127941522746114320299345136145426775863249266209181485388607409319428711426215824546017325887943335243695876378587344940329550425101024004591044613926057889100757014577344112714082265858368378638622319477654977012761212252549751507912186212713311843096805260869304621677361643746060958512015926383354028140818843146308347273217223339715611419796972331658715780341601235077138660766662378839419678554848277671925633795603551017719335916610239636996367252187018248787610808808468971325273114816117141372872884102131379873321876810148471057225090045328422343721254341999103765056829780338803402562222898602969010282475350249238935665102879814172175398695903652095053131118916096049374924720634537466157676875663498117166256912318785892078694078796983828164296921968900751963564705806313130019998149937295077341991203692294231777814879026235314423794839523688428086823674212229220173313861710931007092659307091320962676599967520344494195379843156003178743852729958129713152528792360110360222013334556184198970439016588739597528158241202095336416354333570840943881680922183179861725775126654821978240779516987684275470306602559447490195017709632356536560063229437062389682568774565766906720522729558481640095271737690612712673120007409874626622300747650212130865704721510670563682427840890531866778218830024394601677753861415659390416849144424780137275652045112456788541347787203592217771669420946454840444071701452276742525229858114480234583352178673825322438909554840874663705109682057146946899258673277157448109853963487351090536065151072060860876057356098775453121684865681261099040431969597478286565505114657124529836156937944588394901400538159527944842603791106970189267477708994296637905204400766343064716324204086762560998553115372012001229361183015819101273962201657447671553275073451598666734308758829352937262310272893255366907860485574193680899991058203467621862615669438666306533001310387192786845948313378307547721809211381442928974236208932121785238505046886692672006704702508208595664789087392816730718236320012465714828228926053003451542175619117901409715395321752084900058611489570497244022246320319712761989175049198725077642921937157451025521061120629401092867293583482459002713608406635904265975279168941605681207294043462485407056556107449845004729976491971319957769944588779653540498025095841400731498863047054519260700562104825825445910024782105876106492967077241718991024509953171138169053228701083222575757087303648468629467676749657021496054086193434115201989444785781702849809974138329385511675271926275180436976717145574816634804627713593965159034439362316681343889774616961479548942073165034951395428630913406913403867455657936433012018769282005960374139821406074165232301455900821458162771833856748381486571271383719991035782403131889681909380306621863601221018662362357472891171741845152032790446878402415758978436427234596509099548307850069042134803535604476565221964329307244386191785725310337898281116904336623396017916431394808903272414130895205419225171403240711506081975370195976567733413681119696699723421861022712177128967831690491034365491415992563018542916697637873096196629610126582436829531895561699228631480861514076563177632491431349273791729536076473477752891716231426002743391506694987384351845474398900832843177494888636599884996722991596440381983719113221548615746900711384923976576167828981717698036703813431441793666189904512368265843439407032134437076471615513048493113664475747343136549348406151515661204099183481360907105697880689276464571058050471313792158142750224377861189417894443094805793347927168204755524789776259767607167008028494460171934673356858374468574667064267512532906411782902566113496037913962341497311159653162966450162921885104945259051176810840956182535301601149363240345774682688338882595173450052828189421359946399595647269930717882715989897728923507798927110377535104030486653239495216981844878387887387568270541666395532322675418161734049075090168025234715681702766557078809284403434254323665006696094465209959789353424431769117450893743952649592823397109152246570736305991789821217825337749977381599830699115181242494832251977630469108831331596177955055842625985665907758998461438209924731428849724307427494905902501864379118938018346938268604585604428354874250749646809737765246256557976109460847167474587753936584692822033074945735086282685121332999134388031934841258362637510833868570947623778495431931538941730827664588932518137953125151156768487084021765378763782091213098501520714774873251907178339935115344963511841353107486914608707248492007566603006938642926241737944671475641250623818136417101087968803851679658119338195949553852119685823523323010898795246424061558062515469074527793089210640034370579778025402303211853909119434333005435623894280714974340357937865728028901298562594003490096857912654668470895057079441445156455378394143000708698299754124680804120665705697831485102688831024771041304721298560435964638794966462090842858312394968031326570116922437052543914678521606761036893414903147106868410228136486852164317539625397991277374042890992864297016938132251816653916906171284963221114399658687400612050758210093630958797788179690119798028316110981027942881019128928295313857953633085874430626341434189974115870338524589758343624212885165057177201315144857178263103008207375793701663393347014442361281517471333046885598144839159536815782465124466473152402842903332146828354525843419916817895280984279536060416402106154362756311758970096026063794032439080790884694391780837061434668788222758151208597664728392833397374085156315153803100454516430163234805755778938023678652009902512111956509596728379385861606297976520748576280533699311544523945902900707390568634963537717671649111955969815733436303321983832991052299396548769400891381432766508803756071794088435846533939396481475686843720084192266847710384285636553077290355112605626146094184105297019049641972892507463748330773328000048543588995889920106130412051722357436797805881011106327615814524207384666742362130221232853689360545684429720227432408855551989503454321487718035380971073977660406339707150279393438969098700718971814642653275229127050475024243926003035602231651146242431468740170592480245312837595056611183400811584288627115721793847803759283567728445706277872272304489151508580294042239752968224573936357956505381384757406470593516979353337126594459949621952859037559180995204547788010169072174002030674087095264213070626723800169905711403321920051471463505691693260262866901260394895928947518460651622226637946101415979814671872545464720684483018063093512640661810771253123054108363882259306707156308098389728993254053568739805305498142182795362097841546486666141889909674487269144720237205300221158834911096430621000975939565676523125635215760998427005011471672665301091438606323328619386219661079581763811027528110577942696475831115576516017925291459667516825390054879605023994752879856105414267179114442768751749327556017963834088711803266865629307860773560299752793779567904124259684352394359673342954097571080258540947474220056926725840473592208107653531175868007277153882221020483383509086017067754043505869611685867630853821657783553182536553965966405765002417776470164128352434778704163202152818260571506043939694453288972258757229437560503640767409130209811108894635877906030655344851710090458633658712229083278585842112330433485232851977759231183053246964072481596914738547772450794332700959409353799432557525962079213443784588272236540894826032511300947637321148687358114725270409003248048357806784691208689816486974816853780261871158209286425399593183550154405687776204105867641641575833598417749434631761687547276561691490776079653794725383121538167059714305248683752320225513657865941732482204055754569387864721756610887623460528453839435490613285141583300074281799410090525430093489484358634602031988658217733796770011145259430383933223569547490506817003174599866074831691567609865517333878430692623333198823307052826143552507244741130580548813249799827357331661808520281096254237508009792524507866397332232884130983737123817193277422683477454249659125223933451368376617786855209773117296062157780895437209598892928907301914629545374178318431670174003552373496100961601202857738686909137707199876990491419787843082341962149323063591111113053756764235147967962219091879401321997578365881736338974187089099683983661907217446807504386833934287677229772090641859276668816945787867766540222370194958030251300913206061462201109653358903078716927669547802465957403915891832438570470936139006121297063598385565268600150746544237939411674106147741119862393475509967183138780992522678742618974982684905032665313019485481866049021948957877157867435054015925417712025203472486006471920475921339308492383348318470289611084099399456210723871396162690964250119696649515617732222613808283930577540722439435979982122106718289349308090453401957082270709967236861160849474627854561169215342785907263296837997292204063824545248231828023434747921687100986539835550376037824287440877528671927422610202878589164407697275566054956557210831231838926260526300656850294083044623409886345131453199468028464418200757088559792546819502230904990155085282646711890240639854790898494523946616750776290295082685814598062593480064569485912964346403438671788267338780487768767361255957057876270997198292332727713474598073516497692409632311988076976695490062692603945711883222090533561622767907987896956215153272907909872850968134031516695267248411987230056320304337375441146289979089783052436064759740865258320158477734464859693511217154752670277544460694874253939705816021536706397026538817349247905076910269446016073029586484007432891250990948275860142482787238127441223947601310473001584280390052213762525932341401789391160216343749547977740094635593783197849446274036790850328358587510067003965644937962377775859340163036610313628360782180052046711873321553016286384880978137002018503447214626199982750149506022620068376596635504446461107210543882956956105912192466112516609487293935149485626198429948512386391391616301757511911504190535813219718487435237940155451901596187350183896325736292134369684191878563780613619337816242931436385103572994858978844975907693028429269961690792985384799992226917502877106100802823998329977131314327834225563818068518762216588841939885503372423236823110916231645735316484061938899371538945271495961051475486595212330689163983575661419313306867062049276764476569888723266574760935504219929303667277983689878135292386212375181309249273832368266180476092412669127294058482378181549647429299047595475385080243832399974708511841554442799632751531825465059274015602632605275355712678065973065679531937305597662280620353963860658877738653368535208595092038854101748442854180941021209651893576594994117426140889170126256296419306198908312136510269646850683815203781482849209276106152987651239301040114348176419789041489820431656880042349634912266114483887258995274104224913239719814468751783081807494754519806772488462272512370797505349767892118899899169088405399393786741599241198321458242113232244825765822085352141489350762243587581803317930391901544897184850750126404447385174175091942396625720428940745120158818932187447059343344590310609554465988759854401519266441550264063807783506518766109650281038349698978962642289091495009803508355126533504681797886583714596745256100990225214075088896710711905536823002473938664592595381879648510551395158493781477077641172203108337958308650946707820622158955242330685960812298057049261471174702643328047823033059025232069260215599550755806444960197937407879451481577079821194753766769607718859668069350913665754759349744523253819035483416461637875013829050235391907979945311592267893379318441777699390633741927784775948621940430110863265577423025097308418629639430971995356299829434360101612999022571251231110803253539571849198249199870919887903294128402386865885852268944484731315203588443206563632734250461965160348482122344784227366991176118787253131279999470848136539068776694102742089133758398470319512138629262866041363027168108240013454199857877999079004328281201947344674893372587883279210310724428236833000268255917382679792890836745597538757138847201173498129720851633510103991954304806409749629725150320872628257595322122380116168519810277571952833450257092928917168318483579568655861247847693030507495183016729029151575155494541681281020508846024767885517598357749370608855846792579305126485219692006197281989790856440474353243523269824660345025209540428137271873491057236785917855436821252897619930930873667136972111797721539094271935427836028839406336678675761589003564082126846462762286641759266040058755817093395717630595832299204611367900722767985355310716719416583662691278668928215637058244367655527059879059671114754238821698926843619557159468328068048396016332408967038815131263647590677933182300871648582731564729521881774856615682802463775438890028617497132253835977340311086725453312433276049290652384458530459649432501779805050597849959921443254752381052066248769581084424549110908268639080898053413219665180452286019730893711751063868516092568843714186663150129747566012841814295169970924334265352441618734584044965497100893016481054450523564937133022990168994835558375579888487395770866813258630559288173720557392749882209424276168708392509586894562319023780690915481749912337098085505952381157285309786801729987961802416649232653669369969408801761706856038636356436827181649218509244937228426878439137925991214747855506066441344596395297993563376891889225883776229039038796917850679326394645467124160503841882871811596214912220866733012117094498004230800753468445403583411654519182892446060855123992458185645661611054695544892904148144098274841037227827901273733404996874339672773328157807224090833902254437960384821424955496581042591190739106447062159710886503158518092277207984036065465914473750379627475221821204416951237411161438746656331996718530674661352619027610962256748151083926694244612683139041942492165799154085561456042271238258861380824378792583902952423893986178245123438220480371609816521053205710709131759855489605702006972905216768977327893767832198815237715489263347662080220934539376129587752598945502387296629941766817027551329325804544439230597025090802910526402390969064324660473727336121444112715252273933489293021814022962763675873958563834082784843676408442946576491279383179900128850790360595665096322599688817224628585313279628005273575625757684899350140522305932566256603838972346263810019516677155630127336828898695338499575110317731989481330755930476815491150052558596640277200545168453357989683394565971612845982638105947858787230217393512166593257902121299071832864871063652614612990729406860478595243814109863244796593855239684244033283903394165285964283252224242249471979445490670767402883413813509398808858871949628568561314651772652901567047036889099218840888411647135281223048180525246016579812779645909370762059332571733443340898705107580476839377433522305750170427837303834905527822409287773261094807976717091088253501028772232095347434547091007190519308142925835167462784398982567269983362631875826602308484395544198823646597314425972969158275102877994783955830845174341429300637281881331845791695352008215966880017447636299971568171717244148365194681418628053775879356643307222325121663510552917037348608178879792711855620088814652984580218302604164139693452629666233595708082526004883948645129370147598646295768723174963756112487052479660969001244185375697294627973022928851428462338938819357377015979697973388005649522623717362412369785424618943914408044674016430778058486670569437362081341359873669980318679603678663284278332735848140565139774838368015786515431699117085493953082360564293025872013374769152536412812279525020710463020691300897281843140285507147996948193432909384864992525674954535677955813373936345154063467304784504466825448594745115008406803363849150968994014648016409382378102799124085190690302688135098775235876872388244713769163552779809637494622398891136995199058845312111141198957230621465591769513424968301428909947808054538189163096893864038330370157694452643263665332911856034105074660190291044815294601209003381540078667931590387592774041025970367901053403466474451094666583879125254899302034961633574640985312062338834701220999857981666972160888775867936784885344460948959182164123790375349281586533280813967359666930040388065386627604452751512359979892146341772121147000304614618001524753330785982708226369098580303980327133353709208505482751839810725663877521892900164157177155438778582701326592958814279652198382980587129431217467922484184215215164098425648811048498347002872423709263687006209385099966599412929891397250489250574664968913272117056232516871938451923987802868330954637648876862903802376809191065169527682132327589580277960758738965474682579896027084224985827366939121074695006924340350626823942218210603486515226592837235590700170184072332387102266869404209125694884629993451938135150505012868414590957732597603535623520989791874781039808458304677903853504537323733708727351275860373596786459438741197818881733068022134972753661506479782456830820210405601915184999207915166626710210234826545210121926124717044671886071813563241291755014671540471908079588633765203318354189269294470646457019782005646029099924603177967045839258000471064442358662488966200191413596714348059353177767783697643182729898939746370790460733608040708041073212361571591209108070840528675253477123363732201381005153075065198970720944702372011556707049649950810982131331484714022371472216297820516006573959291497947552252517561443829197280180310062510178376289996508477799364344454029781779627155296835589743558353286676607890861156947280739797852695916559990327001296454916758664974215073301584705577509237916269340944851180045343304349044081981557779934169709402433199502159189341254331155317091066626728652191830030510258030247574576290381492420470568754104672165748852743085958533516901818687797583904405026336289858796919062254441469788157565776530006398769159760738821122070350471480442916198727081225330975288855070845452509029819231670302708173924572475779977220453014547470191736586224773971185061706773711627979346296756014034844300585835944394635847809349875149507130917273510018344849547044390698662286936848110936925501542837189847839225241073832754950703762964491054005313870283547614625988512272140517620676759126576876374141116675232858131850876230704325122349863323498309795768916248833693571763490936034088575829173752762592088430542221210508905349421431701379220531327128735830799610925693670415565998178663774955094642760998561736966491942195269277565383954468362987154293269916375844119992145509209873718233290754774925247577949002133106288253579065760098381828868443109290430042054551408349026517682278459424070463169063805305203854096345289471411798082456900222247132235490662355452581443292387834102682729889549230046990948931577252688548393936616726073074067033938275300832906679555501848552151447361251786735309333310100576515965892501834967290944275775349251473616431747026522188491678166786689742601263467832042525758945502797225865199063232972441356881659405504404459007257912221520811742002746810132807572242971133279580489096350765708436182781892996714600907088694232534225123934027786797739252004650962721680383979941369570217746592970135499739671704804315639065593220271133497429896167781234413829132012931138165043293201102515833544633964819284950331370762464803889170068006760595953310009020060565047406735342741104221362205145275616014356238243500024294692555030778606643425513252539895156303004460655250431489022882018371313995279333268603952369171041829430533353283837353378001315846108944393574303712516636214197704028215523174003275387455620313594646675930348903956485064986634814495233565485427867294304209450245222266555036000828866983228349772125804375151012704843978445671777956278941875869048997381399508081439608112368451474340197014995977864734990854804632698195709748890759680283327424516744856522145314554392835443978782739034006081730403413892442761298376194437929159199404587532225783820690206583553882922508647439329514856552999333250885392284341145544785297664536586286804808783696096536166324969226335317931742648340517304107780725745952414933027426028886208091945690296840733653951478835814708710723976402823272624266683229633729480116563156584454202536196795082155135884223981674995422107887708823535585562516688024683343743676254428491289728288237532853803397067292094681385242582996934685672593193028519103933116145119682209631619060069850475663606161253835376407119092565985914143668800385246571573081904936998651155879690404714769977551541121285782889645259398279631603408689467687065558825697494938000616682134495088880546066573346879051625188243764841246519287344160057519511227543954687480954984990965518002565463411678207199446533458001113541029688533664784296594277809432008817669193187739053485099274762782680314784131707217479278217613587424774468475352768888312238739440855489050817100487957367139326887530197113490429302868877389925904832207746824778963512526222758116980922917481870220279615261522941945625809400371247894674633436766240912953550909274886002855509093893503014379516101609441827001830513201393542925303461674685826107354055499110090066201038732998862581108545462037161987199575028011308776215078735846140365735762581869551723773795644834583512625367803084174953419376906288900415266310903191865134441951515434664392229746495698285745189373982822703872436165716452079084896573754256699052084847414328857942834051902907220813769075802163990970604713065558275529785875309876229512873661611137384340056393131458119010972384642381658725878873978954469289674071134402502654270526783110925884197532464010692034832916965409278635012136436824182719138980025629481281182996256182876863510204060126701472294397870010807349282931236547349719166453732772525258173764826580321274782515774929607041608107303714634685220908766262160357355481214092018369927308406321888319108239108206606754261637597691355506872147216731042074398915472942616104386938216821509724741140292930191794603065103903736202868182002900543988939815467658108852327764185398304314173195467026048770678054789018751125353904359450779507207815198942004677853492577842705940625965124556857786028233563669974666719456613128235077586457694267868489269805452141198108624222596988068130712653994606724581692692684275627522964693767740215908616840279531726085355347032121999042523058936821925050707083262998903690720133573487929379000337781667856778227694472657279343947877134412284329305019865309217493932004454839584741158187542916098747911173106228135035139565113635233412838005304881649371071213174277843162120832443178763885393859638891547295299492533957176726088005913527711025763831128833400045555761243621943392189781664496609770652970190142954271244215254069591324898561522648176980966564500814219247199854177843673136156266246345507831662542045441522053351298053446340294186347667673946470218230576334260821597058593066913314567399467290047019490564400110156243008869923776346216895427472608490725610386683238861274709494633857105323478320921021645445912156300845411338103171309962643483759638181412692635007260311954539265732208483545098324390071097408782131076392856075313305760935594831507078775598900762146484876653871150665989680689213411897795757870500951020146463736512972093826462666234724934333054815429706334987726223010564143673476218370613848074460143410987204090802452176066512643308385010005523761847462418227417230872880527915692840054940717841433586232936160150647552590814757834327965025351046275490088638110570846316993313552841958044187627636784330801783274715673291252366944038480466265285743438297772697797707255969103135582646053522607439274825664758092136193857776136516699104270254474525300615357562362328582805694086777699686243813259424366686215170445436301707384300073458986327571188508351397849411820498370418972295185512173451967478434929481974840199375981650274175124641959057049581296813640932264669199572652343168740606472440416297168337834404580242596352639635884981066401847752421630556722056365542926944916237111955398686107767594493350330510417719321805833859328890289961478911044393077843080113435149300556670242491082470513642060132244111234126228096015693573590704306227233573494015971432625596309434375462735954050457181360855458051679804970983308819692226465106717310510935326910950350324299122077473439752947936718363402445470445272890341786839556840122095918570346302361090072158357525951412012209504214555269768986175907170898628685877125667020240500857063641033261459137992418127075654442501223599489214587892317373475887986722050740196861706800359438601547854727274464551121892989991890238926908776045045800052281367542979007941765140721682002541090995503248911904019274315636284718021353653158432669883254612255642488340613762147134396740409841045277292228090257035419823324096392211072818935000102894461975419722547302771247841588151358603779562904923327870864269118881388160801904948742278384384326569615896707894474344972513853893501112940187035285716566745182743028407366776180182998701091390664629864989265340958681142821745255580071692020874157246828108170903550064634127967253366058067182180111476095103562439300576791118180388600746800264995752543428864419208832989391282078083163221162420018364075762178282187837994619527547056301624487413040856548386635310157427310887631735497567173738092616108483895595579314442544756138964706841791350925015442954895674256899972040406210059374372580494303480253568197168566174767179012560987751203063951632515363498937287868229974475671369769716635523910662784491426643237237474175873742542163075714100235371752976912893149005581502488926827127783807623727180102921582096440174030651928095712848818399897197648378367632390878415185119604573365915330684862581704220988427835120949559284439272674601637727605512364708607571292604983825195408170267902787963026133896355866828800451858515816140064369161684379159100794550522051581571571163722704577357369764083830658561442673310183324534897561771460733420134269682281812009319626482270240069248121238643811070653497574256977922066721889417964372027072357201341889051642519905452951086797308006762823929263953647685711612682436931362372399989159384663984095418926204511544263959252335119501512327478978326713064782679995245441444825840943571168110889121376658021603852669600218749460552255595743630086553918113995192153753216950205480881815151135432279445643776136015098014191669979323949194951402253289102332152296187264760265040549059384199142418429634704707827423788466636957101220961391243123468894538043215608293393521242855642699740384668224484882340649948688361822610288577101359659532151575717902450911460212817885700461243297371151677914820184813511113303874512592113493696105101839510383381977328289189231015650997818185199797259896371374565302403255122538178710934822191707419371729068972001567609729248375254385412499990942897952472495907722056161240759251110274204175368210119344371008658866640182459200584586056392859468961892684460397497394972275219886514203850381126986251969399017771928749573021362976771199062341318692770711133192660165834100202326588275896392181592080578573120147303302221654875862744375405379912256900550206004883484111773037245701437187520874711128600427658585032114971098074823288945237982092432114529584038088926582789418083404383132971161671863510231703460381113546739770859298499096327181624359204963166429293268449254812072559567843065423695204341736123378459996582125512528353549047135750415316831491790503415368943759975609461594729030983085480535816890099924642389661932635840071489704808167453238623764874077488808520751421288227128324087983237519357193398140342990138468701011633464548946066422206107862706846109772139841390396968932206592401344037805478126503546693858109640260422698064975425552413045196418229475125984924466061896038791794949514539063856355804387983919187894892790215423428156143432085670515117371758810878645906577094574921856576164507678746221940296660007241639898704076785654000929321982174971938872553550990957135063496417127771035925309453770188184328250591911965095108306674521535606299750216519032307463980709362693097416596873961149706011153130698338054325550575118825525745561568536460746121497926669714292318508397930503227381165123434655401707680314776912198047945184477737511401136338534859424837872300253727419935613019839079702088346703429253562945518868264116213192470806142718988897039486087717874756239540462260311062375026197734747835107334691645205155188522279131219613491298075553790350495112590110834802583910757163968351938764530437461846539132514327536571555640387712257593138644938011632501375597782833973924857514090190632443913867644476308057173610844709356816556962328570413629374783528342923326569413098266680746123798490363047250371345649886447414817701065283061037532893741844692223980061896281711478635300797749851651537350607503008215113365836644828240956788160539363000178287007245140244214960303374806362564680363637538879370027963053464931740929749567279829637175424007888898076629448658519311562279709563791074544523320826570541648864651409609902344331411404120306088848427935938896225747878858510570286066576837201333947201350495454178589584646149006293626922556821768258720031721370012173244556875671595234770315070670404779113649092625024605200154112589257103066748801155038839777639529305516188094722228847848576142667465498352453657549608560286064786697470556810557560336216975859988651222556246969639796425556987034851587088691934260843630323814957710137647552586059776741115124099196881351983457659796703919397661696750051241707878412552375377988382740113520100565957167203689526760280972367383191804929536057908744701063356607713696812373300387465482912938481996550075599740218811998593581646540773169033094492575855424497676067765450396184842192045678842143385761743781974001332290321235970971673270131553420628184849266994593098382228825528635219773237350902312214525202367845892598982959924223748950727560890334939431370985771325191201438523248138289681383163292519430361773180103935373292126452705811290088329930947964372466732731186883283161281226589828597577504513034300638890755356258225947610590203413674133360435387589219235189237965543418284728061050218245048637636736081618334895880023238919586264088326610024032496497752143852372881424426142314026021878101169650495660683537334758285261582297178988786362103184929816344932547432273207317834512248999838859318335026431961891220809757581397602304792346978785339204297900508045611579446291482042628633616380280351900010493103002170299201373027857181543562129162553550441117759933324625223563645724642084808819445623926576905902613452907980184042877111472263838770931131882318578764416660108418257149790690042901655249364887312692098480248394882415121665974383253933519308585675232824217658675770112760803600992989422994597166350845941542752487239633784387100126998183397674292870321780395085947361989378511722308774452228690625694084211326275457600425009205967788456609042861111109364435285851668205670598368944445243537381106132418002577547178417877857104305033871966121146805237772083604813469204184193018853453802524143187737416539613655632537758077315734910460715827240882530704577923793408148940082699579972845934101586695457254888525195081221980687933611538841471245269439354387337696422641186649983498455229983338278722699991555646963649745980158188128935709689913463641728051982596972564348854129438067454128529009787395078972492524613100113448352876009847678294790983770311946773718814774842113666498219675733329405194267007083423924916558392353108122432630729723862482557245040129315926592858407891906925140040265080343450393055909516168667042069642010732886075366973783411328854357140773281250402899234167494716971263959995349312450496099398385927217762824331326139040519492085409272570042648683104854601417284591170211682322089108860045878966896372947524031748329512873303233951001617223819763379424618517930403154156695877490004790336243815917705372357640990328599584719838696570152245730612055963658134389067178766855122770671231124346232383718062662008883944777911278959722157756710634054210803563943696403133592430373675892948502455168376184936609858794546352961462191583906823542930964884029141979963203864067421349191943816994358692199265100525218977020483160232996349137770248028077261158318891596431522276908429348655876297004239134802662074691886411414927570004591730102604542975798065464971435624138812616088934013206961413799792775362509561924203249103569782980315542330181296201363613632489603001449140023913910073237533398425029272505553520406663611625987755655245898046699733892426035715061302265867302822230298895273676960174524171272912596008937871725069886886664039161360478654427339285749253907721072162642661349993189410113728913766900026813107846073836510540146322511196766162628640750306550843432579125524114466322528111558442091967173457642856220155495040338779505867023494675099969624329289123432253646206816781864827897260421259183872500806761914586062617021974316270833248094443862157772529177909182894577196383633021036147903111312186869152670800794069025237831000267803475271463263357090788821294710244956878853742020185930005025717854829503741215737747704365788581933401734644832645510546359086131681332460580673487980814321669948674624075926537814893107905442508863600483883495675975729549130828732956942928845006289696634924900976473058279058937501164595167459697523993130597006560970225007785382794564220058249002891690867579625337469086807067238837550030007298774996141605858251075348938597917491417170428800256255974769208940333289152585175981199680629387369942302747517377340179589851472211394258691930889770483818374192496260427728862587683703989331403280698056638128380747683838294934381722099615904143759541687238486352487915806915317424692245488090967901783837382500044410948540705223309815348181602299080454131369942151072232895169801314024095212714023789923795632108692420461886291236208277738602058521436188671907214224301821741084186193569870839537600027709343961105443098002369584814182507619062524336224439297006615691984743477661575614146203836748924383694639880043626260442212699610246638932901211993826935856528231063641625245774716654671752835778388871483681223663999459068328570728682268365508239451130539322726257156847928153086471261090078329336446073980972363591920512531479210405603595123025690795850279214724309563369424502949243744901454941119363033577798706145097132056877178673724062485611793886359231872303920912570064828252825451158823921502407463354764120956553449591163455392832256470751916931358295566132283546759472585862310096504684211034463882705777094907182012097480117904954687977077482378681867815505460620188284766848803595543222096389072738160785436209371104507967378770992417298342852644593134240108394241621228557789918237338436136560298339299075976589272356453840170341734658135430139775934276345889582331628692389683305354289994260370133875145292129714774702593281917197370366778784145686415429957098891116601875379065492792018184826399936879434403692409821916126614617556818492831856207641345956247239389357702683472832267767343645143447170102338705113774596011539809941287778807529579846336400090332915736458234412666286797260084649001372325946066210536320264304433277665608361172097701234043228698951872096649843496551736014904664796353982904759799906603664310151314263249775851217388965792345893433671694316820781031938133127506130019621956517640358963670590348729023654262196848028243062194395358518019516801366090411962663721117893449952201840001078827427386047551581443128284905274972843925843868600943914527078282239095667116595106834345843933347067614129495719950711963833614017258389237766595525774992009825634149088386120176577548430280922533768512216198329536151458025492865407020183175295758872831590166441232447290576347490907175397138155991555308892660294253950569166094118325534451838875698012475470310995231582898308933484697063649759947295514738510408848206409773961772206892165555436586386856193132452521986410458892246605283708812532692264630655479096294619287997642572700490624295273533402302269839111993053026879396671168294403084964650517690020122892809705274713163528212381410663408520424847333438636786915231585224695986859996076249591441274089504158421690179206741700986491428103648583131527211809062748731417736059466800430577855199727440399588013448451152645548188795711184524891106735263416961071286376879257539442303628979293562767535363324114563640048473554730740316359653868782462403255086244569511868825838303943138627145367541692351497322139833638519027427843690853348032049013145637753348909240551682532848979545148195905177566090343065256033062826518629234802508946078305481145823162128806469358972288458969007383381690972438183977965535234901755552597934056932629917306522622640116647587898255163518599501665586001675665764626817298751239155225780642249567075575798675705853997548277509079902891149618911351248351523670161571406291174892510933908024864853274989471752699238754351153629320221687200837569776472882172281834790548578000341455152918363075928697062817443076605563433537426628709594872555589816075223996583090633459976743104338959352599595795191741086423826265377333204548602492665014594401889588708598845814898091125319909511884278819802138730216680248597428869276582062542356971068349961889890181892693378626223807524930339432276340773950424452931371322502619714665726852995385765910228577074274412707289921596249312006544461836731219837316183040809316059402208144193099864917531079657486159561181217335818143577813666002509737684163694666868389486024032280701621152392640448683713234612676567901439014649331369933907427130605720347371733754172236969608084424327640564778552309956143396012498737209002336810086862150897192923887553206907341151519526539121074799061279577799402487590409152647060649048687775965465678148360336841663562834504981017391301198203292326677414698013611206974738097488256088372012608218746201465497694479540463961776391278277114363603315878210940065399731294856371888522150516871677659458356812389872911337366649097503341938605657982639175905819112210392273078155179440738585334952516558425879345831156391299014884717417663169393465176033932498038034116375837521016031375460037810015724667527815704471408981289589008342676394843484899787166542438872138880259648478347317267954445237096149735343041069475274834382495442743752437283697647294466535100726726911854638281760428933442492432617867094751169646688192142655655057403632170867169736069751989656034197651271249433906642724646069873591239266677994172766339513528061542748836816690535323882730485165436058551368622108481973297127789404430260436852044816834279544177287860418486168361023943247479153187303692673511102448598895995778539115811535816677527670994386354345841179540029387043446601301502431165657258451507822788486845058188275336024016750757651490325936329639840135822220924580877527837439966830068520416656064666055859075074500781910144014499961853188673606533441169545061130314306185954831940349026871041542687484068505410138913361103378095442081087389312261104515576879985355138427624984506596460587267000668675904676904077054572952551143077705967848558853701389273082746867659894246763864714798311063770016939684653084558298763566883728282021257293472409701254495725461632755253390581624800357059949568873681049465687575564085277974350959830929865675334596401656879353147610866392238610753767548374574734335733084415276928042330986344190945342615259756237266220982516518067733541039422959344271643443927212553754613171672762984964314668859963885613236753788036961255686654498659556005325036008295135518272750078032941626593388341089737051847625094726497538101040722263909522923827401441392675160997003632040544138873930586531166041640407498288781576315235274959723120525339144350151718737597040164029245961953435995809238455288903000451766218571875192260841062399448549636143620395265338856780163482485212480796756163972740768028360333764743281871727989363961662721334836745583509841336390118788039229554150805725153723680628674855679993048209287567168619736141050623556221482870485809383393779379437835063253310355161948777865588622682761074453881505304380919260955531947472027279580412274733425760385793823821516953361378689660784615325726531156042991997886191480577371214850784229931698159917624325631653361999695953431326924546077135152427260841995707240322896759500678767485043637563419123422193393057099469679777054664470246607779552033634322726004831581993457220371436105832420543980802853294883967974878391109171347957739056067162893868742907324883630133958159072333782373785634104662427046279014909466178625461351924348962538186557345471045734183409687005538853621455446247173933307665871715103129364378309842842368956261527133586998065352615345616000728479467904366160957562711676738139193485399237884258821076448110166836013208410445540924894032147886267940206674903604620163356365515235608420444243196284010817497811242956361984649884559482212741759838817027147266978153434542328268271902647246925315345879357322205731068074292928705997386268660124684752431156776907277879043578811921725275819921391757379568069613619345713268129134759614631754962905470507676038483474181939836064529702865729081744160112263507908279502405899373227494962290873825671091534296191402688913229991854284113942302026356554471397987399737345931977156548465675399381451820373081755288785861883158929041531958694921838357472769992876579225610585811832487816614362048769949533174505430196437106365908789682269928321947271839698750388302275354611752985288487233007494734758705353834413402123713406785024240797529272021557049661715712636567718487275443653049172567818121010732398511315874717391279490015811760504875603660122194615269089780731881816570607902894906315560721117364974436019117706645056685757228551615949097854014478505167428752104383208878718917306629956433517234117306203231129860127663496666296565853016894634994831372420428377732821580784070879885639925091056314681584745338599333696952334681288223954244056845140697506928429943006140375644959496981581900940105790870764841443857626031991736579941705968907211395690967006124768769101304437610861687222059177164483288121296298960196239384723535051407791176316406195544309753156694721273041973215888344645296765781119909718867333461170033909308823221197506960437914856517344265466207717901586997261073709542090155809335663520238127510834176535897702936933991381286899109843593201115234998942401474769862903077511286878658987605201705539105118687832287288122175338642391775576682334433278268811158557265717842193396176099494149499153833208190827158464743163165813600621804786569519794276230204679572464077310536061746626672400480960983085613417007801628496172883776279086741618698719000878415351159133922593839237641136778628170513447802007232078264715337066372587025748331020324769848515301474034003714464278063688134418261863635114943231707239578821869222395953310961637421460630969425010319620378423609616160476353501900270192749551970587649817695246073922384248352719443089364820156492807160704034462912973893583670641428524397122023550842228812742082711596421744849068566735814151212421336194902326352024371894919892392581628097420880151307373211903358147013292878053722077263470162933096195309847863594083688465647309002276490427399603238187931563640846180467318784467487250970058289482143224063862482090796362522520883789125701367133722283897857264416484757799350375067046248758935528690022403680842419906473624911115100318320181300797467907514021728176778199581998371482397123984384904493807718668039157864892813541928222488557591906853537414862368307150518128052242063277161125515971792616734988219505280742051595233893781462528759381742968149905529987825966847623133449932869063605506032045197643072870986310979677590554692292299012470929757196957575616598586709582449288027689250879034924236889592662909345704614283974583799502363507881381481235033205746494528168171995463021338765319202944061781570422450728256294438426860735035180888991605579446596344336515865181151688389988387368366595722212443084592664528747073010988262197010191285619993901949471604792572430154799491224540154163533352504432988684349933679458863556477971647319156271857798422205707603735795397381783422388235157163528350689088773172384853832081252017448889815102858993084048046650402864640278177952583258817998679843270828446431069120446061735857578489772038688057628605315044186545517357381631137685633263754654824021071062080958166508913390175022106300572130320250699933043242124777695775625619054051984133150705076120362668628477273633530073305871168284538750157677236123398187252786771030286645771279005503153720211526507570343600756501700643556055485436166537444003842268021862025490670415425399238882979925229833888464962065419778232423618716048285599253014248994423299706239328136587083215759911919306032405071354482678175281083330401035191996670534322889321924670103512067854532876485849283908394000674549447017118219722159968811767024061871720337645691742096050790612420064069623717187137120754699614144870125217303389045205040376737200014771977944100338034741053004200591453138197429820389109380427192340547624412931246257916590247351943575987247187724771654480584603469808320190363892817591189116307398229130566612508563237006399367866575663865306636557972564998989989632479413637423071438970841135471372255975178959608466983509332507052970515217207032395621284004312740946632161173873726825545252475496764494887886474505085651784524808909369851108376461851922446058036952588427470119311662148942532218956054550847698422386950543138271437221315366907260029512434840119270574565672690900346704681286994575301828139867191196703456070257748516381326682995890175378821671302027737746522642858449441667722059724651059055311963521236609168606796044799421509362783532532168698081295497022513519875803696875894666036170184803086792514185920987116692168936311820487647589839039593304658264734769586631651974726262239162718542808789795955842283913317832348866861035879703666548115668396260167573171953684121921662589505453361816692269672123472364175023159929258342223908956384963994931088063679653560116480548586452727741239145793388799664422886996126613103492534731361726137678126150066151012183330400301646207143924664318352554126968262070801267651672478939325285561903625062474486174847328979459167285512227427970240949424080300167078735046420061483656061511005603130854987003564114014875909543239347450401807402906692312274734976758616655732906834872832442358337915524261180665752352579827580974304277790525593333262038333755760115469707414793104969834572639272767598627620144351296177770662137786171642779504847723506735149710310433828773234911209254212836607995943172934438991636328480747063297041402390686214019512678362462656855029264105472057931454605674190501070648601828788947490022968465596258792078551357988223463368753552664665670801536825669312270283308193735231385616524408660160105299466800132963321408591119614195081815536722433929846148651240861851303999052209753927327127858256972674414210810727366352865476112223395083817455019975374647196150881644488796027370857129164413059504305609817814370621452481825990758289363849229924194993219810940373274302533669768757795860013373925967435436435144534472609624064807935050505026581280599795558840031729717446687172474289919726726654807021399275730704774191244350229237515265910912361099196773893722753132542362381643811031391989927401273510883108550086431224916508549343376709438794935944855818561986412720608490323170884139182113007394146478863626956049829811746385528404787368333199431304632995378036864629305557120585194758327828552608252676558927990244035932629656383374845094774169080391043275604210287399680496276395696486776212205591213786758825564402025869333094361494360354802048108149568733909793111893880665664351813065610188495113556581641802271015901769926554735286630730855542825747327679295003698625703726910027309967386181462800073603635666132738480730877044330482249764270975047977386086306674142182316793052607803817123623990734568473742415674104069493318519006436759862163319009220719744117368396661274229271338631598685793996656854672181550318956721319179988141277396916931022819531507249414115480799473867207276970889819752484934709922260025434537566190858867200554415071525828611718495009810961056656788927441006649269954975484392224874703908051863130691403345293892439179006879635413050380689054852105628185012536893528018959748225269627665827638180405755338076682184112079773826710008845617756336342839310051521584794441523393848142231354346508977106824057372060507582656860272319385141337545243447715143737172480909776240358279984150055175892548485266255330818235752862425142796322534132257776731861524937804798063948243729451836441443625116805506389706292152523953517535851228786966916988976044828706221055728310746647332635826263443874730676500597865136525205621175790882790866405357752805676690841805665852643905056558899635059648845972925895383002549759356825969211246609938089343819895896748726759524615742551194877265207351294723582764792686606029627924207011729261884440952638183605199000408606698256997530621620758786136025751244480895980660251336027857737111510855452985552176343786886408274868491684379589938704124281866199234147702313225311085056178503874898780348842252986188101865055289791069572644824668827263184708387633090386725008829939855090262935592480365030884661907173184157491179098531802107630869634001356583608589604788349419991675003704232700097526003889066390029649100151807749981528368473198919339366014098606391505194300101860374084433210301674154605119528168345275588381025748609189301028699028027217491102322036119820545906104539733470101120638887882931751222448672590181257587349987971602628903160524519993039991584068555621499399946886678286237836839958404506883937133873617640163131913693919976068939562252427129600964345358272578856707588567576001972610622704145768705981874144578890476589502661137618813779046638408805110172825579748433405588743012883161098508688768365048118990019364652135430170785109650700198674033981478498462629585286538169466655930772386931519264540320812037113707652469017438390428845737495326023730221076954668876342181261250508011437837876276715150182196793921817397539698229472666540377288239603895054371955665265825437620021112627197207560057289436338625406645130145574911763418056672822864130261207956837627769672593646168897872549537146245831937738071691933856037126111841053470984047206415419571346457721421911110173912110370590135547791465703025523598322029855144196215564115964861967729256992207540205851575489686473120086270973586183091148877058303629954794382154926592305933371984162796692924401219949775129853214269061888339328426470777470068149354714553953415107062063098643772580662968724008799723687624942019722695388732777967463696764013928441708055582771149021606480444479554187710718217400541161559900742854993373478761326944543665105470051650380725482687548817588593291871405367110468058305857171979400195002144072126603560260010301168347573534359942891861135908052501008020037062540764352726573502620300084440814776690259372461300802019430313544695618904101269054618680988421145185579770218427575171287698711090966671516608145589471542037246550417153256145873507982015108326301907342641980404680970119717226824952667090558691250343877165266849580019127943116743321033605269394059193677040712953719257074863785044502800015935489480517683538813252728711081919567472729204459001782563135708928609810385296126357026355422709106520865469787303886324824572720304509899045768721302333076878763541871198046108555995038598267546853711235401076142776586012767821811268164293860192040553289816629130742622089480152137866309292527202211299033095257564754661875007644099390532326332164343419234917023172307905813873115901429693314306685965789663383884898989978406621972535125161392965877107098431385197291974588706911961296434279750289979522927897275219787518260350371271736745270011220984514115479929537087475552987306458632999646579912620344858683726304576171137698585951585046082096913222376605647690929574750123378202099504651126523545051194892361979323357859949633699593886823022783442798071784007314519431047663483938706459396487350006112260461240662841911305490827816676622886060639801617450664929721740272475731954922246222514818964735150990560206512098431819418732288781733715740994062500442201615050584545294014127685530280699632728274944097749970602317971281604341051015086532117682341481859804290684248397874580480376042429724875779126301905976280291018289565776809876214692225255668242788642048939489152484645692612115341082076171593751638684878244100935356173762520591326415184563192930897423098360611834972393432552393345682850646860694070784483885540178782106472168486985081788627113673057426582812426203663576565565784054122807427825545683606548439458851414635863884529268725390275969680948134995126371401061838217136072385738315513478436409678186262731682858385193619795908469363587035264925518846760504276524091088020172275292199564369030099264468028904338409303714130939978424449455662715617899275344012230732477958755653056087595699735429301985198521627070560080061951052659663737209462158233970446422189810159326881972934354023448420741599448333636893306038891979706687323424594249436451965636848669149060606323751437916647679628877628832751363729858114527876961258391332382888487419944097400257994234989918628346253882766538711715717382967818650633324726566036780564038958221971949253563832260760581252945274482748197736097527964718397069752754090682424322765078247892406377970964779806832947889794645674816277499138566261656484200299035296656321973004958894788835666866194204862133876555011910727026179678439787544940534114226251893190328898719276648304246584381743359332270998754898350272946337818454990795793708777082124242642205994605584125933873589693780189367207877157375553390445642225865012591970588740025392593587733304366855206633413998608020005728723998023024640013118419012074839108361435864070049206974924198729933733349354390232582117834765414018652000681958336975280036304236314538775941286064715487914128769744384195501241897821770460475665511879539440940939632068536190173445758526760258068221028709120250621238692351596425023763188422770682506887762059238270303765881603254490468057781652709666550733403671873729867492576141644955681980219875547043856380371542051117507719274192019882583925269416214185890980496261605333367747975937208997976603957152873350101348510409763044417583883899743613061084961657266881583336883345761243632508818949151533394648324954464261647651664967125271418978932143041230250104313321226173779026716257708713592573236020311713442089870898019857788348585539810578028164131290489908403006849693269702368107191379462617386029731366837484791402330585682123072295305902676294577875064501775163572247913809516496612031092915787418810086854543439994620866007161709059109911582018182938989988277978116115816641725525583867217415502967401999907907157096271325148159010932647848374471471145149689525943638559552852275533313857341228196785274142873595024207941739833242536879018711332035746453263492193762739115845273105256443461565444734973492349610792918696074547696294992543891674897219612570389504792415886313542306544031433354292740017516267214649809639751626598588515813340171788434851201881199153577366436272765064611939722991182486164133458486608026055927725554990025364718006284556319641824615177612203300661099046434583431807271440394317155438546181103116176595697677854471490256535795988721385292973689347586327245776462223208191114101475375837545540954304984533080579829935991172293265371059984729869687423965346491700217041373398474004363229152727915493482247886496990381384684026839814834903385853574960496291234553774995170532683308995897892276508024474161828212995162212047298566169549687835601616458519445218920775812871978215610142897604281612993485604959975760521440717546547004317614836384371184584273473852635021526176137523728461031459013897100204109296500721332716126405233757767994775439707087479631718491380361870361650824063803371199551164700070917741376800195691735256069104813011885382527113356154980934965395225161889284142671271333319500857221176651310354859476646319541187306050262402899082168679549985964270019690301913042247740849117883251010664131173407022157835494019451247604349774318946411966256738065782628667850093244414006130648479647719670938337672350110493186309388002414577243414115811918250008804335295309646807881695943617885245207168556330751684526636381768763018013992705862239278596857936989546022851939292555779734539234547570233783814126212260507227885791718400202746721828185515441774577621165489876115386032136372564469324223974160731816628332552228188971605816404804492139433834252893610627109795275115269168114949762862934526132576529714231059087669047424821938766610701774085421821604861656153290251522919816753826392462912213356765463171097623286806712158754389054358070665109467691770431156859100454336352446770147753681875609837877159909631103731331416854801295713259797595082926036345747044554446353930711947426716707438624369937269950768019451876104642242847587415489475984042000841453230293030282514657494843108670208896732912688601418589244653316881692958762973091101537270003902119957827154321898441074385549313277365710751496240296418860932155438506169073542564574032288933789468347878811451536396934778762589981239881174734941210622328408674339654362710178861670918669793522819019519338792639722245908462184243279522627695903653683466624240454100874336928187025183544173971185751951464025153599344035678477592821011165158676887800906861707384414110481302120746317035432776889687160407505431469662079443519217771668261533680786274588907080236544646750391541144350633175280975358081245424028116837703021522285056319724652477853682856496695925477200036272054851803393945495163490097957910512971597829007701213861431262110806783942929535369488476260065247212733062342927058785551423013633853174773943661504435763071141871474046045601994969663444212638276870815877363801581135895746589554562384209926363253833814444356964657724915882082053550303930351489176556643742118766879444051461708804064828410044151845491765345998434453260979458688443441164451596753497629282487084685757869123848286278695252608313451609325775716935767794864133310476673861606533542765408985234186569120816462203018322020857768387645100083897415094548181715892888463086602174895345059864039672237962561714282258113921857055177384893951119214916303118504268836167888206622728573182309941507973134227852055114397245138385834093937214393159503900186276584398081178503656455426939994158430350936185144946818956068148867997553423489231823753213521568025251795110240248403654291772891099646242973003638505291729911911029714355656460123601315076786848546114381340524144161736889687186057821828641580602260754440323061730148938041789197411666138561597120445193284633972512934244498566779114713827514878791540855866266518705822669890389374558869194937252522151114369650464504001763203155778642871167139411120297692857219842899597988990853663580875379160582811471150645551788827917883439910939733276722954171696389468237395590934695969064377023229334475769484205535629038403220815346034298324047630608481464815086926848146644647491543498457093762734746745911754236385710595347373532960855326069472595220168866293525061108221338400327647865028257062544233106487901517728618695247719417069937357551987643985284968816089695097569038202998689884563509467362984236520848594762800918090654325279645723903726304992446846172932088411901776018873823235655879146154991145065240298221019499220880979442517031850256834693598920034331440864864342787513339017121801583962217158301605776436670140708967168409588490855713907127432488271601083860788316880363430300172079608335791954057356381245070396982860199961320628488495721486763952387768236056876735594915984524485223574699928110628250992205873327073646791439558952360479698610115489360016604030390456990762032461650608667843813690071097449876165259540026489596668413008083131502593953149823583804170659969557934298682830653881398761152017871402739267569682673173585369513558526185979985710983116434147637683347380697018789940220591854054018554389196595290955296063619513805600969396266659784161071478928193248024642349842785531209419300289692213278460100254909169896094909612752058814450232628355324679243225190395058527278469651461905887921671127615855201391576843202446600572649418444507070648851492542467407688077409483187812927674845428563884093870013929983647080017810265939318601995343068295049452435748468644456651185603194697998044954029696432930327116667977808698743383322379235226456580440502537460340902456077287388881441426804665210037378917168975768376221927514943421447916264379449189167729587969226463600595158225543171262834300529993281186137386346860933997663716296891875425437461545566329770823441785206910342632018319392702856604313695624167279367616821108005906155295231234388577218924424722064983437464526664332587006160858282429814135007674288168219781000952184765637395700099470984022240201970015252546074970822851455181517107298924280568467433104327529659404738329935713916936719118466973167386672502768470838519825898595251133159623524570843483063175080283307749967084344909003201319940671244541871531136791130436184514911556829022376121416958649788033900679043231886302538247708307769421568728224560240211200269660257512228933565477859477056592159769455557983034036925101367077065859490801919244620517125014059281667571079042379458732819438559268661400965259452741408870352005362253707713254570421743791379498774150758501816789102614004124710538504144287112920688216039017057985807401186408042215848177936249162199332287351343155578011837973468484048409356876519331074659384101749244788820426030430963528570596932177069556100443933861749564676571964644450998620104255608603459107674308694472048147223590540844610062069037191108191570226869962901454872170541154257279096614677952670233278911767813425544034432694729612931747349662228564890717504287891653728758177787125200437906214136451680588647915810509733837488714192261032851623639419779081213656177717246300619249224611105331102284934949247531901197875335052771953527544945842458776403145571088331551918931923584572331059859461302639063145602950716346421956230645023926129379408638091135281065466499983841038533448581317381985294976809278617825191703265302607285361443993412557780729857305314445336181877904125611054823350788899366210062394376417579837370374380888211874359397529175087215564004852858696385453382647366646236014775302657050017636159002245077121698039506145277896733238499990506895892231519792463707468634961801716260394898126207377075362627555171404189022762132298914383903589247608548731415335688398793450218166937407084221484621164754538900186316837478113381553376729648397907079904023907326981523562070112609669183824307909671734018921073230214130324667804702721627414488302104228359799586785372854063858423828739739121632876262672227266065883459765835047837035186098414888207153524899447715701630409406765546520566206343841421590238199474006284775574718594619142685583307503722085187912139692422116785266848772060952316703905063953174735942146120142931152671373156245170546284749432792219115632990549670360306959857831918592986923799402816176531322678708951012808949602825085048756202204126176741967873386823796598323732215800731366251128491803426022009188263157090763595612437826010751319229861197494190775997417479589831478701674462172829240194786893799829745641574863837804359244978209788695521112904537942870624063797399208175862153223283122434923693146655515783506984098999090975269090728918816101394249511338916185808841474460455446964621415491360221763715257320235599225235772694197615913952464964387402087400343394596173660981012249987357707839015785695015779861863977959596867526871322642691798135090035791643426298131955771150062544819323340470354303834533019572245078533105441955197372984684982452903209483347531373652110690846519369731102486056965270096073132344550599477513359492644817063850361451907505868734113307134897678127213126488828219199196658759517584331260519009585526223367192035994651538563430746222633921681580452254046747331147343900642777828820123482501671628969882206181244892952241856348027906651338551311647079170216453999464049517894903786395636136705154181325912561036694966491873696160872297374294806381633587405961776154892446987588115388416172161469956113816004111709793135856960518699007477732857390249651900965517779556197063778538063332328694575759051153374266372273019554539440041568438988999310040041513825057492357360279593336364196346895125265637098668457485284049836704316225691742838057505504574548372314622168593135958152520439229472241844745656286722854373489947537654609890396381745714333415468930009081069067390664533433149355984928048804698526906668929091382836831499218430614863919610397706777872317769975245588225433296177985138401811926183741295846016937549021523302638333129203488624107977430302041912015923105184303028240904110722735750057893576059937135021441850368735537941778995014972430479551230940161763306940845165851587661170603283774913690303796125598686879319220216949907901757930836822936787606366996579196104779039097535875904624090229530867338348974488309165243619014432388400972336615283587632653307941505886690224996122516243573573244222943040709232405255170763383800927443962222648213863020538504721170687098216934959476033329889914077771997372705386453617599859203929068237322354802652384234553350151312373500946060051203283040471958672754805602195408407453039513225040471887591849521349060887693704287794098405055358034540790680939771869284008896080464491488723925515714548535009730038919539857095306983772757263829091183593385563850558678359821374395517362984591412842333070154106966512579013600978660026671007192486611838018480753691742212658832989829624164158046789812456792211288382762633001087937395558263235969861797584692956190424771440114926695741494985842809579415306175371224976924525621938258339238490526562405533524346005897023153069686472509467230867796223320151353369700272115768944694328202946526811413988154435990141301361621151707658176964665635748178356050029477229236787120119822764609406703979849769166489287948494754943735034575089594030506209027216111472874559685728227461519446575759026286114557592380857257436735213172703862509372111390821793330218863134094650807503355892116905546025775536122051587925451980901164959383737282653814658267407691728812763747169060708081050559558015237137854502200283701381444201906431585380452020222729070358355588301663176015788783874353280880373699377286229525714956722258617674237033734620771663452899368201013383883700825647909461437635999371351997350988882443070943154234907228372678512857735713212129101422308166661373142287792107607149135251053971125647389437323142472427826525525940879786069487373535488997519536920724602195371690325753849979388998960079082138588170025206662849549895407782834853191179581946234261657783750577679317505609083300941878035573945196114277945694497652094645139092178728518089273169035626378109005645923518661377744859109244401407471225327221881385858132101306114400611325177669529474035520294003758493939080968565258797988098504758178239425258142877825445023938988030980505995494453795354587860834903659181406882812211773101485858065700432238893165059484492818451201614632189697331267708612447288735970440336028852383054141546615122463605133432455096940442680745387688134935291320253544958497318785616063165509157215375560764571927675856975568329347613560466675754078507193454706047976894951044176680718538762377528315524085175667657241744815730002397654053088722522336774563765778427699864991085523606013126179309129932232633741643633671921303809664095850274039676782319560448199245100882515913524253197560164041716849815606137370858483697504209986739507285137691486809245624155971054452724223243758343787633116907202694370544473526567683670774818674513291049699609418040685637155847401412283114464496095845278969817559215445437044509976828426210739761765382247453251592831460686864150491580056330069545174284376033334534264899821829162736663045578841800398346705120863585255770092094059085804743705309913066143340069854515943484329979350720794396726916309113550685846433608147921838320963938237488709607392590646268874140246515156379232169613163654463328801964776280208398706703749597388016130456741042972061863179842175818539405301351275586343807195556543061587199603419253167796092632825986430351927287912682261644195590815464422884447563222515588648402742774787329871476395588693115290664029527240230333092736994422148733687100090959935909175590417372217909617319309402716129590013267489209764251686123406422127437701550538582806448982795810937403674162335265947359157960227532951886262429652425247551438071094209553911092852155387497420770953722984248546564481105689152660863132450967988768733762258749900379620328963108110992868192439371875587686933227371594517335279623195499362957117710717746704426121467959127486993770292994544079310782883748042008714397015289666776440177913607881314512606629782918508073964576564639264874658855022514658916292970234368586974314145104338165918097278037561617002289707778844945050877077141040011962764970740375096531019196523653339666135078645213404357829965305632943911765357928605989073568766870487226338852171322585527238748967799529357090348837025851093807865764482575322137327964433014904367200422171254857007133555868324757166515825380248888188483623383230494963621851010313707928534504762414351484081840467027543846096324234895817693811411695604320428417329032458551134691955574457487744719154028431774997836803394858425540457298116510159605442353551641175298779389792113288112382917984140996982626992764443342460654096059361188661490352786439096786091767908019602840722298149827404403098541807159519083555809833768682320208352466725744177426232470751137502952401327992177595541523103431830983474095863179657267738049254606609383423487658699618435676457665577902979750931474216507294462724216412315723238347675366456441819101239428693130507239172486089454636780903373036618052641756077683037704257820792373824428724698605369753082660709912663973981727259607315727638689025339912456850715064430740202513736175669768974038524453848837494193609358284427713945992053954354316060172610157725729787459350346042432883110809348817186716386202319338208720134391282048025312831379976270759166801890517355257795815487801340012761833730477008930283200171101835069312058366201697328367425641272669107812576944744746362686506450701078040634560966182619733295242961033165967277208849734538363112663453347182773781577455574808098429872955504208446888480876832757295726669596343460885595591117387126378935944358395389543996415711182399680636005674088051530065010055477741331835888930853447815357850367622964874951881436612375125169573272300298459363055362307913287169406582937707577023768156353618013984237246800859839651724996034504739471121858165979245820670412168693123098449463199450762874706166146769525900109137377155991999444277081236869768535517707568180790290201250307330496067695004388593969611001572084685998702091324539140708423611298286196975524730435891985085950516352059425624320285397096659174021709214019537102576843235641407657722159786049514518657078455740904868352525853968222216738195766932843297208127893868637424712395184202563662501878277388999995533971269178184782028822034335791751600549991195852771496874185475424020792289537411916268972106622712856204753653408976161510757704750794573388543687472188130092261108744919284200077601482636761765251709352766238258548634974295443318666023093391518871874762210226903800483186294476635400285374872756098680787274965663016562893659307484191078965557319789552532423381408274574569025232742848345626799221761069774616877817002480852126030629006574814434388760623402688703252397793060996459431750276739974077798946543233388945158386461450256320229460588860913906110895914862409490628453539841975592632944899295293534441845951409552268664749344355046738636266537165561976968633232556585839345957230003131052672426128708652877078569721283281624788274804367560330573327906048074358813462082756927240475538667093930244474615692521847148339695023827093192910158224259108862326894624063718250057313616222236958719536443461467427432897979335456894118615756736989637729413895026137058827105038201599792612487656462619305610547369324594551611928433789209870950790478955050302445897041256183726869335936974330017440452763303214502581205451134995184062441291827173317855764948079091195114585660333602200944731949636830867777113971829554732741703912281704445629995981802893028543671696971406555680412884870872417297739114023452422633369431876242308107595158667653922159301068301119214573861840627622798370753722777180841796659011491176254754183677378907536983298730023088595627233155911271469387800052570836081076948933600398053473422271892317906394088150303951372415705380858378908768596089520478015305820802700669888811578387974490142480790100459858001500828290154408970442682550157406734998330213621102099473096110536597267486892317038823127892509139772082682407884697104822467743627370957904285558145960401645447480181690662270036921761430737778641058381403277631646209971926606031491138718734272016200709057535706802746231506596201242423174073128483495050373901105128762374502930091249020719526641499829779733138396881951400451341009375898211377265657755785019309797674834701282094958590440847329132279207751837808401788871127499576919622033380436854061096634045599207227831499410022713731320743722158470065052919432386190035463504456956611546444361050382713658987496748150083959902516494517270139593804254619540804217621290751389466029808838585123742494571852409277794912921357426948172601780872666733920489240251224534935750038226074084058433724396502640120666087455633527609385475418753211279984994444336712307159524287100594954382981356969152802915161533294287011914891023508506168687038543108024901641285222059993737828451792507703950913599014475405122553652140267398719735411563918677864512817028186234645826543987896474482087960111663957151640378037699260261843382713989099305836104538577207400663443114417443914225377510880622518218127577599833260841446168716236048666530984380012029465705228681481013198805993657644504381749703563158275003316786347412230382153336830109032085104542704854026455703748559892396735046764931391138022284417263751282060059594878241192214308287836020004106837511466071170710669451309592186074941151971176089336028279228447308793737160280774945615148404904784579536043775542608778734842438420974463817771669007602427275277485293182428119629163484247849789454188250050155320699079254660493378950650799326738655055718760318567597237264361270185571814255986542875235908078131289334367139508154784369467139110691362384148800503172688723785197836807276643257032592293102680792121458783398059094009541162320393805368119435606638585265106523398814790932609275461694403576818363911056545120690262010633115489603193015283147773955130471536193264111785676668342190852351235627298923749289201797440530975131918984725606420370710758793723473445611692666255914653789743985622283996522030997189582587195592094203774654021974211338716163884304366605839287693054839477118264883486690007058814190185428516945001587541326538331426772791155245616505811550244543857777448728116560410519422338159674707607732236944770910457300462725535794821024469198837433269814047153235952939651062663774752530274711742553756788274836525604028538125529620945461267483350188528846256030946287204539133002541643299988482186606645572484422954974089224534720762340062523137311609534917324010535261571232190339873379824237754077525576789098859024577280421669470645257478996803134407169805364980316347751640087294056356730313604148733255567635473061862834039794542665106733889853519350900752985245902238017980676883514001081362474130023265237648259914386274510604459357825191113372484522751170453975442737279533987681669382344117388884847738188737727986876288618206676891023227215177509846930066545691593733270119209878608536887890499739756072530312854051425841487677279925845542505871949200362906174890523604575306636255495100226246669978095403969054154837982215717948235241420364426664555152758729457118771075948372246990819332206844573772958146522938151667920304568465409690397093524343163544133655430702346008398172547703678711170134220024821134877040230182094085135653471135962895960226093076335250301800013237964616034733341174269603062727123726491967023564019409425575124979616905331879050302781107276230568011688718710960688494886368216372600779978057141619508038975120553181945140877977941359668775178665464290227994123232082110922878621238329589769103109997551629181100188834404098067518401920518951433993423740931793612341889873703936637529784987344111306053874811308062240064530358367750671035469972683146701115611424180007470508345716361503609177120998700992328772112290930347900649419039560671269420506493275013844739132454488708476733498121000718845077365542979310764354727018060938208542489814786734970130198590904046318341922280965510641021927041005105168302844447564727034077926108594271246941604553939029161680408120857046851784938291992265406843087397547177497203825185643366796454486141962992675577783447919849873427877471777791243139586490730944921302868139269772727340463805816403112244702424001491174550600331454832973076615551170576853405588096420301874851854058121777769214915606645501200875649466576763214013420023495269157852493273113549603275793734588739651700939250198886713354726876245905718561041833258817909231559413590727225269306504547988815889781395155653239919806184746800170205690784557493746109118171748369007420837959573081656345058800273592386268823035888885616034574319641453682719237680666057115470742128387400399321746800057194368737304209379703032555509432647412778838588971203217958718936103294123874244435066366232149707166818584856710895799837665779819207603553171738377349130877884943636517624934994878671003911650857197893517036296583877434503294860465191568580245157473395599793177525744286290062531034964348965002736570898108689212865685454394449465534544346511872316410972596717396096755771093706705469975208108859488799255976390330843013926738008649800025693683560767548966591914170413616144113105656046940115409159076010566988952858671738494517713028086697987933294472879117529709228815698080369907094563649330159453280445349105733161337679838067165359356618089814558798029066078041378907978482733213313668657606220123539632631341001576106820732457704214744826398145390126722720484119072123623145646344354914151674420244297794551650687222506095550242611767232741672356013977459437133651362373542025036953410025062685497357400399647207165134824853059330131563050805427558559053065982123681607091952723928790638400221070501582325208339880553590989509696130793203251338570775888890435073643529729646261227890771797029359533292524858191583316267201295272985566878316959016780948715338654630980777085148798799299496891684855269421366240423869477189964300172178859121369695563864768769200651581236307600589681788363826902992321781627999672951003255672940626867290132630087141863817479908206209095364074188371082514437270208352129753795655571525675189887875568341701105420903961447332122050669183346467901220593652539137407109600459563316020817352495475135591864784015390317908608798858201949712583329793255942424807247827672350515358462919240129419636387095080857857001690018674651718494529832877396097749063828248591281786066315406329292793447306055784094367795783130806381785727260966644556118901380100756708898676273816346512141092944343835792236986567066559707654095277132234254403747000404216236192141027050883744055477688601081450107319142017291050980854823528548825550709410555059104129138130368072795557676415386269657124918956814584007746417282889163904729888949460099564852214986489314288677258220604333613711340959784189149864736862836658640066039760810982775763860993644525802735628120627907147427045584393079463662804582084258120025696106465167182244188740297888146462138350439474269110311457375313516291444465816253481700149903612848608572812314743390922432104664596028162776055017698009378487331179028274465505714727366098181545789509169150685396876525367277891507492154717803940198976910111527574676925608223065980173964992310498558092812649414521230342526813908453341140379264058379388687526787598084875051159970014063350685304495827181544087265063856291869107459398384928762265481588695256207894861389538310523693307842018360451332540028076956160706168866854860079237684681442425762740404387285681027264337797958342385702247302738052142477754880908220488730251526886085549315665421342979032383405328727377041931056819025414954690836494928376833325315421446276235205179380320548734964618372804146739112667633401747296212658054563933719396731392099761620150295072299965498807199167282619316161011616931901397549657738180232138900611392538554518276044463013660698773661614310369018598285222345253725849852800871638962638230564392656082109516684632946601185300408279082947963989775188368635801917322207761744382638031202222955146236458990180499454899853289725740865250016178116953281159907810776073469928341865516706213457739189783612343375724007224828667625240423183910132893946563049526716356940269312078017854956606092052585487883892680903677979741522371821610210149081254680482639833054341369546881716209571022265473721528651303350817888931452119512909892996357663727016698681810441674507174843187582066128886830119934678650664326622923621051648048379621024951935475873792897025146712765291768466930695217817329142647233226427552831674919826394515190268145922139971530009484636779694152538384966989542131897105160109655620656172230196159111404785441943763945932789570730413641595012809177734534199067832251717879616436130727554999004244716131816089544707277393725017176537715595597443545552343043767774011942295285430120493832837865577250685918055485556530613749818028267664664935951913283332130967341347600678911959033889535101500206504180453877159701079460982755798355497719153103304413421987568473759288470035038937690890598852825859088477953351193929377509479239838184145945106323625404853023568528955448147195346306360200322270742427417280265095654046007479825458921159740222119168230353157370601635812590793540274967378839651304486753375851587970773455054085917900367668956463161903105441343449306220470762071055527691215422986853758545635166548774917578558184928267686322323510357562267191657680702744145044289085491005782373603691642696464482584734371689023191540977436529664276771104274770339856587067852199409277570933991261087816174158373889959914800756964544630905226595065355313926986623337301365128141833286390495655801804914788455304705190072015608681858227664042136561052260954633644015846591597009419129575609104933586457386386939608013911557645475377114693650440941864665121805300481215309905639630332066579319266808631760354323834605973249083620096803988977245800864866430954777116486511847269192827434571907506804570991698373400366229250921936144056117676347113910087760981118822241765820471084780592839227143967953044444968278097085419727930269507303084981592031316940355875368080863507064587144024504610039017877571942357307938264904648722447174460261576897462109407866005177456507782641175454759958418083568504203020013853256713466884522442075302706843385439754466183273371341838537181883225988050805047289040082422864213876086652334054652951495340197027945560582809047299565655885395646559081690712012961580895177623431530594144433740848118638295871088760172477466789948769115016089592548178986855780040996985524459828425761086475348015323005748975568439951190885560772820244618868336648269159590777164919197705953149005492975913094216729804303260543765776415696442981184204244211844817297597888819134035287551115963586389080710305981700584173314044200045034956189919167904429060847767411615926398817412606120107771799019500113733213876400024814252089891532229859458164029408802369467430740295781126603111978224718783872812499453780253951749294082931873540484275729214164821242465428210140568465946430476889352435556155402623360431725913959713406693294927249172200700058471637754305970554570289863264134014195062435552987979476186586531857676852226636376566296980813775094962627885215351300516981082863642961719036703290362487452498712305405789338009616363082460601342888629988142921470473898867143568968287208910316733557699509762938604305212492881908378436461190056610033376491861085647437912543647237289442445197913288150682538795810147186324743773311404159395673631473794472157660347078694846504404721896090120212643714417828829809289082822319433692408023105489923460463765827126545611845530161301967507261294695115839398371430156817410272085978182636054867679102265410567632077406178594596409374799895892097634776494973556968147214126741799091428245548489648163752714144567102460467493834732203741463960049248198833962140867720792392072266967691119339423909009944122736086578294004806217244397542608744130573412394206511353888665098613594601875514425330295372310161797102897958514352939665294852255182330338320534320552667183663577603030529636665293819630888185170431585919561077992252010081087721036487802146364887896316765332782800755281028144777189667352233602681774738591334445111331179648003628084824240314966965507472788697964558350054999328660290039689016209755205291357958026344502045581621596731480586539533170084784930984020458804519700249919530141440219341587027454857677826324489144606720164806373315233200588734108510300461139216870259473582429157262940734680260504570693019684404408555465518544055407073736538183300688590687706023813911121860380411133579292921696731031640041073135250176829117779027450032462778830690864648318942125510469936872165183069356405012250792731914855082765885879157720802330480393070211162879839609333594186346049266115233578934337438412185204585367754284289418524782888660819305784113118729879772487404997094967246157916712909916592217479662403689802217085572845812106259046270340166824453848814690281708833733133073951845108972767201672670290362446829151307293071062430275567109600542415382519774373552166459125900233812779903172973968641293302694115769716467528745106086964703342804422450167689312104263761716966896550360560108742554149815612803987384321262211134193609268117080374073603738745879139241619597205132543010728445347606182985322169860664925051005586626798353935321757955968957312862050840601881896380448835886944842005723736141813162370191115770632543993135853484172982074039331772164473473086520114880714522259558045596319956684313673403690509570858537370294070014952954508158177983251765340403735308982505860193504122557505870036959643134594814828224390247854506772335282065312524484303702015027455978484348396781576559396423230715062505771860676545785696374501098067284421852609838095687183578221074637090761144212982773511161872257161335304047257310122925942486582065704970754839591222626868853777282853175045173657138256288384859957388489463455494669238779813532919507471187650241009658435473809587444625589211019351692833672462656802787052174003069666393351804663383472863825795833483419845863822084372571756482052752167855778877166101375752794712358103519302048285358635400326160634398467836607174715009074341116810099185186524816139781448926666161391645894679440015624570816085743773521274758644715034825883174757613352057760854262348451698418971409474183859164442314990245120960292520981641450586994492191525912591106621100832270004981289588396446281449906956901712250604664814833567073509903323966629712602385653505975024084089883387502416622808444086357267071879853525675160379294057323128947367235374281834816984636180431714280967105305523230334803582088252939243774145937242083669348243990934315901345595786399388278274023514579982741128670208612153186509666414420866880119969012985889759942094243285953280759397802406464595657718297481787346180504361346348847271348421671022884431622203065753286537535005533544614506006593216355800536246192705527075132787791512540687030347346553743121339016034984577526381661495002907873870099237280368460487298919058504084347906503797841659044299966736003321084918492455430007445051438866028319494723716910345886044532885567621284398275999222607269944054202826196167429722461969448500229886649442260777006871634991263458608336134604261390366632782274600175052247207702009965746468376290957656916452713569151467553117084224416166865581140616622060629872733226118319658818941310653949374557892144350921973810196581947517545570514029968183652574443851401471038931048503006743629380465844900781107316749952858541627184748542035060370465340217752723785107966349189585799887135876877664761099691057429217216276855159720119182011518141813763146275488305189718629915032377446904946883747034516538226275268717117115989559486581625933321988273015806483330379872091524330780783796648147290290994872212367802501703120987382224303944022787587186207167874595921890936585857585595844823891127988788918151033465379247498712948799726853079080226873579292455811282339993646824611856545296254327590790667069859921220207218082076972313035669774849595637388866449536858309936837161134049852560952924996291722138339096814599359000925314649073113704064000985909869368648305834378121382230379612859608243170400315928168827257433370139349565407753733271087817301053520251640135109362246272225172203111230585929420406397336170566909867728697822678624060512421589832534085540459171267120603913229480005322793760444214962515397932329841222705876481817729338221217477176779053088199593269380236496119979842798356739232059472525211241712458332428675761922060506465824505321575982601822688817453387705252189097116191482431182586309640496794900267627363113337113500065760966628438802379157983553548760854687169347034591897369175153637820017258033071564034890917143582692700797704328369162573791833762332933035187485808845054401456294025279692670338759407930564805310826547493161140391631009880297954912748959413606167791907326104381591293795366859944529564107196132686912373263681449890252513492354349696506415490000298022530878643370780022182462322198001983843150122635477875138349000217775472198522392248748709760603325660433770405697703936334975369334854930546817647085461848642880746970435838754334882806979829405388214973899153582589402527772191690808882884514465819197342446732809051728116893108303096836257621653180878434561703263648023124970127935324414201888218974047414895851369261666851246028493705104051376480596132075845208357701498267580528548775321686909870177526368955892246829704182311936323326333066381624381779182874498512386922042650308260787449366060968130701687823242794018794943361730388032346903401949248371022944487184446824158487909749892837987009689508586419096847983080810226943994658581718431877663623022133480906173235082791269053528447636918757906816469675130552136306641007582516428976934071126227512742793158037342176967276011134113075793798004453038803158392389604457389783152218472168218322145939784014380786477660455607789855489787783458302092565780596149908720691598383734939923914276992846523815963267249584773575075897905227152824441720422009089943249428480875247583106984894987977821108822853687161744332049923462093984224751623109041466963839717907363322503599454030296345433672749254140311234654178559050757679997104293191707382453883959377539341512067455439574591229254577184122725276260327865310323790120055395352676527246918006674428354706700444992784259178902667741279016031487079688475877188508530291207064240928289880322379829645649173872819601636599624489753179595078057299648808739688920101123614855395141596507798422607499746445034709624765942556606593730740907748984381992727703958505645731102307700409031962898814124924590223174457896700229057660697114944382897464011842425786442022252413750708430366492959016458832914881010806304422689652818517422755707593369068957121092265997993339617496192087917008716482765121841365084215915278258922990972253338090042286286687017742315798629437381910273389878933133577575323959238570551515890855589628245608844248773395988015519724420173439716457527874300021007991430000751464786664018357251156054462813502849905733815504403466816003563879814563171977018109324934056239832902183928017923679139918046119610608354545527715465398119242500490965697516157557504024144619063350922072332426592945959246991547957921892845129634483609059359511867030674074584328631903411830482752274087176600418053563827083616088873771274377663815425528088136019968020166285368579431160473639091202324758986161806740072208995663633934023670128165921192016021198217337472451814217880513182621987647871736614418651896843184265786802235231241587218772259118249585386586622997960210292068271871460931481687989758788409885630244620273394990414822064865545720466589483395112799556439949095762761903445520323409907543630698107031461619904697555545235645461393569195779603816039250883526290081868872197242707168100224073864968403581831184725742466536251404999767336435346806972002213914815995894756566789577324842630676683159237026984199259444191667671884583195745168900360312627354296786365892839609812672608910984387553989241801268840368592392323687077673652362854129150128817436246192174028786886986958263395106110266904019375822886738029929878650028921469887502057898552577709468285543474464361365759122283388989373348618713824453533721808213920463468078588142852338184566450270641735584630772712679504284498973680814255054576814493983469983109906164481704630067345528651668585587638116142019273108176538367922809055788991846237333803647802765770520619782887412531295256873309079360027946616972948659210907711812144691528151539500007503096353298892059272900976009161012289010811440203262789043509971487698775254576242814192277646277525227178142884539142496479618912531287000344198209502070205777644132214487153602568047277581245844501604078152724249610527919577932713043286205708317488840359094487517098815481510402580018845929358632249307984768263812276624615964611827317059878698797385826683049870035533412150985771186942964936940542754546287306215694680324236655894711038653177848467770017457021525495782597630445459297669387084360263468125447568427004962140303121793801542371251284867903217454917169697813818600615972422200516304601828632326489321489849451214272083932043485992327902628571963444872760227038624879293268764572146755942452510838345523674806531524667904062237123287369709236921504891368215360510001343553325958211667198637925125323753655139960166325222065532480951399305022099653908862671066256564224795781524513339585621353212233207566668151644865113398089756165013083855872377101595338292879057458804422737847660947189229644174946341839269210887469490175640331426021456881003126065845614431739767144320083757814671930673449625903548060926659326523860378811267887873193767476870810774023504148616961883053874910545463730387052342433787243994104413645433305915214901620744621228022832372543353781105598758641449539550048234705562265812258556214370228269943673885042638437659619186500857941898951469321826951550999337052118343087323049741013707379848627487191211201543550552245806900230193235611112314667921859069937662402512357730970078360593551329395019365852119816757004932335205780229496321960760662707740825044654867539791087081651597736184283358216030339002890477624939074060282186484678179855570033425764253434644617801028049718724149841768147210352777033390295856842013213199692785405864311992619080423428172042578033612576778397757440711211056787881678699438662470554506862880382551273791075377145132393045803181193981195631617326415161647381833865463578348283892444132705047771230852343736969280568119074178900891310737426480348841789390077771995660657184509432210075216105894782678987651447956846040323468842160264394649410904066592035449408477502852918547342101095979019786243441377876349564578815882531858586842657717660952725387943755001785714460346953704550879286369849437770794237244819758206176689015941674212839979701484922315473793351613257648978326357592751372927109775950535159250441209876412444094332460699130741036163921551309010598175444359281383003400501477520779177799862418730596734255435534233668653395805140254810977079358176505659109615298202445168304942108756087662944055462292430294195285256286209763078803680307109485849280546007407381247674549452124117433740600144719155144505406268017357509602457709589366619141133150865178179365409782649181607931999607392926970591623296671384716103946899767072838367437661701822998612996070898566559234889156695028710093009095313418173729441206797731558299637414401230322991718074896486344018804670214973564623522748121052147729873483935357921229488235486263369566471181750113132726885751651157691044363885557268686394510214991689875045025737009628632000939954507344554419548041172148695836277898358116474665641315829433412757883443430108991493365726915706773248143791025510148099605916093652020616204410107202176903500941423127007064096760838785024850914581522901466424612323998368891425806647415355662277833269152612511762609228068599407843593343934857675122263847077584939122811848193629457890769126722222912832338603570231946487342807562379134587836388430635123043580082105982062476217935593432912588679685410479595587239787703747362821618699124917779377071831051219982746079924487534751890668146078598380549321107512622658685997886949308366886582797750914859106704410848986600714910194442050029879889389966483704889228212423172571827071725465466599114532907415361622239270963546530447370628508860349179069279653860169973770259978108917701533709135722192010150181166758079531304407715716368408486137912802947195806671169552935281143169917984153625070974839925011289573853701531941823793517753227087399404323659197341562437773661145247844480633068126042197870351667635241696868887987650315887936263434016167848495112839433308382307221016888812173690523820824284257459055795176881123276596537938645714269268916552260083981862902862855586634800292323194186319118623499173736424998294141122408878486854117556216882426221878633792403020546786178384611065144310761558424532926665399983996160680733657787328454800103882613516698046597692290048662364667088537928118657059299823047958188135258362375071267713324072494402678735786651223943953006303233106749540690450552523542068438932932862356756802104680958393117069428168358277094869517787595996481698456368113161651053899193765060306201923255733807600230452962997735768893449849782029906733205480583374066717380392974654165054083674613944167238146676333254564753004982372537391663924634506776226656179337242082588648901229441724878662157987027007479562187997008496175138354852721423181880110204229444572177752076786493725228047573347492971723206152682004162923684129782272480079080860978990330840073059569941258472036564431633675809257031308990194265682813971912595341321639959249857959444617791664129453145366274688020678149695252080189306869844427694070808515915454252307251557613277587437626645613629630514677127713489720962942906386660459095880072673825818912044170187748630307488674579857477114049519989512780579126793756580904900312775839580550155638518441322391853901034262974083201274846087186024136696181519981840400492817000367291115505342277875675818162552258824252613012425749099644049961406629930686305697558117927137820102852663563852470898614846835299492264856237552885866745342563325515640806141030382652137972247051279826219874913334713196542463418962560219174583356209633958945840036012676170509527418849131426801313902422050723482824793215315839324525876029412982086630022219703580754329624167303522204013495834013191033104953573640583341141027076374430265326762836329969704640848358556357532981069726136523262058088732635388438403079809531916719711410967458597504047243192307577965708602120635268283148518942653943785606086529418680425073848745465715880885027636642447812267685595255158756136212699378833868632770451911181597233378319688595339290770009749079570360282077436214772605509835010612613702389196146126365751667889920754820604118940124588227406893255798926203722221311176996454842538601930826295297306329707854460564706439836368800861135690542609845835752348828031186978899225774502962148561905864765014400931199917005408285750621157811089864193722130286899394031058413743325596294863940830706871160151482728167681952572972691221383728384924529128662561045038942595683415492433936866047509053763992001890502970723732721529288800404214265565761181551149198075744452779119885229538372096189498966807727748982170897428350797322871915126621302231496794470448588535026552230312572817869824941769646247279775640741157543461842882356496889146529092852435520493844000546677893994507969107933195433133469255728555948307041544140005325662784084404661374092796801560604578610739562771025299763640424844492898310102514923021163888156539926558280478060681395144841498346474402167863397202944375393840546019482611946826562265393879890638075455915381604999380212770998699812851242338053777558712959420029694750582796991183804116755909447819687451233729481056827440232286154003593967455348951778806259269688435722172100971339474069773395903213290982565212456523341552343025619156722576105763781753616256663048969506128538235580854239821276586238194805277302908596017131971543192812531909003978292089983598008327730215781850114165164569732565262985731618255880111223193013828126093979714218312056874570475633276639890495586155298534859693609826373485317057556480456199375077578528144822482974064141916915665816956652568071326322815437222493652266492809021568404933518210476136143905833691980096914178693500464397604864231110920320109040379376169047330024146927811039590352448917640902205912236397683602980571715415381588414489014913113521780720166609573632443049563975253702767296978525355840570432430625147634374946103472308128094807955561631499469562225137785834823940342853709346921535970488663897922721917036514014262738537017838906461608696967215946233377157253640656155477890576336774185737447863305899131194441433191999429021834858194696073465957046413762550502449255848741126486538263813490702191429470482398034604924869608309525538577333124329005932553367935747877285099239841796492070593791097803428145076470337321766254464025299134890431898699324744979842494858476422761266774579103314094273089535603489442158926626200091580636046986706906815124695569804587687520030554125942041393164843571254776933142428983160553474299991393516224872201192768958308533893851256634374237090844301465253438711103421320768004110281457590699212490685056783770085376128914402788432066745556376301057726723941370900616602891821705465408677155647034154658697364923023731166669186059946729297942551857824379140599058108484110920444940646364088955689537373310251388757384014577250589601827279718033468655189798736112239539571773741499003244760491390029993742155186600363817968419453428360048221608891262277409730232406923633151347475219781615968151798182082835971946809025050699180974412774732656360236002107665784959398485190795896594817362310469241001731594825327417822844840930284117058863699112702407434206546119056739175093348600843944503202493296932640938872573915311244728651168274026865440200795436764037100012187525736108264671840143405165007434035203730907947971961137917506785263232042767464053705007453815431381082282257774796315647716847565025156294845179352353736942182608712797148743935875936909701666421398365610468232696208480380780715362750727069085238835125627652073343401229938752257635441612124563633803363081358231850056814380900414909016171674612606236993892348280084649525379434416405138608655548213112116944936387275386074949304967497274579195862941473921411878443734143215713507833104612004602930141946700898999763263627234880669329201280020256426011581207422125417325139904265867323873879762989373971665035491203939814103511868806409517071302899516237826651628073650547891373243008646356160283907998710773287793027189835972333049603006457146922789506536161384673551195796348591403101926622004985877611097848622149167118283670140740491021858634621659048048420021247545855784096905990958496021414269360446782155864577987084000416778205863723732043442635859918492399114371286881535380311109785689117783966294384330178468015132772769298626394474023237582755439748589678559123051392264638432961999840741233696223280500617739237015699657454450448764503803521100285598290582720204218632639120680637514635432576722867617558385383484505712843741318660451386362277473833154544677713532662334028112451621084416637604582039210917699072652380534612461526616279826791354758083581150312217279725031580206727793288281575565526670877732196735136929656106834344945532020979772762490232787920939099247057725907143147936464212134812689017479488055309889315799883425579139365023721681550376456164496312821729540936636566365634989312551418566168808618175653615759062857358352875349426053761038125847590084684426046022696092030089082302929642691818352649948525693124363699031684732968725543565765246616265290861008109627585963119213624648191057375629704165962921012657346278278895790426527849277698358864377524714325300479228721599400209622685104619214905546196586449689914295036166368640115057505966626399593873699520725705245509186696997023587117630900718518198144664888760273463097424794390276894260438064170211185026392392917952376923622032419240733720509244851246874814219713514471750900724851081328202449285319861775166022716065308782724499076060836988497571085746587673062421096405924216866900776937233004151054976185047440348208404177176727790443365334257495838373436299992533741629797953013667099954026829238530724227317975886773609964463180286598729671594823049445409369695924750262120402066337370330166197612625405163140211108398213599817116752065251597904326347045322529961561735589081863274254763104935345725410132859890875860652810114054419332535412577212002613278914694268868723592173880713993768475110157244770048203538217669965060950552488768879587552234943799613836166831657671624793767914381755246639239940832053972849529210718978554903062893825626415586804988205818567608159235453296664483952421785902306238399066477665228315553841560325030487433200073090152905211245790445996361466062990979187179181770140995751337485042643879023474674099356648014105800316104242312026892970384608504247467331135997886216911918168697886498222855123726158233913721247033680749518964325853334500860614655056560585370222349971901053597595853946809612047067608891482760777347125125169406502785121360121286193693057196506882241820170018452638659186480950743302979422001479900104507262381369063782557394174601667525388571706523589796876503134674736972545151355121264504957483306299046874345989489764153700702979241382143958972225501910658596331876753473238077994131991726517844980897706157725363929653717944301188128002017704686264966471103490109571798371107638568060431904364899746017134621821393315448263499865336683375487639666105107204209201875610569441081309481727608622412964080857188588490498429851470026415704245119569511807611796783063612114000738422464403773620534482061024590332902762662545579349666957679933519534694742135209251169945299167148018886340845079609099059831261639399849791703170185966429284521391811577621011860382109162261754889090680687926867483836733159422923995874470233035097446889077865836458727505267201963292972136486012548474545839346849343940056830094500217456813552006655443154670997893947866844546149494834433196497812320528737480305253414739697202969891375366433257434668896670726209205235794893503691185121724503761654281563840086645940745904514393710824912528040317352786552386261470207789676378247347832465445314241128232633886023484398723797992766114007381920008720745283474079458810400501528657124146303568565218282135261885218851147919543639102569313095229107182299229725503446620180861182697234934801843854040384753190529379742776297750865275145008545003521962924518577103861936586647705604972166395061455912720326011770084852831735495329889805914718482204950062300339143780613272004247468537865329366365431762793080520527167679254994415245217171700082071032393988336306672238891760178960348469665531770694078759590251927739051419228322420310681187478220837867400362424807997259514088679225822059698237397651009195843053151467837621958070462546587988490345464300939049729442706982751572749701850151537250875780625796445057865729303672914899370743758063090552362334228764641813931648625344624153897926244280592293370579429326182140724600590265715640843712874993400995424438706900705307825022431995487339891880703597332328993664700886898488287211197003622460733473252474725590560330000968452714021248139520001723876732600653856546592518800385385235157663334730066588309900946429915321806092829184487564064002700071932989975636775342328289131176369975148426116375215495662634391059859119272630755761308718805497641485353573848012846965223792460737414389605025804903014074943841329711365317799510373897645124305290587632293386487053491879773129120044639363454025664046408630266616369900572686722101082729573435580182290383294752670811994853391387050365028891229415916291363944837017435916321893055893939296644353512266928698870292807803172003002573671863390409537343834820701422076202343321668316164236834618074300990179622903791056397996978177116084603303619240131230063758021669389473052566409754297895425212259685215457318747667247630479252394609409899275291642332045843823034644494111388671615491538714526557342229267870405977024792380504688254940756987277684101472902865568916118931082249731878367659916944932949662465713656669746360083334759637973688357529753134105333390267464449305807571241680774475214597219970954352529306830290327030206667581712881576112559729790152137362701488967522474102817819227586391333446796961648445611011572010643701796996455163548654625801057864849022256500157483419582501474168981381909003524178167658209132667885987000014265751861599658353312287232648458324066508654353240389561886385098650320688940923024757365380024212881584592527301375107599762125229150042575217310668535417560187161589184882405127026420311998278699616800181989972759734012645245456944854870617252748250916478334248316776337482167382049450988910465236412307565485049186108178640923082372621263367981419355833794170249662708068741442573159286078222049405134507516916889568228407617086921057762999452018431211514514972212471745643384752579478026014911768171231057487894693491228963416723654714710756261250422871234668594124162377658571789591046839785820601872573899507075276076827382829421898881293897281689470218029233576595412481898384462944963247910863681626071882202923287502732668914708648360711328207687152035246056109659576717198350148999230697685296842259700965578653650369518615094353394376582899032029366886164217204796508627375429075136537017858824818911822553462578363093074248023287511182420667903417005684472441995105709240487043656300465532821489535883537894152980097983102816263802521078301439666720330908513637694548574222273724060338153351392374561682689043218346602733414266547701757426787557484373989261203119911374698422858878075366113873965032080848242841002872492199198542580421365601398127379193758097513024599310150946110124865999987493718523917450940969270048446501742627988525246079217243709371613860574884390744057104319078260418241717308978202370296029853338636828706643523145517533047011985406985532989922038762178610237762040292823021426025828818046576805201148304753461628265296637912730620857572729111441032350180651665857469400434471205439021667341179327492863989938245438132551935632581218404749960590575940077836335777007690653752810360811804852640808113152593423929191189300373651033264360435603384894624379745047518309939784857907696322933982106337682148658936440066553922698910488876240193704260063048819877211833806341956701867871629723799621274289262353662769307588198000646038254603780496371613476399067046599742024198201975775518246482755342647406246688629449647458062867810156982930095774104363286387986554433546172392280745375829860818186798110567000036361098539000668027539965020055069447530995122371486751330315117127370021854147536188190514307519647510124504481507363399982556385206945422369399315357236491690665461569087158531715224616068469895721976819911576511970643482811895163551847503981932449956384662752969700698714442798948231887690076866360357704683751176917538958551532757842794358215225439267966229066784772506023203445220928643570782322409036709175131846028366849416629615531584126016905193664915942036391867794030576261297967661174275719558485524660414206529981174786496890652211964839753400904810628725730234554619023393582768015919659802066344330370574016053853362383653700142329161417127472714086479495332147791583453329600413901829971201388942631588203827456534403031282504612847997277075437133059343803616347231012422583783191936132356360764635423420332059411251894680690062063795628470712698460784175098146459670802843190253832059348075069516598650771475984968062990027920587350840699133477353361865502503671864277822489888915381096892705740947862254142488545305145906310151670277582710983215845521000072679945416109840408055954760134014570475949016538634410475347528138532210807987678819035929046437414643493416658942516289085989407255653702464115711726832766457551104349209503923562706018112616236787713020617190283520548087532688634866290081388295374080912498208683286734669550070870982355626621709879471160855910238570462589153282888189986243332560455374856051676193663403949444119620690912955899130555118197129895521746093783276618645261771952177800921216239945713930401027734355229190291676435633457202478232801245829881082731420132151692090669947239560756268595967414867753504147789096830228924583572955667717336079161051066090266968045097132707019601500543085307982796925174351497098146943410200564530894539450179324267169333779272550404973193732609311028557109362471475958576141391419649662634968700205275765450757205795451441003512314921057085925024426609872524833659378160626850334446224588882840280089908613852122961104546485537456083859362611857525302163113075824142342547933967581075710259655951375572907780297163295301550708094186555386145625461704995903021607066945292224876362901640229472134386473323478673818496098647416512566483801105105831485770903929382581544894367298470002412953887740017404666834310448572938366745967520650389789750138850969769136441066339953005141354814924547268193090596038737015249009069450639778292936636457578861670035728547758664178363949398651911826815635067261116066590553267625159561838604379544088923274832519858927572724268085921176626190135571629000947120832400190514728163099212836550904918020430630689123198667833516367084681577747255135075557799826738617960563407573844253313136852333240617662849215978304697183414086447426810290141936185093695377803544643913989269739890451622215343011570278676379188416335837912291719678464723232811632801015773627518921852034286920765217990032796137448416502175470143111947074973855842940357959340398653193034844724437754589788955695963829113152713481474186708414993712579277015206635122674355527745409287755896854330300952561096261749751802445955054536160293690327456282241529445277317531474616935091650588283269923281936717581886155787166410870079315367076266365870468204301606054995129101634994687034373474307528709423056985903282356628204565683639243744460590686547146692479391401876084622748919633244683930819614848770422671518412732403355856040018212781276761954016344595568151823603735825846663936436012155967551770349567029504142416611270574679799654268449752144358154781324563984620081683815488753950344050442261870391542859671778324847136035407080527585957695883959534914618863491669148067844399150537612929040520959134750707221155668573994026550237336185731138469371106117765540085282478334021099704594294241777884084771178993860620535587459083780127630308392781889391618933163803237831856225307538448872354431844235270838151877743746047510656894488559241903032883753238842369241462258023080928211217395648801465196398296490480098595339867155969896606288675576835287225729146507447513769677174791222762605667177174511483543794809198157770589746093084296821966002604500859802098596495249341428038773097918346820089198387541598259626977201378253612805492944856125650983331976842911082030070050328754792359590264502055587739577676536201951712525295335881012885913238792551628348993876775119649900925355944639263871520547962812007525122197852222593229754646731021547425666555364080590906878399714562886194716330759049755933826539922878943664146015319225008704067874971316910958854962571089373011161029004712185555516948764500559182619505134315757805773690021007404460599205888944628406229028993763197035042737300700838867774437353680473150755971447196145046162872147104428347176592750615165483643702030548633054216107557958126435821596466120875595077869482156333676758553151542333487851657786735861221526895097757863525758306505563816829742986130733810673973348352279102935596020773170044309875159806953795562303697111926939187138430382229328520619413249906628373959666759107210093433091043854655619754437436899586926935254273295759495647558015215838663865190268284780131038186760140478879093091592661447161169754647347908363833537069078826787973676033581385068787998034244286940397898601720516660132282052255904257198816858123614572085110826310194685712597199269836669871657473127231513760234276310187552780615210942496416670839822235078111945236784802483203924219217080790259886637527637791491263313664745009204509355437167714146979449214131155378623980392787646552957834136643272371865977865866785807621022580299129569573556557611053818633792658552605244812326078047735612932709188285537429887549050481650492243493165227216842403157263283952352995595377005209767178593873003764959161913655507176024870828512629951313729021934259951619056009441004464590639266300798329218864870584082190438192366330985035932885345282397491130474484675437494404610239456693423823639271050262559250680622712964087207994431293682412166611728261264680337670984396057848472385681200351633432916846126278145221045572564859599557925390664963675367272989559916807015454048763015892901598283256174745287271097566485479049921773925076284072211776809723974496695952060239116085107771297961102557537084465980227948238040805602998754385975733009572463389641162932541743211817948610147784876929118125761614250917572585628030201936649090798872204804317802808201226867076775462766619222800489063228296317019710510975079654163181764207377965459062703779177116910452974033097207683123894877816324453211677784825638672151284622208625690854172406885187976659002497460286976586257410625479650236467389815841859494923064320394637587754537938395616290830015165732140493534919033240708950301086312776928499159014871957928186728792067453153347025376720468286491103268113890152466749079700183083834522837430109712889416836761163855445232220711884366806220541367844416754648598778090065138052026709589515883143836104075327125664303477191649680979685041771699181655302328996522943948542646010379627128157689881502823621017100260210846944535117594602453428625862125419808997722508725357849631647453084480305556925195032095556690355220479671553715720082685586936541779145222278614639337284899481987289300522166167536554770833562829339207354642425689093753248018618962242696608175361796104516461812021701526256757853149776746430177678447650781168290980342756102293696379192091860343493981017135107421536853737899498331672942184447513480486970788731363149247088504927639732348084928459827294498006078004691027199446970481449894565666323495672610150344648159540965476732193358718458857600841624912720957413778720288998747596985565750505240270455778339057425946067469234252677368971317786805473939454671439693132631206450772112106423138011967531088157699210668891249843496146922530584253592667497297515250663900626697408101171152778886923351955051987785766056479794010092113645030027196074583205599920312668344450486803229801099399756399515447248610207060866132415644920534709394620995137699286645763691186476209818329857771230883326384489998953253505017375722726487267988879286878457268411674502596018631872077518531063386312038304237179621859689536624099504311239005970710062603679694577341829583218744923302881357968730036702563122467685759531107770683315854218619167502275860528624975727312790997647902819797206999152734981581775260406631043259749744070309087282710617234058450301308947458251183299358559668799532332737276708450421745819639498899342276243780725316766241495189742732392374147713963090744447330810173527345503157319807497061422940241686950920530011497440795062276337123464479808929084250814665226614676395258852342437953605864076629548634308697094011109280903333036416457519119630058803577470105620396947400506739271701225746821635626641973946596615912655745865079991535120984293842578311360716528997165472940170308083540530217084590923708993028479672182710331490807681028863637809201667587558378039058950532801037617085298973801030455615486830923173133444318029867835478210232223582134052126189673422553114606934053361480367012929815755507480802016617484601161873768042886269362244798418910152061665570467128830869653908126788608918011865648756821449522301425515389384365221651716673801725374690910798704708676440784602194002600388647626623205591959403293204504016195375273979455040887415456779204188821441561396193139731002408131594325209785366982958465302070678340831637355289006925923749118841703013186405857601685010973484332297414199807887593055200546391547257275174567815324641824676252894677237299437493218175365034512854104743087138280273618356372637304304576298310749848065511671287200846780683614288603479575393684245261026421518703255823776493388247951449061635295346676191385292036580703329259435912776205552014789224718324644414798974067512300702085150316216801313111851874107447303452039225988131299614069944905644058571312448243794867646054430312479709901469986778644996600624042592320980308953915606480143130446042287989375931292581003463466771452898941636266170575785083696128131687337644961908212411804855955931784255581199537018067524134615487877114081387268206226408616956079270105233269107559995307456087225540957786591801201810542842544816330118452296766355703118085520095279696492023975546536242696465581646322104341226527856807353813819029750226915865831972603839314565389140366213142963460989994730629763572784585897213542899273573468111225801650375188958243141945929456032558664851120971715156269487173614835208424516982808343491457350855366860523263584105477598499930514944376078393199528228268370223091911133864944542951512226493017506641640683909281398770689742566939082137918159318194173367923263583931490827267301415024937528843509572960426336644535215923619563960165808949361902590872556973237282840241335837428192890534159341777050050264044588869226587170318622432520916929366290757234512294741742367995887818229049163134886080210026353178475588937465999337789537422120757259331803726000134344260610101544185486376710247563822416770219550466167153375481704646739893465223892711097865305308082927098843198290029418365655439173900951131623991750278091588687069623410595317954354448400345340596338374471994997577147494350431151445610033403289114620966123667169406881474580567474863902149557126358998568227159020311821746756745383693726820777681686128705467182352709243327694752715521337712154442790000937943078274763946632745253136044930220191583649462271125596652663882756204202560745413824198618170758199673434095964128948686502657761193660941090765953107560085775448574386823720631173841049742907959649330164309127903163632746236877782897389112389238642636644479166055109939337616213302487960715045336484213947223949750810219767098403706687222616481056801729296203552710559738672231756954767060249375062432613719995836463912618594761195905133465334399046453005907931252287600968258041072178163206442036775387902848794206885673651132600253960851254137439132522974316027074270178307878790606337362871465594142112024426475623795486519010359809399563223766370362200798769273474173304719770861922918160846111293363740394618765717593298412958999018826651080883688948277538974156168046841705143375697289650452251708267691683575929641807368335641071410748997107288085086068419357452502117079525812985767863864807915906461981433663705126565892869311850717553556062299978292902433735498638926311609654551887242869003569294149777493563073472977499374517274118838393515316128712377864465970255710299233851884960898359001031502913801347539911810015500837149372090618765784222306970017604777318931350042317179255228347216723926487161542837081616536539995471298980655581408860884744925301949078419361746645175883007174929118128610642802368023467122435664384797811022251972949969801405468598501355056604399033767497834581073032145192486699973523077754905777404252070530283620058503414698409287984410955167669771886750183716996764341256544257257447989424320675868128266991854868808859324005112040006100972058697326516896126041741065444692488673537452089416644978981935128821389239674699463903418769297972600959806431370185459163569813688733795291115201334391907803538163265442835521770070928508505011194884568015682513112081300641520846140415690480112653974945654159618990725469834427893195990084353530249646667466202956493925597299833067934341851638277842499530266996827217040595155730335416660921633179115009582545470130057833940803367831764973625023739632388624445160638721509460210182266421939999254877989196994427992485149527009682945856785764522467955955757828248758236681560230361920474843712806418949512846702639029835769062914774713125693821195076724199202265158425965640032424762519896697868649984319265176283606506364698316019525774240465551549917209597408128864183737302875942730218398874986538078335344045885193622498495050351521886295663637845045287809287838856456144085247862336828444552524133990103189411748986532750881107368384969515673609844195436655186508855169245618354387026646524205504926069189894657127642667675396798352601599619348301897859323282376980642709192604949223278609111706331341646704843868622979958265473750255822459837559997871921404161145919280536330609283964526450776849842583439378647065754580708788744229832406395120157266672113977887179145191191961400415132821350226945878125566111554183220246744677385542672593601235977950921953387572086677992271756103780174101106863750581423750724518223111878046174757184324849764952074482162568665946723961700245327607214439537667199477578832420199918292814502321564526347882103711316763197149536479179592946365506764421648203137400349983384063717529536249516246628482004625476316460015387224716686253788574630176854338012436654396931518104534104709305587479574963502214698872956805574922504733533963892701488702872444300345773692865100236981408128724533141971725467366467870770329024050817068594098138362902266584432320058086995400505134286334727818822535979134956352734165334948983764713178578974360962967280635866832601680730067156859480080491027492018286357115504001091111590042227838585179854335163592501511317676425026461250848576495848160950261155117726084067172208031074089694690676829151730425581283867166234037254926828728372722417593577310463028296236603166399520471278552022938285521938473182917096841077087009617025514235224626241136978582879339640993979522718707544285946972432972161232935646065856320045337934054661567063979431603549219097777398225348642946051814321675135221191873419520695998439392530101028973769939638456220001728215391061128368289205550530940365315783054472867079134085093907381198474645554843755262732717595903556187141331685651745378409032399077894207044931229949294611193307734372045399317591097458346609520268499974768981039173318553403805483929348425579133266927906359866966879386049350925749706607898594212795236010824556985976650278625281909080062215536717511950666994921663834086542101042603910789602577992013758084355629366302641886164164906254995849579590902953233600997076041434225481992795493763228540250241174493135357947612184698507192099878592583519925751000736113753373564919007499419418471636303633458337999938999045704818782125030104351948722882670785238591474025337318364388629303713595816361312379703256238418006633889974035106846731153354350100548520521590381089722645530182079510975867345324052813086395397003103494451605365392127883704601844100799524028859497768139704866421383761730180140132290763604878868665300259069863697346814473211260234850530922771361902623018709123053979786527480235363872148202096786363672046438928805667609704960396205978265508788544880932178547572871730087572464423388046600707158856724839446076867045239471174609751782844460348120188031206786692949899249575199396499962738513738847486302144669541669904820256449458230188357925244360192218430527474824532890749646657641581014600003781433945160773027819969273117134970270006317730059062271129194113467499184689290270486571104748799645211287761315697609334860326351186372341597972544453372768644633669742256456343109526789564658549815104794209568516997892464029127285415720430856411610799248316255377453108760701055987259862093705176229694045282532867363966993723694710839095748765900617121183386057575593035242213385499196791804933565649451628114074568015626310450909266995505171822834845379199320165643874490571405673030000147894369650198674641022452990537910738211404163774055250607650909861831115207444573628397552130099123542252394684334669318276939160436272447983694779433740785485145098425563270995562886998964940442431231478615448900647125382272171946940533359043085138939639602516530368348810941670244352140536732614855565665998978658449642821783494033369172473617848162137943616850255756459413365075621551529771069277975497618500411198740532482105095810878313664727961153100841217280131879975398714603384876832097533785257789391507380582192147160331480213227726998234789910647877243153821826329936269391817957605354068984156071503391066803639777055520329797160119538458500471200456014685389984323953278139756094726861628581726939194699305536036526123079527809825117003415442863818138525878165999234561489651566854267888724844095420605462131993653071342129144570162588304474214385144403888732964261287003365466382137449319255497118700562091269146431277633788437801435031741838699816765406054896392347312373699723274351964555519255204139949152727641100429248606836082371298674220594174810522573765494499359215631246580455017624607167752752687700344372112172932266137048190180820118726536376822971975541946190902842885764491226992075662770048807699315314089833059724212653475168265424880463735135887017994064053118318247996606280429480488223600819576613760822825225417113824740635720613247117489028178984741382444525532040262630131738398686039578975369401848306101705101448070167284997874347185018389724710429792130567456855948013267611970419970527883721328982354889494284549657609041165734983733032201687505475795130625180282461900236456396935264394386374610349346052772093936402679134022910878842761899996771784124987472341930884718098309387951587783574447388441349896805189221163282135331198703745644469974874515644444156409452318565925233933789844592846238648864326458215072295443754803001295312485752205647736467575207313995175096229078021514662289683810294331058309826069080630744656966147713007191219489800663447498963175618419309430636824790417828489753771386680245325431988812831494268706456619816009395398850844923183579370833468397317497809818503547596759604661104653644520291774570048588853973884465629280172447579568762785134186056930102557367825682417694879758401379605925260548826386522417407287909452349231482145146592973626980624230570570826531783138245018382888982999863447632553319231884039136008891908942603251692908343016964984508614083963496897402845424896070763827976941306000355823487924173444654192818480543487587014469413841874176423807167805028965760386825586368683825716749854059953620743613529189678388310472287105112360215946136468954217525575573472281323099958594884826109684740571305194116166725771336679150834959728270874069620209619745625369210343508024939026868176150191026201342650530304957345581953873076674343085733353744871148068130059662286424675646436398625267445797102750669883615198945779432560581904610143413147694082014861271787848795562013947627452050676772152738465833002834042750468859945703570560904123552945002480778439252960026678555397581492900136878422113806415510670376553314332292518285038120777983258706292921545482806994150002457449567572768764547080387601047663496943341771663434126599678387322534523170733978194501787105021501769418103514007991866730440734150212211357175853984181680007336190204674955155957402300721206206617312775352503423787436555220352762536227962121366429196696312775875725020602103988142380574688515309917112374709960803516030484959545211130008143417365788804743584093755208693867703037103352227916686030141907802002017018194468427047965961509079115777632473995924653533622144704503451500906844864279882428504450614842882176853395511358332062911051123484475348921086988502006660078283055639849973144513852345047153096476202509426710743971956122244637283146375104827660090870814025349687906260508887338321222334913947121838977964485549640378704980479327216970724689229797665750595173015144620038313428023936983113600874027952911796971091561635866979788188097308412542466780451506729977484363388429194199060827298012367168959780975903096330690989045015616076893654658063421894270846271500397219311511241779883189990519849272151323157008734154530373810849106486513094668002884450950038550253516982203076167807807536674286640313693950423254102152512363569583468658937044051354675519188694938384722872862510571709246945873462581642718269609102230206684782476196275124573716079429984380062558081966802375781626081231528028287241840047867827228737165464190115550676988970599833967220568529671275644876891814201477956873780824720009856403018133112523965536800796060167464901767332862731191988726991137874750740577085090174247968734314142972885617125792863616527668513382662700028960106639200578083189959110508139974715835790212264216674048508468582350588640283304707666555906496741350753276862809276855558216359518417168043268768117887813933272935378543194649010181837818585796167915330826244644473684211925383392368532729356745071419353771419814486542342190275436458628463808856921798625621890162130169506827357423370455092927854149642572243075350670470366483529229907808791526718809361873048217874466575286116811018025128705429028363537360413376350609915768535849963648776491461997192805474416472762994359525648367074515656882774029703543563544885989378343838475766504591540923850026292655615071733557049899083902356884635238151935357084295888387515654598691094631057681061152701253420103022704078548964791882188456650260250277072557881818523827998670478138520681188509977587213650866917742572508143162435231029965974596412112016963692484061566048188835772453536986368755412511926756280903986087015639055921326613743434707991220885392599243121120660247240261824165447699561687029976371286984900033682121515760536570974729798830313119508659141517236372075099911753988495822503319827856973617163404928722082479696131131814138503246391055479632761904487879643379409006943661576883887274812901509626063664423297621462949132308177808531212435904063431216049338940447510544729177908682222826387232570492141686406720245670673077261710231136647754018692395057842596572626372008868023169424721850785806609060083682278397968044045598158067389276734929711569151643800521408241887384713840530642139217842270091364510711313689597232884075763090763880649382709206368169862055170192728014708059651778190802612875356004463329641847366438021372623510993371076126936333572693487215877996973437147719379959102175055605796719374743720846491181108936600669724503482721481631652505476206363131642300732302094031198776568976074900390049951700845567851491431452495235845582093098552363964118427166041521475803896908661238769922347224366187682753550106782108524308960377185913872713073290859691912449488561089932548404997705515930375815217179335493634675665212521060714466164709243310932653581440480133633900982529664973785538801037412494424570157048301714163389181303890138929310261404401943616644839898240170566305834554493151066702006821659027633502124666923694066829695752915146987595165888739832619239084615861041230110959194931246909743994788114538204027980804076226985619294462055538487931932415090314922231292841787292809728878386194362155826638227628931094460832301896167517970473205994169788168603403706661646403403146332607744527010905365732708894163647816723547775566628525876035025167065741623002089410454044509379579404046541034529599384921630423433728586216828584129961540136204844110085470503465109109323672161552106811848092791923774003035839520862482091187262820018237732574156744857091061650710685107497379952395526497725779772254619264500740511993412612822874033541949589091616927027871481561270175848857384387702056578774905249010013831687707192819889304140692932828193438315473903847160459373066455973449938779284466591840817075193934952376942471232380819604773864057843436908032492943711735692193914288709330821226938782815689923567685187606634054028880264629221137284440631298691562832028123525484768783138147448829554732559766546109879379883188299967911906197517553067303740750927186422967794892072770676809113447204926487326182018624652886005783073989255577622424351613582742923765418342248258149095747470131543014263307768099977486573008390280175405101739814961565713252816030016960022098149975231649105495404118588837390983079782729015997193546329963317052870511810755635292286312212340584078984725219214345475578393190324846568610908693465730279255197648450457162794527993626984791991884062300592274539250181132335480844987143351524577354489852671286386420542309523655593928572484104453516748187123034377872960083808898968115176430916681645176811384305433380100599604832588336341075121883205392591965981681201994723427544884247314624225384269407576592551054707096556223785051646759964292037931061170387247880683512986172262489204489860884739253494808241212857115753871071095613221621351680181916136551209372477039235425976723909137037674661716665653598111486533216943125487501676778857287593452247195964452343599234402614658160376433511062991765346645427103504538821525175350823682897700051935436634883271806717619301528735233011159584340187826953481733265385907341463740329768634067242815571603826714136935706618347469406957503065037281697734862434712668760766186657846832312771338346459917550842316348595712592828122807797361339894225541789411181648173313097727398380281331637230113198506311642381399204639040556782187295830695510552745095280763532162106559111984685184274394430559622932235020731314508985578570387240620017365692000244894031570443098437422430852895283448681418444987848644169583043354811117825365577341569746822150873112097101069051705052463862620248840879477713043741170153393561743140810639485355239438884602586575503110815905387505231652825980926076165446849149024675812006613129704424657882360023136899249538732825025475194431674613738779583344016006739083073553507278905463557344726107105481680624348288332745447594556637737236596692394351006383944492116773332681267806012308658504603589509051687762766788967342042775398086026223890992331804971832119704266422519262613263894337425444644855237442639258125039638804178979627229059269429504474539338191798959204441595596584769083801723061970605877402341677619850188784196290402389979665361952759534638262380884436877045323226195752855161257434431877386854714426132937434238400307451855872862189914277905816724052174028343127361181802204310994819324739595982345266972218010796182423540979497155551803640746518071377438545427658282529202199064679425462106908552566567577110459967757174943492514124505991670807774462852402343793668135183865465994369213047205306800759258890378216434462467024327660124194739872285666991206233755649816319614802431273858787601507715581151758233346206262595448294301552948424007630079793286617719474227361095307273529409692499172347778106005492739327218210615120280034042564213635396418834584042750646748428388531646502843849793787773376935101199991636497244701727139304278346720630036493649601164985631009511529238914869506495781691874065164752451731255744255993273793402954229619001838618593134526449536978376643987007269968663818465776918111930246067239264572133076667541005920432171235694895251247571562111799626514614091585632893498450418721790001320662085865610447265303338482796105310135272225711937004476582396360908086470659515330267999964439328835163262339384956349931027116488291778571071455409500807602459182187105731536848793013995906052686515244855259530453086447446920618880737791331723384680486390100888947986436738178704642052172814676834232317088698253645226264609702289082975359695967675765409470713592621127643913791397971645941916925106859806066641651628534400725082829174259383095391070261723746943550922890191933768762089850568901795970380148137125179384067475550318254528130301774502673587707908926690144201939644268485276696349345098706138354871467107089129604741743062684521690691024138171086094625486316636788356031990224912525222692329122755208117131280477617197896695131696195084436722839935344644181670524862294942093395021317943446758201094660400950085066719219079900890482328271023171013457622136544073110521108636905579038672057885807163208215338927574554158640383732788526393243697889230778906482737148617563034182361436702866458601065521373439800272487830711421849691995337249193815619403385583541217586633949227914684980712569166263028358178290848316567220295224222605970272699010772976990057271805830656788760681022292227033061003020771511240593225218603764700733133529500459694808465003959370143189987101726918199399623358168002906660468862634641475168477469263363972028697782969080185028478003277925340353804578812926802767419778034446585501911088822661281391954562616678129625737697646989922704221090886459726803974225334172308892353848623024877261244568081518146937497286347111773196846109217955708880226368207993094058519178841466023528167913607618490715621053176645778778964412317623588837597635691058737697093882820689407891684182053795446925529845611536594857780784467957896901958191114318530568417967631534506430868543150578389074825526243937880087962283781305577695404704792192763350572607902364405455203372787171878693021093227727671160389682427118477809968033656899191833360420990963453005521927607128533918987915401379364258523832981246510622173709467962208670638947181943988644331799067114309392463830570154638700554790051023721653074755078912703816043048077563817407563290641087111459585104207345260074488166240208103819445290440364135810895399395022225578411545923854036784717962992412691490946821778656730335842645027064721851656544553671475480556826752685179444812168507162347410294772735385001907545287713078742828294647188900667250632496487317675886938358663586727977224836812610354476774707785671113473284808123017784821092126116534044539677057829360817964623620347934588638494482628173383890797268932418288447236952464568828029119221870085901296819427229492545181208306272549494089922818986969275180827688440450354770901885276299287470839258549617003200507722587372570114728566586153156029862751011503748027546219950556277086727108823394200369545158067584785900063112428724356179754001969605537338169779017574779049813812568253491704621026709464082399435018938951026485142225948395365964926071265113440995604876011122470946598410802475002229655082914788774938641482566506155874694356240474439630052345184836507602298903887860752378271648569975190784577430154311225475234390259159223284534004548987736795270477711194759350516612739712475156832533840574996121480244243649739878088568037771336320910204437544686621242233162951588308987615351546440603910890756490758285077920409765733068764099519144141583435079313102887191424032335446521308916456906380922864633869268208149291280853620823086735525117921617768694059770328192426274822085392942930888775753893005723775641674213609289953598279534318988395274205958248853625563530961096840089731684673372426373703884352943323707601420481288875449617620355570429751656932398729348488807678240671811060945191653241855819749016512811950465917434941653383005129639718590482537480501632353900854362239510557094862829123141490121156066006405983967994043989287001693874770202393490441622416849852810857009656059242280821676679545192873004939191318072352961974001637654454022505636407423978402148878125131847007712197538368970981885426872913287450320584603628641252691231590987529746833427904796899890304970463448550043608319268383617880560466683960274697348134217375851479926350294223670207475878585312355620248953351579775384334773195266853298946623389483137244875877730394486535586185865084806838817828631668408700500513756462827059021833946187652107810851444159616345397030867959671861694452829980912224650056493725987505411818515131495032591908060952520380112862089863736276471967455942018424470787217568994579099861232867457529356635415463596516689148169824598876132266542065696860934169937584610513015131906092071935406855291142570692175444431686556565195597969208719415401832660509261100399044807480172579583929901103949993128183302541458480820177384725912872400175268984706177804815368427209345004757536920139482529791099931776343300181205210847314070233554504947260707467807010054739948490981384980309429272196412947734388870218356484824543073653203830800066778562216473287971710419795559019946881224967928974144234167436801222781134544083500894217515085605077428858798047913755915570361840511762491256590527865274682328814538218489981022069439488189110973237483108260827352146427225310364499933209633653810779095114726203496693556178531323256446634512917965441311234733046288014097674507627378317599005470210117822533806186932486949642413074350537328510730489765370023618259646462205864553693803885161012229003734150110594748360264024517762274194732375462611970657164775729986254814578619793530100646985044705442800027149896789971465332426267542152621654501540337135406461688047330495842886687561500666748904332271803809425527266139982024108904297200870330552491868110701983411755600596548828548809202976233762235684629823722096656522120822844373126214998807274408254642987087437703090779070273051044850097838903814821805978561368802330565741459636787657802214582968450201959089078367207609961749855758419951783698093203277839582175347300999192817116874306471212744986150507387204147860864486418784496909751315789797472199499414055117379980097465831517640813715149221881444337063939135130355759782853619709021530761250901045031851373602126207159854558574253143169235954455076915988821497647230241766735663644476883821990666963436203453558609688661240758752616880330680887178535571291627788629605433414738644992437612317411234839427983317129524424301888900599211806779706354737978354974696035874137917455480583885925137618521720784398311781963983813718704626186948018032798341343979870592227445205678546633649293125871139682210431836055790322582200375108369697536678194915197226882148789449442824840032238625294964856402462614326745698161036905325438419212980216192217727360194360186444996740084667923602607096148425306194937859406257392728351053350594418306004580682785196782187822443410665969524490454992204711962977844769971731176063143075649813010596138980804434028201231637169948545439198819341808533673056600644224419950145030723388779236201030622249147741847387227882048137523864032745410097941271964652377035860991638453146435438028400680346593635069969602727693347639474375943421075633370172063364821111140339916965940553075847713623681106482013227402567366524638381343972718865572890564389523035484414275460788639013812703036980693573014925474457474595006607540128075218017129009421771423292594627829191438511001189210318848373840754574039823070399956527609724094066980270974765871768387189255152504122158242250236706744007244181122638004071601697420900997457907755080269348799447417014471998811051579384886160601045294893570213408738628442773233804468175323078098828042185259293379772148536950278872084110150824078176922959001286173047706059293765176489979551838966535762220877368994490716390526031986544598775082166545686500498530078761162639395321823165716902954136624017565416827028421273843464633549671944613948783939896348957684942906625975694257300890027414844286710761962076486012855633583483615180345800001134874120194040620820277867941151174770277247326657300243769070143564605476159768521177279444429067271584952716793170024557178483882379007408303945680908698010853934366592337617656958090862918191059835554879210883554749249826495631151660486211602831667278358000483808956010170303899167099653465039070644783430859934506746496324462946703332306669867289391688804729789674026299322910993426570192537264177043731863317470671857844422286454885366871671739179075005428495240971230622198391547391994750906285582191084951016878336197370918145655874629797486136050632305635434290328763188366749363858903794268549893650543128921038764282988148575451538815689869309638724221244354007681510439584310581201829812567434025192317758559815360376449128839429596722576976314061343940170900020053985836649811955708208655395556572800430905433029116739086831461342649899380731953435181423220869522902518445489601399755610667341758713014454658848696890103499904184644912270051854573487519574339566534347759170882103659070067197925383572161221331135377347375410570596160171733002974827371794485828967330196952086263868416234964694762918683027236741593751489903239921580407660121281899651793443552765371878163914078046768768941553514297664319792667300602053580253615914851910931812051280731196563556589390154949057958159179682241331592041982926718041845013505922915080014339234907692473118105400013309760507610278383177428880673959599536848086655697551016122603996434302013836474305007060366483756983419579651918333062335998415878816823819013438910371026397830442819693234725807186934180500358927222336930143849989892790302870754307454298499095323197513537617122327371923997320360446864791499488418358665913062435270225947520499503795143153975013728463992959341089282731476518037139168032480158621722975337499249556286081771897692914902293483417618258842331819822604578703906358073160179590037210818420373177030973920466489023915552593996161798882223138306020310706787123380077149049306825178987471932288857187386876330535975677390069041511525061633989660189354470966579960898669863836440399870146418433207692617784082032856486067021854488806953000163825491060104139253468559803343952234089519361214838906347517796397206121415031233867488258695775295073111804768116227948525386622008052931558685664602790939381066354661802299866609639472160506972685803384573923045313105662394193704633743060348621469689559087419550460602042794958700479950602604888430835661671288894713963554352100203595409945793438621185174717787829192248518414009284286788333086008827320080596001651725588597376925814199861379705660778038844276358744556578491137298889948299069269534420531219422849155013497936348515957947914153977942785863681295687538419931688970131980030510220321358176422713616181977303409250036532863894372461303311190434746025689603637087814306342165531462336705033559339504639157973190751005347471581449060294297505304918198085448894454370244538886390779595855908372798815526943051602196541858507219471338536548146294462918980848846548497696046319839578996854360522583504807109218650182467493094751154725891145585560324093608797001579274571615648863464949203170570852746893473617960881730091395089849602997644937834295354933425459312470437481985482678510499347257900684734990660507726465538797054431573768634941103757139336699601108311232746504388685521869539674961908162719748012416785328944735229892601153240578827103227033021383077255821206894077239688400845695164063196585076900269930727669195635717234909188753510943724579213932668714886669902924753111749707246086921821347458686423221807614288205061724711469778789170162828929321007864791722469609579866622844026936406538382260242336415597603540394793138384530815585681504339224822011347395716219837822291758057905901456953743887037013446046589945324469825720059038256289789612413358079932057019558503425930155130601633555898016975175532018825832746548535714919361629630245551315417496940975831347457867306590107194257028751502425959114183462968033723353935635821717307263711720012991033703440226381852850737108684074685970221572317371785313166831874875082102575413458343153011921170697784511042608537401269603316041662984034014495554234140139813229551109049606511532722699496417210552192737689742729560384587384856363132888228498768030017001358497511729331703747943557364111388322352835634121525204100638792470335352565235817636757375994991209185184257336929785024141648820682599034131219560572954919413297258642384560617020610905283012757944058305985920499984091789353968103799754550737517765162439155719052694336060079498674417884252998822862882774052487363136418323126085494817160389646253913316480285616807488998861224344660222723951136207136000242110854151684399445878318589854264221152949947781701664046688132335928594545609753505526717976272640967224531590533350902166538205635462295259231290502995485715850722553150734864842720781433367701418870688916289966452112436109424808231201137523732706237243319453093401707092566558430706265204880270454942622362241732807055652877734276813336394458449130075602741114750721040810010032168172623751697151890800421043627520861072570211254289151765057107109183011212220317103311821613257066897160931444057099497202985170581452429310701758373226304463249103564082755327956957693716248468288765692705032219078626942427474052947387966953560132636698060822746109029100930467540583055370298818265228952344777859894969753691988150537038474970017019542170487435947147836458888690109500558918594365524570322905440808756552272912726671943454811902545268859730909746954963708012311587122799283374048818594935277408163856024648614728402715115555849321696340246439937537438268984351635954808304997087167455379700218288081737897856166960159106411013689904192183963756849048449258753293049648059040490659309653253415480488215198548317055464884262405500758406996537546505966894553098644986834676026765283360708862940656631074732142010718349590978582960069098294114397741417538838807769401279204697446182319356654345743712551436655246647568964324766533764637351842833742586089616187912472971337030849918305063542852380689982631072340357964196351390099138553876743052194470564310380025282820545976009340564081900384655579779925514827792309518960286864385359572558081738867289574265598967960242352948303381784213400501080070293047262627634550955581740636422920789143791237214399810755210281323509393361374770179924856870668361120694236776374035091856417355169618853372199397035780409601984922730043006992963622390275976456549137254461738976023305011384715838961104148253103621662398419730428929405115924749535722314969634553841007172130387589905240715014740540837747384083154719408067606134693268457342539438669944643822900974993845790323994746858684556528977129092845949646323745495447053236473964732560006426218189094952414829882855632339347015772038669466198941709833773560027557974415053125274873227729259698987028231028687412362450161390970537382994461532542905707230424437080787014195207988962639485491463174888221797344874251714274496208809083190956982521369295095761823591209515630274141421006611617727048384085473023913990464005304395103850008340966539782734261092418918763195768064005287200614013725020108950587541211765559105756944625281663767426196224654992273945471745614411585494250257252795400820560722336365170625891117463529739895775469862778417666170102191834169280876186992370520438739276697726935745881450427811598206400430655331698774325594174870983649721708053184228646279255348287160441578154980328488056599130062634649974894880105287849030575429716232774959319091889644102021496398768944013090406284679071705545544382080827896908250532878444624114844459217310621561488081958780792145048799407211126127661239738995741166121818963464541466033311630811197097756461806576067925456399867058515933633193323224821202863909600936315065691430620183539189385562365211797471172300003237303493999115295443713783556700616890791427962066315190160376416629059646700208311264794715554527999723962969036942999031603899712466465559750200258079874992992543640236014271152759158298322536226767572395086024818622346804808035664413772481468370905098705003575681768959519620363749682360479667139562464898072807795334294732133099500429618580413161788814310852174423023273005489477033280836694083288642269816613651517378406939262701665109431560977426655083403970491576151718563158367775308886587363408429432007974449132926228642458291379790885468728182172892481943048911014699822904043070101362331494593635631099397682398071184234185714966286897446838315039620603355279109574899407507723409175242224845523756369987961865373270523364393889373713699044923753439066777614948209143447341847873550840837366770053658523596043611287622257669928250216893070661693428521927396768338373848319821073230197607699179063505672384667053561061770534227049086912933189213033976451214857455677658296690596393152902077596411487459854372014289348012082268640632924005671160013230745382731101523744049762327230664846769703429182933620164110162965950332235654534673355930420194906488556517553850084859229261703538377721231693564374938264769490458281735712855313382514968152721920308748005199823925052952480131597751746403414155087764678749638349731188416817454471311076169988669495592321621700202547416735570458096543601370927859109693596407770008804075402040289984662016259166042834585695144196724661335850986643273350939689640520995036767176803505216524691837402775526711076462392902915006602589950423035559350692686458534437062174851012812214380387362403387841045643302076355081315438942840078073892339173675472786745532991282325488624300142148431347759307929989857202322496661562925378890097156788435505170435796510578707010372356432242862512533949925677903585583747441847697136367875411553688857092696721444267535638418608691809069847558010936933471579628511855278038722859621610079434971495863801124514587226946287199376937736245126153451705351226178545104810064476388194505094914791014363020855570523783060538829801628345447938662908873524400729236342596120402140792203691269664886666186216641864552567816520950000978383234721015260750757019744127481078826253896232280693437410545388957076615881815365166003540068066477403057978140730607261088821664340103280525205340480686142906268123487307122113952932992300898118282389409321783642785047138102336159534014863156794760488354891325990313191656946438946659739879181489266028204825961269968088038642246156798734644719377179923936365214457726149933221733574109317407145498091078078817572997988786756473114358483824598066205141171568768224488102920042858520800569450305635066331210976642210757227909220168200571175889979778695750230813350834685634891783553862558357400995342618931489397492368265591032508929205317014724701417121683639249994292561631079147514338884200015074806412224809774072768543762587667624794268087728933749368461842241833742247232383646877300876630806023931898028025742955947731209794213576170317813494323210828718235903345972057836890301928909777130281966371950608059338888623035138039126391403381596729144204500474621386219363457376107382134612252286482602928044845793162152553881586547703099320756534061220295670180316561700056341890315138765246279986411109795267834121541770007609630392162471211111563928844084397272741751879394443285315628356778264413734715702666397841314779109089241436841842289259687693499488893828310401346740147211205892715990188105921964933571528745171602459957809209492181093785316958159272721559941013003756202610771296134833576973526417700199259624270430325408905779743343791388478567840701254322007783389016097804325984952144815788534323133096918334356830842514513136473346836885049296004511936754351643069914649218933827096291622313193744248796070604138202105437200975260909843956905477195417825278075630247633191664130236452431678962115121532038495171088650670968833439146420451443308450860117869653642988440684748728378814884139442463908558172690894381009643269789035358178683382467668312499319506281416002235488835982980972067749687972190922725462157768335768218263705215902553896505835181631695176920067908028076602874485637774771230706379604281669158051694323046134752210645851393423330407794091787826487968535371280981697612658465631172281510383005677805202565976905255241506652882421790159643101043281784053535912898250648704219706276874928327993953073979072856797016708060889672189998426469456348825122217950839614933120658435924231475547244460866416256134739057583246099645570320464509558750323151682331557998869983262064330739058065190519574936351849674747830535978177754777450377215714578729426669024828012864233655641887245551489542328143946473463628201850959853181901536267436015633810204097094999694598637109102784903152030105022022898898261368025756105443749548415566767931017459828313793351254253163208364041155063967776997432062574532215044752909677558759431894796937600355421339107888858233682227990117936019164661233982704859336220210843496634396629144687944301800158981264000858097092729317949397787378312368058346085069854290541940563320148299523775440194471311153510044992416505042113630745358082526226524226766030918371433322143966701585800256173438896219441196109953265427877089290357446026116194904472005682719550315729397081062475376608520226417016150012643191711806904088037089981636895023828206665118651540964400416366074496184610615079624060906398442113529698664778173240417841525624943948276393095758995400198900955101418000580626411904131332212749570646925505336892143800505338332228504372929083801667315681119465873532001623259164754542432388233574111029360058137468291411348948274793300381847842643627891925155020867330220741799317306491335000123206763769474128660424110648694983341081886026361689446386050526557640799470459223890774685491802086719006691678626998039122816269020506697012099297111638134441555178106103150664509287661775097872056820565713605032488038428226393841023912861979669596676089372923287453300905740065551147583211808724212020564027420148298992473755033967121723464889402959758337026467877982581977712933061940942550239995789779670247732496178123095467238950093322167389912429399713521840874576511545077765192869824382195018410833966243988801218032406729039158623415201761314271749878674899371816263726149651809987468532537074773434325201219473882315290637320283188467927899601842452139795730310192268232407060168684028687683367896500879607346369187233049723619913482552824326734119871562907562777758045763173465580426426965396214612496189330067344802728017218648966629256343732399189995959079464423381554989027477843758263940030259221107850223269034263726614142083767459467917007895021285927209145980669506610298477090919418825699467129643328723807850242082735818290851894763007621769890353763512150168485023739609886345343094036375769089926558001162148587052113552210384287968489619146793748242386118985339649733799545763310488455000644307270697489401776919784257750230164981427710469554367564197195485782891852196074215523580312306943306795199326521643880272179040737284532927764629220803759810135860713151400078553670962654091659915366930561289041259867403673374560860419863007335128826401473544312618184464632452977845033328728049644150679643451730097141503387587095254278762870688316635356534780253913916733874130167599523432320106200968742585033688683019024961936554209197944902797042297647091085692323214494978985324440838174864490095876961901156579689332294982731404880683912742144223715952201148643958995922296401593719141537538900109730333619849373645031785083023130063738358863407343974512919084672549157583648028782599788874182521244335594021041397844500517002372751215941631677469201215783239989164100487506952978058124655162358493654945279356233847161496576347128116897461608025351070223519306305230410558258153041001652344649728013323388296103891619898301957411328404103051205030333912665796140622750835526344765663791498840429445834398642854620602939702838990107775576519787610800449474438206024826504723464060370668196272693180533769666853738179527680948838901885290632456828412712862945197159656310592989351644442966706459243916233758913711277142059241720400922368746104952927348853016178655665500350269152941485704629555303901000919870074417289724837609331029711799734668603119186660858727542695973019266781123823780745644522552128142627921211077389573971890106743755499512766837429784315487017305411611759274087159915403544246351129645098980852769298481013191153707430955931253958689770384211932806215862729985176447090542055867274061476246432688214627336766410303217927848739911007867121952034815437181655213213058118052537616085964099008543463806224406112985733037201030244449526443307467063216954373103874111929998204559906666363595893267944780101796830141617734176946464349033867986360864988125413498842399058273661131208338040319294172074056870648687339487728226710667208824008712816457495458025556254137859686250670542594579967434635810862106325739722747022089237963231351123334779589474681104332203179150457593913003498760246540348919152922378936553188906067907604664521416813559012670003332352845770912474025187317496660913923256995122914681299813047696957891815589425712600431038483253836402009205456583065791384171184708246770205242951823482811041196552793232728353497530743072717803005903424403814201145719909805600851505992406776607447955926263780803583355936377498012265961262546129250962839966537185605225381783960863065098928035608555436633076265226303902693537407666495755163412021996526682386219761766601558524100545159114884072166499845250069724687558898926260567568658888919031196534156761717581625095074767681599274254226096780398563680360560219709635182669682861063643155313727117785057590238727992046246644259236749105902607133111229677914228930830240704996897926455110956884637574881833806145952657646679370632491439109532550488063550942564227698630507265659854137557607578096999640960335662984074482932789997269085634647694085538663893185593845806853554093561769843454162346259074665090071094854526856326760876465683761171430024060599972573594069442991790092314554492295004594648747195992911835290603350434690640801106189648050512960218947674985115755125981613430444457752701916360296717017242109661110061611914605554469380732641971787028590394484952942803430868381829752418837424889865572166041368310573340736625538547233282767115509878809001733290799080820187046612603853626707467701089965854665834497658720483282162041957726254472729082702067441255833988370218276129639657513946206991901532019144123782463925658162013422817691804919212595697189855949025366748675746052461262369963180803416200664007355828191345784718336970895106972219072899306320904876102883906484021350853845203897875921601934613120115469614862787508672506064161208447921080078946607608254817745771638747517871410779663274619944061651507831516857725601832672735880722395112380004552868389670956825677169123918991582587387132967590489013339097904435667778770052979900213489859370476919013780490673609941049209484608693491961464848056565318348265806092283520297337899522664723447451969121714897426418281250282893720322130964235559976373512247431239437069030730701315630373606314652457226220645426340395150699656489517397299321991962026058850373913137189010350822269842995312152131058642574504932702309668881444793154335941408091221663708842762586718882274392545486185420663517452883846594495223617651015299413034388990843479554314005085801432628501060832391758833726746398836396063236552046649559295068277826227166735361234583712251751276153481361536371686943660372289759196667932382421620343158743368534236700669523770293948719760191424461041776454078519232446696584956751537936538396606123552378647290118240170649615841030286022964585146417999697655669594427879485182824994843477335050826913864044547562358774296706974030335077792347223920662599929749896680161247598268720770066598119176892132768167437007558984432255414771456746512355084906881483690458458538481212346622245659100797889506214735888054689967418659872285096304327454863039778316842295996957500932717851487795476332129843496013075351041166250740289862008212510646822020896281994647125473048276597634069699830217801416073753999625366572590010287713516417120922224348099339319392568561464997983935659396934988971891389788658895439859099148720474559151669037811286130960940637650891800444125626818913428213112235545016412206065046920669945179935278911221269896882634072756554228545263173384406122568391612433122097197275506239802555404966639908367190153472632510120107834461754080536633424042720022561676330152587671585856683176494034519217914649278471343849199109725828096240412159348789674608092331975273324845875918428837232577268329309579184283499209482347424516992848227619629486958232706084921335638886806553469609156012772525396018564536403333442408684225217252065587846090834642160341873078543123597278789381837305001880041410647012894895419493524962898896329229647027869651853579872580121350153008525833287988300482958240007587358739086253930311619291479348804571797244320837064610160604763300537157647894819127331574999863969093004352164084736694749525567563985704145242932868376365083622714790778372475715430921196351421194641897802395281755659436192949265517735890733862591139031182736203696164837607022731551279199345297404811395067482762579345691095968556688435983999791492052651600739616263125063467915946394303713139371772799154439632014659439691202106710270784232861833006745001601324743384480118650418894110019486545383883446135973739667017965393490046178551166474275227674663481463420029971730982878213755080383934663381506983349842535670818077152412481867435901171203888916835692588592173682053730548370156563930107777121038063027988105662809342965832088367640740092477712346535973341157774519217046926964664952070820733012753233363214419666854418573024704194355069012673190602555693587177857769830520939546606741847962569768648196682160292601824415582551683482524915703977646124450290029109852336104097629423437046005232913337249724621429341676402488016708437703428305653220220924518419840874303267086906458752329723883653785619217835342250240211836069478559730875838827342875876674850601180106550021144340122086974667699580877828411659925849011098275549555325194737964971718032448163553336517568691629842325522684795427599002721498764514868600072106092582203583170693472567307130889863347076779611742572561185237356989761994987695565673906395770065361913082377745379606258914566781593774036111426518757238857091030088930997245200157726959035483002584551754161834681703463376717039714260329210274355904791283124565044964475821910601511050655990433506849298149524699874004474387568797652682554293097605446832816269697234731141856532283457316837768570070444805324987160226967235575733051499537229700648908869988250226791477017917069026490312546139659085260171316334302399964575394428776053900296657106012288261209924064402184073569796675888290315440896953845068472449290095135214580799532415388943788091085072301620020656904732257167903469909350675531993054547422586203186456750817216823355370033089925313516026001457506210011938237438567877691300282596729921307448161383838219338933115339707244774765994820954414261692295636213570086008519111247544355272904607071104604398371468156330092710243741865267078017927952158959316760055394791484849159294318868874752613084675352254223440280863364229269139362329152539541366155609095162900875597325324161819804010308022338728249389509568183062670010126361681083277775335915527038008566733760389816120167112401899671835499480653178154920403056250578491508766172655053541198311015210480945707152025927304902180629061932268127864931464097816892432207652961184610382673818856729592245797725398279402977444372599715912331407316896115931721057694362279616687666746400975321909894391759875356543178433033078772808720760210585460601824312961667327276515775155793566626886803521719267009339072391229260848131581785551029791228993245331863024297080343876184871707245506060517654401738406717499271330060999094170418360183619436320352832319247127651103888796340018207574971785941953777698959386857924469149060446500119021808766550413132157764511126974037856424107125431727682539964687481287076771478816563015888803499782698235158443015039514191645610685244682448845941614948521099786492288393312769588860608147655165882975146851502018736774340085036305811695239082543682779227169430539535423873312476689341499870926755080797883696708087008098203558723177930310492335803092800067813165457190039423240008341865108899595798806393632991988198060497447489727246428988877412815850246460646459404375871490839605787360570892928653139843365554265686067888418189345365334629395210152614899332082220317897194371534851826027371418162383789219829534455608180083258262686762076608808511551942774235546740942957378633002732418040118625292130600241983361753910480380782453275214012543421160941001475889542472045928634382764794602784729892398847803890109442913487655142098182810214893703176703110518125009961518005161186675906011422217305864345680277407174045231206244867365805216711026366618831655690680010117169971386407231745257967984181237561411715293861634450576656530062537769071067342783634741202301284160724060542069700018128687145053701957241535849903737444989713316205450810326892355757331804460167480804023907620170144548702553299573791340378139077097779274710382348054609936323199634958207026914504810015349717436299405066906521095435645547806724161625354018715697888521613325484982814950037500765317661837416330443405279478434059998250354203450790122088510708174091597457825174255337449614685797015161405728296566455230011877949244200949720781196070568871616754949467539569065313881257566281724021489400495127310735863252503572427254196264028590127531852828873491150621539872906279082848310463942111885194446560779564035759354187941858314028219194743786402898252729822003146111599882917187987485521677098825673558104414429173571581455128526457785668930641587980070169989866961209873429486708840881180113420291138454890071054070746609145597905841536585450611411288328525018667290121644782257249560685289247057675548435672304433464987061088064746134060158919507986820960670705609352324032365981779378224530279295070136681946364150252858974534625623388520148040207817272225965594440941663452282415050201171035592758948878759127950923253413124434499665217947847293618447714976506228742608516031582686821394878749416862071412433719462855643031306299624388178612296865568082658056360069531327420786147187534435354431870588478884724306282217031221439946120846457409660678509623859495205272876983420267617744722385118837328350472592605578963207427641906772681857859711949979445454259002641419231757696708467909173681927818808359172390862082936954720758185303977026051169066976000009615777756904192106911336866692878622179599350669795041971964501644386370310385695654169363949290476522842343636739248664468874806878467347959071756108755101343490434732562612099209740369622977077050137156115967353299286125320101461063289014669432782530582970651556257258756418159114484513844131913178560055331915984947389908996609876841914302297696491518062425162427485228484404290110194519085065378898582694800212285584629802904093424237800974071293772974369138839319860831588166320421158164730772830099744122170886553519398523016175185202318832053108656804163500939493180321493473798743212153205407809202121274772717398824287077599921974690894919568646795581020151154549723826731412482391793430664845566008838927166832551321274217200539373679026536551903918089996287215474783517708963380995004416318784185679870166570899852165639963558195860589241806220857601873646000160855918238655813855979350172745227927322329016014417665547776777540323699829329369417877432234091262080778258847428180912107695885151300303396486098747038572683562631884271622920453721558698623420572001799075817200661805987606115059090532049272876057725106719677258918440894502766238248861942400840953524731899879310310952356025120076120552229926715500103959468606844935111079767835130587695819771414648198782775510342474384392556190003649204856329323199924211163747719636475140432859249824632907114628545592622636043552647497724721096981225570563630505330296379447685752037889919130241183314237599316424013462919647626819475586828534488493795169522829783695177108358364405709408314008352131091791561933965095928155875289866942781121788818611515225410247974094693506381685645752331110771443709749204612081257884109189143802262008135637839763642827485202168074037375588002509151586921161422735385483002496875029629721187376865368994619886806172019687773538719111493996464235732838680839027972931417553666990066981614001102028499100999757711511709988866329487766441991821825757934524322665771894844453521016051532422892301407114735167383550216869903938286644913128003930753549157798876994206708789936291025655057140468924611736012387374459193476592868471762051937817970739341946511518970208095425117963253061891330284993681464478939614653964476869345315736767139940987007463126978343738916918291598756871827969539945283537353091316449067321393118481248796370216290366604267491689694399660828328607214458915276642559103040444814307304110986166968842508698864423045604188664478940545996899215851076511162019683960180713172589472211800449260211877998666376150449719353628523570842446396752149381401476361487845922509171494646011886971618323732087506974234126657080148661620080106835720741963767090003442527725462632850410680449937738719225147918588338510392608017964178091003125451125606728539672754406025402582584546032275946539787102580443206819576591628414641934879894787816907840687498598257434549082734622640123094186157216829538165394308099591825911537282774976555591474956743799452702976974956311465279668371223262818483924335577281105533618259321527692814267806188315122616157344362093093406141725248096336749521968874953668767348947942775870732228573952245273669630853403619585743903907646394499208565830550806266643420376034525394321983870940095919579155154274917333635992528255419393895945681461486699426139469835174864539735281308833516539042010183587267817499549715104681643530811436882144291145973165688381176353118847111782822480330215086674565084140040579138600810575211051937913702259832721509599168158291291199569853415362788720080816979020394125225762717280499273768134454183276499095195023086966245531524836028220479474364535439153659166069014609469953727057162653590223493605313763549708116655276270048905166218144889537093741029171012594097230733295745548992680820805486451024114173526513318942248809322713086449196458144304724209620378657524435975672469930698850865591896116309967622249318228591237825035285228050729191930840172492104881494455740734127319345497491091203962860153128329042207132092456516284938270273602844241064926886675351127086897545290789829309488299894913831295480076978067068000417123469532777809500213679279743484864429428742528993080739466923823552962577351594847925323405825238662452609441303394939727129119928306369094792981381683907862028385370231276224839518734696308977698425490077205974431444044257717390961256586887135305803414458774374156727144405020600098921955845229544094164117584972778900702741329161290395591184448692648154680292613127367576590052208055633523281222021010953039678761900351649747529011110464546275928916269806089261843923664254075960975997411907088683219612837435752885573191088907768640771183129544494426529358017564989694222142266678114682295035369566167161541312912346065415051139590456756876595206900807665920176207343902791461023535302664765638782349060984816927316924633439966133922515672068014136095717600589093389049057481277162787188203175219563464335675277015363791347760929625283327977921814100461336890777793909927181282965307187360667316054047878560566990938746009811721313171047060493144742812992834137626981861685766450313241341733338668390008432128628508183428577592074253861635380142322002374493255280533705040573917973975686847789513222665223657957322038552198881130612581279878546244301345502673572584644554389159969500744327471890615694484348663791565685077170078737177056727782548556270433484580708000536145416022050281594135503345608423606944672738643884083402567412851334212757068118517748379226322893087347210583847538076280497540917722584478203636631382315823800173078357618135399442317197414970728207040450368477777690360395972323986330523246840793774303955445759884064529433024631515213424757598293564175372030835376634122724119924471665131919367861047088233103328623366265798411955742160860745128307251657704306676348121825897621078276328788758279165130105968076785038296113078214882810312427373901465112548907723162919401690247435229051350657188680920290955173141847129795365303749898560610766963925186495471562602167081144220431250178592265830934648091704686883947324963890607336532715928986349443119341014020263400691018704147139970460385889217341937061736519284959353188620146775618598288240801018015308282756614449511445940282986689300194253067029073104707895548837680853734097497306520665496025610914502663173083947765404000510556301865609177592524222159675065536753746692478296770367206184123943231208463463490577546815558456045638978652058893546527459017343016381828986039797886292406357373141845510329306265278971860482441521094657245246675335172610399350786990741915620921853800119223748664530358745668525691344183117752123421946448635417395193738216943596337271973654712582270081430505440138036919366514201364282030204227168646479165977533778699223595714540418629243191821700888933428374251072080394952066347021250340487081051294748087579747007936899721558408529061830233435819861441155169901327984427585460800192069168530032212395360243908522602595794730510527797394262763311316722007145885231987915248227970494216407773350151080777845806118112489676772671965141976093578044365840132206118873746718135890712673640871588055378600958875547837119009386054667334835490136350260144492514010283516821647910985703562790515151947177393678493209588083721943553731314776775424392484048186464322138175842288596237062557167206128545424089387520828851098094243457676143020645286560174341319408065278708482712838634329707544588230848255496077667828231710062653264418738924481594561154497042006598079320099505539562302767601128764064420036334796848694939245263442741587584152813743158884701020153960978919144218044063708927371067167289751557354236817326967431219710300219204225641941957243655947918589461049981097483077900046378334847025788206724489650009238461753164905876335945712151146120282477403112459233976814060975275578906869311704195466122804561561176502722500968597143985497291948334634524608134784574769927825245399346160418777734824606206689576238537176836336453673356218723701954255250108046343410478884715040968011830974604809225572947777137414123308136799876625252353212290978867352757916952400490614961707269915531244042261434084575804781357200144335678184298116712346646158491127436607758150920544794033689476391278890903727603622566577778808277142346692073908821025118621103274027516230801050644998508768512021049674213001653845373224558323960822128158247092722254185500728331720739279262971486874604914822397057641672863806615797869918506856183791621254638540870199518634890839446897187221871654585808268148843044950086804390706069073167823346745208519471072317540000625868268106104631166992258511470099138021927570740156452685317426284946562227529448034449840124110572480732431281997742408725548273029788910876716613963085687771762513980457631882442066122470227087844483112918761452896038224219525135926351982454237081907182127410208380477734235261252138090118320115363932806332905279279450328116008771467423286449239410826719922342162340381340693372432039692645104274700895307813373769898008228527430779192973493601874594115116197268175851270399568050436269518045523920256528570646529948769909780098968475965350460620267960601274292738379637311676819140590891026324564466311586805504259183929270991692687467135274367222617244119626780671321928041373173441547393576767248703915729581318091564919154767596232151026913035311368373786119788497714309517868421629511792547037601993881175804099860456477152049878567593971662420469535126388018109688103210061721273423412812675667040274881469283890026130233252805158475995976615754078202696256562978286517352977815440516750236801407639951677399416075705844890981556164496087180328379730149657689506358520144557159088848605703078319717892889174130539086609851934877451051580030401482573017218961124129151079531911095867292943044947138656371650533530107448190384170577153162671896381812387991863367731689950562061358746575994543600502332546345490502531252097642754970148928045253814035370562485341167551652255004029600214670864189639467806868026274655675713072420514480788608862390305635593428727830924053308543475268023314902669119496104334300562301335307989773183439881045331668814590961643096248907165128417758702043225097950244102765186414484348273073278522935679249963492893470628968783048495178236715010956300665898316373925743547114632709775918579679558470010512755837334784581926402262080434800082814305622460484254620589912175126041839056849558693577680350228792362789772776467102078604375618597552395540759098709328972052186751386214571547163703993498774523015696615441054673647283510375874089013794734784361265619158393996102122058450794068031246452381755536542032070716686627757638002861783743188172112516861297264127022099696177295599304180050442282248224290395486639049117988247999796932057141039218568879456970688438279795127324104479760956048720857978584296567455562814379267172503110600964849885659516385958956551801128369660763184564125673541741171592647554007909566048959456327709197963700122303869374650627166664397509138151150726018991331192321464799383240457874757542827701266242171739892287360218703840509564287610408993412860788955811835145235616041662651754897737666710781263792709834876023201714931841669863770183943171441118178051248648198757996163236518094153054180070817127221051922316050128298269803088827659023783255305041085986136689089507089753265632305648461262361761602996511934022706648020962078609716784259601157822905941650900061778503367290822705479066513579662626373436447574952482714630139020604403100817446809979107670895419737913782077419365150813660610914118508991283253697556666199060787411666590060623124762304001092410654522442695680478019730564978482631487114917156822366433844976581750478985904437479493416537821111316749404211715904864704429177353396270521425992413381709810993202735186260996503436666122182369302808007623171929495925406195906795216004979057991450417941418068580362665854224893406736581503664004792768473956149839764074126093066504228420717895267558240210916243310568425861701518229456509612196154072864184994688913735758618628667403795462547687636674005307569213737216906470444159732379438499426145910059918078121658517644900703116198060010261857447739199769837724176152210219909702927136861475304690965611003336155998362875787803748826338174871102618717531533335617596625372702307551632289900210382703563150535066968129751874581195372614330128168432031067588655658939542902476940670205196867303595457724736660475108821161400376797172965610949667720961615825295084976116500613402261704188418038674302991423566454178426700856112743663550587928025272084339994124750192981274942360324515972558610931560013940909711718092605949889701172943002804298351006949681352498121658466419233358151636760453989346305997113406643002258996610161262225609855079738121838437451804294892395387017286934405773737863540712191587843861711749477684279626757876340154184017459715663227733365200512865198619975851703446468029299033083549251353712201727212729452483862910062484408780857309106987365507286934050223618198354735788721781781891090312885097797190120852975415072524052508455032620258014654478100522308125542505688062597473300854507742281119646833330999740900494697442997544734660290835468325511839726730260616780097759534041758402605196469535677672248833004162591840882986443037944600431484728208273280788244293664658051183471488330159484344758989964362447389941882761191094862420807844069570558073159572103803651626987622186158097327809443526640877147699456611157139992046098112029350779198060176182921567859708142067117614885355881151802345449753709909062586189673002557748999493521872797889312331404028391114510755990445119561091778413864267657703725851316710101368982772359551597387535773678456174610216860493562744370419872713285180126095165541168881064232005704514112849916583074924507433434778340953389104362482250330940589124382243368704168902579211725981669324206899576904013710709034153315576883771859637226330530938231229602477755821993785466186140301001183149734803494708042544493321144919054735985918855400892348013181777930353809682340743158763727863706904595818321781455162337419841966522677768998188262741536626819302827183170387255553107691337186806250377932026652286164312934760069525240425691349406158108915483767311279162744974814353940771168067809891639550744832714107881823866250069500157314010792711643050208301908352060694019081023434911278029583808181123256492985472832420824940484214694421062878483978781800684886638614051675081686829508193556350437811553394381064089683861227914935177391133873012635106014657045746619260070357143248296049779689975104596274671442191780720260633502141067460493645042542249966580072325043833272882926518942517654115957310905581754509651797452686506075180676267194536229914729361499627537217114261579373227358775397046796730307149458548609913875547026725460449166940072380275593400486248445891940392412699555646697648857303166554326612992568309663953858134308024304782838914669938216012375458215047299187372821571808125297638523446869323685750832867723788836637018508303587106446082846610153625140211677435643165059110370456515780188302464870264322992729763744092534708325622221573893190614251512273120520112088449411113287636017119163821748763238915165811628066946828157066180422718069718846861316588359810330586936155781223760268998300057923107308635010173930611858953353741501210198095663196249780993566578622342075778634079741883970251687091376404185350462777506571184383968316917124439049603608340984701521819215236564497434956872357574617884409745749230267652964243641710885556844869739280765130184409825138666810853827263788960519937831659477255311525872679311757035254540725955726230015372765267187078216363871517968029394603068161531173952613815896899642863292318607705185903300114967466798832812953412964942911359406520844831349501044508686312428758892252129832982989642449062765063105142045608850406451607728239337841049920570053018393080538214547989771785948247060741409243964797399471375931512210376665406556706944825616962355615890542620697127599570186432831245592803518940529292912609356590425428744647781077642504735428060544901455585601078062354426933494738056799226448548845835547853955673919353223734787995956919527101130175071650154115929553583351270645916654518836422136248125192732896006901981343819454312841879417256597714210514302670276945159785264467168843372768180827833449864806162345663686931839598687143790221144571794192729260185067333987347619171049128408164351518758806001659582491595471685145186794136316643057944072158932085103093577893992242279206412424407619106716284156409585145529544077730868574260829571107080788380347462908822505504718222032919323304904612635928180102649870817086926367886177666890200915256153960269935997058807043409283147310773943459154829519563162858114565779665375170028080565327186351609943939925137330174314067400684889600117443236361923586992552524282673159375368504643364087656949358150417439392408218705766368231477361988049954121958211167212922523516377525088785277168253546876376169687297229522379067387340004025444029138083782866929053173808331692921877878953372453022734962685153240204932595583669515377423837725222137717150867273866663684192627776322048023921411243576334157877132343637339190782623860529311615115068669855819748066278526623320924808676461605292314094389188630446456745971924775137054994156279720946961781781080266903068280372968575961159251129043304833323248309549383865651254791579153601833539390897973260903972202650395098214080322231911332643651968842000668248456268524316159862442878135623691209044362441205689566489713036317207832646668872822831872356784031813734712472206368189314087185536310630295260666205520864035882981891341596490838690092599626539422253484972348109989307142440397340103907604033832103038026858173607284679679185010888297139259855250432787008604982096463735804571458464294123110445957556891702677608914848404555792538864320228554410214652488903904569287994729438691581354965882149346377808513683870448534194720267518237251425409471063149132726257945897845160520526919252558554524483987606277039596374416952936970251533856809485865160413230474777015639798142751170765357491136104756891429415436726191249946357277017523265430847611875424623573477699884143785558474246836055100890779715572176532235784364914831515831965450442737061440450938040334804603361770966771663415544876477216710981640229536865430921588627147197894143610165942800002099575594076152112142428233021134888643507915484413214913591787909331067424257258185826330322266937650259329030363053583618547218299059761407051819904293976938198153451348655744493200090608905398932736995358550490340786086697914809546132157698474774796756680077300901210994566548063889790774971619600153589471673018501178348356066545025851200330521958276359546336182213960787313704676126062538466612884058978350272999786188578652557127128649805694883329212330253850748295834839962164686295026637785138050335308575528447284660045943520890610083409750859198343643985082556150758337854922387524215935790284931398814262613557298157785866647751179845058801035644874332837789335572622638698865423271446129915925886253709676461661060728230160662972454404644420990632300442578398116192609841415829038716116306294235362680195604169782697518099528907421922951300677868275489358458654718387335706784958100043244216850066184490511985614637061934509920743937748430791575113192342195024092247793042552823148244211998394977358488618673532091735661694349515624837515151466413977764672682968745171807833274314734193877982550476150551124261118092991818171303578692909206278656718698081899815674544402123821329736526188933870086590467767237321928979148490924885414685849957471076810028798418582699098477035373411408547656088770305406747324987469092927933741626948167288362677020792962799300236065194815379703883004879566563711558533881151702606064770388250421655720503537545020584356171548291372862464747864312753853109889098064899290553741665370750690286863298208548814669476915788487947938704540936847835872798293230094828450296751998075986088134683783288495226034403051049575406196968090755715533606719933991971654359914342359716513447959768288329350020037767036067665652707396484697752801627453915211293027005302380621830282515992713026356531439260779637074134209388626680665084788264760456834393540761815016214846084621069468005622948326061079429625796234586118303510536851185218544138176619792055962066500372830059911294092774014609254092299435513924103266729042495525629920312340805995703589095049423662611124462836523351583362508396328355635996882125784288863336317982313633299901591962092466534088696628320951131564625437418856759052954516780958968388422167967298132462809209764756361736121985251525471303107107359699671405376451833454187161541617813812397491621233297034550810261265459957670340250589344329095125036242054052583624588197126742214810346445977428531115770736966183944479973756822166289594612442187750309772223914038907183853994262007110606264282220319944516113399341865072016845459113784425217503112457538819530429128423506433158922688156736598473235847040933019744491865736843202475564143377465482151921963936173382816743826158653919829245727831070415656668778652569878139204669193411509201463651362811357684961179567992903577434608443711220278313937345365656945969036924091048020687190221510846624234286211324374609765432966120103076252703928891995725590154971107593285438796102698493023821838985693107785997025250341661290905983507033047248151676917592280691223157735314576894368940720110894723714244233292391521062374394790454385173566932112404265762259004444308284315510698667007673863705183115132848826078988359501350664623961953912457845267809427351923576023202434160907364654563579397291349235553728427253758492495278686937240546151471830245963849137547346865919243246366240052491780676221587397722611067740328803036239656700423758806690901259622751329318022479639622393406081134680990826076957234307738600874435836120008428627259762659063781711497301549612979367180756753578205347094890846804500752231919538423899964883605787228282771453021860620608903256848601901988563638923767471677424930819053358801167152941550987646718865454645619973155512079876991199978418806610618118838792841252068007324644782743808147859709258622410806307432225621455746836438585834523324885838034219280741832604297188362985532547684761855865964743085615917001801085682293345770350370434726083053072556135761111343030764225894359630727863189883998266490414724983049603082972959178888690995856893656903551503754990852854539216485164707760627327240452994357397180949380869472408453453603633093841084590110711368966946200456285584426473596435616645811755052197437469397058000911331927761195079721806147844824059535590367258209838206906482917090423742835172708635384505832645439372465386780399650271438908357891783802750746130514092802629108436935338206683577223411883586054554599302432424683152698236558598062531345324741457034761090095383350028525390615790371936887147434053458341851636524765210608641977705027199822804049977317766932746391015402212214035845008729463675842754073486980544718487854989881377147469962234051964621833965601292483872465889122698568071087549584197992008881993629627763757888757060926738312114966109231233764397310350180595904444166392465629723192893937718090764690669464816930643725497043832347806537990047463067361082722219685506438258096603130453766928404241680134516843311266363846214544730960553007493325929998088582303111203784136440573451938381098928919839157315594319329534703321219722940821142465928783313115373274428215305051600312391083197275881923679902806828877217334019835354871587535202946696715539148840527987941993050576640828543707460143372698591059857273296140063367205156300716368316259081862134167406760720363439013677148029698861639926450026523607265326329708208477379100954891114401757320708172778916924114718326814063818227791496062083368339927992483966948923954318505206624485091254994762701322755302481133591389634885453687784463580075372998124701434656086519551307163697248127574919559580975899466395749289950580336416330136099181835075596435293820343615329603276646696003502634262803224553865688600039989265255592804707130399539478030950010004286804234740924878449118326791730326089601748902897578838686789801592930958051303322377516327168105265939220450266734970774001187692711845223103806529739204703355547340785842487432561881184360191403011819770834418187975187932747145040715798018028064931221352165694206166257494590815457482293175966394687505649540196966671750043598791354055739664166745739998010234090960387755213408398658244555147242380958428742760193927687062210567204225800187416052867571117267560621079766788718042186833805331089287110325683402234623960088941999961349991921416626194002465227439063140751237303380345074859118227894917649621737248795680409880419589111009976535629133141115846361001030036152075808344294472694749662106623656615015395611469931030555918819431341733947258034903550287129922082454556970682824038721138529431996031569696792882907492047426905689456060039866989429982309209313334989905990634515767312381739685927898300513946242966576088665647027383336153580765285219569798923680365442920869796942640487558963419468128558600567836760043847831826798544371268416542671829840687559518555857099652665289285739576629575744076186789802332632007634175972943788004219730074466463616408580444214205324527853147870763755310521227448565624451388567912679936698800188848180518054457165109862811195169808290972157557047709429645977175046865108888690939318363874390582218420496135417026384619043347776222609097003226571683484426110213814845761416544558525412357622732085692255262991799547953360980080062757152223662073200977280795679115646660422340555545467020256047070155292727109445135371626127339513028686685223806733617098387352943037526334051367089805030778618356892910287290281591904546401504823688943497267710709860454767821326864293728136606669503864205717922518215448093363229639718906817681221729958734695237248445853395067153902100548560669450727157534859064827009069772337437962474664240041857286690133898338682196328152895447223933052517203510970524629034093817364881637753023342143318637062794384027048617671799195070300404237873416700992458507039023815612139225509340120656601582831865565973496201683661139807182618338358699460452857723565328099956668767904820646163222838630459260481123112935727778285153233721906301457963294135787783937083867942358915748860355389418329204974028031916210349931480360380844771707935497148402613297652529727732668428917428014173655173534874966906390153651369540113658491879942850526139892768404782988405236956558662681629232846725404311683879745710917006834884657497487308149964664863735135324286075893329792515470989945016175496701644907076032158479711095026428402739140884937544979257305508766911379063200088668268771662290220821125208899397845519197163271626817019053980455985274787468582180869241309810098848839215980328910268741952843488113582636460766439375693597451063162165544843521555114673156223914818972879823271022816612632216734279511392222220002331568876849852882810929023194638915188462308822773820272806093893259638215347171740291052225534613617353479760740667229057589901258436739778781523602779736389030554125822798053402268898744909336802446832797215348418137878808531936559071412652559630168402702105989080065866959455700049489369814026380925710772837424368130674889672195306415796981719978459892160396608513077418831467787662099374049208524060472396080954168409160285370406953370564764548471171222501374592510875303837206904951000440237958598016654238833415029865305891227352497459020788755925623724822497266116192102562794950892038378685726599233660580136143223436011117103683039716770753786485855750339698471317590653589973916960638710500773513255124726306123603354861895408161768598284750643316849496025847387541531783247432069116522592344496540447634619555650804919174607758920597491539541029898188333938318762653132225370355475459564820006502201121868852277841113963654217436016682421690824605330499534691932783238359571462036289144417501281649378736983581339286277652412794066112282477415641940913595447500467491699844041613029757142872872286048924603884192334344258317952065087843449998840236683487686416078021601410160471209011136274421022732722034264294600073791514998799059856421032867090030969452133233827246066017168696566158844573107353338602192868748711747123940224709092402954034957364590959245386390641554668404179288504658795048516640264920768820473394851698590086843182797452049652578628948786924450611508654908074859308822491070724852935778960628712740454853069716761652287335320288494657709265823573042544293889694106600790130861297466434398782933338777623447640966096887901186985623767637298494224120436746825918830112547743419098573205440979711517507215229017473336800451368508533562577594757310661694754854098183150499106906961820018555994427857617290494308793367586816552941304359960560112481985772374424019977238218330508591349547356915577560299370883943976442940760518296542138580002147433710575154795786367651420272504740328950078116029115592095006670979836658831186383826154524598841663843708866822537429368584863933194481248469494508907361184501299016449782057780509048463026919498409224504506044940377916019848415309987613608605349251567799515933616076472677849490251424063772453093733195054623745809003278563593190820534741378191461372522180135043299996769081382335191080255566994037026958581591338806267137291350628503555494509293087626441411448036367248497661335464431916417939397435288019391221819096414380513677106388246100936950978188408568089998498848018367233857063314591236301135395493297336410738688047530850866208475731281337606219382145040621485468403131963254883825061178297163347216664234160766307879760146475936845240244061359679942173378447572931352595584885528397973793666621868244572085808283563768071449157370980302451609741086196255607383169221990706531810771792565652564623790947675910294122621048193655049061261437422588427839683516247226844381771381274338978999481385183492951704752305935921549593347985735722277926793861349730295605490563356623717712490889102372336004600520837575287782743283448312855229577991068462670255614903009696882987208160840299453620730693106746829443210285654996961365545858308663405561827644272556332543594619212585417285151076458904231395397675195189806046574503609444559473801387658457297003247630562878373183687197513038343645244840591266482071456781385573886282077562385749837298142733299833371405516948826301812339600716498982864458401406583820504959046737612864150276728078396985105912621315503444430820386313814772854666159645334156916681287989158081169779344645545547670948286410419004578693843105893059079858854763252126150677847196804567553370353320985134183055583221543278734608932004359232269677406669649103047971731334110841948293143053035126672161502436224548877445379187481798484550252565646099654756445043177777428221866894193713725433919827970351764990846256381830146290833660711991787486510949750885887529857401278033139166653626775975548001348711131140938568056215357109828366119249468717245179454946106018234454463164388896861347682594304510247287121367554074939963879763465598275065133477281168785134035351704514630282172048315802681418025816664725660110987717389113162893032701446755729234539710476929312590026109544570593291944634839821288767239713072531972967158033752703070073655053849214999983492017277575427931887531606030270589465634574783465472755990788824384217882870983975265465283172228748941290420524696277707245401914672852017130443081636615410228531397013546838610750350217219557982331822562869222775189426124663620633862588627671234997143314181598350115768594441219295715621656181272065331804700190700193900114410737853711097758768961909172448526295280907802808989386422638187777242000367606076294091408603057209785401882932335864326530548521398262438682278202776734312941878350593474305777401021436212438643722304973647978237301501818392273347222781731567193999736455498903341289904538161991642410752857772376760829206608867960024721670864324467677562609703760617160720166228544818720513379840484310816872842854866012228631178936281350419155925534857847732587574583452527435887066978747734663595245267777784268069760169436248366065464549824019227522040956600914780732283947112602975150114040533255620824814109749001262674756415049814498216928732231404978478787389262092267588752773470153811339874567294963058193535776517254789824986573186248742152830968951340667175004870616095594281627032591835688159919521824558814809303929849720491660657392221984264188194300480430499760391607361337986019710214475276600911750419602823689893825542823857360374379199801215622327407001210215084497247291906704377032736567195815995979753923245877283563485998760416112776121989478833777418861043262675417993906676356276528131793758717393669849743228520879186746064969602302946807849547016439412700800961029586812702324656620644747729364673492506761973257272358288993973342714150057133439643318778277707249366321372396314698437086055177794201094311267407458130773907652319621067216726183674146310150690536463076979596900301365731805790325855251085647164272345861461032651768825362782978644458055610468670738841112662789615692870161309388801023460302802894792654925817199482372137976985814660638470563881035641970572949746132259302347344544266060328391175484968332618043267257989298531144018021160386722773669281208411108274686996580106893885214960294990207967627851673420838404321169346026892982869637693577553099166009538845725395945501909678783064724650698333516320432900540260905047742454970509360787569688446499598502344468188972174316975339862106851856564597166073037988717989863623619071960725751530666200028330252815383756033703709696073123504742807496117587306824828047781386807148619633766625040320763133958677588528035295011137068664721849070546841037289884449143934463107413366880737126903110398732989832169029717607787269479314931646629422266560510160011768746436172333160350710817100013196050844162197955494758591337307221583666878627342983803578549591271764666104934984302540263634612019805747096780394332300772393470303124476678283860992629484705462756776788228874594210291604415017080741229628227426248160683353288820422859640453168293131011124762415572025161800615464649057528009325532478502615365011313393741555721874247977410958796857331991752127145451427985733161776538029369706427883624721273262754816745308191350129005181116272513141333243857917688818731922445327974578562702496565110006257658588149716697180080580579865969506152881633549625403812020233183646040048514496714456126384353559915148355215379663717637324945374306678066838179507783288350434752659029460065181727062092323324098200954997447430722252265164332244261742136549791337871508166202878580078265251024932399356275224980424056052486955059446042836856755988837501143022404284814591149525457543273359483424631839384288492117784237554777748811658132189306883504510251248127737931304576051586448650797768891909836501893221319031928489770567711425047620893411496064709517117168979075447095674438466206762538553945732746612323940242587284370517223734427030847465963426171735554291454928145201640017727850866752620325235435822510572172253223641746878421769162772865978626601940888849841128509080829247084691691158434152962328305142649815589896602408164052448494963996226223343236571323845683066371225977409056371559296379713871351938177110816683808542085128318320738854632816801357262856804243835432666423507196170083871353158234638723017710612493026075080013525549001942311877711007717120201700627666657922293682207351441556073323511646180865666646217728190641946095232627218985793640273124638428444392614888316901796231951534579705813001260907389898139299139568044792753601341472657014789650314820913156254958797625635149422640619868388886583803615590626889653969634072830391057801610724728459869893951608801537403901310917577443874755148905847743306293278296169547970032435459705463390788842284434099667741648265064900693495598151706556280309788884359599703860980478214956860779232505253850790889674824215384819172700944988042905575431474068415365388104343622631277322476454082758300684082156111139048996022763533694183560852626367212317700962771720974925542396218342878237405280424503189452281637187316119040064384796909922308156079653061828758562358393407304639693970141934483605189072717298304081675611130040789354612351158375028824532112560151233509254206912647361256239229665871102755537585451096386979657089805252670593033185592926968798554016761101736189333463157011947452912033594003089621755501971235892126262347633526848722194031950559772972260929894359730403748932517268894116421406798242281061616819362761441088610352581123083352598327529132951017767544631358328558269225694041108602397883348632487129097932478936751450687576402355297078956602343014803427619007687489359514162700618083999005078677324703011272697795893073670422297881401970384011358754618055402162294343720275676324612592759926161009558954069954627794584035899989448083485267288237669945894742440049744809397288785579545923068241757265271716522667264902313035790103350104912857870541197797857485813521311270362853269752244575639941795256304425275532294136369599566232019565242655121870642068108885405881551843487677892392630169135890801275509230413021449080736418306718262577249029237340513864717489951537148324263476383829446578553498407143007493914575698626186975245693572787558254259526716756194251197055218987001420036567347430417290117080421090287064537904800321136009622345969043322451160261446060806557779001621262165202891033051043250806525088566018537814846949486399491034239807317964091939744669170116045187241860522103326656170014366242581515990876332142545739393700954840406500148905429613749859605603249933109666901150596183646962657085576455956215282252364191807314395616509241709850746275629515686918764411189615852264363715460647923815089527191977224155271908208649476548043977240262116535340241618094094686581049185990800559974060229520592934641617301912602523480750140011871017236514151223440457555860443540029230785820008585112405272742031127775663906002232601710171815128770562731205191714540529913702419631655911794712333648856167148048448976966731039847348174384256416929043650761741730885254956984550498616907502841754538809307733949267991729515938710532700517662979764378640854528703146311771800105771046029977226102434370793296973303153907720773740650738589970819015283867095892153372093108733149999054094798764149451285183127625569118715175045163620963553309666470599868573948505324686486156685637581402211074162251923344365483319693186477441301976913425456913537142828259279826357354060438233791643745210686524767607701996750924509494442399738467732401716958995779786482780775662091280649795613665565598035236108021794974825867969382063803831638546990407779591201560003985795844304143932275933632902425414545145590631946230036434370408688264730117688434092847501870271398670245873080634787606436555334351432954065692852883634778261478091637345512735360591175014528404621273876328154167316928497244505760067479352004255513931428958611760303765295306216833402320720940551404800847245562202117453515544906706445230983620022225446697385197224142651993433434874103138156950911493841666391696122374351630154561294703041516393784423774022850261315232341804567717394881799996959860753065067635846898124751231990816167281161833453389989032818195998542681750926362813876068541403620161618932974299704871327503995046726172200808019124459833055639513699864380968839579777417051347955927368386279934001239889605327547292631151558824399301440841746478550960931958694392337684275474249050829686914620800147822364885634629452065255487612999946715036757754531174135219976240179264025453180025779353505021198107337000933305254939903765980234293067583538231762863704660206661292404225661066746242750292120530353870489802194258226111369219893045664583518571863512250684806278234337010040819014981813860656361825381591235370974608197519941359342839890942576113775660658690350573227595163158460916541600060266582305055797995504593550652084014864550671691485228724214843980692843898536517921596087482747175397435421321820368169736662005052703310520152263431663394759317903619681620518709718425075018777913289709799765574640317642295185754900664374847072444665760504457699877260233384966574173116689489369731898846748162188868344704064423299647720753806238125239770820168658407144259640107004605765390774604964560425449838597527687541353294383775619386942554980384408752517978970479130005294839460166201632717701037001246010996121527984290307199851490396172628061769837474657736118042680574641878955087533283354294001824734076031074707547415035352266474586061678219231972228760548355488684863750975075126516593206576769370865508001106986150629472488577029346699371114158336171056427217397495761320166481543950843434273561765100705263156859577704971232204196911213290501674664723930408280170727340140496931221293267679511790665261659822013020388908978689822615231402411399696622247526663674363729471433147014173911098601871344033056788924849127170101525135748081844279176537243821008518234072327729129173481371637039249614390801518456857576301808078496365414474055443686530610272659718480624319283331446754982098305034676290762323989296649135792657125176254383364147819215804943392462692760172627160949087848762697082422206605160719792114277889657589715953859187534224778726183854054783039787780984842303785850546741654936792717523443703321233056930279495904967665205712077353021269756957859057142925636112538400702266305191564920248342035420647230726313878819648374585988740828694396940362447376642834057521529894296323725441959877453419665311676313938260318248090153312442202790528810202963203348179877287520922543494188361852563316201895508908680955295516411633445682814004349802579951730696310235682984381743105510773237660471889953561671546509184714731782037921065848757201923558514007224170577270960441319436412690456569484176874261853929624996030707758538357576840356953128944189972530103643396746360626989362784824388653088915856364924731695135417629262520004738020240891342324473767658325847087340908596107471028807452767002993483261884002394610662040067251823655590062594406388303617284052205203867308883018294399796388241301369887839637490005098688912256032679594679902987670311344814319018514323172641104975997116309015129338348761276678920011274551469662292581919734118265531211614795115327730543734473310682325047964856321317594747441951881993990864147645298280268058688076096461743510070368753235626408999093117875998349091766522875172034221482643719284958896998475188341008131840700126403589935556453158120123993057993509719285238727975442732425726908864733565539681895219907882141587057335693272068164307250572223939461519955971236763833275115811859917406439474578554489919721636819551844073453167764394100457234931050206882975094195227692575977785260746822657683247094317476769209191808075335131231081369910875572397592455890902653828387907430127379637838187851744942214838389236828741666117648719119019085652407919016517693443962074866307287553807816484514770785544573004225370589781979183170973589674829191665802812076449778413725686800099716769749516432382125042720704816734224771135569476679838394660900597156768187660484131572011865497113003604925267542527687974078629632219220617297293775078839715114292654945378183768688037459332300735951477911843576337116338118771603252172426513606943317466388634632500241388693219828981005635128465840176646789601358689066553910969768515907811542091105209696477235631266639361448188480792880943084429630386110606098799642768897301494832254845910352637646490889745798196173313363460825400674776516968754118119456312528740758781725350195540149204498055016275335270685690815231702754269731862968683980233150825985290930756389074801240421353020707459189551355460381271032284908054640453423371153967039645069673159699293992857880627261553136555085515413919472279237044622267251743212759940274133948477250217560533345832901742956029324138996364766899705562298083498107593925925174337541745449984327161148754332108685178174932818490536329379642048151454470676268768757065308642303065685441186482749375824184232152756398938976449899201690272454112017646021858048146474391722454459579961482296118702250472013250298421524102887176295617402961079182857330128743702647812099839586124638170018404233091908315456637424684351209543246129462199525110935234021689876017366733517646900714959837873092335807450468381808899987572818232798956749943027510645569163486851669952096067071062321291221526140062332169516822991394424145182715261151856336663753970892390155801707055196821950057612795101637904452141356256579800296032479109341202831934937720482869992737602473212498076915550307161789043396501273612313026836598401800898180480846176395908002818788129850795355529311104680311269087343922155726711105331819464584788915827528161776125178768646852536738856718738314102757787849513479285764442643136323929700186777529969206706180758665614427963374833127889400871776068952745237310938992189244104598799992247692237816718488777884448161449701200785876769477458343863783045554985985772242662695156294879272394475888873184361297697760215381780384165535184526524541719726068824793945503422646533959624063733808782618555036200779324423706744056741453814105155453301024350683124658756643099356166792105559003275496778494962997336714157065929197541909214727053341427086773120449577252757352706179697366094216537920442431459382356948128966002227880700297413038277948079286236494603494618993125495940027466408343848550190380072363816193875597080915681203786672439901622879485923193855968416075428723534493617345159562890035585755543638633230300718538829042180680035313226386677431175099230237372009871881181304547821016959542494036888656493981396773601143016072790930834012858692785439132942715492169056397439704453747143328530537659378578057257597045266234801292113463887467163723204257763353931400617792102756302698128388609437322325679496396319311756318374719279269163758639931373600444581572560305997318724166435902866946358868017157018572633166014115873213720331535770668621279899349602045941588072249543827035971187391303671715077226398365314346431865729383934010745165973722842604328711531000672815367092195477363162166829247886031514868795380720212482456509597674095583098291275452308432152242756061630562283952442893855473506621590795673679304241481713901266548589386918017010762144418999187677951034132706962178538934785885001261007880598514694043770366539794258483461790819116370972134300742526731290078860650213617944383393308505335198036580166407844611379730053633110558042795818351658375654581760323402077307192962886615358687245172075607561718400286445865296824767408781623236600382364924792896203056131933123377187932974255623423003225007809733308646669974751496719357119656852000220089894276232570763975888533069191835204948836638371653656144320273924493521752173657963980869123492651084585669968155533333051934273868006903176720902591772996589750219675960986882916637103576172442214591307647904809082436089143852562232601549199725130543256198660625730860329501348099410879178621481910445570908867551146360601361467428333555154887194902123583985714122525582356289038579311067081912934176552073968620503828236901306677921048611998824344879339789821826162731314970961419763448532315789475088531405347733268551937254399533570972409861694809969569367322582297049778054090178723610299446388147933234866146777375599557224198310316371328055321564412091485902893866875524826164247865628335583310634775919901365802159100058025854432465712475163956199267306765449985649944018965716156015539770951114519725449134224801270344545327220528659521244844943055369151318945729279289168130371288549811273921746684021078347343674700136049113161097239456902062729408015300093454825302764212501417634125381816144292282592936314095068439767642380546937572213163528538557149830123741339795842183965282946807605251169539987655825194944361820062931176229958001176872290990263529450450424608330870649726007091229444871348060026498132003196770017598378529429111796164459537525896942596559239699986446935504178256676872968653679822705445861804524473301424097822470220524279693149429465131527996691222301614996789145882114728652690809794059797847874331403051245629297580293620472598138386247014070718278023025611466169424815557248302488752377889964592380707890822373221057556998148460195794368180066042195881919778808861298876421996555543773257069585935080359757579850794550659432920808087370538031878120600095095812497200545599937524930952264133020886843759959781366567859120190645127853591801629492877611135496707767194843642587258930804959880675793761349028162469518425820113132364892535100845523381691998011498707019743679051903945429976490514806107447885494115881216326573319226720859596774676667457764461529123749322235178606200785793054719677776980368757734476513023614378785662572788915412003805997625527994026370007797854690749379100709157954510217794208260089620754507733976959517885022814296502403504540923411967598926844379348304437672086997503346120577758543340136510721283707454586647759455974103171664518460555768056757556240249123532795396618676609444823942030389862319520133522034433409702487683657287464614206208556211475225649368642671453545812748106352551350982217577572573714483883790992395493415035303927023570312046115974718892956836774241572455393762347921832464510833635380899495563785760319635380956494722674358755889797884288497069033136795024543282254386188828594878615559748933700081204700281853056093943549991275639734928705336383672490948419192493320639657129404143700957885086275443725473930388338922353654520516237826151019020153659657306988151238229921746759731610210208447361562173183383497835001511410640951613982449666692996542990253938586387975363320157871417287270938784393938158730330882801571070017106909285102082248339094123160353274878745414008680884847095041775605125156770483119732362287724181286962855528998264528598302791056927099180493163726185696095042598423314669204716278913584562644079316303630893946680170986152813997548689150505771305843301921876898393251690575105023762866492818827383223701298587081776607493875635949995856555011183652649862849132012631145183348899140971696357370207659579313928709767703542021736952194127571292364129473816642395994058397454391390894525729814512937653864321400205779551734526013804871733856457483050377794364146316147911034040876894393578839909105388996699845981701807542487566334846760613910007860745838382303227456575461392045107239687523422704870034899131388440163462930678651628270508521126177688014910055059467194022939524512913220203284652533426769243109102643240295968467157510189978742133593146001940694485300290418826180569894748391546291363731798125990555579921743808303258797920690920553064092445577176124479824680087440265475416090929852869895681629704950560493947542067582740750393249338961814594523549830193176249181013565324253608512166610894150543522608498009404668617225873177997942989899234317288016429624246354895685610556990818877886074152498684463367938187392948503419782892657364456834489742116974499764137911754600600254466432414099786453381918130752130058302907217562207428387143366171010970767522461565479870247107173495859824389503731033866508761885179642021995166349002848215172715437595636006702143072768747649822740592904066214837830680040753973133331920010328098181240617943803243001961823318810533205284601551914390296544503796726918874956046218763788544025822104873759980056966339479841523457124656467887245591990336143606268442949824465368847675397685244495944542235058461044935400005780508155785086405865214841116081058006627953088765741348196861389900543104086883397379065408314411416256037744344722678256012133415480969777012297869831291480292102296299584442532140394969006243457673592724368830086485693337960632411752150624934654172057217314282508547809090257621208768993582658337835508002565835273334203608321159739082362997926509908898043027473557182491173957970833238529085054489019581110757546338557719686663122867105389587433784176401829081030991411268113267412606024051410151764868679576592833465637262179960861881281164967653529191754468522001253866865655419125370005731136514677065042221149839972966844351418429946271432732293818192301374467258333571219570414489792503976681305765166394267510049961431090609289019355795466158756694458468833745420249526583229302647557646517049999848399978924111310724714189514708181876104549717274287368152526424328218252519560855091037083476352890741391914007236698832729514485409209118762423020842681585205702447586390106669855991433287597526045330373124657580612040546383605469231507726666076999891591327014637539536583860964489913958325393852732768865699725961511470659137205728750603015848755672786273769757215835190526711842969425977568372812749763086211635185361484541315129620603953614525410001697496942200950569099794205066311395335041740280903274426614951368487247076088338153489427976839542180489484736105110412566478054866503520192727404197226837751944375985972453522433853429340509144737230954092750477570176900949367345479735231946854765525853003582847341914342842005398154323453989981188979465849253333013813175086771608361042250840008030892289529568406262118763556646017207922986609109603630334691163321969510479111789102900465831290328761476648119966648267546882466484739172856575385672259079169201963074372686783387284700558912869920744086277318064259946314804739563203301302483707221796428110734412310040889725713655284336156962206469491828683669265764411536537635859605022286645354745820340537299994461753728399325408666068920307878893552321240512981925683865766328675318165795325286433569307096147773673168130770980509179017136787001167824310047461009618366781980158022536104542468739012006439735485668119571628973643128875115006511902995117290883471279723582594944134109475808259009211710538469838761524873527239752660291053273939431985126045517133190435933512219585263642528699504625617675724147501289161830847019613561670454021639707295737757877405796591040793052452395164573886027882630371269296027083082568541732837834442383510688256839605746680807089179142866225018189368770561701102491910125704527913025622649892925018039955783041106856756208231515923975952026365692105108098520886705674031628298248855957112869402581610538981488822211326738096675761382820895545758421827262454835114382207068674460362675379253441848394363178491770297110534283202563817661686467378634973314487828109659848704762763799945925825175655339531584701981381967593338313637914804792624343117391797087050921897245407214901946807025576681490521102780313334785377679525818684885656797260290940648902748268089577477336620307061481042584384433852932576217364395232354052750627672655154421690030077867021820961892962283597347614815827771430955119266797945188895192382826447400647962349763720391505507131049954521473265785982267222502142488899233725744421327147178816309761482050845308641306073112267092014374482185119218550634180646679660880978798673397474768447982425142058835969629026448344625201687498109924651188539539939670758132754468260888513999783906701007494407207911374933382477296571850151785963569555494743754171123224736486021770127516170852495467457069039199726310419460802628707733121889215392724024539252775035340417194715740822882008665674994402113747024070049008914990643602043717410326849151380589011903429142831368259611474555198437809798224226434542839619452907825829713769133583090993425168715351397251469302227180970432252377244037410674542372668989645022643424658283947662521832480522135183456076443900104366954028105566353834723170364949999804381396128331986113281504712028941348602989858669454526457090701263227555920468682308470749853655003808587606686330075544014058496138825941932533563723154048292864993246075206827810410003622048429942993123832127653176765871727127081520149954465253337566827205954958169517366017270020410173057626959823021592084459393986482303902961682948346579811542138233526057450737255473336202392611182422016414501629707494054586274946904004161406587516782607867980506016026110372817374909392825681043787359825072484820191212950090398905603004932251264510677668745509624224943428308043377857989388977504159979781075544573099285735023607630621027217507023766744265628183331937862180691688936251059644384428131602339571571596429565988842763229949033454552981396855222156466033299447085016824372723045798228495442939100465544420180136537723000993732950467627544853506323016701137975993153013399465346673557021590242060783544416034856470686185279613659505924365535343049748959287161834176918406050989650133031065834430252419851533939959747493970767614832178520514511111042377461105345651532833787768193239522250649339877139027350779736981901926421762673932920619330207699538818727711503617828690562105262272732588478117841099243580598341393915456171916146954303770156884386876773381132844654764518948321581996367605612576257674787326956073753051379983473843723042775081124327897494729495090491724011271539051465873219203100521853713905751009301978094765470580590687289982371465765979913757689064871761576309255462188994326706887023880496474099411172110704646988132808757960394073522865507675151687019867678946566017308575767782624108830940610035233909982793870388417797258953042731766800461378196939352499316366368876959762947359950352436321043866849546344655172528775520432027119735118792627622279559837547587487741585110978015671214506409595715201558820099507878157190461278224982559265702672756156576867852264643183909079471136935483588572192802479556855493397195033802279967964540810011085668527230863505531717596461514918710523262355332275286893323229305352768544790774546527213391398630323903857707961454839179439230006117080520941834698728844288889169743290892644415623317831967219336401800356481621693037842280153947911114952113155664019184404712513577884608152307129041003065282809999744338116868366304622014352036407635654742953551831731239383094145730256014388543982258581686102720089639643973808466676924603484235688978083823820483534662852132290223305382006523640950596451380771078270822000572377027692920410130517335254311576025152185842272214674183580714085556480372935119404369900938871726742025720036931246105703999504017769093740891907450634833949313418375878002164938011788106508064271714839576917030847730930181933937572586332430969560197070365867016130049001303421301144923735824404820668601581551593088593557382868681231811093108527592040716146884824949939737171775841264890283415830821173119710113716057587090198072862297591953086115801403069605100295633146454773036674410949802509850830497427857603793472583212761271743526878929265917048093105822989658138188816473492575388446098908428252196009801181030470572534124981238801656563578232105611369163085964040543003531189057483734035783627169269383780815568278250821809526468917470332694011676228895092469106711532241043484818980506893040369430231880542187148959796540231418159733241797599937094085292451385094609614079450382216605053187368411269059606394893859576171355206165358528346664994285846156592407529454024564282041160449830119581705638689525747993403835955289099814303567679700144224506504980051850742692936990529092352258042596083092394540798486105937368013742860273334453044531788487521633174638637396776716326266533560405235745879543180868733126039312975590143853381196564078353489306581034913627155310339623901773975623502186140857305883256068568023097116437140805474550944502769238651135213336186281800883425736044191271069667296714435253810609494364839217738520227040770029857787655100246557601237425871592698854699955027168613800377743008921776674015400942466549574745001961869156056465063575361155641279426890226183755276813868655274223461394676363220941903113689725475351786458616407318253094079106196113830440438710841100695241111531442384371555536556517749341834722960473939238504379978224488991870868736585489923171355659664886664498426070335090762743184031362540536495444069562823833795507570271118768089724111762930978456648015283202578567370124340033405751025027147734984413385079154406871989457280912127147939782987380834171952829391931492266824018742161190799125546967606934999631849358388057013499553729411331520003986584654581195762061899523993936164342760793445216193944803158247242154063322079093283030343207190817143151574109032003116299731736324985279094443483526081724949258773185966408006272394857446231952379873553883241944934457366298501618024706427632695698920440590066238455533882994147187595762353521171973177061053238837320299768886323179457439966129880315440111485800973352605771080098379077643571828550085845193545312495146302200187660566726311581349878682879473342564725417088571394811918101340515575321872206933167923930041672504274856323617295050107800545694860698165448443413940436387932344645756292914169160566937184211756313036844746253509182045521205337371695372647339451731570936989364715170641549973203407558474927719891552319866051330930039785849801857210634717862470066487429028328780947412128440095314523908526881345119395903735321184867191101747399568153044104891889960558372370916093011993247499967200788050812615719023191879915183251860133825776054238358585880076524424917161451825520551365125117890333406835386919738954966706245740630783567299183317071311587813194416779396331958834951322169286425022989516039117337893507800794145252952145214170317157986263594199594840956300825865821534880255500610970292919057408792416206476736672870756488249887498621912849357911781520319885829440339128586056942736697629422935334873416653979979051223450431516811932753499692512004787580958260451958751840534203021171894767886786460205243601258088622212935358273341544517370050321954271242101114634552932459642228982878106760605727528077227427817149740190023852835866575086611602505444662676879182176570717623569064639108046896459180462044223067777444244431993823040082865400569022871350169411166194824972075224087833343357611511237067706201466657455388342341823657994765420087711989569754718714228029880550511225864960396071294258820234221484435655051764754083880247867538658532917827945481091712599734925483421895538273076870102357322396094043940807511931834125757824853011283242141392061754984591040881664588989862792963287876370946504893433538908884333819682126811803631369467126502340532418515267604336086045333451088140417692540047608977367947282366094940028560141528970291439708718038853782427951557897918368395980551968113462397657807382600544084881843259949083765534669321801393697141133029036248336545811790951273980185015501974093205678248910344144011836897885645533902718040322703764672307044448733395893684713239839982358234557626649636569577602974986292961433439258726658252342505710253825832510380477231424473144126349237285616555953490748467497098339541456940789637270496451808605295814506842593629934840532778131588193059123132055258487918149026091603756762413820662108828921516855850656397993275372213240565126044463740074896697499914601808047019110710278465515080507998972602477565560104260985473565109204874016228074714298423679950967975904301464552379116837279113512622031653941225832479992139816892047953877606096240932254224325392518360109411735702797478826599435521689864919048984262170248198711999237586428139742478530283164461614933981522265925393598592179345155902478853936557660955030567895822742429560046791513525196323599892944786226988947846469192717793067983139071938057144350380048277278014318427219016248707285493887488043798215417383455241976880340735868660226563699570279480223834439212725204899638204943616535535975851380184731807482901019158798086868826529169323194370682239006725501940298625427502572495845365868549348272043613152630822222427152420290223710560832775535772649144733712996029400339375142992155636302582790891573242114359928543364505605698498528608417914697916589600186506847674184397877068636958964383071131304766392158445354062522994988524814118815607765912101278504994704401343519007111102491446680439847892956969204480739583486441274403242352106212106842892871086892807492819473887994320202494824814911837135003279147025506494104142364465743999212360099231787142243362336085205540783616490019848372991362291481113000697929977848809845513755260215840735796519782752749819383049076763911888821774105217253719324108233820822078576883915903376370111807830450530619933862081749230023218286235366605538565019229274365666088303291111138390667920783104727043662804431108855776930772028277585606097654911563493343216449564459443749654884674343418973158547365833785654470248541159301650230982126133303509341372566025621675731476785274854684519059725798000288471926593198483149615044980515133215450167080129205545147369517300101341153321153224614518217298961807627559865516642489015184975529037646928572651715642865992445032612497881229305008093407263495364980158072636146878303487197361426664580084461902231686378063815580640954989791577889080823660989821188088564193595478932562491375956186670501219156281969359770143833738819182329889151954185541546705186806015034201383616150475847042830866210622547690358381982369136059031128133203479462285444474336201469171927984483243154150266179279395193928085276719038995951876570104813375333308443471808579608445913233522880155579025549733588517811953943214159844899394863353393224778036263941366705314490550408173056653104826093742447554945764091953507649323212191011015409968841618623175565786774514318583429623538961993974470934735235432381804726897070503504951207936020358690325014444454203675308227942976973092099381573657477537841229397629813804491092317429433217846453862467932963523231689461913393589327665304514553441036983674242005208024408500126169550242354930962709293564631324293714621730916936106347167700716370368997558870643445185882188396965831195619738902939407545133532853094546280878125304417353088683707985799409498497857268557288175168061348339463660340635905896340885539926189983645121689969074493648051145240098977828565025347350189666505460685510360333523165435463939244038792770461559709650737892191308256416690501707256931503529378352458894587168187198181839988009034219661198011397886774357527957001295669801400778192862558236908252580117799557226649021409376330685654019180061889437090636996802703516348437228743960478903361446934948907468918967889729548292001447014873809378338341513953993564054636735330530531995794238897179806918532521156493336044143023044559229255073580189711308311631714944751535923001015005281842839372421677700357655902299901326767003163703812754872638437050389408639335389466180442860381196635456257345007737209043149264809502445559227224240411162824569646530065883856253051950312396751344835096840359578057235424141283380097032254445659094210737115417033278157025482999598018295188628498026059722682426938991709301793197413680649973578456436459958306465256009703601567793488078181809032472485223036486511507194515079469002831330006309088776212253802479476826503397052199902415779530533305862959476770741995260062508206170652285583211322113914605813576072133166967122320594419239065046538022002202861867877774488387492836953870109975425996292091607615852600544476437821692227182978825532158226991600448398177862241325615414675211601696870467724664302675853165856157524702266360697648146278785924927072833274441414420302385480625902120400109106762508226275181230984116197550510312667779029018094675783614842038046789645419782796163514916567024169590317882434602755377293690491499249046591186354363240572995864811227029059062902059172948548488424818128317717584271589453770677385941455139185173385342595384900080015638140729890610994811923628783849730495223652556303184207539176728785068421059804992665433998207096569928943015247888322627602047181071302871694404974999189578239215152511024097771971897018403364829824070042689681023651940636199790827898492023113242397759545096933785628539130111164592110265068023863282774702187531160328083387670990771136497131578441599996589554320528099730734916706447459076430751487868236798328161296269522295991517081052431540452955291014543504273024415671568590321003450958211624334586271306899951568921462686545789452830415832639363274425315487320859052939304100883586705847631598025908175572521801621178411683257450079955029538486579045170330614690075081194712371786385150927807918798103033805209500567850068230917156750383063515339558053697396825636173493852372312847149696549109290780253204993386657947477224108796729347292661474601092795420488761908482717917505125249647144066415463812545579209539098575851009805842564857411572087582748032528952445497194544928525699601899978987799143118168560324026836690719380303630147627942784253999986160897580532964885796625138654563473211534127502568528162320793222143877069736738030244129086031235753451143156471482410031335701286420721908282523854314245802711046890408375014904379117292314786410237061857511249085431215827868733142567972796584530749299126483197859031134913540070173213364189397319237789729396874072013556498861068420396582815591523479367113259547735894497695977870869990390924181078851481164885647437889289815164275762631216242193541147475022729357755064123098689198065085777299123012592681380800935383868118603311584687859875577229763527633058686220689848918233282985377210442851131711648545509106905236329491680305340142324734748461774503380710354409274456372579734702950087355395212262122987895199226505625655089038512822333624922435687196445246812899317457962702428981184148984621307193064447314523879189138057305170660400311269824815592776559746090416559082696103136909698136154837972496027763067704976131066721409759962895683236563624574417966172234553696919136181691673348031272490930031340276938430686630876694560706358964732025945553822356307559327888763046741871154815508295174809095930713003088366699351301759284604935564679453001556566348903658470574697642863892489118979694585477519961125074035995527259254749055185974599953480616587592787022402593260429305812432475164996734967015615823721551000580752577179477219724283631910807694927359561591313722799251993062199430471196051141142986346482440552546050783406318110265391672646135763270024075020176404966007256891320713452782413087099462477881303115345245830459192229387632550811309586961080688655816550696039525675972740399080052568011498392078921049794594034312398907543676458569681369894766842633908786530959613408136932001775392361602354852735911058761009678775219252108945647204551890139162927752610293634456506473127353315728428295026980708167220287974098189373915987980764459423762687935692078784765259844494530104502563151649279312468941983695358515654570673973194158800957554014986415856524932905694192260891252210520612152625403678059185525861330553475325510142659671945042514323260686319036978389243165543414659922020215556985560353783638064672283439040499499409494529147124681774799261900767998948647257392077214810512248631636266807182059390926315737210425494900576824679083414654338307652108139561195502408160482696169055152247519984613795172982587790853954242405674622920274197973720738464320498062048220958348633906092824540810608645636835006096142443368700567601696380373132486157366962208832997452212982613823698474926837623310338930090230463357324408602954442937506895760520216067123419361390050489986043244631757575949032532310553738627870965744974502323983598849282912589038067955054062978463313052082116769650139405490825731325160961087039968250287981654837197885152048609725688055236662975418909638701949781110383235423662736188440734554215986923249482226852910060517277423060685008106477131432920776420691831301644628367000451675011962631386332708081485860170510502868778242636994805203230285989739278942152830259133545239609674364143515090484250747354570006875155527077344629079516766625170208696872649747256878377797305653887527781356957243862152267062319442024617043562894975331945670629139441798530908017703001886743658810120025099697287799687123523372871145175575815534818248629316040518455201847640138900627304195792309930302000053809009239337761321010808119734241002453913083138330414232510104870124778197872197264304096253171920433613149301288373182781423490058263072670213859855924735698498628153876300381791301738991674579917765106088971834514750581556138576122717610083719591244544306707825902268733476999522953061909808580054574210434741707853115323057068385538121262590693990115382520126045356546440324327699567193652667983559173737427895876034206790292880741864235338897156959287778641754620557257530634414668196148595901027830986713937915189681800046808577729068540549428161403273200628587253701278961783130446145564942171068718867031613972386061577392622062300272425370077256765622612503115450328344145240175575638352172666030239074929723824754916017255087815508706743283774415403513656916100002704246403850616550090257642314228797189587129198748501661272910215471962328003738318640343871759432190649954204548152264651137787206758975294986417446386449535139097481967912543826324876168059295157154941657798045610829543423771330601965705658800275117204646107095218369250504021274801721129418561917273576616343236246780929487742139896536960998180062353302050555641213803271337801305920467955161665863982148683055254873157209589426806051178548942420179135564542298489344019062092956228285023222614343703433190902197180590331320667782927042559297049287533360813651882051851424258307896003903611926447559365633350813960455959842580872832248386985588386092099243511661020961660899823442956960823932478623705233211256249202584915826980242379553479018023811316419236689988605888027506101465745008155935959318908144159512447348313370270070221465155536149034861028882231917808826185362401967455309045043079043930617919192222589808341297757614550951079220976999096786596985251891470266096513245789258098776533439476294180929551155132668327018828700743853221898129933866930706412582195612185816534271889341803080222543659335089838432635554537211627548889098903287592247707656747626857390651448199398886356024331018866624017084290000461571522188232761369153507258221892811196482266112396419992067584833680769568574936451916124860138612610257567482892037353125669816956399096497664284470607242051315731299132459982846537461964048440889826053815487463504448839820128555573520647364668077150046519738119960066833453656436760403195326839357892322794343852368576206928029541108022207963860985555897005552195088743915462834959176963161853685657929445528116308597984789286840457465902722684902058569866622660066651534590132880591327836028974633617007037451413212978456906318663632913398641143356659084105249334573551339351531066245455152921319654352586623331328586849446457409650988459656893786919848501357069079785689608045990305475050549296327393816217694553976041069908588667765906903133915644483804339140913143466450434451795552882740147929668404958576827950253414098253679568029259659562757867893169419150220492235230972702929920974097878972701977607213586313875463527934962591077671931274258265403705211792925694455078581085789140856120298282549398560302457966833483907948345811519872863715848687449727338526644470128525763888388340597447371692400278429865257291692058264494313585725289935760780176562615650192743414536228841050914784543973786584813352920915611461587449771485586612657027560412347031253785354036897527664198652442888954417475511744988830200316135233325896640411969645242375946357035492074983696198770116023225485099559274242826348977481967869720380743267271340559500781643460688128095113492223284882473305340175942334940719486583113891024249861295325288505978784261032726195222627570447152726559681599294610429132019608976795961262630004447050339476367237851762344884417812244484487129575853088606623483268800354546944686168769192732728790720362864704443476180597858544745523930640674904672931636326581604782070127295609245910697755956474137996246559334898989080834381475783901285205681091551307960191252399698630997212237489605702661800886136592020864592617416120338325586081996703429855344408993170420964299310125538760691234374537072502018852662426832175835319086831697193091947092759239263986641986338185153515751250087180006358749097120937332769423321029449098683944057100780328562514657161623709224752671578991525643838697344942826592285612796865295267349219349911646188577544684495330202150155201989797125907507356001500491122919276626164069137890670090056662504165950657360846541409875467845097449781905508093304954641269715470121229549458463606135415703581349990039427171418605401957766231507252777455869145688832367945429212383188775012098420840596759556455172864375371965101321875155654407103463990261680460428191045505241182495894454174866203348998748406012167911560622153874686617121622108802078555641009330793788294526856090762895116859865141391196169909312930704855600339229695324587075829496329699071185504480460213742225225000512840882328598176161109363531880228379502375566588532300942265991052330911033592749238962468965132560007222004497008078206327855655571889198886920179484403990964778169480649585066814523702706962794705105737541054313037048076020143826683462322868257076830231920426869853377864432904239170136318644934813105414526979922748548030995785270564392182972882077913871584993228798345305279236664693632382883027124485801650990993955753591271463799174507041746276432313438466033814148931461511556239721693713831283263821365366889451601034006952732010006510516901485040223207575634157908388107586996624933000823060880801158761746952924998520564181349849116143352864752841497893900094819246589909340805199712664890021571325645771012635239873996175988031289819204405371769292776196551788143530489795413321777422982600194662319274304745559457149267532103643201526763941208815162987632426832896115518567803896965437434591941215934259617718208393769282712552210600021247694685786192776158657766883751898342791843227071068336723550526809876247512424593179029718599198696584227875121215964142184524593128590403196942046116256418941945894580619322819194392885501075785425478516941226224560544857498517049673756791517293175458689634131487526561940966350932498555230809681360976573561820921869117135017307524707486142880318660499727228470358573819144530016013924346419036094607368181303843377874633426397779532099287211303016568552688856011682911691246547027921299706745441343767633317470163975424208381724351293770157967623031721005470100657658820387670350857424566625798534860424545927033814302965390987542357107767695810526025025518326223003185411264699977452966776003824728725805125054109509954114840563725268841504359816789325097608860568699501964334214339865717147256681297025421544380023525566475363279533710604269212517595963227259186430490522563560729352355860326822282768320227579472607577081643284622787229902581973043192243600059784220674925847879218083637265688091524234679434396150182700336415623290983102939692959348910163161021455352529411828141159050877726841377784197459720578794415295242574656122515356449560476191066551650051344497645821242548792928836480277726747352675754271785463512547725825735405172284316560064631144088015724657242112924194572713453144550365889625174748425622306155959211953173499967354449033235748204966872570135486653810603384204881188897659145337274372716863906645296352115407468396842767803450654094361274857871738172357523040389312376198348193406994937717117034105667367010763862436562425144929147772438221882314866751953672474810483840044972703015349854045198263746487471315557182587866821045839707492324079325756435294550567190114572024754423684566110745826865256960397309795129919623542879731705607008687926521340663891425738924099214703266142006599141437844305891413352468714897795183522948370565820759654208025819875746556551477380382987825304397212531101805771239157363335445678185771133287814625597206196851436016438862241093332076926802766553469797401647585243315276117627963737616301474438331551429481155458597752014667421279025401269374101701644657200357115065545605672319096432427998228551537147431283449370896777146019120474745367157738557334392312866252984138435999611367311056136626302351543559787083812514071696848925705488108856778118733680806718888205064123932313756712321725365979330876587940789878211229268744953072060462232933030545583637818143092343351701061648265542457706286657448059473229901995929031667677820439214203185276136903067370814380099777295630300686279270812200362681757959434118078323088968541074264176828066345651611854118255530327969613837041650323745783255127973684110117488710160470032049125198126857369167463644291460807286800710775071414881081768395776946305364959280369971861135281672640700349287336458871212774126048519034378275845881962933032344020335427937611740203278890437703309913356822660508728280184298364604222793751775638778065414185899063237252882080608741473843386784833143623079447376822021844958523823454254248839526906680808816212689739502503118790738939843173704930102173748359885189649195642238032094660938995436813187822663987154595752186130291198359149149572329284828028015648203840405700085417842521566621205018583421007632685076847202494293804675819252423535661942633291306274500958026530831532612291252327089631157547104639636649935784258622071987372442770983607018728763589184651102813124518839317552609034495977055572679699711173795175226082952263781741878001284270862884324959175439167290943651259956055183146641415466822261061684785016530603808420924195980564996218949188606905781650052998193889477308153426615082402783777531007292796311292310426656227186687445716511059371974952231282020308296262624767273365363383184692421325029077661807372118693828139916382688527535027810294615133605567855336846468965670473183340686052662877425531521454852147538126814318361915012212416611519348522044362964183584841785679244293545816287980866979162874883875065260607993604371603820077558681082444366355535027786614257738409432384095483321948422888202332625930230283833613006065637968405908769989115990773706056934462492181068800636591885865509720498961008771903439847433685599908460538471417970674908645771291644403809155965777052163562060044824838649939880131432053705817966540228587901995709324265248288789884104606967926503900408788582560474856631255738058106467879960720394917409327715450843294900216934761169231282589114709303935476793153671244435856725514899625611669876043641513160355470042382271223726585326920007214848153625075848419451333808741213823812843796643274292333151154388627907677765775313711078173027955493094314415575755189225637400327639934593052161460847991084447789336921337552461355461032161353615572328921421593616584392055166617950665042070043881181904649070567518090008857274074902880978656761557557208537825416745852710883123419530056332126383177022252566548571279043227625205297579954975660196245704898856950448767155027961162791424399134493489872618170922440989082931435114974433437177533584448970437028574335657174869193943587951202662073758236415741794936389934656041937811489454180950309070786136379820649916756463719814213023747036688338090387934197627129315117713351470374512209238584728984720255407541348934883877517918039121125796283064984775529058320652032941177870862380439448699473608458123976677130002153577196863271854483334084031236538181105376812648787442289166344399571616913602584453436078202482599644133042764971617306353999727270526478904792042939727851982175688685070665674588249674779938836625455950802626044133429721865870906193906061699675222627793394101100072607419313186058696645352538979687505502920824504717812931280423347962474147959223874561679653122795428173039923353172596050596399890934763346756566081372734064138208815400980927510699726238401101480247762193681568552850944227357934384121945077742225172628101770129614807878905830757402837850310903463508256972627528516803537750891800976469105565240249319896285628383667042981163958939192225637563377089333555824302520463273970522412069155274147301323261485166146347769019262470263793876193053490889355868127167427414062263258086749064131908516544590029482491519715151962073616266695231349587940995753657661546362959976949656172244138950960832428848082474946391850424738309338929684654489950539545473956572763743995284520322920919122598287337054663254541796982167316398287565545336441269717693682928240627774496477332598590877221669955993528654847578331149669956478765038334833847485904759348070481451303274970604146518816427131971858533065162300022644667427304686697191773656743527947446035311140849538884147926455043058224129884502236682688115201548259536255589879441250071609746331170925122448020023550034207761121534894667974859737256010949726238425863832695156482288415258928607254343128374492976308298580355743297763027587493642012595963810792780472735924369508878582387199673500573115094599502963540342982034050253761825553885545923182332881433125904752755970741896767967635183011099195530034398697656140604217165372633108866522513879544510253866375845130627479719681873337368057237092117238888143258548375347578474759347734105999940545649862078708073223121771884657291416214003987422761907068293104276319912782327795290705863185284829184432243474227587668385801056580393947856755755218508562111999284733419739082669024129186367943770645376853760884352774222991853180965945432255270244776036308603282038484945925352933479777344939502388672062683737627108148259256775410435871019068929582086983691495398437445296904504892710039758632989353311534620697731072341353978324183831693129491367897313152951855228702821930435019899240244091692702773618932498805316680621707927774473134332020591579654675885543776429347562132304189440423929223354539325913069218817890505388066009616877012199534439386155816894376900389325462538303356113287206789625647816444594670898478721841050967625537025734687204779502941103564949180876274556534054675280565141757129772102570949743774364651641559505058736022999994049642686071972178570339620228730072678287987125456316813778719562090352813048278502853603573042424259329723963746871995811456036895119773218550323439302767081147498437150630200706190137318687130611208780946415891766319188549515135797982054195865638887676721523056062978702709527263376357367967389183402525394088497555109314049084481897757955861850275551095733201009468405391579990686724275902907331507517492527781036873347615350775469508071721925071410684830860812779246955792765801064180444700641894569560720121788785309567553432224227778699175817115286463317032837430631592059400403591095902549089565613250580330362683084476753196161060956479556040377481846700196251154757392608718924846924632064845259777001441181578047130850445562511074711608268787122749067040872073282353365700992583135585237271484225661292847322060585369222920094741333692716226682629017607363821647034551283346067394165512779789976705605315662384673433906696307692850196447198190534577479461943446457677251553902200678404265831163936678177346493941908811951113979159159547684896711696802792962932738819258849651642950879058859819668042282736953396479110795106651545889659775593897355963227558275851520395109746423424956115378021022277603944585900258200036798910482836971310354890157679723481714198757714818625714401094767692517548684095881306511174325397463160460999431342714323873133370304409760854357854450395702828212469074651991648947003670431168170963111104091472944671284195514688773458526194969722017180938290540295335752984494309094511909767108374109188231933129726309579879258153557572651469603174325259047380822843698094930891602749366883971692376566671729763258099912452036480758413250915915737609941736493854028179997605314450603194967670097136765848029190502284036825256031484925709871622246372917632432000518191273570130569799371036161699159121978551109754725308680576519481196684792430801259409649174856326889911120961668620503953644672139327737839425032957348728110440414294454961357512796384918475193638223393729682056592928090505028289232736782856218279810668234439646989014709817652780340332139448290184518581341178333100313097165544979945162447439285727772536791048476562600060900239495281840706510516352605085863735696359281633816295516426007729148045292517995902022564119204901253891197658116118548830154167212227524093633284761556567374972219300482103277852023517470555052485378381990229432716078780862809697800797376607943899981583047399994597865536591738275588984746742460959253667975430319496500811100195943631751930127149946594277083374904541777023435534960699943393742954732193881971201502301705782762453450952647557705161954415677946228393622867317922907153317204634535483901902155991945543968009750380303474000217676171221271582226220182030782998922817158445515671070539742871567256405758200664618866096335201952582905023884657948530401380475857813038408310708037081932819044094432767265922818083038234967186876724668046562882221867416159695256599054047349890420041322469559728515796309765754883219552278689637311899749162127967149204711221949774886522589255402158709684822364112833172636891570425461423482502017245620684918430673315591353353175775614768901592263058844921648614469998848203435084104966126448484921745176681635900459623844563239666755531138355245197368502947895701156484933562487675618200835913825020768397480954467776866213653672599342729380362522635337463968019618105272937548308673422236170727239732444201415937198743803357975289832201927651904509055415035479578285538462902591588721912272385153965730654114217613060882671286795647741077340036623799248977622170987562777855144553392365055004043529722902532076268926202802067539942713862940574432046226498654023447858132172184638445738791058146321793291109154861841002049658867445289224702907999864976165009638400917542037975298147086951238552024680617975534890543352821475155826059800667954406613091197059738394334180979709204769489753738449391634689105733129694930086134285733511483539142524439563617028713683552730288654778093716851587989953502543527357689948640492861917073873048950409879523674211672004878841574682826246827245124229694519994077176093648747606404637084287062386732322852957656466516923897379610025747828849207410063656902231063362461256862273193511650244539969597801275028302990817605716025593921022410237874274962004182093193633954489981994061401499472006926755725352148490192960186461777059670496694192632032049524070625604348737788757128693333158809897814960924834013842725281762128569412224747748157262704893092805874320265761420820377705846100490160107404343565125831833693970462792346580696989114135904687058916124943218868816730946820512115361925177869314646730990019230504457518424454181936649310997650717059010460150184548817104047885204552190236475988203949845253585595069008788035197474068417068779766256333206664036537859380762737118899453543109429770018706739016250950379663916139471194950118105853924266393377173333240832457377451217630776158379795459068460979630216781097910191578585199269396113529010088730815373909579216206485507071578573172736034053635234957126932652772092895084152209366104254135888162764054040349031287523079978816462089860175884371726697285787629219591587481815363697024746184087068230236744946786958492235374121869436459889680793815178956543811445170749945064392060403776375799959760492907161356781998898768794826252811995335767833879489272378338668006438165944573359954665026398996988706058181407553170045946329568352682959367136837781429838288547042486705170434330935463567051634618205889434466090903056974163209280953806730043310830388788723427514132944048823114196040375167812148916536060484759601718524605396607129997190456018157357507707166213288522978241721652565781933019021930178546174258676228712782251867345774093511490253215810333619044980761700950216920408338955438367587001838342524479752363700463708465755642085892110469999334678119370289264453089739285914905960700311343132361514138479706035868211962689074885501180457679442173338534781057628903602632947936265358207156700705181829760964264103890943798729484999326853693950923112003593463349041156419063587429325244186275568423180969391969032734038139424751612991400918621123461460957918849172651717968264404149363929120034087287891452797363067173182940670111973793871443383605226628198146967903526325590278977406411764439488785627594500452866462300374921770838545459716900336904795502708243427625610576970789882215638064051692583664615611904999792352992276488245649068372553447032756541899130119994958809586175926759847424083561652761293064777837455391641208582520630437663010607553101856653800219749865540216612842360288323064328325836803686151113565263635019218401877671735973243805044432972389538756170925772643103861857817296213377840931349721466939735069225335375418763203144075849478993744991131671073816047412143679852924111992688871538313370529071603039488215718996520766293226155226574960444926907864641235495516126955215512773310053079392563763961401552666840578028896668939457519199442138227754658537356047525127448538688780815100969357820431142578961030800550798945211685721928161161217868390153365760843499072309283594082766514864937898726619835149255511166940289852878428703022143801950781174070009470583776973207901272817932257826909761074047258360363129728197232018792300116538146062098193859079251216638297883355895809583313153362984691148435573248717985857690154375488329129513258617308552879291545919523038750507908253223316432832065143345477457267678711149662214238050871394964343366147550957653864861215766715889930376033906376268509538066966378571434115089114078182743895694161166293877911563583439190543369333444010378043180696978379992828218448885290828877606069642202051238053843345139845233347212187832670923035648829795341864965216382722011362153743518894870177950031043416412502670891291528989589191974037803702840345270464954516534675212982081891446491990152966761065089566477003227422558676726813070727689812237441499143315453027336596985286945586147772826624228451885594949470585238360899205583622888644465598339006178784350051367070487139790086219039052380018506267911642435260866888917219836994233949933186219396547040762465500932962850830523545475288072346883529223120855500621503680838376846794163153885269069393655818485080696372723289174219087413191759943880807089932482373805155008162082140073893357594368065682299724953973244061529613381232963278122921094141818624397668660375471209845377301591735168929815352340161909210089417765614195143379240080364163704898611571585653564366592742751930308817296989680192824565101788962041914875291389276980708989178655199790530594188063364713366451234339844628857793757540933030419903962866664661531201617309142534286427390980032850529516214358281569949088653719506885930404499032272048455760832737307958616188832512943217931293659192510339308258275564310010975187852263172896619022850801523994848505128364760060997458975261415905911852098726091668116334768437662507622333541965630950207065913735815378033248251110889759209306376081533382778279538804011707397657870121039949714733444752107934424436960778777275915229325906430775343003538216612785712981691972658974051870229318286112407391816250985552235027565722361696038036514226131931870806582135437818119065704741558091894374392153001573760578220450954507657770113057863817374211122866526517201570559570257231478242642157547166076165256534284627963788032231938447477361843728779143300223924449685770671169058427498142214188772530400642219899446150502807889615892119643348786882865200304767204999849918480323754787786696522990121299603870705629955381871556584581889494411769224559117009354324107464663393709919874243107796917875001021394056074029996347246827751365211633960094621652072187360799647993615404738845461352053428954428755707900119793257412090848831878269987541418862887298340439335553814221097188367067709896362954072318466384207740090955025991287399989863508149315862934994253575281295791252638030519355203726869412379845246569262820907356690859249585062381335049518327249721656529586540453642565759654684589166407600871191593935282422869783074700318139123794131221518481897371610583848075091331003968328887578246629469032893069564925695183840128511585204588167708765532664125825085806639957171804702932671700591864440418426406394473734233926152220085086182616819604157722334499403876352349498496276370667862514058450160179404675661578311984933732223759689762840123298073408573016508785322095538144153635531766158424670400401971544140327283049878917465497609101580141393718142831113540924461914949320230057898425918259948046442445412521020190148405406570656243355282917947117428945830922273340884098007678790035868718674896295892090338510601380800373036720401947926316375756033493835981560981244104303915929939869717933831809301093182831819496038245993636833953660281367510988467729091505555028185621169585692797236172575317780570434795991338718638033650314252210625346475742309348372847518785640384092148511278903308657914370982820485234471561608988061886106889589793944706141190199976621474580852915876406180066249699343686060549421510011257981463729574105471458453216771239066212425792991662994948850456234509462318014621086720231031215975628243787705858991499488902670782942426267607569996746472262001832579182602886474857501099325694556606001205678188242390415042998750927318495259529606306981982100457442775492529995771221034499761014859217120046333635189919024825273218428915402586347713263840946788671063897961591275847591742982778718802961122591869422622802285941068635470300003389168265504235961068886838338640508106474872786520201981413512965632867622221176447641628207184698067006289122826195131824420782318917492307534185381908479326663500978489741249919738534113258495864532545650746896583089923497673803086885812884854165917736633820743401510217558834950590040261993488532446781666639836530551180931836992619533980657636830121456495831898793075574335360335285608666140229974102570105284276021754094149427624940674331921277813161764428354908417306231624738823048764113469164869828635660877733993478016830302539678098547905188024504023087528319204301173721955563016625444797538047681647643606552607138859925054562228578408481348436311058151278768108381500016252620132289655087836634397423010104990817620107023876193345429686510396345449860588269164370336568598148561618603003803904165223350212992444226632859897930241833364542888246477129250793228634013556373248086225151385401050161490180509932553645123817955470502061930337537044933296091451855422949658024462511096717549580574549279405725088530649085299708931485026139779703346306166019905965809871465440836689119915950960289392557466896161614209343891557824866153532775347603810509232774538681866172464072484792240219888624018171729990828050825480770565130322960949402545133370953901159083666418713009848425077492896800174201548597168827927748998196908412357249855340194605811595410177427544325041953514830075054246660393428143649239527886326485442609128823455103950921758931885584347931108692321615518918798610737741982039838899582236347689352085010376776348583600898717815965477412602717552241053675503176351110274652079613090870867016733086364712654695790562369146632090244132051996572733055318635667262781923359407790620201801123797390963248459690118387685986541339357401619072555736939566947257603026142088773283894479262156722943337981461826180349932537072802740744670843651379679696880469788473946715135921279591143099970187130611709973345543715265828098803211341822930800612095886264183592643112645221964560119554443976720474601864635744004448261692152404330648814917362016964330704037696823538737436516342568644673312789636487825299028408286165116143011158761213766869778983957092503386959609833945189137371527025087014682460753304119457823135305569248036682230504630172471687843011746298447849005495617581388881982424131096755048647857961727793324636434200762105281146265402581525187481823002130019696440918949411703723967898415196087934998705777143941173317526946567847246610960331691825654174308204170080918218712642106524976454945793347290312766552982524786614476508673898846424325004476883049754862182229775170089756559711838810975563927053375447867594377301473126085849558485017346104417251928851350604469097791696842514989748746760690462131247208576509432920136980727401849265866166188291394802483845210277847742052163600450691848442600485454811573267281529123710606220768085381641939000119537029385841294772946537902568451934326792275837307530475178126517661959722585351614597446807721325719675464689915872585626358622487709569869586279606588625077750471622569512368579986307427621806311818156434981797554400991918005012767617625633712008362541207548703726251741924538696913514587507589496762375874691809063124360371896138660936641995749790018507266599577943889364668942253120919373202048932314283274866254163158649185334556646287013628413332022660014216460973206812174673344631733775970250616311593923293044840153556238606555016306568788112242080574942052490118052985930721977985941318896122549229286508920403859451592229345939006371357595935183228336459177973163479724777481657465119249790520232209015731987941691638157998701766540149534392923488013394847030944859435693999100739211797165634050324355850826981665513634840854807993347040556149128831882083797819283766731464628504182591697517850021215003496235771385446170698252502927153880705173607235475669521268530629961102162781327523797176970513740689737995513115494772406252644586085496208058849007900665984753007205247024950513260127064248293975123166613066591321621097698605849858134456860172613491563468877883597631577923797208243399224213108766806801857515709577154560980409113136234586674242397502147692341742609612296254048645089522833593131581944511982200607463841692639643080305601803980443714855009938857111352186703479355107750139997027673003728015779260411742165617421961964779847002192255842369655496274820000546152686879736065412414013025259704655647221239640091050487970177090863847237630747758454684521416177747298680844631483728989901494005453793528794969041787370157339167806532911406599898013200457612454816681178516398384510905709832155242620238662848844987604463032132401486196387032634903728002397696886295751495940860584159262002796283718314283211116238252969072772106613556990020072887823469306109388036245930349045415304210946486484118291832929125351532276532449475225614602669994404953068858401394215485335192994231403919214478808447688003224502817473123744365026974209731723046144758158555083894334944620253722274391280500595862520195204421928552314596890418797269792256553294669928045284885303794870032148957813035901305572755932796210636937077188725120760299948187241160561526903280305200908320549499111693049670394693995059785366001931743030529866566975753555079316106972690957028285885183653555951815791073154078370115090482907405400698967209332094869338432484906577723442048675510588469681851901038608913046070895700123071133661605580862641100262847555696027268428963839036796164141413238044604392333039136882816174276000252353402269080447525321784130988537886527261461826400209824485700298082825456779126812647477803748111698610038876835363403369169067143619241548898891793645002361861100008046372193845860363024056818628748566353886754907896437228255296916467812722106456162010209233107696474180970068633594052951505846217258308795376299326243814183854952086346942798285561348595049466952003288970244451787545838352892774329398820039262769507765685265685817469287690101378987729970814213530371651728259286674319020063814232192247360629788744602153353863040165102224780283423961181700170338864508241760887091292626599533930121898177309996562497364915478543270489327611644395225273635709937645209459157345916955971273284882319781823256939056002899728340818051018289316350862856075804098242378635822537959963247863699401186498979929249287125788399772584471750540165713291585231239520125400898437272088199159156114361879598754381894283045601740781182670118791186953429120298338143138599215147013159495933886200878729700334442935672046277840686244367171988479692752968509255309701786656322835179857212518287529650772355800027648389478327128380066301139947851239938255405935376957584536664418018848036802650392732490885866346077579051864147795025941342311520747502530301804105413578521006015621829723944781400009056874049880637797384435491532906125843488182019195374631724413097914611358107403593915222951847446325030360659723913265104278327587911456538414873645399201185044902735246066898650341393397290917841270599925782943582186382444627572735639110907684838135934248454953041364469245849551796163411409455857485085314769101229225079443824087007395753175678280638654033926528958990736682624829125677604656422419037915991325258699200811945350956883426447023747465549607052618352818899501111908002812059691569495374180211071117797169438672031465125233584871764198809662608615633112041716579187010194787295540003821578711409030395279348518852195604422319520884946492417882345614087307022760554386753385113439743213330255814657315420860738620254548965785846602656274701067928988363617213930418457866401311235930468955304050042628846353278374332654921009771160271658879121534920077367900943126817108192181284084804804962172301039379544192121731773153526018264739783074582443594460873401278441397743838168932024233104707604693297912011459875447157562502116073501737246958586397763725943829826207185850956185074018211160555005608715465204274136760869170503378667517154967743893441028265812842450795381036386894309789293266355509880595376644337067036705036028583444812505590491591809930915234783106656369323534266797643940610658586572194495006694193177802680971876013099165430168814381897129061068918382051741034529297691412067073931779036565052504206209811306865713935974653820865108799297616103267900429180960004729133000902359804813286846319392544676451481649083543860906651220200119250436315188608524638519507885320355699748927808432990550833407201876783641814212333868446091676724745886613860672161536392786557835987068020193327974419926658989834489793570997925907427761017451854807973664936062030125058759439571783660276744305242879421437279383644286443201938710239992411563899375457315049200924905680881274119597748549512076871380282208817145828250729468987289837509364225806821617898431922748409401555063999040730790067008215289469863319204264197980458160785408147507450601225036855889428322460706449601316473105026919811543814179874146945678384906144689392565545107917873940317089571725973018225056890588972415855026931309533523259127308875889071802132283008268663184807711855505821082812147677279623679288911181470201342360449807258511377108461063417457718317020723820455661694725755845680921652679658425986485915529495491874362951580349121342577629024386983838092819932727916033935765813367124238049512974278796094762195600665538543932502416087400395604211750859524510189628667706256848158719800526561754451514026079516420140957869185597849196781150386829241365870864826243238818890479730903815919815200086918328745621489419647698555076835373383610395778788494664521268216820284698786554926583793838058009291255948057135179216893672958489898117260444624221129249380098764121436663396798904709722707765756016888353973563344398129527980300768021828439529085082720238831872446825460264029076075172745714983757581607779986138511639317469047179116290758285698071561203144226862217916294324822313507693548766491068149394725770407263616079378063919831234343986014970010923014577929066840368021201309855311551756333736996327373031997631408346701418723498521203862779725368658873425798065544459005013082234552489698550678931759269881720467337612736448800040696112658161928656443209901312678894518030968713398399521301437649003521276230489737849283894293645781571878477526757007783731526887879544944294696873589542466767558373056255196683604841638786724508707915776716591178140662330173162067873247066385455199922238314431231833239618299180692269797714696328685666776924830929794381985833646836193418483954279076725487937701303074202994357638624652618929403694374149069214470597216542127178790419903348420085704608532194892975421396656141507172149261324880664919956675659392991890385904374518670144771906540614904058359562973831651577241389876010777889056281630057720941505909455121170572777356335923149060700129268134473404203263426120756570069711259357515707789415977528499699766786800145739878712675927045776214000446291268992086406767097330338855904979203095193580981702910112658542875912640085548912932830007519075784340642881231861423623848985461938844401080153461599428576573130348651913108586795342968061136162989351197286031614418106701360538396891116255002819130664837820358489136053425864615733607055315904309163599556035766100804359677589683694475372399677905076708803447692948679018123250406777445298461888217790902699812395678950443723430462297791731471700916940894437068120607777975129107145704531274112665749081241707190396623575884014146725022879958172408159465156308387461699877413203258928848829672143739763328615369818026824491920322836877965988451617802962523080510359873963278900531510212783000836972134313602665166234781947401704180247355262582132662133324409125429697673001390810947527471941459690595322198212074933009640381230485525178510755584359321578629359219888332181690092427097200410808391330335120803344591260323447011867421553642559009844387634666265095086178247745189239902680124165510946426480374638890587416128047668480578209118154540347789538512106699014958363692724837910971467697289218620783154501376876085388126874318327060862386731580614372262977176122904350238578714962723856121738197317506862234417707841283203753741086457623627817327607911592730152701575846855975443729987574710730833127706011308527385286583252189965603896404718890342790159812231999914991981800948888630647473367196172045646217753551979718531865472764113927110619615996618167750852125985846700076005464735257784518971174211355914641186442636164361119017217683356189100454594813950706154269776071373731637250163049980405496082813183462346275783216081344446814781391828186492778834923914681964313654715601756237362371484876971032722236731524319522790180997432076820760459662676390410421008899427535715325605879112446594902927160847674409813976025063152626388599760767543500122583862806004586002401757133109159708476254926915588328466850562621498215287761648374717694839460693599858438958536310345595100551518072173726198389017832842023843973857565978492159307440261599573817334017533998684078421759897229314441914903962982668378620541894742426095877344852397053233038734944934591431769153863642203978345648345360979600478165218719240849431336443175327055261490819406735448706125233156362126893390154750540966129617250273426230036345306990624716989432982435871750731988992448413828934787437059054992946586733731534838322097741175577281137639678293942810496305597886735957389347389035199686471248695523895818961681587780718459704701170339543013037678674773810554944625121663815844201418598419406242444704122676214809597745414925154197078986278976154664327299877770074871817241439663942130591496904108930902784483030367096710239664835941666908491374147122240929641330857922136968055584928936539653623609640834453460379746378251761215402847331715301309653026456407335500193018677503086181188289858669135656049713512308261529210407740803836415359199576485332980895913283761792435263844737303442191286559477442333471537811885035284106951291747799926559968381102132029030953067073229972808710657123592155738276750673021513786057132106915300797151468903606784488816455394850178947934468570606424285958963264331484660416649711132867604767413512363321535800879110687355012866404708953253649145572352064390897053412651349425653461487302705832787090345497916303287824925733541001442177354679426382903431992172744756553821377913459858150335553126447397256066781620837656548953315392121392080632434263329327107015883933657161997012268610903450833854417355170296518453970049302977506227273711220785954688945832560967823259968654182105793311598973567324853593869141864332064856842250716154548854302778321192760613184243989530679513054823682340919532816227756570228916247670974058016615707501990084868406872888061684058661635840088033701481277743996357191188605272564055943002212844869456159175951814829378189252320451946084701561980773405660540614029570478049230395581347067790507503968851908786253288480870855925636176369350090534572520966950817209354053020263415549310291970075555051565995666755025372512350825069153206247964155166320833591737934008421835953588461723837896525343082410441701157649030944459488075458090514456214704322516161182649132694065132013071215853595938942239881055434910629867486651596732919529410066135626232271446853646342447450511340657276664064425237579815682907572304060687918880001980854234178785141172641978612060068854400524154367020764894741289243984339213610937621295814813430851999397682337215990309577683296650782574524114766027465150142995974893822127608198240857676080119002072866128150276826021822583436592755738089622149210918129390921085746423438592379603419991166319474155930955546715643245658679927674627829969734396895693467078315499251725301709298081355819839988553086203600113665323971869326418928591835106403628779512134464656017401031716245908819887927649314037185538855133137970561414897470811937657210676373625588487006785056281504893347021241302284233656159914079695975538062030634501621670405815962823018587609832072196749909655219539972148558481205684442551234021819435737153714029037764123752995515309714219420124111903850802589903555876797430059614308058263652321066678745897131316012946679459201937782983913285295901180539795834580155569049634371487997181283997191749243711437594917360920530804069172745678914409655631232011185272760677595879749770961615044778183331017423938489553376290104783311061569068047743416754700276895623530099555238702743978670441000734159011237917243949361822635090442737131255710693140050439736382829179012992281983364867901010653054171401833503218721389388032947253978078675733765805729710487649121281302559699194745611551968337000407035697139773584702646408754910268858292570768853297554902711658449505675399419915212805156662891486166705355164209035701881607201912329813991524171752532616241400531914640635964338793445296693214838473609583316220629731119265244292111254037025064793775243630380134074496989442687802450207329038228086271139581855801077308964638654935224899572522861745755271853596885619728514126666816259115108235973839722796727258106483599723574595960829509622921299400223431334425838110359788405639709805232904315241602715719005977862019157206183098425613154564415451622561579902754062782895457008576796063121832002275408607751084014557521318225011034421860909367496753887550398009117443475578190459703138540778393579393962635994649390199991826094417122420897583293366705115993151384379356594281538383206430508518287856195927142009035979320198321411353661710648974138058520462175659728928692553866923231799442988378686647018151056809946918283365774053847399369339843696264239551834140202754842681673599962823323001744249637533400104746933684445415420974224867887907521226389798285860623176627430329118499155164789488288751870100796583616841476691290530254903279037322180270236169814430477549301416852674089559817549599167901614346886997597971565537213306843619605863509353399398999277920888511590617477525521751208888312572145301926358334651819164010479264308575610905478994621631006337953976067592688954298481572722355509654782478334146292954455777696129110193365802425905928781292107915119100614194144160966105101635762381638360438785236941401923674320232393195745972760120284001993831931347275807996200856361222926684097322939263989556722852893514813275665786917765674099393457576736177742349724339962697143084370795874987805340293118276844547152568041661057004021560644320670424794808336460983792607924885635786591655716579820753413404878220272477154458846878977347378704854805643255694001789038591458952312562599957619958224483205795870773529753959751516605222432052170856659262672548203867351012796383459938991927392412684680092896087863647269499373637766666362668304738020112675127654602536896030190222888417065547216997945661690675984849836682815901693567527015405811654121249104586493480147670353988723810618946697323076334644614334918677522897595139236636268854595514381227935657970558273491512221454629777991756502259081510185380672692066864590748413805522426330353681148080080289679023178158933404020027872666488222028744714071867681581559888997898853044484400465468747453455254209485199331094606537451962245372134772896236151243907555702534485216745946167189392831811671136562185642704241387460206369089347772955011976518013067941484858524705032862628680090331211837659283631820479908257813525608944829657228750536876177514099074754965585824732713639242755653344024994265382256973014662066272837634916853497202589956829751805885322863495833271319276566229686174622630137990124291503125242042698235644164255973095097054966477325041200676458067741528262249464981735151574147659548361024246990382632037616240355662944489954739068957994598646110708716763045230882553843088286620246209050588792980925440223192236576364932146710967966765780439013976743096473576037625691755761959004974937650271701296020957616300007672428645384981795992616566559846652620062099657043962867432016932038019928993066680929972562277445165449040286127187060626759910790800451328120104849098395225395949621283468680750917141566931497294915217164991056417734990858698848576352644414963678036737717355149845048129666071292969769701573982088629082639527185474879677014772648956107227380419547225875848991779986115823376375789230460104198450395807730537816708600235464360319538979738879890776025627595680262165174654326223460776584763382259266195315932681448226135384418676429934196912520800475080168309058679255038517958451343390387565758046000492106141250523933351413507568524194828666928381168340797424873953247176718787809196646773466289438392864363648382654869425797310686526996629546753042644985608757001337804309169311240027061349702307619609305371160120929628805989885284523578394558041372438828751217813645384592807200230505419951723146434499854524816903657909212026922638260733509457827671704409780094741465856095652282310930211798088656854080422504669375878919574344023158265062884883645361919485733591588168779676088894581961197146081436566059030744310112987202472715403441621001344952397428908557682286476153345200494807681592714957120885287954251827199226583720577641537486849322432158718754285916521980680405977601906560970553501371727174708691743316997938582327525742822884402641352540723098555185809611037929954097253598054546030516670408819620812941014395636641531484467524184086511624069471960542082794399765840006073078242243407852034522239602077774501545078180304069932910608639098022403536781159769125739681738971123274942165102446044394937058325589365160758907562395345167027174112417274684566811892900306562356975659357729328728360702881723238040121432274929314614131981767474045240899688893228710105523354897815267568256992480695848777218708574378972472333123616298052959064526554840846779309494212739505586000377692850272414802306810950492388218463662659668504813706037997723767129764442919557764356788472220732366293408707656040640836469630835487081779365492866806630601969403208711466412635908170190995516966634876458031969875986615233253237157469368622302921702524630246885938835968767303431633961802442571620432675685781777347968016290731850479203388270431332562300018869712021071511061308604742297383943584143243661685058950969522246912647485609995921928228005405928411084617147734513710038126921945479018135134591227155022716009786306535957348464717817584399965438520755501784752390587044056619034616480717020988754879143633567787738125735452447591279195097502675212980162607344791396939721950888078369507476046374507510150235394740988892875277610233097340411950263731874821550102719558354431122789872683127407363315820334262909516755188716417196007565532093822844197262940848385694329953461258282552324564538809078035006159730485321743909780335201613818017094393065999376164416821429259205751331366277546475657353580958971766943174957211452387081563399827867109147216117420734943100776384025670273560964845457060880278095970354135767659291960117571576642972333589896114057450354754125581179414655630746524288848218166291289067197821498989859569306921052118953208535044279163629958280857981425738452980250275558960540261440260842568645247292867815205659174980294406189834075156123717810786641975804292604701312778174399030375429810393741924842615383990312055529332097980992998131402772401335370480020963559190185889255026248172037423845267699301033087779779036489049091097092705889344320126064610674434262828018563961945963390352056459513978646267910913400954319932024351021624867813477057878563268616176006028800316012175969066821087813232245100021399529747500215219131284453863786649509533914250853913997079587560034346824701561022859899898385240190986865655869400486785227405669052324413899272953406569291867774078096192023301792818092902876893218347222414052068637637461307633708066387322613239354648506724682452753321578621421749530868308019878444088264541281840535250092135557533798525605351577221157640859609223093251337377540899775992323386312751261335523751874798675506255606864017448391826429712200986071323680395707763003125984102420563059365797180081869522041174360557382810565666670777465549919249254811514110287223601697577744342691669626215845583318127912136901437617016584540898493128317310820811482449035479793726355476100104297186214472321967820267905045177523296145288951302817184340479556393187807779669526948963615856830196212673830181540394418639694456090710444757342480229158607741759146841966429310585810697619038524110409788090178288326433951062367360896061725338236941155101011224283947050926320167143597350550474045355059538970153604935540146359834729023182425242664734245055446418315233986281605441495343962850043710485730765851485193612266965283623808378704400313769980036888982486284226877930509572420069385408215900718555653313392795843815550075256793927520484193838616509074276492481121620931436214292318241610240957990653720237198321766039964345292130845990229657932577691665059477957920164753452548689903007991179830008167845113245787845129835768007070446942129732866348854825944234543808001271866027391385878383909365365256362114564770851124712928882520580638550749631253594766450240790448997149628240031551662612010996514947831547409557646147673230761790084207475547037969079684814393397170344553393144363988255244628183716448566224498380406142956529202271296416607162802250338209531721476088707638450872043951745507531692830085335710237003666715980886596617651533263220183655399811719474079450314448433215032625326429666647116916628522192546202439353638753222364491273054985700215393337740844163437369102305676916719138649357804699586377309987110574253869806125268705712933274189185862005879406466764940336825073180903647032334101764437707674805261594628158919487395199347093634042929131165755484797433616852506749504084671952356832421714870617507368605663463685888226095138518605980005854701009295137213522645507566253220943334948319569320441487877518365020142646766266741431251358851941684796739020322684955079191993635987767110574143708414434173223908341111004684744844901989706129798473552073815684981176747989524195888607427572394634557149983931742634464238998159385983334845096328422515836713483837749560636272644439680422228860550459310491933975718850614714496447392175553551289910179133106080117717164532918750695317291361734711013581547740939683728811280081439826950791021248157740511259349374638200707066586254496777156115685436179781669341534788613492189423545642144947341609070763632369677001981507402177593665561965892883040692489927280486133273325484449189074303545730628750910632396734638830051393165252135547823332576232756344909807722065981135938777379507934435172850331720277670466033262227566167480303212249168753382967340969392298944424924158237391156007523969763345148887325354604443585387875484122507807711013074979819712139627898468182615485386365833946088326884954191389343582418839455159376703517675814854604054225577692036716340398223653662200977083868590150535539611423761849866596216576339211247174846964128824073321102801102427053455625735905086736028269908863907969759380095018660296992873592945648098794598250041572921820588776650833022143007026964013738271801927018114786875115685715778156105008041313268662586299773118513050814773421102985437585507310296138531946951346687422171607637463628225237354229943840677202573788388085899526332651047999490863544915670545345911806987692288853956204991530444007363421681756426911435130629802163453630926395463674702825367289873982506807212595546003416733044342199802436194509798869024979773828001541120956559429676131097521396167091398717442880755832397101717391296199062336219802150601030873525677084406806196520446717868074584891656085928438451360590949150580701126293872438938306387597855275453716560916571501493925800408246842375662948035453249643203340944596889981108617149971978108577616276618666048482392492686824797774543808138182417629619929818400166772718547865433649897198046450337192491361105640333874012669995245340903528131801480577452762538089964128136941794447879527699549760278655753539422095968812250094881435432746116043871867323627888338458971678266181420370491104140710560250246272227061627446890436076559416386233007745369716167505769994470838321050410083384084516538927956163588431690588535768347918744115172198057270140620678427040396741960748138020091254101596747107112039001517409022803061101765389084823077112330831100238803206420454556306419580907323745005255850198316987880422103051280979041235158730551690767991756787381571191803129878164899690364372387797248918657723270596882987313227127986591732545903887688594305888241313273446761747382099519409171154668285869637284642925788061933773660394735832860482769125962002470437462281282551583061550664737869834379645314451865624624257466324162598711477148813954773267827713922249634980439226390941581151642181257669580877978500440415219417340797970783805240399406839597350180458760348611875795911122498334943427259255838688602688556753484040975619993573841597323934222529943858594881436655549061157982143370084811992640886936277946086968742771203019597792823833585524672648531969773548973862983882464365872539567247485010122267126988313353287834793978398963282161789182480344288347474827472727756331474649853100899415759544162426648358485311327917265434475393731777665937031670818175658182946582582581616823193944042148955627283964347543134564356468892821065169827294209420342463078112636950547710034298375690723238881588295479996504868414659845347584174827476966396139884162868752811990574124434413398896585427060441722717684247473425203907351667505162785689966509660414695617000802092698504237569997354319116988600697564256680449827612073769053845636971478645766732308000078620266356677853822518881737665530480300541242588696458137248992681852262066274032838477017446632590575493029519629494137571138167534982970996571293463021187814746321856877884484991198000438472010300718700061242489657962234612797152058697986949553140113927251031911841523070661262525500537070090414181076272489611934288116311909899327226195873667658863878767530546472433557972445636564797271619630862718533059418962369150241728080483102610316046177142533240457692282005211394086595529420487719216080759755755545205955314981443678728288958134757777967570571631821665180249953388470751982838715061152649980808164837016520216306348286834413726141153858538079452394107496620256150288773537892464327683347552457156050691203596180191522485575986299457450731535751060148205665552221999000708755476659916141920223845681572855534317175050590436785566724424417412465495343899563997522697130332465736246125376470061787790536952282073074635013727557936971861272353725968563059479126599039197755868655045335446983728210042301074225513555315385045245098092359316717037585014885537947315943586689650287978488329016049502085752592471247396753016390077285836606052722344456115979616159559739762159720465473432768775015355665180659837562377682082432536208769342851990532882182007327777942906500807743335315998544581694451305792641401630204617554390241387158513431909740976005491653504694187224559237455538510204348377582823176509658450915813324803926852851705837143321852133048910970753837372172004895888667697860081916195586429815467658054306360209900880889416364252733025897941714750010442689699748917111260416035550397212069230772430561017423818437253785033998904379002866976503992003132971558229849335044990098971293963130381616094690689357202066620581240263451129948179136439583444956570904437113325072122032434227572531757351270869682030402195213648173600724968832324014380050788836587745061671225831085490639675526409368027687028993868058932469374958792881209378988232886103715770655504713473441852297632187360452852614441340014152241326311055827560975810297478552498252248819840123824496096365592496003791234952141934180505193900979953446689692052700218588562166979488713681841617681347630633378224265641203926808846828807634625752272538345790471615880647161344261790792782265292927813094603712760196821047540244296229362402052629719327181798679108369480158279236188231531841264766681961121496067344431024662288634781255743586798995144762876678616837261873240280449848617102345519134108310823758662152771666071881405849352129781777882296701833810114168688361825354430233649758869679255654495380913436188248931081184517858105782102294825021789841843916664686972495870009559583831383807327997806658867498554934613927070072475709463325573677553035302540582848620575063703982828252273330764554724298291766922467742555578789680626976172983786683966366766245763465243680641169577819604229178049825398770567336478721199101312488673591887223879478230369978782888604540939521763302567676629368387912654129365150645653673386995650775238303810198496601681013287892191434415796108237922734726244597866169736682634652361432238536025461049197085192855449193643287423197415397802318046670670650685470610751815714878399382080963164392784995603981703611087418287871932791192883063223491439448505881219656337267463353444696691732653840874214953748167962616827333640411413313082172854589230875177537246850074332353541359507497771232205896178857906125313547035277596895152554833739587671078436334821762210045309378964760963643757675851886083632760474264418794783286786858808211189255479006344956803929321522704718992984055453929529202866107644532551663968194154121171525272195596958921674352409037982686026577678585927335982654731810511664088536173542494645026091386979369967101718015382297864617010113191346699960676043105428842724053008854653835267989509957767085568991163435234051042693136537017222619244798685282410288581107637697475810717786347687783075190125404007678186346995292591480854680956424832405137305054129415202595579012237424693022394309896521147083089066925847097705064968339787096059977791247262693867591594742679760038428528942159376995616155040960577876982996443633209245439369446360920037859925332223284334944029131681755248805667769916721995384768728901250453941761025768460153663057313224085489158384867527164949125921398264191482273649534323325871215637279771875510902399097075465015258902134396921246992400276560801176901487025956335781392301591595111329281275167254993158958783730768189786068481707567178528968296658394098044215365080683605082423863064154970043083207709869785422978175096927945706368000976813544024695004272007053450091759718168946840607743677544375213020328372811150145022664489282907521759019607462840061301289582799334680329955178331421663019102865162242714849745598022452178502914399349256026024548817458059448449173981143317422453623639617567488951743517186255914899590441832752948923108536464766978581643198141203589287611783641611063302059839183204325692372999999110012937266335178331743589762178749526791344000142422298482884223154526534277581663628023365786802654818252980022531215047666933383150676848671848497443175520147386009634124640620538485704616213775556666249703999551393977600748256409362977924833068116809258537138330837170764339908440318721577576541634907003979756374592120531113451024023203035534269035326740307820555134673664422751598275843498707106456067343791848627627248611257183038546430568352102340178655695542285563382933018810728453861580602182777792616276198830511443346190165313995053419843378027307414607109066242973465987863512428827191710137840424496385157396189576673218324573301892465612823731355404702870802131653290846618404680344641461049750468567160916438615714117598605391410417803826245869683815937489042802530714479106712086832654189561777113717325673718270358817317025032429760940200401583792239177917252897323414358586631406122166637572289515046086831861021714653863435162848628622230773539266115964394449407148630573833177539283908126050073777514653394131657859401037639424778008742312849740372803574166736200423949749492065102645639545196731236363275317760911942309368926695426669134640896153631767346057266530217054916228815490359911501778843302479376793033878255968733102607237593290093838255888626946484926266353275036100578851602233911237347649137047736719433390053385204964505204657311087436420061135315618804184128368650185095050778556155604533500010222795590108938277076928236592021185839749666085086998985222776228695842890846463524362239952221071293912509375252900919281641554001656828155040005617962766488367042174233587753311581118486819668408511567832902833771579517183653277726823108732196166845949886923859174219204097134061495388948893051955359237199348566594320502165280119950397345517604005652335348928589514848661005768073894382492444253655180139783689244260093710645272884833590111577233879257105154444766973654435591566729662263157062371426486538654362749160481539707280087074445876400976238271059947749007749227161706048142976344950896274469672106861292424905352934364776368171076672004980371891773173837022468146731573837767024429851747447169553720714193671904763136027337267588400551645328463578550088746901933126131436702703317693427621898039490167509327335312135932969245389422924708256803440318161361671774370176522863008131364253135511242893262889512405710203440132044231976084944572185669027816390287907377477490439177657426730459387061951550176002751623561163278633669476085012166394294442037414631223908610137266483239130829794310819167165801273513903900217712579920416775427970007350881251458624430480060606555430364874868912103711055607563431322540593618097920764266817688589726193470784144319093490020394242398140667252724386529555802146873836087843489199405701142261792544292818178363343885662393325956076316029183420719355127697499957591502524326344203240694295710017173746747974632681140688685212139468934010247465635617103701084360439544730083669573084522781945328781074613953645087028683530829095252181039034001557773629914527066675783128594824934719525617784483595136652823764954357138603439713529085593742630521010586018744543537223814348589125391343428233656084000297640439643660740342633190942937723783647634562826793142207020998078180347390837550200072593095679749968381543678719360324792419203072247888278496238862729982175510463428936180251173690152898341278393189278052696906354817367114360350061165447135895591058139021816892193757868567578268369317232944878110008119421858088559710332257992430999050368659262213158002460481148986729475959898763991331021800175886218731294032820194310506319436767220389742555280227665664676714188888383554741869742720995056862923182943226281858044268762545680751495339625347471894757496592628821502800676769787906038250733834037195771340105412737350224141631379113251428297482378260560785568686703437603162151649952157690955290840790638454266167092743222454350620640809887016448310675116147800642561334859982338984224982498236273307705653165821705692587336844173841605606931969459194014441814794459840727584110868008396605366379490045483305853492195561321732055281925026471332294100752342110315500836508318663146601488718780166776972494088318272616606129489454500275383856160127746478402129898542924530694692692257227445518294010552161051421594480977225670644273714889615367848896294920342233729572243817040236250154338694226343405783331789295488107460630951958750392075721863046849537351794264676665966638801211066135249191928665971781239205325626818541920653320274580336657473443920346987751766029988595399770378283228277379442176342536517590690868478948442877628154844397305888470291792166650703699560955512952797906848063621090512919121363747555648865858032640669873215851142511244144109508491889144885292032787018405307663184867930159749293755509432444041676781165502477816899181257963966624220258690119783954792941259892936309551464314010983885458143234116557828262888848776918885156799902005700386843478214729618677849532386138483652755192422479450726165762666268450264949980179129125977299866166314996411194339079146455068556601416442619434901845550629373715964225757543650452907320798796670917263291115524083759206588685435305556043300870573411091261632508841625701928422732570542351821082280974795907369949888706902872375513707878516584864597072925902829808773895433977557941112732485289309101953291347682438426143029287581547722929230338829840367838328889081379555548390768208803886070672562602361806302189492292778354530203569431458412786960212322444334662424322528964064638920906386738385964298835709258579664015814308882764554147546472357827750133695146702364941906652914718342020399599702335930712460568453793257797853033234898487304012953666483846763526488348858889458122800534513654089781625132220847469768187858846584130640322898491721882428163500607619786615375185302055069715639776701719285454764010525169844968733063874278621119129342176424680461174646350201321138668868266253032941673979466143860911870962006736878789875015969371775382058325814688930487750254528242867845083587134066578282857013444418514768626650625854692993373979167876832974828433325020819860592015411287838044506538659505991697317785330035667763552785938636661742029998881375292994337230752954314666219788287411767320439275050873095789442074306496722835266579907818665873416072333201160830975974951725141732156106397615429635394953736077822558576465945008578846338713575611137488163099303281863627421790909642763656326899387905841175886785935870657133006506314400326470702874754577137842948146910151683191291915325235972513544456876961725834426688437928251346496642304186041709576347199272114136546672242563879031756798700836236169549695587088931767513448560599155360664468292962221939100078711781790674875989050390300178067557437734705296864043621107413495585986160217727761482060079540460807166665347349409286433826673017358347547671002434989872617849977050898856641317160123162461742213400331952247307649141479423398179560096696076164972103296678556948929552193268271398915688364385197853124603026842630661544974997525382469660607074587874712707281032967309684246133600052205061814801979633422894118772914073990761194946792699920771611641639641121905574355587141295317835515447109301011759397907518901492943276196183063001043109172407072152350916255864250455807094006607857236157826194324997218900613686002698033452894109116569549527944924258084014509008986187420540823908743110638179442037818671683085727993072619719955470077978301910916961264016749718921405766650769951351658323387138656411124572614495759769010671817780845420650090316571635946483662977675770367682515669168376961738226141396553536591460827070484458816672170080099960310011383565397203780574749699193985113943048297969406530841634930434256242754949142973097327305593606797068553978276710329126336652883582685537506095814425768161604449125940066240125969439131217213565184674345298477532133055637596422452620128509496203910199916910671192778290540733570184987315401255969761099777844518071034620801472128172875364695547914677112299444321462136897264270483801930889980184350936507805483067541862559036914651717671239425022329888882296313263341951857692849712150469309808794191252100414141019196738396906359857456982349863118213801003579706177476220173977642345578370814955517158403875428942742247394421145027853680499275292086206926725829771316334241937134205870993009425843089689238425519755618901249576308420784872510886815265894962524673305132249496312921626038810726782220197845588590782749031746180780947184082850600414145809288202562900827795675732084683105978633291734778476464293624382970098400073376793631415511676671321420978596873963753822626888646560576523416641990232013693299322231140993883219264633393748047414509474937591033865837170859152458882317424990855490873703968568420436496051003421149777473170107765142031828176452420016550612834155029831877640446192589182681027805322318271601917104190524411175745840026731174374807013882350300481366778837556341592764855762490255951297238120400842884017894026482369564510983312258307211809552010165982320589105447080095933001878012140819214544830762841198964313504582766345090828138499858974829086328209390779997222571402027439914932142520858592479362238686431087909270490088232332220486973203066468484014908134497779751995975786042769260298555977897516588355460466384902972646354541349235756911972080485219085464801459064403874816528308084857192378998771744951089006981246745135957998710302558286252442425602666729228404695554621772193334332342415472462338322738973265281967160655559816639705418164267991484982448096364543031551052885228653153052390598350058714499921253887617214556966294028255812793985277585370553960822930936136002206631446410332197541800937783297181470841532260727281259573659045788843896536280445331737850695368404745051893540199426954904606909739187603768015741579945566788264875873131190579209134601014541428206506139070236993008685752217866781711317671280581158988615166811383707163708495912123533422291256483084672296612753304228233149445142203110386228207728053459354530812331699258553085884343709706719433019409912310812487197744675379459904356838347021137166541996726633779729359212704400773594916753866323050605702503769009836755730453210121474221952503175337279227180480876982087357381351702768850125027683163035802583363172257631328126410102704691781587605748844520518434423489389251243103371055984865817343740827510024627329568584642074654219169337246941376234675991014011776652915834978128619323616226806370292480169519103028755317495445180393821332814425706923648772909320833424747994512841630150855857278893598874690236256850529211038542695999723682477783964634171324235926370400631962087163259840652940184779921619297573521192388674458850128321641626112410097341386624075745449104596009691138768724109631638473718642725232524872531102247969411626331713618979378205133407165908133731930269815862299272482490367874878065436217829900403559509213109206808057904477570488606730134754994185143721325392781929153294743358505719644308288408512784671083914510696460280072227478420478478381297070970623414789956012765420626788954826381342349568996668855084412555994647323471275278278300961666624282030733102808913052977572953385405588035794965500468330947817558909680370281069559233280521876304862880591713446894789123866166415969210096713006859603513495791222859136208026703983120223575354041345945422424239154292807194563249114209753055744421662544847126611227803308294935982867657077218738733961730380027289477166729811636086734910287713070691329307246940836398885556993556549320778172128367824726056397419736591060874261242531017832972397453146454884773200099969249401807272244216176443896898863477123236176525860732264017508268456697721512251239484597180913634674048078510793412616770433370928334153218979380637352788916972903016898133771385254084785414542792910486196799031140300072118543204511487700591314233941643377810642061519502885521939158125536995091798661558162797393015736473055755135281284950537400375929180086289634079903320603252574537234127030937236746397985772122373420379649919810584625426954673476482698717856583825728053382848165487188619721234992535578134481155507232154427091257959250446595990758540582217753248229055253452206595508164347816379563640047455031998805375372911709553477526636810246078444061372031749337912115618246816521859858514464052830012460448118466067327909957382423067750085510741623283004455746757754825322696637768662151188601921401262584097918062835622054294011252006300258593031567114860361074370308447343943817210028600919798381378815078196254132692834812130564961363461702389575328983890469319059422001896935898220287341287623264431237583955604746214711357258939902567949715777291811200347073004297084606729563552574451757270471096723549581079278694958912986889964556189823895942825345928647011167797982205253941246295323117152826853660202456114600671757519089030977819341825311027232137125084029964011606243436950161881440443088956313935866323572019102923120871388453999279442011324249638980389346352880350369633152122809407354106240503126008249871329987319504254113427508434851460803978268247807805658559256815503899905428239771661896411589685816082712992646342003271796783995449942077966114031375625703074960607330111649358276405144512520808396429947597394020273558079200239632813632773802094873212582025601302891973936160212158457582014255172077919956682823920525127617915814669169065697852797644996187046077310080575430428509816663973763412738409031843533185253014924927216838284841009051858101994032991655167543505612405401754176037549161428625927259320745643516507272599298904352353617007177037522477162956374065592032105966082973030081448056178565330838190768722063780403325296980604738812550607870020457140724239263025997970797160048176151560307062984200312976616718503406448561408332518540029105554584693744623407106753891744463600799676158847398345149069328036544745570517642373084281723867400426376665636713371510028368354800100862877032484176829958803287800745905928545043425139238143614246927793430707249441201998660854893537641788546194158143990717781472489221351209773287768277098934125932681677667249367500372515019478333206670580216833771861586636061511788654291955822024073899797052747790454131309505900329485493074652355648202004684164260146542908894831924258087211049360436726480442944447133089659126302903617071227148746864319484588244646895742556871483528265898660237277452276548378369451709365871883899893949986155526157809737760360750000983620022976928427680023268549278314656986172438673832148933664733934009816142286554956685004452974167703517721071312946006715626872974197957875060020133629517065405131154356116313018739720511528818865300257295411528609152850464022288424418161566803542093168576078871220325167200497535279031323934616535666392826506368287087851743698139288456201172099047247813649909585020303534745897316053195481328294742028467978733567304979976524480427500848314344650263361381596220889869103780663563128170708578345762556709630745644425896260498648922752002582050135947985754554905981310603158321867010293656661425808354003257122217647363418113915792677394833071406394105949238707940226215808110663083807816529706490490136854886569990427327078592845573146531426769821330689786272722231549226999845709495607451015252816706933531817997821680063654059961278278551667260577825614299480640522836169323297376626488349625366334777226659475082453953708566654724806845188225057962248354016765211018092807746227573448970884119340921026622300785458983217695351380775122720936084746751602378899339601303374450077474875127295553628041741745042847953635453158632310494320455252456020921062980870478365902977225037900498920018862195843133672928665712482419961192474555163078978951320354673083299260128566678319018610469699820857915115516461674707268512053075216217828086963075693922866825938468430643177375530180610429932365732386297800858191786075547217170336297377314382305945412305230968267065845468211263775041332660007694605629131867815366173616490407653571953009153301929616947545108063941146160352812651325968874747789725427196600310310721355520913579834576541909654312466094373392617869906621214819226040215610774321804630628014679695327426033977723285055500580246761728005115799110784910253615541867471717385822310868650513064114459616333171916785236866447164628117450376720573660406093531400130451227666096349662383635683142075170777002028799291555977271835339134984710233870109428129423499850454886577740538236899235396748841461792370257061761592672031181341280394325421598845685697899562108515716076032783452073500587301452196638792741667861197580024848277623809477528106601178200916570384703974267561139742745647944230801949620461579987883156873948898152313556875376979161530680068264620524589623326362436474022206997636230674141900290468045387338181616203969609958734618733751863200610540702860200589834041428510134175962888988104426546652679420984238178010563576142046621005754765418716270095589792429032858000820361314404694249358362881263078061815994177184081267147474646968253266853942518399342308006590781484000013747772121286784742195897393787486983901325677467290476824428360245236914874716458920475466491774353500949642223071393976842610017723727114627822288167897392591583447497173673184610517514386103812969320985803672742502244523891859438884859484472075369842977439409076556252783787701249083945803035572363053832297523087428972220777912920891400960552868658341161152797788586237655426584067252004475672310534031112259070453037390844967422239830372510909825239995462603671921476054823875947435200801864835906123429524695851800213512153555505987163241158190185010558844136084363687156402611929176468225533658120971784911653180167939640451203738602524154518277098292465293267568254844904705117787047783341695635274212830980091568470960906507019602768662706064949032746335674514639137752858912717152958946919702449579534642550138795500142263023348231864392947476273381854424103263756055792888971005330013281730170916212247445242327566256803312061415239658989019379464746711094557102084139716335009622053999298774534150503210126844049889983660237822175286893973995536544971440527736480327439469671013380521671164770777777852784820005931200447401900680978159146537080886032793727789344495123945697403425681302038110901522156300519497528065880134203875352307397777719307078063020418267856103956060173445068463495388668777169390581925200293408217133076434315828830172169760444216732740866122784092523803087621249293633639614438561438246724273691005324457239250354397405154558903850808925694162722153688776121975720620687390748946941740127864408518995518179522233973821206072999392800344231301660641111371523065355488574811420991913311537267289016601253242544337198814588670228947778793799971308442995630786895418305774410235947116148004421597093200438675011766805071534911719077895630076439849661435019671712817455880546537570391662626566319749278659179757592625033731730563555436032330412310689760091829726913241180557180849975198532552429074543933992942488439014236082855439473689439887714769523930255764181642462734808300660255677631462803361554483483742138799102455955003116034459830603902703389319286480178857494352912660780334843340638519038739545618574848165742764496815324139349881514932135148296870931028511481104782830384420074211382804193871072815768756073523632237504846309371196720105570517661358285938821325393829646254161612924239954987080603650593269867468442124958217354766213889964612911811475083301188758563485680163819922485052182460970600601629558524872594042853865328183013279398812719220572648016019536272815457236516141868685362380787520547091906939116116809100240091097106426258393251622966144013419233716564227156941906531260782374478888049789296724149733328728422411852162120553755528167794342219436375551362408893926264621043278582795756985877724564558584696367849797512447732539156325660780775116774676038878349257203648655281298047944912607474780631606870238105248153789640082902558504670928659366470892020752307106520173691814798043801052370238972533995892120936167586603254616488102378448165628538208789247580720571456289499929305649254769290645403111771679006399192483663735511684683314373139486546569913993091012648570631740115511025480510621962523013679657023171455070155007202954051010664662948362745465419229256402289320000829347850108013537420194680271556963942248750429225624679700630281500680589113483084572494772538230196549708670025523541839754665634069750206442588165595199587018091013846967778679010203565432885741797914629997649899636265028815088247487918027227871407343769521125789010612342725294827907294541887786950854331795387345927679538462455256342283202439182052736099206662331600383066271930190325027074434144178906756361448544961022984507384318090661667083659381087793007730778178233277357886017027061856983584116638040122366300404824461049807578396193012868849536075662436504508496524991479283652565812906633054353714341126925823487117610394620442287309253200083592037256118847886532769353954984320716097202156769838637862183503494890263175517618139774124429205006869697606520951094582424748607355175368858012048391537365069194954281627229637298500759903396665921021471028363941602874754479865499583516357602262004950664134298107079972358005945899827809206996171548601691498540872155528916456402236600167202619570374630417643438191965859151416617095334601751232297240697376357318563918783690927911664876087091322327356489509948418746563375241386670402858793167844635704068945372439643279949108947411546321563347566303744349239820553983039000875959332371267353891738240924018991489554148971026426968961488263063389445338657085044226656966690111502377407650051890691217770228385023500853339371398468028978995255112750705522477878658970708608674670436241738389502870811453554587690815825311348143543277715841126458767484977727860018334501380311760563247200784916169301091393868795013648574197244998921992255154281064393524164346798661241847952570996810620311628305425797815085459427635655862281885011479541789540978871603687108574482529152959108021067171599075493794189698065232928364178294320540197822833358823608719090549863258443608381530017537642054517106647985126101874240361149959273892841779594731589322912801082865945969052023570844878713941436470781949718966122700647284381369574843027353786817967368209001056187912519541109477222998305337765912795324966441488021892908056861209026108995523679638544983274016006214831253811687319830236779671287217757975187312382275330804757880250863429410946315411433444764841857194327845672916070358153949264474879495922235458790046516208922028543202954074428246965237170630523084886298686088988999869602287432505895179639248855165210316642954575447187788389915254825041000007294645420526537549322846861988184470819627293779378059942099165701535718809335930697783115238872391752556719110780613812952218684265864453847006342240152961604615172321388451979127492805762337292397681805817417648715427252284002892939868602359351856543636578637884324094355037820545527677375959735398814769612939387646809172903984650029795961542464316715462980181393359457566298838275208191545965686657065090970254740569131131923473302183147812956162963449386503250112725223621963630175371129905991025024908584326196819453135329233108939402684710775206094756773598924622546763324064390915184003282280418596790266693032941286560142729927478437027961085076900616967975176342460137572029478296737993487033994230482235339904224655570387630777201684360514728096887199228313338208959687475349245748341388022051424302115678104583919502042839061739261361443068976008737275349384784589334757568067583768832542643081870474257631125327085502458194527395294501460759517765042770717135497947492043126365201656350867561349810015836228071050023858861154143825225035567991998262077145669993378294844652738705411768442566120487280224183240155999102016011706745206492174290608184655118707093795082862969358147087046757024958527021219251671569988496969659490611867506199771449122427590429249623886826624118728950114161601371050791558795061354582867269339215807808340773708485254458478762408464458982583294447824660677399932126275272561586776067963062677245465097154668880753094010265737591466916930775957130799938258269845672408750166659159212570096984126840183610768704898655821253602595500738205277933484066244396085027894913827879219274265588169484255791260280439957789252919674009383716420695571534664333726161194526782981434537345772261559108141123712584878043432668964314034338247078394431085126932970608805525832185452550420107053717132767698475601733113639429435301711900297135080367435626747841897042658931442998077909963996948841766502059771765920676510725846933356372613017593440267857494344440041946391431242013269713097541411985618109950198973019933566013844107010315481095606381830942274626490332337038948235356375442628289970697989668308815395209715461792074069503578391952777842338544250357632573219049334437875823319317557919869199099462895480303517101527579994866466927197281148403341390808923545736237736141915838645718796775041616449936062378068957588204855145780562994045892065594331009490791576792336064050814218283922083297598234434223544824884527897761154056768407262072495711354666659651615111914967692435536094853150642844070812794897178293608715381214828270571512026273300194213543394277729416713654011014248996165383623028002099943942377274226971628279162317733081972776392206616936635021383695434293279454531163312523523724869992304716888746575256425306017699207099122368255287766337877071946006949027386285508238836918974789876102778609999727906233467584867512068546210716973765763179208710420331344624614703004893353610452073774602708024028615013697109940020038113518056181510444951791444700545082745304183314213098887387911153669883843300607591046617710989574059727415731688590946684998571782787471388041415227051547228544061623909919519873400525633786323419764017636545938166931354344998508656496729731442858915926408943153007651107146005326098494559973986336074381932047586014396333877963182038582855034313573262190892779397546255183640060985361083311340818329364313119589787092176195469712894126152390797469129322924895324982234462436128580489887445633485351854444553945133853315589843768422328763875322222247684614238501256822829550531282986988245528344492103751648213391950404378744921524866712453689588349872194271953859419404073129647148075370886165346273809223637723325768729396487143328660904254861789693079496482937754121061733719213646719851465960710517945954249781819164213214132747425427298513753988514175658963892651114573455508485785857415568416562028165745885382172412340021352223500977830466280833179902105235483110066118688767308215043747927174387857096601478988853108895931267396199440823070085364890439077942691958429770137422121961300718203207056625031578649248693206843110388521816365070281034434848760810811318738559406957298716191913933231093228497455811032188665013707112416891567033371744350845904604808904987278678710764905663248564727624531931926350837316809865172229842062856828610858231360121698746347949741225313172445994410442963457813321547561301940949436477995565354486523521172513662543773117844022935072156554944757315202863514132825933755249143485928418976252909334627519165513083855825070613869822139282420475936770491960660138803911590204785269212369650276531584486453240403229172458020802791653352460350609773788375990437521544169678552345199231587785543617174302408403646707591897794335947485428704111930068946024365602009976018567816121647180417657327260907181882447773555047309628844346976765786005814158998496905119812134691424972736558200488510425125566548627248868464368131094060791187687337002332420439013985803808901242029467248806716655174148161583035156877934228968471835427264143396508487280675264465335002078955035880874628473797544680020549333993945539821782075745606668524310890939482509906688431324515104174496364596795412649672054136015829160603753523872306906085705970947904189683577140157532657118678539386928007705226702952621379474045402196981636089044150901644514379904654879986984268219210440949920844554293402773362379434799016455479217528623288403808119083039685042510271986490489291950943844830381226452326198793215431520874225819664330754819558262784548393104345167253844797190562550622244381080067181172159094686332553209009619850354482260286861685933959101485199265169371583519167878525723112688495407456440803790778875680066937544444160504932541744269487344019432525718236518128020072484925427584641121388099809136670860867445292951469792018154352283237157516034601114918207571816478009164320846157080493859548113268214850385989961795918324257957634735429639017116157530364047020385584195658483415406771663391470436558822952668310790628216220158307547347535157734004158352177010058692933965427445676704219395815432730319065767802786611683992029272824553632042627121588462201662594760143847491773771806822624703728176153141022170768807979742050889472304976049385145342672451699393745660563422321570444362679138656366824737091201951218968687543545916673358282550802612953092662303667765672043309571074358042531839682080962891847333769197548546292555324899166221557814740180226106607208403135521759862111958929784198332902724796834371013807185834423716404194459375319090572330048456408706413623067503256247815612310953258643256498620112805434617417691966071675254165772316067873644439340962836608819558819944440634640502133906508725729646829048654911926294133023512301277441339027397899269186331469283057343081240631379456967984488862472054557103157476837140518927214944071236684880124322714948478018254695515236983401197552949574112822680227320447346152027023123129988107511769444109753054108399328078425339173124814509054695723839068824759466782439262120285059567239646868511358341421093630975018519592915689255379324029760845132710605741177286843568263053270022852157398126142854447566230398388349043649640935361158126007217037840965166914090883005183727293625414221881263532375573371640640822025825227634719168660389832542370873117471638810554036401967914726511622386326884096893509422735115193040972970437131918939879594163821324164280976853220740309463171887080202820562216928093342366192404346661463565615955473834478246651874921763299513781689842301442010638168705860537356799949294071886798852772677745812380818201779944043471165014485375708335860420252923499022497369581975524950782186299018730940385110459045525841032598831135307006571646996204415232320901105630390751044355424123212670399254044483614209171023410083432158766719503505026234982477284812009136938345142962900121618756322776001487501104006281058427610238262307831176545350198671450995599816720555881906198316501167005574656538939592531250646245565339497785503401894686767957645086894311924617675377689369751067743410603788152434102427578632270735408976982442828463459581385005048308034954353542281904889341293294614475550156682951790602278118088442119756143221628570523469016423587172000946835389404241379148392138447150715325666142244919408313791046659309941304892405465512238830466774553172455842332020102964439736369448945627879710837402577235924502199707527296311148226599754572569102740735469555541945090445306579448196448710662592490524274613240741154448096296440545618105397604738909856393645031663920624077463799674257224449560446130276922970324144911151904408841941730841859292885971663130720476191222363023781467201297685958078327629170547029099929765923281285598996659684030776504848449717856998160626362335140704630594057900059103782125081395963074644206657277313407686793105253102212773378009510323039617288138526547176334710592120233701674003163212529914420532806865491693113271682363034376057239605524836691838812003670554523163070136782350119642314102588786548322999663715927699126052787166195859894039354466485881494375589267703316598212748644819210453351214449405159193065479101275724925208564136490261964985394570306012509443774186823662396274132622581370688089153197037118515212449221037373348108312228816741896792086721661892097957560541204975436915481685590201389280463766762624650730945637070156630003769324402367729636501268818095864835345515056864573139377052172947038056469548324713481074586557866452003575042127171342355868070421610343001058771042995583458904592616645683291633108670505178901990702797941964211257989029440589573043192862464149897860932891653083330972588996774489290085144187089920656709714633878643350044993717462533840410906281969954575397116513941605905973948510622664366530614320046101127491774324148535068778696642989588657902937668117783505848677647232250049904453744229469058324604455613314240912712699641297428601879126399925979830402064884816383581868806868544337894727824390859842829555244268986397870844119355984831321360407275184138946116057536441682418903984765231667985742846591139552248148952222481850303367948789493008712387036214619708365314469377539776610795780246178663664710004880513523503309965482250368114344008955713763826045437360014146101516590928196398742155035948581080564080333231435868502168439064933167747953439906087887671624493877115289107041851965465577604635215975662549005815574073477269220426617329594952315784372158458595516236843536608406963084239158825623015442170665132104752821018448877727852806773163490073256900216047221844749101632142579759207063342146484931487299238391721593180915425506288548205457670026954245648728256054586300121061882099342888858105886649138981609027213305126042791100591321418339012144202516154035683195711366306962504196258756559407846381507828231055690314838568670907385150082661514086620932809464020452863486729162980779946150687297437949838209570961308233188082951311833757764669226005025232658448223175177790107125022457338757620204317104546119345972508157089608804700587706073293127680221312890389796252131250023290254631680425229017808795607549064487424199107386615117315942557229407570959403068894120034109102374317604990292955109118639682632109975860185449658660798697409356202391668388481003614266691662728140630402746374757302045520084152778428177889237279811779688655408560594447496870918761937911924052439388583227090188111555810907949542714807693543876945258462601532852669935018237580670267608853057900423717866912653085841274989705454084704093065960194581066031063107644066595685981451193394943970908328787668331372112000561443249702794364228148572426646365255409280152792706551244476069151962436720289013638443432149208280429595550512578769214766345093479072246233039527134774332410556729659214391829010358225014563570897956176530800006633839025496061257581204969602454155055179502658011739660093322897601677370340785426884633134559248331596061973802859282807810585260443107566239198268177999707737101555892155348002082153614017392179852222809473921180224513546026006791446191612992432957641242169187808711331787046692452623091761376821740823797179794857607840107551570554587852892912609650417755930617555736243144050624851153200213817116314602825783768944880618329068650318264810712207039419556906623954359456034063217840427047064396380307405076820533920472725564113955688794274885829172340334010555145938067710977038334614171226556318484403927828925506566170458147972353484059418116577333834947206096493635865697957082305791335480460447537836386957256203796205498936106990991469074918419807867423078946037176137759386673671060976664202452670627241231911056565642180014037234424525313870437870714050053807536509284453709296887291659209425773568992771640834258976420418256872768243183528938618468139214508526242234286058222993677630980901329799487928341904193176308483193370564454548652531571978900305439989405156319265207233928178809628232543540826490862496727959503668160107794395145304772795758954343807318703739214850869883675071211232850383516691502820533979992523970746929040637713106821055245473852740327454822763379130758436737031624525620511196196947736841201949498064487687096529337494481844296465164387226801491151913804529848035744186090198746580787946430417744787606770912885739046372912309268516920738400364182595901457136439728236558217027113844943833188535473125499386508224339495970527251424538256818871918496336690555648358134694149562683240787451662948114313183128677352238383088524787541316923528842337865852743911776900086298463542280863232119047562149115872488951056241060688923037942296211316783127725095865144279415108046915037464683769157757426657821186765072466565160065640138864570816891648195227754517089869823177095254019232322396476405087942290421153589343456325115005515862657762729403870207934500161286890648692452727606548559257391706904245376532266050979530899560876995559932293244523188307978317319630557068053867661296137824018629733370239191343182056173090680390897485916664090984950245368505255242974877383983615272722598431852566084587203662338477139906574403362927631438407933675835421788566544749230596960513855841965991947265194479566662171244668509746088682970150123098550488994016518578844507585579678232313475895756136193546747766242016545548404608055693442708801248254111762974884538872948596556923644294260732563909422742691673982920176703223889807989651384123069344951889691128774580381382224837605263684808792075969790678796317120094997202467937310714820588567325923435981275110281528169454325890187862363618355232979993433460888690169176120964000921153367811044136086950333714074723910065270155864767727923985159350389955089816616559686444223280578736715880512842593474492557441555944269091238980390037355246592162053679735088624383812031385492293931478611946588722390255901320561973480739368665480770482290711727395489666321461874047660473923117749515030493372128819006293509192470206504847317229453592600952253725499058605606816452462315611530979511311202303063623436559200998693270255987727219689375116728307422972606161244479489284563025658953614501686136202018335612699527584483665616399681604142425787146934459097621028097688512791822247961144864301014294080703925707674846133233663585420621950014193145801991018167871387755375488499201727225593346359612191586585358579283935881697993844250319196105541356883463865881838987311450265496430445344313884591769930175011023120176057975279146307168475855676695961600993146409369543886134114597407819531221580865266178978079850244860101221713784851937495509473775788269550338899751535535025704648388776671946634349446729680290326780688147546423441970274966220707171199336983139615713867231571693764434907001606801884550862595996032623827023587934130301366506360995383111929387208223459991124040312025797065958030763398007532569370908022026432209336437214986559000075378846488942856158034447233458575543559216476160807618538046858239709081265944683614717686386177848898852993775741775965888148643359445611069529895353176032395206220377567370608258677369842834767299340748902462404050258170860111576379071549031832262476723742648167043231529924119069106694835265351045957448886619500841831089381437688616605946992147667100170481933956788011892430092418149150345907287566933063287501164519348935421585233816509581924905729529401813327365688075271727691258766834573650337673041256309563902854277416997755726942400535201986281631206427903107818604930829510188950579477829779488202073976879680184368659574570827691699629325085892179171656991355041612841489267912018265468759136590649304231762445134531558377750010756863143120298184294387770426391612677564294773337533760156194198174927895195867618700244179352531862294515676482518671002722423598070123561706991068220934203235430313386071151088497542611636691709641620963719097324774060267474639503418157420088138873192961349727913987581752157532171624243392368038833842666372597586545401861038241013343750587609841692861863273227949975655348637515614485925760222080438123955477445828005802018637191336531222036523163358623350596228298866315054016539490828002594816134341344752512078236593226321877502767633781692597720914028914930307636433877454536639423116529722127505187674729657596260696092385444695056615527034426310860690689391858265964870399175831028879501876368897702521141265548792597768107599884553550906748564892698994823099995833706254278377147997248252693531222647849901958143453533710875746553215009760032171400587982835960029895405320441683588143003899038094249106659744869176239734103098696728952625547216758419073951164719067573491835445858595975820937731789102079042261435802238386392109082376743397374514887690454277574390228756880972336051187369206127641038809927289091582887581415108814317751398522532741889193087189263057157593520380750675218035070002718265211228918705663404614771732923787664048136528686398466963924544956818506968940120272297195403893793828491098230066491137107504559662325147650336953549711987358254141560061676229230958505949012226736454529136094510962307517215132407021207564167129201842948914018104227557399589769455920272268942432600952445105152905305146715571763607774063722001077693093098420391526692133206088314108197803282893311794459932182873750050601147846072468681849074705958959750392573931265259882516177279462624304742538384390415742623308002368906571774025026793042661147432210577900205440047583592677001687702758659583071249457675080545048676970050689187460081160361645766124979512726904314444642251500469664994864797594962318815099989263791168597087510145421692089152453535978770114163592573777003673674153410392879420277263258710652057085757479372172047935277415004962299625870100313771660545862100258197246043403874589685545299235308660249943224869377371165968374076273701894712205219821482299701632359545071336629005102673631317612279063612832376863741438297114525602130401760962466475174948230747222986234340795868432931426637352105613077847171140840231630914775712726150754358898511785120422765199750457815182431090636824980206053285432679631899680593733707101003220205346762009626715078673854306799160541739470600941145533392362625763701703687070078650922304887554640118326920421570246881854472620271198725786917127921969524979747721633723882643878813950212292820204351675517293757282798926044404490221678329518376891684403703930290237262716471057298705412359206190267234674946893239233393076622317742386604663148457940416465130744934540234894756624454048782600577932422833482626108368986615357668275772600846167843717846646490824698071256399927319124709364153272094217922803826736103250255500897271491181081337547645328133466288459768276589481986845689787325018678623218065650667637376324514666003052815276000606252716753627768560598478814659340097932915335451689847086164927245291174304411852746158900273043702909550538152163964111241237699402293936079888915438615883698795096582458986104262298343758345731435980717007765634182700537227611439067172894887907478351638982759664875146247712160344230420540702300898966618782207279586244346500825384986119667019495010817146971567715745359975388792747922611930849513145292280639134313685771483853578036509138977758783803507321694607082746757228625864157937973314108659760529638520820372704152357613351297884780838584309008613596923303118663736781364446352422930059845436614758887825677450133770934091678442124379164582018000259619970245724610989517984286499910860990375334478269287679252129316813653260825564658706836669367153699098671435362952745517775928692277434281203263808407987490438421901024351467255995252433814686970755735763546171108587581356076888806010119218678729070698232782619615158361152278806279922163197635434621752773523636672611366593235466147238605349898063670550995752903953734528438228047663880882822293717763386371311187591739920626176803262306553418836206305775878690401746200824343386948731959961453246033396268008913990908927592087446913378258430965359475235301928640494627135163988811564178739568014474844299962634640002400634947279711461878275811388731786970143663460703020840982066911472538262916444446804786169443390305385828919975297811982684315062537159696136925552609403634603944102936802530391315223237217033929782882458879886091537941846635072758289851921444561224084602067098858300071047701979869792669392700594026137323953887916635378290614742333939721960758726582777136055650900899176440287304827231420547902396962039836559154627811696517092424412986947549451527042352417959737805246648951363257363781982623637159801807081598627347597521106959203273443804424764177560491177144066624095127291244194036989543218572804152474938451928950080550763958697483589257051874684754607577551709463092155030687725563781879588593395688170959964372901118197011572639561488677033942501584442699404121152067582346050136100029597567908997317711381139528273115538193757157461897978137193984047163984811385763011912003152266006338965169225521007259916425959611850479552847920993879294230407324960933959672421690486419840738015519273721605012724775892355282411337255693024345830512573258909610187069032899620131494085163307391165601740821440647364254816286603815887066049195492885036060449133413775963548603452299944466668194086010519080952979513057843813761255539825508069960932905329445502027920596419198284689318223599738056720530222678579968489390646712508699935272331904563345121742588009201080056826416108515118789984247672078914218067807781291682180183509400240502233683176374120054247474450767254192853387534958715683559534750484384864533361105065554500992013979537219096699147435804696532209356761685001408213589366447920681932069438327165107666301598696361765369620629708716282789562996331542996505331739775748892934801808426252523668791459544077472438535483475587415785331852096533400909112154863148236102719941798857724717172170937500584105862959428832608901490239150174377615718304421712681359098375836748182890120248112579680383310979585530967003939128236018814638258743660799389041672685153050875207337420636584795138896069343021792513607445841675293624333339566606435100428822170014889978719173638585956305766826259296080671729237361216345127108532123743281287638718359448786781385879003481342177220619748015767300162363182548372653021522341319244729863889368564444542500844055783452038585366070745812181731167303279734834574567286694801185985040935093532790982350855926174312204623645042477371449167979832849467861211487029937532938694126426559968541414475822157296797999820724737913184754399601460687351394249469704125394302831176888735423358011032298925583322450248927274421810491102245820376176473943302493681988580484620048930168586348217108718488657914437107734141859972423842956765178722437030159415347357479208039932897135018273847658010457790989330051464024126246327259910084656216951121832335357019726540397952428287391259221079883772168433344168432574473275009590938850488218944594314055946645336737810281940759565851976941103565843562573840931524916485056023351066095375176879997733906298680007129786499246395814809177099166870493712071463873539956211947548326287415991747023734937005488223370452282647720337617895664732298132938460945300041779607317096597151150743816347630263451872192123287931414797550495993236490687755834634046397466119161441504375479692015327043748583690274549305281101279380942508318465605310191041430102100530075925017895247119482529060711030996969826277466108260937026159600700416633401504945948341150510827202146756491932558857119491734399226184169172198511735358520193139359348991643158176698696171783067164636829381414836511640707263063224191700032575746555994772425996389333679946110492588434449596463578643961853340532749463460119764313295802173637327738121581156636444265811643179603549710896984372136945456841717428988727695604855441149313507709867233881426992861376873010426113284780938327164660287455993288068566082644730868279369160139544668501669657245051149416833660047652305047138939044223067774499504473204415717960699920269886254489412616307056950837618539149091320967101364923970260503446402171019287905788026984257856454860663144975047610463437801529187879272676658802034865000155607877250437234108780272024481523466047952668875701081113882634873311646753119366559680415475902828873895056919104397121600344970074495251449897384158615121368003951381879151566384972677850211911569689623412934210404785208615018035124849145912193816864212750243824402760483265166252097974050451323183002003771278683705787618484824631790187145090043034710327994596140659526930008846486391739853273901523788299985959590357036023724702014769316260367843289833954040875178156020353274421394753233351094392263513850026107046487609956348326725527130242363197059764416926601364181519177584343956958181335101379619161053073922771505108397852623875105146298777478504717248611711928774746566478609082312677778616558783679936748571623483780167692722625899306266293886144222210337541178019481412646605065030999082870384829904473734838824386823708791458882025628063002253190868204807173268772504536397778883266699095497898253294364826851605679294423136137080824385903964451472142312588938731610872653261515903066454298190574695544467807351809286433586501643416395138525429829166576856183448911107806516749586194385521182771877162180150075766861493896434688143408931013151246558306651517133138670453659855764613036302915030893615840510198477085887101203120949191815452339209297250848177981622673551265993466187978473880149848508520100470120615110258521219813750647854065219521634097121758331599043747775426363650310394710529038059709515727800223271439721966656966952388040700900399013534386334940186969348922540465904050179390626494453953010153003927060138039188458708967810128664389972242492834653122883504293801836329586482650481834748068522022246934218134046605916080704507973730541091225499172971890931425238945983225983285011050114981959532997534465508728109295402506914370076188077667989858175274221419236486898976804116998536116966526186150514532518568515634959443292922350451348228067468926453637731605346017864397566568571196040913978374645183349399966991742531119373774821346075978357529456313305186949538642525946439695847939889004511485779271715975563931501169129456915390605830811776094095302502355839010089196507100600057380173816283345836432730634264727101837862461472499822564232781725193307472124635577146424044562000978089725223428160781608695392544517187086341482222151292160942533652228504499875266454512014680057460247802576064868187619202717628849800628958382134588755129287435723484182539598252795972457003257487991854494882531699875405069791466422963862683503029563892499782336969056844646762315820787053201736525732282979159919380968030504570801568269594677616608138014888460926778501006665371438672828596257781516860893080133450116496841398921358941606391860014323571445358404974368985559196651656913184245504274020125699833124648282907640632311044055691615198056145713199027832424853711053803699809797617092017597618047867629153776542453530915846879750239567342907628728844520604177498176932830986763311661331086208509828362368125096404364835908800376877499961278016082171865225098458182892699917414557900919114631310609965802013028725609105423835194934155074738482490669859040262729888137579699626574609830759485823306110297122191716991258315448654918353138885105160850271041479620180505816399174008492261511095976252518784304300711128377461690634845724141681744311015847759559009922640804852705515232610981902852245477110385779893142932360455877832495308101573022974877781125594308111745807793356394022998436057789627387642418932432853523036696987020886199697305311851964081235083856082589672692644122390694581876957247595610129886794756770161057041170593063693508478448294724923012857307505313856719855815671589923819104997364184503709453143617232510611540347018247216517555844235953808585747008508608989783809898024486817540299733146913777164085079399638815088029088939079539185510175091378558475162895041463565405647702966511768244031346335470856775157355824005410481105439448525294486821599622340064571926942761136143670388647764915238578525891786993468568584129236830701451641838925031806560996788569000155515093755796272689106081912398756801549329277309033059410382133420020173864881540069652660668877795284464272370717589109307917304817791775631441431103299916454769376445035758700954231965780974202798811079598992977704452999018191971200256679905833362301752670141819092457924003123461498794297862125758596067390005922710413386276585870462457056019548907199480053598168833954307237296938489447767978234641652068762280428282271142760318938778783465065563098829657537245171756705770855826205148104525733583947380497400918654218000821888797381448815118958366981594518318315941352516712741071646727457110906143507708684696830319801951335974622694051682442165575179723574842362717998971738035682280854211288728907785523316450138455946592626445195817525784270854044700733929284981212445154162765481349120349223452127864487110418739195118721780071831225620712382945574800363340248036247514845003193664384560281905053366237506632945894467005987705767301150437563317322697516929301259208394325580536050389541574875546213847929455975807915088540285645844053547927729656523231803571994670175464158832115345660003091192112216561893884959565339248038105302213720487434932904028653443008440142587542285695694940208465360202578070197630220614029791708446596833493348750217335573935975884530598945883021639995342054118682179216876268028176369235645214358799702904349975091598658962189359689547155696844959211626119939174188087025108101152271307900287964929987889039293187092949160419194479565043516048903467271168830353999322834303029357141671566691287618412008536390069248976026822812251952295243166052883591359532775260410343514346787938592607163790519299630149213580650040472814355662291063441685084169377802565501337857228678414827212659339031770989271608779998252416930272457044388376730205957145578407105939425420706407417034520979957495867354110143610460798815014535819295463648483432891340064654496393448440252903986311921821705700171043500736856500950372561511390564520050945642073108366014480383007404181522581357723259450053183624240629626842348556811409697552262950921917527945565814850549787414977660631639959598451641837561942447251234635646179397787679910040148116066374427064702693517398032264499843353472431022193074395885725633084409137712653173113377020359480284365916590644582097403380769131634720970901031402520558250733865086880214915922912678524572324012769708640624844186200555731548759472195896845026443973860685601109811999149325865893060055635452887793820155257953128123618196817897417191240103349490445861747827634385997169353951817820889507422425479250043522004499253472889983759319824657445475635979020156558939189900648970230521184526314249901122619019050849404518381960411228665277211535855430794411058126148837519461530027158937645513269870978606199466534108338872612592794890412267696603187195114381079632114569422270503021506847259452575219894195520817458950948776366210977670900253778119178893840820617294113453061604234307575261927423000245330738804823667776225392078498572480983581357807146762385667533314481148387194942768423726196966981722899448434534989879809245811865171942321771155830892974515426387238451506033364631816958841232588831483529521251641424252762648382525346452091425056866448998300053674483196355119946869629907589165216737297230366875368782521338146821193106494812002831183663498017699698483565449825603364957207675383574186908150238119714651701037848486885591561923971466042793411136215579457062154109738075135699923592991751061391279606106744942446742842403857954045059503227534236085580258058396941818813787864241107013058969398257343231893347919574645581632037197738847705168159240433418089790257448676889545250441616937461904283248677214102997521824161754852904727884780909099151416860666560591314250714901620550800611058224325547395312296904089336072722566184259904951023503401933837038618436802051954362600896086926344767657492658107744035156029654134983895188735527360360949274523730609621696472880173517121131640847352856601301942214300103719212096849040286326341784276581129126205952361195594222593913455791882594821802380278282813807996001810530920301633218171766806198053947511644289845315686395411013289495425986627792854736911298130209212083549908022005848840232879652224264892825712630585697897721627720669472571202855849026344963070025960820906538280972081191509861845491451828259481304632341887354829145584397118388507222535471780696172183949371711948912797269638718282929334105981210672009003065761778506500797363211330675668096071623782674377309735635604048963862643699262563742822596447562430064913349001534494668135716052462580632369342420980237281333516567971224804600144733237996281125753045359196548234940599696901588131871361829390728810745189998288706637212733867275055987353923201867402164220825964937582463264549144644156196645706608781607134237500439456395981354955141729453643585929037383365582753508404781598325210572545846472339626080049328683165110601494079384558711814531211129356129679975110472711204057371094772732468938604281062934135824539523462554781170342030688535688431187857079939869448708720666237743440633551835393008074949331810836339035542448612952691924064586014371587421797853565871174712547816163664827362942200373828232128647211978282063109024178045242647767833744465192941505808971717370515748076864950879198549787273642715527599713790169003897091368971803804696560619924624530821604276578701047204439098813601708507292306351514627654544908099850144069868155164801003209081428824325240400189626636429048922207928885202018176265114626197874647202303699157863486444648061642461156781068172376806542443717226132367164217731270094786918685818350445175344270349724346706530627965531205485644851245387964706857564385688252189471985052938624507442603981062476686484304012404278702255080968566788261767000181013634281834361422564334348165560727373778447333782939649228409368427602324057228116590708807109175410327271141482565089656670464006624155855185150537588865626107304959519664207915694363535971163695091790134424495399934345305389316269455703996330562762993921186137037962902594795213390894155883207223697500777905603455346989162316746813410476993375327162512612659083138653349838303703523391064985954909385903466993378159245317689790235837520432716147203694147879790826886541001893278916986613150874024581714401689414510856139289639826171992142966694931253163803999100686850706952823426887884894586411561388822162829991710066058388227593416799674112665312610171730880853926098821091835522260447339742788277272680394847509903410620008511726124319028328143424244629432376800351194096653534585106498237508629281583302701181165311838009976153789684068774558804880435501664568349059846659581446556804469911712165670058725497045754284175925869030683485838162914186277816013271542990777262552727455928031415815051174536476613447352441075704344434251470733243237415166752801653246540565010028079116722152490988969092588903362833672965996785886180459976197514029302009014804213065326297317663735675908101695229042497770362871669194550208753640157771508042616848719428809831548869926797903762974334932356728715476695583653412592031023708797659445123386294385798730550400493420452496335272909234650213930234462953794215520078706855228563259142753165031706804085702071100553332167934031930808650525065523338092511356395708239986529596141396861830406223854768367407880623160278904429911729596554710697351691605113751535938421990874429278269842612614616193696300274270112046264689168118490803109017985952659592887196932597647679553486652213559830871677740505242455819690061738709105096263660819717003427830417225538420108536340746118068912880397374267760272054850346887771878444523868227993104663517514376788912259317612926577436042224648723930646766436728176234262097729678999481823786770018109949484343635028313292462505426604405342355680712660533148860996126895161525343598553842384192924753584047851686369705236874002390285162560342362432037479765318065306425509257040321899285240068479008158052613262380360501045975359618694875537061265285264663119043715311431207116168236871481199741085794463395169705100365346248631151075335869556092924242865166599618590527853240229215691106419245751138890088238002285906927696864297057658380683055802982533642013218997364032278237080473074312736284613777255695848122323747172589544789858082964157570280198151640228443048404340455480078331702997789893071119886795630975636375112790347725449770234305722989271928056333787147370717953683669673223726557430607557469925087459090769276385707569778263951128871769261256153139358571346817027653678037352238693854788739672582954606058443202906196725479476574582303875736705973937294334283201637061216903488084233075458249671036937917448622562757406586788790884184318047080813167212445914900690079703959499396094588448573959670841009834760151363895731923665515683982600371105873540357735671318488138908144000228827653687314262551038839225618412228911217468774267299366512820730394378877856774523729080425568217509190508962252701191623415176174279484190636113624145118713005623596806477732130162602313520186363406469860086725906924356392571894053686189587237435625257974948095234748752697465822717788099419829873891637742103467084832676944777787041570885025086527272697204995021711771462677554839136278824987640344421328651273456103194834435507831158923905282482038224354529211584700225459944045290317147544571409693907183744161658677768340727799565266125009133692200144096707957117875253625360353071323146480368119709900849593082186627560303917102968354693367798253428096868334979192386145560459699685508284678881412061606578214807600437927095520464843208896523706062800867152532939939532165593911338331319931557328436915738549118028024892974053911027101536481792304344110926504309069228466847857588028951021065261628982335769027198711122914466572567892734609393655006908168213717245495151956273467511267714124178586174896779161681866735769828389258532323001718214470083899145946971471763201718211831860955258817882810806004320152661033933837688904709672482379764565301896340862082556995457311894447562742009014991811663734620939205088626980232154365416633692203169842042272484817436076575557533804622766517650761139036644766358844131330148712101867885726034543086745828427427626211225163880518986599813731360747081820391774530036778891821879034670683944171200411512653511567925670213107646374684422776080360277106161849507805162993937945316310478532389663412156628102606378169103518346117609746266949132316008008103237619275269705037574689924333226415657219578758609984640842031775933255140718830144626355829345080829872840477375472580878223095193806172796136939958942673251068985583173432826748857639149495862899501499342006685685328465431571737705796319462858276008811393443762344210972439314295286318817081550683183058027306582296396550657542087589364681625056139225757176599861150691196274479513903994942979824940705248744141894683401119266260510816167468434942512313075766487672252801124036381059077022732233654086675288246304079573754824835066787901127281585651405653167514425538919274279441696997321038759965344671456080548597381140393456587085063606102411238195835706579980394798098089555417986996609138477240582674625199238962152974191213495414116842613155341659488100408781231836710219330077421288789935253973413499186278779354275307057376054792132781644796375927589293082903037908784362506038818478194958108121021967338086219691191266011998970778730034094330138994171983763179328982960877576624241068264137251040682906108825292176926522099492924113942451080327322400500559439147629066709493780756382993838725033558052001033385847684257786383997508363138643477776954802522657975968045082001064739715967163158526046886248014631970550573930943448958589852831305293489346451416227192882241328589986897063881705162441231462995666529306456106638853029353270205313193556334668241578445236036468482574871208258225806812172284301987325030911298565549022499035417685175803077917047782131565268341494923576503355355843522712849111878557650638905786005523441317776173329770801009595849410599383930640473725326046948890616503615829417351596314013031863504146979202998756845070343213299974532476424146354807694224006554062076219110258549762787810495391896010142861216810466136551767654258255176167490064062605537132632467957414097648411434538843075281190702696817153432939221831683749597955600944229356463455958716249668048788677874223686987951311106402826985352708999326209271659307455215516515252675373738031995377855149711623951530546198423865611128875603051496681346961429878198205556145914742681988529278977575344780746994018973426170163359455852162354012202614412518229988455063764451658352911033832671190887122562668450813073914761546069056521991102180724482234684928717913219755287413745013583140836920746447995041743841619872849579037085911094283299851884907108170785418453709446769913155801418408630262503498411678812042921665858523048574213042215460673662131376382391562470277061906001141861033796495385211774436002396579414608763962347258491490572346604495708015579778487803928116868070610040681242120078431320127431436837985393855819760679389622286805755971534375194949269988647137327049167712496504628762605252369010446800039882055629885159835618302889666090080855590311101364429660678610992246045821172005680554910978782863254627486166147052097452441400616019347788354821552304729322350715964789083182836046829746840102660784946788227473923099081322461086927982199318524473917025991005911239004192921013026223227538857236801832283128045875895265802111671935754589317408849088253788151956843976931494897072886008649511620978324432586723039254173834333230375634145239566947495937736920655767146654411714124798131087593012953294269323130475376139154546325675073595729197446481241352234318078410524709807433200997318976956638284806194543857833886962686843567214081195797904995372463473536300520065486642817056023240206259933486591366308384706736919518196018463034522632863262253076002918600502207566873838080064664425497279838592661495450302762373837988640795264798290269708634793547480832836306623834186106255734917894460857988724802015514158436033758104173180339914998724568977250729747287186715411317910932818432066987402496289104914752056788710867565543705372228525886209288557537636137379462482968524163612899359898335471641570641023250406992577832885077147910283621703338242634783648085440934157447150037019112484929497395871045979657559135312439975825624492314850871021699730102856312221530847945119140538279919498479685903797855977965933266118269061212140517655616975244305497458561154009154811479343672985292852290222758485378804482454808135194993676579553837041613384322888095633748820423505680878627175638312206052674187321517102308386523254096580661894485381977482330340591495520680777722175219523725568155073427234095645517372162554294488151629050175984196272085771527368226285543725604614238253560847809553353272010575172731204876700009332743257180748251302515276122086994730155418833023208889384515097415471115323898159411688329901466754585078039287032795502524677021118138992054706585049212533602794487748463400682939434287780489016289974032214228299661373248616040121689987555841159832234625404912569336136745776595890240149425334410185816772848827013124699880321068336163095106776186836322218379506929542497415502468379894462146614323555248053021439566824651356616603904605227316626948829390581117426066177170786274467466326251757632995922421878241054465210135837639914131702852483676366315914812141141679015159653432336365135087759002195828594771850056622189940823714621183398225601686096793627299155959824207130963701961721178366297943895999104657935219436444419388450276552958561226230358602892662962961012694118872080795108504285630668048444079366282142731647109021105219215561147248585217086818945372460989945550445883692553773876605673635210864835170028321228110784285501693756451616718660979930701825113378678271305186453802582025668520192970697294449901833823373428890490348599954755918174336018315040402794551773158119123954904604558153727043674264131361894763801626150060189935045528906675961731861537318387379187567385902444650761801799871654021578659956757966506759632103685900206492581322918128529892234104990131477571540356450981843746171267434725215975387207370584277135338388974360501166658768106538094253991791364562302356270581213803835680427009401627655396729424088572467860875829537798700567193601557909205365790516910790779939173608586829380425678822978498515665889424222187456706643749983980299939097278418509821444411976722642560461246424543654859538645244652830393843163484577283279973850027146708576610271174154234678655091614718224491050480602247604077186605756848855969454373397837552675364237075945833656966931252262390973310553029820124477952409449801956053760552277092036905971092162734738754316930887079236742532987916088772948803764755554463362449678717262673735395564527000339649166652287577306001334889695670649643777976917611997481192082990750193721859033027358554840048488993029245640836886947637102844128404201015580900702199043094643676254405591520788394322781744408830302846701041150195244863210657232425004628776797176919000700354416790997332140360088680735876770198650256990507495076120970466884899415186968015722859576098583352111480987628503482062161254045552714286773932639193946655009235810841513696288229342881762462839606282414834086736520070147407599682224312671490270927208179173739661321818819997050519692858752102575947980018201508605269815109565409398936330370372604274380012517474052677152154029981918036141061431084807315579192204134750674804716194340231818680657487260875367128335530343826454957066212458055906210072348600596219843884756927767081580391227251652104474434613015402369661766032456528311841988845379491800582395362337283219997299883915013620135441181790125268178134096371509254192142621963707407282049249926125525661217380033499503877987108385648428996117278627930321972096302049247851008216032289722071947152998582711170915423647464571358978763535027311977309269914856850871789244655887104658136416980411620406319238191000561574223919470390874953045737732143136389544664480300796169935331475851760544879264785997505392554491285057586798281635616284952391974563680098524295713167295268856225913157901392606108852289872023678634453210922976902024231204008133807766928629869635736735416215926353300149788651783642666173400319330705504483510005373176476506060503524715221430783384369613576828545752419784759440616460385048241884457719872317677064716164857545235457976726048849227775819821542900663484459585783808926450806359194641611710683920547977338154516556564647098253523191633280410291200298015871415911859353742234364822635760122898547083962380012221020618519609256375135272902354680289114944055966083621640524347451937327590642206424063682957286695368771824951906877269660663478392209001634253722911641143998318894276413479650568667893653753807954706303382853537887276484906746976600988863466910292121179022344360954369272705258000802867598141797537821917124370881238233454255860120952979713741052202254365280126452217484326947953084153399460868712096080704231927827749141033242973769544332459242807116076831590982085583731505406160731808579966711246262717509819657884197135032205812980472035481004646994595483700612136297000885262389271833718008143193588931880708946471756790492447586887627431104329773232803040887446607800229117526738963439208963602074111074592175339438961668763694860388956168496574777451979202177108111476796901289450640277881116103626440058403260544970774168210805838248327130098397421014835651898850855102773687983336552217142450169128775697555122790234187272460486676121227916956613289300093446666215451059659891419909097380873488616307546917210654600709411211165708120528065460447186026685038487774183840573142699731545328438950956030674911542837381840112283299775224164062382768876477769951372825018422812021997877504533976731319171792522785267921693844406200823308427395120507554634465533924233917279644007274785227962346596419253064063075858486430460336828007888690228420312112675207714265804946706152577086917675824477854049398103883533042256790581098611395848146123737190432699691002707004834128462169077518582218801829172269385028626203971515497549560901664409251812829658548518964166265924197255225586670947642456887534077263750717369135649074610364657666716083047987641587989482085831675171891784034858753050692529797841922688314391711738991092798760180643051047937705288816934112177175800858496401789291468230478756350062582940702606332111070825139524452686804639051962179599823656879038921352678292149929306698488009009854674683627518471211023836336080125420577079523267456310487134616206084934211243078194249896469573194026750999565882982712365253918392752779869669998626883479072909140883169880044613590442468387170602236517216753712551576606082520702683262699499483335587725202693044304271876992797374126619820686009822190544583119571558505366836350295282264589584378154156971271007534856989208699498672105708270774770431395538138014018945766436211366121084133921786732520209765559027761900317655793725621036787131853219852709749151171688709633324026046606549781412641768717493707512082524001765555184632676089436582466557012982456281841360330347320873181510021170795968888062313243534546689494595568389234387570946242916635873589255958094573932154740161069709922778098474899758038481066168112533221208465838146877074397412518507609186165423756146136498678037652852530812659216649035320058968267128759358298693380031793251444301967453771726453191365435354589785196703758102988694784610860452753822714584900310227701267311672602415892349979007365031408556906674100137332521439527705394508868796293872971874047241569165044365332258014414323043589290816719169089432211732128135178061605632186400523348931132834927354988870176922385104660733136062836479922276620557804588304641316174101000775673151871057201526350465884900443089483588337736001728089404699646848739479456198089950489660509723298329273936548675714636799513540401925837782315947674537758676826429924870963466880167387028517222235903740672022384067722251564692162467609702435386426398433388378534810409068354466747721437678991419348637825888368187073541181939332479976999764889981918185785005887612078177021010907910770562245900937808209075403441179275952473602531565362495807729631304946342138867809823226970378179958465658012916521371761904532240829021423421983357415008597154629159141414771933961872625602749088166764215558803015182485333733278861813645214952613688628586435707850643097425177350088533894537988545490488595786412600336693744467196788078893313124564241408120897096497837180137249040552805770172692966159411123991090944764363440378273612465305959292711429827624247031345895651549715923553839821095628176998864219170979034827943475920479340108236286802621021938199772847918027476916172553357050951255097811994403039913977495224137135342340241887192567429684124077302118212457169079124835580494604111333200235738014861184278807660738769116750181711133603331990580374874080769025600552899222644486874946169844256850139851836609340677345214173486062044998111448537621700820320588437596418163834017400267035140074412381999921435717803400385439572214397588825933571294128121567356658574405205261656690597325320607111255994887935963212325617275463455552259936938732729269833290460576383715221792324011488098663417565296573302610352681727103456845575166926054956448586004108492556069788371867941357302270230455508413081962846549868207957928233076901510303653117145229521330777286475536929392874909588162017329132509837230141187199516768138733028522839635312418355759276727026563518706765835668181543354745559105010897930026712845102109620187131416583568624949926552021710534691306589827618553117510487810767969541015176281055944314404050241378099048721823886188530741622784112679711100817718858642153812170333701217088448434069420850660650805310107838367105819022712808962434673965507012371963100979168735235619294608715253807942892443433951411151817768029918389800149988730143476380784323943492951831293503876682531644949209891122820242918825824072648507813267196021284447262194750064202478930336165830909762578474466750892920303007927567240057494589988932301028714487007762020341660014146845812523277051306716743902013969303665656356106018506478696532272207683489682599026768811690132242688393399719547521059655492463221817296356660513302709136136732544436324290118471835021396597482655469405175026063365967646460724091793217389445259876495892220184009246369080945934341431902036898413394428761440607159706106211747279985570580726487191106114910463241602321757350013317765276499343483270415351460323821767268205060648005720238723731029631116975285753302212695525801888667554240666212274675051168952155778017324261706518638899809544862780114859759454694347252140665214536931806075981797352414041713474075703448259786889913930238203930527548719799078483273257487883045555499760616258943762302823368896680992739894796791801515654898994242556287609156223921853993650200517218772332664014413828006475795283506973210763913801370367790871322918705312878237305166499302317123093741012283719325128867623785861534636699955378580569760008666825445967645703637761269735307078873819647837031892625445561616056828120354804735107614413098855126562692718048787248934403519489293174783362403250000184976720066660156025831568659601092651198712145912694693588095322951900382603756544192608835656421288255197497786710152509702098340029051326108987454213157428120769649535116333324680800700030243259788008147961157301232911936068206869345627904248128310158470713041602029296748232771958627828856804699053459060819183876531548618417083305872573878194833043301874172694925474456870095111492502212259300093060439522391198815155729343760524597019269027601691433978492041839899757455844370317667286489128302912647122277344456325584660565729721995718859398590474044930709589744229811460127903992061589102210260403823526808185572951152682674558482797985877790340002504440873771706354704249139901283532309086645052857797474810535507313166005743954344971169919958712639047267906901729046978161076836980672299058024793607955466745325209632570333572778268260504353398193231008776591679275571412997923026093059546676026760913512592657216006861678444208683389504589560581271205559053123675154120102910550058356489706632588863160233243608333637230854777573672136293114888608429007700218888351998644926326682576881984343343172106407089125979368096973734421843501679826579889253729228175146504430253964324203832326235555184980972676033957154881126440097577313264088668966288462674812478580935760891655093785780493915894818903744239584872192553081866882305710023226137144828740940485622286888260256825568786156434792033758570009785719920039755944903218613982702709825892715915320113523085647797249064120949889334338966356364853719982159381880670718187262665669920602152270414064307578374376664675742460437411419856265630964748094293744742507661015916249455737989408968527784803592439465173450166376676706135910394294035051024743502450496872904520859890296447702844665899426924815706815960479368894871194970609268017209597237408424552040225097755672066629813320353268725092052167810992254824637271628744020263518312430913168841879314331897594939591542842812042649492996547314360881572634110151733609375739552088843570875091417591536274315118355693711665298748212258823272111038566006659147403218975056261111345044681487697261879844987432630084899328640989924632945934032251729430256246763822338673637507464997863629305785760485803435614727378336271859287286224939093870426481469173049768353314938910482415388319062557371897009784158716544074523495934533004975834867949504634389241266997733639716631584595170697036792444874377873295090461042998295357245229810197178755503208778621687845255376614559482652918477545997949672179455732089113767976112904303262299492198955229413674076734973275649245310206010280218595758422529739341394143728633828269703953926114215177901650287796757392703764815268064263362327990274132740738135968341746665532982919222090843296915543474878309297669298059147882022637813303796948589509014444634963553826855171407916392287115992595960191577323417492001984152999522726347944345777035989267589300767608034628284816769128169433736582489264548183744735848044392053505723697896260808383246619695370539312598499102604199744672958973645918982663410111952963871237260909678893302263836769568023748922331613653711200780970311539025295455230598343493739672373664827147544033382732974592634994872308211836847129525213090362186574413158040161441046810911348714367562624263124419189340309596230724791328349297115981645002559810586351082950121991629788985592675207744183264722768835584203583303860431555684121536742477967124016071842147939308637247313228300806092441869274125164415366595827710432488046362689800830009912259851200570376322687893957335929231354992606712393631027939615611327770486481932194903425293786702677490810479498190653882750958243849622699730197876163277438359420823477037110819336621428550354234188047609739910163981698616090431121175766826892465820284156021435294555151707451548809056083405455534441632574972300532251033485246760428548579724912230248952029669666620306397378765717850026069297847862517372484578231473041678020472554313262503117924960147883278744984083841371926052067242010547976769497615275099686870515054955854516669317903052138853859259523115022563882590126974209972920838500067677012495983471667565803805669629790086303761045497948531789852981903628199688818009934207036053607581534609778939593650482487116554824387103573893159699251900315038185470764994280615166188263486428184928079277612664459669160321621726177156497755836229038907835959706108226286938004752839880679207822807934915387948263583657035552996123964623517352718442163910038961585267957150871140792788908938878371550301068045410309775957384859965016754043329083099571714902991848959006708514104984375959421634323943998747982659452782131898932995199346270657361425052278649297081900241181498643524121541666976835587876371425463529124495596621001068042608717562827613335788573178510099143647960267020846598271899538629908388352238097233086060580297779406411652424471736293410203927000105199081120657214912309350564740911225152410182008853378308107471878151658755726643845731125429285869194271175865231024105724931722505183493312791433302274091867309958921111544712257960144268571230301046064808851267205238208627831452537610515937068155111677696470303527599604150700226800264378479899738092930307456688313314566440555039890446619388406243014067588660248387775274609426102819161873053931002698817288439191095764144807954698680392507708045094386187878899723859499409383154917592752958134271770389389429101964535503395420434386211133490457498973692003021124838231384366971225369713207130709688951447683701023231678014067367990601905195106574520445245838270450415453718231469233641863812610458222500023461070763911687422207256857319309348609942129599915393732914422120441228533257559885567075304711730246444036252909797471421243029635008118795017353867951492131342955323328941994920690630213534037577854848269483873946902023725417623452232464495234989062967813240185425171955150255709318399072793959935314509772834962586925636091515135680815689709239069851691612625606813138635180201661062209723884692618000449901398177474507445394006405202696231091400482159677112774633012351460992555930897184171412656570499104773831497475422021412506238184548352829871479950479735178194003973607588202086915470483791438518796255370536814977907363020761522307701387175554831732458150517003688105502786057168999454629535381019659796771205660508558864206430077296438105735804291429555032778234311140761965437844959592389748752512240657804096623781683868825271910098810743088158734838217377570490356077844770059118531035112592281362417497211890048125367841357256770671580640457995610016697655690534556570872982965340563124527168612773355512906857960826171306644621073468896404852978344967105905945960381378942665299818622798354178679997128709961949691725632066753296913050077508659345261285623279050955851881199189430625635197451379462966317470432513541676356014516219291856457261776444890176596935340528450949787127791390151624162602579872831567067782544718665065443934615238434267376794675561948982395658679373374524657113264564373617435739444765960564891438460125306718384790252022244651733908877891720569215626503094969558787731740189391803615561006565115548921337050211348538857262586161421767074865431342838106174025537234480898561697750878246355275724053653179475989382501892607045733125023431938748159911349137242479559712286159253297082832149247921363190425215379739907160138030693215810941027351294258165878163867143686711033261948027085846004566811510368535968100742607732934983540161585374970719357291409291056491006727750863996028042872299102686094957147054817105150344658343115075949661139611155552673285080122123467123219018945872980329060154459758590102831331860275877299509684498135724308342105981131769049043342081632343501467838161054149737988629549345290556104680386723613219896823587228556593952835760568488641975106657113661649922989360974745717520561296487617967827735478436106320505872945494607052723860384124631152999029596931044566441443581503961042292979940643980867932907636355850984815519072105865228037629197825891973490731294140040008575222886920941404968996126601177937959990774770067082121274632677922324137422012358983288720916455713342891628981926374243201534314616518814954875318154433529873527295578699581575878289398237822851040711278109738776163992711675360352302446752825519626282068053343816704078139004672091084765879340601894799716380324610290185187791051593495695553495325495641213344656076417868911702881103211916900007154932320650468085010411957181529500772572330633701008540484073946338617848927379871033955748351044809811611111901501261089134097614066068331918714031019332552535019184295227052769052456195434420165329717686880054497483433257631304566247439783010822717390893464656145872302842044595612154903726812482963643814058790091670147727266344002826652343736925315317873221054846660446520841750758056538473721226366019834032406567256325526490651403767241231037647395229362078406634396095636117313282890335940875373422318220390212944200682860277828036118781410941320860806623481041810357640846324046798402464372556686510527469147778852537779552958974053336098928965384832097092112674283034278741462588179618256237576389865473351649803339103193833593597627874797384979138965960219644157924007541376401350140843166926078435486282622117100746712387617257218244650035244217251531609496046584368709300292722241831107567010666743903959794285947455365092246355076167510664828948366773494040471869780491076080929334154446057131520966380807597153135907627733855941427026020756424537921212545128195810803934667429214349761660685043451069290173280209126883934785967220977124154857257069395074140679234885918265644749342482256863546118718718887660990034736482128948815557321688536937937372099511702394041391795804323986384259077567768069744273509551214142557482187283292011254587279059086844539968137214389252478413895570138482338201220973998818382399897859518230730766514884157719776371256255248159840173570429051432262676877833252137371621749855644901144384465619709785738016561046509118456284509396677094096835331481835880611662353735004181646142518349207131274080704183950884514802334186232798928180581442537671538390513298781648625536841031622458445583603528024294108196704212293443611145700581937375818743972653460009750674947683551917728266613298097760425474989937001073728010824114580923493932073737699132500128895524325537935728583918680269388075212730691721055129860045457905574122495018923255188221558641127469593426653028426582329472376254436070061671760718792188529720194238284233830016596276778203166693976061533663634163951341247096019543693597200655300506954047117829838243240192607217794697862071558382480972118051902522539833691678948311229873696930191376605818657051952694151466638773159347156581517116643254893864768906991228236360212109233819209626904094096381739028293381124420734249046134236945732178866859642235153785224787662776615582319862851385457875354435414288820210811086728022532204597357865727536407166668759609473575974787903248796677592191343305144858837111910358190961822738356502978500119260946922860206654298380620159149409537186232557604863257064288170847888476224545948709973107152696906822703925356827239744955057365560762914563890952326829708782502801172416056752521536035245908168630668898633122986232881123612873285003583806352623281934095994271064238855171449350170818050418522541575270492121919986984820228775353493239116356407753143772235051215742996176946711145356515974918405670623979583382596717896632480511296984427777739432909068961536637660824874625114335995600773915517327438265198968234353871487563062070341821439715397747853093192088301552594936342060686282201572748919234433806893985090448972164863707689323228677571099753801157771103757751606499160076863975763067890351914012628352338909550543524254577099255761336369464165989521531859701906724337988624737210203483147157707735897593632963861022802035722037091189602228490830776344503647300975088945063027116720699573149242962875840502311327323046505227757749143886117164540650835966649438703272559567578040060297776323337513940364485659546855364130136129693500557944545144847960694214354210834732104605010630617322727629147228790692717201323226905285527005668698738660571390876383194696008308008914783800855937826872670224698387081774836553832306810700851563210543058354536842400934980091994458091470900271264769571519604859023768441191741554636392730272207349945114985712473511488085716461970703954620377664117205812057341804937282003234806148061574861263666690831421165400436876140504546244533164566857076224820950103276433120936682749077715479969184687813392620970971968715396520475150776714815623797602615410658365268466432996024535055429325044488847263761876596062709243539582502168310263638564717833700053568174007993867727246202277937763884308752072866075042984591343702403908349332652512879810699338658421846850222700958031707452273149972225423595335595609815261242250881331711837804608800930380253802846236797154243205093828946883405508596627457573079545239659898219364461194442432237031718012397485054071754974993249353868234184831494861341089575093905289365611690098511925516249942808384647119223217163717429986816964037280003009444658871727085078695555591132530310398769470708835663826134578392181482443617148253656139169772112261455824664997354390115575805333422765491032689867688110755931040054047867719747453689300025206170835453999249178717520591221764153719791075028860874413452810035747181331756116733535112944420807112540465693076457730167602655003176738958575630798331176995628605721492547085356788860312425826198081986564972326962857607284245900080613889219105389160835142086424398222672526833526153332909578553270131849410036818153681457330647861994573822664674332700237055032538428750314972643278578838331814563120298135942213747168805436519159965825011218775542074839771298173891977317231573355479855706231795319993515716250012550435903821363574645097001342393867003726347527132460333392984666900149470813659990116743682688492051298565776171676699317566287985980753968137503536564645977632388444807570081638034051414149907907678445490624919019160793493162572989507355882842180253415946184628563763281669561001774304068165757760066614277162593494493144655587823721727584001975660941648549322410986982176538979554730563160253063805524803415456388329041838795112209444810488074418871878646422590578237023752801269662340089721670375192222437699176207758790235339772439252775173581189949317765972150901784125033792745290164743185128310650964741322081764437815182366353534330623016261530044984263219927226995670783319320173854628205043862175955840338803703347622258965219538292847538901167304828851941599965869596446183877600478563902699260440494321654644497916595632281801316301815375345433281879872218311814330051069697318817823991749868171477778741202151464200970352781211840505660197339859254757363737954698377545099962067786939438244482834555489547347454180770798019228081476169784695102074264691328652448053978018093543367591291624053624548296541811589801837906259060045807494914505230905472527459331823748001205206134509842674581272027573457269923615396039794964610523076310770558314580958273832561967318868760091853024654035177502338124896147720494730106128374334558728037927661581179228824461333480359335099736494369787990817787333368041318537570467412446391854373194633889193176111472712424718522291842951530017243625521872896888448563805965381390970133379476703325509573491928217255371351631302015553901600686158041247091511840176762209105000976261629735057688153231968750603264140073509415562661200510170218789603597975480229200289804367348871980695359543972383972741709202927304481196582188128044571570540484494448470813562782275821970358186600286288850345058879819123560141905239491969854467548955209013244223945173303082828202013400551493985466085850507279517427495760020182671574755886896743011300629046879749481235693287672390708473141478942526380237551323771141620475909941661101465235339586138475672426148032724129074475156652000733164214493774268620184180836638227593419213339205105792106613897710368114757591524453518710940092630560292137692761128181340789734893749595195662009645288020930993590050880448542422345053898477780318393894703188740699257031798385792423362394887444003785632433829115248998164678317420974188454055606918651634602371204393406301435601180317452772965394289683268045493152473579351520753886443692001152083339818237438897809215837909606610622194959346042476975080327386761741360236803871513937169915684018336474810254526213962533809522690314617205699082327756395441814583663506472253629661313062766256066819592529846448177435992424147706239497514214696978311392267592281860513945098048263498526163703674414133381753420628211173851392816412696973154590629009780402361877800089098415090477195576110153579517449713874497033938630428482039935682578428825558668422833819825637264517311051117893178718396490168491494819603406477341281974980206732349722633459102238906739847847779564162702672345862034529600655006277795106807263784429975534617146054996130496748364970119246173399881453044004583226817759944175470012899797353851278533643291198873711849587309861109426089555896675178713335231956009604722318180626258353567980077661957335916705438936376848660499395189757083243530843423059449326555405228935329162471316590187285777904541738644789884765841171872535928083810273035358262077482178291204609631169458310275718024992056826874274600155587863591792066703472658387766181858475340557205577457342943055785642135031126269175381037911375306724922243176045797034871550456213078649943944965694760928287905333307689578792338994006981920933187872421009809634228192357081616738122724737618432933690886670399350492747655648649366978241936379137906255086285457540106851147589882479742312964616708486476071578431397346413643489676157827635253525571528182937376978307497238279508879645074794148322577515578595731376059570737158033897636095196381408630599568658140102797122616833066786051061971586364144331663533354848356330578539655155595548231734901924089800952112723647066190132727777604216519211065861620045148877171367452230519424576174281203327849753033560423936985155126118987647415982545084087898325616026336443386290446840186713775351659736104550727700163506440533070853660389207008709279556547950465531701838883040751259502226327076228876313959537067958408700895676596331427690438238624944509740660469234070169578260783590020109280744730712277238413023444938530431365409045491384237531421714068143982573940854772749258414127742173701370726491067795706437186699108625077844223042973636529019024055899879922745535465479819253892656797132054718521059846036297348821443243658436932271335011694943562711502649284570677395470835871438843119351739037687717034062115998540266583930771277296185205839685195021944358648272691577506616057300423200696258850490765127588385267320308124204120989801154264198059632708318826823525305983466793117199327314326418481225961201938877679836338082810483903149625425580950933628114650057981669302110708081377718896293667534864125409617827717624977121181225485219663249837126271032662005276743729525176713443754709197662201554671484721799211077745041977559198313227483244487511093770053939211166626073263782546652282666780079701411468658126474231449202373937689936623820296260614385369320557829292979779535482770689299816646794713292890256585926294689507552579345917297116999101740356393083666619102214508285753678788713634218365587279141608637149616206247051993392364896433966831054196770832740590875026002957804887190429416360432021388904606934065059256481206132897919860520171059111104801145086734962051436451834912536388821241724444826759114586123159053198325151326325988291212771895971203593212489682530975583715704739538917146213841705308985723872833124222344612079050426448201046640316160350197511576799935956708362666610099940384132008979029826445423936122345618798490597049548521463026719328144047617110856083398450550124530689707010239162397100059755844468505196233572899224661230786959704220894686891326352837086269571901334296737881562906851068133314974570971510712261226755075995212866252440794776766707182762649886201938800684786966708895130924633121013873742384288053588622763599946732124173059527297214301578222883711474391340068254971788217205940755610483089221162523198951721207093850126435514236144197197620118245372893106154458720606326573871753579858347576405981901895599415119490616729530057383786911849262850065496018721940639501791966072194455828728628813721029189017624468584950167425361314127926054832033522452555213528344277672504844535530407366230182534466593239064147441008816009725771272768324886650391146898237584749489928305046520781110111342174380604400226618349755303029536613605667274584175939651525620185833684480521042225529520040500937321164825423080549047561831507823416681007384515783247600043709068526263987051913008789569314359007312611746115339259418151983691765381639134085427359348984162104167099524075865132223595613271723466752168275931587535420197164168643512721133938435205776927425113644491068607568480897553046595530644137782151783770711947138779150239401858256029379429421726891769511066623838977392187854138887909492656123608568878647713416636259809016265148251538461915209323985865586146947255282424904216263699603598297477153516271903638317488987593195291745007818452276616424595434286939276635530639458754161723430121973463682216706639812301408465555897339887766577994844265513091933582590718828279675653668549078867467359010804533690778522700325313194453796773920878472640080140136973863181450972913279367916394605341334496964245053756410795009167128001336411219935014546249667857677275763746598346358862180738985535868857912365257010192082125459533723029574316075817327284608656502585016595401769649047979906987028359772339505176559451099725231421187643492591227675679623151912179658888521663693502991284038018168141279877440215509938247873658327311487502666075686915877623520677963265818909866194346905683914461658586123057438482483103543282602739602642540813540162032556766901719016662018269118318337752861128202882424870225728040057117769348116047666707192850946969146979480438085300971799949758416895619878783343901687248067693286073297535242925328121972958211991253205679803144196524693582219552178707841161959340390174632846937004545520319992285596859750557597765362479522889147198029304244425124956049610271339268250935907843419546992599787876694807616387135841977354767720913004470018859215300474702348687930188342745480531918750191349568518147313428390237953048358073408935955213411573695978675161514580716665554223394374188586269599132104175161696145563617296023370641954058480078462743961684339677231582859863537305048608494942406472215817099238883956310636624634848303268885543962134732756694904843126870918220535030492079499356848815533887658483296816608396654267509979876635308219484880668565828474016564018253207456574155873680096701779419014957045816046839911324900638746249676098028449399431018558010860137111042090385178621193013998365865674649323262670643486066143843488385320184293212123812275962733158760408130807352007520139380485642700887885859623630388580977657785079978460356757571795650600985069101571790153858545300774189380945359922568158676578041724990658439632033079770494713681108815923231972129729295712801309859268552903474462416330078705314370035725310567933286574647687134538159685908202697199953997763326409315740978340872853876664587994963453682714973604378489961211129252181443026385710965596512301898607372077228151996899148229873767182158136132594873229671981130122364569069009615181587150830096109751228972700448531427847395221218495899184647734254294029760607291181878241155979039292347091683253983456484639316002159032702427151297696107028183483807560438572159282124782643738446809137521259070100935987203992681694572530571534078335818166955747748962068889317359456898858957819145636785548880992790256079946490000473612155394677202087777336837636071238137683846838937698105941083083280813507855047866983459318051680155866334664137767751826566898612165487184902871364683786622758704296788707560906578171186588413734180684991583445340397066231847276685907665023696538590178890496735492446383038041002668380034001391210880684384257974464862867507505890325968957790652235385196902110422095557995721583968862362522822591990424060144273779285852216344135391517862035337602831052908434500386059203270264996701912259936462079083920774440517548730132036884097263184090217911667349788742922645602419306565085006158081466297044405614857949743081322469990777194429247649295272577944518831432696368397451050725922325600301660914835848670605196941919707725445213724560118460953855421010426377803526664968110453095204687064880155544337940406635274521005177270017668486068770469100405749851068808334383316471844573945012587339284690418546308291314610899558047971710444028024948115995376288526404654061873446060537714282426074455842048607118949235621776301864146607124306252080209235933376812621681231489788031880202780694285693690854820996560848506620391041499359444807921602175423135489933654452724143350573907997795806700206655394122007609395906627364376417034714598110709463385147270208748594767184394159567723052900673959159703970370083782728789701571020560945369637068206880955730289649625518010198330890952510153823251079545707619865257989883982261650444304316910872178329842217148504746016274581976064101120347211911857751933820808909259364630474038637824105970268402603354705641693122763582825918806118730741341237486221487722391837549654869696614820109310110645670542702470329408941581504882915427404304781641095395416842278635741553629507994898472933703534682688198805568752062914275341372485581737202208932178274159867089880388689698296764251267648858684068087746736142673272669073432366149754600249911526772416988535690219609933572826363853257860068331307159137226231030381704640737330768834436249490612604693801820663059534416106874439666380565118263678949853517791390478367264318411288653445604851054301483702324801357429225465724438013916646880778847305115842409070967797763918852253388602918378690007468721673155561104276819452361627311508917464636839539952662196224802710027512243127839817068485733506259590151372613390039133510227118343463642640270053228013245228316768683965320564012789539734329523947406755578757687961835057593550084685595486622639036389226072650611095118790819428820839673886744555066542173301974223972796716150703805688495485134988424965331489760296102766409889269747395771938988769983259944488908647529860173490901362347544517352803004135247001701594415315630087770684465853980620215545370670111713801388472325195409402000577896992799864063600308182752063587664375790661390530747562232934629297950815029240587503259573733085315159735830305125422425249302947693294749788661036134678862854989735184219835692644844475912813483312215856010105320250149651606401748844399583001929885734758687021496016539391973935850980361496323176883607669763671560397077919507090464597485870538605031965391973419409894797250848138409796285310672576003693708885431478318673627378929520200398248024257579755357028785537613120196617349572951383278019438268180113226383729909274470432707729605761800306692526812221711707728141687694722540775053721307066957278537178675477209235505980233553472207500205160120335564790025031198894587126508074149606228361201815486483010113595081148170464492302443781911226526480364497436130160945950821202364415955885575550704340229398636909061969521543329928660802059805323477587705914727630081196034622802881355384846229020880336089134883563836663503398972829362085450111111258325285636907061424277796490907182581836502773820758516861304970013483856962513266709556447632509522319019937912366277346409054606456377250194614243030637017492578413660781761703233841054521239313338521848511118841107547970419454669007358512969176128161929112984884997821491234953105440417970800215177585869363843818659818770106243539843906365078417654961234671242064549150259903169650893784574783241665732221686900176324363793493225662968472442008753744497433692702920986677433167770416585246571086352536829568927529513970703553643328832224054783072741728197940828150410291191228319456502261473053058890006871078646860214945845445799266205050113305536104238938090204790060593256255490042073874288839556678453090497045398085108054240107365571914324990774546929792476565158766630287745555094702264286564005848357960112946582004914377325748893252651018442480962288196905900209501198343714136665190875195298424714791145572024089963414880931086123391192958641687388087120757939094781052620313977915939228591872982393183589711710049526443007226506521725693573636855762233853826559248128950244487556362857375331990935687672905299900360206122159727357494785832214335985934126452183461839541447615049897723370365450084023056498861452232623066056952707159809989667624400156080300996608536249519300260458139337172770335849587603949245996081411643229559383780440196939507952842072353418608752544908800775165458802747385639649528199303096233943740048436526607094265136212352740832295294615149790556858241916244927088589189772187648654750444107174476068920158914903350862364338676650790486897576257635863830433500515320395313352423551943398322225778393039423414573581534147483330059836808416887646856170643661774129462912408647109134872805424627007032577425326184837388625329589904672393586947648507274021174562520345749953303965720700818693893712924260760505080942608742091097657847268084548833007460588091665260697517985808406586814324491638850681232884089122676823066253321902261743584994824787616388739777650360822742954309866215047396570594773753143274943277723070131064944552626170839700818404897698860486201440046312125143384934326259607837530586009542591604456573340086020212434091033764168279737133231144324995558729309802269090084076328217941749158593363432925524455445849741860405499697740950271779625123941863416639606349205906888839305358811774069008557924156356735021528568289530258406521830701295987130757334796413121527589676103760199713066579303492333320560134280515717131242788762506837026957214312471856541759696924847262759954534811854566300750900210784506115549482163928155648506856982397272678807018701833964279359383525119573389875904078147265594369992205032836130466665825889175013075836860809093018126513093501430957218548675389123920813159985034277653170388615590583559147788461952844690181562448515576878095585576921835283377165806638259056499204529293034749918232609845328608650966033607781983550123734767250854058124530876878467263651281093781053510576732813789730556052079500843913387039350019962174132638648518906354490520128112185263673317977068889438193965130977546515000801592180691768640533429520273785874428650495201252652435017550552785639869688595869872547378730007713489212676287874294071314126564866015904494422168710246414764809601236790030149113575449685609871702979238962513267392409466295870517747846824107019833523510607256166208779627073009226899949905259924514041934032886378693887473716459962469460044122251345914664529584206487124185202579206429394303792924635195771455357279848044448325999738287395223283326979398380627089139507324985830025606290149239843255445622473829301793635970899376801016775333110927172970775287912598401119611444178257967466734981019721799586531617363214575836339525325358375824347788150427319588764113862517293013085793544879359993574328983869875485641852331047483779346493928035707030109463740540469391424064911545953775781433714574348926101414541328643833670841914393608105753420420347315784031042663082611909956745576451959925072508395899829145212507447439186280463971232889955765089792710832349595314390945743945836707738430204123191601387050820284946226613468684133627916931101925600647302887071231601252303445681883006788869722437708771363057586315427068546386298186076449911503690020123991730604178852116391988442494067730365353289937510104541964541025492874577120246807435090942461588117695096431366698690832649662139907298129008579557281353253254690572525004869310969317245943188213086426437698918039289141944984362611463328422571431759721263849155920735169396231746533426375836224249472398283353006345920693302176446798078484969112620103290068626749779706043283449865889199106716878209607920059918685708872810039080248851042560055722191400657810402343118940264319197993354224647910861257507106685483574097523479633289546568736015439044356714194821812234283733397081015941041865050021812692357024704468697288657207982073522173972798488869128014448539165042873232879807159187507281269104166004068929461803661055751960036645914138642479720676128217344996217871985002503480848240363677653429444440104304859085372157867062324533477219089460857928842455684933134970541418230814457253795379236608349568257492588806970382278203939223263877983338431265246678820451914434719046338193139592180886003109907354528546371368114213715731603966855830108540726653154436398063567101921523491399345237576817184705697502415178748631204088891736187801003732740126033045156840289260250248445935339679824677067381882234758183813735095989590674894376003361532539916083260204643482753076658671716389538880690039372838125213976716705491599085569943596655404224251707343864854894449729240569902090560645815295947273086996110980401783103977108178617605453746201292492696663146360592338814827412482161280817933740879711199736716002271666700621718539646462123294636313844816755309756405992297679609810216144918557159792182464921993679792604417739366791308164393808577482058376361253833906883275303167795887751898213815595535572485875556204996261123525248026050128913525458174436061880772463890077688473316863656257267660524936358504696298160443300319928073420668266928312967821199014554203965962094213850061403918715994304688755517496571745811106252246237674010641892584647909107996889055431812134586563834244571115780372675188978701844036271388278940623908033197147890927902076229118421638837045917836904631683771460528880938182492362802703990064916685048782660424800490601940301621512893730878456748118278261988894204218636767564531003835960635588990764525709140312538599211058948739955361522472803467021124639598614289206444920381401342618556513600773535998212093775028403412156719582840459977897274316525328099593175058023400151887042151394368166355375070419152549252859148436964098104028140222192540375198748953092833161118015978408471120722556930734137674885234437018692518939615188294518207076097451803295754373370932483122455168472820982107769794111417132674486519925688702492034901285729643526581404646113113359870542862911744081781730111742136795064539186103099878242634686682455298468178947975987575339456364463364731930211424050528378789770947319074916679568622299490572661200009474194618243935100635011058369145563753318778285412672486749932839107366732847752954267158667564426131704163208440366959492004127639179368926021198964272342138877416695036132319609276922270158615146072401800551592257787969709716559129776316474822724636771479910651891686483030084839329512255054247993736365288838991153225797192870249867358824632435843890444959839485233262832222834220674239014625946092214095132666874630143360331237786752665903887572305237123254016404065292989858643363926413353989859631295387937623569894531688311147528721841235133533436107722183428959649175256882425919049974158693118807789640024400534800213576399070232440887675548533234787469818323875817286722602236754987581622108591072057853706473331602175155079686951618489519457518773682116968797978815068388300221670485648081465388187282312099240213251409579524511579484267892610615723155092711226734184619620200317077853631911499544352542809342046994620768012258456668828154478056995760508638291440172887258903229315120073536260774321355768528581145452100791306644045998079310442355996395813322055129915701682979179069670958973729278022259833476661643332370581745125673824570299038923933608168169978980570338015651206890388272649054196346156717169765336389848646576264274411382753857523651645790741456799215150174988427262317910466801424813739442819311386356959809344371001663329025616130806244981819503241863387122236268686626154199825761879046513096924001152829627238936931029010392972058307356697285092355336698846548088429647377726150479200828288533234405833624229070650098661853089300180135471009699481917671957161769852296133255828189111064295394477988332826434067219210278652248268201376098599278413977162455281952169173846104986843611175831861608550916387523826012892899093441903999847249457473916251342502675239480516855630880602907263161649111736904715996844377482032092537425012197319899436405875938004552418389933195234150293033858571947299035376730703949023637727282629083964159506334197168624481833557348694796774302872741338484766229946767771187255254285335309616287592976611764429885176768933712394594601065630197521823805474540770560490898473895821525037557600130087816312824085000654393342435092722801188071380925295436891755445206494119529189580398822184449803325545299547537534216627968532291641586459662931653069255961108790206294447188471288825793124574702215458804739995035920218172711244201363681606161479135802594181604596085675117599856086952727969203922461167539981500609350946165412730836593696252292918860011806427428998488111820653188093846666822959973016813542086649625061689914514660155959660186314233314083449130909772295210052158772211363310794177114809972684942378865096140008149591056127283592879670883365744476246982548014525949280113322613158462368381607169765996541539811512958101436557606382726835493540193804010977348617751696040618356914188731867722763648523956350398940173148246425147056886442857488988593613632777825135034905958133613022882162380805746588240867231249156619499816972209741761736943980243965684879073513957002459810379554207601765223474263080272075346683820425796861944484780466184634973412157359624768378294317153067767916550886962722731037149209302170598146116496350184412221604618412579953383098157656202694324651802056527902495897886348509770258137401380953350446569412389888749755497695439310652126870659612894748535476136317645847265316866841778140542911188655547029114651397241722000252575373948959193023810910311716151449490225890974588613882091867878590819351015328470100060199853697751855269064758128109992471442607108479431084841258555336098185315569794316818915650304559272376660912513066565331603317659750302267861457434608010068465990979731961894081177237421553302202012854071918850097601745617796554376445153722692396606332638592370857565164218073636665572921008402142805312707553654549147618953206598411749923205317066677304913666591592831447176504396891021977225981594182963824347999684522997804481722316192805138845011819595699938321718730677040000632426605751640210328930193447194464114330210585332868490420314745125366978750180580892894149602589902956005933901720484055947023421272426327201808232310412541340090444314623436615067628604545144061339162372532359326028007032325421456109849878935135284634389420383921206363135073158665671869407033146613429957207226432969536901084584399014072322790516820761427659688743303675735737913910308881438566651728797722003937345311740440932826421094907720041094817637735265890101262710937322423089425975960093971351398984471024475509667140564128430001384755690952774343253965892551440931911522209966557689965710765639561665686792887079936665946343587660051812906086930694565228518614797011032329858229229729842966136198441842302687344905962323320755073798600716717763945621073063637309266663875611060324250675663279833769165380583008624781219094839853785231006815513615573293605857972119575541388253463224048481168233210563413279742148380925085430958943250028902360295399955022184088603633308220977071731955893100122234644888911567305367501532255135575008727677795721912608594349882388421140830923338763746308682120137863429025146320379770762387946230559049281224457137675302293098617618493531222937378873057855407939374330453947720801081383872082383802616922708506914165268927108450299162658719646948370920250234023908708260795675245848148982117938317029310551401454023964601873025628658460303037342048387243619704343772155129467833351019628991197867240786223316732105090291944532200251411983163658360093315197605578500761337908124653415555147116810970000405091918211520862064273126928280836800010539295790725564856686064866297982343627029546888089806792419175465233693924168986687566997062805688701352266441653215056079637660594048503299080344749765181532861984801816982560906956526321117612552248334320095012578237760147447790786943257171748033981464964073886670131237576099846815037172094337524337252391113351109161753554477547052501138976037465888367976133053027261260151429961566342114675920155112130837311410191998764491037985547628272279761985145899328173688706071129891755738957356311690717130807526451591561348535576193533998970287663615908990407316119387123937829064615125416933494081316212295624742701320918688656470246281604181739243725997069986543934347600491699345921402270227230720441103729758530979552970623414231615902478871789011590339509223744406751883034502052776801500176627347931731885249161363704681392798961901961374412774110032133528904057503591864157575949584835425786901201755036017420033818613952526847265583104043391908414440150301228619089338381302003763630307186997568739990694880176366662286446859570287710077578299781674359920101185678687079069356178551970133010430068148758723398005155724676181766412448421676382808320882658941439650474325634758610995076736267781974064183787136508212274788884426767758321140266866885629618935812318611111202232231561065146858447407190567029361566218728000675247890890830030918504151279804176034019503891917303968896441039050629787370518624585660766624276836438254603789360984797962884754762708027599137597585932321920975892087837876381255820266575733148181572020540728736436260274107787474276884400682554986751380813144140631655603087658572325368097156580875191485622687647143182666473977134956047005709161154586973116085731225839634376224537112532888282010586774374070605104526045042048218530748993646246205947626920828629591450930634778431001757019411848829447817785633790040806299777881413271500453888961018693824892579354348399700208215249190439042367772902728086594278357891262449981147395723780688687794034263522488871084492280696066824809073835711206273586153160996733723775431373765564175641589030197859276155308743079554733256568640487213064282373571391105920309314718036102222109281274955970086073927341454604465927013187001394409787002281464649440829603305423734788292533595186222341952284811418779210875307314596162496894166257077270297928663009083477494695489938130092578307610824059420828578917026324833758849586754047169686584341876273100557343536608015734780985650719099600941519258904155673743755176254055816546929511219111246514409981553302290130279473915791465342059377066381852760786717447940906392268978329932013154956157680472530995926623376056065380274684922015823030012613436219132577798351021901926918095441687699996188610959422914200555304838493508296035137234661197916408289603793346198798525949058888522723719393701163070171846124232751132478156641608948855832530877969645631241473725222278605083910831393509354117115612146140232482002106222567899470833694220452310227759573985068246229275556953057233067629510698046815168387881644693559951596804871423782804685359063737742080015572248359708979151053818838249482627589900008647715296348814254329494288864029087615986451161399592173023205368061071975784334546211993626917765442795285537535243539953498300470028748763327803787282897937077032283132730168316569617952183679572513919513812836125924281293179915876518172511341373965202129267979515956669760030329899182189820098091202562714971899479945106371160168663446384427890933588806642291978532940131272574361996918744474093782217690782267312650412157080254264218871155559171766671229736186118990763271367863656917308461755252262234491084821582871894502438075431362217074714876785396026945564561332942078858654086300969537047006921906373295815051005846267446179193380100448358853949153336872871205544401414079952604749381806948824744605231991681863014454723088784119568752216743225916674309146986559275101352766955687955493400227136788525503363790597315993167075424938405841154203026261235440159032328201440372130638958145644315874019099354996829763821301526258488041270460438424167919456250248309933754814911024187280550051093804734039927292929939993464622691999416506343301007314745902861280620305605330487388961646392498296363104219354071157394629248284744002749074619094526196744211026035177496026253813669092180907982574253912762933152087292332946339174159859373919437606865074640394010329590614647504672152400564349228131392265585823543144260140437809808685058261846584913672118596251873733567762332634820755622521267741149091949455619261589512591075345846570324091647008497170969756078934218749899186767606302109480320907548097435591980657028101836540464800462957962693014440213851112940568290461301705625983043054882337291601266609484093329850048083368182712535880132716912574224072039164973868598527187452815343371218355432266677378638943587263677906718313938668778976712971181365555961476363411555153706360324323983085745304861594238938388116336558032356481119596345636112046966531288206144373022608258993776321646112308270867543873596729310306227020746611271557990047978268316734095233895300648883308890815097249445982283108398473427721221085672764481955888053371703997018754681389722794767459525549429590931273055910987304641742471139287036408086090199257098421560628432426585769396308198782366831560592708850774036830744620308585340868688408540584801122061315268352825376697516123137468985081901090127576445476228625779307187249468510598797458060318615176828651943419491107150623603002420481761361827677702326068645016992080271298528402536883205543656456833311254851396393847999385129330444820438331996030092016143661057146075303494968927637548048427215666237319796315239445667393038676503395094007968312547842922788259081350278555395094724502577021284521010465349360774529615412103288963875345430879082884127634867681176859791019057262795854023692855741648535463379812344492116546255404181258573379635402104934434154126206861061357220701754245250844148541191259987837004481538423074941674416531814406556530096538617924437773523961213394508005450476945394790460842062779817701935507476156729507470178749045830426316354606358334331803514790520431586199434788293851806606446890255532420961054036200905790999244762895447509481539886033036732209483799296798594580171782450030811188115608184856740486846135592597264651113186566966572687735901872836977640657080287568556517013657139561347185672847096124629061539249177281033140547259441954449886983955385023660513965997454515732571056792785974331559743306050682428988668705588679405324789320390101614295181585647243431486022383699156347598810744934662860363749620899066395813300235896018996080802951355378308194931107502287160013164257423489539992253004338898578548539778580493957081195340877266303749823080612799268389444959779906286062195951009463574468277875777943404203427085194357386276710555451609024814635979284140002087066089728864215963486227004207260883821077645791925026643693097207102058264307947598440278896752491737241148945967191732335041694113465228092680033771823634004143507421303958071021905367453530528800508003979385473837366561884653230496697664133438571239001318802854085535324970554133842748639683436260471754743982468007212629906343634777624069964889070937238086111812188425278114513469610549008670292125848709807879622207656550671386911261795802467983555550525646585931313025359406114177110389122455715461906075144388571472226914433438292619141279555881359897226714088490112856061222138132082150593654511920706575013360897570439108878789334556375587861774247640877846987563606948172891152062170033843776283284577804604106701605048071907265721251306442306184220739753592743561129199873556731824174237977891276291110244914497258858534940830273465425407579961285221264906567480012028138605478053012777157287222558808504738457751396657048489072646029139043691267735889703643315313667696894758412471800599578593381034193893004888640482411149583460560322292954907615669672972879945367201318430831061478104857859258027738120926396263804863743823427841521850172247144898332732044699519313801331832381624044588667608554083823524506814044867565496077953620206835779615863147680622889575995542839233289855715037618044600668667958034078161895415341566403208286835665866077701958050637912881255528789359066275935505432542665418726039541895941590623046491368084044515089206271575661889659083911916549557492500334361603716992247020917378261364998925620630598877624339746424295465129956316367302630379085756273892857430458460157145839518773840463657711604632732167231901306504254783542950112746488157382687061520454146770378289396708161015453636443205572231249445746057671477495720810962989549836017537319141216895561616254958844664097939271946758148893479563999929806382643584267271998722581842976882941181968250432778145480021530109084895913713848654868709144008634414521915848980629748989689162851686551469174600431894887881797164712602280178226320222246786534457677250578228360590544113335938624844688551879088020368611970396078841339361590008343252468424738628030793828164135274664508877526427420499209466268902450980463773414674755557780157906825823941410620230081352196581907236641110435798482433700239549568736989521899329474723700982537054540208277483988196270311232855502486688266080603415697244125699943818510822657781706096144839488425123915824132458073344721290718383858031618148905662244867254657034534622801531243607247978497513186670880416165933225763691282649711289353991978639180444877289300289416687225925638172467318077539596408069273165011823100442098636821418672031033920966709139028595728892404441999937870856823808581149922996796982025019320164211193679624798562007751993456691725114669678101199674962141392733755863635568982892891078277438579647723343828864638594112455380475418527725155718718139225514782646367601659715261869132575649237621818731913044842943331244259439401043113800998949793822648079919575487106054489477456399336363149988032196834206944143321665549238268548716112215114768515860885201898056529406155173870341444259542470255510004282596749752839088397202954459488309600923756960013716545195332329971343221116539637578677139684063728819175618131958022813884508502305896548328479129703502881250799004337618784538794143714761008652843229600911101368299182962503364581110236234970506362645993624296189084436808743712093432732163071904105976694558629493938075247145717424022256687182145934440954773698120945066431852784242146533350562136861902325962359299887638547694841106731593139925967508535396451375893568819456781705448696777708171131721223631448430283414831750888909404391286541908594491114893324618073495871505872259942617913323563631483412572785894932612380466285722485082346588550674714464234650949419566036490645987204582938700284321740756864044922936628793163928050498463761061800483777827490976548923245074384650374416251220213668152829702038993998915366242060381230542223572319209071742698946813577931862648741013412685067814283835183383283759390913364481464587176026010589777200301013937791474691938540949086361769979365716573211980135654345434096587437521011856278526322519535775947785619214988669074972180446423851665524884666697736990450688048163276762177878751423362528660299032390461092800890436619096026636243551048345179075713104703241577384318744162670215845546193647039707691582278838567708818406552559568688050404398881787228601002311485042979171448747528544827974841900476414836124260669719913766281501188174061204640376845517418053900598385188352625730514001556793388803792812685754885958269677711235150022448351304476943266976166410697095945566834393659526585338883836676819884445199719264101917121634821908340007790548324138592725382690828018424418671211512510602941553387944153323975723046874529585970363749159924658089247028962730969483210976110598429490657466911099049151624243565490872267745527366764547669856754354716079534142683365525647250494109886065634134299016712388606679276252438185287546121887778148750751319711644130722732441751816948644752489657885391283435474955312754173745422697834359177940091226847962809809253483038901538712719179654493679134310823795790791166852890180240327483301209941128425781882218774875199879803445163642892530377947201560332201978097374314895466000247112642981173108414544198611965476458436879395113828613807451408374029263176249307515409586607422735096779132567652855536006407829084885705470003340542659800917137598446450702631805420658041600773180252949733270298091114680221334521192573586962568606656846661207607709593610398645987218898012912281798697982281802008581267173964187519033395092510306409843197510908605960515853901275780210456205430950797336974819954919941557587544396288476460264820436287458799904760610952539589408359494264427454853250751121373047466443165464525316886404202261089280183349757769515013294375348696692045143830621922629967563022931713354127577095161787008895129463701295141499428179586649311607508951085798453125807447004212527210221745554806050398716083774502572096270115501973127129620427135099436925042204676136043341476793715833136227881026521194866696051508204363540923847133147781388438444784022516898967757917028710273038971979628441672275550563521279060738865654202256660605858927122365056485878443803931592356256742484945724458621557988404692808289422272284285859070175816247919986342626665932028004584024400144910985995493039343315453092250276895537862305163231937519222515568365139996908836470104780325219733553586218345411714941065115996297388643387171742272578391897179693081884901158021382789211526491743603927205733036475535408584159829744985531859392246109314215790647098669007321667316638191321429508536521926940635650984718806341124130607335941691091010619486327276964575373632917820616257278068763773184644249049663593747777023509587632775863807152037869328350449276440375295657511137368693262106255709287799643443366886852135308076864665786748671210241216721849843051906303266510750817143244978780607457413245873615633326473167874078344230052173964245054168693786202003643293723490888585428087828220146751476148375095040057797797553673842279948934827021277774944534243627664079451649282567056827340312035960173892021041755792602345918336626559977363268235352621096033559827063864059591026148725048120791418063540653704445583940001046923199433877822203012833482937526482724076887582829238912409465166985186613133837890833524436259989830968321027711158787181870517071137982778408588749405143391972730002622763441633573921970793834509368605075278817283272388615535493502699962977934157114785515795050087714706490564917986755394098742227200641042919959189459536989413692004089144345730864097908445562334566642336753984513790718132532766764928546183891772900649884991335376477977910083691288126114422399674858218719763465071694876694186140613297482679559778774361594906887505037668775645408199099308651144193676198365776886677795364912569100795142230905064000238733568796269456452713866934065747752379871223570191692283617146509061606159353761952884287273822127762816181898672489603408088422085002149090918505010113805204653233808340493224053377938350993939399388491446876360707588126674136972419917002878082414263741791663397258175135338696145666071800790733618599524421971769015838743532154360260657690889339563659198678139636868077188435648343443050723091954711366084380911514275251807635140232080284639317809484349589300784408619029988683849523665565651752408347798408459590858076580791747921778286684065813909533421603626999997425542563280637026855008505957014391815031989233771812449332212308398351872860806007018908148316566665432873910773256877980017766291566395946421532186638484915252034080973769222480024786704979573347461773803903782504370175892630744705194028387663203434146264062253843548101949555792237713843462341130612953411340684194504797475925040884444295558235859904148514928703877794944123220971634758275430742343287944452660858959348852365640673684642164866537966914661919732725849270163435754594774866112250542434525298072377946576351802743226640147273223784212293920615495756999504313393528879241392011643439107916917873921650086305036679812339097684594281423859164877407149118828353158312595169370009464914292356468977428049298796899141099284487077894532179128880911917198980356551171709488254997806511627151580859626237929087080311340266941366137056036052167926751437452246316529004141487773980744014897838842003456380675654692960410441869083558552866441235939263818611714547455801882798284786734846635218734784894523921086251196536381367649029652506116217811362800204453230200931933997047984166489141346924151617550231038448898830067026559829525580648681625899690940281640947032219933478886227418849842520255286686034975260985603002968342549677207425783976874551498998039232133667053450844072686260765656610635129545553616124703171455064086755887138598455238885023427090479937783751837205021167359040197039643129456719479650589778201732720592583018438366478365171691891187027985619170968861528986013781252801606337376228822065848834523217962598972369622486013365396177554761335026800880660638796160703495177976257347532824151960944026303191819599567106443682166696718708226912103857250154541843630087611548797095376356170757707153016146496865141306471074461660073992394992610475868533388964646820244815272859341606821411394453627012530294473255586878045101749935020468788146137952481383383178800871118870333568063366118453850038383345369578888669969097478579458421902085679889403332903950341127693052373157925381328403774433092933528513406685813487178104192151083478787736654827235546232203994713401581445813406313405755905292273667278766821048553597459441696586410211093784196400492114012917565466353572315400512014212178682878802407301661191864849548675440671056653401573967772649988900144113830043338794337562580857468490916859242039628719771514826709474224943392099839576851755467351722474838896624939596653194023943329235517789959001560397459937202258831834090495971529911168008913961016205614874341912442626966876699438585727025608004931578065732915152706948688605468578953860027838342644150901599719903238407970704627436751007310714255392368019280653367988755310499892599194251609488542955716523197613981953413853868160626472365398990152073327548869967218360135292910128146035626296246830581664018206743538577325651344389073871531086972304113215092075704878565518425622719031933314099292292606036095195644492904550114392525042766021364337944122565766328721976609907663153035336313882459233632611267040425704049326996101976984749778608388351206804222474438843417487990051351541322602746270848241804868165846415607109737768985188789029120842321362268956992571472037226747117426175386876920339283693615889477705284736317383205043669292817453170084605742580847917349460520892286401039622821787627308647449991755921937983350442676349052839602395146142409531638093405203790490658521093232427642971263691945575849367985168592309348665359453404086991397640805091604584852468925511348329863605719306754418631841941432877427369358842023159109266507535305582799680522147927898635936491988263201533746557837451514256675358319506269316165561866175721470108070645951583562128922556722232132610636897106601630806953037979636885300720842571742858450620726084673673638620413900395929785371980452734925877301381956862339453205803659696513274263984083917688153832342419236016729810470781680737032029327587808323102198047216362042366798372053956350937020905719526340677092517459764243937125364467602723378191059454626000351371082006122762362568360377275802380616486281490573375095703008978014546828575209256273687078267969872093237940765045952852387407176166307561381487518606964057882655503811909136182842266995144918304317950712163730430945107189871077706526027723707702034426625661984273096748624929410959659256331699081440911481788892034369773550318980857934022107092929073759194017566552494214400034562216068384581918642092569431028337839271646593211429362396951616344572967823558285521668566838562757068278222306757481478490718741178494030881607741720906398062434837138777878500051111722699530033372577796394291228805473714794298917733764165667642507156670511588456521631029596436822243010935167515106731231450960644157157833600684041114565203071875643566301070727177515624805855788257010851917777549539664222517078182349207459441144053986160690967613567133460325083817094735261118209906274738966190644063053053760742832784607129595786521159353617989580814299108737898414955819655397698093002376368012845446670956303312017942915341259003531281172687988059094319780511089441769861441731307516641218528640072130194910224026272688789016219517172153259829982031589282405741690999155701375183890474733974156998271939509088679241301948388255708289354118454661387441098747430286265488604184695107353357874840986100934335938683433214342117748776377487351135603399535777528839384953651860476771693214523302046941800587790722121385120207892891757370987384024622499583694480607185314605270474275230438616902285977022990898706466014102877027134838062313845490304256467556398390321822144918018200890058089064229298421974698566271578708761275703867900246792559329533439561548519857187558409791568138065629518902749077914970449913940015256807617783695386683179709721832370884261960815141605091225825159259393069820008970419271659017332556162396434291627908785684066869604872938138354341713039270739725204166686267247872349020047301377009135414225575059338382709166406653359983208715632141266556915428104467120934567441659956274733353180481527978842805541238870375152185926952000553588782884165689091972957798548119059902681854027334128080701402072666791737686728386124628640154127764336990471290045449574573416626596749712673058093140624602834303728750390480446547060471481447425862226227884806918981938905049373009597050078602705507446579608311778086892979681880413175936368664503035223633151668953300494801030498348891861997327725927583639494252877898871746365947458909768391973704919080965272127845097646296978559380808459739925670904713806011147857752213828111939328840812586501574411324228894793007468645810369834533504374075272509624409918195380324323061476435108852479794766421419147762368893639974390220978139363672266413445207034124000609053017928318813232256886308568063729215387773666205204635983036825172734275242780541623619943420139381074952995945068049333003100684952438920683093444282027007736135768024206530363802152705936152856507738627121846876773447169749245162584321633006979709843053919280086234408836715121283249253840053168535984037514294797046658212957869676793528309412362113271194927914260557162917583841229413909208503324556963310186144737314551002230284104344841216376077250882800040733543492033976403180150733057521482500033731469404395090771196588106844944468705533791651726638239317083674520516498673000675855483353153549003585943440388588259048337102925389649565432846684654736509505052532342713121800083984814555697167139452229868614346718003393585735276793165793457307867765429648297885336712499486894518774848404074307513201121671449541191046163586873373689737177409920398915744471528063435517841800861318145344637161296054844915996756313078054680546501618696568771617277907321762747738301032474703441504022710664174213759234235853666897146239601394316727842729416297504834805029414440600453005102485831509936071391924916447455055175706091525835049914534219056355403625343628415000013938496600186608886684528567010412526251004244088095933484745371106016756295725136558243996189255925245592780867763567638004067684995029919868677254476703318733541798059412629646782874118648253226311950823322649889901910333416820047445818947439933255881765161771603192269353369571807688938904420135677133038662320129099540014933372372333650067127128980014960326284685873734735528751432843692430715706324168007843757263172031117010204920985937101020460033631527628948997390971761707046673685146828667428767515253625513662733733692967683036899467050702492337292119914879874180464556816510903081352600617009730960498588351856082486264022379056848564160339052625839350469656554573143806908149265112090219475248407860178920406717706584864526360013591797977905957364230823119703935530891437813773655846134787922288732572277582316849338433146014478529974797971660063283076119964002720558687026134570633937791143670952570214413472905784507909125845487582715764188446993999785342754565016783790210988842004779433891092345778320203718491682148936727819633534465166744754958249217410675590056904208328153010634080024440660090285886533010337696359447300543300060926344191519817471052328589965863018273410403749921869983340433223180312459416327179515827049258074548058192100725389300527332466933515783275903749955692608457758649156759726621364127243213275798660361083512546560299538481461758181411292758665288298904446665734398178621898873779770599409628708066060430588821766198771133743475011449419096673278627359618486120987031953909686463082731630057282231164905605230405410792392326192374143829681479446157303409630101228137510781229844408833962455813412317389449402040637087166218129538026745219158292054588552749517092670578048224914843970121305538013185806642503033701708334692021934596034453032518961169214076485752705929243020976609585617359495418705361375321603959423927156035054058405585605406027660479681880034380700595256684521599520108978251198479181402983256405246219580989240850713702913991200747563614844134015995791273919635801067609408314842639291780990528597161408825506700579586951823268675935347188103999016062472032621291948535659122071914951461938086239279865280105394805448658464571417308618934132148472354845617499722868190141733845716039672861657589605124024134655181704070298366209347578998704595597965187823112512137155922248959105784672820979701683601617446001127761459882698072239487293758355936009522633348182386545861811551494736939575595046367725859521568832067113057817040712116533608046795062412192065982475050190231165687283944991525397676106368858551967318779733385736275479614939599931970154628114185088921521212453421087495423585602509346081718817870005673726491309657804587500661478625902992278849236708219927068730066360127554145241382009378886873492230213400811026127606123203191018373935084285548108072438544293810213739045631357970954942319729130751963663650277421557440168836796353032961874522087056732932698186430675820475263833970825806806634700123200629560779459307209786183853969949273071763185446122358853117115768089050207162879020068033631877690391645579564247996642320311594520544649812505561855070678482666268262119187934499087444232727865917091983598862430415931637869455981984311470978223171450654342492001448595225905373082507159580577157913725025148021034617900470275095118903085813448887694697932645696137160661794827730985610280127076294048380505325442612368063564901777640187703373311296711134160608803651537722164070121805535494303059248737080776994635096213385167795919311332623753189641458134521252906266614509510469232671404422565288908945860072089212010072376434353356897465996531876408998209345471061511798450535499023507947270175357415733151405260439055273119218977643454501163702409671928909972990332484275795855590191759903394893342734056409841075053781334365736767392810864627386987536259896859622325155107553054077741007634008737377554875570406740980938250937586190967383034961041028796836881059843757413513812196180411776559622042048032702835693910097165963981878908760783412856734644298465815265661391188742238537291511313604675418429637723089309363005921881179291483470595123464561049662226490153348172800596875912768636227583108113915960190678071247656311551801779629464973881148206177244569389299602510315022643844452477921114028127902426233087568990551081902005695665176335170081976706433573319168407465616043031693910884735571661798759037869057240967110045164721524134798652477462443920315957568110034043267298890429127897252190946725545530057404298784009928994378883927640040470765585874631877273429192747337691987928042042920535307505582107014892949360792840440323438685669950790545531305693231419950627885515313283399839471962157797712668924764633669235815031850286406639705795417333733680032598269564576809474004803773692305203758994700065924749173144798295314366340313214636815227592687648759623527463798918224852145774268156938140312787794971044581559323959138758433694065840623878379613498070344632856333783774612411015519669647207533987065272142348978864605985737398361902739044035632138153984934148107179649702618608355890360300946561740916407253607342139343108045264947217793563386484980267285828543784984882678824042665759890472005427610365581030212875705472089699449989650972908798231817053829396045256128320344500179344297087029020636568042919863494177764885094271492037685046178788233941318116626048064444754010441652358334470053486729566986047486453930981925217005299751411784997204084536602989964189276420261507080423978163805625983339125732509484276445584156624718121695116824496368166506492962565843083957911035520928170192389334487767031427855324634579131780044864577222721200867971156537093113936038976051892909252646216398457361621740116078258441885064548065725745734248487681994984200469703148473451879267899353248585252861857651243544189604859211307162321456705584146832026518653504892667864287612937015080265275988326988419113666187165356525735209458751536995710854752885678182441994448315412167032790910726805422311656963062898914117479654411816132750703065087068554653229158367396179488372390891699840687105651171525655879015431221984485591709670444028196416911895019954725133634228602400384518231040699411858553185977412110263156386998543760544507505506915655773940181673044279322007264944632103597392717608431413227736880077032845660100027089412318634890086063668131502517507829500146150491795220576804155863198903704260440146640020653189430137167259117282025894049093862844135146222886948535336425725982089217679827666038963275079998740753189265989690245249190734243981106785262497014836197351813465924410350990443873412794167794118910521300803263803636421165247702067695949727419012652983635131332729045662993350137890650915603015855432571131013090872748196964307272725468613090040646115484521517263258539492259748485559176553988068947279786395610004687513979654609016848409061902409537398851604136884990640196923346341378454044741350619249401611749190243576749868784811765078398284333838420803686061948339634237118691972645834914446855108683334197081635251419292544608395490267967157320469322012672064039382192725738103552564890055493130854087786389583915102897364738289657019348610257255230608736630571382506156302979978203768831226188770108725860769232309874390040652653306824909507326679615232066270746474960487564567758778491132592329595736431186030075149576206765095029756893185471435941120744905789470561215606905340009190636121203113580138295269098823674802340653541839622253291088325220712777782564673626690138102493035848332132254624774402503029368985273592644756726691963174673996705613932154487741263130897852458436055982369384217749218366226220199695923950000250895979873430389028329022273196358656656008812886806167353152950837114305143382464038944843209843184224597673579252101403632489758349458697292805457232168786854569076314425568043919830520625703427336691512395668789091854756767115341931342784803227871125487730165745477098401521296843945173781950699536637810591741990328796149672011405607667891752126585423283883270668633972130811928159721613994550438883163607007889155385092094996019382802516613782286739363843840138577784935886417758896138578065254851268751972317108471021508957887291815136043886182937851958959410137967270785803491440942684105464255930177975600039797444692835810717252336800824503389232722500191428610658876298768863968092263476943639231200439222698004068678109391869924646526827912361675814640573008919748659477935718956091460166701498784215510153909942302662983118169202801152250391804003086459466096931263220365424969660436864966929704497807692685030276127250416218231501829920397050098765622670084520832491926933627811276095797311814128342144803699392216299234535751028373462726300940488336829430886957100721393863979186650959891237774122967148692616538062008513497450783460979018630423166765308957728765331684535898443157423614778603821322833042502620007462656578409357824865104927021337709422179115121887288164674212221807612666419870967993242239189267842623935412503722936823913344868373604430902473918113274011607974923937378760958128285310771134068037069380950740937948048685402292238762864322672829954418301273307066817847795261290428434471386764516359670715186074609318262076794183131027011386377816527710616607979673036304891225846534076238581627879727097071533645694382764578295238788612626681797515775034283886735316386106822177018746259584744393658434081292072724914296478938445872975049783295192678012521865730447948020577299299204058031190146472868906701931379699779584145206098895855095949649457012536743124698100915217607431552192882685052653783410933290216622763819039124269287252345826470992234957284216199309518439714647099560274082301251456511670519648894686019382905832491329679163377661817520321496951066789907794071795343221085200779480607020196347224874310546145162722455164900300520656987902516780023863520882049714784047608213646648057963886477253958032335327962350195318247500085007986601545672061572001441695993610688866209864536443342229349758198917646624720793782633817666608733544538057285004074106744531312669743001911755657227569856655894349018514253382389843974968770076632297717677324359971905760247487441477132188547925105269969146768591203451453229359766988771951551309393846085978623604645418335415261533514725408072496398602875538994655049458642358621738468943947580827320110885180276179655954772243844204492411065052534533479340896397490621315259447215205162614024430558215586166656901136141003021986022242389338507070183088813256379731908998540860173263553938189504004522868335891495727672405982140171617069264355728888144431055341313296595938724398331170153246271499405587870745734893943597910221861351965469935259158902451313349262427647844914446360153167083373783471725753375165459889135888555767743688831226075411442684242670040104595125243596924879517827690377226553881795855647041966017445771774179607599887228061434901929432585779380237360185130626094204191360699287692487620823491548969804917843216224235992553001505001708789257330678592677281493935996374683895832791513315501383718591229035820603733247090308271889112684517946352001280953935953241834388703436991531247072757639701313648195904752539265074167390685074533582208339798685672766821380134758256873660945294720954066182420881586075884254110234478664610215290307207295112637067318233174092914552889997120402430425648844190891500795504253370926589810869836196215426994327911611827588050112111656863125485483666209762905609646208913131867485767267153818360282255135515268762885596658280321045205317893859745285212655629304077296527128822873395655868533988168641668942860474629995166273895425263556033965793711540506983462687332535533200785019189310558208754022977634673590334738619175034487449073318789061598159598182908452270570563429476921626643210365948258826945750374276765003578538365656275800396675517044249259867062949749775580311573282500801849630618182886164582870534154367302155308654825178639833636742206758142803987313024586061350155808052680638924901412723484836535316012748055912439662307241972116857566565404887275002414136002273706035372744656979277984821529240220284872852679711840457428294582389532136694086584932066623577941934942935315767399961767474650700683375042515032756948959536827599596872595294968988933626993547615072520261288419055414690750196776960685286800712883718483657231440631753073704637151151412958938645749576710472154571562180716744457764962745128768472489616465147061419426336152846122104328195520763091659719798488649614631528166041585512249097940944721967408558586473515591314812567443106677755177581909705480474581815828849017762403585727954858867484467690491029991554562817982460267869298651846370647190204347452967869034439524069076333365850665299692790230655224223011237723108888005529161256915603463465307169656714939829968155995212126245720206676801328123157318753472518380338052935648783213707717009172791498420927761729830227793468632161729728552754001689222666301497817270421115065142893453539932418127373122185499637026677215450056337546177377280184878918217034360400777962771705368822858306037452049150051067311707656227119510783932844700941593733351720916012090081251021272297304498392338099042121294002977083254991332093161552969558080364987966422452005036025827563553028889742195270436432452422386555890137874286116082600747329476167844982492319891754072118102038716128088228098213156954055989240228180561443250763626668407357437022283370397200030062512238377654136101270843540187462238310069116896835785321646029874750446025540041878199497905375081522694128013913551243680127427514733569827287378165483415768003769452473032445254091383146552483277950414910831908109579265642093564921357513300731724886384446131163574879832354192086410181881807590611692826093435672641329669012049064901735328111672442609928560903249884910141444464487789316600539147928958316041886230725450835780052314209855306783473396598310171559312984931286575706592019375656730047796299349820535968076171060229280139774933807272943851716595820813710805742662007114549402260304285360531493953900265143254203724554902458813656933091942000094323898995719246276446831642698412956239180770055692240850305349376314900032317814576462796254339223472533766825397479620043063137553291383837981410027955116858563685177543302842787711172725022914852690993052490611286282513162954564173164132568355008472046746050200829970312223403950009621212730491147820129814356548667695871611947895978271418412623297110585430472099007277337583535413680764271379888804249750755921497436752366384191442558165933933449055083835264029528621309150395373046574444276434720636238942590260258850771545079241344155751335611755531326601126096386258007201176746260577546715681755814692587645479492513331348986726594722751813122881460121490999156145318382944228219755327546946186044537606298211308076926586306641098921010457712699080453463455082525949618498691091453513148132869277238536808940021588072980568404020228292024198728305554710553018087314165729888613591507936798751838051385313156888792950812848363527826527748530850590189260178522005562870066710648645346181629403483863083101103160261330788282427637220116063385094408882191939895438134236699380924322705114834344579880458862993960459419845916065944598710161248334481611089701438341907408786268566685563656125315961751927501922153810439873874549696149788583508137295542133381767384604419713759029722786614891785994084490912386502146487042476787356308838692841066875154055684346184670943064789611811440738655008376594925626629972643438757508478583443749477320767730654861962621405789283336368589393497453684031536074683181210293077102501624597651740130895276994981296137726759531231897385852042533568459201091121574777533109753087040398164776815331261343214676674706819817792172110100417848787839482282654692866979770062154140138407180628834853098867328096507508364332889880739611952175285634943415138144237093893069915374804252194345893024104046290626730252806954040939953921869296611157074018204138618068032917629859107919338877534294559542360052055497882286036682098286467294284504343639662288599403400971616496603314159403502936842656308432252349690576113442957318689858535757283446779970514361547930466638957496458054677004539638223555988902859293077723855232691519799614967557702522686193019813095283381735414659623306597470969112327824720853919055644710020306479407082579509104626096080546644951582185212553845818167569037052712001502216813643853150458622281157170724702265215656353078394693868354310901809615871559844193618912256251258320593741268248429717852680312000053629813358555625493774497185803723500434698961428009110070976497309453742130789237744821400078604748812198768913892534114095764475112302630959244989911098638434420896209578430543398068432381542577244652588827514214694748789678868232180447442755647018125459439682522243264417469609052901314258476436513599390184593543430563406995640069812002439853102850138267276098718998477752757572727582012697245713834073109927029602343823101682444334585270892930695866636657408982888414821236999006317447823047606845469717066259126374116280917603865847887970133158206531285538201705378372997909545211806976432177173043268879039256395411571971604468541419235802725943872446640898175457011477952769714371321565613780895582859910709922817679890172205514114803173761931317387364679596825775648422199698553856250508072182438154389380667543231770755046352119687548690825273167425747830586329887419048050629017145615666362127394384954063473764056323275097327048835996688562817540745618073909979630202416385549544227057321526341899271111889346368083760312444102663963901460313771392881148775010705548448173701113863806785488919083058602823307973555879306986160211440780172761121793240925500750418464992122808411782749898607204794591520678417882020040168497266547482480309490487297668340983192951487812118158323475593920005995275047809883627309948362765612172428847610599601700207908906130064958912096181002375208310378434752439934348685575422895021557519114882666725624568777743602080444059654356114527935599752288977796814627546594634938224161051784886496428080940515983949325812037128175721693169017833139517489885973340305438505057711494926868470030314436296004791858543973934201728534666823471057917354104607139803316048939765503295120330166677449015445061640415205019627845571844874179169690020050801332471960470524154301425846161524644075305086140532789514791707699702654441288937694519805595777102818543601097059027574819566796127525460734668126056950446870624221813400582017636557780491965119407428277127334065670072234484042716686962831743214508295979071409476590128843222305736964286724730407484049093266680261922528458961033003645193359381534990214219079829930171442309422495441418230464882074748125814413638646287614616469849486104988663149388961679750724596403280755943687111441309342954224920188864864486061029629418065052559698425123357367233638289403691199291058363802301683165731139070700502121581963334228602438565647364949895074123758073728154239699250166884525991517688077144684785598197640755238361468363005582945074979985128227479475912735879126595399176404288332676389015031643216499006349472470282641627598183584771977898697184461805058146633021537637288091003922039116777631289171075283039622257524129544847998290459118120838733416665088820672702143392960759992555154117243255387857103974053537463123115674033980445297678002957321013087413104499587672905051766194946297205416597647906923092880055434358685750419971694760928272040894574820626095300955759768078390347757668942188243000173541302313944238877551375251901072345886729624587560076487830216151831974106684611202862347116664751529045950412796151743687506734906375423645689336719277978300546648306549308022657370859567142943704726034728426275086865050703233044292201271677364150899824831940526036767300656148165506685689590355513811596932231849357904210940787983332930280050537396493914442948248125343069411173920172880047513535175970917069137736025033441948376088265741488068993511268600122507035957812887139149045940261481361297662401753593979363263563470140961296603779088656134285236414389809647779441532500858686194529320117382168197778850344952160484601065282237838039046185422136250724631223581326230943310167748833341404323629348484998937538384251514490879349937338499254147444980038464470176773249084289291582362216015738469527132215930141699189315364762163227237429629782558442925503632458970485693207791682380993616052293450751489296377520111743364375032632052414568416432758083827564285581546367261982331430952606399289919916996240947566303589733153166237029808828757328810794766926903280119530159969968434264134855405334542831417894493074305200714880189882659633279031907115554327588621289151225890562712097300485475496033097677074542313094216117115932954426910039115325799801534752254633860706187402513155736228581489893552324103018754015071506809651059279757667360935820307723643417585663447748072995863941837883832048524972329563165160177204055214837165557840951100407405172473148198376913942466314674556572804315142367095641234255435407690751477866989222580167986031619204366464032900917893210585087400925127800068726426355018416139754513977385061637826887010180405037334360486246173453627369984624395946981326670929196194444177238337195013886102468745299763583776295884603752516940513591183261909564889263089300100089476516065013410934169053675936644858397873733296536432481615612440117031095638157114021978028544565551835210956469366804250440846367098684260526204039975049614437054215105810232888976872841096902934201539578516551227650853844329327231926462822188675514067499237163411085400206877264964576022605856614960751738925831701154726492199587094244532113951154778807275858060605890869099443983234296442743687938550824935940824385675180539361006829776005291025028602190805940340243652008573677364676680913746904303484885010936845632490733347579729136604158037061387998303300775472717265128911182959415146964252885634902391235434218890869205558945148633584616347706023645128327138037092875248773782844670384384167755805714947315588131216617834482866342759052348698582244233666479720587104180340101450984490303734722091618622679381530609860388645327782645870902208174440123290019454035490418290701976756920372418206304765177322656408766230955972048748728138932220558859410905725127243760143187653917919953183249104662610020427738086634826101897093452526081932276426198773778754881642293576644385618049990488569882362576255293946569240230955741481914133558040099544979732927473214681090692108920123130685002510000164337314131426742373800919374701619764532213959442801354475744438323486514589244836028028828487566456709497205493261278595519369471553543726271427873386339540679094396839519501067174520814588968651637834400231761901512679882202107619292130004580297364151286803387651420228512949583090885576977084623194681609942722706853264363511728050628977733945931915586670555485512888525233143993538197461766467146729369128333863458112247033167653397398519340314630482609373788101317326044554012725753199440226330743405941962319203850776943046678696112471512979415556176831870924364026137025963706418224435018380520537325312157128098290865817750512023805885867359775673318253862522930958293474328077108108193331177019665351446572832467687901183242586200974675446790785871294218126391817406888046980649396271728253300519050283304411012700873554852234373241209159054442562384936434456482663608711811362395206077267988282533835160963017370271369308087357759622851124667044870653970891455868695204644361020735947915513204704798150417514289753660759358663303748966907960837741606573963769068346136317143865233483351394411330234388930851596051184308106872615597178193782080052314337199403185304486295467291755277042739802289813966649816979712588158551850889291290234013373650744508881730099223249304431431713380151018153686136254168775599281387200111214981010228040966191725227214817552116124999454383055754777307367709646637418804111962079572949925389270353357059717697206947964185835140348297764405862576042932795893445236358595303779420349170156146923585882624487546815764332629416732198276215718938524040152162140001714611938037687473622340322793202578640689769775546680261969623865174383541996591742542216033496316682699927014162829050122930549007386072096082096304996307458589632003069505474238906574615088782978086967423566469095246071543685102323039424202785854756012263448789641534212781798490776401202914423953111630023114481832835509588131837762537554479891424929198832277913040095107139976362156293991144465821560092192618222552145086435964910159286959637932904418187457159073876027848284274586702502063081219266450788551392871052016794686286928464030269067604928935125576547407441519276651983668704057260956121691401701976546999802825012106824648346642232917187113655576440032465165108592763847218180864763251225433473358747560689712275167383029891677300623470934460995152226327101906236132416503040626997411020619088695659019080975795805531967430514523713305494734602614336963044928117616985177019718330475377795519224921675651467494983584250059471411075377906640656580043446333446950727139669102926602038314515511852113571942361049007710889201686813212326704011969862116238551682478514923556927152950251862146654512669770832207086930391248616150351595725339195553407141534756698321431848016725963413359574489913861415393563541764153931785944932854826017032065646020064609743733287067292555731842290489685965805716293267228287872405464657548763165081265769927597915688997402586481215347783683533926477001205394884436231984952790465904873093395660824352412562692145957739099862366876662230924304112476400372919082024630118602361711901888474816344944094982465475671461376342345600454076425873155401049619682932503557421778733899144112906178178217498777928551941240973915014248544670341147887973918907488199630576095905713830171610376921751992949335764781414219631116277703323445800174241856303655226736458001516531251850483337077824942149394002200956381466548189562287760955100176736741453917193551837059550064507175723701152900125528833693195926074735094250534375934194535413839976134965034202964886726927597240323726983709269721860783978781506756119793030272187663826788470995959552452305976651002784518394011417363173328080264237765674108561315315898157234212778242089747511165136429396867602816183756338145158949333740778638870386514615752421318611725729134750584481342140970950850256402988112971003499487216152877975481913579436767915003658270219589762091582957166739608673620696372220704948932796825336387779610101648345500864844966549285992771506762258068650085894903141974884397107846881733105982742202835316673653598565102310535684113816047781909379801536841764305719763669727184323031869936017575743753908457624288631966175478395066885020273249284727871135358317852790188511749771575810357812819914826282570479429282349134415384640794990080525510544224818756469310036451160831843534623121099355553961850968462825743714440755133137022681358501954344251558028089407228923466490245000569871551179029103672169803676747509851666362641087679501494296676194783770416238464404520574164099544067788968532533177334283419948742978323782443833159165412844239823532062595970996369472850462345515423701523232247478910305046244095624717826713464342956721009045279566410358395409182149578033364005470802020612054555151612320540006283150266307042982852813123830954426940749054255856520536811482157786415665979877268257123680828240899519775738584739577863936997485414358810521241370401566213157624955976903088361176514589363411720874499118811899929974437797911508226674507003499501076318167340544032023908196692304092438991417358043010945814682845840714689369757354488787213823609418734650792895709789621201244716721873565751379334629481452819695232266256913209629001586151448524287173379640543001353142359783926668930714010092674975459662198050444740451449498104240376104442867098118213163164648966710907936403741598273102157221396450752294266106041187465623615692101099541397328467633040295038198271834482597338440534828209975838628518674228173251269506207121252345965384869632670378389640475590192010666561616765269468560940021231479107778348987222233393785612296370519222267180728879315763295072384591774387054722087924037949873575913106639736022739903845349811416952345429587230056943562727846487399557283947207849907564012305783702088571844619757715294234641750910114474405174002987619567783786790865414805734535654866243269427974902917470875906711010295437141242056966560306701228896139279269034611137155188220848935402635430544002295824920118556761493375208142100724537651902466743178568258324290495879094568472029184387976826702626958261037499932329855101925633558060826073176904099437889152350102853337216840148918987585797749156584133221410162720740967637025654964611411303194605819986028207631645568594384041981970829624755175153332491330813860252616307663636692092838333286817635426541161653365253777823636235927310031308382461115895411566698557219145443545048348773447496810091137798315704187956699227293044996462617296545322765317686874153948142835009554535714292580979432667174474177629518613684976379242481448641244571236671889937926716885992696655240386135979377128971216132241214244875765306937593890892588624635329791188508574906571828839996639656531979505954838517455454679260435603985059193563434103985779039798344969683301506018336746738539668997615389922423076430333148829386595899737646223506958106003123773232836994150156528175492951273509564304754790016078157669685670143514678274501340409532301694750322245695300292504105440880057079653745341274284246229125297528081740919960689171469617362076459531865745523304491071539793260125815700815654959868378739151485123834892973378692185792813684618261429605496568622901814554867005691383105367191872503608265356537135542959868551054717882264231178704263777566677856541578284659479999942763161755161589132975466427054707868567599770385567186369941207102151422039129741053180743272918888886396700321819251942722178953639194918277013248992261311876481900947798239521758180423259750767577951668843379472924269953950670066994020622558243893274657208363146792653292797575424566671303031932179059115211840001446119386385350449434508387541087197983178541668954760398991223241424802697855823630024101332725134163141526950299548824383464369476308467903241837737670158659104361603914243222188564122582622680331664639168996606814161767023383315389765837445912608954205717298817893590970822022045630141121415483847993595361037373920556371361811268162498187674742438839495305869387877903875902769926512820280166428880096933217339389347529468138297416155445360863161920315844598557183415611774099962189269382648517419020970206839621863665522483035584535801557763982796411195471675830928411510594415364171787202980484078519367505309637239672663557945069898787100604811390017447693397187578790815087265240195352307615502084389193146077762911138380242619072424055723455284801964301116343939592804363090257038741463957267190349965013034393404307849913476937907160686702815932195241611465243447909132256072948090529933090196559333876972466486652172177447778333784485525409647415479275225372360768734117354751515061454004022523797654529941261153529065867530803836285958113875073106435621981986698067470178203588477125692926200374758567586612475364737379575632936530461274162701578390811059064459798292310444867119306350543716674631922333424213744165810398210967330601193783385419942669495733179708249488248818465806819106774691015025661181893580734220038006573523569069851302391288381769346118456332867593415794195261828924317489570255945333991800507800511203887837515297823533561732112860413306473757581352984201031928866570763585425351615185538579647769138708616898040767742858081148154668484312263626916642702553983339399294514401588524223126228608612644475350725020309321069078832630213163140643675684988789645654286071526858868933925002819317185397575053112606258349120255103427465794188457411093870491050167809351756208234975041561541806463445427137013032461253336224188120853407376596727029361329665190998888627166780446905455584641262883894268895749730551592544395675411845182023076125867384451736562452948119751202983936634062983578446958203442422707002210608708718844566679963703815007156970807909539924303725428086937830701351247168329684390548072413742349203698800778056058346596345500391452789621228707817072743396567947247238653131052541184594779009597150553245743309828392111783212923709386015752161279804329951533461934281981774579545895842053305432563565315941060417348231592003868352826861970717744322176652520799690278640084545468346182283137996288686876330915638014049262633284517037364229327058821796564964405017541909448612233361617644085499089421109744610514164097511580732381065161014947553787488851300668154039664042637896527741933191970831370885401239985245519543378641209016776806960155089859540393245224155652429448130754780418289468252044539292705828005610498240659946823195007272722760435355735186462373153495458705712131031310318726745183269349282819889266510248311664656268037033677111335391447277417705513194446409445960683252665631141084088130394022270209355242542689793810961320164850211602216292716445804232340086998145076123695691521729345068338969433268996436644797006323841538505265000838380182377396662249257033586820328494544260208813765403279756434172991037001834238935255991474775260001338511490674320052484900856957885120443033778577241910723230192923810389626671383443301646849487639840044487086145084685455053466462430529493149275801399423060017021492305962163456582655758337838003328022960892760667700265087917968382927554015767873310747020304642389623330371380545493315145854075911858515335606352096755482852685094226500908455268328741790996320348062946014810375625605879498365474121737597085715338189451147099897911898559261380804700631599096206833897924568714406831552498171725038849176164470764665142161460067371717501417892623464104324441940629357138082450519016582265088466507202076969718790086310567680850744916105947824791762595990931907875799692490291186671453016966524226034503097068599582818348706087598782088854297033509010335288624103089796596415259719578142825418081519377638504819357388847492627504297713847468852696356970615714418181547035519484250595306758355581325675519383391407406301038322526070954310519170580289200582989103074232429191157533248116395322283791853253493994306404778939742212308213568287784266723205403359494471174708706726321959531363360437292305829631705432450300823620236635482112450451022343228003556442874189828235023114699898174858574360263857092396636792013673473949685665977003398124852299296924297863612606227144403872072775329534093602437406392480636586553650209117347260350072062492060627876885868869244808086009262261329832874564696310961852274028792172091094838929686635131004747799578345341964504351795040157337783083640060164727088834057503393728977820592226266624727737174759123467252583162809085707944793993740338553671246272426497435161528903412705395205597461912724157902224951056922576744496871030895556675815204336310362399506421222058713852899117200842489721306549942367377357329331371382676910137077888407907845047619976015317178995165548653623697810872673417240185578234015516359521753600502653113569882247423421913110840601167817465378888263776000684590996132907398983240911083169571482096448165712467065228543954593966370733889255543928431617576980451611775011211816820380661719292598630938934019397254722534745909314869190266190654580590316919750965076920112686793781577114826322402963400612823237661182157194872615410498408605895715674516234577193648418287366758937779550802040296496236438674081317584080354199963646247146511080581238522667050451999354653456258018670270784107115565914794174633396039626482217619850797093043287037088514932885365176208882509169234956428844045347154450088472668727115516684643820562821512059096464712194861495631871869258411633827110594085537818763450411622611736405626401564996782551048111892425764889520735528287564415113087782548723796326086486358120446553154981670713874075830959136994753515809377238615713338430170597228971797060914608330046475504646309231857526711692472964277921124972128379662505077610346127089384394489351669803953724168804262942001942694442630241853897162937186759701387953139084650496697244687100951100024200212241816910838096380405339080376284145573166865603131352483188974409180646819355077318306186331456270076901810357351306060275475337895792550679583800526227679102724680401136185202392952195672445853905988586046741676535731882813960470264627709279067438148587466569517877022170733758121745274765478365399909793246907308063605726277158384119647666649960528680044647771083568579739873708862630398823139772199861896307025560500117999000501327169486143764446821039722803873689276663223174194444125995348838353474145680419295974640454724783351034721400100875352102855498991324057708475793742130841016170899382268040068008174847063321237770554876447876958163486366666733817995692180426006538071416480054371989382280838271632220869737574777259777454720772024220282813014772510704482342333329034959021371468627120399778319548958391201169687963642424076145389655642421147230995708491469860513043971899729701106016964707122114694701198050082209924474201040045551548668405987365450209429555316793329030977784463530523180731394425137852374350577148246388111774154138785975253924070199298874534574425069621555792270447218788559445493704484750142105884895646585404324574114039539044834930917907981086977461812651513963558768684527040670338442183067723125021925019012390604246054831381032276062318934089391637063182801836451408557778891169586427484828527938206504306541552277799745133144314872430951123279823938590233114678661723925637986070418222459144568062542119799456023440152989986305914233899895930160152233799027445297961142681011466504465569933207415859833776381370376687880398464279993842504029404711217293259980811343612678253621433813036461444217875370749782176142848835649435471275343468925323222273717815524128029189099221302939621087964640192632118300319439326607691132235106653008865308388487221717104278794264119046666586897296245202921279035478287845113748117631835659709992443153253267379455970647306215727819686950344850286892664413702584598152461865891478727811940839032397944690976631103032576697974190922695595309720514632258201359265865493445378645280842224610316441932283176556836362297852880205233608068218072161679290483617777815481415096787344919077838016352014099767891830207143804179421133182617518614304771364633476083834338951812606545117525359231902726492747650359210527914729913147354373851984654350582086634561225903713575051902617192709963146179669614266141184411130211049853258093809257130780529279940542306139129113519303732296532026614795416495161032941203098592554379058224031236048452155100236513444692304495337185369123080681065704046552501149859382456001274585610637440963982747618235568870157500891144997745514594696017317579921889791066928695210358061056661204247329858817283785222623185273714823668492048982244873224223437577339057066954093494719372618667576436294717632758130943107217793442399568769066791843600655789904346422181909564059985778785382394951839158018152812453869701136400109421632690205998045103582498096984464840531268349574527308387141830599444171559862983378242768415984420588330527631276305630275152768890130327868822704083695417340487113918567472942285458265132870993666140566320135369297610410887475907251147346593513956383731133704076198280334401244441763436656193830905381032434631382918924418263617509255032819154273907289151664628972209519598950710817911806837397242853938639090525305920068274584826691041890087015958159028058440649327982917957465538285986680749566881896118567314213460109738461164690240267786036390397398583370992059651293874074858807058997858263356522472377541494630956739983874839794654855218409616293770854045085413715336236043319924354878175754493844833787266669390503405142737874509827827160608745040107468505809928571433239293983966753737972672529702651817383645378969524227203153285109716456657595745680029515152273250848567334834061167926346300616478265622351666487994416488980995897757103485258478099209920058204052668382661139513081875611111846735685335090701393064960012365115578956831858167632296082061921940920447730526449773612992326903914691415122744124666739773081981222731788901482958425441298841727016863706251295377838470439908122749853417182089648482478144608941152435149002539299715839681618507673568650358165906876125939234672968404599347088434493064204784780345869187934337003995027495583729367073044088411275188923935926030917636107988075269224083747816741071372134734861627166383042915442591021518226673831186195908950119696764909096448767950334840926663541108756706979802863496001550032544589010375154904240500190748400144065615269914794895974789589039226544779679001793210944444580974782871804644325229922728143846395110342524368023260621783332347362967941979168047591858819150974047604419771577706812998275947823113909472099690189490027043844019008602606790277575559073862263145124951388346849329542397113538360777913927992484113018265493194935528392638122068226341096050280517273664230081820912607069552460366950327786256489275638824665635775350902577626253099164104602842854898868714946450258302138800674399638739842225718649715554458664063171491540849454162008007494350001225043483979945320322193809065561079208216001086854765335813196790351484470932870358539821867121063716207762981834773698744438279360123128492665707303403979822736714557885823338981220097437847049841215634388351510018883807288521625867970878759238152311688155137693852620642814692072746834461002663555768335778051414304758284557653023993719857229903316506082435387875453099099056780822184386923275862316829964085851503238713827486561019220839528769775530934448762849245545685058278993082305753272470292024449634004680115575360012019681641617547540189369944170097491458299428555361696739005049745099803130413449250249741445217033828238464968937708810837802313684171494848907348990543226823610403825850917532204270269377727836246221508590635788018166147669937097656212463091734568888238034030710596561565084569106479061163885625684633981327029522900834449808560697112844393350027954971806946696051551845314027565240510996066143922613910640767802534593066970372124734106666387343014562688837952977010919756276309736419816116769890656050186271653729909461544519622498564985373886952990548168873468660795811742350819842918597575776640148090101306659292420302672490593984176106654442556199058569255900799115195252564327576185103831817996038159650419439691542960188000986239320410543662741247703415106890570363967429269289685514801665279973175873826557652457293726115872937797061251992892648073535169523562088618141142691825316297549472417620652638755755616384651482137552431012559120249129716217237231970887841772220539852424828239973808943703161139699437415670042198755017852469247077653982221174832744263181564760086883988480581647369383772144113229230741869023722568562242079358652921619683629123092220536028177414720826501126645145749837219489281477197917160582137705713357066909483790585679298399850329727937198194363803718685956404816734110320940440146538540033735053082551065980946073203849966199280909587247030920024811078048506796295999151059341193289324280854888154560156270152022629426257110663913203557350550370438839013391466851084471682949718177709802153663738122329600536487171904230647686363800631425268005413937310431374815546477881537646932079314419606596914479610176535364286570263935824808420442961636039443631224915237036388059580656995954219453588436898700590859679751280963947418259619721274512463898964469615928815666663615711613175987589331623675618537637687896018511930898612025868862966412250902777656594624846883082656414360643457776234536896482872287595933832003205107204603271078544976315685321283957137582960077960308341468259257397029095851767183332793864766036221454885728796515458271007869915554657322360886817944096466376006885464506989751206293959218835124824457183601487242934842490497369405379888427944496659339597599278789370474968529541026460884788202156893111657171106784864406688208891475308320732981399264644467297987991462963919642094273355191467955486992515671996951854515872656385813796689033984016326648767625234764191773361131025715882944810206480963776410031577088077413152652982680775128610329553789349124308062569232880616794697713053995572644756076717343326987034757633243863036876977289842734765008407263230689384137550342115869393509809913937372859489451441876201812086238125347465708944957171378274582402041949187798899750950141740598438355517713574973303681235242638355699133725101157750923687578757536699509386694337185302095909885119885690256716958437955760847040552935191283459319986892098838307405478456585740771967522069396190848098874856354985433424268190332773623761710792380684687048846688988622901225538011128406048955740274830358575631787207468025610230352252277304716756837220495169428216331329693905961549727859794547690146388433505601880636529113778481110604699857989293611102441716188022585220582021610538500094243885958704919394522230386355706264341724821300150148645683467843801188323867746671700430036178298525123294111972614159021270034837032503749825914801371767072456977196605598302721441249223942251721496385940153209268705839108571493433450792811892312302117410088294967459032177132372611215964509781607759978557420497136497727189981243827693622312390707635947355513057196330078119438872973598716852428201568249926545182995363913702080181982233274674364952169275723297795189337582692233255596422243631283437615385551157726131672018615728044747996867302752428871391830809898374754902031088098087864745448885900166556727615755952693107034611621576097350385099557364134950323434996693017079266752134608111084337513722251092930494876760075667575453796256031363719124672136746010583735310007719843318714109298527632254959842530292322659273508217288285653610038476059210618379132219461964448200753408158841215065253927420186146119242534917953323977776138364173477150447730459921334327999764249719479744053918946956788126890936937269196809258003952667780811238966811083826926061718279308418980124945434688160622837424152695468430814567430070449305303067355855336426563507623160315126295789099932565218665970170238093380746465362895187177296372452221297023790196414383437502029675745491026623808732254732853394265462833756785658991853690914362770734400581332461292035119672453013113844363804251859356313876008755718545169941413554095546762696959317360422523292154204468697314663616086884394146182670939903215705261488379488795514953532677554302523380267351762241397740340590087933085000329080422656012361226993804449967034180087976290543647646623364748836929969929097943571310220208514152836629274424786913009239438464828587429247595384832056830486697223065977128212258516498002105284431391126477243495480206240252461162275401709505227811578992264343019000314761848595186838414920465778481755346168404705763463452100785323703687564847174780141397751743481681219055134021619016663838560465245714842659584862408856586718745105919192230521689242805744092712869804354327476426081411363060320780119132834664378600751489380529672819141054147914072324744808673766669820106869662243776909180221998965348162787410301646810654718033795772065259805913333528875083489901951468667392919307797398375346673558802222598572031568434594588698946743754802119983185154685449235246906798684697369169256606503698847668457949444330225328924735575892638597519735937196246059597336577724483288359040984120361177927213710590074905173130978775545277476966048628784677482494058760930756686030982733117669153803007989525097876586120818431657010269042721757383492330568815764352854857631419799642596349156882306637005131643982785513436916503804035321713813748612416923194522398053049386254424840609032276603875087455746708475155061998033289128539352150119853061570852083836055310064314255758160219442569012708976319749136101738416083541637067420824976089268454265345015152225164849632026860388100070393706768417754240110738162161358108083020357097683089279043365382579330128750400068175400973785757595410881043516692300996095207295173636858626847102627771899539798987464751491841838955931288278608658310309561423892617561460869742363168176106828349729663706102605821533332958786408707913396168339040004407024738827362317690752530199779902356245967838649946880253595454931541144616601254094085363487445109063714738756388792745216178335189408152895562125440270778922521526770672979895096037423301390269487500474121828143628801725600241913790362982116716970689162782341247158161118134424184363949573127873983088314833807657227186164205793257613022077790564751287009594826026856717422145502221419010621017153843758448571602056122831168617626332864898144433507826698780593526405263585778071136962931696380811969275336871985159669910153549952201774014138134545927903125792799974669811559280764461182403410224708750918504893509719769396425627383457311301286353825219415870128066295602427748354905049119962424955062818412068694223371632143500690027600939025296893245290709574424580701865568220049591833963419143010489453816865163685720026218769823005832305696096744018595068220316128545643359376639387164212836469078672293900906574221608140226355144407517995576892773551404827778463947575336296608943507411855082165190487291826259677263790961750156865663487441985448579570773906525069434390337319018808496376432457185069707315586639056882637353012625271282647470681670161458050526124957242469759544633939823883716695649497377126583937580695152915118241232541171985000488593566738841788226168170963783359092458242911748604362509697932670650156860674501359336026688016021314438519682943038634924315094839510063457890361782347488547929237808653265538560182937400918269322750071815749289723954958174238361941602232023729625841521778869200698790128942936480066331210328255984692335442303697749189534789458730032445653202523800106646764077040318533318427776119012842278887059913214840484617728659601759470247494117858630078857593288948600668151020795591636578118852757935616257726566730668903899192973205985698520363110001605103720861376287120236345971084150414675415928061030880407221657426972340162305178204203542401601487705689970705348158928743903135623207032610271746652436951367415967680646777451776301306344151241238045694551704423144330410764179881859236887220974937787417899235695452472142681779528757227934587766584035649856452665276377056975851569408804170204398668364225600533765078989526382027386344607388153583507722323664332078423196599110963405349508241047651879365714151883009599325533899761430612434024337708908696829515024412685652927933065728871309073922708323752229425172466862800796800167228797490472806731029460923989832168783836915724155410344647586477128717658263495890726198879372333871153236090857532391073510551348219751853087776220440790396527655204674352691888654688214277697275937424426171338476540215790308634948907969324772355802471566526709515151304062072964536157679191317996616837460300758815577654801771310860720877009666404659613820521637719793725294497615706241304622509537322765587782428684989270518524934495558008516120690070592704493607209026396197548046434457605827604713745616788757873048472790286815603443300013419461764512056023209464196626005477560072795967679233099929638494101309533903100780985039601105881570520994601311079498636148744069745546552653834194020240302631507082397172731269673102469819452678058364154979180590252612194982192644541224359463335815615265399573499713101395459623384406365100973928199968500554836645726103743691119410747931924750510561078451997298132829816107254902287072282766840991003566976002363650024759412954552650616136522586882407567504510504375950345171842563292296272751412115131038719552080957904054701297821058519925493645991487438203919514500615831312626046313625079836012167362303055953357489763613737580411425369923299890681929485984644593762211852465973842130257763258536332264035200327697949756281504243305618374399000668942752775702137235567749166517140178218587850796601097704290523245545792987094337197020091549255591762301059341758524829138633887692444339771494629975075760453649503749008814573829061467891897379710036593067907208951885137053800143568837744530477980324631780197329037443018697713440195547872729740136275999549897432421889479498367866109781070796158786724664174954332312014899294496262701570907985571012272045234946225345497888864328494547727362744445542213954630926115125182029272915512384452493516353463443975210129879462592622044315404575486509173946398355415652550728763841123737244309521732659018906150248489322011151970746570637903853114198292947084642871820186859805959071015681659374038722892322374131232817460130259746456604659915706975167969249000134059262399202039391729891234200929556780560421824428312557924825562359812477725932589210634147369324987313144745936822125823628178658890987653343487020580501333923682135029143848848652134104609263361754444973667525208561430138265890522123713679150289995884569480494499797400500081175015596046762828030191656012268236481851512517606206459803710912414789410208641175201139091986758517584858589979820643739489752664471261929347697455142757858690395681924246743016709264739162118807397495395740942323052209473961257734508092014900713407082005738728946762808592152257217048607532327335924374929683139280417318948995578255815042930500401218385559377567151261083237788077796764310666354619686597897962521087761694978436560304436845555549605396866134044376633512542502951199681591936026285701994866548401814003365024986276467826307912596587048932338990180911920452582764844497452853440962955690854581474915055194695029015551620390694178378707131155131503979154451439687563961158052856125917952554721862899148142610981099259694935369848850784090540820651159823449863640120434885384429235073869380969058171966168245477537919215184800380118863778370179245242926264840105264296256167637031596005761106270548052635752030374185925966055983520613776098426542394299934833164299738649405216815979403676525678515289345028043661385216021629564741175915739731497755436022097182038386699859551234443020873717282945984382554522740647609390467054478490142308267107502476571238967410421393910792474699368437115883226421027413667406690830939308214382274407524939174581029469802804345531889253415118590440608322627683534409621603810234590570878648054493065920747829800196139086158042756196105261816868625493885965771013338533454932101455507355010803577166586506338614325614148974119862491314479584614872004406036557499142508724433549840070330824542727638096135639496831846204224471974852710875890217806735987783091690313733561302511258521858234097846530685710940027311574739395993180138299245435945104836290529647447892416816790790684124438507331370214831029044546310925238049982101749202952688370202235692488991666846052056557817253623661220343800685083342227531223546180997033130319428199670704149492884235835907730648704097089067119517205166536034449048846648356450026299472869820426229364487996027613669837378489634714448231530637823140041627869260428146114067198149978774137460631881639290835418620719096656135047624805245658437684619452442515104602340333361678085766929727238411640510647868869068937197537779648922168734004268434461264030635754587897174119411470068088812846975511599276536527093279549255415123497640732045030787841168468461619179497586596200959043535582460382514219696831727576872827943678479274649935953869372173237618686269834181984351966142925496400500038831836931591048960208376306332956861064402602681158109611925193683791826760130498588013899964839388523061804015441044474314435991267246685360926880939323079193727195183872363863188757206198258284416165806595187635973687492775594496175124126112577088639901320810316480121464812322197782700024711400198787643407613055829169783665055427693345254483526907019868407093424333319311418821252023468841583498752914889701006578847408200838530123067597330128911207075555701964180890946973602627909017917198554891067028760150487678567265493553602109032922647230512627094816910156614234674922298795410839119499629959402951138375695850250379122769626139567670891639336943587902642675563357828645439421722544134311990381009216805820242076512775273069969728985756862432882068357169473066012440918497665065811517215808373245690609925801256143416495563343121884500416110021588247466166426445024042327032685005739638340558906734099019097421504616394634665671091669163444780948492011431675554892706824401303490507594279056425186496916534630710676325635824913158745911716644485869505760685519523626214978571591600935994577569480904253846806903405592150906085081253227554811734761635476649690779927950217237175900178612979453866636867341989655179033830846502316477690310753346112780505281521030089782890185738806122413530621220677761087594910527054025114441745432661352223251755230544038760770064264120871326638758205993178691106340897318066606593211643495019640049190561865264353410168032119209950426180038990529179261073440729950454944494503283208733067139597036718396043116328637759711798350209215474062909545396776425352795261847873017576520080930328161792735100193901205665746434776523170586158592457145029283326291371487147699044342709414439312492409000129826288165962841808079284969995460094710010905106362523092012153343312020426387843787436663069953634941582260637807467385195673095494690500121043563094526778333037545412566051889534602750622566342334422371220825323092742655861338800572571360856147025481489727698229057252497688077737186567067606988410905497477367091070042999281750980293389890690751705893993749374659345911516600881115494424185002595514713744457513782907549964970692308136297811443159686703653979093790376279550849185437338186699955490937648232330679013968231396984576540157790507726142634059990475928844680301538626014003337463518531925235452699364154020862185230901599277892207694178666553397235605392554147288738585524938648957002663791221598648284688630093473410663656314862490596445171364382754151169561224107242705305166188109654794765771406573734288275806319813185884850870052708538895926755017049238166092431549306050470403631455963306550205988113690472265859165437136539369978834472674963551563416472747024301719612611666953719045620219287686148317107942381754600978417891398790561147698158247833211835279500552961166600918856418757952368561718138203949931917474061028180791644302466729771530206416578891459241830154166798857583755924233493845834438514407151704575888965925097459841857198620553537488286048182149601704553952314281748170997639447414008958697986073917793748329792179470073474326894671674773955910433317215640733091358383752099440031293195520095981153892497068150614411103801563473479656904158786202236237290904828546251781782333559542546676975254386759496394438065927125935046746304445486385558375534687731839395099837891223676941579641114995001485791968505559407432403364743523719179563364384497332609123844642729986657716673232982360709338820519394775785339335781321334136855008980829708991644770079159737449896559389550596379898300595736531231367300944398180917213105434270523613531566762450140480497200785550035137316769845795432275444751685573746721721377833734407443339315833907218089587720947208433689915126932442763790266804866603629722990013247999591418444880534068337660091815284357751510534569934633529130481750285066925543558915711275178101356402241630327850819552610044892689958604874374488970164695460476096243327791997405852859083188841942435023160183992693711718140084983779361359146277951615091300975488188337908911440591272414447684984436687916744932586518979045046872303267535977381792052874399703157493022939140587386066635639228161790112746483848909946177989200784829083735296479869112260171243585506647991344643380762595272020452672995509242665833933165939810118600681991507727875117456419202668424557206535146809506730290157260563460865195899745423896159781020409459785723918566428244570458459691922015413393032316588615222527140818891449172660353299181699815004828868077494076548833716437316543128509284209133540615142924027442512477961776473305950012213104721800283653027314845640904657536584610135294220226484943900652246413967316954915421903593871050126381599419017261113596098187533655949090937811565480623044460024044453004933423346735633038919858632085747642824950834299888014401796474238765953046315580926445456465002226878928510626720502094602894535544995335114819622347101554379414610533437878897563513572925344810031322654918959893406758430366983166814015572182918821695643653545509493112385585918045179493167488742216484872698180004793874787938805395514759054182787899793871731290001115651920201569776037941377926746152166687939066878002475047041162192623468110707503682741063392410279077487799989431576822383082023661121547703735067059444343995869206226145030259721041324613761743325964393378145008879842454857306503940430709212303866719193803895673154393069746408859195661805013697763193864820700662599990136246283454193316078102055478942422243813309835747208567589580933828866252021926416876975196384477917566981113077741970340116233700130857732234729077266522719167314390506879094131470916334237894394388251279194742455623551935956145929024923717997474158539486737596224739172512357764060005972617560749930807216585126448765721111623135593497228567913821083690184114227418710651165981335391497816426125059921582991064272743226519581880226037040000324189770494202624310484938033197621986126347284754214410607081138590254272777935570421586820168901744176906524957554269957389607730909808072362389879544989835152509988381357211514784862446195426361069570214755186647078222376137424772573908612395072248797014244836333726696694077062351179297418985235955323144036636043233788628231993813654968000909784516732286931623323784768524981264417767337789648473964139236308001545194510870941596681891957477260395223865063069108132675993841078119105720322168681966896160526628202828522480282509970822928233172131021867156265932873937300060742118777816677463636053160507534048899833702157135521617405995981829754733589800474315795630072677041171814080302695134578815903124834380171320966399986726973625421654244942461417063899659431803562985427594105123502083343726141180292407509571317621627353256782119254294204442086606770716786671508215709187815117071584198006306904250836606620926778778282620887946255324608029221353889700349218494734206416690548643899372459442808941687206693094391752358750360295377968751565404291654051508011436894512946289942431793208425578608065392286728572481473553971573390547638446644631257328605958767144141281941701268051006794023917696745152013634988504352802624005226490781599029873382463800205672718381965467327282107150767686109565501718911102154339772739999687154231863264160060695483795699905881888183697837163604453500617771960636957590652608945113792457898895309735957833898948561895999406045169057665006573617408856430303580665947670117125401830312557824587597204414592408656815670742749475886121943379922755123900357981997452075413480955074349127181749519068931626805679219199418405187356883888110008025896716219357203096581428926530348453251858228259309677754894003788141575282410239348106477928071691227725312909571414568134163877131385235890587445675469867068238281566632055750957032127016091021026337513621862309390873634874410301759300838461957313818614867927813857848082045992108158924240625462119380987051747189046450358434863598403200028902209022379169904664468356810748185323041485011835943006812806112816979223111759618218211936224679308990771562387420654392422183892046213812050172106258212387052883914031836585376668704039053602765949850197593944762050828845871572998752107526097156896303410824051538210068438169990003180454460009143208431969937517119923450346885838419382463843358792684693335539403629365684019385360805700269120782724185554014210335523829577206548487986331646068926726156303367165666255476576941415677187171455418028005512225215145422892354382223970581993041756918503725093299271131077146221619819963348913084761157671307648479741727956538174947541088076455530348385805782286513107293914522300091425610171381435300287178346050428991038399574052290078385600070726550408465711002797249342797643402560880405759170143158145567676866187055005326258950006272980177239872229599749067473702767291317659687499646257687548883473421745850776412379041467707376377668711147608240211020324157284100214226922019198754121310653115855490532479069192459591479551665861635212248056825165991184590250587818713329124822890680380282116565519187797504811246948920170167048810601465539078137348091047730876313539155659888219384998887539844449478348731437694864519512040227974529889713937373408670436069187859742601776685234688009728337372525442357968239072515177093815289804034152944413794706493622610700836565960925906716488581586858497217510128834476122778161761746644783931327648647617884441928960767158709263800013964487592159586325104585583630980769755845036614975578347188201273853670499025034153306716107852708612556484059194908415172228553078601937330103789584161253622862222331718514273485818776656185155880104181266517375417317283318124046244577408803609966609253486018938068384479661224373596245379181735880418286138972369755334376983582052685419994449684406429056372230107032964991216199273103070774411110307840978445496913745788378408169548252080941148218880909752283898076267167393686668694918685592464240673867481236018779193770318319702550197298352798052309689892567738581216003728365302981618563220858121181329156853811750867318465638364342559538244192730113805820980031574975221287156678669321959903841344547942563800398830780417975329029644515274582509470498196821649967344245651705956660582270758891053154906576193990659588291026410502849372831405024073507124041034367230908178708369412948969060227739816786284814700199469814693341134598898902637988907110013615388634958978154765413977049875758099505186828604452296057460741092417643619897457734305432088027909829601421028038698096264313600896814327167236653150806388517091660049376992825355687953177179916111853930226495178599230655735607883356826993043607384713360404328924979324187445988891749153741737208935521743033193190884630411882779254921664218836510922965646474585561084385710046591894932670650181855476742306376884416757370433516576536982066196707977191222160252431663507350298088605041536217021195755442674080528690096975193075356364201814912341230539354038263213306961792789161696115179216625185028423802945178049864289159994557194810247902102320986891271823876191678655743604119025437622737350400324489068234877822059511876849877798222485360787380440763085286125082055342397795085727430680679087954855487134261080168595979627940381930404087962755713479094461882446937374451086752331907840575718192934564088883866623009563100008380844084116130586381517126490089548237895744596903602105566134819168025737553507100924093951074577651906964473018576821199222911620305984042119126098731519789949724384044762171652750591106207394542466295387287782514303533793531999687133282960471739918244314030208147809022912634023970380947819923842238993512353497789002770759538360388268086638339709454585890510113990714665399591645293577720815998406149702076696711291667192419956027045263389994691991490971903484791264914014612574469188764365424121360666037852045066549435973270271998412035423426231557239763713227794503541154109887992208598329997794046906480593229785298413704302073636685607118972428814497807995232226695545936742283243525176665546775633304353746287160911205252755778258853388206734691855576456952758667152988890866246024577226570372591524860803708663818846618795041658608392872228973531432014073509322910499926145383258475299602888865987235758094552733860923932586341795924024062976945198497991691857209520839909445815058606192275849523750481855361969788115366932565012053946778765530483708470929256812493020843267205531029957140261890971088196248548289008949689554835324052701302540420267786193103715774477794559078551142009567848996976761008482000581618790048769691413398761201479099576193757264325584820914070211936424316642618900978139352753902079665702184963846297043216360987025675667520655549207236957004246646952272084123147730294897775099537082340635249038652939979684131073354259815244757960106025809540098597590134819710826155258463489521153322214816233770551189957519891928210671416790285072576736926279270320645459598911827228518545854898123374831491518984309073988524609731804085721395784697228485167345001551119736643910386398851612985238036173365432296435006858724593465191437945765718985074694344140017308155815440617050117723264244682564433240602094291440058008052583270805260788404413202965262632638616630716810187601139428284862328082196197222694239514735319980478220769832135192684862970029594220282197374222196418174256596820136010330555847433628268069149783652606435057386901110533630013873861436558658451994485059344144178359489445837162450518113206861692258816123863041268650816119993226744249462121590362556451752988906414757544321185234097830759142582066121094273312799134939720850802290868125758367729478158741262133484569840763010132707504101560653103092762073285804616062767056227677573066947627524644100668871086232778142607003295064156483615408791934744242951364267005863554288812225194429773469173079287236912538102004523364835004645205161864309174740700888489379995371481749364102206118698114865083242077348648129278782076353020268548093173949840973188277082276716569171056292578733301200207156360423412810011511083913801195443066104172454074636652426416922845073534858454288713107912955940626109738121659955988028610090023552441869324825450354808677305696855753838782854636490880023101915886032860249882270156348058813252140162366389081613047707715330971374397370091969422581155774614687045538640148424686689969776440216067352500920379151811692673887739555259672012981095884988533700410771418330675701153520363508488829274593825557250859655425015611445219432834656449815191417091157894595391556868922513973023663988315160785882282878201165134065525272878105195662064940996367097780620647379177989871432922506143818969224939294849622734686453582013159322901892845206613381610859635560011485749310320884138300162028743768728155066719220745073718071227837773840807333416693975092343652347996165603880718650631711717890620699206375161482751889642243252322724185131250515675473801783298211269621981359731729973143267727585337473720095445591970931622063727710124527453268210604145132500549742193699864481620035110567802798947426060651495512335568055573846839643837673032546782738229571434809157950606390455748464727189235983665476788148105300909992072817528465897128299917836789997389048091898830037551406339745858748251911766748611307677312699003981167489758843983436818399960669630830220074706102655592940532660417506198650465057531784364187974383656658852037453484397749356110076755451428473776958281926208548499452061985003506586003645565914692495876451437577058599148789842079289795428026349222126035690188268468149560730948643711742261477466098245041978111993694804245366561927672817535046436212931231408461678312214737896301058597379730264973586888689288462935841637135533467030611090278964125769261429637230597826890301793615430113712987121391253427845783369563032706794572094755671176475113363709747194098775815757994493931909429454877045821497697074982631963290995548766880643867645969680121066902657002774546895867488876403143260674450470251770869036031750354717531520058860510966891882148274090865950811689195921991333010920100287377126107495191437816839237961743929832930238587230274227748815156991897226009265656597192366641080051410043157519933301307235219544193010906397128776721102884236628316307545889250828570417353255349155795342311268539150174795990017739068890241035809092138926787949700156440083458700591984710761840703458454067908919495333902147655754080226569939440776254508348130803604100972606007755549619316359612113786564132452998645375047939470322730228227933348964957004944012219433135750401264367652544022492410817255513330179447610100136195539319558948726904818114535161676495784443821904387752941825841252363552366767069884374858648427551323834139616988967440974768714532566049899400661549452337301260903298896117284500273818451418631162339780755729244037344806832196454508359277218520021272880294826374649518277912612074866977997420991136978570496461073810912469819738904228544309564911605930896747204320819780083537042256411205030388527875702533753013624359950787881476649868013441755414817159037886217074817762143335008877747744433084764425179150023521399087176414932826652013728468097825555226596366468445387227843141296378884977103211625491186992317167195885241951239504880954799701676775232168728777743735049871072764402628925633603647963091296774523411151528079661144716319746536446116331848444517833712816084925261152216236069014512849089192783562765756493445777822646489104903470573038507496588753162020471129629449018780085290736129050643205493360056261209425257493549181439439721002656081440683002275964838101008954354337303982934409146888139447233712664353971488940327597290569735538877549520976517756889865824031654171045588349686725471113322450269719847892492415491559992676229982131187810804271009587470064339140690172419415237995263976327240102222626842824343331927594121147427116867129494541142364488335198717712009373291776125126388144173633032432341197239343841269274762620482846996327137605309312715784922534286758165196714286124481935235090449523036002173105193589776297678631520119562861751810815086882460603617580300822527642148983322557782018583839998299893483049774916687356151275478179578385390895280903070859649537069091158412491074995690228634967468802529027150880314024777285503718297498298743010301458021143507159769622995650854634012007996689085848147696822803738986849397673103464239164145629868921895906351785344199552860895722717528247072191006164799806166062012011135072086538718271994098510038130945579879064230053734837584118757321838897577243521731935345789408310363231639573593629180389851270879183210839364424620059783948584976457945585811343376989867573893826089075941748445393559479855517882212024105497903607180477299045393968514899848201373960910032551253364243328966668103132113159259909049729056632495536246267263007986216743930652148230912760907126416372827304361052675921538019210329554596930996680013473801492666399339921550534693166737104481604631923228420996585660748303133241060377668115153634681995420194109073356235682329787052124382850879222301597367138225920011771532416900904968880769615147449439480001840436672593739346484791408298377075385263441141325918436619787922923594442595790334854474395819414137066692610482128382533745857224808254210961856161783342616920340830395296042782798298209088204517945446150174005365046431481069039309603795941218520584406138708312876760249142862077832591352062103369304504759414054359284021786368827715717863517148963416158627696130745371684973213396591138573626688126007925407873675407494407364300265483150720597660121969174770827373135596974567391411306745108189237653026981068983283161332086191371136299224118091630203614623719598550232653634816649004517198348317990315661017953245671250690788713549442874908963109468097290169489129200496593947848221915632068904578544670892548985777919432199392950472352391617331323689593522756861019480672926662985605757463270729618138917651493968277820065771343060194645255687690020701173230679971858435616687438103374225288086601556737997550781645401549841097980813203808894262674249931189198871156316572049381886468149916352414720363349962525808502700412605775057493678037674442415152908517800302561150830165435649113147384106787449726074957386817813203516311803334367233754291963313691413053009007700213344453083813269863135573368528224963615583068936237135047507244806656425654767895920651347057843639846736768384748067186740519141278602692553686583952606803905667770301452581926844726850034322507652357761256862518440759818852991959855576199044033093077155942780465294971417771191744685303617079151837216624918833043444206799768536019250674573089054793297175662925677822653710252484739596674074104806504912411858747714695869468770370751007821598736753766150981137166202716933112621384977502795611942438070864838009272928872748753701223223204649888406410274740293003973441888102003926290112823404291374825175646715157392138171102441797547584910715742155797546544061286176076467254604605758647131725562112795861965634629846282754040402805911607398675209041497220980223800596351283414207483192032512708512095700665524212933503993009589767973989022531216228609668919779196725858380470930502829883020717068781116172971785508006935265389469301170818170544611789095393483197284217149809986454596548785562186995301541413556904436605461669468943726937771450980523837922094027814941417006719658138293318495960979490697304818465325169133697208564333392862836779937643305012177219201208167747827860555902600282984020911715045111058312381269919100409780644628148445762897444026689595339210819330774933890066857051180331932708423955668215218256596850167039050853295187000860685980876909615646589517705565017481404801293522233061803986984546826123924063224627967957372140314894515587006553340271104312952777740061164368530744676147680537376569455020995166135119888066106634026022737305185832051196428887340759267451310059012591995239239998997281216897095458799200658710422405886883785082734413744914524967072181738143954262492391255342800318438018987958859941985931945800098435081005550101877284841279642781704293059272986920422724685835645250440258987900553666208779304262169262370942433089086607909051555454680667653606224459008318191208337185273855569782264222106408762441042226078555004675933833980955746685783467161927521997433359327291634529423231128852651986709732634693353649781119835055377030470895395797066862560534941573037445438967420468924241435396300794198818690126059538199618742772534944022331618768887980848037322128340125356113281968647068863753457173170383589427803035969537826956896014180102595227947348619293736554538369354608247416543029348353597094167213691126135571486653768305439139615894909687725077957862296954348703150826792309913253725490015352351872320730535332164769869901047854126933496798140315754846485026944901183330306771523108251101119445016956428972704747453663983485791098754867379695130467260529630071618398233842002510235685504736900941818106297876366580149697221608895096700392590511191753329686828514098790649599516877460177907563665501259587186292458556458448688162145994321651561986258133388413002637047742401769115207694691195036004209577383717528267489098304345365951893567002810114976224953671513293941176164919978761522931633013610842848985986617476250129399265501921335019713318926784527395601215953884430717853639981997490195220587746547861375852034273529690585858469021921626673978167277620876855897132818682005516659900913822669444892256197142112930161397900323448930873274326753578179968333715114124781965640334523316972794863214485281717552145978939632737990472811045881937145331061394095333325152736459172456447082980570459221283125666882343494133946705130159523287496694306308724371971082608492909333041888466507366046255551971757492785986798725270207627301681539749883002754453441126608425953335137281577254380556286430092783290658825219507106867384162177740778221650417245293979164306342046127624503956940473064404415619304231485663600292620623332735670607562146852619121577579108094183512299825406813087946647169784672419577070018019377068718750175703677920899580690594547787671375083576161409138357660475237137740188008128138763024054148078871946975913589610275835157727826297429917524007716665754513268889132797130729841336580831879163870469779686493363771776550824761566765674623855742940218864329765931205466685283260671674589895053493290886061584893734831531144877073188264220283929515547891097060220849373852398829777631162858030097504416733470225760362505062254918189838579336282451687713451579336391382096390911181593340751477131524465059300881394365805249097231193794970285868861772297796327156518929539478692332131998373435644313481261378762591347042822791584781218086696470532017548631439162953950314808722635671507242425622468357891003855885274294825307843253011836080073367802814555265314146475811335210630460792453309425164130813619041370992060947492358806750494877501937979760634970883610372923538032961023662674209650373033334594431181016709047182360175021835264711798475187763019669398613305147387606470480425798977132063798371486995120719420172376994633032154827829393826723931404103687080882375064625679865047499599725114333393629634192698885458956192086969786247565671231672675140884596387623051706005787778385147569912245868625883790672246505557807373918308482386824536902628229295454759644423604528293460558106142658096915650007198343442106135043803942204032828201271330737771080571872099588607442975360915731281589100626696793451306712557670570660776984073321368963176150548773897500999197731455784817542027635894788232798346808996633532236882733247305802601948570857204256023614030095296562898811201873967723466139989850902169713779819303735302914342354650815105439246376472676871129619692241754717068801206066263495276265082248841039309439811106036040558903909805670693544368504192410281598065255236410220540098077384420321301628497713118417510575445457471723113688823588567348740060385144386473149850900274178772109542322328541129671048424578589790811597562429720450484054897408771591973873081920160313083204084738742304834221727233203688925613502980313197143967780551184248754683916372560633262221816173957185655353130448893001798802167893998785161159923891862818275883486485322984965998733189308085815216588001711754384977577973138089124245876826147220012074428497397132127368423292064023341704929087780099693117927865895514601011355374005465480340388362866560773764466537703326383154237798341526054625910725979548465533065481607399919576848743050793874806178948130916950491685256886893140038417445626133858309575395332781281233104270262419739292685579571525010436289917769462359317953018436212751226423427894015949945119534642954118670466440608668761741557957006545175028220491582515897837643602762085914554929706118565714808941431594702657406964117034659945980084285146778663516016370831871912670767363165742712840852005981845075891512846522156804282925264015529986263625479913309324518683760437674764449378957263727905544436265725405690007677364496782218418967760692884832961988149394411348138085272150260754813996922980741382098067023047973821126072905325180618989269339787019650248829119197269995588310902883490280519922103157109743667078370140799138678226312761127336691558004398063469678400862562377667804166857438042996094297611555852149330944060661223951000121979960300254637910065720353030148186373316247869598813977388540911275750663029860266036262817330179128806923852503321345040018549828540372029574821999729602745271757966544078291432265310514012311401765492699535222302641829255999929926087822167079663340422523556629027135678201583258902635646485423159631913197195749653432649416857277817561247228723298263331280589388399527793734000557563755142876870571611104466921093513420129255165073191543051302965335698565821312638302664068844452907689054039681074073913246252797713299388742487662886570663950164723313560420519073280657370699843285464653577168042232860149990404976805665486952019040560573302040379549392088567253963168776686745120686938785521416530802369896811270933771535001139870746149714699396051013818819217916204120549367862795721053485834396360785388203661360679524062790133395393688820159860524276370253436919752797276350309175430323195508527654817383388090260850991541796201072330831150787061010357788893997870070751441809946181977009803733571677877333864235100210073519649797423066792399513849052979864593202356905483684209228657680229749092725013190829911861176976606870187741153414800337673675439542153574847472428780408098329664941738118098307280143080699945888821390281878867216246883165289718788500709277372553071041580999370614207103426086591879105953720556800581146604130135078787009219561936724348789596648596973786968881472573134793963824431363619196225725890360531731786958649985124023379853929026429497123475893709739705954662510580304900820657285579240052306750368894728701313603042310068753370308873547262144565481027829243518141454167478249651831825313183100685035385584089868432688157878547361022275804122431438458934019247330436810929662274684090619520838606621581885342159538872011726224623230777047816687688988362824859151967157588299311055210137551336526166444140356483533862363120526642258604814441960873169526666334805228207358844880190620581217569311505414738611895982038219799842356872714143300792382528292074694862724663348616981006142643846985373645468674820581796032549466857656637050614163253004779753435484003751915011188116464678535087387391952345352988846533730547603680187431368398440257099221760175008056629597513664623066260061088838967422865042219873082435016571313842045591102697740359656023808084386495406830024599954760246470783129468445366016136101967807494233461329217830512730903666241348711350532802606791660984468065228752798225577245885574759945779888184367946471396030273062918318740828704574598699533948952499642454313836300928060064477384909199665612475306697469676943732220204410968417703851983375250043247440641481030378316916362220255599778901820544613564726186231908642644674064511985122199153363249935658247617396222818887526807121376170830041775820248570915371313660082462794514209537241044535215202615404471767117928383033835253133929536509233655893699379658425954663134825588148446497241736111138043301124438673836958979355838214338153086533625072685098611128362084022662195037364392281128328690816085911827436419437835099743658001550037999659690800604278889031592641207003589692281878183118773101157057393849544818254075072348156697420130697320471025439809495340606133841228164383557898086886230300965641437699587856853511412530483287030047915338645960499075503872063677051905345224949522967961562625424476314653486412528418891203552374509745853735128608370123632166761548603207059498732318362313958254325950414701710423371389851950375159940551498621642416295250226335826658082933414357282632916344202465149291671968566343803634537088226953224479864668224794634623777730115798104476522108551607031432336996598980352613877300472973814860026601618096076306760964180908007343402281920585535344625589245999997400925539155251630040224106666348712766133816810023378020297311598915479773193687905826893291705824360523500189674606459117045437290545854190238352211081511543093336799087549448413219923999364097296372496261635721108939153123372937042001436332615309578042692669389616681529037163774842682703512402567997868886952451804938698601082760400127313333208363872920681337595635041764107578612616142488478341632372427527719758968628277391711622756677364709527539313930709390549677157675865286681111570264038184065770528589987709508727783911577312435133827890888468065362916825013678473696858344266788067869196617504337816502243142316125889036423710213497348612509110776219552390873456526411399548476683845258163649210617038511310370516150395893209166575922845155768717230615376731162074744637684806853679707440826365774705600798848900384149177854060447243245999407672222944064057876840760957586470186449297669942929908688873262048006399053200130430625414640412800799414674929057666108340002252199908740667725139688959932122660908227364613334357234357716871593352706464699765963604413903011127900078701181468588978561525487744726014341420405005509258648767286833607294326954308007675571910925222915188975363416348305311655202653626053480289996593697311247119734172675520768557902293783150863276637126164472058771971978765262910829036926072189937890060396889017975350989238868432553628850111783365531539018187711987490936084871537208899312707330849811759184053364624583498595910705253796812493481768157719751168831956170448108094062924597703479681200950813612546735683621541054784319837660092113121714021177790336461832573523166227726994586564927761359111687850844904434245064615467298914593214941027834189907458740079773393617836714617503243748361047309867200167268922752235178842274804563750265629700709510117592042209535147182080472856046280953570463702052305331549170474150641443298176459678610540864953421687237423449612619720166227829131519157547483718426747865072928408133226438899782888884085442536260086435840178974678079225605651821731684921276775860771622371089307678637287321761796196513757504450358654571583211151483175557586296799368162641077645102854455045624756482746703997809470577161527818617318390673844013541144439523930240621367746701235594472683066248060735027629626027632527202183329422936684552097049546767080041018911019912231872201665895184332165650430806017819142175959618618714158730125237180499737259653241654513977654481364864690499390759823021415486217114859369064038594623600649966804296978982845239565417196831840940698995112704393822711817475154221924522220354427237328431097363004864675854969592681920089081022953618118549096556412231388609743525085432262480834302119063978341389066061969446970807447420584699088724049979261975698507477899412861847561463803976643094114137338306369225678645875801327658382592453787760983018083417015017335716413995977146463881403261069849362294300814096285401080697745547197717869775541361570260963321500171580843994262511126528547892705806881799221487506589249860330193649531184556182795447320989680231295403743551266403812724462390538575867843275333861173993833124649224443799086156108200047941665059089067600133103689199087178807581678677252208363897237251324551067020689513567366002580386067969927572306736985384655775939808744633249240592240568699232401587278606596855714034116731786601278422506745048857363527400424680981604857174957048791733189570707344966176655215503794984593688271606035860053286542581969206177507449630281965534597552622345504721442982348154112780215708179437673404904911786592848500753936129317392219916355174091560537881279339475214962484401726991710351861852828621936704475321800656719271827615553049423859708476743102007029777487229865640525189239573649807506780975943438872815108462425566850970047002959895879415199360572450549940821905582149623486026389408781378639327063915206613598953269590401730123163262930132168082231382962771025411277758297582342155933875575744986377251910957373762454899371628190065861235156907983367981027243181467559065072199546775626007107268954553733208503134862353574359362797443683527337498892328486012452366702652002649939139970240590856469644089514374327643753252122690232364449040661139550092030185703580119114277544364743721178548578652923151699012118841663111922057357995331312514900511608807977009023182241162624463503282118175283940572823536190429060571403014438443519959694816961954845101149438951117321169512487567983808772443573082904551764576267474916873783486345712057872403958560053223521695932491978682365718870857299706374257549425687660787706064553894034579799110935681295683667836873629437694196732330650494567958840957325550156928880365677274624602848872324794998886014901853723155143098859704159413713614068106626252179995181556742292605925859432023631657652079207065641112799912900512762439775161148284457801263759274266103815316467208336647683943733709104466077240542096674459372623465149027951176876161901403113414279853919134427250483728839474546208499589834195031300060986394072767423515629402185552553645553906344698681547933564896388334577221056516560062925725540160181555213092821961123708346312741976424665128228450698876551658050692101092373187999591064880630636582482466476087626065151750303398864302962501759249353076844169173520036613299235333361168362567138367018665306685550644430906054522730545643852336728517643669688316277036838266297039943386868118259260304424898797962809166057633391028077164634836394962171474371729384469974217040778441296878226320790682036892972316578937884153454356376411514750521282769776819548533897196583109025925065251096232786006327712778907708070259026293153948045307134453843977799287638944490453958019717145052543023712276235228069873158960292690465655488929696047447633688005966325091822462039398205933671068913524325279401438968215580219929491794351520674371875534461354643123869043738246900065069143870510951182714664790021707420194442738430465760625974302855372237613804977285919474280759996158799843882329547703756684019483148524096123952077426388724431320881675591841201076631168716728467504926905201354237780019810823251389556020184232200923939132905521299815259497331076991241801584746246804348682054664731194333012560990469414240840465105860591680519203087641334816299226703169031326681443742352761538590541081623836637973508225817009696316641547667429661519174911189339631564407555676655037967532035280857419132723994856329737601998192689055964010049317534160383422023791818384219616986341528296297525334389026100323842189791258618138173304430460050380920568724752574207518523647682111331569428403653566658132446992831334190460148332883185875905856149062381860991558832593362114004277428824340127880576309091667463403045724100340802002397760866961581620916079972030817656887048993879919467498628866341148836400036991003483284870182820773984249950592238358494346478663221731534937043878188018108712933298794677245497834994251389967354435370906718993213601221502227856247279251522600668049568874481929667302616748860916629942160457582449838833009484435811882681002308706320394752419397557893281543376108153417540934276427110819981549969837433379785420327574383981481373830584756102964401112429603356746041987823770941040973570638411898111364683285606590255503393951239455611310381824193560843462348408438346613138976414749401034237200069247306567971181524695754642792737185488585986881800384983094694747522779799058766573071406502054935082344407126416842364871198827612915854486374330157976625561947135389946231256699805867258795793113912126661003910854696351467199515019412837186888997732783410602161389304896609915734986984461740343427764195099469919703970900954891825727716040740344469538975107903092460757764326532721256472310498321142192481952826304683877089261646019817587957245098337206964732784052460630203021609113190079279368537794644320483258788623085107493548598213906123826465346047776649306599454067934516251111214180260149886908704205615336433589284325946283951560013815674803874695235397105973149510675986610341450527780723357307624642055330710886653227367951465350679224230276129281058493951923405153867915861074378613168279300007275007254384869761208624936766081628449392642700307026660812167358824977739125789332025769872335946224627745183285908803315269909074611670135518476744754060354026487455526709815012859015594374195149926719232600748455259712382047121643995375855272928005620216763239049203117541738854575530220359964991725476422791471516229680282175806742838450913731563119602982711879085588723919375127063032834799269903668445065685029468687477485328027337498447453991759441486902995888527366177502314166838716043143850755753584775140401826120566880989293873521104589607941022996843711978206158541145526322054355255252560794917301989985183388251283352577542644568631443747526409320600437683334671515355084302052295432906393275246232415875858551780696860783577200977321123991356138878737414354538292123900139030747526617356874985835204434542855364153261310343554069894476790902166214172044002659282722905205203239193084118780757418570968940238377510167340015590328882755204382513416143206517250534197663323311863075869663372254140074909561159312674163493364824676345808957363395899293759805222657989155688327569905159516935524209323209233522193181693513432805206817147511299518683538492503001900657442363259075205344347781817721028696825260470574081869796741823562608770775201268120113723607097443520740474515233723527923235696498799740915318603695462014448566699634424600589901935666323840751342269409019912622290320826917571625123014508248292775390118567060141357751350971522103062793534776574846401813731643479516772785559984924882921985666847035985858365101955188095920492025425478235244726632643717245905596599068279606123689575533745382166682406954193939018449403943779911022977673726777635485361849412646873373738326581333120749764184044408313930970317897757320119323270494500161115737316705910640967657730520660377889929426725976096603475988072512914199363884321050366239903249922355732647271958685102764727210428592569523500730132216391351478808796411698091707454425954445652101958661125460115177728420831916339775838813910287686009280771858196383358849874727054277384224097653729066805994311518553323778914140646572097496891574464198784461245332378864243616686237204624842986483368096620030636358639190107951154059994271008812127603390935208091379655698597030010415702098697201633297219235211198345580932798523836940976493396915565464484796543802776818615573496539176285725108126821879398476865034523310969385641160105804995867242232435244594404677742225802522211253809433634376099842796819352268642268757909550275658436658191358226071866381625521352436756896798821547941500203078401134118645285307886977595218129772566648301559868712767005305865339688188550168462325492329594865291635873481787731790022264039399679997649429847286603222646890030051974359814777409982089655583040858611420058874586947132686907070278536304221949389055903104906098702091568595379791902932210662845746394071321051688336197221096580234264877647749494368946273554225154147382664429025849214005063467966961041787345750372058016620127739547008917060490645779332864011935232216044434492827166614282197281716500668708006539312376262071405887463840479061999203900407003600350891862426446010107541667729680905791011522364637067771948021703114922526090398034142158097201382712387530398423528994134078933829865645569740366689613957341017712607091606156782513199429320968411632356738804245095938299774350918338657899721727505595261900055688521137564565116785059253148761844311843811937390601841388507488143922259784485701562489114260943268625962448998782259369803331202315458057035193497099900442858229555405757997452795715262766379649993118434110690030508184418653507364786691356835671064921063150444893837368449804505258785070840334774562039948390491422837904362170532275343602843975016424317427872717812659358386285299474014111217439523022219629505850036027985402420158066541118741837322890790119868163510352907520728427244357414065091973724108322391193688040023714026576329884202653073594705154413330806180568888006963112500594220617984426304644386283827795179665587081818293505027983354932192530643881092598069807090438156507300799484527747346927911940736696549176534965426678703685938954843313224619993980344532666488433715371271713339636690552496920839313332319429364825411922076472329507985243002181562242799996165310194760742417524771627841998763800954617617992492860540110557482638029692064952651945105476048423201216482207191541096880254320731508424938808707458354928155924415755409638330007709556751406929547555426794311928797825791004557982679901212998545801760683856877601302987923373453343327850870801375829679418363383847390518912402024556414767496985684550301419289839720033787859719993946899023236903266949719078487370707649137847909960617643939870619716326944163828848561501149042198497923220878509108436939137246668367892060889030058101419366992796036156601109872733998533756992931848964188407324091473275161056123308431879046279302147749267092003345112189217537598016925305597122518611272475801650543939342222176665748810301869122033417687642507864403107317582122246574363390238697836417675234528963096962888462111770223422304401029580393986657862141934067724202336427705976030178330856221033102631057563442100016613491193621227636286319094759337451274860882633816530641428638571155912135616119764778608454365071786415234686630320354589686688349142109058101690444072705880726978693102694604850910287164411369533438395902296082029484672952804583633976646379103766459730615132651749454896026476621876052555814298017219918318026830103249687260166044911610298952784324253240261493156243186785803769193122881753539618759017367497798039855026797348031150529446944572879723742888593330792531013290009780765977866045133277594138152563318159773662727705899139977534142046194210452192090396673342639325644119891191755724681917985398844167884619739321827744282156059723243958999869635679116230274940875107157437682319151542094750246647009971616429750907187698944217731306863649508627902104062530345192316128165456818370754704846241824688340959600671903137509873632816667171723098035689611537901585096582844836066559235686228476881857273378933863773668386560264021679675037559072961343887221300298955479151773658974621060544792095662761970594656392038082623721071186954666742399443143784708806376399100400020427834416398325641784772097295054121640003501702409027857204678169672645202456339358851400650833893326955352534751354222067408436431818048866760976469741541728062564011849274431888467447844036375769399201547007957480805983437890274970774334126467491799679668789421866028346141458319982601040811057146868699547702608025136353414946158768404050832011023607751573025918312894926707980649245243950506154603780741743540138907860328748458700499460577353029752624291947234333009851895617823183260130543893303182121378916555379237312517103098252903410097314081428130307533135367917517773033113452837565130718860647633233355500799049798961902375682108693885959966110806712236250021537547833079320211907190672121654552058318358988283285500509944275237636995462504041461823056055889558207433732084216090999906478755375896961367650365874899799482774109625427119747131343897148975480088665862937914820826036749016465084871095648304080516405235384151114259882989303489809158665890286796851028651435245201184545204958882443839285000619510960836020964641848623096706088306512510845523402662905559193899655612452639856364442019094131147544792321317361925860164282014510878326913507781461160228417815642511833464084802574691836285190817429050108652582226154759305353404508775788495708891683094729415075179918519280028927277404298468493583345879344851604771902652030955461265520723979162610324789674677146690277085441148308537257758293702597621093474599204327044279423414163326294233039152112327322510908684451721127551100851052587559557439816792313424102109499243383457726007958111050634195824745168847138465745319911715887464670709721062500136787869933053076457999626800645496829799629051100517018833101752292944354715800212065171471926110711822516773985016731335574636716154316009776963000798595754794313773096570350842003023041027046120446314157087172945083017332229095879001544627167155421458403968303772060525458050211589053745359055596538734412778855432980691851170066443541902323140150110781712551983038571000982718115432948662610261833173807547702800531525363075326147404433430932170035540005187420807742334185104496387133592648170404466108382181169046589228417882411509830402137075415888005302992282293175541127431906410219016123867682242582619847722852113452328867861961678424664213223577098002855975443179354721381393772888082435817046949087990585065438905061204096977310100033296111299983018843136238969389331336338358106997844559208946438321933023318253185738698176293692733257069683665826498379886969078168466582263272981724282760781906720008973749078485830727170001705187051536907175760997329846834828350795290820186010690620589579287357413957430945856396901268207895821115238127817451738149341598783661841345606440428597232566863043421852337050547167892068456032146314946511155545178891704427555012611125189522448051470424885215650160398480634123108139508418767771172280361608961112323139856887910055748441574584267932664434893001470691631188971812695992603539615266229338407881234242682660676735936979240838087931573945891293584093901760513122563058195608870588045706390298500059835491756968934555138987193971379772508044010372433700607944843507363969556007378350692147285160783907147250304038292884824845538980548789758134164302898194410372234145394480389274042870801436457072762879746253530545131121439155749958387872613665692761694490280131553281152882703482163938923076864019237416749982196706416915248045800973248119565810055522447086097494177940337195447822136803650426149925713340588802955007929529316327710331697001787090896159789865337246571553605535553696349997086621077523745042492516432159808258227309478873716087438861012565781255843726340544582680522596187468599250344391352873686657574686072348250288946170679894538140921120130067779353704380776371717606198523952230103832009646567443801627227966039666825172125516063688474027374864980654036269682718502501347808595033353761558605960512379357570556517591018467817705653455887372318881329037056361152490716767229068836974872481736849865890123003016183896206495765157097414535355075790033465966052551356969936752988569457768807396994398719812875252316200786210365277161612880382080176308829362790556214476460991816044436722414421404491299158975912503774357825610900523055435880972049860093865226297946373831473362936895617863512537912783122087376367864798579698951797699201271498410685739713846360301928777138167284337292308052364008551539039740304287446154558132762191430523899726039302951709242701125707369200392707434019881687295802585843755657308045773436313686880025370796089668471758945425461151960411070703002445679479193252799402998709609116912743082155362087105661957989529015231371116530277565804103067457650281339859096554907907044271511107725817240537797903336284525409150340244924051230094401963257350386531634119368267324898405657766733099257103453689805916551125025288493023753311708595148959273807674901275820074388495485138159832952853788614119858643622463535516363254679024921784339476338271878327993922819973203281479965718169239983411326287922436353499722440787315171010571145224486281817572065898535257656561912528579733300211709764366795978415601640050449305172725213860082026786275556034161690678342934148421795605093775371151277871900042136401785845558479217782659003809503906386211424633289612131626988590489127393514263661551037491458772086809941113756013358704004298606577034648900277216919788908160853531052119620321344535714606314097528272711972942985378948868029284656493760767604887879975938935873875974767614299060479322380381854087843081603455840829488903635941950819134845509764850952244165572653477895052085825891936492633091730822549736868844870995054482700455364680693625124082616033868427611061825626317008177783942237810652479090744546512464726971929309660993181042817098826487205260550569328429466278207314110690367839023564525852433256619954098667621123233347748096578458189022906121587196793332760741236603745753550667765243938296016258443749586661255126535362817506155568546171496913969244496917999571179218066566176762218571777078087907310136085067515975985985098280054523786398775233634634140218508863233947174428963933789265300122862611416221392418069211024872866090836334266438563133556829999493031161166601978781398036779100740242384749860832874527705570336912529439585077133736410754672574835560144197512443007565570774002858715022820167802634277801410281719688546521718087868879920837137900824741625019807487655989222755776221327454562875541513077987088447561437796766517820645687726323515902545063495459030745463881111285980958403422043572994252681253401327404166060060702209079718586730966850240974763364983141015173914213731879008713235544864628998526644643278082688381045642650571676278903227209485437287072253310071718733445505355039779692360395567359223208537186737842179115939050857002174332357830422500522499359447142615294438584370485280032555857652589871421433010691803079279790810217816016668661269879998412455495208100983601065561931616791575162569658717169774774656709324349789391973975392096285816049315709571134671127531293092928911751184234421461927838516267264200821762330438773138099478043394021655625480386005643340513300752749498893915334971868937757820411066060320287933441852698497289709365937370106150929212854325877040421994631844653343887407334411345868777913320882427757912542892053628645440669960184543678318178418116524746411750858789991834366916388672052834071666784561160776827322723208255348749566785179630446923272161110789861128273861008495102956172069301385492769275930030637891230324110025122811416720910897563148814237486986391678940385900311179921113072357169365372493953062162906869462817996084633083809581100409116241284424373868367973606482003144849534873825184352655527461760971680999283073189740885701254897747170147709048149670629667282616928383247997489981258524196797412216912119014584241812880715115584047930052253819312848607524382978875561363329557667655036752423505676639815983795385941609679178578742109458137271447772337471286990288741720699642307320138934126571684005000999074249386987095407816569795931438300215158828756363552461651445794755536286977744230857106257010042759847436424237451203484456550863446871733582118861894978449597482536537103149732190544867436581850238881700700483596419016381355138658699536183393645664524581178953806393683475308071358275353319288675010299032270459899384582125667553490593620613817403383163760163524485646338283803569465770268036470690830085069667307411991464836552922334184630856515591357927552822398163916413999072103591493235565541644544726647792790225074077438637067564044106393102969910595884283194679524220071887106369282182488313371172828457935508832949680137905867118688285177233125235087598176145640575691031912191678786706178498158538329168600381702203214768827029461058543394770726442844715968230677980423599068851957813163274196505946368656901338136587121472327136680828098107511744904514460019666486849830326932131602373007371896015061861599001596568157202729735667060883663609851644752933461333566593827165932225878260055122247843500788665266454679302048505346641795250888856016172088076156133972842613998582688599120315505848739345257526094682005744406270032734980436899599471546861437428169371543087544753536514459043230906609924934816629534106837990420248621674928587038060457831046763414332213309080464516270035655519811000449857296497105407413507428414214116135529979097247273236177332666798516984260190478981394531161273053496893261226870759419100104848261061322315339433457222091180087487604872926213171127360607983255705282981072169370909857332021959164916612094893637151222185970926140478669175763957312821145124727370058059348228860677136691759820592569144984023800470519171720376639167373554054946781112541560496955425714261668953188861889111756410762654633234175179141368215240458206089403788929378741418943444134877264607800516033774510734493682973260590787351274025848468786716675392534912141273859956920531092680228181820349377812580210484703084465189919503702409081918997740470971838910830123672367463669367642763236425279273514715456789987012337280812850413686699058952036437386592201091996650291459667225926497971744624515186012353349459671966054292007951376570277709767231565606408823596492517138837662446837369739230977894489428454748311877520358669986898483612509704085413337424214797114958610418018875081973952630912183726790531569656898202120574450388666029384699218248561110631975283478952905654453042909906415239107006945283046682734556079643841463339806152346266520747402095343368250314940859759026606841294941666614165290499779173506060820752657973828995929221321291116762354672821368104170262336026497824142851210677897049157662841436545117397389651849910306995228596807765478273747553070832521273177844769628905154146992621442617296634941838423382682696110113020135924979589447386450901261940709911500981561647729653945287933177462996883976943384274973864922873522907154266843327323559645687008173449589562631027139126879778787626827662221198584809543986321254214323077012742046890727837626838706506855341975443913856343628644604229745242347284294302394893788552063487714129019897767047153265464084110718580973464904586488570470410917840861292228756435270852549843421541854909973473066769900498293192952480003548810350753081071470396629609000603337377489925049046591307488068253115968342984269946817578672620492907906573016430759594771882041391960696007526296346676934449781387513388751390176116907906060754262604561399804735377796569611886971304784755512286295904573758210786059735204768631545598146658141260087781783976535400486007197042188203171806370053637247320199323050221271291457631269678256598018624952161519616846019627241929275665138898680264717319408102162045635132775058715004722778611122271997639865024138611389751423769084011777410809476935425826681522814824077688692596907896821528470414559521323719539156564747989561650747621619721249308898570732143031744332463210479905821307875657340950458933269859548438749985473157910626759775588345833315544892930535753581558430048315563580016506086696594188414150130627683182957516660147253181729019368125709912707205906640349091796618651083083764486427324137279972230074105296398548157929632929255259333493955456665836411821378162724040165526971362620892394295038031337122557115086290132344084632858826676995492827362788472938112429597943597976574510668984548718168618776749206832283288274681295418699596425783078754388946649266252785573402091767892323057348074141611667199570640433625295630305140032962776375242523648196098033166530683374762719332684186887580837858285274495391337523206342501682193829924024586310200565612566453089258490895554552740570069552037240624892958427301879052521205456899539706334700091312966704918789677686012110107759845056016075549916814304047205469300374146935768387165792536186725482519991465641435438721395686471833400870900619650217451906961732762305440794308091388577435455083452006216411616530242185447176801757729645695066249078694190813024476645556913843282091769174988802525994933668310258416588524792515595233011465258197476368339540775681727549435106337850370923949530497840945515972602273143063469333566472564207504764571930892136846721162777697581029941033669445716409845811013288096281987525654628866501103210219310525441884920480787875245528740984674240266471252585589720230410450043253492211328714880799096981031709130699137950321627192464940198172888847750853242336126153020086843468467219231857647584283740077848292928863254046478692260568282650552526430020579765884343797734980837861092347840148838730589528927294649433829000829717178117659966667535203210555132607140547227997719016914352653878365991776822020811456996605870469722411772208118591487712261371931058117524252707212239895348436865525258863373799535082932465660045974306421499442746806187297392949544358483619224486465241512283353411748194688128823612686428527795039395435192175253394701786431328807190081421540907381763942763203879550908189288694610668867921396906357870731556303014436835772924442006151118066654974830534719357900537901111196522455110195747394035154305245225365829106811027326761056471565788988788283318355551906974462140213048204299559017208610516870829740165078704772936858982580300839720723106208093953949113590975490264912140122356418026397343900313680568376663661824931122793467372642227807125737009201812041724637353333427083750185624276379640097538773665304069097369948914894566170493311892841973418728855685755831527453685919524024555569270859846439005175005378527540560252485920728690122279422683004027063724660139856034353271287993523162319809045443946941200878523176683249449864965561660030335518346431020981551275491320659338390240119957335470929357971478406005414647523089317482106069833125472725720410549472674804443240032609018095363305357874068069782793095858380674936712366625547474165382914121563639168529304773379106872631004660582830878354530996808773025693999944437392339761350670342345668946982613840011524969820397574545474914678164832890293255193667507266786321619229561871449443091511204513133520786155835158044068958630739675500981969347480565062298928054919881510003021555715001814355748675325469135288476885447682975949698549249082626649081074510270955826973202445700024013440968595008952100483168147490254640839188926259138359001000636942287132272794601017810075426033438046438477884874781882401474116885869294984396994626187455507977149422916547812158479273844324205818407509273327092396897447835084545082964014359733806651223920984815998758792806941508098806397811504758958512355806444280969497384577698514307204202720139668393829717101293520933323366776622000062058033463792498152184231633902478371094724525321206370905115850288769606636852184473221765298099137224877485471829575879968181531934579464500288688632871599232974317896180163199888879729628312158054947211171366659901553383739313007393281227096960309793626048232814720262612492875831960043714846441186850571120938872304268961464543348235338412870661743804699641822468605664805793767989889071514357002089291965995525634242434802125132336605820669873612161923531719075942967950457912762264880226474430366769372218035688981301615556447824455520180015276453863949052598586534851671702535675340377808421006899165996505997127951932109612328417804897850573873986674239677797046099069098713186946164025911246004023000704419280047588191133728394366600716869428815669351499165328050214547718123314738646526937946686214282102194085751694172008109419573360769008165396913464675006860897028653323641110536169339131222742231562509465878207470361039058389035501005179225366686715340059984153113869177025151777191021610559474805365959320031163467910728672009194981512989233931696133813472778340608431157229153623396065557977774252547071037471799015696331081945901056520938844285081088651755205658134174506280441317963905425518417235759792306650541521694484565508997648391997097149672839577225671691252745703470384266435439560389775486283116829305964625001389734232660619517886828441911502863216386357512495600135827965004049250256514127067106661371963655675870602998262102636193643555984454915324833196553800196644815663315080565121020702685594163512487621250145250131246799783627621421843716158076658310648001174859377876880653322072352788626855922762110584276279675695074495112020374363597326958352757615173786185685632129069478204406718545107199360537902832304603612252378968065493060850942783598894046585884630341401110127551289467766436305066776690940395608154054448525552694214093200956590196862718247537949631923200359403016547826605052202558200217898224843062634462480053875368620613085294728191552025113391570168346317551818321815090697631675647369048451613852908180143703669671840469392917260904660199589454046661685173366251038608818486695638274449867275718659131254606212246147082691744035811537491527908918226257244871003934294391667882054164432124517509955943808732787699180842208757018249114133707254573832866953658772178624040689161677625598973776418811884036349492960671946907675484675589457267108559403737109777144317144347697235367891974890675330560670361278633368651354807303456637515407316734605086371907478302553541236951080487262040946087835724179429566746853576700534818750667511175433226026604911888051748333422884053235366884747258332554970454655099408601547038926918294741133564509954922617456019987567291060711433478312009501843004428018329494173525366949695001751738516948356034925416776138057568199339484981915452885433495010437218411004548834478416725211089003639599985231567614424326537290903863911864099264773122250221813227714807033803922679588117860277518022186830597731066309197058201215661753289551349016471189688083902832486124536929810531687419374072482266615578611143859477652221558068908882560446493783083611311730731633534051385350955594490373942803676690597098987852660927065267188016964733085190341870681717211881515577727127894710956572448174205710544293846908997042200401645080653845703688392906308439950615363359304008725216579968598837201876357669282379588236178490208172683022368951162376309529891449331159934462842381545606850376056088111361539752309581646233975122927804755690118054524985077961092285030120252333966418770317108633381629436743902023382277817338020683468960687326188013810744510329477186069224486110090490241996419557073063404723345042687539251886586728580147708580425177060338240201920909654445701374107094890274942499142229104644830951830905794821133671794352586125573188482177579143393333559317812210669955969775576013377382733074188969422587513147253186401276375845861118293595331404605477252651886744141248462995840575875753823542344943303645116195562810018215501186803756075347087318235891114056291249843440185797643873035940997544006278898576485225416111287385969044481756383170013168011581663862837774919344371580645851988044046702444599326248996199768341334900033944083812662206237873461976045232433297971105650817293199452898512802581301049354957355811622629060021067415737674160052740132622784072184800753952547995351590331835819589452423838390937632938277573610665698785636233395529198119712738035631486676880507837643826703618036217423540192479451474528738462478500359665764413841835415258526706628582792934008116701653169045785685339656148516406831041540335442798555623009770358332750218312573296341673713710311030354355761349451195097018300809066303589479379774497803417014877485554397268839604897178147923858894580903592097374346734928910018188234729426372140320000231383291236570387308094287694606130157427109243222110948928472925245621071219926565441580370136870017727938607672162285962107311317610027198997674302211096789747311695841183940376497999636329922901854848561917280298052700400748842791478409839372263606983905103433270185454534801037328803656602477260802154586602018787384033882300901799069513642146107856171795493829418658169922969332594097211589745475669175372977147607633526453240991211110703006146563191496262021124237132760810311672801740673182889202315740260256610538541870826923672787460942581343834265377734175143246608829573588115724635876151869844538465866674829090686692254514151224092421962774153889846621664150548861800857375942095933272850306397283404764079213615926482518369986121069330658481225101720672998628407322137447042742028571196599764431952973384564548276409186952743835305866716144834473424468088109630645703651288118732423481298244375348123865174183107457426129845283011355283297037816626591693553464665374620457193614321297275291769508274915299883347352685311588093981326715188552504606613670696597194864490327007243493008603092795355104996267279598742068426076495017626863298642479754602153055743687312588184672218513205740411031324527482724388300741986696453844604209254502528358292552097287474406691307168368580010611156532012179931748182188372103080579058201540459092093081619660555499941989892738459789113241953904588581788576520347353100863081911369178092941210790867727030387591055794641853983949589676035004571928849654738929853653582670731151773653195580181751025945963637281226079427929734423166239325885646817801022743355916247652690784557241189232495722186516323910105458510573884628507149543497966160256752678748149455631805048916159789777572096090746718283706355757456094751050098845907068093371926909298614384052149398109208151720216509934634701298750439107946853264715446563719389275537643646708854945775505367192764493452745761276477344556213136992933879064785730047288738523052725564242175150817182160787591781038872194025967796315338354179530884374994570146524045153467583742124664529416114863046378213100906945676295617839602347902326532372480602980363608988295202816411709950069922163607358472932870158527976092440952400253416926694742453182534508238210062458680624676383622737853787665647930543643995947343382357118237561007700340865715166408416012306995294551595167030883180639169739626335302943928535126311865540175033284428491232752083413522030600747233791346515204214949652169210021341638678574313379245955244699016505589326461593456898003247847942575140419221124635054425331575049610245854261613578464244159504856554712382417511341702974035136569622415885006357075862068048984724367618526151648024052905591762248964664837198047205147838495624358900078212965923631748037441578390712332717690597795796300011953876130276908331119090040620161357351960334574868160016947348757181680993476964373092745549528509153012818725971736200718035187345115177907822683988999181770988018266427039876141315287080638317117398005042091605533309089575995587311614033093121933009893595922120519601937948794905407926058950515246580929993012633766051955486727436992077998648061983414657403861214614465929475570032439544147923078084289653018780219839563424125894188925081925251373637709813202288738926050595348040553671614327926713955763610758326743575075029959317280329402288526632266710193914573896467568671208105407514949897833335500087256062640496038827518656316307051054710729808316476924584156937571456918962767454157213852584173216505028826899516561993299639612952501558453770778725228861927749356172375343670505422873080761065526635355497094088325297152002492454362269877230281992573669881585030799049938386196003357387101555062438375914712519537021160681223312078572277902282388832454605047873955014464328536872688851070752129265847195075457240332793197332742084375006834629083969919523994776420545210664325733888807946814829008122076590361286987179822784520060285739625282465370540112222817869242973915166498812721575313299447066635841744716744486024919493294628657815975277046763414992517027487164522004291105193232438887620249781514246800251230919170205097370060825027167655244203564050502328985833571085688389543690697659142942857981307812913435937375322773119333819243235282089901393952837205759379907984778886591784095277260960545150339837125872516026077446326911955849110755094821965327163536218336242374435670870017383170202789067605921650421337760452050477244793215492397357413879287487546583375946059020320929725963664416168522029650855836790631558813603497381527467630841460896252414610532025601227634841467726186375882160603240099742314252729953541898128344269226786486239643141689776481749627540150122779810099275439295798577547960878126893290382723278866352608242231051354983509004972238569288047094801464724258721572658167720870090206238582791478093998493841388823639251958056557288723449563127456021375731858296145878557401135884509450151328532823668781768056154182099488332135942466929196859551368820940935433901637925183895155743871825599986118775443195415587073340429687008066098882626571546480720135744900099028405440961035907743312122107111449487254898734672581683870814068724478607701314965656615740097978138880026669865587816415071144477173654793823731215145568620841441618069079896237654700408603731941334831381407073537013693842134056978840811624476964466636127417172470174966516045589361440321018681194450483695687073376913654283214161129833197852742358624883781735157438852083885334496790451581159463899591447600601740241507403106423795922897699307126066159869977979445110393886464470037666057727986420610614155174731368557732691964754847475560419797826354614257412754942655819789739067386522014331739247250392617962301400374693074995429683485298161704619827697488356489896220754876894041664184311810998478487575396069738009101078837169308020207487592506990650692724476498896607760057842550042120882413058787802271360397285436414553297275225274928384146240216927666674509292160672163076506791979336730681732111405049463096132655556806623801758095464381912771190318346288836582809280530898424549417916183374242929830792201601645260843373974095191798900181390260937570255603333665729781998974882648350038667217729696423612871732030397421770636403914020406179687457373563470114826117302493384719346229762331805311094687547125998579590489679499013737698049728595777464673460288122455513868172842815962547586519310142800685172481024666549132367088648804589784989676937837405415025520575977582949176085158928265489275299832718816469009730454050713582466528379497469587806188603164224179882246345525281915239487663405177706048822872554739766152649224694463648474713315211172110113590771421962150817806016625980378347412647180725269266509858634123353009757796778290670480917806656631830434044983444925346671036559816078594268992952830796794573881276642958401158781548907876211313231473410320340989293470097117253968831174634474625273504097535402531094574432343889435454115463920613394985182342525932684128528167779205583503516277467040429103650093354828263732195256999594198188021409635120320065098516140970149359164235312092765059629316398021978113309623848385466007868063123424011860668286889278099495099238147481637665020643280854476367144602217762502246065589793465314276559521209281788478818134857874240033900318281237610356985000003810142247280805914544289746756418997533638185255600344660896147746366932215622399370239830880479736061895912277649074768457400052526125826192315989169862797364677731935190305233145986610592427160196469993420712884162927821063070736439916140521836979819305356732758076605466799521352244726979869170717712597793939636150564331618903551188152144589580898095974608386410972224243719842580678257672316031524336928454305075861297548078569787661270493648615868490902272938583823116066341177895863358048840513948297229448554303172794616730813538944798611311036198187274553677351224015062936107122332345039845902528055554318206148068646311890502845066403782815133725905396916340680430468337854999604493013495657643603222155010371077650330824311003107493954996279187344987727052129063747586222554550686889889845203061455914536815940514480969608955524356883495715376755478962832025207228040152417353051485124969254803367589813946082716330858328656438354285051533963368496583107078206977670352124488369977111055432569310767071937496285570433235445926132610510291208564010613821220094390087410577103059489660429261774984166098810519964415132344758628660719542734991995194417644545538221491808019238225755130304281365058000259369279304758169403410071304815424187732605959099883361008118443084366483920076819440497633188050003699665683792986044858219575231452236607581920450638715459088872609160049398128510379686551096028014848561748352911351739339171681653861370019977761535146739450735430390408359402396664681278120505798215027827189665860421821020290017346254073081204979626195473201563214008114407265801687758222708248069235232218312866248270984602662983409037493349210779481097623962897784709147524251444661089366876735964336711976253648367540279787218264885404082720867776812293028758283623134743849973159341351350278868509359027014418029594127498663470821429477997432521395039884160563352805413781903918941613372319210579590356645335206943900150604546578245383833009020578557595853158976819863591723150847850954809984111039448861946848279983677443872502530553203884688676008618319730607571797699581368225486230718218889563074757781797644148530923214349117792713003341394910043796712168331624770880529650269622180438009377951457385134496380817924441724192093395897849185549069591373300163353071252936409974839809386724930301534794837368936294717956562643346078205751264897086688576176068176209452476411210941759100180871562501690525749855081453732616931217579369901950576456293476116601010991828385959998554313143249272494795805869678782982739120714771627439896788241315749078096522947531215802772789065195479742547206577698165374870717946843277231132936843090172722002091798916321729921340596778192093175979663397438278539062684036785270287437768090624914304747645410938436021667860540942466448945475914311735439332126772423852871943664634667781500965894277372099737900506697659004401256565948430680837454577273170184553712324618716118855676114806676734368265051382324697583319792344585026888980925776589564689979795813171110759067289200489082356295877243468992762261167888021294320799650600987778482323176929747214198196461305151515651137516536189989340506822082142431962355942578618004033463710770584829670786887360801240685456642486057110031476039120681505087466703432477150844519957978910599014796913896357829432249870001335774797188384226666960361186817234933834514229611555315068536702474451138971391245549944105075213284004960339955837859615461773943712303579137685637776765236807514043452709569194445654605426923857205836868898990235531911861582053968445372522348212084963402798398930668456594055849266420688925811523315279261175126193895773889861030580499378637714533817222170382378463236441353966934899141700527214531301131411434780964929124456193942225401794219096527107238821757143665994135970073227651613068177582529404521835213474156642431100023213623397557407469580674598930863382813230724712865829372509805781036084469296532406803665891025290629352228345019701266686063902590748196016723854002952603849368916021347157814387214324336588489974005810494973431014713734109425926424987457563438359497880418172581409406535156321954629959632582215543327773992688444661940558493637391662605292427027784630625817393112776957805787599369997369838379743162666141358352059276249493422605218494910702400358202921375838613738818339704385838055553731034729994027784579817610026303401856607308346706795274372398784415396548873126977997228603707840180876688833979441212397255795506175229173126093816519315679190088613509971961465814898677010346313423817366790874829837214664042803500727355708351006965213910355436820109529809197883173155550772007282605355281224776516792454833735770611902178666433471264187221565753748486807583529182586372451043135987250664034058990974490019900836355336019873641933205482979101311830482626712074846301128580508270989269317344202241845731932110502930750037793156408586111675009676387868619119849997877970379000217149691599309197706377022046699809667990993402945669620294207684840729164543161053511003250773951240502229737982763690998018093688986442973168851420340790717747941027168953524179691466591512096954403582736661835560096402032763361794881339459156391030153339597736586222844613359973989927108538476540639764952800389846108613513880751197099256805466785046066828796265331828718473345098127381549184204545594983806546987937863717081760996101316263199818872365463709834014691612452984825676834419599592665503314615628599615768977121532632081305358060004619395555614843193892843584066366702623505656864092695983845360284621558758179515599591080631041636573617703146957349138000482995354556172813818375162830909748217528483820882373403605656627972567989096997608003082352472957741445201129115784232728717321071272806116129159433349330521523045218613738645507102219144773930563660833553042672387357519863738665278929002408729755153391150372247288441854492086835874738856954732591002424773882030766462986837916283686955593835579078110774145851271591403158023107862376311019754346343387872390348571815408100044595440287437768617483668008734739680673463106334315009188729474526979551650072788696143750066725573770198507829938750334514729853253352631336471624026160305834199846502265766981604639010681971258922103543558693309748183904114248289121839658041308699611992176910660668077456237702625062998405799625173250751824682651062489549542643809651726308437954927138315522020228469658989701261799014003719898304106396520731892355461940490142346793207683003932086193211916317132239094750710638378593698620658092867220748440588768797513371635655264792203072304456420315418819049702061455053949966580427478163094222340304213334456330986803323462010594266275325871609931030391562377843101994941527038043071137730773905631013892206155706632079260772824479851452904989280647367688923245875490027592709937298966550725471645655454087431037675812237571081199304914103497026456267686180016418331502954866811006964377171734337444358885399163521275174851705291599609929352509739321501601182661302490127855781869331133385813907347521928516393691461804085155309229639384425746866159734245675788889699145586708247699062288179576242478662748579857599512167976188824703192557807465920158399055549088789298799365594840212914362773169427356664004675496111396611484891971406743323075004447475712094184769031835004186802627627959698716845213573866529710612904591827622368647722780736172222552908645967640426176455544664166317456300317297051029839054942853149341864829040946300327854450844489597159269781189536828068262893058857164734623762420036860131538657591089566935481176922378609289655023628092324747591316304830509234956029953279215876048117968982816310714881149438804663612365946348356628088737380656750779505288022828547606423165440642479212432549344460995863817034970445535377443940954688228272197034951879964703999105864567726057631770558516189477892460996963568135407766497769939785981771080439069576257820629844889369354342105677090974116053372503830713506098249548449495863842918895557851170854083208256660492286610217281237469219024337002761840370378436192943118965472913314477479356980921927317365803510241953293146945285079553764688609468313588341946262432430961355073459361562333988949373421330417370593545834384505639759503765556793275486763266559106091930272854955428029934470711628553616463477987399741760315943159461231546549926056060765688842513554018950732120219379980655875014686008683579569956534875682485772206867557516430608097968835993229979185560445337937538770084180347307572351864591964351771138664631199123978332324614782283473510035498061035592681554798373403838850641978031516527517940044084489282653604607778938669900494249343719973951158388581349924378168971681653723199739376555800654302626633347103550146845149692361911882047583250584816977633503547080245406758294006022404078147279113136761104542614725396448186272828964542514764210637562740111787216607810925549505339749438922564182060754659374959715874257366527160449241974672987483690836737170685572943538297069706610590458607381207931839404954150368210008993661756501734289433630600794271741871535535983725723345248391754896212493837204916022255288353312177594056005082930797328818791178376892818912445159962668142776370397592862808172198473941874768072842676136979841169551470998094742696876682758986977540386489714844752345671435079517709626568536274756913775692454789695084478995337672716078367528587793238205551011807665520240808828663793800661638453863691668726866626583311114802989066368315587873913381111705190347079778254887994990352815070678019986138311917839521613436037943094353491621237913091453954693019738422201765143257595357973038236036943439288933559836951781870457203509411187497286800683453367659788721442412283662000310962773383623272302111211558714995597240078314503636988857221402625352883504529749189975232629047315582550140930060190304579250274266860805825178005969581958494649848864837926490238176124051919390380518306509292033084187985557889581912941776268001239017359508579621107436721014479982298086650530578023186623228260799069467050164005261570374183647038257604548947550354042879385890570608391865898234959850018396851660937968175049497261037914079084797879489484386734441352018003621954989489547005554958342430226031128512038270363467236221897892817373028443002196938985772225686764978565428669444686624950644065409009717304470839164217076311358227226893320667812448426498619296254954730083863229487579404309640415136491921002597896592470793744621999835061823837701404953155922564990019047588832007354638495654467049255323000824856532442814008764995162459639452459887583633702227814239813802178193001877681025343248837873614881726624516490029618514130038167831845042220951289481983426504502823987469785341749813819971517944289852672916451668212707757885727355798084476727416285319212256014666791754987049656183925892833654145058826342367036306625220516649792635794837212258469679293635663198854450191967670494061789152886215453823026000687756365670620923633372410713367914348136755558582539677930838072793616666371752774667936207426052024674467540084603356768719879601560538309474693260613989274769429689863623164876387740306468454371301783269031690536152810720515892948330651297943588489633554128108077770655306368854570003045687138424660592653947421765688895049776680387915121590530358536978496071816431662839675123297241689601467412542793600259047285406134607851978643208002203795647793065447599885831908562894240532493045329781480413219343081660627770760948640410775593286140202536497865961070642918973417958958695022334428160341058991886148913560340889509088349704099414970119811067515530895900922564942961507184787471137180246410962533153041853985466287380282185968458065193765112176709228262024069075400992190343834650778210308103558372423763541212079752239378265608326334165690593589738746261895978026589355008287954365298465823120747276712478625805053039249489720808030575457743501310351943193181815736405769178540935310106996695285614775878039117069493056993237129898311388376654101480317762417345473708719142457592346971493051934646149697050637366685299061531733263388718877006303888621723156220011294001897754248371474018239857735369576855078333795108089246246945699544829475541365914526710392090039151981299289830922346194432119941856269999253579892192897199539466010210037619795903916913917235566050418335249988582732904930554938218458996422663417000715922260997873519634238342739354585404411831258369567552395400097521856927585036489901553788299983462787215322475329710224439227746668700774815047251607667364852364559099200256771785878213236873280386759886467176453063894308605170396968339036155304164302509438462503932313679554590538187122455302235456978654205294152168537898856353655603982059850327448003194120864818079285511684192027434851792438583811175841246304955677865906460375845915745639141473160653334052399026742595913676133952094603645820495363853125900074593076324042625359061577503835647521876612398567986172667137966138147824755970158079552583855411644676324477894370087814651791501867717778693281098109982666858548775546489262334773950103906386749477834907132532715171243586151583624952051260770616624564236624958727010035694571226518651240729812347121475212365210926503755483036009600957519319136853970173776621953014400177848724711203470375757029529264697804349796543439368852020284464776173592739755985453292121343079079968954523544233700809181337494622554139644303246894268621534435015034723693069061779711891446394160039315647658452893399567476463987778786466414203025824437775775598686470006100359970855685527057154939114930069859127216943152026474602496619097426447506167824323112490456881779511204261554990452433833426685414104340279529828608056831187864046542069089728600262164609773267241113843261465420632322739863812252533166287858159384445061556208556563112374105912056542672908073631021284423001182976321707628280959217142481997329580766149132894979237269087656877486772618976646898672922634129944361901501947909206726538503574461099553341638707118326567809292734114072655358328137567176281638726985567727289721563398802289375871749393509302818673955844705698212643882413452681566111205335921063071932167780150077736086917874482993977989850365636569366435864519372619183921308214551458449297783479683888018188008989303265785092011369015717810841299579541611176399632885684503605169640137482919144091822930879405790680755654140281811460686846617012885499421995972347651478436397962369694396910113545402905243070559132706116041381988151866931550709562317318664509480230612181491739455691088196618566188547455483220856259912645052765806141474437940737253830120165511830043207623179598907050379064000903528996359892491745440580143133365252167677194812569909356553258905047000121363747085361818879161980255177841175930023330859642199837801198691258028400789688934444118512168776848694860219380488387999939160010564743274822839614643348021109656907719170984961556712299670116739849196339470277165715020235193996906364172577568865658980071605269869181455165360733773498592907538316941397219931330740866825210519392757619248491859148567396074103258385969768311925482713039001878566097583661071422336933126985793256131898714618709667593172635078573816786873066322425525153172483674302400924958384444159547456128066652452684868863698257567260203410598909726264645799253300592470107838538169381821470869196221473882775005756075772023519734995069092846758993869380293048007226578698715036014539315227803329123474840959782145867813747399874583179545515636674955515925487735812778827797210253466060687637695702688392141769276583528223096702148721252756542590979661737246594895546142196315981330336097132552725100120548849921110762778093046384151399507127813931754054306503750600062246813017206302235047617878687293809165540691852545001051298476362613602053688392209802102347933037502192310094335367358169864845900190649201792018725610169543015545018573848935949569531226687603413811392722838514304545027757057706620790212703041441631604004366743292318581252548014737491074217451146143006124771826126530216767996849288643524264056512079920394869380179799024989241518907847212501256565793824742062751529704730387106379553405128710133051701090697520661930998080122942766052375338892507410442078980632972944448470980208646290506532059290880635771985343260812816218814168769769320547733643110376474825207854280556986100756335959080635142532165385439395819312922234061431325738325703547675687850509719008948217154739935143015462238989384814989578683094044167957862422042643164137849715716562128225162750192506681042448728388852847350818603414561928069432630792486823060875798558296467747586579352743055507608605297501805882472246559198016595621925577421171992042884459489893033451494720651051982839682207314017174885148035353152924218189924899915921100731402794118907946215451275183157522381954881627091652224294828219355199840160441040706431964637040257301475541409841886010070975892670113533480625475224861460511408458723885207497554502831391870726575790042673546936033246019309287910054523104246750668781324692713153649881954940435781446680936269514689595402652305015002037617826414771966254661699712522624029861117202190709306281835339988025157436611842769495311107108838477708795173740474442345248077545389530754118785332952774938221999919310014454203662514248606963332389756153095753499932815800870984402441739776576048999743369333588056696010322405182652164840976689745565944198870676577434719470154378407656425978154764682545330278915552737522253931201685896967790041610166095987574171199506338797866914369656423249098685043698270903851403975135003987276383920848235887932949588570195649871835428239461984680413598902283246410048467415099501805187504706343110774663549307756252299696268240885652411720824665214571320523802973757375248133026573370319630797576394660481147301874172547483149775485026095430537415586977311247275250292850363878963725038275337284623242674868606177721334448017977116157461675991563141488373368590257114162482014776423614579072486573438444567005670301733146757995906323720336440777673092165892153823993324032381867904521796129362753492176585983986459852667605558904335501334048381542084529986017007016321430678393803766836841705932532939175137562398129218118032827401196100274233351120275657541491753078317770661826859572954255774652571887351718513747843321956032739782255479992998404289068700620475401359159844347355617044136401664833602212970889307942172569296151316839985442166773258892306207584781149200094345113811069688067627303575869115491388703263551221417389935347410421507390255584897374030808630564010535504683700283210808296442426603808783256504675225884744150132708152982395366824247026118733327281109095768793564054891601970400388533920615623309176346562814922434504627029205280735151819603786280592943499723515474187941985977396227432650468305873533824791690917642572286527867917970260653744619293019241159382190514938360064218771329268344947506866341153236811215976246057733454323987549048418837769757609802750092183623360841437807262293147541953556169407270650226298810246753104488756177633203887838392869679477596918858854570140060451536637354878014323831419706245025845594580656540735275502570208751907200257508811180095465598139131295625899573469130244044472051815885993131134169864392035755533178898667738023309493240012026267551228232762731550832898318317839075143367164633524316694223558605925764744694640921409773564416144020213660148196873477753109026635224551050289855162522780088603961320126757621795670838353518533287828696465945034777909232097887706423131548092173043644979624197451195107208439720295354741992889681023876910850926910295411295109598550133519986715531726763105844434876290417787132879519286018270122458073732357419948888052212585483075839734851199409573239610479236697871291469436496169087047511653730053609847641680198282848377741065119401136324826076838511177387573040763087329386615417904223285959873524202786001670632107163220580552059649888896546352729310324820022078190703032615618400169644637540525029633589389708206839101569046062515181168028631219381508718316378426503984787429290583525363912098380261124735672202796429009201669752407268933204755468433170845617826633967393071619596549622771233409883499446302148804188326491696631014031151174821822125896076358942148242987040380352998565042490932175876635568896645332548123712381978270055602078141114810541516792590662874318307064713112044764605875371748281498065490021589224127893442148417174590898292984515461385382697312003255013016946041657855376828624244311072179040136253027644710381983904301700489198460657112153689572189231294884323365343334330582898365002347561231771238114305707226140263786237964034261154090222410387837335212580253983230870471043465356850656131113463443838092347185861630809379338480905250782737423206033521918544204263885119676761412010617972009805933619285280512744080112992156812571757762296583038351873357898209026811224464372491314651951080642514119064210491371147846013364240343905422322112915362860930691630916914065626893210763118646810117673432910921729890215127959386567224035830526098158867209224648063446162884080566144777866694954352133774964586707507041107815987008980685293133330041221790948813217927145860317216218585931097794030173284676649116730672984349130973333306002749434416245113752246068468677495850634242000892730958948624991936999979596933064033991633949300282897450987576996044165256125772570273564002577152003707063374932518392773851287447400840962350042216072794654549289892509464259912940838863783739369163922858725664995727558316042004307632629771977854977126345696379072413820646586178654387385195869180761083897356596796262038119094896812304110281734438134940752084366704387717124092112757199455830005706772152519828127286975147549191586130204542907940950682436729788617146285430088449371485528119396037828786743203756443898921386334918667007646387050896177604345046189117886319539110545905351090594047368313820519726832745171870163263510999004501939415985995622887173283730190031093441078624698189198714548546341573429077766053546428282553001685765770342456182003334115740883890403521023977088452386220213647189063140944363479106406343806537581736371006009927120060075534453508700016349912598559353792282214768201096143419466119294734024552308229003898821355161432332965020393722833427692533477489468764723099061187416204965384695151499295869317677652815653228108466353932826629367248342695926818575800426311726694928387335153079550411434498546866520401795943985151246444024898758689391896198693768492945955965347255399738274507587965114970742469629119234155028113187912525708208856332961489239411228837993215027588601171976356423764897029684979510737017936301445058673225196623597963955274049550355831267293404466327279825205515667156452547534316202777798353272494343235279534414779296396959244640189005275469725984111191636946239155808463538582812841216499513146425186708421194635246823309069413003232365848549505226716908472405855989136975732196205855563800090264123205223359231196302566364682096444850284185369807479537222542157681808489265458127105643697391879317570327941501779085449351770491817677681368136318300194230296438935611317236710737211281131876436405058618341997001458353964984740370321751615977036990086857830198145653283072211363991898128076804728757782666447802652395429563298365001813395471931069776558905390840164985680258393755779946731031522362077637116998308722054425378308557924708143145685783634023441527703122494118090321836830208386726695785078249492747230886093675911401820560335528971276758816912942001439491891736498270161822884733121581151288484491116082232926271630515785061289281605184460732211085841980569312598860761575490695635884444167617639957908941589105350217640066694229710263948844427896860417100302356985815870341390197877004292324805578665245862199405759813278363794729899874287422138856603222572451679072029230591924936483640700129506908403579938981575251806640795802857076735293340632220754842728245984145340325329248474843659299380251761674433470344265823202650919525853456376527852790154575876776135420597427458911680032899352293468575235170192271653908118859527161488994541708915242034415076660586609882150526386167266364190137277616644170057555536819043062592403547838948904992203901445063726561027318534396404743056114647381175922412665344076747803128174494271718958403154667022963433318588468180183932382965169654281412390679356741172324936159971578547372701133299782281617369317198634628144861327375308275231624639482427569054366957200119598058114225258615121234567532203799748838186355941444113486860148718592295256068429311243449029623005284223818526594106485603797110709154834984496843477549966815955442162164360017070599595563340566783933044252897198005584746715566129348165741746880445377822029148379138116444468079781396484675340401305002949152318558279659043777596823049805439536336745034412355806071025005717440078985745300335934254858467327290198970763310805754221814759081213016271517082708644904457420354917961093874701645799621486362822859995075352653103516480771740826280832294084993330558511175372177657351192453263927110331972795920817733947721176860065488650604161223002169900008317945970869238139007882023677049324472321816429635141297129673102197635558474197858918494135283170067741769709228137975605928311875694096636436660856627442182476465150134146706226172561662044724446780429513234051291466959491261328628666598520972124950454577849554732790953849684961473045790503450930410756567677085977564219230319451068947334248824992166394600534217165376138181702347573485405209058972949339211058402605202067143496820852862701387959360153713878322713162790610026968690336668109101578571613078723810702709154330872014756788290191027152436424539099933367548903495753673309746353401952420447332328669786342334062221600528999897028947197890100537283401159326638200320334025267197299264133900532018191694428517768339728667480528432047553804889688140283835920991745269380453129388754726748485032514705296132871441818893219865799907361646814187042707300424168533612542275167826287690415046266365546625492527523287802393932730056721569517092007563703070419814906513809592475065823136995133089082911060362649976017979497384374071810717753827433602193760205124299502631711043872397053098309685893464680816345657470135216617850429221874287849912724458269402466995540858242505799123127168444157459099696149735551042616117814461352124111391924035404481336283878747970218431593092066464932732969269567482183836669875753043555914280059967613752073418988110994666907016106644470000542596969517925799522885576702972863941764286095860126711182325168933681164511799268772302076498058961336542701746144716272739139626917522507677547616022686441629642923751308674114884532454327719947423284552135761704822465757616119578697355975473076257737113943419299023901536190086192033699971595163982975201672257448112237040849246556363119819613884346657463714523767545679111170655725097186524483089059441921037959125744238722082886887766326019172677148088252191018619492499150877288330452990194596941752277608522141130390104728600610409034652516097489039670666996264773457318936275209375612858367987753637768924453549260212789425840268360962517439171823960128686560784179625241228861191170313339701043877562641251645609526283476321001885800405517466703236664896226183001654572683177680812942794388724863463033141792394546638466087226006769534678025549231827142474866929496436990530186382411152905812588113890870957137267497753137776634475685799704379482067549682759316685568763291422541926495259906322164112290629689123505419914726856155744885239485583040692544051143163625696434835899220848054103095857305155498339276626697683202752717965337366538585317639233851712780204265715673778258125697124189985397767613378120932287787115687992854592943574888750461154485579946420417285091356602137122118140063116825080963476138430534931702210844501097065243749591151551568112713093979680878623952873434925208383872085512653550823462979260529212069399888028856366507320029337124216776280260370201528718019078558047646640025454285521847294139250694219968653098406262875855583244364361384983672112552393406276232254769023348208848102385278132372541454881962390023163391601352414792080987173129300759939267008857396152517089753415427489947868484655839879385976080510011103295623059031796193157602950725291282636630978744698126870512453564204876366086103369443182917551174466364248578170152736970549781260235274779928636090530461363215388907946436873376979428639873245289894375399212718716211653356075540739626611635722492150205588507582794121231085986508182987569444041776540484795447185150185345153654760917333952624916727851378038320952315059690190441509293799607435584468992830329493965958713180427809822933711262630030520146014046280974998869335043953237148376745738010846327698280714746245950624297627549423590397954405939355168723494583758765496168124413966942026977321410878207816826743584429201680254097855621356708936291754817022240772565133278042924037004502040870041809623899736927823707361181657755412912824476470173646655149192403207571196256322072881434501803196393268726440746828338674092484532460307697627470988953560216441498257804431410475996068874887330491890354588738956559709841647096215623120106432541593220705949032679185160558059792305613152466152355567309096133837964912450388317186371671279350009464578997021053587893132081919248141769784858440201691930686287253595114249620040816807598948631838238521137244077759551104860673775680022863797007379649601580497230872422130343991920317597563430589416514522206303666575674477490430985482680522022879499268916870599699846055976031905650322146930918888396914518842909243400351224303081180348708588156243179858466626457904388904205145700148965008809102272901729285480178507126298257409461472521531251900933703797935781068043538877833766058661447855401019596064598892368035081647669712271892524404446189285713128985251798461511519121907200982302281978745578714890228458974332922971114454230016521697876264045210077815539250643893094637247393939892660027026957668007433830111704845511549977394274147962969413927602087729509552862141794195457640746717315190445093880961079184647815837613778241003496746997517239213091096619720109534502253160173786301832053518627391521333912181075089521096262263222567007581898468646029171389089755793274155346132809282501966444558677932989247130439507430180189024625389743344451169814400939499541830829290999459537156257942314218146761333519925161501372772179293582896734625574969705498571630141886663664891691337618210137516320080892096184956450091316542038367653639184832801672532343438867632880263774096092223455009654577628529539312575935347879434872812427457168509839703788044314157964564381553679710806989903199475405133005289099161875141666659311162921773215430361923218362991496320477777424801709705913396234700179819520454858244958983803846834790184568088280855160116328331037920199142755641587302294129653978343630958718063211452332347454283334088859689677197079253198436965511583770581541442466099450005340109514691069310029647914969490818923812729920590437287264937410913635912455773958991217546655258012628149756153557011859293718578485537689014332376124449422897663048318290427753925536751400248047915540179007629871740222863498584521214970544540758078368939816128610644862712107533732688977857531849059590270239283930481397888233349240442025448340829633437057989815165377599642952180741101532686211284760757342301239766678079583024035072681826610027240168871416812329949972263917129739700401990161972621097397740158659292061350885792694539689306924249242660124112544397829018036667757719584576869272350740593376067426827687334412238426227461799288780096835111664530101498400693431977575675685300676608130001140651535490892183698031328455816484704659126999250131174256060996002638800405497391253077865711967355850191337300504604270251983528951724907280316596526382196951372412970341159249129768367536752443300924103526165377014411111350425738778128075776217728797292965992754693810741470363090144102365074150301439111533611597897742489870737100142942327800692777842610341128883011455939294517166246916918474220939463681054979971640393925707429370193706038198376767585111345523889990328667014583907754240420010644622751220203618469822118922817059631210798060498329286992300002839679600081940274952559760391414994440375355143250300010409595576470776980975168956312434975844991450055069155252768662622669412276310714236121007961006009768485921012730653396480493634886306751114406314900855705724064081610172087186507112472709026581727099213847786833252713509134358087421639585271610888143274140450479282011575379550319844911987655817665276191664268796970036916272449543124440620158456834831782587566579398835082217289701586439189765987737480747054371745407446463550958785003038750738425168812040610084498606849298845781143549431043951562901367015013001881083006305987648878879108022252753326154532262005718311805452954169982218996916170972807005681892505497429421517430236315791149185362302195426698235217428421463829027553170864479456754055460911878262759967028215516601784056420195093786668250679751432105173386633495889704170850856814303671422783843126746936721566729201220919528215736957123482706253744704818345318579433123203037049618338507350083924644145517188833018040099342542082542524504947981808156850760460679081938395595037747570968998399399496216453282509375110075069533898126190918235158339624154356364805103173802534203344427378965321357169146198599785500723793047333330633547131646952332576403889802491070943221481364241582444897273927612374982212844351104897865250292379709134923978955455559453608641626487910407578760273366367252261873779940508326577038126903134864868179788790488229277347763217658466391401478669899898216419010843669172177256867022225243510254474060346753163872257257236790331779875538733020485656547090542290773124390559946062665474408076138757351225094801407519748769296412472154727726609571261849937722563091706005800253397070969120264701592557898947845841149996889860954127476960620159063526669891625703202642112050209776579022017783700457453025448607377950339082740619055693487325349053729932385800227466961604341677409277862336111824162654122161401781320291016572738772626953586430360181964841219767791503841799614089828076222129331290888596832037256450786094008510475950635798594638638772748861307636911946056440722090519260663899268768888569644483873245191060082867038591099439689113261988904397512674511042383322004987188551409945188795931316356646930753409977380660062873378453336686154656260262400055672055586024038407336211287368837171813588831625946243842126776076496927995812746463426127074696503116000085792927255923524692305300627242075457759888457602590736241736249421039701534468038520688219964227081697806687856077452675547079652707025138924382081867060426827897534956486105778588173437378994064681468401689689879691558300516479516033195399027428274173419195202734620731508157315802629237084736524773476574877380779164422584996034787976829123078937765241637812758751671614764377207459589933639679857955806772133541760397053704812427300558319536099772031949509451957785794139650425927241244801639163720494655197562413010189252163786617659463744874014183127578834169860582010141958277493902784153763772166791773098784052881286869994857143004107190914275641261647612688719841654070959776843155410838106405644697203064843116997674099413153015949743040431954746680139536299354501763658238269118365476958885166904546423860849888646666209152916393931939153794331502437855244572174644442764669559564311402436606584753156945608053158142372275893942910123794756411325422632865327708009584365305640695218931723661099155226914732625401131500819040508410511932703818570557520946767220664070638799559420770661323783520740428135153038655257243923770071707611907866692285567042323971810767269770079789800725791725598553718330901417202525739977030962239001386216882943439347089379983879188312239028813024567688301133367691297443578195406472602692929792315594838340986074775675712024443147291390528555282566603419374455260600379933201552722620312661031986855027082503525721955950010056414354882512222069960677715902144896049078177850167399504201510875709717410084346776292975895824822448119496784004559333263811477334157647324754638369230755004911787888967703823281727980477542774094337302970795911368983931648713342403201368039666934622890785379203900595271891607684963180608393965875093091212172633651729237862690461180188647927142175591280116066775315016671747468683497558392162345146021916301148092650145335948707592021416573910387438257759143818269834213235757101656781209991584354142001769206585822098540775849173189656438233277212541342404494820699131717258512749723008388410586519123767542703589670254095808613190410629218553100198627959838039619884423916235986110104535698585403359584596281762775247091123810843233309980233599161661226827731298870271554536845125252549288977280865694080911002720481348682465013237295718589961294118848997149175892111784763507342684752411002602031455419938649311793359612666499793883929994580886677567166112185142203236633272423912058218989857910775853437237953461526462960921274748544878279721245139140004396974312070591148860493005262660010570718275417412385188014765801795783149337828737833226632326436181017418012210100749485772377816428366404486783550927890665104073159034400290775966051781580668997374804769519833873980754163383061357670481020852775681273754857305722564279427016144930231169196416001669556809473981613940984333997085661247897848195792177058038599993592920300524112334847543493322756530206909338834766132158721443599687213205345984893619059628355136939261918250389132829393373332561094019231567692143511202029264111187601262503510978741167567582010523733475591181167553374920723370282075018864237909986399751801938376419860995208104001985963182776956023919424941634218906369906210822174991379465575385892026856972472323347704453095902701193263582367138662500696164459549507880884548308296013166828854845514582977627524248962976036510995927203208788842471830847919772492842980021112542909764713557790216210538223092200793705215808837178108144312431324412178022729682194636302208940978809285038062894053260937121023173454405495381146277823272056715186980053285115036178664815051254885420706952198388770602596340144027638181608088147034504838724825618411361322541318961027780363613281538894828278354082480996912247531883266347677603840427655827496951145758867826840607156872831901896087731755618604169032877274365242730590686642963623683576095133575645197618939991073413194995599069801617126835189343807795898411436551002538462360745527062276286147995445702655335985084407794548774413300687137926430986908196251274947699314928785277758148671628736187610799691220049606938733567647594879287178858105955949810724223180850391200905095723557232861167888486904417989580045934646183148813692282982800001002953751969246201351030796446775626112125642753037273736896649307476243346276295226261210277776638995049694502182782605975490656422051196751023794336451620270331997116271206318356631642473614459856353848119117178495220252478148197967211744208514775504966347010539670952952075326433522973746738628566468110420961722705140635595239967905226987755990631199995049750809022569670370467771749111345001240500658856202759832207701827759307452514701761338766284244256920836584427986429783993118116663862041140181075203715763033345534699601460776602635927721475763035009159923726512828172039531212797636831931370664322356263454567656934962559462643486865303589967875289962471243323156610056821701642005249188393977402465078463278016528822231649428882359949137100629374032493632480181619676900700711531947722432258168811487789702852727147958809734538516820154251860051062274989418398483404186599983101939366201275036437614581729039636994388427477196768712848769593130757448262495223525842548046892162109075727595928514154520934633510604132114606147655388465900742628957509589453531512580794692612471116442710018411441416583979919185933636091324504061975869790478784989134856931902481656384910209130000088021872607243027654940694874378642428389488403755219445135372670865683886442947263172683699731318899306476204592331645723332807055033350288538490882807162092400155700999240655181255796465608481863998200774281566187999471834161502926377609429383929538920522880342374498793415806391073973516052406191937143887887319113148200474810035072077365336716318237768198946516591587903053147717540022662540710447525137293125165803556290731427007713363692156439621166093484192147131091476304009228030339162221028708573171099806009264344345145705444824912963757627606396233141837227523647412561580626079254523198419788802848938973226758780820650983239951833287269446507400776254746438505683335053173463650682545564934996483884343262221488952252727871218752257730366858647094730574274044262198875779270317199210875404551371997541267994464173006486618532575094220923963850558916140617531374228884483734349790619880353143670243660794448361724888734336286179823023338767744745828402605316844889028821669135017362348403598947296025490547907206429351987669702534484536926664738302452116656206374555574123467158082129318504594933645819069804181867229768616343123989796397113917101883032349215714630716743966767630605489349246384641238287198667162531948824787910521587221631611737343326796977812199357682968270621124073571667668778760003036014234528964689034073903154749646818552680219959767465764840118812938379652158912100672995458824047985123528626905539386801944874835870236923998698360568742490424590672398961758049828964570811700103439041951444644013045532791055418308074820447048813303061272337598603870347874047744239248740349140757640953468334835728228572391967255562381485502670193424582888810092752701066314263045529851930455045696376576263553143053925497983419920241186907284397791914703514887124207053038415515092262418393076850230021495325568099404076901643730202112356600490020549085460999954038569474944737534625839399881949056034329523012040871324849730000197318555269251132645402284989082025696647222935047612726743572195887904162695895187735639131004500457475220005280250117631180236724218763100260523441909428711461537362129381682539168234751584366106102296428664109320352539670842295003501373602351906742361422737868562266647363884807559006336248508828920260648800844592552303731195858957126456588208301370340835251919529602412121704658167854661800239462651955235371459682228362554565564072743589832706366361825127944729027772955208240320125934207971848858208368328241941400637209691393955070008386995487648528568929189417276461246278862977576415259473524577571876816100052022952955413487793942153801752672076567138296849227913420963566638309893140219851365733383906400508794709217667202916607471353520533983297427507419154523390451630283829620774754496716627075966844142097498219098714394671550977118967772488219475938095242609047134692589908673419433043525134334052370873853695988902038900108648983629440158558377326229836609021755239693730522520416308345349368787410411697618612416633068867970971606357516057140607057906415610851568517700703946938789617220369987695864664217128957118549159409089113525514486044229592475190221344275255595814735830830558018577499080913808477709383042986650134995602483488690393622336497500564915071918452583633008883129846870021619984913009849845883268363917587885522523646672265801059170176466170149309895124173301741426068574593352971140591598172453761083372154923232013001184792923359058617788906950449898901313333416707864028165098611326861926160952810192287577774124790115695713938402003521338470971313857913682884927030167883522635293589170554066009706613529587791803095762888430893639788453252322445880194937981363394360815181135100661311706058713291711541774085860359588082437704817224874390525373835538986007719587029071251426774184420862801405853537174996885565207643369190663562670903049527855881421495149440300989463092254003914765943491136787580297660361587476346835159903766160852904565864071551190766351171684485150933471669300719451665142233195100480914139549443407403776099770934190132381760745449211335400309995309096222459107187899481986355602668160501514792817489448719050339891755192966002372033875048903952386003819552615751088571602159064164630278741821349267582413977932740788092670231899227963475075731795234610367715797169639910475480089346415882702534060171621136422482177343655954003131852791842599672656681638866136176091337529351098540174579001320561857828340278800408213391342258995557463417477154608420492288592678739183983910498900252960493481305893155230356679311662062600968733756723004461979957201073786281221816680859490211662651004055615560235641205612990946799194575512279707559602751867273197354305467279017098452824978966869385195796150944095241094811016938372670868496847539788195882867832625685840326949803233913783341668438456486201133509021049185418882775282176327943061686081898374199519693295495412202248231930092345850026768945990408636102735922336133004625007753960189139298928544708261621089512098129810439689286504208659099827140056068712561017096796584720539809178457422395448529469819962214100650160840458340851467615665234743476447907155093351775137929488251252725146714553144180895424651125973116912329412509750196255276464182060607654082814051090913225413077269430410067784020680203437813536576300577911314995669511147530998422538421991684907009255119565119038053161821860577136471194331405651666897225462993428950944193634464526628766161069308650271754267266359163727887754798019017641965438389903210095123409381091134140418840966835190909809965627395163225915815432999432319223572885728191751409680492976957222215316688383058824205536182425962100147226295045582469706124526357838638218211972662079424971996270312005184038354752256305180637370718370325093671695529165015455142962370882946944260931521137412093630093576422838964249769224296457282311873723516652589985442667968290361221539320771247617149174810417840741521853269026242903624660413358576385905548536518416149439449209870336007061912226866477670280826333109046554636288086305306845240134036659125081378653422721659737462874150631270050389823427758007297008305354914606932559100070511048863367555000682055473293150065002051619872169270527828255285842735492692108146940572544269290049076239989804899553607558616832199678472427227953880187498828382754962967091376159107224017053256912056812696282375397494343077953176293724396937842503430152883594006543586109629316216663902091752866029315162105403623018939125333885161719347294199819405005638991238846642291462634683275232139473278654059299799064983531100599572338840974980441022376877705350515873040083343344519665221631471027788156316770644711131423524186455681363879294946040089785554856893726616951416537837617855245988251137249599505528904331886398426777591329435256902582840356262039696322461691552381441748142201264173740237036406512729405335906097290894825536729076964140181843135178679512230839664714226292657128494818807867211918272974355336627798978578167339211149120406523677288841747385035634601495379549781575478019503317024943555709852048071409533570644916347959042108000501460453314340040992563065302743090653590724728789439629400491985392532911955370133522814235892734507350999366734150956837959255362349925343976709483653664253672235424127442947100638921882650715517115505753646040065133178388317095870446949470740205300055655499253615635956415466735977620255288503461190192369196539834301482560286266405451631007841196633404689309078038260082382642064374525710091340444430642704867294635712365976471075797748438709135485505480530594752692141623831845578147053796476016670638646764292431204059649812960139690872663596410552834360516149182751556122413227516095175081469895115118564331376522613069329056227105962637611280334229598930487232824949183318131477203438170666744435826340793974462923563505174608944798696731881928592137710450509926555190899392412231916867140233215351514512641573819342693651344259534916450656713876236933806046979515355546237466490648833889859371471312655865845752635998352301452428670187679215333058829462180801499116928636062244008404511011508104406508269073289848019506311519224150921097046791366824368451479869564736521064925739934139892140454111190795631967172844406358427242736644763708441260972783287975576168571180917236738057714068573935934837546042629727320942746702402866699709315180082240797113048904147798498217760329068750851015261357294862879374447937618949286599029837573189106907409390958696500803969100089102765136402842998710809557459013653315742997269804722640383095490108823324177268569049226377385050493301861017215549202815638821374328231817364096694772381252950539955250196629814008853224441536941996226139647420533464905781230314629629803275608412538613403379121240858741513426536919865407668872068464932565507890690356194229915661745385777132812941399331120551173208686009316813959528857831148490091895982691717358119113463045811794474025295616474412256329195618592417883726063173162115160516153419260678809560470880402152637115020216105262170922580209170622964111676209034494412857282955574619852897171405260649204697330017087077924241880234164716976958534703987567348633928763293219366728325607631160879881142763137139697516472983550915976470933777485004537273158326950575188397469174604072781683934812957067356353632112974470427885879184184677135457790787534754634245646294357461747943105340675171978272279304310293215287112383219573940450207703496914253245121270228911954740011484764180667375153974166641823380602521102297882653148153233353423787111158557680663788252949282132183262142782182647659604361073448876516857199871430829696844172292046555995416191906501835881067201532508714011985881514980093315843142313869252057589390497285655686339957135998910900886359536359397330868807011673761897057996880184452222212827297178442030028139839969817563075314293175436525444702642130370823247151029875605428005833185817898976981304181302432430571587067598211662469106688999204670853133715447355314918165966756263630408999654090135685952291435152294754698009086395427072271600419378788337572496001571299929427993637095775061892988302778865909152726822809559126915788099574380768619461465434039846905171850015779463596432523503688147708469973238187726746295239279000269802102552494398671593257367206783217407304378333214999708311344772695277216943819406136630488634551540674895920954047564017680490156919534583899821903108136887172182376353377118151628126816984236888305353552997727513768071893653523589341523776031155504377972950003910734303614099885946598082892560302735756124143479052555317706917219870482508444574695503053673987373120778589600864196088863251254215825974144965387883206566191232569269881496425756194485010501625307766204442051941630609536374642431702950287454482036217588209143577153886797859784625541083007124669357639833833302009153190371991642372333470638958848227491693317662174317752649418022222645581938177657667888728715803406537235756932635457860721958449486597159309964516929910733864053233623781893298168392895174563040801808909380743574078792944335623458630081703093037139983141079166293269377626663982674286227869651516454042808032260901100613605845485943242347065162905578456337570719914601166794017737217498971306463233235034673582137261835609742072111629004012278974019753442297123693617907242986032097724092680978738040152305959640186430058585901193190214942172238950871321024182178143341439573351048777864877155410483906288086676556189837347815160318862316542250239730348730211473011041595590350076992727142337284656022795406894536220658807987237355546025272194547501487257581438625120938199769163353063234889214825439322053246096624795343727267973555045300113692090026329765148343842285204144283299866805030843814837918362503600004689532040503723448760843587808438929144143045239246181291944117477030576316544050435044749223346148989147801858322166381474153041347652005888163798329034792990723927115264833640329298659892329916975491807256549924419947932844890570819396835347134320921820455838370053716354811387503164516327283816481736801165130724443202982287032856684411833886297200667325864761361426575380582135153937836202637998607243302503745309635205365898868413060405277990852257653862569620933597033662697148337293109340458300538050371157821394579103212851019643316877935570750810791266425026120723546474250849101878900317711781575406917538302626617461716603216419613020002990099564378024197687369203755104404904779431166215885935532232853707246672678345707402188959946399199497138959828748101486281691090412072028617711785181200707254084963839920679181138237649855897003507967888441844621910348130403935250043503742889611287853772071261454856932182801036652385644611608795264255339997072362115273258602891776247103975755646073471069326609426401817873862927137237111761468665952187336935708864301498504320898511542002175866639252632186724605161134340357511979654484720608648833892227840173145567996216928254010466335856851723411409311596753848525709667435312086078502191036521910109489769919631681450888885952682889189274799590912620687482684389650507902903928015692552804803753640634470545455644896941954051208304063054796411050196363292771559098788499014248288553599992158101890636101244823900196951265438977536091202967174636928694481003179771327504448265547679270843345861425581393707360727147716648314238739650203012357454309327185999603707191406475242589818034045813016583062128261485547830017779403882130140942878516788380431112628692109377517480772548443526167106672096269069509868643022216757245056143564702482210531618375444555959189294514452663291798543724164290684375180477006859254888489794857002618311705310148022340705909690499230100328930557015345877258501788002470564588804584222202164744390117836951830877563293901258999411961882159421541484173457078595959511737694359975376650193696514809741507066576553105305918961495872262957421361534664020471326430407080527007639641793573329117299075359854278704934047971534570685274420013271110588525397345025551825903833597500717279569082024983810675748868396983678887777606293549714391417966399563843481125281542627158452187906066533905384585909169717518330925748673527739476869683189057130428753420519651710310960236128548845087787379551230838717975893085277894616494186833144192900943544413439928444251224789626882230659664455967674681095869556232892538976791717733250538215801206485005799620342529334906689549948594396438437274776082571668239152979494375681320874207613616051631723951994096107678299604001860430239764707295351061863222687532643019201773019144804734894355855857792562577436912281594614185834196064422830725087117632370405099832207636844000592293073266909095034577184298493857469181791885018534228792885836601675489426923726945725978974122534005910814869963786992519787442228628742105297460568161596747231070198134183296125938067660647742420709079335606913635323802762980028968925505684743199305336302239619199875459953180060703317995644265905929211286782249196473872573675180377654476690321429353602827244004011425691126570267717535133405970604300507047679092597626091549509153309013079391430460525789071772743396104640289363939729584403748180899697180360396684846131277425719074147539648687285697675350147834223408857021562906012341568689124455685573499116644932307956920649388887921325629629374296797331652644022731788472550798680600525600890094140063148902530727179522185576663440059603008196430139398911922012296865117793472029759132223586349602606754757020670581546911371392189371295461248076520834941876047282485684198752257674414619760975412778130200195987074909764882879617555762644030498965793427794513124136345354377429448408601997791621192701883276505179317931565386640621500644347233912819667163500854766294989706805261973693016226679541726827103441906832428603908392001727951509803391480228614036455532513402905517437050933097394587321533417514258890284898868308574892002757248808451046946644226545120566746794103022907954850227074230621008487212855101211100154407046730598068905402282193853904218274154850486911991155194800846556320077094774206792335261792065535030158966793650254171495234925192480087996869007222016816824327979156699685220909951868859447106778304925910783801528517332058195515721716200051637137813157400231345913697357061936381980687523127607132891568368952157788734387926290048315840417168509141249418741567176437597000522767990299721093685138252877706149766798761052509849341010092617231279077493324139074097953734272913910827600690913673442334469299853499992347659388176584966419795241643704098961952539980845357977956973132568649941247602406832103989910308322640590194766697803208593819878780024627374180296691696752575306828258098304943426183899313643957310939149680306790390972110207032051311645344172802490616506809525378981697141766246626316468036589785385132104879536467247979689448231018189870134588337231024352336359376134627496627094097853730506958938643349284671404967600025973583669248830570387205443961447588390044791364492482423876827669001424542393222777108930697051544431703704486654536577935680930534504091690150191073323194805570428170512236086326119918182930735794808802067707229727225997525109383721091609152813273141704365496137869272962479915755730089880055805406978575090379444559318902125330806972418001455365035573864943548336028755122158124737702955246459038697147329108237247020146529732971971261358354838830828230569146256006646152523621010783216695989992858457028919239701291255027273743318706738385895808370594203350707889728570395072062268215455732735600809106412913726062355234052566081249798271368198021892417213823026910347354304530082580541197755499805264133296612942785113463035029662534706275387236528977892986315121074279738295800922336835342661735532504606828582873646294054391844600105157174044514807606114260165678870779283502573344972570353339161253150601895409094718766449779220362348570958245249031022999802253197525662850370434049863828447604902319791107601538718779510339678751230705313933900645951343675607807024461975743356681690966204977957529263127639603402695220101938178783749074850044846931438935877841561187136333705943940500787330292504883951640541486014594928218689667000486718357062533033842001879941563931634905148898190635332152263734706291233066969425200592877438757844811893094897194838993676324325932966352115549569346577169352159869340810609642714433774361834030355138564691684075010004198496608591015531292463335248660031042802722507909417041337343069116069632503072241928120550386822913004668350628949379281611639327105570018578653433430492264805172453888514449909432129541999922761396827286776099045489454602659914402572666356049136335882325047737326450280167373106095320093161770960808567766577905107333247861119575094768682414854946101182290968814394595454453836374308473437215801920833694239650694729777810796234906337246056003462892344151430612805638755180592142171984025440950005400324212066939505349542191199502412515007955258606926164737553108837508757448167849327055212064750324021610293659259994896616015241565542526939164988715110633549946781421267479572258595212797163899233692059304606433332365914145065788102653634334079114621789352980519780108940805342737402678274733072009588264452272882890053410672358374656098903960995800425891210908156184986434420871802513756532195584580166988467192703395070010409689496806242684698708209918650081751156482967453419415150521430576266088168601914331421248623642040730488399159572081022636948518010321411318962303202764194727824120051767474304992902640473848075786593108862109119440468596797640524582471279001580595108644731417350987179865826612491230906248196321255788044736293653923021711225013884582445017569526831525663351109509036228711136443515716737620410707347805638088645076601595681173130527272986569120572164565204482033178623408063216326718596040531081265614125440397430381600719609832832439146829682952777043833008647135996355809122266495418493490922372200558566667021831113965369505527400071167568169354445689398512928569377662900700047798607478939264351945100561100207653898215263757623371789150214051204289160361887760832828407381391553288778000334100949155127421353268983113342445183269733913297141407999895891143719377490150571815333129947215066067436552521420063225656946317063883225832542944115242543510598138786898031348789789019725822543590534717781878952769113300483675987797707774421254958547397097004138042296241397397684628527426654576536837137832806691833777506334312313534619827799797511658172174207013488223091319165581450555722966590418536386189047098430304881104880782749302054837363631356257210848678965778537362892545616613788856594856844820098032649877062537260550948307614637115967913184223886436548360927114733895033133057353178129174282405247178134243744512791109481477517637247646939798994244521428137440938566845060095650447444675376971847863434329939092746234811617953131662037415466986843738502791447603643136044479080934752977797405061578697817700780157311802379467873629196606687083659406498204870516812891181065075111025977135923072586371004697260395908017195804879171831933920928991459434761207353031916734161787793284663407745493820035000488733299863692615456307350496231381711931809266551368849357841436569958485481814494837204044844327450575684803974394485679930700618863928087114593617952335961266620775623024803316686302870462493298414734082826302691268630642268545200174762715297627976607935412144393430871612786358438518649260436367910562084487108760139695283058971729284475112477301427669244307978018411200347789703709311826759482553698250736491036660325695750840855620690919908835248730524211991138573774124831089639394376150823268608572284010198789809974251584776852730789772842201523353110507262628434684104311831958889966675284168399492392698276753616762764997500392013598834613514811609813455434364712664225251311097214023277064394625133721662262733095279093759486870850956126202777811794690233229079643383182743192207812676675875127048253694457461015203680581240022250292596654172739624171677912243447210045496175623363517080703852673900852329881121855372858305140337775328701854559194014157081184735163922967660355741805127403275975706391564775718241183366537101838380757712260602684993984109035240411881188529362237667371657803341663332427837517543268544180589099452212570242770622855034603264818214361908034591902359469968222235298939199357833866992813379123444566845538088633753064292463087106199565846606894972614844888394974571930800710743291125502576045582080609977698020208583164177963733285272928674894515231314370608873733972370907465718979336771293203657468687571649244702877761338349773310385396216733765344997873955938063179620489731564124008154298130837080652799950515656466442313053712304476539151070361815901706201797936000291564687897233133979954344620858443294023506770918069479427360676760790742577449851277444506939300748108433740341551766248182574948695647231168874932041665305740785791525773914387961484773859177331650259793137593004159790619470694915282097354191470305337576302576993546371186183611358738230773851931439160114283112224723853561717819576380488291791697589042533209462018182954667716575670322107483318432425634029648257694901001220639343325698574624328687787759866380843891885283875582791231888238887026373376824051327480102748785405047226703525938250100332602882635657235647481552229662740204978317133935345537014489515181172339980794390413098105869570131537959852723053479539115823709770793266052662000121663759099600333097890938332217693924597996753027877432173997022477723623401001113760865785736745817780764274841010679649394603291195117785593772278431295011274432959187344179558124753931857251133321098875002111336433212067892019477260607847746866272608783740047202419191725090847247631083755021574971778182759915585445235159902128380804528145612256102286267529490136340183420212704828564448192836393333315698544693782964947150605281841554051565262912375285901439246935826133884593731221886223153399043432431113637005615433430085893072219634931857172754483254102193175039112355085318539043703495584435297141888010745600847713140369997517235381797287747496153321983178910401691997286751215857957875048749215515237663066402066195886834134491771519741660964707352087010649526756070911658802255161968509837469058209038423175163800523698833480025683025571738256315213087753551766318351877212765530806101122686069704637322145800336381464617268488357457133469503000536924163577116809029988464183473242779548864544298883340254948443124413247583281205942309864624998705930339075853547636446282187722291271136920889725799456947503050403401963481864197752683559862250618743865429110612810456201099001402567878527088912075511832194434510878962549821630573418189708298128954638684100627830790455496775508017836216431189872185052524812484660319092501327306776695791449255025399317996275222276099289641081597692177834988918972062124658219345141250103324805720925140082854137764082773792516415166835271324177359124756037195518327065730056554937632582224139288224574130565347425559785340743810418068257725581405980782958736342313768973701786418425749602742312470006062291086700337860725751388951448912617983323370824028805135406931972028060041162063451001792626190171261419863812986369534284894893412338353599818386135453035602981579225332245550667755721740219849719922933982274865401927438072321326855436833898827213285274547132891884853975335819569648573878023110547750126829668272331257142334152918806203270160681822736896029953567382966668478122569362220633366154218069623456308435160380008409884802792265689621228861683260939186869175925176335076766066292032764041774394734381945526629415259505676885556947575533040360023724257173681876714538134845363345968073235986939215454939266971340171742005178139986494291685926604799351254990630580550087345403693927097105959851290894158547448404176623524028135922901868384319906718841247207968885585424016634181798350856078713365476957699727458386726002171407362862584935769364637373919945988752605631830465586962010811275378701389304427905850021196124123740088816288106477202503062775287949870567352800602344501900413720522697684934371193543360484595481414399621800304524905143721968052589295047654219080675128315280812025506000034916795163251971408417398655235631462266739349151400071337608138918041569306352706371495809875053067269937032796007278254330582584359948870358554338277981269677142034798314899894423345637001054919107901884441151851733808579604005027260202639740609142389301696520889940608565646246581719098516859479752716021907981688702312507290723640303402552929533737144829067656442324115798453056943215065178390035832970451908064776739607449018966585805975574826803223024755352668054744994537765343737320812432374655522046656437879694583132268553606984071362195025955192435394855565860383042278002039848062242629768964544478764120004549319377570387674881921225197212876732363973413668378479309635527208770268689445960461236677583867211848187420111054557948067738579115541749318481087628270162636832005622456839807559245913234995965924384594134630841624982198511544741910729699197210484333472040550374856663328335029613919340569985875761021451950711619878887063823241426026443180395775213716902087141966194855470009273339874864878714227571952513800953178081603580223121139462287538004234235453032254024441305030302929597549403761480841605786096254215142796688324669118849055905933892428523472032651482592897079244867267032523543047891452076353886120256330713800519988343875881443122552602468380896686844416293308202024558301922286248756002981718612104132367207215642573619863264251530307309178214641883277234273837710642115393768263966640921955112936958418917500659832668552957960544694708068117179280977996118518271379296683655439456927799172379941163611164833887059803509117622774330719196729387396105571628684964536326099735027646938179498317617968954445672788139274919261677423413425982453034114692916722375019455596152675420696030163978811411301943661854739915745578541540077240321453306535168831662588039230339796613251334468279140818289706803467714532438315184132584955904962864728724723110713227517391350665654558541477221629402643638152396864942471732414791116241570008261089765180602228808908543774880665693856912700928566066715028681124404914016112902881813768275714083906113204874147189727278398958045618353984893486992840128042355870739169802477789382094017632540380496935236368921264720480502772108669137510684603712468188614018653691905417665352725111877365097121798871408269777742653097195418776687915778113729649646886379563058068016236848621969194016525408741630916385553968862142986533849716314849290756670737946331813246729544974822419030817485921933592563996504672899873904918840674576572039728905296330608823436867174160932791248793787186434209143612252135172604012069230806909189556724477060100597265331087304555116530736954636949177979840369984878484544038339917280874526902999091136462455746799235954634567101463648600927067760512719452387657424436281654653250587476825329345427507527175870037464525791913176568878130508283318306828535394270729068075047421131962071182734825516387951470991730052776221887987303770620298081164545797210649308492075116763211976424576900007581200881162775630682126026537525357212329695701590731616845635249767668233663782535457582682826803885465687398954947177586596593472541960681277511512783979005168161906192772747970657732457276600334890949679009142616951786553680228965483024437066989855049543342509115254525617603357719846150924504097119722050252252675436535671134567244479499646125024833613190401191123968257103260923181241640619993303623740133997873731738629096188243963034574569316923176135715275447239973692034218455991747732384849068602537373506790966727646890406458269428119931359929326211110981239704022224537867481541908900475896717619732364656182909203638741433037521931485752222227042542147247227133477300209147348791374520509576107579925149825226244104986890461654048886444915086483537921486380728121017630608029606386991086233956998982150848555062300071079788503163206071466090575606939310410647234491167955211243782442959877183538887782543082135412988231889578861794973180734491173293816688223665405272866690484330375036814278013954951626820937025939972232944070134766528025291511629539442742207649566037273529591561726854300479194351083987562711851033208134251222122911639780388429326829776513961908612347238428035482772272747502784855089169791987880065368762268036451752103893964084978513260231127070612652787163239923165109530531556665336795785200399687103495114153318072387792829255721830585808940133824435596443407295372006205044448117642645604064329916747826395383647857944402205807828882645473897743381746202336998006727141478560228982316636206296409013309713174045768730658294139158782264064125011604203687194634064815168585262546257015062685355541657167290787567279385279112511824372473763969244013713159267772242921204716273116087853077079500662058838784752978783709045922091871136413892853607857396255514154531403087634700578432351539046746777408817194316234594460352772459422490136450913195404323702519035909654907033886678678139103033521480423571765279145279675446850094006552139397417394051915169477609256862608704503470694198873649833289511118308439898407391889017397774346931142489681002933341164938632912988726158011025788963666173618607786107379795006950128401299968325695254373945131689872247977673713689622438163867420857116991218433925628526667680435857342307171001562724596836149181637261288992543419079854085515611303700820095931108766021950756137466681721767277645709241040836181296459303908065183215188528578931343758001735365339570076695672030537463736917072252647277774773017914317079008833577087081004870072996336717840728679141782608919906774091698221773230325065215708629909752372067763879448390089275000044053705601826075230884940249903152716684912078410441259680366661271376110953648693376346038256920584012546279223636592503079544880349688693926206186490976081274743077341884846651732401097986614433660848422354382297323757457177798958427839532754276897298268933638724712395180441498869802034801265548982572960504638262140791681930006228431311270052955617377212603855119942773454574530373352498844206963156896724970263989711812828633772167299606515330657029503342400657650134761295890056368930537867846889465900100377744640432103369156109117502971570659165570658259997840941569475481368690935917770798604622853579374110110033874177660526984918120274480836114343603348071893846693016329039509375295570599858321981167952489830098012626064189946775167308906411748285849174049289241940295788611771983632154799125249689694701085096670069148303998484722634097077563950493376027109649062146021147225692117648333239577256920629650828224458376237352001780593673218614521973401718988204284787734894417179448898783846403038884600019840927503165869807718094967097286392759129134590396872122955982460924655065275305255759712884527636196098453727763363577913361720751627597553054099408441002763905872445934482445492008278310086276007707492325978322135091375122182475448373452113127521138063927990543023377181817317012267889901111393972205331071278857984335562239814347789682730102492464089795807354150347597253433434602128025998021602556328964777402478613061555751060816075661955961889459296924824805453362888541659703137508040430247895922043772168367500087063360615460364631337595350108974859370289559106442395405352660335767909269141745188478108222354921782532463887067753607947359544241968890219650735215862250354294491620930582732867454627186186286775446017242062747516231604033841192896915914913825749947697115226495964331658154274710783559646107754469997757453347972314095606913813688043140121397262042877202380998500288830122299395742151027122153785730184574546401626446171818914993784228896273371486151183012385334422798501515442429122986114779946192370080655846811777851630845563138668467471205129525463705637334106687344849550273275940285056171994731804949493005899500934792072220418621205956017150153770606033994425116601530496707908755847653555909478346172105965701920624026908111693517519433952276238869564842547274718285205743167754147200473136621520507203417386926957742862297232796950769511483174032146094284189245297231131868566244241896542370734013437173360697528525856982120125742836529910918774255236321155223250726552148800888139156742877762933668482220693627745468240873278221921380652793660855609475281495573343164861572454200761670252946665290979400104431852387222482339294616503755128005535230225615889754749292633271933269892837342126749621209504480119372848905597454553552649655203192901657422290212262925388345118391189974676501027897287273706982024012653042641966976631380956760963685046134461419307732977680101500747642818241578656537901836960040641425122563222880550444115288487016141750451979233089811949592227853754995264012143155548370990022910682832644052240611174619275464511960688904372501979324691941695561316228609656609983519966270296895937170104100756558396535006195929747700270145216020931060080501545680206370409752433966970523543071905066675205387658972848677415652722507225699095069458955333776691867749295132777523850308360190779799819222410693118813286189602830470246262162769111208272713551040358427011844407530959298096714002220260738817776132131848379243034170798148103617083931409966769215728483017090361736244510903023172177782588240826427174488019829591108749001543451601686192842968872079059668674262266774821756526194554682772932814548810661567723295815577030848145056418780973794713745307765375010973189890633182053916488728182722220900547986555424869187765673610656244461008714423248007836902943814753582337800895397733479298033071967041923869482480181020970122944744809593327962700154921292958741124560067292476533007364718981413343453754554805738776049794694933227196431449039540405962920237977697442739002359505074248601580901384468390063261273424543907625415037837231913470799034709354590787773573138146713859831507851520776626870685654048253472945521983703327882388226885371874414046141600013204223254657615029055752888742998133027004396287121266304563031804994068118296747106883603664420129990579963496845144389277467268121812783408304662309430783503459846152416793579776265022718755501299106557348680907276895046551398595758063539490202981141884562067084021109268717816077474734771843297775160892378506670102924389458946149028566243567070533739680568984609992894994397500011225160422650148191806724604236201997318886272829940634502974822287303977134746170049538572310126433237804268553259508924398984757115979616364408865775659065363580772205366503423131187456032189393507006807903604701781345240813109290869004545792323079511783581907700699923763441575466243705283121103014686483356450198877340203846358984717474497500014844935129047788977407230712373374799827959078777975299100595393667121812451000568316990478015343206748429516036474465599057184583655249651895728108156383943318384451601751330945747173721780470498915191806338701264002594714986088620042696368126961561717258762720987426475986795486923454845647427972974096572666611839367867421707135930879742114728247918248130407223308497406314071675851398510226969324274985352150794923976993160414824267343139333661066059704639149693101539224418625764740046933190257356659962235192336977837954451917916712450832541663618055862939466413660383624204230033155452153604138732067860794772866225667240758762701553766619694384773237682247282463703992778413477031316929058577375483237347389992396276381172384421937069430751262798693261696300121942816348393246174319316497202450667599678524349140230432109438278765082679700281021717940358243371348443419349661431677668769738853566989824497608283217371366454865917823845619230967014234407741189705254838499256467045229512379037026001241539298217165375709726811842875281871968697301375869235406846846796164103201608209843996202810770999175986114181604249009797332891700476101187146960079146660740252882101862117107982563420526372008616270244443316345884763625020365826931627372672272307757438615697381285392230362248231262982694695799363151790045579495010019718041703275042127616988007013905080281248858180127588109750622033686383422907513507103374937656182872493359395288214040943777669921219699125282010377258052384981964565068270834051172446331289308931171792568625981609020731116408146331615996807344225507499586706235580941262412833030693404346177296437551224182768768157239519537823509331282571451056660804157911255721560409750499771018982851656025900483530943583916556349129953134062935168118764636431318835773454232841835936400435672108700624480966533271216984505120237235351498823143811210875098425034816870777800546873355284401836206918211223045789175198308804012542612500765509856603221377979915886693422276035048016382752933757176574641929324233123645433129459474573066028435854120966890710336016923200084836636379415286793333314476018672273428846463012836200460448649088936749602095802387137579402447891371577625600562567547954360594101640959624134595829215380607325708394587309957405356955422786765969531188105762726553316594595885843292590845867901052422757462321236052743691193533663347375375004238679489589073692627519215364570427126533602565528244964437177216528720912714295956391135015760162144349731927700611090852522966037322432102442578688873206794310978366021229973518230831053627787096975518496174667316097243201689881349517343744286498871820825861268977475950083155385212730879320125717023268853557559567369138080720946400986500267283436407816868415200010303947763804228248187448696251577402979953448627790537712213116065626136932599678446363893957682228963721876840002317083560780794365796476741763695201159717470777036765786809716841178616987162048344329518716061948028301072530821573103023648990806524595806188581581309646859577840687300363900708441118598422617229226053033749599161130080018524971776265935484084807277364311806828436828593909508809619770449750505770478548388816525851176870700636427010328212237378976566897702475409588247622341290718959749632085786839539876601358405292563381669810738050899531632272742882776049191027328066583464291774424853668110056000760351066167135566672619722361968488679041470804764797092651376805812957982975154286950633473880296975975158769021355321603181472685044365661503994381742132575423919711786883687089204149700766564280191691136074762875340850879389015204648467883445243555876862770710634048103644722285996156737625345892965234135360727133351883964146136066752442276652080534854190794866927290427314853285479961857901535522352504593906160152921097345062274451653035495098946047500307914613311816774561199011677779033223276770851791116164664487854803318312206943525376301484226806849822383073703208188268078451959889675409645100673536488075753795061771989425809063541496906393320923875830960893650566231270474037556032037330357655833972639881911077529344064302488044623531803055114180656012045759051347835072632364559744961115782420053593630684806804509967298731012249425712063809306402459044609709998648053115796605995352089821932294777920586104369208924440934868390209003000669173017851759425934458542473061800219356981637684897947416678730388906132163768663837961153249526592877523937506101510275009939891067422731306440433704172382429146292560343650552536475605290533176772483037497513538136350973453035178747691586993652683123495371648969373835153195790260308188916163448641230164401455911052329045201250451664281631498088231809331983364009875848822600355652684880400166568643188993557840291365630265635048527436252068277773526377704547427212086051967075925745639938637319630490964660080860595786456818819700509254127544377301670101805449284436033882712766345999350250649043001184705633181469473749714294298935979391436059179772108818246522713228039270879683232388674770037741985600138509725921002546293423034875704582830914774738845994957053483119221151576881062872072456767792546740473272380185231508008402995499541550651654989838256986416163054687514244647695389952627292140086616426968245968031774603838202647005636917043981356555759637311745064664087557305582001458412942814936554593702952319241794278168567087025090647307341333988800069547312013951683454757711555322724728585784423537720347569174383112015455892450954006501664500833643753668847903695481885609528058540269908355900794164193344255164526229569329889197871430531187083952161251944657582571975176409582094212317006453606749825085740723088417037358582004320801261677880601395466483789477359076997813357627822590207855923054386560707415680144790825491813955412623349389377415082738211933878373819017145393796391544231391443426984554807426748084550734019248696975849516508075751842696188961998486654615781971703104648228024828451592662107903647895377052062373948917583681640555846151988934379542548033226013712761929121920495253547633784194033896361000045886832693741218725453909326111540142294096641465197771198813059587806178066537981065869376749438227298462268064141182252749761951613229437790089944480291509381887890461316201644207114922947656388818409828392373291557028492549657818839328922559035651884516865138328975010149785389579473469903514875725852323806193958297015015537333657000126028891553447578713845848616982566432183439121605302614086204562115122955861963060960229848533031556574207914390980315679993200434769711014243877278404322739164995209312751023218820207536376579850324382827389138048726652449425963363393821737810527551740824553897186536471681179895978239039168293070936380626590144503604238515328815801188294955705767475008806439814439167544072177142678347632064121699861831161734519968227118350807795849721140810934900060908986306194956792722243524551877885963805306272714530764296137931451047277840180382804080367470180572219318679821350679327834544088688250005521333408261917551901057161152479570576543934379517582291339874728269948427611665230748993895438226366174072569310747639652993061659633628582288466104824728297577621394646735402872479542538598023457286349467113216517316579625090246801741233524486886514910605671437723593414194238324675876008210358236678212028235778650361644245832990244351817123947372332573724661017028546422486524001919820387634163941202386508893607102535361781948863296487393221163908031505355469224337839307069339993789426141659864811466596660677611465834094119281495342865648636112092902720965850163150218697647130544824338532310251778331952195777339597343221809116408744476484450207561260782539194015340232858938648586928954860024784935134649745104914146748599714746123661796806420919603868734432281572914285100651187392672054328183253328546155416160729660337624637454579204339537012477671890533477675405907772108717983943553259880835317624443160957572724649782777675212465831015915309504194580391625470081581678509371835644181874718320642892220473306978949313906729761479245649300661529639775566116361598901105856478317776955045775644576117009330899306900904626952578092121925839351080339679098790028959713380729677993496361496414044658415543279693417190478623353926339911207910901298817950157340424210983034455820791215989143312597933856317034821039843180414353044986462583502066446281746034878030980623718747647848110308795021154946438937718543669030479159838068657605454280306772229406481120362640570406826399567548024134467662028293452143149361255289773775020511262211895555882735639765070775896475043908465165649474130119903912345653672590460908089358206915083352952323341367896855917001203491991455391807518282749327691760496517463794349973206541205982740017805509018709953059720723197402681912987525444861790148247381467178241794728171556650091466262174589611402414813792709190362308040714912379198541070420573685778507934691439367162707803551653469198766229051568043295882330174609330716481930117753980360236501535678226230015160008690801227245258523490162840884923248299138304831524022899973414125289117762045051866998113791346113940250166431500491443942317744142407322856281687816344711624940607861243374163379903765124802251490756864523465110728142747796694353721462115383599049573038787247919368141313184889785919268571243693321110042819674673500273986227138594280890330361242618408076960622996266985338583931387168248712201593691583559107324338581823919339355792465816287579115067446869996469296959478757223085169523007626258336630061075105228878018639028771904781033301978076663943588204384031794382576361607210186140989868081463121925447146198441958923382691160803479864001036022206120629029460168731532926511029574354720792273633942917500533339582660431842122933786624954895636085321284832305724401870738550538389553751125718924563573144891273404123748466400239736241847646112215569873785230166403465368877310228890396457459527668603582525908448871290763692067100860080019479592648334248546387745726871444143902113627320529922599258293922250040925242658995641759473568492028339847996963307805954970726540074110239772385429614096354380655239605347492463334395088428756634414102190522401409685902983763502577098563982541144622468737535809989659044057130458912474421807409042030395592900068803192074736050399702468301381715947765430453597657784035205090744438960629487013283634125373319384363553436601739173179159799175421667709268837153832612481374579843826388889337013533353053394552537440774053347782444082703080985552456931095280017653638926713171687846318019535355281322299264141435564051795699086138958701649765884324277623525159001301845401085464100136456959788619309641023584964743830323722201237940647740789719835623383724171314747961847949608523003082699882150669353342215010655043680018633894456217322901309298379414815108476198895716417119552765736382115214761921232409680951146898151005667986836538858006115496145271085885707269516547934322682213926399471138902936321163755153444478514555152394170067944362232535744462246960738442194506480877459956606413991755907612043067421935445589390236026127936616439427727450484077319725053679226002783111360723212310895047929126422225905416901565192947215769708842864305415242746244431061549103204978319416848795461677532416546849667012615869635377245672112276731779770543644124836223603194065374326882947894406408437967853242444924997674030075290652582838478093829365844326270678561531886635397518051813494588110999537253435960107264631566383648416100617846575479184365190613022176373180380066259618423225326444588414361437613993989532256479382839029312638223780651771795928723170961583106749120751039706990077061397840733330096024492990855479170973033328800342753439460143442460298057279791104661766686443880714050160755914922095741184700767490476445467610894270882595893037576324170603449943372348758088417441773836759097540291494052592952096568221214850146419526694129448949174211081750452010298301178055932019494148823701408224726096263371808712900391172549133981503026905732874880902229606990122888217455363115451661800527125426537540392889596049692120755012493375704790862942296637743945415463288283498545178138177421491441573074134728347538772200314010495059590044305410785296602741663696167348721204262998461905969408959398879912590166891145120742882962944344588491536525582401464139926275387971246012339080363282931882161595012935726117291663167187010459855658435672252182396144899970278591077302663663933439745970952335513530446760491114767377697593169895947568016855217941003690849267172949415770468096445183445063359207115338430667533668295379990152075038637288576632876940377865560362531469351254249252606742713439469129406136051200149698802318271050878277379438703849554274595486429114822683087284031221391678205926565198837986500054582924025519522798125890972002589862091883665486413049491742922855005495904115527708116533635628945706842233129604586605783245923850595453264582179603202012548263850336838571717797808892384204014405177121989001740671951059238520220855940258321917361119257538621447964520313203587630740212319870264277891430288374218923811768785273406182626595460126891581500610022502851909364865854665443771490799745377141475134632617860314759857959628318211626639445973986830179511334765157866415240374180930629736373476578435405515524437728745517029238096697970086681521895539294153729369635433517293879083228012559617459782564063763649320781219686948001107978429439917763229788612866135469119897992455228269003869544982697644353086690995840634973630407097339551868057400913125544166961580344717883130011322690715324072802828425599806796636124796359989367339445630347852713409221078746097829008149736607325796760522873050797007966193770849895415408192642817263348237124625638323623137493316225057086742226176113677437175750838515323435506768772730402300078519008285242027436352884634389231209577591319811561636646880491283033147767701295561222482659441316829848264219995341692705279346715458389086565652793168595263113699986805789317169819272666879697658642432754755954178983365552217631659874704700033077932013026272515084955577159764490097401341899209237918099058136655691729730433525867871739203860645670092275189904767602307109697866979868239868893587595010162650051289948550132683443872585534724765186866399106753014243129967114206548751787430870446910400482148046157910420824304095893529033070230903365070329140300073574999335824308202361983842809081189543589165015895259597140316645731698166285901345618146429556966657419396803626870034120954006184387632415721990136624986241518983706593744406662553009332746365158100655968754454056820247745790147614495044951388829441465279461971706508860840066537535835757347697814542867030488916581262784332202678566258593013344638649758006312536093674377296028668061139367155889174650696680223839340566503218867424618749780538300129368917114409551738191213872091622358252984421853024436628933199394305116454177897822912268854556762991336669614431151697577222558319920680208447438970443573605639726965068378382682604615773381407701636170891340152701067594211460520168437413666257405686188554965574577776656851923931494355725485739160533722790889057687947083079204192983562271028195523092336518124408150661868073792582330259070442882363074830415550027655880768855054132469440823364445713278187941557452023569099069441711694712242492178035298400168693168080241137190133263467539719327942832533785724484523715668190311624236992347122427854436069969630845020096312982090749942539802495615871889315732490581863989929036748768801025922703681198536060435151007357565758950295544819304040414583714934734615706017833945195010150923292862489869648943986432853816964772304038514469241276815497788469589883419074918588267932339091287873625846166488731000205712190410911419073556015859699362815005320293251861158948221351776560366302201034005911358598263994393346097114915959624804897208269998231202062418131406168750588686172358797318618776168619463809283142391654537846566961063312185215896668510483548706015463965785322403412544470042325021403866150932757461890933991006521906698776939229843012507268075633499736175769443824328010248689937500698053716561751072956441495974747513941665673595101783814664442931475690059667731061400987994271777511925745390212324784938924027039180012078861368823290823035454044190399442208108401736392319064597274493945888395009441589494620231831101984516340029677589675862204388682083942887629873284420748885337436473195232129242968942673264118810491972244340009625782579149275118870417411310902962389582966235106943471190100548562218452919078639841922628168267707624695462239994907907062376023200340247359138911247459977103097696194290272955309798054048670991102734926594017412926481558706778703485318246780635560207383191437520409394252820510162599296032764475351924019241112098870133869265014148228021512336082593787072903284100067244217251716225329553357477524186505457753425058480555100418427785692826431066898172933381597025256489584356059442329432912502756017567491833197380969985309628147903103169809557071257315654435673788377289332132673403601955558013455063788787249332168364758283171018124119894186937889570205526665223989989916171807010242191460175385994866940198783592962455445297620677238282032698702632758897050714488916058078459253293536004144182836146154990316385720448836107931144755698065272092008400452206753714074509700487349940617958385035368826978657043209918733014878345304039263401126523447074303056450007720133344049172834272604231249293945168185796878102965251299650314466731340800326585404602364896857308863980442858190516802344572624995821150026972790788445598972594505242382399060567051638683629588497435940074068099813246532834859569895691511868445440620404616195314896395891590157037454611922912647793138311119306520319714355976342937763509913132978662764616854461813422090372188112598232570950491217402121267769069317118990998016045461602560804224242898560853512106485046211193301358978318907182070432912994029482173031053828500887069792557403599643432393149641675741610752330716989185922280356210136658738471637727724552814733404372482277744519701958162283317040649790555086422132606768032964765994598110021363142220089367485644229036049146253571555105906173410371340228155406966506442290021854657717118696066801731157975841520165480663165200575637843945296614929679194333762967812230900240570029937912332090134769989815993850860102383066369589500019229864951172604429809845239661011921144652068363209110081404118414460944007118260412528874828208040088757918845383944597938816261717209170823637863430165223779941760838221642446281115362154585886804614184020850151594853259225836717100341276213323629838533257351877347324453913430208861994909704621798519165728215057911391572005189379520470811474392393433690265032309932405799891895215244416924624720816926862181265727954240036203651652284097003523536730188168818812253598526609131273107755832695737542319180509273763708206605449372905070595050752998170979346724035759580323092169800623862010689223796534527385082744448588709510331659144353649068816708028585393658998186684848107089245074208471419641754376162355067976302708393806620043173984973134566066237128763612117026919541482006204435416791551261469920661502689849481346656407525762544480896594989341853151811056013553751149048993118745504960118361345298777265139280815406822854311340086390554210571414152202659880882263382057855207833209531894936858408740978435702800987583536673982551753997604331842465158445855352255260873944988365604317633059265534555746456325632949773945070234921849031673330168333644571873434189192190855872545187383943348031026960745328719213810380567512100597214242863082347997245780814709404081547754186942408979608443846197216112143924491821969344298539165861553964570361637111848658664133584470362338337250867686872931447879731219468011437559028674551611683469953256371604383084985935057798369097288673677254876856637943663127338036802631505502835164210453376693104574118575654980715852689708324285882386831023225646088744795165758492085840032554024428519105985539171159861902022913569179733858603424291878780977793640935033510550036097971225288981344678913151584218549000141836392232825085487388978577399194242037273812452927534252002436981478679879548301240814348542297348895990579572521786203021229543672018077667392368186754352540732518502212868420728998287923465695060662034134687038734178455268966779891120780226446704782550816543529525715004492108345981550672964475847878576201083884303174820484409685988376633193034317508376387783047147631239165901165670329357993071974994836483036893838809429317232331503208172092934063583463052102024405667192124583132559833427294233076456670505877124624768299912039002671295349881960359106602104753470037136365239420476341684669970587072863048461951255948481173964433718254575495026891075203823080816286169659160090536721334299516342666778322387637803897604631181152178653892008031549032397591722460283568075995414498759667778801028731922106689088880854120283970100973278323157229809426799722379518157769815526591880094200216463344182928666730828685371506924429865406820751976363922451457046854967029372503635810286226340713164140188952378720128894853330139434449578867199339706052200538174419958062008560505959995757483127114652124849533092507296143888504432831521976770610175046619028488844248235120430911265274644746423802938740954982185547574637842314532452255921814694909202733538045896977402818188404098541086357687326716688051094269672193906365178480755471357006712687242366864897547834950658707232663679169245850398695519428699588229735482223516018403185134810692569600128516773196312813589823613558875104059749381154666292643928354049850339427293735650724292727574340452348239732949313176702111974423339353141264494161876883035185944641697017153705552839398949047580073244774280265353122722255078576384205069902632323517182171023393032896007912448634608332286594524157344135305694928802322147129374573322063358398016932611515225426033681700954953984479138610431332301569779477068211012999816264098976390519118153807360570335822588682528253198148284218008080585950554842032754482367201616129088194202514993873539519802201174643689772151866793070232499196864293598905964237443652074006276366478827688243897154627931878685462682733468479442779212729753961744731480034521025766363467365870742007488251990599190018338185060634552488124431142848872154091736905423522887071677768425389856446741760732377381517791906289353977660389887296413679496884345575112337292450295126910040035962658564470135840463461742273770745690139924493161293299236880176080253771364086079389370097209976396453936601381203242057832303401172779448337625281769876720348272573929587871744792995709989966495882705708425624773198515512344814207469653213125007215412419448423685163448404892184029878622498828357887384990273715603962710039321113989769482656862520970718029394080595254667761999532371585122272958319635493989703101993858288609386581201355644111054774135009606321393809198938142801052056979826622156431905452015660845786954542258368596495251946487590006581508097139618298883184000887361596496706848360131680342248359905701200777091444337507741828892484707449912112213689137747979664526294898277568689522521269542196186266948332836157023756000611546527960115531421795274086769838775839919335487325684928378416993610113115732385743147965991801238451393370761623004838022489821240465066669436132151571461180608780528481599873447053447083353079898572411483418923224239419481346504933909686426298649629205278341046031434155978653202614902281226371199704118910509853280647714345260813300338211141504172116202898880554598009543473041458482687670872584545685320935646590942769349578033638905232513701940021973065643413306710381129163302933354638549473009415314067504499537536429033410438495279022955764535618968122043253672453184560446357735275081849572879613475423573124210203796104207387162237425831457642759208909073617964614807134942363327560071252755992429762513121730256753676220213414280422089982208622562025688588655029034995469492570896817326192222856129084199328796991361115239592295468373020467735135175792874436623248992343051688425547995386929487170868454059948915270162708946772463443287247846950396854192056435068636743436497489090068932398493546393665211570272495830864542624895605485303006148688546698843562755543793330415930931690843408634749697720553769232345089848455196470332449054752759602714779302062449679240054818734667046123289889504874460424654000114098952980330240793551616745830411928820775629089496400556063077749215156136229729367092113766020223321986908994134918276426844111382080532964503982490948082077735910213747885778192366334341789102563496418424950857770699986300372977678781322998629347185019508818522684515350876333013850696964815812208192825588012629045522530250786246211604408851049005753685757609868281990953955059382291765007797011507381743528773825515579064240930268435660955482157721883304505083403642597009103526666437847742998805198207207301793521792455119576826005952725634795455364841391286887303364663440041849546811372260058238136023406521906499507735053140243163288674478516089909572961429375693168763090576564587962252608634301639712959983011804003080669745573747011503907120793934813522259985529259698490932727479910209329868597254312037972220662225062074660848721740714962499447931725330257834239223478275363194754558230863529549285599813142565294785104307352124022769546135066864270280658612355121566078921117817033993034312107214677535953107705661623004257699888536045547831920340078285150190145702895720074221050874514624622681826419295233033641451136544120115472190355428347481770191633005491954773982871443721765481809813154916811693721431353000138704449500209323766415360291641468325136692316749366963688036322701568691243827796526715719561452107999129919866478582136006093734389025828506394328521415200194503295422044333375933602174171792964116334190129134377425475759153807417933734173164195455065240659738475526182844984365547049805231097707879291851555544546981634409121369792283373931944317424630427270548845336294681237866603436092570036399261109930326765902214730958983500361815806280329464292594850804907091217428763253397283522893651563463486699678586434919780758090293828575190509334302788080569745394892698276009133896789955363907279777397074447684240004437405834052193780707935082519948579653244830118743505606847744631486823539869788739047916502898934507423633873898906425055360262653470890981790689733941534838158467937124761344341897496134376613267297755563416205982100215173747732460875740089430604609107125614496099988918212838479968227739535885114567367709278701523502861630690866382579118848859312015464491695245793062570255287354120207916052407560381850174075152926366565064889613799195717756341267302546023597795393124563586347122573866292213717038281393885469976432177627490194155592230107707067485429233422995395330831412406889242021244488224085975098787458677031972547962154382060367555644450159483585019397955524724242708164060260727430031153886874883171385818861539786894789024780589993610983291886016061845998505805800707176028027614210564261111358583013201161697148656860058525139834122606290383421563038695683249956244650532381097561639431212046951976600840125438179402187651165795219318322885957151713286355236270141089844968755692704722249472083512541684148707808247987110373605482339592173929799142277476459011591890998429812742794086112164880964091823549072508266864798220263087811717342327361846421779961895254590103357097491362166218690012911224973860317669640052041150296025509165042790083540971061648889228137736852592408155109727629703911759623936753691700437788801071021900867779956587981645807845651291640425665232389141799335815714551635070416923461307442737912713320917026463216918702443910783544929926789537087886785813806238096291939728151281812398446450790235692397209137690942196371284148789410758947958062012170395632542242798061515373265643583648608187673112079375950956818257224757628907975999243878186603800431314434028261968754449580066567310261041053365939815320872579127256738790092449641704614327338383598379176801019103823922411738235496916913523484805393348041463493109216962601589702641499736265044119936812883858918229912086575616263841043048055496506802170876943265245839537704119347368337467979908521153595938302312225004907579175706685326814448025708730881156549264808460424446539800480546358536979944864980382637882064174520624309708052563539117366286324977549084083169008255659100694393046834698863949650476003237334352778730720233067965124192941509484398344804756513456741919876788396870841666043521455239495950745671105914260213539665365666331094571529239725684988476336020495477113590457869430116503025086212835072826981252786156321320716966165530401869763444323573225992234871350321884223923366739026715334159707461625045427944866292720150524025581419896420388275297960099674222646457041424875819660892884783704594792479231206732057929199655843780728647822028982383088394281982385796413309815022380049502832211384037959592204734668622008943065314803771471990507002031156814927548674889621581462981227933627224713148928352105841291459122398165156134821300442104648657540250087660092875301193927591271256262642029821021383363198725435613004244562933336937622764141045738215259010115935270324164851061056544446208763482240869298126518569221357330492977817514194859877783817990904972689688079091862162246023115012079163537154548915484793679253171490316980161552588617126512434164897608323497060551894733915617377250772193414857863592937279478968185795575081528927083631619449058371869715152831625204285096078191027879578757123242426649098027334449375889779464330422092480423120783909713670617724763588226370559410636095477078028760019836284957497419910210018181800896604399956326050143563496551335529956238358644980104193865876439058359518161847068179504361030245733814390672593065322874672216280082735524227661015127162029821150420610870622163716177084763600848177902420344228723579759711584875498896078385923034766605348836026366043476091996883299088399435887105139953722381344333799529009000769007144929980735864643522798912824116236788961445694729781701130393023114158870603394836580057372677400299665221780228019586353557912756236118364848246477379251283737280012864442492518806739729767996260989948534740624827947037638759895377746353226310139074064722126884309426154375231026375764500386875748665926336650450315800642246990021043323223107026400578096603767502785169338153582501640153915850905927191432975486531450347668840669709460218563689965164791839302301386663425416005132656130915141365279617470922917421731669644586158586627114449241074131742743240160958271870750845896491305681296874923561598846744475479004529571493104153491145108840524896523133712547167318961361182510883074760148246418458749388420513208584412780048911061510319266202788511539582289471841365283409225688049842138997040707547609390069331323643964765345232338014794428365743347758746867330553179911779809725662656349909849025565906209141491907039391906396193229489754549215564417674630147940651860934554073174725040235867646320894534959365682391199908330277145452315847954936988744433587074767183932312385279941750771285430903570321456413350355546146425877859162974578419147586128002851808894339457950288049059811510715443551610691419353409495217117470241408004177928481913703185065737693111034640206550347297312738238474025231576046383286425053256204008169622483935256299646822582149498540918465470361233539232873774661119779559279985417203824923472185911093021722248664932473183428595598351157390360719257733027819462448294422496853409666695372929086494264471679736731807051270978100264704925908608457014848442242585946181610187296842175986111767888750237488347487540131202196753173963795668221260474938882349823522007325458868065422145697285643983654869642974943411943037097541444798340386798521175289180279489402137891129553117580078622633713262093446246854670210567163507183155751328758526247862680922808936772774824332060565575226435451351869949298210018231350420957232671757777821093121759606594944410821534585366631231885723517090012923336585253016313615496004103866652762831462387367019068839462413792654346473094706697779547794257693123317402998753879694511134795438970994699954080093138043851882979464260321527919629719409665484046252094423014367431605830226394810645185000479486890065490683693053688208487190802120974619167740710442716141592330385678866432267441159590199862578007327412413059446754500108616853917156126454871928813138533461802149166029472973680786167930963575337480025027910074135850688996205005495876548901851251228585440385233249737383048612771777233473937891039994199216827027710291925653127764468978453338040242272719637997549937360299379571965679737430677827785320622421116568373103520466498185092011851702867659353055684583903103460880917368421330307008787366469805193360939960348938292619132251003496368168483979466455049794884319281617914526835074972425339235360815450075144211985735764398363777619537068458099827876626772164950596966880097471072109029332901800492442802176480743741984427448162200571979305473751010713600658762425562202489277494035021117237729265590953385232148469288928721606002006291108472570480683902905311762874055289660897921454219933570437526695632979539817648310221049276895767990160804817308974024194600274956919658614997954743974891058605405646388041958473943336803208444213109411927587303500190596462034820726587758605167522941304203002455006975716126552235702565503619156079372646952390547515461735972890504624235302375217726989934362877068522749166334209502244860408193041746014201585908622149893615921730341468323387939346526372689835467709142045710942056295182224935442735706672909210239073846989104640340121155239162825898896035265464088381886973062269289531997258944691879876172317769882795225900871862188940747101817328488946397579597228534271326784648073910240885518497332484643273586547681945820001125799784305911632313973099602976673296214244245834545744009152140653883802202906191043459001441668534711196254039904680338957810291354946329060480600908738600826457505333676587831594828887461310070000967916983069505324086039769884499669564009807452423036319331252211031037298435627751969648074747938105198057379049749771974975412302637905586682642361797602741289407029530467098323995834156575855945892072156440695729704971261063678522694195325858474456438652532715035769728754794900293068313120615418379570786671423946259230940663077031542234419509939192807564976823621272608126482109042333069324110228569183746555695422193248597735609622135145576055382467605647353125583910452211369031360614872482537920537832058304302740019687607127432023025798666895670136344569480328762116531520570260434510668778599390480207372933110242522487197118306268543075587555336738734385639795920714157707711424846852227452022509461301799394771736134563519870281539063219646734926939658585549589972147993396887962938372425062207306215126004454549517506407879982823977493493470738139209656700290183076068527374914293871260831429775958168869402152710988513561782912033636078760504771237276793218228609716953821353958392161666659814058061718769066504868739773040299032087930518256566132440045419596419720456445242085700697079777958391925045635289077615215032134660426388299783883185036189750653688857228688141298075538527914383929159022909490906433609086471146443678705602929205727323986301501043489083650777193673617125381618057459531396523177992459405249701098014887944910233967799010149181214173850803637211086287446253911107399932403606791969724140069396418756837914476175684218746552664875751279996827956539213994702287316265563017638454619245022483519135721674783712737638319654458511429046176076359535573468888362745638192051021914940187728483458095098385597735310371132540183703752323715404489587764651076959076192143364136978390936039166641150202401375336837693058439495550549101753896477198770597737348135417666004151767668703432480848536165650384526780185763634503462156381664206539105437941826177474037655811535685417224775448225700716084870300779643688934884419511838355119633855273270775580963728423848220470282493772612585157260254126807899844366434592609258866386176600602189225749673471150590817189674757225213960375536398851495247640837319196275566202525275693984874733611534994565575104788466561987948729121713969034845538217439079499602553596738587528197105610172903944964970926567419623485428567984823428200815435667799058052328243501812081550391358870721346051353046822353805623842448208087361583294956362151626711326182624065714472316431792558129995849629324737994074074764290266536853196894440911132569462676042042529187334338892744363668750252941996576197439113695875852131907260158756248102536958181935032774099366211806879618432745229716416530774775630696886192842493023601239151588476601355711892152270930987424961839572892190799876831498046663704147608405372235014026368043267940285298725779803165372263197380779106298549368753835876052861639884747178328266708072825537716699532396250447453619030338305163168949399078404933208956900543101042699717654845064349968062323804084367783808921197638584273697087262196172684211819947247500806920397085540265905659946872615748052490097286306713271602995208094311185802040202582736958247347914520051277879020187603909359472547864600728222399726720485418246987159881086809504769556668639150880923793704964297021977629685637999260356504233508157468712451342596331093688558257838471305703150986914818844999649117806501786244495063919351249062309763029595383889649123747609550823449629727201124136699920041707050385377975065339695476494758308424156922233098887388978644097265401796466168460303580902222585871262272267508792245728271704060610187649328662155044899326002210645138269762784917095936345321043788901508385782707024608592822394363051394085276724421060960274579223592235425995640508354735743113291950438084199239785649725775399765787838334466985183430326426952019789016969077408885129238704183820156636793597787294763613566150341401112372159323595284578425085975882679427924633760332124272576870586008430726691537541567142186962956097453741727126938623566696084276586877243589862536401223561505003222899019552998349542500246475274210873635901381769051547651115642362800032333580354496841499072364179579751763577731150423798543614952943598120501009800326049295410583447314150423959890432071223563866435345618239322710455974396703501836538837694812500348419091864721438938689352574872596101161192279295801224791670055061410880295731279832903209398990789759958098114893556473403014602125574954402339101694837107277646210950147724795643324983085205174518192999316199716439452697026767068101258368732541752945277553721892166254481972110103759893673811088166202669261834492541952923443388074415117637431671890467156518682996093897256607405044468483774464372230784594020277521985491813745839965154389081350547328557267132931932494361911874962340093997687459671539675379256995070690415767249631428384492081324120542160904789181412578495612335292398236843924366465261747515683163687207637077225631718544077239378627731149026307668909182801940394871863112317046428787758873972049497598032765565591471027838385781048455887946075933126418699027963796148436959096465660784355968987460417007282343392226472296470911864761725212230674701284943350234930687870496337438179889352069370445222877350831115479207232541578774616808506030347934172712873316090347117819317015464551442803778090710453791242362936855155868444328278844540978661201563337106412455751389154107064335259700345817582983018209668681457826626398075785218015056703559269411146443032159074072320494216414038219159815386624728444719745763620440570885707651890200586599294528796264660157544281141010067770961538019710495039518274391023776740480511122786422900534691215279083777705465894306406578766941229190143243909720409129701317145187710210099391826384344083520475788943182215144387495817477159576828305743620290178827118783982870583720873884001001779442803298830400240823472218244910580855907143937038943419816221210705989801107413105157776222870848197812765205988308069373305527501328468497070928108686260154717773758036353659541198159065651748826044033670480767084125133971421596049328203775015522215596536348870550667289253673724833079535280449805508143010622223936870173176262632259407044380737084792071679555950816459079876324107699838065080860220971202671953723125902990246470803087067474092621987677570678396193764991887264971830868532502855492518423807833484757215558936586236056781796640764215022943020823995000108201762451426919397360002832368111943538078986320486247306562765554571648550304976518308543132582954386504085428016554723297392175867866692913803053610456971320016239667628618923159287008297565618619972245211831246047638006296913331472909627159206262673051533153630665502004924713840008990130352771015782627240351100160971620723987194780558921877743343956476407541078621661935844902781658903512162573672736397024872008787201218194013389339930897881812521265797917436903479422642995846959307900670078161747271080897952252493941670327122019145997726186744381594196589719259354000339976186826756134141214818485037637831764994004833866861476256675315082625779138094325026526696261858743844872634331171840193821541059474820961662780291459462460143284145665597317561434120415899470438633622199900997767420745688442610193678573619250393182351645425688454325649603756271944882243731201343010807186954718842305741578884140250582648484654364139253640055147703333736928085979480768008182869844978304428554696695876448437149915826324493843446747598425849726044979683669196199851831183267522914283630843342501657358596328895834609959462629218519607135883714429822842228603783510255865889677976202908145226913714412383050524973155512357259293037007222075267210542305144703929882081303322397970599424565454966102900016434685777323396136777706402773433246791108360353204162110986188274669186801960430826659384345567675209997154023002159571159316356459669580021284028652463605502927816971937821951206778040469240269450945041123063164232082241811172756279563621378589683373514422716762757704932555890846972034659549093808844572344163889881731097822627784192810427027409001744641240863683008159321382890379978903564566271550862280659859162392769242218875477341973094542219677111705654008389536490002081836360355853472642093463956489126418586253474690723273778953613972945297093092911629398612234823115470724922356101397565378718022707939786335196873983342489648877055660990727901147331126290665427582604184900410568373356985846385587550000159479420717724068653354712482637751055897940705182912959936305132485428767316032771162553025864812187849134754683823916039894858319129044954189306078469543655468154682927684658880053662479477868113409996924283524842805749359536815253535096776690635958354126728705753900178337701260152466661883866394347608162331644751651701382501667562278587915559721173747023039120740383891072948526993068330813010679337697610665139392866793779005747389453307412614907627873939334097889771115408212711161385385221757085072018184654927677942315925629756592309400936775081952236892649816162380403580443764433616761873098786472072261167618386027885402735885135329526883631641737886863672957039232620114158232677198207709565591876136049100454170712516202565600492290610282156204734321940693174996606632312589298568789652356705578921589133004545108479281215337209748319031642609935560377335882856676691880641703162051097165753593000778689647129951022462251631702156629718193400397862872871905537305609457003929199542508646202242021139069296232107399793429711683875077743388494920009471047761180315608756840020643176967874830115363425349941582671727988387146254420181678913098762235216833516218333373909692529682594645663537877529039568460803538441128500475404046623290956546660361227086917228166632657791955974674457882420273397564918803294387208082476479862992715973380306274328427358222621218076307735335701614972273838695387082948745174648485926656184758292783413842499502593815628466442033121000008140032629824247799254286864495894729756847556455819503257284333548366856330652170606470690123979953550104134690148252274531601972423167118943642775950733592071374747385568746430434919593806931886519818853378475710857494248602541173121252603645860353083897141730390747062564371904515411045222438829976430657942832367578750164998640026066376558688557031070199026397528360546283732827989857204698109613178303692771634704765800327496434596102217097280427315967218246547784523463942861564716871037762770178908461774075580746874558721692785800076339561056541153936695082661203691656226139918606418146899729215520628728612725049963260244088000079115020571057600662425193272696949266899594101122733123966954662196393784201191646721559833398006169492466291105568324197875464363853118085537727724957723676008534774618339732187038623882998381050607258730661366516887297045630228207772446893426836592559766921130739450671269175867330922863834080996361048940741012209962294538131712435385758935889034263813386540272229202546728611766955068892932731476312483568984513484520269557886612064745898003965192209288809616790194798680284764897218737580148464219629690775417836791296246423459359120299215118088635505880935539861176706339625780058242701376526126990287380856450276475317782358624756404944855282850646586366689760180780616071416215185181803155666871473166001487606477604006068634792902346693264671338722798019226996881875228051663571715650447862749165164470193969022301165370809459347506554602275819103003266774843996015010102692267040882177713240479511777397019996817318188805125509298497640629393697800209375482987212935226326558146482100259132263363417335984922886787366564925289050659733219621424415948764332691827308851900096102255067641968764528770615410232079871273583455543382611129368085881831870511457270436221134314655751894723840619559380462392151096034123970741467031893462468899434595569575681577700728893962647488131512182821093602584221740471733439963763969018866757002352976762953151723058537261931998702323942849440163805379980356810947587646093999101741303251621809625315376240019720698541457173875690780635434937112544416650620825101900363409915967137549967070959485724764612068107065151982724287388710639564575128940764444934106502143317109576683938117984008610135699156560081820839629103955997012971657475812541099189408978586238658318662140161854232007057587091850155553346039090382507854565543677698462363976744055019628383587979770870331117281920279442409869712336983174976620412739033158213454910674199256617703674559984200603835638353381325133257467783576356263737335728814217353668771780088690764434374228292725097142782067121499902372624043396968178123416664484822282836445975151523664413683584362709556739291735354970872791768641189634476790755719200430549902643332157133795246172715783145566583708477113010241601871012869084545408628864138111446933745904109191600324398201634238294443625576601786905163781016032290053074178994372190412637137814702479586580271420595065982752681826111399481584233249911045681168171752048950876051971884151238053688952598594832537924101566763196495827897992581054374417905253587090842789527489310257784226814873594649952593343782800121463633479131088914655638561551575469615832148108912350192771597007220481955485581136581417070686752785658648928486885814487096622927459859877433221893365415768109822627256473608131768849059661862538639351275155182698078809070276491487086316720280293415592275841995784441836076308884640250100476003132076035619961185681008186122961719296813994906952176623560202416989899413486996537036980146920438193957881466405798575808136639327185907058658291437193812212842550407339811945747309391463242479298641538037208064977695959865188659819105298528328894805557203397645893799179736672923633792210337301350205288962592895749081354527375188624507311073431792906711319637166473704346286187999349327535121341769335453466403897302106386527460713695589050719627599322970535340214906468380808650153225265646956671781714416919469177247485528813620600112691686888059633497035608110524012925890352827707689124790532764920210020839922034064067669613645493084120829783821409948121787558318759128036269251779054349727363380094976975324218753836035566845955722025906063795468504991565222738044383845126250753091282732949680068699232700880369154456654853211869044586373678375304071765169668542178557033213933339547609352953614659498395399894914713152708593617128006009059528577285326502193483886185549216426386613382845875414357899438689533210494051787546999875147848223386834391387491012149112158877925044933360037358808922251931872544910173871232657933327912425886481815732209265546200214540017958560289163772656547154450639073001388250182610940774856574425236863295304190384066699892889307079537945848164219118083399363438278028210217911622724673624393353852020394813767431962774662149109471599194937686252436930116687079985532152475971302232937257434098541936136871080753291934279142308120643249034607877418571438787943050655756141697902396983733369026999648287419635947808733482174265253346984038827186525090854923402561157696740447275827733071832632688736380750979355079418620213666906314980076815503421344397272752188648505538466271821972797192536099165479818951343502088441591909248646313285991897614196865837481377981128085397481739235668095359701612265104261823254295029470271156711619545225749293356460619206187876252277324441767206951784081807473808026262182374485812979501867034967716769269549602381243318225617092522318224747098901508324694719436143065664000040656199118482264707520228456001001581102576749128106817959377911626346288842913051802775987039128379760025026580936137079216916652088798450481152346561542957154823904389010019857377569440589876874751208296787810678832005785513088276202924542007802349879534589480161764875935255495670223079816096084917337701294872230062030640397869807437810843233081461553861941170256321770315556337014094571192424764812993246208914616105152882525388910438698812693375922095621888808835475724100130993117895163961079524385736826717084579123955787743255990031197108249242545443686640495213187222191236264970779709837671070244162779025458627617297728868443119025019835071969109404850832814858031890664950912605118094295547319593308942198375659428986863855098250844131919279909311213162343113521536111645801218168299925831137224424052732821900660579162467351681109792145902061038766086660143103321197188756034586642306313031353661758720811323734718189982314841861861182045878177126644712267137425918922798666892246675228944808429780044176092026524783888823628267257336239422175385254174991226451293786817779936034773193778038232009994685364220378937355532865547843460412827966117186739659294394531224417302661064899785936549760932978067436035120957229793194774548966985400581505201039678594839714951673010630509166717016094936867297097537468798220876768250582868447878984844352958468402048707010908130004512514266433809237085161677241819906503910192578150315909885374943785218550727551180903146020021903445386735467461978465827552920832250180050820344387068745814439453858368948326971979105127301873880533250585795526863275883770232943173949982541408094113983005176401379042866855162534457316705728244467174957801946767282882960940232143624346179239167109307388005272250835079519638762927343960199284508070193542706114148090417442289582739805765333360494821708564239379151680531778265349284820080781574784805819831834874492022760648892292508205169183150641225676557533358298931543867826057895424890100442642286087449265263156206585131606997485500945064670996475968633190636468885769654087657173308045683441166987620054875742583329944677162547110549939562485364854648310736479341500731202033092800088492419627597090751240346464230395589280009422906781128314026230672498306986701807826448669163962713534424390616808444190061375063601358472191532110805484931044988688431725073706809618862342576801920010162710656224738855857603247021917740020580810320440962768499572082404820152336268748843543028503878691263412923867175117726958962520926218020305846127535926312656337879234539261482448150275103499205168402067302080646003981069565049232223683639189312878758528272262500771038386902673365665417692680466183076875052233496673855963537065512508016152903004849730321621211059211718020874134650800205406026271375207801438736565674852758448024820326087010721837986073497427495552662271772250616481928172848062191232384661050541650502035118700957948002215325513221837235116054910953586139121294980789526296491340024785005942286849629882144963910797625814616892781845393562871985569035348838852899237686526713958615302295579317823027015894157812790809313260651108820641863660851478046631347813385153305930341683747110435968951899422733176150008586884632953196888981010574817480234342320124295944708543505762223660395514861530691579332519708326028276772061898622951784660446872555738473685063428975550221917606077524235639896175468046648193689417319390311216365473615777197126228948168248111327962030785856352917059789246034660089373466017959157617605439800181631917440302223816181817026845135259486491225852733285961938116605558448751339311307770858334254487371486769759722314911717656910973611486419493480975560255088678291642846718012273875291319892238211751299950406496376532903858097540632143566960049029655007561740145892564688589796303473954636591752891646735756542086997937284372134624894143570365538872763228899651327239548349745061921892024919791600058101948304193621473870530573241314963941546359382025299806852083819075499512199209926039757545394079932968338757068073276622662608048377303558345899980940513669794348246344900955814207546888218924604610639058024091038000821616986474961632383975596093066416303462728778102786333039490455831434460194043086451714842220845188161700905617337846012909663156861307746213189970556492291370371920097865944374856889426847655567007849177638881870471108191106919532404551313313031114975851163987595814017758190433727795877285683242463075008133628812980176568215661491322712589871263133362566702674401292716800615101670139664660857611130002081390702143995551714911533847255080662989200651649869556916202218955902204396626199965149499432877478186453548978073633777797764115631023819166548515093584293717169001701253512069992530885499358890211526583192365522247108798499501774709480930575496018288494305433225272195394163734211597050274831326327731123836931526106972276923102733075506552306879296456801314733732336485985212228269247368390828236036437327436335900721023196702919548077777988709992890590011007418926218770193561483640160863835857758640435053858843978299851313827737757702897412891704854265806919079439507460328828147598402057277589991793835283441865266448170888055804398671422410385094960751844825148341866909467724333961820378219169956055484760999618762523550245544534464903592681064410451793866235441607323707748544670591419961384032776311727692145701557418559482183979849291377381017820690265671334107546472776474969170290260055831765558575367174781429112152595290146937003184259064025953109129872956406407925342076836416792103357440591445857650273695282094712200346505645100371240033544013164892104381468587842585229755546237945631887080370205293487618447773547655230855020726820046404400007522276807861552657252742544244001441072206720304291406462302085229784595980101913053645691915932733087508646021940220702641849416622106202887235303571288517754864587288298043704576480065056372736393674415159759248411018873807602995950310309916885531636025981720882556662625016267267073875594084596361282419600376963414171459123431773629555284148796735091030127614134744293440795765575930486586347672538593232041935282742621309096347235962294413063114113870364556240378037777731376106493161081251655383938358079519922535415207933808831271058450923207535286359091432125679137336042096410246591946138714706538085113302605991691763832957784669941742521730543219658458458507650046704474471096687157294797646991236001977134743702225439521474915072128388211539069203275349511870951497264029459025304600051620041128373220150745730595111110236726965346272449014111528835219038802014932123458005241177895960662332869429214042372545492198762532789096217507325856054511689023660805824241695067055375560783359573458396403702715509855515591741620193256461415164539174731823186195995000357280590077799523566712302884394793725608366957593225881388773076041220623827868765060005234704824361168654248915319867490137033632856785897909012450924842584339797284586804963191993879758989483871981296752707786343504593783543475366964156503319478001553454322242997286241832336269696558197664942160283016923892281115777752313748894646476485312077552483481415120280615794127163306471248533914634438599555413532915835132463912960518583622117928101171174313895671569056361639425238045038296280804922489528622814284929323470774593915453380798607716983513063037212159482643523764644197681032674092620333315415758066740911529011821757189159289858617057928388638759580741845492163716758217529753337654135707737729280620533352112212568714763864545370739037577611967327276464919927166307390976426719166843933910506890051085400762814069256620560615850088072641101451412785487268436509847752131245043664913844465695231364722297215924823711092361268328141048444192732348549422794953931989330643450766297653652964427730044011969413708896468584506593591069942802801084360020049108671105084755334160258432093961533101678142551840283972572979328464580766712721277556804920903384140721349329576091434181333789579902603645646289007728430479605825003151384233360031103330329792036071238041131575586598553778837531272882547333888338671811430420511894325645927619463889611925368271195193762306010566809469745690239994892087339268679703289163217625720913028474319143379425953999157556553499564519631620074152512047485730279328301858251792605063092992979650098238628901547743564345197123001236603249069408349291155752682748176360577787027441403999637899623267744500059921022191368095720149163529767555853857595453837232325034045574442013230365304109030145171728441759147803947163427056226785365749931635007887433238343618682796446158401645096636853145152593777283905144826295543820619280405458164705161844225552261657719415195687907487942120199654924432391287998699204571650305551416746803159377916806801462183912567645140252002157349208021825827658208455187655477939809081371151653329130094666762185583720775162041041117495028209433184854380419530509970750634114184647421853708319104136563458312800266359586820590695745432413821294550845084724927268482219308204097969203707033337754450780871415706368070605752940143137427204850393403426731038763250215973001227190756875435238299002498279121702853273697973206421864781124600603688387755282184075854874948149198508149998011187099769794923701996824210210670859604238805275605383182619426326244125807697317255595598838538594940857717850598094092763686641580136187572112825076882882689066923479820301910151450239872465506091088824242871416511797814195675092303355277473635322241646820888514137758709145392258921060431928408120390595225564901130320361977979937966496415856690077287034519177556299163801662867826346631550302960603552001796834903733172487835363817477314442955884824733474222472616140279432257682609038379107674109108699737566021191092702416829644560742370014209348115080915331360618428136627345314468390740197805772343448096704271759899203191244344417379271754455013171099689815424205837011348864149613548506901662965235170657449616516889641007806792722617191492861865356376489717614653997706969515212094031760268718683565132281574182343080813586176784806421000280774670786722347763368452938932540978309766109409788310965073868089356345949400764192882222626434422532813071601493487681449653074925889940322443746616348931668992652370496152475184231731903651732525694914950173090133728393933034532988653229798571663944353611467172488978426086753022396090109619196581752840509778034097720863953266199224992546775219753509118959057044063973003900538641249879437160703357299893508235171145648715199670918758450265883706890282204135818894862855893137545350173600171405229228170768144161178019543040587866184837911864891642913911521968856764008700106645041651290980017680893743919696086488768043229397919641776761365881292493861698076024749194652085883421451820756288701135424209783829775726216670054175865319412160590442241666703167189012845470305769328383533131174730773470927143624576312853249144214759629299225195732279546369943523389705355478832195457663476120677902280100922712437763036678149124710759364076252697225938984654345592843679090447277368059024146766871449198545172395650185884849724696382939986346435596476575226716528236495260358636857769314827844531721237439339994054933344351672727571757222197918522598705802954528820352119206920154585314342300799412297533544288791536742973319887787048870580836120123845180385647315414378305365901861412527854036369265692931980291106555291524410899811456884506652612416714100385122260191560562188269001734995839789849441205123692607577680120202318563610561518931953293038673907059248898910751708993492242397886896887883019768717392784062567658915924569977469909898246361159866575978541811502575039733919714002180189518960255158869028415835922031731620443379776336480817095288281723622747477543735034231232646941090032323905280851025995501959551582809243345988541445422842940733467263807016009942270903880002792189104833545485896180907226442288294315072350309559962313675463407788835837146575731159504961825179989760118816760114900203155286676943468006159414524320744210331457454773121259664849622845729176277384003391696846753366126035813198714231104727231561142745937157404203680995947322406780511339254573001577533824867474894834016436399063180895533459837046855961602370775534134616052046851106525085462684443515508223874055241238191635876424961100753896300583904954431288774963324773420143386500976173339336825054198459654325384406263192399961148164295061569997362307545840228812595241394819286483246494316205336192302027567267635508009292758003183279665433092260423487936103628031595495752023260030734896585089295606191850277971799744313754336247885913645646003673612400519374870526026673203533787776858724351336357465296720490154194511356644841065171988112296872899463125738353689003766602012256496199156283411366504787172683739642879044668182325911062053882341253990800132777830271279700550150560296317001927308974672122860956053365117974236270657172478504494621775815068419176462430216895430437005667758207135194422600548963017409735709664458775969195602012882031207508836624692170471023815311097797429541039371473250127742736545883453308061334101421646417680141198704883367999043424866012322405763133960786535092271958519561969307539825844566322947931288310586050489678552932142407765854336696867345142989235221679056739552149002198640198334670888643667788558607747347808204535443195824616186928392249911920559262175482739602853063347161391490778448420196872095858559418438399037875011339337165659028812258407560665368829197952066866471522968391839107107985646816609134236453605435974588448425649436065232888149153525327220415940597851068062535216343924315282960881042668463835042783209945137417740723566858928783139822566452250742183938235672904674769832526850908692106253938977945352003233564198322825062719321021864871909558928361954288160331140335388286793210360938702851868502585767364314588637298822684184336598471504217072579980681224982261066993395785475715453346300949592308406539954047657073528129218414837218855582634136655910698168658567522983184546950465547638341028561554838575409960414231447745560622130426492158470066754284029963517011063554917900321948257587772579987997062177110037232379806017455187845116872943248891111860883379336063157345087616425398356649590333431316456129225620873567222848700545588347068592656568261135441480379437674022746648634915002629792639787879647399139144974012809813662501745954839313834060288313757353764523342466331641862276255811229168875170065320432779373300426114956433739418044838354931977299181633415498399807584409004540757403703486117093885256229844715785662698065986072533563959277901062102128745334739841957399606352305314917845427235663717363035405877398473947187348491041724898030189022283888648375082379629467188480928931611608616083182848583652721478957578615539683718800087154218224911933377042127388983559011992915017526934501377567798459625066178662199582173241422432455967883365163944285595743683033386620517215840478808299179660224459675627589424500234738634347924986313061482276256045227298781164552483209248932364656871128190625368821871521579297736630629593835294249498249743383947996808495737641595147872252038150939524325234379483591161787035713273162617383856321525698220838599312897053549954438136790488842007214687230848818810983590307085929894415473524968732705382824046657888576279863833721649879879869333404236358131064016953308707819371634242605114691395756618232783931123168585003178931878291798734251754083728228735297198251582832907783547442591971460191950965655993766979440673113678736967567105414779434647859761213874833276749434318705543511393230540447027958822812672097970562043348193836023969402429411077982129772000390101304539506479908779315379413079795576930559927953855884356846583300184603743932731799721171633555793466923970718599409943004290822101584558090154240690510238618951725073446499672697192670918220568397612298194379247730175414075524532156196841604191476010762463872715233660347382750000338765690353853681446730330254868948415590322871830139921969473602248018751739782586981125075550093020862537717198427403680388920273515400006883371008945392551026556785226534239591391427750629298867988564130676772775413281094910023649034004950246067907152649302512036753499971452426330125244900507931311599111281123208038678141592150087263161909761808371354492422944892484070651414341655534841353191367251886278316309955831082946391810033616468524002150907632186913989525302286931104656652879200418519682658196446079476689922263711036497817241634249560216010400417935716277464456237712867854182552717374503222839149981771035770045880562966033534831404334365433153169007655525762066329739935004987327282791250801581437566018555843305207173336123997568511246556229616580185781680921184105166459285554231569215588545769589071399538345878105178515434177976632791247391440476813231654424824436387236383348259107778652270950394309165702288707260950193003049645286398392018374994634308837907827613302174579244045749713656472363924654535020465186610662164897325168460358101840704180512210947642064808330336661408370827979395988567326876512720171586432673036653008701111666959474682590838997933499884380487061535283055362635598601537897444476226110248685716622166285137825337077082741946713156758348912508478602124090383560669232072220287750658973612233809631131447074747908641236031368447104188895158815612260452586424445180300534048213648451628130434524101102059741261790445087477515771560468929750014598075055084063238368856566757761283261989155679323080510193114026225021813382247236125798876514108204124411757772391812629955736686789970817459113843147524671841829035947992895955616786553392038462981859901525308776451629870574095827040513397335316828026161608119521613418854330596312645736243959358993061965857422380252217398749864500783235680667880258714275211734992371072743943518157271230785735280426258117953482028790491843307760410475220910958895363811422824400898034371280351897292349324999743990828714887552185929162959728662328800186492121498556689237740092541395968435745852352130367340808083790575327618212217944119723567521502558384798930770915231471264501543660586294509910922764561574222422724269157856668965992155512698352967581882104013027013403318001128650466092689682809696800872240373379358525128193707104567214671180913259423755739463789024137349902559201627518577487979965120067752161011054605023203688804029350686840867563661841553514057815781271890044487003877323852535114004293723630876058659852882911752580655485026086032756120944985029198553786426600168762810423675814469497124507109249452845181594660264356640851934744783591680176212761832086775478647060812295236736324918581550878583103886459979584935419305135552179256502992402733081060854207684241087990892956403607172041988193532982191879877583891202766492608497151577354511211002696805000732876445030247996015500302441366942542964130806421242644065412407294723064147227581486250780504031044863027230242408647995959819252372128704798507270685813879273031963929578793421297866620400871860926263895339128176829123449306687909899885643234941131323226034163654146533737036360071776126986143102594105076951571548416745866963150133229947596212635103041302549337233484659240738760618302328165169951826610749060618673443428529506270187520155515578451339738080566053658993485810713071064393375266628064453892079395058233245472245996877521113082167586497700505218204699627559010586779045080125481999463848318279685338289354575962790148082320333094291071313475472772838443511565131827825516969493400144016152151679466545895483854552391516766428705353613987323607308948669930470229308285915524240683154209820305932578847111386437039051243697084407210887142581710200899044638699336290692212958111068646145683958741565944458418577274122498817921730492738205922129929077370016626371877755229537301503297864778846214202458789700741599296387151000999890208341418900143303493723536972353533506271374746853762273504724820153402486118192593705294621398887978505038291625868141705806007031983256965628603622511525495969043589278474646036363206684900040637691706484422079840330609847204997627470392424193077589511486853542428460674983386118070133027120382171828940231342278850225251290377527079825759176865566042915437227657259874924154460034651913234554924392759964250227898506362324045905737716968540263265240132229470639555055660436059697853445610405880325809829604256008875595020120042072355476338348171634781066028810577009365081746901500286497043799513972941607552471401249456289438415385113918191242409205680315157466299676944291140403251408135812710263589056126944111126512491042334191813938393610056449757470255565607734926898586680947080817296080960778335021116362041754785750666074756789484052454741095308160193971469147874701223891097152005716803922569422301956795735468474922838215512701488938223488928573767027943758793519760184383275344593275363198716811892474247825422762298529212724314009527407799262595604320095838679226918105077472649689149921729465305204916313400502966515175995510782103712342271259129079469746697966303930846215558367990530753416067936834191821527459087885713728060171414382117426321350186051006476681926376860951650250223820019339568888031917419109354012537656997590224500221091194346512970850393694131675128479454662873489620791122240709579672257471355829504163777297390926917890484237953864194920083879445913650681666487698418257477654536316229625787550537055906814983375841473121299340728317028151564671925886698489687093075864904706237676549759222471283270838595518124054560793586525233029896135754505327455766662966252187505785748192927106017446300208019031813976954819321604567092605530812669200071612273077405350737984262396590590487974928339717694110640459996078709364473285550597562848922992528949564829434838248607812086994631808984112212921895687820725069316203950460187006906116241047005916828835213679293038212827555561662382868342076628250558361853624945224908268198945840783649909324704244109293114501964899178056395722653270684622336991088352488010534237473655136237380977761917484019329824117405988393565291572264413824882358610099658664723496857449874317261828872146827643253463872983957998234032286719472545327010458436432343639809602787697838314649831121770502154231260986264506639515878153746632236773307944822678897049737930875198699545235415207431182257843211376232204542157530515639033909182396983469821080897011699343370081392275343214375292716141271955776843735303617577411158353486247096359960842149290629216751786572596320106398827316474969642643344447994072684511319815749697664194720891157761671341304751762588760237470764928652001632666557669784466664320858078975985551190036675546132414621321600525668067094855239523069034374109468381957386320127120515056241753626377060299292521937135930306949070509097295091669162040130572375787928422730311518610700214573349352848650408050006959652201339680904005179031782371248048952320008202208569119415071478888234406227793137199267177365594368004864052637150224766867110269714650639959419276637524566349875573683245355454812077906120665921757635818845739402607447327015974545926302503452520204698277455153199278372709814060572076727081002827397610755839798068776996482810232313934480217176014844972429483620407268694419162233406610101924350288785110630307066337264533858650443631202822234462161662325744135992127560590754866285946374617489912437464604856701315048454194533059131082078676459880487878898518117775030732545019209104346569988704992809876792768540959425699396828461060704919864050613528966211159830857999783669580132090692007434890443607290742178413852359992933347594265495800079425565395273305516970793547801974540462870836313438249375047518116313692772682336298025405181260942558553448026795406714185963563460782049405132393358784594052510282136667931821134159873427681754113054516737066701286645400777363790934570358534781193875234389100948348520159060779126764859247576827773040439935210760823454761246500764366834022509615613036463729594714799623481796657296006740030115482309285222529506781924743192779912658095874948817865942995313504263065819684076941811248017026829081909235650043752330146145481464090841404811214285177319720520210521443431111548378165225998722270930470173686118645946929006551361157412970209537055783950757303076209429377316086403019208608354324798318920636724049802707550046831221052225658055817918032122269992380517187204461057109750983485957438580217840868121835235456508226853693366208685804875660501982313069743903515639574760621784013418069434012035365956687212457617505939073512464389414947835815638655405794373600855999896650750907127865117771250507740258275922053811403194460936770772085334949925421498073051467451435003231623247404222332370626787216262899131898864180075241284802513244588122790257256563829062455251215771894232523980718069829745898993465661458513243502961864679039331060412413542567038019846546456749810603782543556931832489968343410477900435005355596934294073517562822370058348412645912573408470809313758848160944993637123508776192129279886447372674394329411509163463267727012917561375108518377905273470044429714664623582298240053137754036490583275857421656492302409529573529769630064466472265754320157708443021377759281975051202542575716092480994298045012760084834266669151205147154965201922680671483770449512377254250051901849234354794380712772963420663193296615394720804387762044225212334072200705834216891361377534940594750938763025805740767648175225708115984142837040902339525991278512755541706042586404366046447618262119416101347580620528790711530898378956781852771990836890584561662769214347340480406781466805703703043456445057612265835542742324783042423090482737248901549338596211732547887447159270580019687659239012930740278125741684494744389245426355076549385999863726857369011837182103360328380979244821369411734283709374843550912449195078376229387171016646238582408402450532417327852444413775684814171748707039365066498064872581670465294123486050902394314478218446443422917952560174650166496102485000846272582120019366697226396493310903550811546337097255809303138796110545215085647970169079718205507749528000606096807786211995319764068371845949903609061973493796538440910629704757111116959348923729316523367584836412831875192904704607097643401050737068556441877240997171081846713901513290633061882359583317426096802065459707788189737612789835601879820632263339936923164452440627614268911434294499869532122634148192599741754983898523515143818696879268743944523986984047005044803549901501553921001487268255331671642431878867905204898054201067962899535045979429645662534503712414951492486163879360279380933375426971776022945477983609217141179304428826188669319779560412546330870074288349968842554814709050205430645180213699548291488765131984140202507869759703562682190006114957417475054540721645426729747967161078837852567781946232730507289265874409655119852965414364013460814436418894099731916697974326259309351029897274716684833147132669379329784552431478451375189438181107332750568732794740286244622554537868393388981945077918923276570181532644622237877439013896138034687948527972963565644703385844363975457034475519790009404433040116995847712703480058059273275588916917416466889666545001067515121177859959173630595673289945409542784028683791549769082720408626069355655856990903271264341817530337740672792257137678753141868209216559294281056538867324527439240470594661977495769078630716588404729562293140431772373503658390533465694812531054626968338126005297536109101518660843462069195293505717578155612150461871464652549650779726782600953872565137296866252631942912655003667213236374491632515441614020817165609305361184082561052869345935789334527120753831808927816096331483729163587053173043506000786401550004578803475427046377442266909879669128856459097752839993016714596834681963128373691099558122985734395361893667231924497935559434519911478285218219370179454921314665576838847053084223147650035154349438181202887401852939761152482937536262086564096474412785881528290804701795270058412691194924929910827932409308670806050395581193640112090928220766002698115195038321529399042763270418350986043721744113271661541646918395047943729160549476322694962348210898208052573398145369082947672389592529356809494348575004185043819004080570411425613666605769946589425303574620477156365154400715962828525273496775468143593958534565678062446396371990770548901033072278658753211096104832722803426038427901911785381856720203475541431203883703972029847203541063336948846496817618004250609300449460105868711891638520617270582250621801525018678012464054237073044657613946059261715392643882858796368195706389881989465709406930405551410066548328709782674491038254171267509341571811753489860740692910991064938363560318200692639923539353175131197501052114176715264336763525571088538376603982315171869672066145306722944259352322261814573774207520304632311996780482822085670851823563889738480566922138159179047716184589991745794137642474655043284978588092769593844906501278819030561235463144589283791392845391175957916477590271956943247413183185259836991854091777724689316775061263206547824825366263464959932867398586017846156962976690345113414389096486163998148113710654425820558210804852953505320872629539153481723731394791609935440878689367000072245779479875841455688737535235538271643277176192097560832803303106782365359105977942672264217176092759142484978245688593530670833576383456179833708776459507345992758963600935907698965137254534532968075797652299626488025256974311987958918526531813515231519791210947642191453281700126779485568980766784928529305390404421613690897065550985490715439509959136859300352705441209923267095001840962406506944338169465045939934186267403740646488901988963211722871690694153518561853004757684396572805158386753247365471640121167290699981743160542118939486873815564189881110917252352595482701630810404698396173734762330320226733375821583753882653470449642164554908496702284693258251970982498696186086872793735528275632520255190500518257717874442665755707994919892316281949071313538836414995062639408833659205405522250851422354554576522340417638379907288099395324938469300778774947854125654670002804474169641631944172935722957951017495908181430590548611461587414099095068706192868932261078786990487858153878260800292483915759180143541293861082380664782079387863694436375829134394831509233536187664561556950536516974619267242700226435888073483751145418467927308621815444690801372816265748334481583151094200089300809939757066200025296654360812590525619451531173288756867806345900791988102537897791272956176860017035194188006065975210499130336601277670816733315647114977729218507650419710835571470312586587639182664431427784459304565258740770364543508515987325944341304638405338817150981993528157990926102713829850928306644229672508363061169503385195313547202374279035970245590217032658073728954336761553489375521769788377136815347229466224273072591677285534616407340539099182177783903404036364920051590339547604759613892824142809223735505970531223344566633861941782055187611076653237007450133860929580637986034463193409355069411856013533369848358946360457175251875434568233674505516447861600669100483680768829316261598141957185904205900367099064633588208634002140659935942798562960208288648362003173274150159879369769373084662574060176190267438231610933765652589356622485518245669956695161020204338078870966648053118010130698091195652992044333974951728154700556552975098080642237061358606813082902346134470084605448733734014026402996635778285757958331187697677118549526803845479600206376507166583422719432795927530350517286975711769255572575664017669895133699673796224524147184920441919223073136973735281968894463273618273287456206608762341636125739660810465995393187020319012825903955128153355827432319879451078252581759408120465256947241268506203130706268411361984985485253069909155241198744624101110812208066631294773520274320808527769681255339807364491268861520180829922806932022910200602277413369669256055983399874567089177474678031177069988390883010874315667182463636775517116919434005371756436509734120862185104691611428867065494831176601504356085069582775601146372265947340576464969455578557102637548799284331177289685759099681029135339453661227232552602155113592070921008361543131968046256056793142418357742066194544768261672154119023805074224259826769462400638657797123225257783201310601077301320478216790594923983933901358852218774905537675480550278126414807864795817332350230820168792717325141337260226333192871582192083721452364194048797655680711176631228763629450430421057818186171680894545374681071158339541872608102511068647153489014959923034762151933401867677760571121098070103286894033449264674104220463816356526475681399455177726902167443951021640516753199915896457438565221610321291103775683596124514399482280751361063286921108117406985843336856388418297231991316040609812068697797983765899746377274709904224250988285445210691429017925598300867287208716196590586454300190053230094061631399992270593120920002767937550076925783019572889929455462044130280241920356995560700252412257129546793139345967171663250303564915285560939436962805255461397888521287982024988172259868102097614650262184015241200374248148809706017130746998958829525751121562448400776697207783352603190734893412643331872669330896479588241903235721423106640607244856525343303913502671119415733880123910017237088074021630845975117607166457773165594452315561143775649432158454494575891790500282124024876145954133549438466361054106447418412457982319833487398890515752831581257843610334235254363378785562056270740151093170071776985023847865554154469970776899858231282927432537110616613266834035026522565735235446385772223080738553698942356845268844227949064653216978821476957377363868856051337356206129029899273126356809095036750887728667982496818439821356390346360644705083000873447537582586534253016150248085225590771394308299737381718713926857292799477119280550437785984393834075495856427621153811814433371120195753947492212763145743612326064133334267429544026334393419552721482613088490457834689564978641133115802162750208684309694338961154903430013397669283080558871906704250037264786869415162670908356311514955784763849664405256026327583604639785007706001957956870578193786430019098033129823912423412032834744823889633469182280648415961669365522022141862912358034658751679814814189290695648980336477600290672686157550838468118798117613999172452152896639033727749795871773240313645001223805449663432108389865996035869464829542462375832392352721942716079961265357181981203674455124205293435155994995142836301234818278575137491839795934712559205921465887285146134504489714357145354593866145198608991206368464396895574016412853179484659814558107083853047549084548473462621480690450408017897668004471546336951616059701204190142242696184029610662475726836785702020829884691621408536299879445792273673025460828792182068231425163257326715268410644690120775829272896101019699604075294501130036225727018450665051898619350965539221899818739861753291071141960283542161142403464508642985752599252314102111437104744696711118622786937235037194456850226602875129375830262148697368198919145129076952450246854964304189976066991030955860314753890556466036417219688903796092304663267235005661413843674387513889564443036516950291257202420207158260305335875054038166332232561379901260057408635927695360613031438521349956429752323378105267438089811920073743669721248028838575414243143257205421621613128058015621277686248358547664205733154720827509448026986970509966564595487764859940473227674361957659134521896121177400180337015063994476323749036983849730037605295406026758290125272587949401715274029102694112322468421869396198152946657210230087577261641827114091901687889872221268767725879656900579244009012853366580151789669890070672806711004704678246100934717165129274706655049440795589964699655937842598564618535653084147693903233697105044226491890363273414570672995921514473449368055810096502752158473848619311786842452695866831280090194155091665634703478723450396334290141850311463993091867146057028458863029567678903858813620083698910161177114196017728813198124392295768839882312782168704820452339674767596579511101129896783258280628502988574244939014892252296035262573178323115300360076052086496295404670233732482079376449062719506467707666805622193551649633651757864532542616217734047249652326149470708545308424948454906747673267363669614140147677155244223808059479887226872244193369952906196002653924783933298419420774570878237891692259061040814313688503552559383646893624764839290336779561940802910155810950864879772391321660288441633350151092102676979028988548812841190269908870733589287727824241383334023070120624905416261146705834377375994313027004829208706080849562391441827014936289604451907531984271582890433468147788670871835279583653327008022579119172484836424669053050719253536481966321406158686633005216521067558777191988819353819456678590577728526266233230930205843476768623511785422722831804196888082280817423343222820517726085480374044205248408532264230567994990261267407093664292193088201188041342051313729690728052464218665963636050290976129409334650911080403876115603022956059684130402238023757173293388616367864542844441611248863455806995579787775676736455765229168273799365838334638247433682635251245307651884167188563130221025554266801273409700542018612963947684771800469628475465200310649475976896965289535843126736453550337528721944713152605595515316153326485894521351374727962851918549739248627337760574437442803318437126288843826188717665090095830374315414133280909461682385115427510217985626591670293502801080502562318656556080761674595860198027767326889455743947796839065575199256068216995842572230816570216016680453639290627163126390335869585813076840372411312055008014708091801409086852888981394725270207262377670005850565725904174183151141387068522077084934737797262827741633739775408224180100794305299231018458337747685056397937500175106183159870237327374610500335022842778597506285517543702015625958596326307882746285815178880027622013396168376627197890718279873615120984819007443685469114788923277654087543375159269880531133574191811397932811861974956396110051942949440978927313024513632670349324201809269437318475867098200280514128727624146759499169070795341233868750842676849227363537037663735622671554816874280294809466030471620190398796583884133429638916066591974879366353040265400732727547595925671049022621045356061536275736853920412043667422382740320071050416143498222788706687417935392215979008542664048962108944327537917811570001067710109168389684412913383153936337540634774281829068571792208378260007316296216537286893298150025444842038036565412621008449097662652047535030129848487194694082714195111041544021619723815143445513755794018775513304090977238702742737601851733671880250071828772186815061318688091677275389949116411372951552164879047896023827628942090015077841729680095272103862734467450212428544201645340151826813977485344338598651312725208937559333010648878669386275900947985489935895903911178309377626788778252989143640539015149592862276702498434202452579374532262003856243694924503407559682527063687737995556945544235241185366260632492673511860975968153493238315958751216064678547796986170371473212181909487163356236769893841610325149060275629977527382137982420788645259435919786845536149015617412303668192812800971029146234001141238169615335308326073648059123807511324592839621528239251632869219700849311156704735056649633196303331553464761496327880981180057674525204885965988441796932814828903606082531012278997434938900211313919147340400087827981923974749719466444338321972196012804375438784818962413838015092783674990281561599670227600312068223577188830812457461731325443923514789016104361544560820557992613597107794438507561615789820619373946773917775219400688761533150896341537276123924435519409082439394391110103520256166699721206143522928827443126264502417826465471870980635601059617631617980175763811295236267355710762668459362807833008393563675928448582629919240472871007985487043768054640074309530565069829533236710507897757157225073251713153024061332694345179085364997112654833034359391109751842899527538485565116522392625870230132084750910365937081287489042356751376249102842630936554776147602154716431158353109381966302724326095747363516591246511404773897058800339001120463487817437393564755042127017512274517991220290537512505860399984163077174443071453959629643435577317375103416776060532646634674338635280201909651905072869006085829765524655670512566091238142150205889486774695154868021369988656951042294459740638058903793072687192437181458815390225722209967818963284173155930896782794616736062472338214752879204911405390730261873451730116872476311770466058299417037852039476544168982270273856205143695400054234422751671884013743527399400618391955655600620744940297421805716081168605360381524974116885438062980040313872869931846761387583047491582072878845753512866956406893455446090370812896246224151249532787948755447608879549679396317324451933769031342293414911928770077789915629741904169232239280629374199922606159866774181940820536893811537190986694998370646691248213734434365229217805813433281745984912931211642187653147801914810671201115900926616752043109430910544169487884176547702175485592901267520173541754427093205094708841497541236970673930392887509329143118719158438546508670475291290975245463076416774706048099373070481032533273441545410719216134641936375942296389007620464623114997133263651780472184540228862213603853626206910129681609230244806581742571771270963574859084753799911504418931114158330830985875473463160669204959236631802621380230946765474925131143486974286302729743239428057118269173096132726285241575564865966850528111013564633335059656010777821545418172324644515917844915364130108728392349571430681495141338975182019477737064191255044983367268893258146120560562563079049998771556419141936883037109440342102466185512114218353188460457218465958304214009283751385609044583422506320002469285808014672381511857416356772499783305348198708515775628673165098410177185255292127539263602492451585571779517472854077086908226195509383252512719835801441064471143342501989671227615460958140798554021382308347413874310157287362920686111847754171399128602536678618512327619259471445372580257253525719783359908040949334083216341065869281252047890223522893840834077910245487992256725939095923738209065245172355087754009328951206800779574259027767861384898168077166910306678407121673991876030141563462930578765802128095318235051670830921556833926866210034878623574462168168696291109754528045121795020101044909976464040062749267145631115503181438161302343235905566554956600816170666233599010495132429198476330882110404099051682536432436663244347603840107301349637970348480919190040324595059149183186623037702745344507759177483060536336086500538349414261476610816096395901444802727206668376685551915848562019586329681027565586069808152710661807897257395825818975160832456320507494249428806178438480904338678472113599040164098855866641086743134501300766900768659449799934802101581498139122319231973554320378746952973210342620797833511399254524442446664655443658309352613786478219633112856803681850147871110367483036825047831763686762979289610366786048255948082025023390848130089027822076116977996536385943571775353039439214688797445301396608023906014760154144631441202536870213727548133567279081649032873329692073621854964874300832531963838008432016463610596155678383998971179281348558231783753704159122114967787413805281802341597770572088063780592904842516901375111761164225583506133587961857284171631580445034914661477657694978017192834583040951091784229163455197076019737065855411600388554828797529315401014808876426589275291667943305039808020922642846585586950466269950741719623818862124023270577349663817757819441103667897705279817147109484355111026871547214046351989039942762153944545948712546748330587974962317198888955566885416126393579539531395876802995331035867345176013370052999717089527981825276549413964918083261953149009787761497498818796545023225451443521448258029229762980549374160435065743343710809724944932118108001107271905514456814899545267409259736636712711507466168202435866994421071825833871546737094871555050761435090913369364400938009142120549749229747001465417234792166502998351980439289374663294844563072338264366937123162513387057349394896818388569167051692481065569103491640491365383209171999009906313729365244662335156565728323360438742590163044186654653884693087528389366822532173868250292541019976742760786455743162497626457591815159102624220833707547568231957127713808245240085949672502841500366628213613526698944850601420737347958354295775469911061025009102005282160342183970714708783734775571964041970184198921318354163865017400853131223488404524680543398059875473549911402728251578154242484719303467035668358658310048936667268084767156326804548467739019399355023933546649297989193193181846149371446685942096937685679164868637454002060542507856582253026189124083157616195586790909383688911359879570074655634041303024521542758023778533143060700911225177368491299692804632576892345984081473235778893747619799784837659523083010527302394791079104044518613937179512466934494524577463687606650554266652825777423048595165782789378204787834550113538826672316719213490589811073029484687356018298790928924847617040318158096624029004339300567758380280504032358036874522048434952306495947833384972081851311833317843506297405117166376611682439058119854647017878840421705200589170621745141122792398519874617350613349251429754813938531733713454653166126004344482752865039053374093475712129935088793362661415470309933097775482090942791865377396599744697915439361483286983718826770717926683162546746265955791911302608512575366943690026937863993091811703603634088644979240634099353418533864781295250638117887521260776531878867117145871187853654395363765377946492634383538574363459123258475554210680215150200859670520109935265448398873652252474189190368525772987023924149847166854313021437955306222226271714087795221974885291630109321791022529363401132997823148597242992268443957010632440533747443989631553369331668054970041048964018287359418584196063129698320907993034839211460591874523353347324830847573623923235655719529594906569325063052427780274147893456595452754886681222490943547475401644343216616823344884220544475588544135641101443086346164846731486254507051184639503988998571914214872675507042031452992055552242828460857566017508139902074144115993940022864790019295546122767345270940336471795973747954769744445843899467575910781956430573385987347357985679900658042574856750166720084988623847940033150690172074640988181846169405857523113663123250838260041057240830138494076902315442557568474018707711760451770969694339275679122479513723341197012782459530977849629991329002356036652224753049149600367159115306241232598744458786034898336971985312786409724716350673459782739646455479483562079189227631197578611066413281075194297497265263915138824587775147220834033979919941669227049598872331671203129253883060737408797264209318402601466154623159795295054778036372779289443779619773358524758687450486732212835093407355099940594197337581898503170412418696662345333008858152911401015896360221759839554290638505458733565091995487856988690512573885150112894279798575957698628416310625994744420398709161545961839433051237266811691003666244955403147691534927309201055568140646330438800484468287251457993149892966864323015561463965385117650395645429289391567999256535109205724882110721191453879578166528273793154233886366548334030255251081996034141151721391124399689941589608749681244868944136819699741606552786324701943239217983091970117074601728538539759355861833156653489468041617733930094180204443581671952962443490735618368755676300878472532674508213122743362699688544627024276477740276330137739049023659310531278332259096487629892773216145584405946392451691056313671511524470367204494859616795742500805648195327459015643280748681457815253871776012760344236593164211715205044668305472995887522960788278239204197931320500847711979858335315509861048300220386739467782008022781464348400856309230264195516993331988033637324775036967505015979658648340222961622503756033191844921625388345869445848196253188194278787275853231379980443014189446075482573828034256585374494759003243951699075532729396754332273282067575094270051400203265951267101118943853572013165023210651236735563949879237997016384201194345082891431259216726009131351263544343845205897884055849157780498071699985616059819755416512607339759045990104842601401794487862797612201687096085681993417889408884027016285576216898187393588335994572895941988804212377940051079184618885092262800123951721294820856727158601027969736344105419054980172334591400416839941050303352004181942906588170212373310812705624172405215435232361705853580634673978784006058188940817449973473495421712004538685955413356209712263336386141367595597545898265992051897354527445549919721792155316111952116591776991840942038288663569666371205724753020590309011336197351788193611788921820163483344218387029707117384816867356610804860550213372956678774641690827872622208760999918584024716601410290103014291517592347032066007420883921256810729718678962306075043809520467390693528641991997363320211266246478004507678222200261843077625995340939123585595111425070887152499059368974288017672775537878424085982914147400717292905484736667762377222544859920726680754945503381410875150376009376397523088315198125865998831112831333089111121061431884992587288833341146890385240281807043208285489415616044113748484874911526127091299961857704383191598114456471245600883281975301589705145264432185928029975159330529912293150308234495970236998624331918714759721599254834725663794777969078998723995597547180304206732187266389101838953398536038187730290285253147810684692858326889280326956338456036895147887208322351566706545589038031877822236862450575617212060263290185177586550336616832576793503618901121159990521056058477200709554166882528660606779903993973474623487362957255753799027250369205435170991703332289555136476591714883780407470118176542186111921544355738978439369037839490483960323705867841529730158676041488277177298517451802156448451633117667621447977968947005141845075230446745247672719808555632409210976792519476680650120261486449746477010274246990477926411234630301572511204282550412323563535503204499256385601071885109254187029584817803366251888901906073920146504482482960219950367425271312128452680079942772095311758979429696009849133576980535171790968504705924359526293574964153636742209464053391392735586896468894054886135729094898397618044722411653489244029004205052350734590665952552172600242026982462322384716174654685713561225003468342926646650528786035405986747035582173790171971054436524257872416849162627798312601589736239421318865167977493893063505830005955813334735221356381025463923727411671106915978148108375852335022700130694979196756705216165933216737740556888031574678807952635049630667981896840288678971686859974036280051933379990265589724126400633717039289985384069225100258830373582706174373192224797101846883329723811611282449815825237735951184640299611732980327525168757649356718379178441029988259720532406916652201123350822837125871797814946297893430862405930651061639670202964728814535854524861925470766948961741648291697300525426554684001879805627954858638161161465212837312528583663447484823133760649060817418457245617036234469504255295013978818339957845561980456569325352318818702898438092395760189595570074134206227420862467940054962004510236090011643793609193704864155602563063291916811746392611939073275703606171565034155626778905656787842744270759101965516610626248828328787369528504005935324914033783916492287735826147950442951775480058472127121867029913398551379892861057417850532527322274517935582752992715763642527502128229088907462377577408327106018742842676465095136472251545740248012077395427281121310729270546015747642461646279966803635851147041216416872999822397189349526491809753219509024111117256008773129847804056759349040000621583756335692981600424919547826326478086670303173440369236088214716544816992641613794305517221779942628517021885936849052763553447195101188497900020507273377687015015842849258369641616612709235084156601919320819132960788199725772182343747064469382362530459897336733822269692760915814413926639682699047030195084023965049670809040523036826310957554391746368276979941207809333387530343850072807840919644133539658452229559805979225537144396234723844298686815011627769716060774292210401296438761607485872912688895165467825264761238328868711372879638098999722609559819805571440151118184120686073873749323679948742621775316598972799397895187632257901555209091908279714109065753582671236743429312030927960864897669475546587500075011607932140039590536369408431270690927303916712871583148893607064865698072222262060275069891828138389899195732092218284908540630159639422194908395326127618768380275560515592143898495301815620758968209991178474306296454841620847892786906962916035042406858449896092837364702547230592055795271705841764812974414467881647647208377908806776219630636692277461748207619708423192143748712979927415652053368505163016002320834587936759421827995056110370680020014254984202907832618407844777428904727379256691167009158098160012232769395111340735568424591657201812602597217842882429816785911761373346878459778453405068718119592818897629395093839327429350430261861148002886110869573618875539313737306312322384574690251763548081792256164555856756105079675296457213854019094141867982957149362581655858770101087913797606107298121375862632659960913739196452493360413060363551853142937324040712260389501614326995645656644816932283144826748866418981596567185108050688400799521119517072004925206142918455333377525129330598385751833006136521979653636884009061287521609223049525987327891389787412193032085744820251442903663270681500804001486469815723740168194675805035079342812180359557197580092187301939781523408763638077710726028988957956423520786760791260489265607377536238729617206316085852819063126932867784330743818085239450076694729612249778068524319071167374848333063277540790808144136709187184135898672720467605412200627504640049534971145444004554910182154622954563108574308156110088259460574426331215723878287609776225439980790015394850897799984974658653620520302468468072783114788042995058391104900846093357682686281740218575405267389794776645083959242728589142121399860388190569952914798515399691596464937709171585859361129150972832995378768988575832838917857106946793343893519173839796382123712769283498875204514835022762757387529647036506685761322048677221184956495837758662460156300409343218895315776628275742450307855058020414707820084725447656541279632730957113861506787806383572743702842938315268846127064593048931742741005262916733564457931428762417232577921438952394805268184469810806820957881371283743708160647069580552737431815879011673426497126890759588045192782697022196292570388002128132629485258169028228016654126650557848626822815232194582961317327360337612562937090215895432821581797486597939411212646381110595451556183200290664693382677259061358712408687989989308216462761196839545841357163443303246123633788872900996825778405594894714678825635631102270742679912681256326928847968870073136454554794419048447858377427680218187384380178085685763294452039421307387318597731450360590612313365973013743280641341860715220635527533117929751128261739688932465985248321948706579213811883973660001949796383860157037917691257264564820480258286431272756400956891044538487092047063367176686617187323465055291893810958532731659199498937298045356517404912564493160509632304412141068114747885752178272087058753730480389288305370987812629857420754071982207188821771789646529261181024369008429477817440146315724416028064839642348599829747068278896036918900384195375068257527409266869305519396544111129932747285364281634832948996471200501135070000096028956788006741479535204438913579645094553344445243259578220295675884871718637339950555338528531700841763782380364541906386273216357539684918554420924143901800390279287291347409222308022165053770649770936944622060804471972005041313916837257769763493973005442911073283548691484043505672353331279872426050655548679128502617797892109562301665817508014078668107018912840595018888209774202093055067514923998458537996311343877219893599817725151035638188941804400213203164933556592641207215632637758126129462913170636404041015883334058811468193286593367142495640650652076617803569324088484842823762999895965087840328952738096698652042176956389548974337722592959641746669400567411975035153225500924157499844556630110720069785612825939971982013324581590550520461425537020067162822584038505442137056017226020707724835152282910253722772901557465432750595546946643108965517152736869546225538067559263228701703435251520415870315086794976893992449502038078813613724976582489634264781075227808524712323843351828134914812309470763419726749461160146611585488150466028437394079848994713448162350811284502575746181681907465947589734669488460195487135039693499491924647932323397436908401570929609100870549409265443170974592743427259371969093146350333591746240830535800364047107323541004353915561914900291277352409435310221190366803129247605246040570890864789046787625436053267727638989966978639315744584330929324193362099379567525729641666612962267119380131464156041507542258319858026666441769948715064177163414366638382026230276425841343926435417657534159057392435422054482750572581450852450367033979214101969073172800519960621086675806199739146803977347478282795880511168457649674449354614846534709473033508968730667185429036039097164854933804384070451428760417326240939488853189158283461189192700647810006985195058026014770951021160381055923694984284767060825389330089876403476715503499302678531554757626940573099444990824760146955915748926446928159836105372049435718599961326429347592552486523980726900285632287048185963709747105798004248063180453568993689033960174582655933815530379365226894526286281470919273897197784729474672241143061707041852965652880399809880404323594918657049419851064695672258747055989485454287405973127976453674173314083122048898922387087481939866614845587728896878837810394619575655768150001598326672980049817561854871596364628408819876417622043702362052012615604883223548248007894645445207375921844861140195776789843706537055262652500724742102155159424128422147414884411183830636380554249310670405307986966733515123535937605294364963638903080346826748668625354708543344054965309369965343629423669310709948954153369864827701255018142426953803669170637415454442435913289481670681501773368847714588658407004353679788441392057456807300940367825087059071316250772828052315642092684838709118321475009089094087293874910861673105662408031634777118815649458655447821475635073504405907703615046988322274130206506133806052243787803702450839165997520890696960578596681767271282270188058468884005709930681823712481711498384205138633941338528305675305751843396185896295054227968261768313207485563353297920970004239616937945259309031541315851137488366312818394344042935502751256643401693460469679534320346312609641710017632622255498477830196733530021583923169835447706333134943750423055614835155313277420019137349718778784463082997209960136482600325245641981101231001425624723424836891980812989168589089867088312392773205775254981432552132671536752491705462386842683477987961158740681476419911861798614909775370108001686724880064171899630899997121632936037709574901811585199680803951733532114822470700317478466925227297371439905766972055117358423478782805006036474803263345022498969472503741437216046333586284883421859224932038762619061778647645006043177812639591822029483951341825025848417050565576284357957210027943042902574946362728925730888823092784809818988547251697578396550534180867609652511431856972117853327523331307246741882620539836175183945851247551876629760237077114018450128393228864471251583714838239141915546073950608391287507072751342159809016329828752770230084531348970960522797777751930550997623994625043195468129966185929268287055429760374934476828121870519580568562336476847627842078148826188987876768269400762923517356493621462074790567968146579536112760336134268507564602357005199193469886164123329929397806455254944453227999097006104312852893748971506007086479338033108771736022643911619384956492077487659121293185855099293514089370938988927986110231762362460606264610799143312740048769333034882532630297551822283324863995790942685555146519873592081399742875360084533158945956090682204668961003574874968216107642955614947573072960313091982216947968241005701513635418029606543786074967111808066724056283573585267865538323486969203829468802325575390595060808420617326077907359203800729768527050025388800798297656296852832909974096811491874702913323290825392063798386575503500914771179275075762770472791935917266446638038645192053777260223700943350840058855311193857115299017256157370472803701547588498283299072609624817818448130460172757011548925313659279771878616018216229393869542889244620952933389278008308311374238903497094145094334100890868427725976833439518627796279666898643298836734479804985543221665140315967735324300863679524279344152711130160404813146707271536110744444482479725160208474256424136426486559552816055685452773556252152118727200307845001637431418849072840747656427299112944254204599350426603341894940417316836273757397478423821111689987385512695307382214195092711296075153748401073883416892898245565368789966910460607438694033872717638214391120412150068042202002636935565726257977341276333744244633796861081975398248098753556533054103423845574336854621588633174871530397271880420994263881376987385234409296869274044263632117366966546400652092095403189085787017949080533375088719493474061779601517820210637496961260484267398606925518800902202992235176031048413535554200299314864996347745265586449039975835511824288815655359639739522434666823862307402521222666251499691931168775033333948616506679602451659216430115019705011882763213494200153352734910616504488156650206946476130322650593459619195534375366808964334075388772164899256447131061233956232096496858395838215302235489232687074584833399989991138792215249857436357151192405482434780481218773113899880031557268921207440811353073601158085509605983258327528154406717722160442030570106526041883360363035654106827027841715977319831519418145358429007226520947631247050296764528397565403383133677950343692840727033938709272645410453472044536901009473005869933419230224824584853877855887496901337461133007949715548347932243564523162600236226144128228312713962391046286418336510140682829215024332397708608076576056702492341240033270957954699661781036647342567398524675146795163872264964509232332520821497875822161362179811331500182730146773251035390685049118258672562170097870797602982603037647573268104518749789764251592574601130899165603385179301044977265671306722869734680251249126354827056998338817894759276322322910369215079736505374161641010713764133331564079166427740138035863901045077964421967363402795707160549962310963321183590683928423734912593698730261471136278317867322964496890134497281647109541558253899042935689856043956463115220199078624369155413034060872905156664972532069790575629386096277958428597433678361023169853241265184630969430113833651289225007662246324471886916331847087566406995857741495230123275362340078385052660234266743168748075378551691667882018984702905438343049389372203304255936637412009162295527432575472411041223399959260849077453848751778135980942701062245113819132281682797254718514385148350350790896594040700728903665732751614197097730137538336629829320020538763559721187683668024964955231776114567582582176635266147227144655556421952226617202617379157518609605438447013588274963471155295111910603622600926142896897007465553399380259626543496244381224052237222985513495273005939758981571297371783488513164688879821749775189214331451906458676537784936848153301414948959916329004864863550624784342109975121159626443469986940154108642820932678422661561278008807230493645151113777183147881278444908987975255574771071322843017802227157453114422047343957749661007187663474162422921174450327081516457522116907147932540066238091085961362275948709271651038284937691274425577941348987093134299816570232547266331062077865508270228066842186915829011102226670435093435823215586220318062895833027840962458009148644365139148128608253647365509045744384836461456914762045888285347083940356839971362865626011186745761080257082031825866041735396154093409059773540632031229147587368654463873556744468850803133051785368143509219733953628869569724963340319612104048772207620147084965257826642459539374723610500207441240018444872737450864310929324399336299801367195775956588421000027186630678300919867410797420911069168287579500110788547212139088562843091153153484953981678764646683785061846139492818641573018837774765050911937829018642233920546863587473735497349058766215102435855116042568510801173084736118349643347378134312397470653753871176163308104004858245087974933404802997446166951748506912239839008822904957389264178203783714516411713958523402245527196855621188192860810029081286730292640887898234024021432241839462818471231033678198665557774657820205782459303238464244510705687198129424100069321987244565670339143658978985170177604017140269841888670434932570763617624179286314727492510728956981465416510650309823162776489701583667895694619970861610773478111962026331052756991958008735403572117486682073050183924054229131075528290703412644738579623575990732029859286216922499974157695797706760579603489466150945477567320010385221552076325173163404151469778809042678928190064134576644233972598584505846110830906111859372943903418905429709829813936736006480490067334058235206959398114524351544134797388711160430790780553754152117280038282743520021958799256409256764093436375068674398363474878552561817087115217769575885458540236866506074772705570160614935216769605271975742227532185525050932294939626714105893540927008478138499126051455627136228954649403110871618827940392534857700499392909421324341478202289026687422898300873267594886050588339557777729489343299984105593036386529410749519664553105624611914498357235844472772650924897753744386064374487856167266906342387215303160888360925790680455524862311385938057627274214970939672070694432374923879322365454751681546203837599447274593993891837006839329613984697029407364059204074841879312738103125044690677333779263805391559697796270925599167732492066286356371152238768255265021608125680568974050247437617907016061970100193412398071269654018043190259839980359754809780417374586840859705399045191206428842359994052601230586579174245651275648763407354518641080337817380071794112601590675047384137802251392699558876700622254418308323867346091409844206099564200400834667654562663721083289173122429448167408844719707768409551184758090065880830872982941772228773542690694667250404219357551164211025713563119024864759348075087023001965998915443342823455953612423465069995314188926692013476984159260212062221440788959322920054548568273881339073243306832126828999877297593610028580836461835044710795998796500808974368569851452888031056221481217939314406043277625114587440493252290837733142206152914194685874773233869807592597679482505192443883837144587485306985556757693757602404524802307905581062836737833738287789785142755254976436392707481438813851219706961648062456641095393244021245424919710980570206012593929255414096970075827357031229308631883468317386969628855562684200035744981342518314546596838532080699026509935289680948880933300772230610617285815984933523793628519693331489586663987768099996066663534869589081018137763235548891480173759929492829233362650024593939764224887951035522010256963263441357478428326342552707430264565908939797151327159916270212943473147861539497170071241848166417911635884629905056656750241612891606671718129153640986080793396084173324335862334032540794511068388163034713665951595102123656007658555287699791384543574288954054426039712462905217003778362969446723083268185912992102915297416649320524839738988733001391395082533701776792781232863652512916985946388482103711287213968596719159537877792851293236446607268309919423378391225488210382462299480993011759200828125044320647923450574914751020640332219065472152965518920314632585856544389891608243564803917310531348937154832071334886304247754710283714408163256023331191244767687357356535378336755709044772655534554529123394842343159639381148898289673075872166077028761087960453883449718422768153455570192916673358751323990409740738033739534077310898221633899852325369917717499539557374457827623321825262550949926732925418172255567394418068581782612866542333593930252246145480292976811198804851808022946540474970003716745201417411636238553449167579900142656678665527002444731922385936836444030372845525908736918167682599474953997997155241861137017951098725073515920261273822717487238353490686568223588977290272310624818225213266117461088673124172484595570006089816404897121605556274137651631840580600596999288944084524117029083960348049315516120218510609201698824121996015094588312733002529605299793115874277337615361717748372891913952163311728760311796131198521279052858332520370276331997982343097726499893659974351963268514979921339907968880093842974769512209155494046499324691156291176756921199362409189145127601559447566808062187741536043647961115375512315224714328988834367616416831589336326480987849634884816156464187206036823457650061210795128706225885237263120725093780259103343123054933602283954870157030835245379162182078703598787776941773984761884089695420302621352558466282334740487030111956799525004831748760537641239529276908247828306952422125346308018549983400712383145351624263982920047562949725095605906358418026354061415920948356486904235392191872701614977016526465056627720890614214107792075256927932100125951978844270995685988459867115417073616063960326324071334835310462249678427408747257088878088515509392978175642269805099295300427558443932243127048925440418909238997687770382260297636881085391776781517939670631526981645036197890825183279671074351437416112544201897672890255008904821386546876927339522636161451527075706453873564576149269360964492559496701152500157842552500796210663288691603303951868827719141805788406719774787224897978340134713768550673138986381156556560496230704063922304439927647857968437815112894460594715040745187012340832149202904161330555112075875591439999261707410618435349457798424061790079338250434913369030996012889865719351072581532816156581537667535024254422859622178231612811533939665304029642139252140672797566408618913231603154930506938425215841800383916529391128730563109159715606837729005429405980973204391599130930809216682196543116256729451542337095140453061034303313805890325210171537330945466954310491717930684041955817636480806176657423025238116629482248678476547223961510874772333994916577308659444657586378657142971546392457781656392309018044303330054935776218518050119554847157253329586483721198210620326842428455446774845719230032543173362639913207245473344573856539352412810832984824641224557496636496019603695683498697398189447187228891489430372711192915122533085015654012872602502263826380181877570902702905370984809857109310839023368019915470620005079979998174309769577405543867218514648651327162549839507548600155773604535409413023366693758727503962888049341007661340293207967751649377046129342460160710753459832007375557088087482667678631266006736490166968155045864768485693817973336751359816737399016926249530996720573370007059587158270752743602487556097762680806151130034474950189021809151084076484257260809205423171748387229112026296945699123240359967438102449832837497906915558926817031275600662264713004917813983029380060187982820074633719285756184623442273608687523627360284026590501947964597961031830794437557040805152511517772012915902316854064447342820875605799023757346903334121564384341692105930136654788112567547227864095863563830902552516990293518583572342186098371995700501421669198834171794765826280117021879086601442584435792607707384681010995980541749478034641806918201029791547410417388365815279006639065639200655720081811250288174720855171606684612822155219147384693483795765228374963655068496466303958726347173248352919029015553222822403170639635183851183989709846774540831977403745927218122342792405902747234031111764524641259976033200897831781502709809656040571702420725660392674855711876423720660995093312736849866339565146509876551499011939585210134923899659135889910750824580906307691824132083010427538874080041623227669850119148284000623454157665459820019651899422070907025517427114066084436106668926861487120425245413312549800548543272433960296843645117925480311127723317727398765274542542060189012542014105315379987211647541516279599581265473366262046587076189485796837126545909519117918763964366456337933929382381884630182770466148269729036670203026291283861335039398859101927575253187274295174880793949747637483952512754150696647177062511696829617512027822560876362196979453116016569962778448843777315435406341552369672972844876709372119298337260125475740378214515734285857989834801144799989546104541179484613481931829638786347581682902362032413816352345777399836782074017897971153057641761044950814415091973715246806100626477594301059446677646586477492233673631366946055487494913602300992274214412230711502834500545150145550615349162856921255693382169977301765489665236441081443638598316861934164128033257370697477690160882987130427175248849480081371276446355039986411957047718480434530933855078441370134653793405481246524535962498562395159912342908150230159398227393950523311241475417814468495075392847534074534504780049369404558172966444650121327195739754759880292426689540833397371267440554108140802956961552185385438951425177093576150386341624366520381197616621583770362346407158961768304930529072073802844552811580052956892034900880450283339304960568440497673918642390064105917152997912632101470276265500562606203081225419318826444084788100467696528311927754640413927383541981633777474982110881382967370916777685474084711477136226325524018281086717156547435922972870768557542173981397398611226143039852142240588419384474080897916329879508186218703024336922407113472795343493605437635154062504259696157989991218852141956190014467762436539911058687330676152747399043456577972014592431029147657510093873655930018929411826488170577116033811279772674026361303289503415079852354817337155587952708376005216503383042491171966084923079027820303306877609967565511136505033011310696039447245979639320596626315468833982439975090103565827597969307067333023067781888063517335619862143850940009713337147551874625139991121057220987028754893633354172167350697834334814453174732927518395852848194054599387951557709689101124561512869794552197650083544751635541763860137832442822255438261699565151309758980569105141922835402347933582794268860881594588279147376899023751089652726886150242229168275585733004775300994981194351021433904013102832560183777980131432489198735029755990332105619335417873974063592941902699112809249814560573485647840287078401201258294758551344049930846412159948140352077905590199111675896029723395231097929817375531929630622412713106974607024290025389681257067128060444977588871026199593281584997650605745348092322132027519869649587191880665651835601378296962477768253789274671354418346794102790844885789567631501995990122373378976698533966189384462536013933353448025207013790139853249790461519830563664629257051529752695377335307912602688556553180310052629915872687220865521270977090618308795151931991065720069346549271400515618731955293615610578648326856894642744658884192315866915149963268521058366392354478160650072067254395812728963895727874708082061259025835824913453762564006973602260703455749940957220648728138443036999078817979197210709874111976783687350633562368437043674174068486265322295478115959633895231210595120865095474553543275875245841458493645618951051437430153265030395754497453588383405265706184318042777858335319289100715311184160154343231721078074977529960287195364604375773980223510224169581224492973508746106552507336261862261777980749098576836595110261816878927810926181063689598858673508213765310445560718676031772262220118495105817616405177186030678883887766708974850037818297282454612871702600620829531129527038685601968170587980462746504542712486415605230961637118556308096126694370270814827012282987757490170861283579896060446694344827853833973119631678919605168107613754701183394091017354242819457941541853884361444750349209465398032635869459622564048057188174609618874153185472581354145053496079222147274236018066616129489877237797210902664027227440126678625884195927972955625080185922313147515941774089298022583444005033066697688337729257461113996589895569692063797231451872199743493577501671486522731062272416016904140483293512060835140525521891955223567163077912114399915863795477053718119602696359171554293019686782595592379910569250101285424343243195626386393704596370283704327673188769764779446210732275137154710280071622593172151774442576669387508014104037621662444199689236331402103351524544615480595585141604335613610978675597119301776138056817700412462923983052223862009167017022686122711966172209117125292325485364483859898413588763007689954806271322303890600344752663545387948264812635011928898099863579520821313916221901762110920345470847504368214568069293784161323942260284166718311840923242173186080337076078556694572378450306622424371005451736299714961211446497937945343320003008764581842580181924998799523532916197634228850920838748000731609484212847462160788136039434594990643152849935983418341013618162989433205837524337353258713449288095670348403331451760616287908324460089899913329918010903238226688417762259219800974592132350628335468834906274022644895726078692296984749179328675507327789190915651456974936607902402818801428035068856275864066895722632935185219003855104936028627831115099439573533911035282794191215461258082421642951187322307050948921090553857278902442720422795347140558280194419574266688001432691019198760897748393954154444090363406698440037393435369548599293769629638372409440897381473584747121527760074874607862568873407861917692224953426776093207498602015937580534678993551149472946273489933924963729844878377869639544638168476592243858229020316854902270645090844530226383693487466610561810381929360719712652152158690541115064487609017216069021223608971450770413500365067747050831420196618713001743793558525842216309372572452923166438409970941024748701027434884299604297422373000952705763482037313196592170423159612228255756370407933899772791135984069516219686497645228633894608392850840648318077702090384887546609293187654221201169906935225424697749576932642085668437419137040272613341556000065475271380913528763305376354322146605839285875835044353610684646144862099194042590579963967177735546515867321180293372745398487111036496603361847542467403103315183251338288106557113131672834510300298485604014181161135712785760058119020393232279301583558759563381907822010090117575142346547238183482210694205650935808403663287541428226012523946672131818147540066212319189755952666928017202085160838816982033953192938689272306062145857002501294060349108223480827040063748843045094669421577509147192037100922596281604365969856028263073843835979781758060126260007250950836027806667582002524943203267258585353566143844979122682504441703688665121709590900518487894078202109249381234608444435652625390646842867346940988480024636655604476411258269713348749583552326731962457096345862884758267307941905494047932614647680456543569798461762941457047022730503799147274019220516696972128232500605492402214824817940377620911099457488819521834650682986883382751638589740029458586588689104782267386793095908773135439638195545917037011781570168399984123639616090967396822849947395404823613019361912131405555951849120043236373231410972731176764385372876260248933785997060350681203773858887974242529938817625184518455674002947119263776601858037153319789380394829444821016274758921544904278377343558588601453217645948114013907624679460549728669792762227593475399250685982636703133743375001032084143995606620534640582163613075043938201332549686417507273589488366370621907282750810171327231577826746854210375777142169503303067911074606672634920801823892935089316705188117451979891510731648056106950229079668438574893402465065813236296283143521453592625103497531164374718893501403762737566203207356729404667236204185897579563311373733242798678216847209192246561062425287912741398742478508228518940090819479440595926178669823067715910119231152162636245634088623044802013187701828054193877752762663151661189389013643041856679407610352169330106899763072249005538871858417829108762777703938695909576852588486375161132089405082120138661700096396665706653139302354795539664105509474279560151944198385138829428668221135705552649385318778607724786609413792365457583152405902140225280272971143609037165288679325523796632582306615965018108862378651852950409039575625315902069898227821325783394443745513387220077527444929682189167524351282146648007349291796332676490410844838037072209768206639237271493097421245235991787619512073333805551933027760501850423742603877086871986492153700495846986290399122279975772896968228858037724901474896634610802430910644008068403727493205164169902083896209929927090338308102950343999211601023161355576886565332944768783893718297346625098907170850552934178516258230488748149453653559166550895811279981578301636831880172849050823639351307143884575262317415743035831129240870846681970848638984632616829990800780486855473346204316502912736929539575227640885730195214271448324414434468746343176895752308658901871291675473013015711465164058922519985484111893303793688669222839465495398594317341946307411705123209102985857726004191668171224984735892922273411848489007750335933639905238652116218030440245194450734545724004456955832594478017836674453746053512357952446794376754642904472750569463353471741591229563560261549051141985570947654659921102937712190121647435561472367837755164425257783064927645514095184888943659121159832272033606206121583837462945031388781378255920868587446824140594695613307671448941511873979883574992000328182594472669554005799802483326224326216365256402123659300266926790501941172882930573573262946478140018562744823357955974173937910825505945989411983088393631528094309817485697705205827289727018011882142772087399961806832015742066398891090837980084213412125836366207725305660350132598895187815908937864142838951362414714038953531162798114490138279926088940835224261700830175792312321624931150308830760880261216637213680629792177944991794841048342273544106091698193025258976209757982149437623471653395131909358056467357833343104170626493724767054822317700502040946632851666863349261220952321356345712013591501492004325059928612812251768266848551297646761458361961571080473701498913516816423580403765335874178078159005554273233517067107364838674435143804956757370313687901732362801188788023157110150154099461667658484138670950524651267671680719494806028229145487420697758687408298672713791519594133128666238918852953367267924009545969729015007796861147489471226049208285883694573651734629995056863868523565020522271513388287545033501334487322867681913022485542272582476714881424775876135403077610986651842312033213616305852142773268918140053105362058032147698651076716454457131965033418712353056912528757923655921736481495427544495181924229277627244991681864253574457808494716845352806673760310886504268287412317971933812553667189273997630127259718915197031563042157698412721485067015332730141562896819500474286545790682546437880155624075933607096291934134577769108676586267932962880720648585082531805976303548424906257761823941659278071427804739227044603806454232627075816261190994799870834881957128529660142201683441190782437201518343653109683447621883905843098928520571238891626995992396991145357091453781415699968399173057985185347748042723655940212023724036270745696601386892088624462999735346757064786197303036227716602604705745203331085337645366686448807714785976855611044578460040453643978988860879398590490316429449527691439704824216750461183962059539841905553075571148176122757648976981764438053740931158210643468566936536699853820187090563946723438321726754924664703826419283226433397993996429503909967885831783911687797689059232460168032483993918941695828281791032002472434778548436455128425258243377624696791195679040357124749951584104902414221203388547202988519835885066725465966225119851797457362927911983457396850468255396839391364564897192819505395056631909423696454450124395571498889420256192714263024725765014563068999208012858538140558821783157730543648748907885323713632863256876427773229203239756277965913018695660807349800804068200190103877725374069863472159840700541095300069361725150067711911281771440465831698708293046273156677136120506961281029881806377751925075999389526088948636488065289802649651737776436887295815649330331442249135746386300770518744571204188218549939001038465310370688514185091870646973061101475415082427384788628656950823043633202886873421017721179400414038669889305292821920137086518744179760409457195694474537370143707898275192557590890558995332580286533333200217488386506718627497181453439234380358066287226265986384758194800890103565152522935085860424192353605944841262837032282607915471602949858854714485614794642267954726281369223537000557277300469434046125510738532764913809623976621597367522645857693415947566171136912135938323977788574178159275290583073666580363251473253952406064025807605460810037297026571436272922927190978975794547715083454982020411850209005599013514650950736871060744005964779825083972785844405961865370471884775311819204392975904863600341200022809996558879179072914198337712922140072939613088754204956573059242799519653552631846568776019801675546698551892040385429055369711843893926816479565927190058519500860788710870170856121239732624007131849748816317252682737827476787390639676068383696772479751104759486375824237092650934368874228464478931445480171995406869070470543151157510746911428567705053529984026858845923667158937009323282014173368626133259295323515528791098763307969103845240377594463665385097168130001492620241936283341193895643506166487262532699693193619988565082177744941661100053194891381786060356739470692132098412596399861775397817855593340046872962693267838583364313546815458157269513548124686863676906586688276293975010606838950437729609265104230268402573674592396082079996603241555749979454980819993274525911901109883555180814986721850336101467270763897798469736692280129880984838383406685100021445753130232883886937624836083972376540224799573732615000070742342218130233912156969515256754930994371453006352423199481759955693970914753410658909518794366751137500155713258580236052538934311716541914765635648028062007663099886902516093102401641985444576100518873709696326665854737327184506477452589048012482260477619000871960687667857064711743751459793821411852143953914073363033357455588905249199743372524294667956214697584902194399877026718370068362756437763407345070968425155591380192009905981573819332129304860617100923311729684316793611930348226240066958349154249220240173663505407626866279737895279295156374402334343598133857134317311097116858186788129551280755777715830022296360930104739839192994000472266497303956368197159839330661502156585908859854914193832392554663469116935349703127743210857402159385498791053575982764638057269783529919419923532251082831016233072863260866237763814650749678190308841426110029352333857910308993970923159682389918398452809392399224814191797309865112849633681789950447066866897278254742947676954144929533532540133153572325616679551211619245925570700166644109533421124521988414571034240009442787531483154891832653091804002254283708805068749900265569293022351267817542324987711538500610396540792356709478329410805677754590069463509705049607652208221916186501961823331864951395164427436963897499200185358318915910043828564660965156747646758437086883039748017078876419047940211299037178841625942301673447081196045335084581605379003458627010144450138572686748396526939021531155097355650494255447563682335394564977406317129687461818669578947402892003328491552913911094600172329164279195616593961273406161659235974162109110956859166218774580330111370347780331726442626785422438233351295355432205809310917348541239296936104089280527431945848787826051390124519875951073424956453638822892336712025355085754224680257743293158321073167315145125546630976467596678373622203248672398500714498090476825115657796990215929544401472510263334735939555696583289404372811056334950726808761533123083986745538424565316659994411231863275255169324841971848467256912238747456346356729647709244956535285827475616545451010997603147789739119125892905620754317827744320473836721474858685999291322083556142019277817402763546277549144350672251928549547080487221197086933111737585454397685857635150698230798191594881681161439115721519345017927830880520425918650279167107652756149727116626078568782215319849078567840334898495795761223086587643703796023441818378646229005700530942745673251280279069028207149133693325647404394817148689833814899812137633249290364104848705585680131502871906405503832976512512587612250054483176946724452773815008356104557610485474393810063629272830227999917241511226006114710522299508945878088947888499231167434340558411391242374139840133758669654008374488048881750542151828889507685145181817576446489922045166061409921560680517470144180322999035287888143137184595478738105160560537680851223010466403679484843847956601011268846435758225535784446794310611185094168008233825811854438106496919603053080787660040132583216226099484248525793432287496987277209334636993549754846755691751805233774956179348760804184573268287531731768902091538819289908499469542161038365086137492272892496618078131680695521245507517989970981016099014317632586309583629667360411515185609602453062579603394399015040940349756344787014318201244905924779673819425663929750221144022478715772126252816940100046546322856676411667143876405624374053991093841570710559195430993543214040605368190706452523742076824474055241368892115106242728415326477722507482936273825381297127853221333990309079383707622315308029226640766888868249850333803945722183336767180564934829152256145830002555217791567983023106443263682232323116432008518005667075648386870382133869760096877469062093815424479702538019569048196215881151243764646864662148816925105092005423111298335373058174580979552462018260806166431300957547902305247335451806143491397936599231041202053766065872182113383405878110389110002212498377324693031562643072893844721216426551450124823158217550044336609300148622766652961036905985885181449801330406759772265435518411327293774410173739747139634333066992921456610802481419159879463596830155342834824860015593496176537974931130894540271022861877037470908160047421092516760835976570758218533250798215197632160029512818932439894541250890768716596946594273453688240205820916979586665219930385621985934286238920907151748142958575452338022774361394150783544233986416332930395183671264700392178607518042325225687810226300537112730470065541203785705355240740923540753328015274953183210941770740345244156555747169843580126869130081661511532507425989339907411784745784468567910635005056690550919457188963158477521948607349165742216059560621267254198023809836738782889181422861467515215813439294671364584411692723525757054424394401104966478837226331974567031554523173111705206848560969381317828248119919812054168305620213486969461103284430508303319678454695503309839736756211335559812836742459457044583411284623534919787749015118348323603139331854835129945805090290658941618354087049281999096815150677388059160348595181029331668843415667429401452626421090206743338257529903013359840413147919200921865881664048035996036106633129247929365380708779862719393295181047979103984171793956830773205671495495947456688090919305059832498444667081950714766876334794791547494867795482351493901107542342641517326731234417771455543585886498146832039451677490012528514013156827003392638222565833093375592964098362235840972939246694050011806360703948470946000977268445622236427711339317167361609738425142731436261523332917557839377136768582255460099699738870635810436377180020173421809274990081445016267113179367319184135127437030468867364610855441665049690730495338828977159397979438544010631083675802361173568944230370797302873223772655972289556082037985262728970129481861509216610361803535384637394399883364121696902192141106795293352722321259326211103313264438361973896327868266211321686611255997198815534591523371442232917323612125458265018530109937409763162477853304457032482712498979283022702540449485854366841451667220773160649278712519832184892272321765974100770899638004470718243914856965019105164494631533465798822051448607984321281554754819326748451752037617383177550390678381438237331341343623699408101171164596198696339742786010350157903799411168416006588605590121817309892479940053543148240675656595221270187605525376726441750547354212795167258600424976302389046300849723374982658073768835825874933397181245715270627001407026016618216750632101538711737743347358559110151566951847923601892754849730769397956237499214787367337272024592028231965980587671924596641548502620332014887414591923797299085716995717368314373686982544828823224718340305844816204712899622958369110478743195956509815944774516041725043348915948494556835963093247224295110226546604796300134704778979729195585898849826670440223993900517248728399706375775799739522675285507155358926680945184488781172858569013414450619268641860342033206039561587550786261720730911829766010054194417094648566870733441609642006521001641956394798199530759055355762251951736921686340146246585242875472353846295053628543750345188529646322969084098551716602696243102927620983183291113521984297245311150305903664787974114152436657177330716019568534654049965445836208487485306232604853017574358707598340305942560603650632506502875248921624975669297756236597801443719804702050538280125906243106867577803530660526820236669938257627367673445932031502743256115692402632426292130092454871519270244901897587043151816073048518831966273495795993181867421854115793171301748953200607162468543935840370017520702964557896342786297168179795207821133895837445567231809337183030396939764759886524719295987727392212219357193883497753574690767775922062215797551799673554206313473735560457232987986622121238731662314771833258683552416137689976978242194883871192094728189079187619084730194346242936571905558460505787793218812643455392820186007142723736338228386543582204452983617892880308234647697670464439633871274510606862182707392066874971637897452336551441501492298195269931829505729832675670969972796957390385015759509860602654753773254111012261811063667013631604240084336475415494517301963541624082426893190784749588849174768976579682852773604862900459014520778020215132562904256171340996539080217490112647377295249005742840797655236132048452089834463604377635884063810155163577657928908386616187663946924420396363463290279922850296773138117722239637785895954190029559704489586997894587784996802622820202115006872080592943576464812551927023285938509693261940661561152277600418031914711522982779533019764395844067764576619660985394130219109277110261722492746275891666588408212192310428542390805338928353055758267829049929148275976258407155170355663239649949498294212095835989054985185043305557284580116225629359851435511191913422315522341432950345271588769212769780923036727976392667406767873754574633843560243417295633044987807248618221367706254840061156304890742991366396868559667380961688025846712815563938714888002039090312675969701189600358882978059204221137692783106885079672376477755681858508077587062631170011494174452170762511995542904372406358304619664161366787182577573845278730917792610744068098449203467721094869508031703345403616942913413278962699996026510988394579363872509349461177991605561402917384336426878470945156339743987916569372723614194996921135539718347310975436168153702939633173875298941871829820813089450037692249836760802932602929097102755450775089251665430514787482573624356000320308828399148234267717045681705795388792654789663366939751482963372938422922430280615942189535162143051564039606818028872389039670993266497375125235614720203792225037309901922140862422923433448771339487159142257594730998026774773195034460531528179344232211451208707291475903283339516951825235799265403237655773553695870998572463344689102061384797693894755154907560144657925342118782977614204953284597479786571231781119321132741662083121171618546296452864129542504238041111863802214410895772901698046527621214971096856258388220673088071078601559951225863172526394956025508811274012561714645749428361551522177722468666792083210478980261446980811124314826137879607080998279733174378259929925147106949094664405180920326996900027216431805299574558492548447925271301343456951060888088772684995693703831950368842517868554789367732535205707494024197762625425052711033280681521742520260253314638168657338453661645014070538390819764085081514280908542692310398011887544653707521527453141752430366468494809575736577304031313797029927519264528797167317417339228910158227156286082508451530480719653055695400388832360780049964114600298526592686545211007213495372236226572705965110888946615072659193891769650666919171131962056196401366511357924735988691561449236424604302626153637939040911540648245813880995330093258734392836860426849718144100520015664112291943573037964929747324974152900936734511907513477333812669262696167035019566296287270348878563297259369691738170449217730110364813611978229673342004143459943310155623435630465947585867948066920953576011740516943658432303576889429742743644018913708673241491523258415045348103658180601156456875272622672469182286413547435428339165808729974183255185601594842102736493726340931651908658161429575146245656150531869713947378479901203577037629552961522959351773521007592770463230480966111145197601342065668956174412285085063451877099732142915794930075118159342582781344190641312789670831397408123669437324488581120249051812968668025161341706108020013189578315501014717973971303060017232336841057132727518465223077373985167497817976332059377467395055160690087753417910087822268650263093179973652793387537482629343139371132049468169883823087231472285497783923851710951909875350106218378791031948522683255799910843429206883367796067497104934724017655852737369539600977936273531637322177328183375488308595590281446635934048775199898265042027509325805526241340773041357253781969786396304415677860299595125175357486425661248903757229279233552863493351755483029454859078029424294861912765672806334152387235793848502607857580000250239433243498378204536623857149794818428068382660483804638367354654189661452681930209201910838910619167368238460830872867974266126792581966998908292640259339959511245562417007284046107556326097076182996175831948550749667141822019954310339266350783033167979039326011266081719412130579063652506008898800765470981236826926273763838574548495539022731827815341886327004104707463739280053928099238336508211513792414394813090432283963097372643599807638713152984892788014583081707544152816614762520705240918861339744462138179313499164787604979839593495569684351190459237381584093626135756132004740742709677563008460018384907740822691265998700225640841117926030975843820621327546739910819678758699067246139760499095888557669718793596777589692377377646787320075286845982827649176532989231538215346325264800483285696272483307658135017238331776055090205556676754159599910951394363128278554453821032356627862416806684566398497622186435179530691818449919285879804245224507928542460004680268908171037739925678102527830207858720705160130110327811762275148068998272354250942163635353713582290589622643727780157632021831079094349131798022869662291540191708659995845305338645875304935473630650017185738004177016620929210885503837945909454708223164790845939301075910744114022515606572437978184459176737154087248725831682597035909780572702471419989145376613030812954291546510902051387748672992265160568848013471582278406406358171358527299766206539565287845381447926910722157837187627829575208406211732936359326203665554141842234599224752737967651748011157735795011873744755286840929758083413601288305039744845752076994457421849620338841975908317354510337830541277015791110659833522045918933307198944433085973793134287935742061874407680857844392592973357233347585102482240876287832110344813660907217494302773328377943143065327121849128413824625621076484345765732399363120676428304684268432454229079613261512456228278391175845827440513787038195754322792482999899123146868445566994736834969488352433746373374547289249446030833814944541611179426910940582443862427907358941401783285008320326551165653986196257806541117903036166926943882479028947962493660635299184498933497473974028666723849079289885640466794634341265018843325584542628100134226082484022648260555255434685577571657499295482930100219496525778661884600980290868672765360572693158857409943244578810704277169210783313737163516457128129424366957658385124348687134395943322313000731782391942513549706776043551430992516755121531744976920044727817149774760904313425223257813481476719095241310794935275589385498693365842294130288795370112692908986620128369026426727706114755665752349048518710007008309339593629287620419110492817373014387704639520196814997859604843109270677052840584852230770160186731530794873332116590173627697505193594164554213779389556942052627886779386519349186552987747613984186523167763472813518167054400358721184127576633534866170680450131172575735584401756806931802511212884971025804397082537448059781514816312299550482457021003718596693709503809949359400759434453651548961432624857679553005502705797525632359084710285887406837594191139852289343678551252012018442307371220944287128708765929881289943471188327652327753257095658319976586684601355618330710122390012533832245376782944804216368141761963517312714007100907791724636045588186866714327910699978779872521161466754745717016454219199179555496064794945277037642786358356368414517613623885696734846680666839945645128967248614579674183339367122829653064180926121186247081667878795394089820133511423868181011889410629666302493158424633245032540425675316355882687094531462435420141642129906411705772263740079745993465722535714668310454140625215170149309448793633186240192047439590657510089667155206418135198478140663772044305216359192895899901857227690556284362261442113072854434169551049494127121941154555476527126170438701493844107424163072641609570293094454183838665390072840839174704591555758139292102657231607861223394863481716189707175133252184138347726582768043207793619637343645300893275925162830171945531579471243821599192851565619895227816070326600817102635506984392765621232320015149913636316814001356380197931527588350215143325305207601708929964872624357448004847130832757147914381971412179609847435036755120200118143268652674599581927461459657325209997103443868888006639896291303663521444368823374749558791484177641345581469662369792352792957620169427409941677624479845776599543444207175531500963404591710743571526458023834948320220408812553356653022121414606154266067257663738219934236195952115570949776592655146137847247214283084571920372318123223229579351129866861616487314781075003857952915150620854190536181770217479734165111152571053948968910599937037845098352590157727259938257381301748738179028620094714279210703216142430934255191333912649180259156520067086171162690812349808769658411963474821100559691382434370116481679321104485932078571261498975890012315007295131401100044336606206358395579292819514900040390489692312019069117879248457822254629236346841700943607854794927627948957150615941648259525257708053473131577095522446496234047863285355750449030997056101441371591105462661977181944726915422727605203489381848655297713527533033183399925026561067214046712814299396015125250375150969742927392052964331134043775743095820038716707887050713383111534026036883075063992296121300013505597757108689989141655952447294927466600076311938177468421131593436842529987465998694970334071611208424033959975815383848907349841855587720826523621490348796996975505872183398424092229036060566637137382804175174362036783723398274061532294191510010299967373636398535717177768236363822373022896968524042351038440189538350473900316718849167316603874721708864178880726442099483385200742563983210339567152313049716063442210868650983879884092736822223774432923607166928598276209241393216657706706134455239073737792514388351544167652190598142996345822260063446031630291915776890833617208360278447371802265715983156383465845418430103084857342707554861777633936883026515684014974040037657732012170105448117044973646066856284785945341376357527251893992079790352100258612926405517227776934785075534996778918081099332030531437957898724948337744842519521164926894645594188829675370299450165519793845412308960832253390495339567006914379684146727706800739538688948786392814247456599742933961429702492005252540338033333354092025832622341081006443432153338796924732414089559301270015683896758734069805401938132695956813476982636993184777661957778684812928524343863997975178934562747493281953519802366456774256892486718954838138780046517733747371616912829234138014446736827230449098220899452541822872760603258251425186097404881854546092517793089371902036009203696755032110437817482894701926151945880929479623591057496520513444103402435856312015997329838055171960899646614353115154361620523659321928907552078269124902563084801742880911450897219819187378365611939441622712922685687626750701769908537472883805255155041053095128534875451268680685883864074886277575450432452488635639032454555794812875479486629370521558488286939217896300042386040250731498089713889034137403115927143472358237562890457952274327595272301900324337806603625569397181101998404571768675299569877559637660002158473918737341309765573797798834082419805611750398540418438982634984861755650203859304190419738513301252967740465196885345974991406186263837028567035778077923027553077178455532775168342348132415843221506661251845884670865262528200838653800740192485518221663077643879789313857280834532132190314734104958457770936527931487428259310708743239886976526746521297799090222799640481108648800835627042941164872926122032399733860677730260394722384291663323325750238097995692236398821785581260622788363727313219894924255984623730172040044762381737301845423482473650611155818994427300981641832796853663712048807462800481878324504808087896051229353808856037973556353849651862990429303891120879685439611848246185243056302251712753001789407608856939771733186688631624426901060399107741911834779586491208685947524225485509543704555941799797603879326624961844705621819300353955603899004483865951103728857099264735462157935585252361533127716646933185593483487669785030081992625888780583045204313584577142147758915308130909499930436254809577529883150065995373424331488884257118033881807195282842675954934685498514691122256866292483801612642080816084702228575384068897469542846270232223498628711802995229210544500046541144769460130601519051413039531029869411164077286580305102889043542239951814567703123972308369536755971071216311469003603211308989025327433477804792026960277119867794867824733169568345318748096289330271507668428944670647964357414292644199510015550053934120399971895762975432922183778688685882163685106583606970791035318266487714220450594385098327757230414278802727052557386082736614536887275461659679040957476308538118623814046702943076387843296639909782599263008165126977903116332323810863982164125620307536551140009802213734445241271722483512946348008721648338003237856304651067285131942786667023285712049486028306476849354073505179529359279909521815829290490778307959667387083391318738079121793610279914435132184582189105246710388468788815223890070669529527866256574755806704629087867245994962286783869236831233000098668565236805377196810616705063879921426706056388434985838851909688922914258678357861135319840740260551014728107078111915427878903467738015316556423819978449649980106563371480704274071178914078885874578879385550079624438286975974533426544480372751213147948294489702043835478179307796513543606360642558556626143975436490622459569470547809576061402040679860342789852927190144011947614567051750631127459140493878486070275205239960581681858240181290318353733243146653872822550715657936467371968857810415097763135407581580860861345144883180312551189917798291503209767280507672152426651479398302925882206852312339381101460289713713828037116069477720420039015332908001705158434619192405297598979462552482076410208960838719514189373075854918515329091736016235743326722071658465590754058602583315312603982895069112946099964189915295806548386237401088211022370758576955570230894795895020888926667291523008707268703999260648707311631229153938091050731451026867071048504289063879935615699863515487325513606079469685608393418238665523544075268701414091462726483459799073002969825983227417777683055190230321857292158261337795095551479041058937731425624120864744277672077709883892546474254846906175442793926677498113998926454251564937688997539674795118383597439839168010679190691430523741195219982518115995117960046446768500306676759798303756220630761009294618410714382228123643101079872032493022831069119604281628791981219533420721034468329764054675683615482191150247058567044500550765870111322659019140359658688490021118997835357069766942442513845089905462000934988688694967397830147864313204801946018242018219257980050262099421863365017241356679668182903709983452859412632029693372524718895595821109276983939240851274716972607179636722611432124380704422257418696559894621951735892661041739704924687170332485508765540709739948257438962783041271377382812363578252951587977026582531536800673140131829191832612730879387978412161211842781758533648835816886914704522351603707751304219967474006331257780041829863081107958391436062038362373672455306830914376434632870488007697209459150070838336540230330102539211630974800317850533770823756748677275474097975040027825520649167811953677485592346228814881385510311006185403966087569753736347829892021807660718588770429585959271993609882318925036646450176185982356002573888476127546306794828849733422146486886073339381626690332223500738516186227639597183125265131219707018543273869794395631496956290439133278198577638344409902395687766289421305978565030528903325489476598484873012737009846556113256496440549070516111857765287350736586236578317066979543597865913655412642397826467513136797758814741132786316919617987891509181044032307192534193675880737673928254995591921997599421805589399695650521731445951750184102999673573524639279144017927716654429070991287992695485249267985832698671899323457115994940862078961471635635200964352249891404678654354812031752309421511260718025046874106591665915835010896801264149609436645500334686428743781218110226730970344257264146193215899045391301774467310294070158198842194884891639352204099363645308126787541873783547977588945069757894336370889172676523578897857148089624562041862837230672785553137641400560436807959082085065114291430445215904800834135114324960943467820533167463143691681829608638060068803647637886823459038591923992363001922201190513866230904485861624827518833655600576800514703095223395882741313969888956833793254779622700805255998945227561432282862504436883928480699139964259512511883164265684054344670924461103091226524378709396133857481978553597336539287943327428339021896998801383844980461188626509685271789306088270966491788819132150863792783092074012142546153256151909325990881646853347981080680367356888129719070753474215166691292644974599396030117915696448301150578842180808206631744390507849962322797253502788492021614740058553350082621688614280416050059334823907371065807707677829674775520448357440483125717331474561428100651359304705497579173137703816705516223100959314016988039577652551318466644525967332028376855838387270181502917859265661069035503087817468610027750659905941944747457369317178086735038640383397794517995485439181857127094909390585932983607782255679388527317645855555207614037385412081438460487020038831367742131444393198126480901584739508337538956373708037855939724797431627670959749700234979180107526243681217465110083278740091873506094193187503987656951985915601362768564778481364903237904045890437076371806875037640326471620126778001564503071196954550615701215921569695690589606802762547966208052630357310012143609584595322362925250927441933413001992712822756733607629329484228813843035382834028561962451167400795255312093085132906518610656921423713673419124441612355952186272809283916451388832432224889744520551884304689239401531776996976407682275525736261602646495647947572968552823657890514610424314901008553266768021780579086540884268749503597736079013106710859263978059469658784801598650388777735540548325720675981576200640208640043254134516733994089279873739777209930633715327909097874706854753817352313589371135342375767274649776361006041696285576351788194225408546392949852572326158470423818794132635139425047491507325164260167195088458085032130518837469920404140685490576845084070062566098813051978201795589729093789200327474691509315102016236924129176816679338485222457860027296863584815435499007292644136123902002580138101881572038534746861268332891493399657449187257289017616883572018370330899015406112099154376816908412486935836107674816020898336809151790747606617553449633347458045538402396912916956584838983940804252964475702135585921202460535566656342977314534010629766212715667907665554897349065242650788707847410083577249850387380689393068523922163474749563228375857433309430438350862380883851516315224690491182093198331928326821616557974036033297248642625168599826586680719011484585165718923219351816639751340510204621152887975156326087021028032520092952419524743104190352670159568275973618806634161334696190204255598869245753258121208482667687202207136064337878130319245340308543291739865126353582970680383701663975930235278642642775758568348785556827081824154442904662440652089483230702066583868196737744489684644991168606025364327899991226478050031494068524129406741666724218314517910212341341793573161401230675452554122270323029114870514859586075265828549101580292546217267142682094751976073516270348473427922740079750892755849818993920358754987843009183127955834791965936667773732724585838989424679479684323850249970750208461122577767894186414948407500805278374220928748764410293120828461357498317165605837324201852702907108275225376121048618974023254900998455575383978208564382221276244529034884644103831059353307934098259787433624150847071302833384549565167361878360335080941540875312387981453843125793900204161582158465693275391857255911804433280669303917416070325050306804877133566136474602173685944855833879756079278949011512608276409089970176419953053284430944903701245880411472328287765450960187807767543649098715678736281293490983401264127874255085857006763505102162293942506740139445448811583141448530782180962565080618375583474382227527761887094907420579279218310965316182452602799504330123286705560249614247192155987366817215739422199840790818739123747872846207718384729113852744077489661115564011645108344239406573006758874976636975593699700951295563860762961089959860427448872549720165804399694156003685809036501811358470069221293734872903941210485578192662999785747937063617864626340038243397187049855031114945624309409941646006466986030519311042524798086135238423014018899304073197051581159716719702285451501193322965214430309858874786349615973959478455124004777805590052897198640166196294311498172844846199173901354098840249091176339925265193761436886198535747542127417469912917828303260670084617085897290643509050433106527732569469574624044914639345916476509265689463987541211838576417249591967264463547970340806879860827152431759505995192077347372118736485298068986082738674554467499131115893334870737339784059127130006116308221213781601866515522439002791205732266730814638578803697146879058515210448229363054705541347524143141007000000744345545591846084720498068932692850897906356664630246025675201002345210613332497305222485169942831040057133792673217106939157424257444300608382608763402826179899500488396756180926347237305061167925743030940633708742245342372834412093728177050097460821275897228198742294751084876660591300984645657475817870425739433860876801123967020519769986991488122134546893222638301713455876815671129922164598723905624293287882008407275588854799426553109685104720596232321687614862640613226606761199859894724126067176070139694870634969925175852648973294938873701077078676189485265032993105258995034564969946244083725811601014349991260706398061842720177790987159768499055339800741583640432841606033764782110355800911751704566253153276353251743187070700622638954516752320438345901728863206770515756944632303913322589295020633221065244950739947922399736435532598627361689885031230181848073805715876675802515561127739582250501680788788024763934972757439255333822049238039035040204387309971303523689645989316582795628573531567526362354301886533613688004437000098966710870632412007109218182599411141169845549969516301904111685402214901051447150611855176721155473199207820010971625927086842384459806039806400580785868131811408752104336816468152692627544813203253280183023149564023104657294183456147291609715035602100187866250072197008470876182942931789557441296286829864534093317175074317228691414872625164278634927136390298036781900098302206057928704251859766873290400522722922564630641311813914485170271838709237420759839466927914144514577128934316722671838412593955975848397204485486544102026959045024948468836097509759220358383354810658884560221760863425214084683828281389448411273555056502501000580520754037064994394440235319670779619768804788358459256099484684578473287462823755174473380512761925569449900942563550408587785198391773396829443585509481488420198931446893223716440873851745563786538203458893107867962985324762518618541025489285325410138761532738737847140596470865643169584514350443327828173511889683174142586173945675124402397164238373441101205083994118015495884107833050887956725814175327679531685028491219905907841934463972263280396028083433079610443100004732393321446413568390355706684518303871340292330525088036727959348551246295862368218898433963374845231334564177173443099371908820116006318306868314732260913389071421176623211314313943793007787004112029724399547565174390963935340934644093752385205521641952545424737803156406029368795128965284189040263886664077415894454478083131262479775110213044963123562122359501845223294827209110615978666581067273321506836351462625878392650065108931019970185485856965817737840576603038683943707221729475871599939996581769164443364532222536695724543501209345263951987721493983169845873531513717586625936543099599341457963560602297831608607599657392952676652580599340029093095956964505658978805673083313446080606731049212459199135888304606584217904169275052990540743411183479027882635670818666286726007525161689671311634250584626360623815307206259254395410896392919622642765880824967719136785329043255804014254857742832781996641685366131057214868565859143257656808873832188219221537915822099738526554661024099186527560283522921932591242632811364652383750269596754616856310448293889512999368259717304334663294619516538737635990686201975206830077188944399345055479323117101257319458658559240338399502419487914982280571585468529454436602138025259221044053017954371302968809798650759303752957412291761131490847281245184038887380647769316294908727124962178782989175785103470271822630129235238209953042947503891539478855302714779603889327142960618573608314238680735531763814895073113530583219536313869269759949325650373582498255919248346252068145834807015698285178833104746473627256063017152940899160853271670503598001542662474151693387298165559220140107806034809479454082494505913073055141977724335424817613471288493189292068133308322531387399173777960696458914430947407341187160053019863798199126897172007476782446380977239695133250245811424464873264044211247080319738995767440028743801063422662634435004783100467767200761276580412296773453459284582353517411841438513905797102113136197016392722922980237435763241455852721972999842118251187706746016138139856725735654043162884093981571933721015179716285732670793136535128965086938356413255999314464404493990061281823162252577819819983716082037645265515576967315827624414271080571901101365420516653778935183203223779614281213317456191330221846179384208099679527839860840241825196122453968901169543513463333996578675649895734888925016181749936263717511603305127793808340238496795271628090611244643541299604787011713986375079637181888659161111996651879271925954414035205540267278035655422651913512822605298142140446587526503793944668400685046033314897339671241694307169081552395571205128864018557972217790470415453087158165284755490669207455961172771190379034442637139671213670047379627865053584994739349056810424195650527710134208644084543537285078636928227893435835653012149648926572608414932653374795665081159138128150093887343568740323000589597134051785164795551985753646951006026056148830687326488485558012638251620103247196503265181293719000251689340894384283453705312353483616005095795455995116736516750843439285417526998836212671124245781335851698389855303301297895024542964472160387159303528268767033581045886863642835503909901483890341241657305570260183652690649863767480935401993354258175547409532097059265320466031218019826004637779780464018925510949076984013261127937720957688537259515051510609670060830190160981488552740568972417013737182996894032241557857112886670418278552058090645739605186582397859746017202755246318375135416190789842345476704567835543564135046050579790987217390857279511832583615119827809472424458885273753419493599966428006001149554562397492486889721888326358605908762400044308422794896625746714743442290553946761701952012180652838841818476996116237343220535293992692239231575275778393704757060287266385981474706026096241604673809895231372482054534864237309483931518310913439615263677081551201878510595788774931086064137007515091701391377884905002365936963204744191749351716111013293290606943938228134929911222346180560872412114020574179673303491886119527247180914870739522213060253633468441032530467825796495002698152716454926884777556709338520880084431764380262987963286238704289445819830229500848553946943846941562679842598151533183637566746020196852033581051305606107158894453125917344071836531772249099505327550534499925563082581570235923643705783766803228065613346104238184942463653627479216695934043569813808923475218534080332667490349727203155541742057674109951158990205751585303810096923806231915022011244521769247176132989261582101030843105584073823507602039862097023624698827508323344216547326387601871235976213265933732705160618483863833906229960122894000799712206569302082545911833036086736929818931511148465052407366613846418983333413803029080040095356026636413193816629349823097911227959690151386439116351547717584613831523814694440443528807720682488643767927348566172099696901325955526159648754431212341773172852903303813735430732761434580612487748209265609620641990428293649244899682493495267085885156133604199905287442287334790464568736833167126054084118790543407092200717096411358476847581301922604545635415318175343395132526818765591654416690517026575359658504871077825856935229607695780166671660864566125069281356335176436684783811972414706354494072002337842668393415195324381520873792601527958361807580348402673152620625365332198020418212666797075625152733468274048579327178623715838781162806754729193050377404075635291466114826707750487118709236470790072805956251782620448292505435929276481818049839430371312026830811790083646722900201459196193798047315123864306895506697628981625338618336607241267243011820920977357993310797102098213125672397023214024308417395737103771229442238699840875856597945539630944848534565989580543153042783413573370798298391464655522294783384200747389602880520814507586287655132927154243926406884414626747895176347216558905258150662886869523528694496168308118863415483670958124497394632360758903500242701820368524481606611784473483140561075410682499599579326556113305898720326118683739594533136014841376801269579473387671127370856237054184142489375086855264717779373675974198457360053066018535495387269866411907505437869541557648241956401854885371245877783394588895212824024338503970080976267083833793521970325199973728475728017156994733701777478819250056808434603495146920234223561799009137212162056441439297291160028996684322882525164701301291087348409289086886194979433550977198326546401992988497235094258915097168368187484359681333272890689851291446412561424262871290926185862930006039481559736199436894611801768098861636281359336025589054286877404426583658427164030231656719407861112015609296484933738314348469335903227048683151929306348364371501282272326816284847981232581114332960265137904165287631833094384649638730229230045987424172812078541086393640656279877512515647830348716426267191646901100193735132359317623012413802109125523626063866325878243134558549197409615665696872051196421934140214224371826158726426921762221671977943709543270802775334834166114178369982707840847295424666075646999112438289036604472477180673657087401815449045496897007113098396007798955502228955389180742367383000952564687973246982061730764637798356666470582263573838024571382458340027806170446093362701028036318113196754020579332696580639494997745463993465535897027893576350435497565494866475130736938639400986631221107317536193776167759049144029381475944419761185907600941780032731824314289994153673710107555153435751683718918784620208803034412234913680971170752093000368551285359072189578328091443329480764062862557728046271220642012816841240859967662031192012014957865659242117720564826365801216095115887586467024411668633328849603172539391222441149126849204359097397120275189351628205641206697122582028755331341823093458489750166621522397722971357314772098702255340910627140518159414023934204545515880273485085759309735123955299967777837389468940054786861682057893748885087115056589557954381695062564164985767979465427822317467421659869915458820203771445434651769623876052371466245611408252055985953319755430477687622067487280621312152743352116799603927284581926724289373487784799038585748912890943098649910768386368830557637788126862353143382718632099309074660273963488652932213541893308061222891062006220576911620427453214403214367037104393356067384928567724376962497818806107322041804730155104905041012843611694946432444108270323921772180280208782001797629239199760126790503513019860854393170667088782066234397511128285074905181920404777418350894535155220205551732302021724053028980166098531997351630465009892195840872513920378270882418136280436802105681811229380286508927462344189861451293219480903479097111251253971013046072223378618736690921848856952973904186476417213783840155807350940569985818658892796666787915633521971632474822419382898587696268246966824908445033265405628251022670489929792135144196775531937136911864691451969693380536105750111062646219398529141795054832400928008664842938288873036333091742032302431137574043486272486393845519720222291703026927353732984820128053370800643333580825869192361763504078629455009552783912902538738460846132728902457604638028346110643324749843108418885386227987426823214572572987674670320649406025420761319989484877130230876603697910859745582308613230542251155578706348694469898543477311516034968606911530979007088756804472843483771284561767577626922246995160850488855375750593871435032286021277809703843821875825985864567711351480966094707465347910192548100153070247320851992284116136469004685360302069195484881212844504061318528689225591623355461680335000104773583009536070642897711146029776240456424737358120919306979177876548038256652296055586320374270711171023409380165128465641539522221095627019297342029229642240900282005293639975570215236263140832152196504038031759277980012204288230756911662939557425142099867183867467258668666229264851903770909537859245410685788455809626665529501455441007407866769521174718312435626891735266889228765146423193382823944081086025271449786524105449210083497156851871757470927210775165698834784994528106506285424358031078110349646603965249536019810829350263452790018441446315399902388511327811618072683727288442904182703748957507217715105973502108628065613086520002599862725725242288789652904042286292505459886743194237426043475942568495864217868179617826832840105791208089718101069995355481050656502981337580151879821629100362598952174641574218867744055997916793935120511570851732825998068786525011632560494642787577577016253777791368740678647419644534245797367342155525174506904237967430979287930003648929912142181131518237082926999745739814661568152681083480419191455113453033287506450236341881171183979894628008320689971099651641222244674811833880300965777828855671099226194311087673815744358795971289004135353299968208384652007810620528669413344861778177958040294969017918899610988990358881003824455180293384264957657338856792912395153504022926240669738082647726154641246898365719104040273775021500812134668577883153546125277520631194282210772934338915543252892542686790198820992308623417454689761424712341615943311281602256011633482143763434881720359319454513073898091595572333780181761002929393160048084335467707912347001669805110156523001421349999490477811654972879995213613799507029028593874933792250306362054653000568609674330747425276432368650038701326429332689756738533483350137977769801254684273948561495273532549252470540029287637998211122392706834056552878912205477458373668996931508578246012919105987452163801677324857667953216545726335885838637760928786733835995017368206877409471556779581728387859668698071477148847403110751096299785376931011033768587539226791341436251533010925950707113895112842821859646663546616301385975468585839601620232516777141805119017044319354280667025110221953763306933228495333713422583320020684392828378521046438106939831220432722858080626802833717570096020401838249229568347417722479425445973528355578662509395980054330168012251918942725668970677308122961145380505017704272676333555297342064488854836036480550100173626057310999800091515335047161860853964470675379526862859996424120703061462012932581018614642470682082644594680180554687694743243778720455799656366250914435530409493394686303713331906310373887964916151531181621161095431522824966490006496546688036246458796963380831411983032676445386590318052351668805236170620180809916272763493881345984321402751492034556147796988578720190581772087504303891714240891051641597874666174889765422319420246980157442786029499481648165119958124140330980769297423837384417136519850126265335614190204103212686918147485345351303501778313161637086092249481323872188279897693945468500479213415063363787416794711314769765386039988685186617141265705909534358219034963008673269871877732671168016150750391325779835707870033416195626922287832673651907081390517538074338358427666310426919060227738901478237473265888369802397201313870005375035709832011355353578654661703295985758756873971467203701066917818660896439348846942690087723650897206162910134163602836504649801068362008779952382041368012995798310598404406718540358767378173197034927330079948305320851123968897823655283872176188572393961634793632888142238736280560273247152243891907461339792404904212637774278830411545408963087825089648691029558680746049944379478676015515051001383567597814369035582865154096829689170027859905159220252202411492492672399909264760757480923062034286832580733023344144289043462368416910843719731398715254624957724363582230387545063920058953447930049702924382295952613093352809043016020329593156990201934911220920337611743032512540073615304915830750916089372205895915097972401703543263875869995361452970529582181390527972498663621629612948916925656515823962826531731486662758853582086463310997967696378920828210375915727060754807299527125049036930982413082105157377419406371087575607705780803782183060793388434005536873562303764216050470988525770678607318020397133139415261387345908320679917691060687080634071739801976071689657711636794067365336708667534139898384658476901123575321348048444510049326488474539989155819229804634467281960687847901186690425239699671550377791348816998819062629520615676686948913760340253404423685147856345230950057585009286074665297027868867380537561331719161369509030360266611570539681051837804958573305240649038698387833755527106661804926883921740044094412444595295663693212139317562528438721619955195443018001253292031975347925239466292281112610880219716574518482624325076030319417555600731914759515725113936850402808249100252046660242680622541962497404898479173571321233325313258259819019939957745530681356571928249103477994132598001649428822758569981620668136390645617548897580680811974291915545142262357704849325024978904839898190718365908490221286427276440306264510098564388397300479299087184991292089532173185268347678201648007947838257781641757428605062040857851598491527082972287381106359229676700999719563353088588614659247269711094141496153098590289441236642141316238657317742270337225360590002176856664912777067832975984501774948419138676645315071579693242302414578490297660943474552190249082854047794950104349921174995229930074954106160550039012963232352951834954676995209816177109949763485358643501747366662010973411738450977884757843538977701801075152220712981513514721152708199680981716633484550803333768957167679177325535434425105289461049823324699136293795206416200871230684343044124800334869156449823880146267470376379924466423268828791986482472661303399582932531912168395678876894656276029766951533262386417587563299181544282949852731525225866622754535970501606922928444685901531904472495218739526758095536638165297666326568257449253987509365229493084042222977383010377521362808591020762831719708956070108857766362402214457711304218801523927514200083678360419617658077217992066978550296501451799028602661615630808786332445188002002634303160823751412836475837729772485401419227196977840840045099481091368129891929184012137934021352289482608334896968844254428654625201988157499854018600422587092793005434036409553238115830235617810830654552084271078728574193628451325050642852597744748944795050865623211464956307091575052127952652589893175353458301581135403030600717027168784707393704726270574929942051161295911661074124960385179331325308416591738564279920196657434670021894806446747679718458258729747465661292102319098024049567730238179073252964670210167954079358272784865004583691564999853689796782373740066688355684059551406079944205502684604262234737381412025688134698827344447186588979993674854145808141027403811419900677252629092539169934364149565732446533737248179469570249585469968143498688587533459503933301741712882765700628657543430236824058870624452737393290088728740987697705327168910399679940577746771391932858372105617836488084715525829869845257452566466922201729040242503515654926844246940881913718790460620161120216205194472907610709056182838732952845741752974371412260413621095448357874834209214236575412867910636223930587105297220951957635961840036848482684314483497051176529251397952582326121243036849104448049798634716114853182602338228187977283870451680881921623947253476495446913933554965229270120760431551834988377373884966057816875147711687298316366670496060998324877288562401991909804527959432526729201603060322999459983259447420282538018932289382541353161297389618818839130806687567239477144684059990103995855538205397070833351581092159550121354278608234082800465715349066501508513046248000592890130923889816420772108025165185247903896066579545217448892768323558484261353778071562770317865349521873279957972106969517841721376338531438365865048786990136414897323079896792375542060077790689837394717564189455079943689258692472470943176281826880853876700293520164498945169922658305036604942937217361142731517787850556201743738760989341843353616240701867918682923085437870556463352019439842425469177864183457929226913262635248322813041321282129640504249807334557146604190240416594020309362101605943685012237212815839843110142284346482234489625658472298798367590531223000617262236728080936048515421863116285134102733120119210643672309160362920778586451017751798709198620400098858672513323589566863859684327295408421071542252454081933690157474222844024071309714303832263210257695454056037392521771450066235886819811119564576531868138318517794542128796090863659537606488690261361957248084580546719261337330043451471140025801109038834551876654731021152471115800408827972776338811764512420482353596361235565896919080078565090172413485727376891252129271498308438052680847656466389953747283628343163453014281058400554569766164524034610516244690014155230716426171292575195010652817302511563408370267752445926144102613967998736226428192772863576940743959275795754951391178396161299565380549882974840027873416499672314107397483439738226331544754936611569100635890021094684048024707557597074138554420548659653922950273521908216726824763752040778172454898942274351002213486472943441321310013200175435694244197327286203647923668558982488276373228344059782952461206450078316282783429550992203946072776126394047314012857267046107934563503310052776325827313365771263859444672657526545420306336024915983320899481880483356146864183158469427659928066933681057860575191607702355472423656466030403087097559138642663460592320032436237050683252334757281928571473039106073536332298615032354085846622623816779573890685676777102927798174197010652872310341270710960602930429534799238355776035804770182991891045381339562258381618980496276357042449732256720153194909381835671084458816817402493652593550021084758635249421171399736628404481541019505740484908959100537541731587373597236874186999282231023059970600149349308912592940182362518947332626914840730944915241856925186757807493592578284992768273384270846042123246582182156683778009094768522425158755158734934121540900444571484500288514452434863120194507429865320325899049151229642002092231452198858533967640218001210382271251880087872633378947126142299658745394528507757768970574447981491956642968101428015308781565478923447910482861300224385777526677133455271028229919063328132020653913187369913370847964539959863960046120016762668863340591703640372214868838501816894535890495798995907266188645598705670030062183252054582087819945890546801104546845401056215157200723536688661081117361456300238396428511819985356543259110826197797866994908877845213253332605249991090514312098971277500757077144778620348521399021676532990146699079566589649466464202527599727513553609691769593850005307570193020259051119127423925626946618201033920829019306536021231040896584052353785077731611968885291881318801011317189019540308216606842813838805361555076937128726781123137142871185103620534331140146846003496656543898002253710010412468801776114946849378181995104672053282006195552023827353103246411822034751858847281590063789182881738565089581259374870216094813910706889952273962135788135729507136310197084524179343425200292271906754834889514285178332414218783711851855781053307354730927437981241713302364229182196816306182472014003795721091156538803331612529803678929180129800270204122802012782721078807878340453238456298747867017744370977247271395810648562634776443070519230145240868221473077161629927448466071117827101771755171482647186454225649211697998625626277402194954128605926448649718831295114631389976606586028129037587629510784742738001778084571689187924049685175304976369430178721898817892633386878908744005362888474700693078075875634350311456478516909385187874967991750114453684330308868135343337292460191690621599433032048329838618040567386817143206786635834031984330592878358954938208094827824580974085654735597908056393597203496012011292887909063864701180402829476994753996717717225963410716814057462289505500936972536095937398377711540609282211294468225450228030355155274118097642402793218872866278054091584993846072493326409031051141166270354651200544729477017550530072989087812399736791561037406452155108001900113171628464481241565510480247908337027449887809990462748113176781394063057315817004488411275718898564955125443291406233361304223081815439809617115516569752974973377834725042838335408614188756545334856247212269463221974980017168909194804313672388247504453746571420737162682228323391105567103907816548173087551270123674610966039590175168495092624772606801313373512701817813952600934268365615689211994881850201650204850914818721606411674300170657104261169556049195384380580971283618051434338954964757741350878479592277088483004484786736549021848628170433565296280324505884168563410185932043426638746045710258611447909214606812574992552547412202805742924752328902331469828986139552125725517854670066787320349323480150877581425084763402405311788758623395822776508320186152787062729045610814738983521776306604357485215547159577700408352768923532473375565906120591210371061058009309465564065077195153870456471049114068255946497915233652050254290615650235800792668396633259981378895778098433650527647924268424093924114271681169583786043780917906644323735769404769200521419964623767554639724152745072861059612078424662325610507554696497153281863929814967336891216959247760376041799703382689623761085145066583451816817503330709417168782160691298495632850230160685030473317379209332941063500110517859877612873517178863353403807206616504733467176604438245262503542290855701207401536515362645759838303152456906727630108271297968045698368751018024266958188927535333380411752689400193457211184293240808413183785425279820514575147739262007156116754549279023873810063746778326477583565005603527872109874578825103495327872400863745337583263024315117008295629491973647814437974579677633017151152969236217829941392080499193534844156983460368752765272998402533649171387400860375520533581310133551802128616028288905503379958485129879976714984809233716902819742127768689790256397941491332041968237186096299123795577206176712672225993727042367140265725838353701101696473702573079716583913192395097567901462128432435906499955723564421370627836251765975627567790727659625570571677361464788347778354382699023801193035044910437623409499574030836502285213031514554952219549857355643516742656190683711470521538046933565729060032320448765520683127041701507271381182837304630789418593658807332389475864032665088345476225265847149180384609080852231467976637259059563209260576646564321383754979567162250859527176337678960973855369763959604469495966004989657962150772072987030708864510169416053165551307443257141399252488984472206042339566526262758953034154949025360111521009922760351286189728975201401666753581198574243467899136082435093424935057101928765595388688580993452929633604962282679452817997642047070266574303604618315564212167429533462180536060199550725111620136029356850477024974466928767087716855679792178067508663588619220869274723116745379558709679712276844506161211085212483099240795813910841250931785785255830039979990666320087835296362592710844273606572242287588036948309932607702263710522200133206029614701270797333389195230429804594462021921145811827907610448557836829013656902055947557173854419811115349833797427344866087177346007702849624516821661841762392919772226490843487854745628492504757007984262381624699111351413192196990636862114395100005063408328254365306339695819454506790834681565833862026868182740173714934092965113411465241717489538320248290065033178000352319802136973289384685949554107433862251123480478979008413278276299060858629816908927581754449740775545793555492350285662244311194999613970371376316533627129928422221029897083029557876270821995071411264520533804175291992785082020476806030150616165019609285931661699576973284208818579393318354890454071413340539156206429034263402996162069002645047890264123973718248412586602917673942673561473133970335851175539725605959828515005127005794586473358176911243012633049913742397627171275752071710941889981571849203138390803368488777027467864738693194093137576719015459578216015044479072128404757930009142611396143846665533751561753679844655471825816020317603257883031317322446699905844154606522840029552316287190546088777410850247364070257330275509375767271936974721154738277906674234521139840852520807892608436148325811750406938306390331386211392747334428656088185223875853377694527104877754469493141717194133195910500122110943848523748383679582666348136067257253926631381546242538151883033145072365030336600276452745931602214170811158243498748623748427427869517934875152164980931535707944211238123915026614725935590750472183006146442681007440778055512349367853933392566607368674560659877574672841934887493856968953596482440635505114250708988954141590056179500043732010928054653678709461989898130551266224393515774588472822983352548274509329810064878950507313873597770891751596129335226584082440767302691416016767496708114164761253176308408641645809162155493882611239480602412439811840420453615421801218490566283966046071276163138136812272448664814693053979919080079700983151231135966181041309573413493912557034867393021449409984124131508799351971290165641527782938467640648992179364213819274757434002810700416231029678700953547428226397367841775985341566204759959273445438518680180179734852035171583630677932676620433709054866744878903526996527910608947967317354320472991123304079582386846091748069657140918254593616231831554594771012769907922546039113975113773073685798128865333465840054688170199591845364602065208429600333427097114542213990693204958380168613123264175937079020928394895931646257146395957867547788059916164079477455311736070450615680158192712672553840461482818443033905833534330815866636800869615727662730378664164005912060997119756700596241223656836718983175407428039101931992103020608790427820157558786599717077623907255657849309863701493813159903022373338186078363176842384284805413086632738186901876719962840979589024814498037612499291419417233064194562976433151368972487524233937498157638039566984950813825784730470624840436416912521878806166781707182064621724025838278004043899258603983059168960916436620737100927542783989180364452954255282255259136007787365637077087417116745209089173419212471538314615899961577247800342852597849440158702500027385547174020711336303655142309079749816796743577826012142700995616248794459713004554537169597059445906622571253103682975855005292157719854692057253651777646330556406026281643464794151949874120981080928197071503175510901630574373504328346992542289243091182856735499627587354155720118052034064973936398600161775778561588252553011958313924260511627965745257412078009110591611298931396075825956246264349219514653930421644899688444646194629820062585450808365862553409559989681223801163537180842144797865495380262989098609576555762880735073208438131657353888938634245921736980956197711963912005144927384539895253117470243224168461793255702766183693731431445331354862194459156195731593079049294867311764784405451916836819564930840840260533962245953571655566488963258838278062309557758813739129174959834127159176599476486202644127148127438500467430914759830957969597455867733652381106693381227898995849362703309530142580792525831797893528625223295133731757021945105203357891901733907124676716867511989932459912104264391076134315166187002785920750176420990269569962034411143895371649555799942992863004349541876734314192008798737468379488431213750588990880706089208467975477237892504368972371485080783276696187393409854269040625581218738787448191297243385586184117950598359604825083424171377050818468121603777300825568677151113815144875737644685413048213361427193231283155240880238371112940812595207480443325271326183479835790974889860325957562877474947632049834629809795012142501273968746830395959592064056515862782314919794858403000982226313844111807097138872058288255087345398514424515499324495614734514077721507486972402705422118087532407495746892103231238010546099576310090359855475310902638065283848754699764057828837963195268250235096910653398920112407819195986698125483671132879520837012094121794655450687574022268864292637783811549219600844149057898942282822590182469975933573994331503380355399541911533757829400008600568528542920184399513527017440310011310471932594534725390523812334147825916513034351329535107303503755381512976036067214471675663083610454611387313654638814194006528372064338303818210728944330387456625680407917873786100725923510827718984694578751424405521599871493062234064027508927588437001850864946196494325527562631412897775322301659003984939217298516434432060048294997802505519366528257495061331229927346703345246829187173921650454275934900863556236273069741271819713621174199318821123057493477300036626149954679606707512751314586211941879101788526073322511946315222468817946296620295026267371585920817141828719081969976647001273249821776670426079070981720710027698130394211788009514628248977225812501899081361849017690643845138067855842525233501142448128537363973955011715569855280870199593581121086137932606913638324095892249423063031957337004690232772813311912725256955718398625570396931839566930264677497042945973793667462496789827218459110942594119099604094977882671655938646548826495952189491865715684518113857668522323889215849505513268206309427925331077492141657726685515180998547643557386702226733867442646623931267073573522000464993719588006360692961178247160244674663395760886786929638066875732657375591186632787540906295881261875646745661016320167383039641408256500274915132094240218558943858146268124983516029556090238134177899430055740592349171628383184015432036315442579956176096336783099215094863770498881668288071898785454092890744579818667692059867085260016334131835257343072887138383649753127956857956935852908151476804647658402807416509025381775281432140538284597017769318074585295638728981135057027793077006312108300182877244976931667964977564125717057289455130000636288553226608873604030958236142085020779186736311257495250298426921826989101880094860700157733455556793645660218383967927563155623084998411958227299283263892055581386405016118279114985568380609420461659372687535942560348432248344945072355143074531619076558458681627041235091982350371968591874225399679613267311522951280595705512297339075364263448020991641050489552790936980133566770886780313449477961231760637167649451457252318243414698077378309840983553804814869733754382070106986122970884547267507450378057546012881823954371349369770231800167701359962898499299853530425492487531603862655472795363297559840398673019223908842587950551758819704506034819230592134653913180070146580903504407350600031529035742909570514771726782907174354660503195167045550552926100113032303877471029233834527009868855504605627289887840687476414073860080061429158091544385907990349573889064288857950987394617072925431400942698523145340938474103423646406282360269744491595772927628718074634926355187007558425142118115921976185437220909365195051543060152582388572267621953891007675000756193169948188831163236372182766704739011902069434323712984804192549834273889143729934903309021364773282543726736441048519316274104722210654379131614821879323726731630565760522827261997835033443687045972814775506630106743143082783196072066135256659731479676855459017372528689519773495038601455999850689974241070795285119228036784613908111181533157223890646881481062387284396955845378058471583533221955992391323011598396762796359166173774904703034323168751115152575611593131524326530315635926700263309976584733496018478598705291577983172348689518747931930716181989155825165786145680532691988999465237485001190136333658324666310038991174202682288565760884201819209348607408987986363846233657546787980417737847197742418178037755618086485082455841783185448470723763470162952023066156644721166916047090261395698355962503084475821524825025437810709703768802203032863273994473686952091748078319512824123443823453270089958753052530248486379986983452257691360726158845590258110784632611247242597891418452527524579701990926755575561125071123763645126790130003335105656580196004987413772556630124469511584215296189761267600511908828683297555105067705997748206740387578230879342815014469301399502432076447776152062681856645616195227560010899810865546247064302621456698383416269932743579528577586322136914570376862639313570242709000146342037763668120425830205626238588141630159865026539444203345093930994908616016871855479944548514396925605669519200996616791463798957361020342188784337901931373032804956502564094984920056410160155651155597202519466365182642132508850980560433215326049999366529850279526559132442176393074635266199688444286450968109844977665309066568734495552691579905601059325273967158215370443692364042754198964991214906439776528809805250250893262004615771027380302314781312589644955450386819980105992080482391703373715245585621578688531675656266363311844482742479448648373063014617101073494114979925548603969991541593330246723618993877253597770714648805749658350781528671803610477877823906195277973094010780843813794097681551160302480749642198383661524128697879486016668475252159610002414681590337017699452562636055221343350930722161225595035265634238907089441463855335911088764835421099401190392123960945573234114813776839301671933127167126296913039175336336186466812779627192642366014571207058706662824012691618473613503902754349188634674072591096917141179545918612510005841145119797302816035644260813884939455850062688241258655420803395043305569144178639028137059140966361951710815745139035577979956670994631521786479767400658120743317996878790125706419893861296583855879015960684821419586117151269272217777368661696862606960844231144418311002236644196029906351572370679371170083561155788105388968622666865564774330735421048641102461880945853132306615743690609985217466723829672457659422468302831557292791143028893224876596413859630012139945525655581504215677349466246351520753067463543926280804560968638654735203162718444331615440005960880208337235884985079992586785717480630789481968980875070813175188203592630843031666421377161271225965924749049509328113564711433191718796772232585931341130550925806065153473785137258500064521750122332074996746279063067263654683822239490715180952286807418181606129421613732958253664128654138189121063442366371249204202108396608200203015736527321024087616930476920352115689821480853879761853357964196996788051192445110925621418307161489150462882755706897283807725628481518657423894906957355696223299404588105596421168514929042117429685180967525363689840019526344396414099559558253541555059047445267455206726459756941488534123052992666381722389330978086194845876768305800701191500931359404582831497202041722698116979306557363602465109466696869971213151581309956513922256840642633242476657467694661870413866452001777042166028575493420217775899527924913713578009487080128981115511816235794310153336676323937583385761922014120013963033737595162938259300342996284972143633933600726530201316879347001903575945714975648747340956290899752665846491481596289813146223947725364229879214598103565025064379502442176988387535888723397047253893619480387762661146955555372864931293185990460403511590873600846029988084262277085032749583077520220918216914276416165442402369604570122140843494315669474925027464978958288523834808353242040778998263430080546868140904276008770458646555423836841004489176925293398998347505107070315646203441050084085646768473775249720675711296497713552030603041271729094708566643592680267824695923274836598517566747985072569587784834145915298138371011615322258193752365139836829728519827294634420156880339772503233920438602248947864337763124039518722005287054760845623166645388458840845926192998441363951396569177087581765533972293331406946292625332992056551567481490223818976858660816243558626146437167022784276347506159387785244759213360838031727965424354718208162241162080907001886411044367999522352185873010117480399185606833353696536104144935338635616020301449950873411760707935445690417673354321608463617540052738251130709815291384810661853216126848633458954277511901254631961645628145237486523431590274547476239520225720621072784061527551261712864581528323206523268533418373652570887451412045030990423093659004501277756517914635839802268272115545537408410222265242135115642479632183153513712365111536207095674998524812715341096397628611760952430151839826523746311862678181708917731813292125221145927839513442384923258364276995251311884078426183594424212297699356450712049648382748972383376656403060228161374535641963885159841147225132413775615410084495554085024719220111319020856213907670214007987301953410108268421870111094734455844679171272753370098479603357308847270042481822249287131750430117062815459411821844499470555466597972510160860651225990736288598081063816216713511412714024791010228962679864726885688076202065953706778210801937421688409341178630618398902573601708748684029153439627721563911753744333547217943371342323606558892855903339173609965606713507536544604900214939563874948155934762003129201349363535269391128656570807613765836342420016944231841801338006447025382823557909281362151731512375764978205595165392084305652052642532575263510867245464128156632525068498160562776891876072161485280105987222800046476969866486499875711942944649570260602952032052471357363413653978087943957789416746716876106600235578420298757397403579641862146138323943978558838989135589757982254987336861526050370920593572836754580506594512058437182207578743318186831167459898070940602660991777440025940173803340441249387604715508175992769434167452289782980381535714919052105725029416961910137948210228553215423006503598964525330467389038291524768653017364940433954387238047069220409712023896235744374598067183649035806248269896867987943047853317253695380958351404297300886743947200535355856782241808601186785440909053446933737043968557534328325276309967924512136670947015477270411102720533281690504112888962932206096319931465261033882406717830489725156411479766538485718738011314180615263912062259434767098936414938972595440502375649479320257774436874869688514901420873612169114938843474313192628463213180635904420717106969249061334363823194350128767824910532952852289977898831050505630582272660369781706017739561634905849854710213205576477861657290672892028576798498276462931825906435330263957117164722227108928882541519436675566293607386638956451548828117279706344393560185928954529055402958548089573086457816716126552134159936817302429380771162776883845247439431333552151112356412200695586062383096008203358453958549710128481167896044421008417726739959399047500066834775242061501506349248356410024714451221749801868593299177368273008358315496715593633971744851932791851597089750871492341390569751211114001578364260782080257699158224291986662486571648623919085942712451793597389964403842045173804507226067536287788947733747500246514005568838017418355373677778247043240279541577882709990104311535881755729539103606264785097644893063680208261993369809970664364679610572130071335720328080699977222370515235871989240659456777426959051321732518232448406155688979976960981663411999947353882670759418790442694227765688898794351463392898073070966889867200338511939262828103739986984394344324391783146827777040950544691762312139664108399719158771710049603344684455381440501946823438743934870233870729135794777462477903200158712184263209697497796332443948652830970598211508317187733269393978353454519460077753541439161643180320437296571428970011073058163193870561533408743941457712056603099417505727691056765313108536292911414862252885325706150332924328083378279823293791812096542526956597740940256933725511314857052965825645759410446123616615281665348114739644038634229089865070874705263801214364757750058961955461235377343727979848560053974446638031262075182190079600984935832759263720458667408350658429875014857633760802929875474236627512026723253601137726856788247711297476134933185939518251909692132796878886430942565519831069441764947673501905490333656222315575337295016896672913162007239375876404042408353501513810119199501220876977697998258751102296189767614454604305915321392750990889749653270834042234613399097268431158121321587940942533028737054200114522323746942018396920757591132951562259423818750284794092686438205036010012221395004716091436887961299010620557793212497080170694728648464859669824136912960630692838062528193479122889240480541220018293343567533446224393555597377711835487565227628565623166708558359344277207411870069576055663693223751166641645349332563284574137377414749534506615621692349525100841941982926723232766266824863112860632464608535396356871775468868678888601929897175231783571834371815311239855659157197369255741482598921609486462141937663689833649267831184659629830270036231191041320458147965761445042209103464553395370042003790899786886993143033421058461022436231704128237320612099062214415803473796189901678546411998686652401701100064783683618857145603102805261155101072856498019129738558637469691149331084414941773677768337437240199504228766352394283923339638085746538505735606168159840915613679726457256880118577425070874874842412490984678818858568919025717744277677115847844227939905087772091312274251426787528047970840629766550124031084732440259015913374798444132113538673146561370404647364362971924533255887756808559508381215167806297599763104739038592814054425438731930242365743900640520209180914633315744237003491742053344046553960484368114966193447306164054766353172278531770853255621041998831097679046213050573876635979737607679062062000836073383893747727487169563107065331469578658629801654139225823664057013013897409426503411630213086336201101916769558322038671118264798769465750553835473681560606343528544715682708367607956015727143361931236109996383763000531522789017455666964974526619469906571376547471277692243660914186710373636988127987697120088021172927275049127964227518576134263023584874488139454413676812111793057903589951347300124954780556948832283985728060156026474319464647107237067211711997050066556987189199918213328720027189340028812230202647677972703618692022223329622843251746085665304443357002852123858856301629483033170343931073441306885840952632708509273168492532690643018740160788842338130162694968960635148144267151308027560822970121091086745885541698596393431958391102455230949897490288818419327659461119191938082611028798395590544467406517927672843587698513805599870862818474897078130743743981571367851875378913759687109360947388179008785083102904001784326887713025138951199101546773811033558878422770613072828820674903677542754944102750073721902448889614640804407764539242671016569385190136170088443993750218574517091964263964370368434271993012817634367563815664098005196260072550094648212079545625983006312892732208197027776528605307440072431061167035224400234789097858555825833318268114719720048286496568371155450486422553306585046949019262205023948210945003281697358643224831395751277387810206031567777082431724294564345263224688711317594890932120134650009858481081209335833095982925723659999107074589852881287544215656334412035516211532377449899207594663734064502222450298233421082049179152177431918871081995501123442173861328327282936174814638496458890461658345346166210813868269777021590418415926135799191800407581133739244683163964661264831919351974478093394310119409595242403131015600833937171296280275546925963667882827307944079162949464380305682069437816374803446171879876914248533550224736894025281075754397721224181503464217317574147058773388120020797952545712500470126285253953200675719805637002210575502804024810005914566676675666399797011413935942412708499607188537184860649931174700426941701270567903083661847403212232097995557323462188862800633678876291321179251169339926703109723837319888191953345829430206105636269716277319135485363130594783688243650221660630704092711957999200527996111545208097700454015122804746273190871499894273030271133981974153302136761712615632409121567153635325458442106313857150966179882821212385899116314551448539282177411917294687652155045429325591488743023638321464783257471218069492701548604274817652278936481772439890727899617798524124194289147793354616016805794915202034048763526367958788192835227439821854222449926947397470752627108340238733850056734096772656786028761751430595280794614804780000124408037075607357492168496594409479632145880928882291548620347894758489518176057254986431720574258005008173562112843470701462349715387359097246072747020066814237939154359631469554541745648306898141556339522740414515848315314889532763268850881707120893984743661853542872161912597016279540854065276177950773573506265968643464522802002124618016734791037573888191064875736919258730303885716646141492164753547760016444020720189038244117041426101229800823477142531334923515810603135838481846434336109521132011878679257830531818669146005751792105687951883832972494352903921951532614242215005163709117392981813855957016551184631091743401632572680644811538931873392503925894539058780626505871917534802835191476391408123420301912119123048386721068947702053077898725688056660385715828672734888976185233312264745481485226600663012579621992870948827232472764094957212873767317331049095181968583633027488121359979595625528852105238914219005419556712690847351322535444791479193229958543349872343656583240838084098545472831605425530998318393385252873495328255112502840324221791059402377530806186312850679036320176264902184138450137734491342506565295404578295861334415448782128466259899657236364014355805687166556951173064076856470850673515508325222435689159342215714041593248379164977389107993006606173640373632083242262838102930395398160754538283295519997585468653269317890609172428768913639252817788343881538218547398117496038033088439667058067559630413502704237929797589712257110265152293670115879813376540384119586115014802854138086472544354226374203198987545862172358499480542037820230621158054674406704119426814969752405021850133415137433227878535690260477180480902835106641222710778227582326123696322778580281898261592622289634851651422899406561167838663015092394601509921762995587118982220940697464825370106643076125653893211117058636770749503266074973531640627180929057814287800383745128341221227868767076870348639407827599294589676849622451231737075701875754055633182804874332183167764840860217059621051946741307032220633602628008936831759095766061094670125027440476203122473968049678263471960515595643633374357649059072392256566582402228227466446360538223723362659839566065913722730748513125488579039572921231835184758051170006171697860351536972499885240414668433945964732748286621849772781093733072780126960308424182579487706541097278983354996532511144763565573776089795752695674133278556529346209651626540471317561995731169377993342026026730442077569274961288372541181160225916126457715796153289574717588085296057163828701967496401402833463414172641377282905280211071949938738216086829119642156122118867275585716735675599351199855633302921675357549812810534356270112531658254356820320748310886534470069876635264897304839340687725783812269044391078284148428386519704646783996662784888786767457653458921221981447882311202686236681292139197826909359280682453970163855042494538713310624857050873056168483425725843284045693713186592999704862119076727839646518384907496661414250348101811535117690047241478099627054804338761702206611137001117559229700851965478432920323934025244246243488486189984882202235965231496624589352953698801516018408027146975694225193824205822287753006945559015168550251176696026548448556437736445970110432999389157177367262790383787282844043355525132399178200353345868309769597777176389024417740540427155270968894591850494788235211086465764423162048470793191361672073193745848029371139836151751930434958005435320058278434485909598300298141811421255566371809226252798982714902235907227069318439288099570621607764572763257437341305151700552582451407346000812037935958914280091350002083980931262723015067328752378774790364482683934342341035117276698369708305133478500193154019573854995736691909856706629819630485541669132137126271715728943551907140957087814931076589608875667900737710541688176599391283040099192815809558433696277916389070646239154806177582352756170489348640941680249353803235765355612864413548250671515815990063354837959820688682976993510320866727212826517676284678297526881040767183813958834506463871722565641437107365547874811913959989675755761560972841697981718852068569614120925077590602424034628820343972139990048042998641092941026758228114801436939794304293335919512621737014710891801484285524960139777710754440079877232806033868862407487816982939199281285713745997870034387543654682903113559990308883697540907262734723590688996952043794221088899963891531285443083440526593800084979992733323801308381696243942065720816127547502624588570147673946240642413837543871101222337319953450091884517995299777569467971682391785788242930856685614376754774418894934394092943362265369727356022722715431557502395650403951255706186302246717816518376194644343654870045591586195703689748460083077496097286954944085940365317555769235018045923785850624247472696969015194290823485670460686205211018268689150893318782861027354905341888918691670886990097586385685022234999909155290137079644149813638144279817275143237220078382158432206156985355929452239118921107235617360347754738091419736346562328772253009447685261202223964752093635861287942734031629609347088305968926694308907279319262942524830374445610995289294791033042098455043768317086043908001933437263441086743833158111234287033625982098391491700559450908114213259732434298137521626146759952223311964594666634307190629354742398008158843477834261075701098501387287723849165265034540279013054763305953395165903124390633264858842744576103202579851480488062560400490791553101610306300007531920434276225882436316433141791777043384201915761229864170400192238303861776782493662174258460045184875812026583959510810631742503536438628681659425952002176288200683401398646425886627643968901060571143308445532376787548774508347191228949431585526035784086712395356238594267101082483677816708723748115693664849087946103061602207603898196467444680599919848838782898520182234104971804188350225634827035523937548761588419574415341964982318439731668695881649028848836163297694866744314004884415543474335039760670694373147077639003426577367837387301508320963451039785812461855368734075762409078407007168688625821309758905295721253223033638468720435932710784390288128183375112131288680297218553931979356927129549605737295595360888562331110363558131840804721871531905112409462074314430617707680033299186734862957128331677872360855480045368637513027721487705565628970471647800747244803167343973542689434768265730628217736087088641145564212097845761147388497828439185282496232916733237658963127339582307114929777616657279481841383592930835483706894594460374944436084555138112383810018060178652989280280903133237124114548227447112202360849591747719481846880213293592622984335411089959852367295231894406243412867776199713796755474584055236926780404426354913919336678444605899638426182728527265854548512124538190115322184939810429618205525642826275019602357390894223666239222946550947181271064201345760628843741497812015227623973132766726701228791674353766770668684416387206604996427222503511486563048478803703175006909299964699806378632695262507998904277230079372559873922434766789370296171032725461975707022737766931622390247679335513704313024887102827477424968743830218525775411552209678000824470688824429478989810608600036562557068234028413205324727869002248905602404278914008495102903356059502928568218186320825400657043175492854947917452037779702140061013807070209526154561392815373157145348385220636387604245789141530027763136651048435826311532364667663211905066951700379195373720645478550052167265616930339522166582481034453361579482900108522565937219816009759113699674656503476805147502735200212016492531597381105523081268012518971523436487853720942552966317130719364143310454881851629166993511607411784134706922937740282008382291773575273823383493149710196956876059436384183697097091467681411564791635838741752998931409134747941617590434573763905857634415636230589100288839301477914958632381049927632418128975361670895149297172091071626932413850108133668903232569492254045396987215306846812937192537471821261168372735136121700401451861166861838261557507401814362874705972150945070791106585672470903101459484137558517359626221802200313830934311778051705942738781621015484445262205519544634575413209313049760644130222213812201017875619390686814111339862927749024410249120637245335703781872646693854535197488015718817222206113165482125320102115913447315159000422680171295412617997237561709233194815949672814810586075682282720639276102623410696107981567842206263834494079423157125041191594407383070116460730344564065828315824356417955286040803590405775009018259279878586324548302119255976932525956204550557974114058723155797087907931852054556863113247647927771816284920642778172522292152598285488223359245837605731974571927668182701790248237092520399829989012075027200630272686045024601900550914724237818456793078336232057981952090801102000184465347020016135988285190344955434244603783574122512259256136651926218523585193688903346589479898666900728760490415062370711660069106748794444129011264049672774019286094326109784260140157034619962988260189275160245365560957096004768338342823140133896436331549647712168646991876740741147179257996003920192348041430253438922089561257028716556723314871610676714348603061221998685340207108009240432770932793363688940301847541840705253574056736572262058510124563255266880722976294733732753736912579941969457553742593987936093237992684710759020124812865687679039879802924872516064499916435348813233193525128276234649715749342688195551159378023790928150929462034605175125719954826268028960510238952296361658343696557929852356658206327139722329656724523213454514165552199697983010488672625105858080848556641676226910980527178338260316478391574183487461425965947972816000240240792822497763815107088859354168948112505021985289577547157133575448038161925171335669374710494096115438597375370152247873729133686527666536542369589758138999070800643916086200866650045716333890514336956701364924985341683721166155947121178806814624551925413668580332217394129095479631923216289732109323698830919683139324237476354793454319332206815981425087589318881599034034512707113112691385455968656761858873929053456278142156165880441511416673684357488145454683413268777347901851657769255261370938574295611024700030075120876041522209085728704817600142700923541067088097483833518285701766529131164820195337574182406483831650553966829988930050463873905611428287740892121075985310641116619492446975944166382723223720529643798345541079505129826933069090836127680544655647984355590946966699465766146997405448366187351232818150898131810499916447248340508465313805954098536508009262143109999766417803051812392697269524750425122355690931320725906116702545672812975715358540802114965572559722913574172222104629422904308902325986352208120191985513830730453516603903104905675651705040705526156416845965764369576197766871057266975296538003525262306289492657210714039694578858814854909228812689766080658341732888811881455708431930833789573579145440210966723296263740719131377928041700067310924208218968124861480483322991802832859838237717018169762370115558007848931339218480264369628942664640379946206556062937693761025392887557415659112021114896948162128633330285691654736423558768996944837387005607146528697296445253442356520874815312525918312035033113073250958247590887050275286303599861366947648908954848904728452658331520174118647193413115330648476328977182950999684981323510856680233630333390044067944436506580114992808716557924608555794301609963535106102670976284090371271701930309625603027755069561367795102509231648530840921245100420803324488750524256863782356023188498456365109551770454425974993587067535800173826248309525169612347179299452728716237181341961650780431055967178710961942513538464196737969685487024738127082083418041891779369250130571373997402751709001202481959464013195872729730360762695699306456686827800033293646029107806442058749123904392408161792685189898982585882943772893863943047190807605056372200888313496553352597711966328064090110129907883223483565245718977984436328343833601393981535229000238153787488394379646346953804591705292562572132284561065870443927047714016323949210702533298735403415842133182244028605683752955447923513046609572953667312810499853402616062550729575575296442973496209223071489488943383340596592575074354413656438375759317067145052002501081574333324317282175464560739732844554597903177561801485497204371100877897364174896441901266075935854262281561502765189796811739830922405979757119801317005739898089336504346451014827853234907215010854112178397359595774867904340246685040290772412805655971826879714061622818621062615281468640612814749122374499561563379396043611392730276055610980566305897244142394862252098881589927887831946016507877080916681496625161304216569302444765358565213905148454324122176444393906706837077014025045380464280354404917252717422959055476754335195957091233749619817096796545121880168870466619886859050109142877757574262127657047881191707293448993827496178363802082051517488767406921925030703386018149625927486524258401178322195511154299932762054734690964328933015893132708081120630895724575149632934527402747142108518995959226511177590657040893881796268796604601106936839412621742409045748431007611567462165536392533098264559784944942970129120039594322699106358530890286061557695059350099069307762378497800054841600452960223743652514441698503892350721708156631076921946857994850565204525908022183179869079670470651660816438210000918741768153119212411253126833647104777404567811276128498692117440475020482272500838718646319893742965460083861016430887523111330623236282853722301779553332823729728109166546308944072605172204406882635513699736470775458420468480267942692906242887209259355134996345929730940602992502688639536169919258380580628447226831019206309453867814727296117594887097982710592712163809148606885618960072968912110941594995451282025502897832952589113414905136895944407450077966468718684226675579081639683659103084209206086947100350151802932749906876902019752576283742257126081347132174109215844620278678502369858087005595908192328149445683843480924613461536422365189764249263449179579892708003902353331869494374709347034740215745818074558412947456723224691051760038059606018765791306678940312314562308185560837304856257933091175346868474793789338813343333313599090485595017205796593897125143642405045300394354077855411874912877600211900911746901723609723083003087313713239007035072825722837669807022921182750295680143005038476946225469310753488006131179418789531311710023657777731964705057338515644670328485091981810240693223331193833850630170248074624912060591033080953861483266923950172225510874540265394367758172787852795588339621356535312509928817238448688522396711854089179272570160037271216521992562384354089720643471720518424253302611686293763117979242511581100177333854613845262893294158033682042215361095675806504074316099654099920833679896888219865546327611110127835479066578191395774945890060603901810602666722045184968366648004870302478666710450543155388658896995886608323493673765066172802677836784340755566647327443624849605528016591203744826321468334739274306390242605189430581549298004346121444069521407721335679904775066275867242308812811592862003060521631327580624922961488549165432108589918391803312036739471234197719184423881313573970186198592372546257223566905408252683810640904356612641685158088610583132467039152994731216349187564977408608593809658977486503019232952973608588795159099686141397651059228627021244211576300260861618536551574060426712634475004561897148783101293659506154907923483927495001349314195262179702624044179058255932846984279036169833000625276018294171451640317955583384346062223898973719211223839367719269052342363700176178199887043255587076960705979151141585713715568287869210405221224001559388046310176385393809438139484635101421089464648455530479152486849880239474116374542509409658613842422767209531436339670273243262209121363006715286527025952676259932966172989432874786474278251558672338158959342564533787274348862984908809705562234973149974669417531651085275434524039635985206682051337465591285801918611649010811182843421466413905080592453904425185601489967095896332618379546326699503139020402965935695371969873883655890134787492257809041836761606133240007669753310529990015017010046084625355725273972973224322572167892758204886671844356946022038641216517408761805176478920417313432762307268965693927641430488657302044468461871942534592779512318771598111698903052276407227206502833372000466772950600965642605833535487419634356017633723487443520422523678866406262518787848341061544975516725032033878861844053295895461676994565850083348000484327072110847755512366713641819062014015126408967554421340104568564893089526831247164737035053240955617680668142056793267803303497773519791793880346786945831431186525302559572718102983032579126780937866070989830477350788442499813886676127547223610426936391925421551886107558253902692455299299068733852024569961487586106977661330868715211098940607439066608972430856509083909060820297495094316802364129758001304150350359169311562947583759360660770700335806676516468329335063767327411537249873831078726649855393521171051720711777458510220899274080366482938837028889506276685510595013031646003506700867774500004518577276905594910396487955834307968568043755241252166510951222417765057624597526462834983924667914429029938332144472284764270851179423272378495143631648109235314493136700269501964114189498913627358542716903722324765526581420107173777785451349365258683649461206800958756930901569671792233479261757413007925175644449378756928476944910898837054541610885940443120385003439113205690444939165262953900966576523867970398514644106337054982096241621449974410485827325550392850818530180340528864528914051952472824577187144508237361308044879701865223149991848264529223961131620758631676488974119606664348468422623457857170075074380688285986913726219890371271330775278850954013177519871196692675734248877790714544971214846927033838000372331052390898019603589959897596720894956621215940023915359968915047329253865548895437396626329068090713562442228010495301619696110182582719647383573939759478715139843056571015361009352072661788381989695962903459784208741542669603907477543761199911189974731339317683658100733655558386639654828311624461263886093186414053713669186306132005172339303812499683616143087632043773800110229763197004361140017553817801197838497979557172964116670754936559456283729821661591031898646142224398217025887966161015453027440726553577509401560499593095267709715752062785446101858204998943728996853671523932907714340200139849822607791907057916806472206322645258489625582336255690424244515088520227049171559763045953734634384479458104706788388221083508850960548512002165332512160174724047418392772847253956509315918166610443198609128627594081833872171105997379838305940414368638220450258728475542047993307986612749012600849825125102339573905503590628943525582542954235756977282073980369280161872598123883186988494373791762754297056727019710550013166037477900981244498667636564555887710701597170765059994325405814204889291428121151575682966882615774481883740630115970870005303359026339066275858607149173517626241909813342820269368482557467244000545413961696136192760255029765807607857596059926549779682409543730358942609293684199640493298515260418705087438078643353332021161016373116067858915577465470046089337569380280590727615182427535847703513805855447860236200008372302453691656135019911189720920493888409948624884151832425145327727940109064968359627923926772248206868060266225104761006573886999534746483249179486522966028672389982496440201335308425933533363497844815748119572427071513917002424722201406636160904860508737796991971458926025640702394419643926960643587651261445777366112849268080432734008727295992785277029749367329324297501138219292840289148339047122727006314223460953277635730802814538011362740774587816748722668415230499800754212921469675023809435108864556310259451711316274464427253860446331404590741849889263514322149838302009757634364887961187286063763342248551171437782213735597838601612206379649773057378275623614132541941883223042117940924626029039243794371911942698247528628072685969067254653358872207351987272896654361687977143081242069023921115759752316648728442829982850109963953889936449691689982279368789695530209622617207277008853845127762096735055888232114957561488199739346745803535941803516804170035838930492476361814872419887400561717014994328213671472524801206307318475664896085926394296221244486880484186158486925447093514073004842374128043982963561583352042073193199672947573682336700002271994352520313596215708761762898418080161993524268556643938553850877248195481485737425878331756931643831216029336871954650328079075796182277718632719727769179934527310309975082647882311992806082127625690371957332281112230460861259209729565253404544507413094068331633521618555685199109580844645728681213885566284550439048072564508454930801292361640333832557069693666581986704109164008316699861508886700921395143571311667773926100351052369841134551688073497286250364867727511384277600399416561416589954761434829161118607202238979294488081347873606350128611039336715121522258538616799235984561595290043298088134883275921964857388553868259292315742432863875533404691524436315182918264262953363471621679273873175871577497348534779888628947623087383434655210637492698732817714820951616216251177884291982478965841130188617521034042970868071823693393444936273837353230345575817303762627378027078100280522077750400745543154125255880641777867806936930626380427426467601190350421200920890520347175148006886574602925945732424280322654494349116438786980438669330597830274121591581343432185801852790212749871079750869484494163132046875673731770122256370060384927791220043238915233585370101876151300868733794928313584987162447711249443122144228149109915977489911383530918141431063510825689281532698034514047665984895517696169603297902798769166523475195644813323485444971683483633812812086671723287268264333358860553709440381072076799765027594660538131231700796490229585432090989118241070040323120515182368560909544434055043064071763605441076370389422107581369631068769969617822372009607067301882265147620612270076776850041352674048430960815561304879752889692345948982560482587564388924452951860623878391247299118248530829250450620246314970694282701047585522903367158396703205857455697884346671751740021504764786072323920784423947573217102639872965876614198296855434353166330345988549713199618809383359916662159255446345094515928737457382689347516092767903977161634768683680240870736443268092134257872496334852570151248555572091820568255150586642709097731822033582899703947589610813081193939987544864818059712797808231403835662371426313795620112543374808387237276791263615390261988394014230455846504420067639768732811827648867166581844863608415487796241738368276344174607633095309105964176161334269474232045088811741808375429718364625226643993233585301229255918936634940318167110529826255200496474307302535158900363329863218948012073800953073326762561519158280896794233582111416685236713935162642071981358174657717474088642582501132061707849611645698126594191851977890998325007381008504894661299480356862067526556189310865384944680440817435358743102850660655945183512821566919479018359012840279972384850162876362003756949929526248964054247571768278935555692423442244574757520440100621967540810112957686422943876493357760059496057601455555433695563416954244683417834300916562641525451448301186857109193733172088818354442311877063027813679858482405058280550235729787811969675916193230548256141098043783207314415141844459281536667816981682818791103940570471511575024384414599932681238523921368663367660862097197299529107523512939494332948665244572952731700377432191042870539097623664839081641931597579037229988339145139953814771388827795274168719643213169161238567015966430026760837544151784571356699571371885329366559010366984174299760865582110965956747549588723489562117221459414347376839582970938923886948559177738357017977633337948938828283251515871826987287830649298923855309228401504687834084272312726194152316878269041605863950677446145113737939293448094895194961773968979636929396118282721821279267309065503898445159824041529009320831536518228781420536481652503718810437515352201647273309716899885702155195296501151362679651874745896802334501457649517993929837862527529680858095757221668326837184767461851013861085342102534236171279707822015022504114257575434964005341411486838234900666820015016655880387538689831887178009143807689938330768383095567166370774908427045948534082888514992166025826288214188907766884960208461011672683089458327800566144014245665396204884414705219420462706593072562509741273469816604169192592623950174077987671266518586187150188736902097002271595288539425814130594158366923295595013633225229893374983957260668331611317988040470448658133560546096668400950497864732453103223342498314780742636896520362067349658864365615629820995203539845446799557980419945932983221337866729341366316248062204885415414949069001686121823212418749751292219816647780574492626277370706683693259039157182526135166358979455317962581993302784444843861981040427395475980066705311520417790933763008531281206555422500653006072675244853842067703587870959804963950396421621111253172676495086900223646242078248845763830585280635036571577676327447771811183642584326548926510826218533722915164695816879777015224840204255848650984551248700655529345606256967472630401672485844515017356884052794824083964916423056077697559627376511708551638289965462824288107797875688022334226745320129474870271397388942529755249555437933514359050257768754562406461630713746650612590031438489910823382989208715743880982910653063684162552962561491358269665110746376935629148516519694591733511572473566308595834979339012534002416059209047104539031689408489056898423458041140279035971742579695471549796618353399640772579625268938401539499783029444297806001646192458886482538466025881984716618273191717651828401134413140244752105180067121686119020671592094347470928792435978369928538145834527030099589003933004847894947537077325482385120422576265270781148473895469188826680755386965357910715058962406581559553601129480071069575516180035073854258185927351709857769108310566102210937626369388461155477925565696365242642890601941425972824903084175939206391333048770897468972607004908330956313593807636139405193474884035065843697778385693475327994487048518889546286437738864048782577913524477562647849290890121904527441095540148890280409792124459585442167508260884089547407236439247260638555048216676921650371138123193919494596882159791876390301294193844270018899555261206670189054202487048395605325315405153793499471905494420655104258927930758926821028612337892838237791940342497514677342343154169270924759261575015612003553317316771115000417364354269888948121092723779840931973437032802888821291697538771470270122129607638265759886572694820367917897005145399114078022905810451031087346837835609675586548108360444985603985074923050693926027892164761658982381365339565418267388417540377255858574605029057803776898638999800878991746267350640782996278620518594515050760205931333956444715735609795394778652985044981538640152377281153843063664090471667536996674082431318719350954851381175852004751041006302640144443429136226830494936495609887775080364899804186015341122455353938771603526251724879334764389828356365808959700575369732516956883279467458671222246916074015462167685904661581977842138417661758361850660823614584553180524950482905322552654507039388345282813436066949356840667683480141438989773617829924656941421353636076230601294042429224749017195391365095174601302369671779741110416770116228790700019270780872855876887517452168897133277493213569421398203381480289197164740257918525075092428090910270117973872689712858107419139051202778894939338295648043278998677106445392444313406308427647420213070334145849724853311260334295062008408187015175946739396166609779477108116207440052271366276119874586385020068561766685922124762580164505693514344988440494955332732155500038218980844608920068697541024483473306525215439511841409108501318942119016082691903955437337928695937185478505368966161439589752157705339260781060327837722251810604147001928295543909790744852514123416211257051372198853227366767774629705560707386011259151890260104191833173649008406080556618095143805720086192823088806893501833492646005537774315239019828162816745552690809563840918868972444386723842255665747166598983297419140240218388693132810103182874808504386370168263185807007962493782308764777064941366348551651532825574195329771728773907769900302886463563256939262881755757644502183395462233990653206712803226900282072030104416554329666638652612498567711599228024367721437127193999510757071128931827027913479447384155811961230973909412944023682197171812470868545062654428557124197463177904557356281837161423039922329122659356644383691032721374623568149971908999594343225587628325735658087651830738996870562586525865877003549435944980124461021547565447671830586023334122898550004397922834214559731821900070795735992417525318374292879282083858011166291681192960844522748801824563265089617387003723360116759744641512413394942749997315896604987769391358030433220127473606663169170436600608918729746230118880036967971914344208587491365024968362346225233411022436237824972149069264537828134986144031800538734679484710656850776015543694008943763763293159529855566242275300575949467194577519529475155629108601678557185112735863187826065969686255871225539266561279199598640296003329260281710927795892958415505612321002052741816215482697029765575119898823488690455298824153960452597765995259483206405738708622622262509175252047260631143391849955513333344596685839525137603998663563593912625328798352282081540757706829184914197114103496909409859439551245675705076850018990825228519409529265617109477108608750653916901316590090773054759893342986468291210826634004597497674995594483277919034921330326245661769786956660388157081685688015026496865587723197607460726636720659883726392246745580988462886462426516887271915348623174606999953040059015788245641490060026133936039496585568022825429913887455981613215500461436445176497757822839988804260615047835176277203572817738015777416471461345817973629635227168596352483814285057244763477834215054932635712904033026174365260143468915465479539120689371372784632218340094732257396178680977356515744027431236642357517155428900794371498447667527629490385206870263664325678000590041081336268752169612407992410049080322199602780241757754577168699610307912307670908793498298667468496491288211255512576263060534259697119918359621415286488802886823530025001909482993685209023964442926999814155211851320821473526138785148039021434414758062263095237150706349930480754843496217412772336161200235356406233274054513486103076998518046146339757755165650806012153227122822573269126278693460603628702755804964835548885523295171807832218985689920504982770770334551580856891464470313598298806566707638654247371192101903294143340361997781197752661590177415540286268124026647245888185998372111219176157449624848142694805980323653828701513171036879024179271156826423008398024654539010293078894840136332762613740607181404584316096947784476399652407262125114213115255724038429350426938396128468745593683027973055150490382152805148667673084503062253663287151601929868218899200078581848635798320576438755032321400798638292038374749616624320703109489734479967715108344498492403238858938044762655822932894273424598095376731071270561569636305984868505362459711741903281422862287263994887431556488280251808420490117698014916107948153457998004049852990348584316654841525635254753850165655366757873891963592800073037265165057491445587833286048684001788421176170728637893781360904647851776194791987593653569591386762447274451684550927855637220318929998536346043277474983125933780712721918078155031960965513825246203975903155879047927396771759669734072891344420478386401925263054624041659954179972090085678807979835209786202570981676932224029078125434950579583732119170481096052801155759851537413273548280330719258772875711092760882547587311219788659031121666328820042972497569074774111214195934491157166549310240524688396519249944276329852323405454696516992771821733395327799304983428032315374281068644676315723756466164528318298516274706752316236947426030269276482052081168532322737169855421441894421791404599275115256579605590387764691442675528090800076019716760724453625772096030446623182622672404909232462392486080560969287499032381783025563083989436560259536458151368284495694469470350989504664226014522544837794523207458345267582350267595252777889628285620345554872154239722285552222522692669758496453139780671816308391493663539404043798243323839947648657417182302086323464121543481424489601339352907359267725599873660078345927313387903463070340518151067878481894978323928852485070236263919038758662744043858940476871039006361588815864027595086588815494068702644826592051009526548210352645686367398479369411860682878931578190583730227722918716595625873007179931285435513000536595233247182769979948991510307780883462163944576937796358540334505110242684616196397496920747255445747778282145727851510834199968810894484253074312407348203942901107490985250142586168144055824736482590310452207880861664904970375857417050428635427280234427440347300442958833876717425500610143465456562372407183895192626873283848619827272393273011079865239285129186535008001858540409726786768551747534942319583868291020174414723043434491116752352562876281296645215254267163062430877900847823325740830252609295179329954921687028461177476587026264323941489981323529431167286117667591305496850062160029208170896349116463899964428384713469747706621761549006597030072200347726134473795577719942978054395373501374186617900322705012681921553617320041013032709629594121045600957894623478026937068975204387320317957812664451459165171853955035748065924100732574708705222739434533522060743506525116663668341430037620696160657148008176646582687624420948274123003258731622767609114089007577881849926253273444869057205087097467618913712835484030204776122229972163395492445909844007690586103299603147184696177034897562121929055449423339637169824151160244329033520997368953042125807940437058202244284593701700364859920152252542870673929990837275751157452132182359442288837855546443819683205900556084188221957148082850761059287585518523937248998179843365600803504708299402034908553690451350256300333477807583673041875490101625689453726378997846892674947166652844964072971538673850936083579154215683170333519861868833749631727380659370672171169579999767688395277513804809027017540161969125948830618401970397698116632110873897302899618302802719691536518032787014919745527219148557911079559178370551401042294932405584112201875811824824128730081482280308608771758865487879657734981580125547406740237046315205473910291483173665674382698175148853183267039275721156126172880940493947814252462878851626374698854256848426104922190230472729639448197928655625447865014883627084523933973710926758050412063753715906958775044735867119216242643175665547767054450764090972815869309548797266606177455633987913409787335483383147178235174400233788635746101451052459415812828474622603550925449496887050444565784455147638423841936892167681805331092195535863495070058949929183765505710079236987535940689137923859196007815639768984748357022882635226669294947235300306108783226407775008193682333655113222934023278144036174494682963163733786970339159851203870576162833670109315870196203703283097758049557533118295721105939551033557380627834551606422514269508494273169337450494051193261469529386007963323985177225069401182497414026388571188341578989159739502586043969047580447263414702745454109518736148434157429047959352418338183491885893673598473606661451873364048556742319763239235023325197939651004729952993947020773533534859301328357239160159677451327633710326006923974988997250866910549448282349601337810258296091726291387525259729871019255268115939270798251229599043622772102696869413923147404370275352040931373429326295287745892341646271174717396444825989221857513582306890050484656678431020885499393103224467473973913326366296445952121156896835390278185245200940641624558171681937105319612104029696888384833229095834330686869112733966877578788693917339647892297077884567043196730182472459939972517845768204665565052827234843217393683864132328566411225321743653954767943172300948087444217151689308748612541223123688402213569690494551052643940665263671008195546877502756627421341055058253859931160912451924445271532312894011094973471224973835934600252535018698335772367569869700683090634315720700821310963635073079126437517529936974599822106779451360186902461306259555300868515945748100275131517664744114724366059524039423423740208681290082531158387049562653734174411042789589867373821764839091075717250996796249865017578842604346374124118494639429870810236901354627644295947674344857875816537658244605549885931520268341403727344846657089427678212688723952284456294262157557765243395456244960192631801407864332455738214944510557104002980302045743437157971356044313009176855648387092578646484081781752346639643311231479568943884490647329594716145157885474764273486305972752691048958837129830803169079285798161188965176429866984651536444932676240680801143531423795898046266449734371326902978054618161800380244671452612216356572142661086023615823745258799486383636705126162588844719264685192105682741600375251113812467842930930023787850126101269888285935342971616409243139407327088738107227336321284339174778738293117104180576634761770201971484881110835012068997336730427006002754129100702858639952158055648944804487874837564440585673354495132572667792052732923149471150094514461542686850534656141691013652744994839263148217766422576373164519529549414105535450965699568389989994889434032001642528377946822299565544754842828922713922724501591227708252700574018506033499521750584029480689106118831565715459766334024260455149932943243755042968365294882340962543133451066608082229341362196972382131277974409205351469072984856748245776196510665858580967892787149053395787638792146659359698577698301064079442042363106012964022017210775469235579134637305721340101071487150178244782254709795615600207671656673591275285740874983773046543385585079868616450409278761449283650527606889967486016613958282553318754436883647988376982486188946267910986256589342002088696428493732173236050973351366703823387009030918341706491444361059823581996569632813116863744360557751695629342369822958284988085290167798259301554733581208049410796774135219160179024447492254525259891540107284843086033360337667442171875468595427114579565526474408429309843965610742688350493811713014763271242359972753479293569477077279730199872526668994309046120581430858646115757255069400421064776181896010197743179857562722384401165415733117419830563867024006731594673378433226955658521462019913490702720725936519371205122290086506115544792575140505968423577584695026733148269166791600880033158375559424139242679993449051649296324244498252817220097327320093707428327115700547651933025132626674355105836957919544779142701866444952237610304167441360863305769099567747055476512679536888523993541828193379879247613309880629372474605514135163668650161355681075876973132559884721164139370321569198749578803266546239764618843011655525841096705919637241276902674905348933563363645993998631895011997660889629714069356876871675913801214081218898984229024978481825869295046374028239181662610128574084989102585117068194742243589727673857229759632274559025434625542806903956586176749587492740577602526498154075083831720476049847093654672675313577514950663827496769314428681666244064548776521977819543778414326196955617070221414532031847415305671449492583135255916110696172101391054549231252523519073734224324147010157884697783387560836616346956611886488421349672231376913834462889755248669168009681668509942578234761472964682132283421855698186775219257185304517487483189297961740573835986611950437365126447054777980930316843344992888312362002774732762920531338803515710060882207028679017994663551220224138453793249247078068533886839606078375966042181715238685544348580813260363346297215243194001813201976637725493737289561011620631950834991912469436315331334159664597822575082632451924662806626580628290056366228572474400746502727928597240491085323762934926378376481153053193207219701225329382128661497707631839868878513108249092155493799179108562718535830008058920979702597198269477305910694639117294132055177382617353718915372621972710125051373455321726406001739694998360109917831129886057847555763092465122232869451882512858916388016247194677792320698938454487117162477305821047603045607902396021424529791639081958425615064139884231730446509554369801673916402465754958941485247673753102916237778431544360555262727851556841905448947272471076818374885411251573813569464333283428508929503866727361560198884970111918658047434437993561684204791748081203169535229782784421040870395334094706267152277809403680347328990323187506988907706154343633183067495541922560070276225126048193706127976643390534435697902108854092041431579571904836715199427012910790417196829434276058135529926189549019550289776880436215066535276177303544611877632712559274856347340976977462949154551163906630572897760194551536949467502361159307706711327219047710552608354487745160489880422329610839125797724191549598039824009865743035613821937246338651793754527782105519423223313529146995289614071435791000297244986415757146319504573856973969106793076885477836504474350545205806763090707679541020876624639435341007499611736025033455303792791638375891777774645953050498939539233258908791107347633417835681129324392939985457226275181930901480554337481691160821365951598418896548510275020538696085820461028168286950206474159254929191737535237504830420784245292486780648286065482213748680585780654432609717742307508536316567902252744384177138960776022492004511874317505468024857906826726796218035334712036573873957955345853984112048458382212546983696505628349451914436871712548722379094333356333339149051735798239475596441701323953286057881463077669226889995566644516932764151074555672901241955661005405162324019987339437515001804702715599340053197039520211460515632534932569648217707912331123235531628515083162253165776527618855841924525130490550515342866119606047439738174773652415010426322154709901168715258488340017510193802543263968862048343004743092861921884718108203068830796558241329885242062526227366264223634200078921945047726708523735078585304373947520923177917041535069415268326157248910252388936303762232534834937270603450196881825899578959061639503623189176482952009245767495092657608049352775155929485805060063116618909087816580026471195993588834455972152972459462478396272287849991912047711119261900213402238150629505614610338520424885927219537312764245366119100556032824805175657441191273417058279060415335727674707568865883106716194741376716192147797981471301068743671219691682904298919368347037488886756246564056953402578054543370277809859944017076244602781702749429493468124607250808375441143513378808409932493020723542171274677098539684983546513869930666012049213008317421440119662935528608586363752983855726401446235774522172337581894514929364688263915876990150084433241344879599558371141249988086186401699870939074996699364543313437248292754400263920934387431287859258148169566635464684090274665206083402839318417262271797098984256663809128354979033073365073286406714732650365901758531841105608772516687461782002830135432817970028487433554181671090279489084204002202509805368145968996717972779012037832130605375517821111395432653122218035873795902240364343339333539563707411118760369705862022678337371540409240802942570652800505535156898041051985197772598207450371379302865918129439351525042006295213736568296086664713910327522262332855918124335283688817634528716141594720739913175965742912735467134283619959534422672277834016584376511343012307189478738087324719920471113391458101072643512348968625223167738991781232366744383907231153622249131052575972791128008620610084120167270598042611512825055066235128152026282453502663040377392187278978035601661879522777753653598095909818555340906140456433382576634317799396622211912518822721586801383008024384833066201997235888432283637890708216278977831484572717547418840808727001133753169346916187007524823981321420451712479681053731025658649603409392661370963470824136190542545275985671312161194502951283657731274576944746576308498714074801017975994978512076633983728511516911716829958558122403833737340611915974519940663789723855983375413494159971871727476794600678671574006702359472363555626823227681589560842220585122405156071306382382398100588588236823333113968079391567519353282407008396183201220276010340419301923639427872583194712442917901715737768660501785293711775484301987208560910419618052320659978551456839138765132531533177574980758217764886967693959192298943975068808944655265418309939568346250321561410539078674779031540189856926935444861124554206045077518916823467143012213459739575730961196740251228405501611554107553526061202107437578663381217546329374641725600343986622892174719178985305081215455031315419199550568740742786778819434913575100732910932453852883338689639756152072942743266832068733588894308530237126043535945251572118448732971069953721788006248472697437721189049143043922988814387160499419250101405823954880111664478857425969096215108667769509324607892428937439381888289651191273848348995456809407873597683424259368434203758388375761446837843740798279014903719485334647966866989930817739636211798123149041630292177544718995744319194831328987010132108469196747593251528461521007951888960579961439939060694126201896059284360831101200449193182300751775972958505876514483922762437712725302694538555205522994510866297245070670293458202172343912876321787701176493976898788451979519110974507785102466466041306070413683571089251996082157230670277803928765369959273820673497142695036460216258112322763418874876864516051897026898945536989114722461520127443657845436480121738439547086561163570901117805209806234799553677951210736378290984713210980391289766666735417230267397157643127911981311141633995674339350688109797197810372868946897788702274108724251465034417230038535484103398637870385037549426861795056092442668023265807671534532314982873049610280265927935340748653468387647604726924017147463527799652076800157535961366969708236559535950720283465288563339968028319687759787829284216334248343890806470503591660908844387819220410063825365421402958553471117310357287374758387114072438768196507600736077233642726462109709515584565205672237495121736489854912032087563424807002961218382988168134719875629296082099191841495415929676367787298069046461138384677376316929961712015115717114755765724308231293725832495957668480928505822312815185536460321336751047387705780939843181806759782127087605154369603950073598034400162257722029162677036306382821923001813624968395786566814581988149743745075984543476906318499291557183485250754540212655349837365705601816300326574812525215298592360317365588330098716895095526111388609291544359957397746799484291142605856602546756533456938170840860939388360301604567275911409860811445898250245905182502755013669277571476957326043810654701978766795155340043874115304536364193440865063105187024316949851723719484952181033254916179481745543667618844680535533679383508174540422222906354002994721349995382004509000393631711139842738025136682470575756611960713988413067762921109405179468822004016234488897133021235422641205857204229312972836515192563086594853689035977486989394635751122567916960331342035432230769679868397135823576490735069199531724516230781689392553339700486006835066119131094325804397016765470745002068628248738236337299557809057690311607142108088523401417695890220966651866643361462173704049658587221203459011447653393520433333344187653329141883882219595165087235563869001880470625700107098908381705669087593603956068200272561985869574636530018962693496481829381994789215376904877893559529155239935883348523655325695341614259524943977100151287964220817215337778703804028051725973396971772611834368488198667064120230204822313750644200432973280491158586877140471640821971643393679499032484352001840803328902251991198391426636527160594719304893407941695285874540990581558302830724234871292703750382122601976777626817773358006882710807122373044010931738888120209135611893625019531063832711663986874345014549052458105010393107692893289318708195244371958626661861638528502965338606011855963579790425961590342148115770241849385867442214145588125273450690572100062444645198889219535283158882709016257401852465645431071543863735306655659054806043490551588101785543777238351666075984017750607336412646856311398802362360896676302016506540771133068584109539906431484126663571121092369116862021875604550617898922605095300551819851952899814266628245364697615434437061738032529246617444649543489722010803866539489897280568228586755168860762659873005025760618589870942669262536745952329196228715545238027430518465152989934446446547665671297246447257424822280814854232841870945358896506167659136635604379293199817539330625118117243869502921600139221549958125054929436223492972544965244458826585711797616555959211520242501219237084433060140072778134870029768539109660622903894175262713708543947332043365884261346009297275920790682502198450904342607457513747062462236099844482232884547729013765070134294162986383545022490294720897910095621965057639654846923190860061779441688295034569168200761922603387221883222174727542625293960859655614318849253923008606807173735807948583874128148112486765295636156070062898062431441112049751187629737438952482047172124962753799769983361114760002732445947595573936088208547231356072991000641220419616342953988590008470769545919018957015805129711471194486806216007906718301895492745937080545671768855319257154334353942231517426971729645021635319262308243080232589828032651762491564796052853005094936285964981919578139470461206656244477414180933501133763577063610770788725912985439426581672287780902359840644105494637602061660881016646290309649196437366642444034676333242408603016866827206956726708624172466235229696940599714957149212059874615678392790762221507444112953348759994467281891216875442345281906964340543627251748755495991494721905166509096918007053208696119371243905677701450934460400191146771552551789114335584573220556110054803756940479254274411328829606221647326221048388741182152453969307350797651693952627987900663197072382527683636054361536256106211788469284888234953402875563928486655397646668245054347399129046986686864978194195245895095829408106057505992504472741653851527514373032072179846332523954281481324631810464714806216989644396050777873379668212846389291603215424557556213898440027575305214593181330332773228192113603680731539596849022977710876955106653985849687035116730478755490736495027678595900968368223087349066395074532244596831822228523087893459642819648465784955374872578994904937728061199323602827845689012323518427336511187355981121995194211857433641518420629958153840114548410120382699984638174848412338297985096781869763142065716210792112642682579659276594393074211736172055799028656573479111297576928957094489663161417202764957747553221003238480669907793195536384161809357068387865713010659311093456832038053554874170161090641003708367712164325956865058357191421352042439091517612290421377384600526085021513188059695091815581545425241175587326571279407557269355310523922346929953507196798662466878440525449796682145684168426839316958937718887572010357462413128560239422985281973118304090128923886578114518989570106338096457395643423260581684216146855591832798234996942539645880458960783098078358135071451381429773095010699394840624606073401411490052190234775308809448461367461823877236155732900218499219396380267718172700998748838218397647860459850243821577370008660063082483399936003857418919175838552002124938383160840678607524269024278249617676014061844971874853869214440266517270854910598249011269985248363034885787253990139051374703397481731575737643122260068562028019246586456621706031800716616784354475311754440080833397461177563995123886778163227510154189714084007572766961215695157815195702056405375764504478781843827488831696468338822117085012118327759684095352261899089382369345380444792296377147160852862671132201698237950497358176659366789894203609847847226234484941471807414448010314596496936780180236680049020758915009800608700196253048709070825018107483036962391079654873567435729299554420277869174046937882022077741633634739138032213031392124546442713772405756227009102835845805269068295875511534208197597936520993880628882281938693858622591267906268771365962523128466949727518725462010251506959961554222383430138851024621129632542929870522635657043090726711243805264956843410734974178273888310141446424231569286781462753314827379891578452221126952006222334947329760430678214459540707078654131557715228716735902723293890452667716658701153018094769924519196939692818418630480950667519750117750042870695182880174535927599413889429219019580609470631102909677096441925899300917959666927436127488281036150866266365752349966748735423254132198705658610979829440223690969844507504403169340475940551954373886394615554297426079619066899375683337282041201011349858087399406623989304820656802282061866828093798622360677049151638975636909891605789961805405142481373765829089056297305645861056837898532523528718850793730669458201617543257228303490168123952325590096289032506971394223372596889852704864442166914418475661408784764891825664581509409781638715599853212539559591058950307445239182201043698551800463067660671506279620876619065149054062375093968917670366269947395067635112465284648803420013039357481867731385522060640606695026173616862775690020816626521635382749364247066006548982113765291310306420053654718966086591116823154101171455979805414455383803914294990246896090935844239370471978380207821404761235827152993671530765481542217267876992909240161870887433812956899095334956890606946110502237117236389245538730243340320748725517062774484718072640538574873457102182112720448883891075580373343107634300223338410491082234872318221140342666080085730365273841140844395411560092861806837657253044237686544472352930561334143991355349873946545613688388299216157100171791863518561185576024966077353256260106835737611052854174141790726178899233622170849458383302527654491921767687674523031122081471499387948959423248893844264331024559665937823333726021057165600939844846922851249322109162681599875642086619109910604792999816125258266730820704353242626854913480733454959450723678288553735967799195005446014633363329247508979081649586905981431858699745160868061820547098904797618201363137586467543799006149397682914520309686848425131102623261378253482250559533424799843627067537821736315281367512416827699853282266467088578215652961569618317354904685362375751302967532142791108686250298601367123585620115006994366264844217826327007632009377058719836327892362948370564450196469852491889532234481722637936176639862727154673160738400606519918743732341212245531571714742584728877352033968032539550509237107834717805231027315612138487731124014609909680402870551328572240787237626338925871805454110826241780708679758968391079664408877844447070823748203651505007052190049347090130042047313361504018653925326354589296188188860349677942655984718720479368817574897791751822755391642579149005100382915860976900252813194507679099906245428766127682070555243702843596681708302160800918063065571534187500976057348357999944032476910007532407466418926457401455874631646816080335243863379600538197713869594495019361357404130515494146350610292827179482945334485749452110000735009980224238533272593606974434416504443544970896504809004886433209166118362732194957234644008639978948045456191092947289613295183890149399951597676607512761556154989941833526466608136513439426353105565087388134335037723372701494344227932666406656141918654883923316359510734153102098261613353563918072009937690574153609830858937747140023329718602868017167914146009147859364541733402173619682006595682563691931658864532120516868952514978776700423768587382392305084986035579809460464305345958931711003419028407360446997004826455239864030196519184374173915097519744299233588955803799486791539078964507164887135185869855823847673278506442280651195453232807940330315667440249114746230316663832739660659265740856850436801229875591496331305147583626259909725973096627758127599323200933264254566497941615304969161868640223249492897891289000346116782475796479911124729539277887073604187845395713669050132086713677405394518213583119020495260412161805448361135234077666203329684345718525407652962253971884996802989787000757089110181958358531930510020122542881070633000311732068222585503214239943822758111143960167052195833293195393715667852882704367562089889381308197597694139332584991951409423992068775648829940824066988393467437302344657393099034044298769843741624238892988938982756918548405576511599564461744894779740300312332865642323812131831358002677328073799921373038876887665656218743667305600805969620319423249569654330121034612753398458879055638751130139819341191335364295774955667001581386932310884587872812029119964355594562441367267643955591041103281434731335967078324338163304341036247358483434460269998844997075118428816613401496571168749398670824702085665621489769583248249202646892031964162068294168551416493543656107259326041963697154612111977547644783586463552363232633633499826641584951537465618729266437833108016896200819181647045786825045768901716786256811712764405559558851111415584789549299329957583894334275095647480293414261873070807479007647258022473750447172396609723999375677639117405667034794176057307832241127924448557926575873529037023592419985585728868520663446331113132308235166229328978057283716516150871085859924540537308138250579697335269800493702624410998408695824809291001662530098492648290479207837430290036772633771808675887657140512338436102989062779025080650875435972210988826511922932919623491598288123533541268644489829717046202772099785235873333971198275110157129814317295761269019503431896156349651296817573085668974721948182056790244403739056773521158499431638349027875097837244324496450757078523066662898427173902654504870420349904115383515986765742014513010955693925750815044627609514312422747841460098467390359225468795049668707731561703756660622133949291505569721688695634017814982528342914126272744872764778672213588410630723919194708182515136330927194421587396634493553720777075621633366017620424632956040769396053451098925310447913408758590462477046059183368041646775236640258860771228319525333637273681912533356873903391299192754569223182899968756442171669646199997391600617288652950579886100384733414042411552508219758255852115908524899065051434736837375329576536879606757339574824168067197644545038946970270559075744451042941056175221803894538922545855701014935578093135365198917144249493939184015299347732549946069422870043294899871569595398872593311159531437152730854393213350515714040189768053933704521114619496303876500740976189720607628035938319637079651004177523629495600672301201306730774640839389886947365243593799650284292251230772610747622117994535431280535629889309943749018601454889669488699776822582875873577939851790411374323565850342013699239753543270936085281139921026157358668113950251688288874548825957026592005435094774876861372843236158688442058106047849079652098084426500538434569677215543585778208276147951246211665563913799763897140958364014822060370504558503333080502709386782725776469093502952872471406810544434576082262815439072464682334570353919757709221952232620489980677466655100297625644693372539755964389012877804242670257606250152234354629975245864769633781505936118946373302354115828813936125778624513018349474118090500420933326870253557985271941536497276812745190233251299280685254685214175265976493006482733472862746413211052920954764621862720602957060671867020740946474816634563891608728131770271939440564864020502578287665775761584408771329307371574044560310461598462251806797974170809256075357770521910467902709395817313510779978332646378288155927620181172346667721995272037258924635469384592187103884476173737526904186434740180602357279671127939425105223220622141942018286298284272128439429501508592268012292057464067697934053529647458516379488050336817755233405141128985908916016466068529443058738594848226807706752980227108789700588829213204206645696664548334090134545041026243811300660525296800016244355724633653472637164897040302075720778010519801316380760969942869776027218413293075124882422564693742824437860957909039337551484314640457499553068037666463673338626402385433998204499201238730286230973390559723634256383678791732303253346586192837670025194509602427514115982344057344941491754191312391292018888634238560145059200287048836598671658276153844512986085719563079676086415292832893752773628806449270195634224558736010785575545449987855440433698424382659533584119775315552347610874607654968430854491485104061002792152743031031954100264416886567654171886020068039325617596788085597661904441537768460470338364052679328286220255744642414041385588376766583217825336007007954959100333698059373686020659922751136738816819442981989670098940726393654768530372996488576008096176787077799271214820102333597226557186148646327396816908477252940935751814824489253071278565517352775416072763259526584475734246755953659675191881574183814574441007585684405814610717624346647235670059179536127049403827824586274084950561409178367295624609495311072505969263477368499439060064361848976407871408272973733634887091904733612990151137131448802455832826865982452193318430602131277453406120124638536596342901600927084090808076185355348350412383931673598207116094490920070334221978480167894782357684642791447546532733278653387008989322451565373688282741976392067630135659437745896132607837046341603516659131520607400164512517401167353149721860391786898938706067980834570346388175085263064787248310186888320323054126085711748507886634748641992703372266570600028791304904390348482067117121121797710662060883763319545021294523198081287100164396887492703444935295897582691786126116410328324798712339957582098192699063099743806568427157380510583023723211669510115927829353028976971640594922091538115732747538906564889151566457906418050819785136869657034931645397830471588198947440383384071797414270898939553403168555025522872300335448312702237754098001426714653693970460772022651461445109136143422737387740409532588700763568972187859741492584447017454956749903105661328490347060329671894417400582591403030534825386708454966819468757891992546792800410576073985626361283843223703505268133544831709089626080128456754293736837000659133842734760004102643449308576762694686436724940419402540740000647455442632507147028882565501265027016105639868436572867858434232368718910786237780500195062856160714439153386716626275952738171008064876017401531403043929384555347547295946259428312681034065173788731433911782825670272225174661032376860458817403596920346032810498059963278769829744669183480739791101661317021295725773041272084695029452927336000012390560069796499101350501140882659333416496031273747707929942308644392079984295395548522002243205137601522250964728632763294844478546053434189751044058470697768289461021864629290360373651572390509824565049972895925322579586976599974760697920021814536484018013497137477953215633602356215801215852168684804085387485187798195734292402569118969873623011318644436372800594389974844130099295444069173550116974946122275236386694483342715530986048658770598429311858715474829977409903732219087513941907942267423834651678592197491533389338473463744941346338387041595556930070959756832442457549957754917461933014662919549033776910559580383788675825285625034321835789605876397653637055231630282706961323256286775659718157419421921333660594077671855004491426301118786110529336365474976712003199967341950492364882742443741580307169204785188742544457677133662629389518475683241977027947901426981264693323560701339660607997783406420819371595453926146400291098501558041623741737229423319137567791599029608690204287478612184991778613490947465752775356760262415170099621105700988204165143064774901485836568332389385567616539223703149831699861456262618773253336295339819514290570885079755043261956549160749690534805135493867188933050403761139840456994274613390672980908027227022664736540927447336312085016739251757519443243433946895765873247359824354737149822242163663223015013111614523580499344099216061215543017011639316228664960672474165630018597098776257874116800518789905396080080934497536548991741295340525256963672624737613459011335485285225413599209407623779950951128330781900094139812549936278678683706102962652536184530591759559708593719341346221704834667974049247934243821072766417990702632217267425750742039362699389536065782049953137498653320562864144383936177267308047674084281513928554537503172702363063535417357709221117901465013305491683023426384621834179509118717149439974846500421565920387435967988869897726007275588275122567550646350754469582780342216934357833130372286136339100400331518848347983292257786989317746769506419030964697422652710675545626363867460744196419784358752625059079696879089913271728587399299843903864302116169163891489565263595622500734134405607946815827983420793832420850358803949730645858370803709534901934947305046925893382791027855397946118617581470982394618236603694572083843822265370557960571889271820797449910845340393460520145028164220484598034046884600829283171836038581953533157310175407364841171052708305967097507803522015576910832386421553364015835651774867316139243921786705363713982139087119292442884350981820899179503377101720612998240521701275274823158668641299008580134593764466217544564300831704027637606656743974036967602269815948936901706025151294997730763035156625629195736129878646631888640745907046755737535311781964631655163824107251978147150244940318455604417426175136709490394139190418543322189520202169879870082642334238632909079024481648001655761668803880802185132340100013843385594789917679523374678145087877956103528763537423776574283516792832422239484997948857918814941964657229113434495065840168515238109336314808186740108708393197491639259561360295385446100079265710452387955907003934027218816529642316844670711193656817827634369523171481699558293670537370933708719133079712126600909440028683486647780898969471390889267354767612796256025038620179826294608889107227919322779742272551727959623064570963332192721779723801357046325881379065847038547630325163846178231133573989305934759287877109214265765230309583011555690880351140637573632158558976907753265563065655667306695599931732043333660228831137757069023068842554953987754095799377231023840790711465409878379776448504892927651541546946157625328250999731753667584922273065271030858970094322993256454794969567598255763533514677425163241642662533144019116729847226417875674102341707144186544546172508221938547852707359613449351425212869325144315372498904585431453982133824913570395628501348272573667497495358129311296634987714458630138506970969694882859543175397470004132747403292226374936507426726519099575405520542846809500594646741786322801697227546542137345428224892714898479631566896593937885471821090265040934202666532167431330991353096027566665706421585519000539071358901904396753438268442895160210041050973282326380859257728753003717615876190964613449389707980298265437865672840935112748298586121289601229789546224927020880493645829361551594326614240337859834826911150654376981054430033964202766006717659846888559275073865200513186682771901063246367128784142509549811073814212146174858824586407095047810412137940548564446834215867081156258325240492279747887013017104520526481627304341217494890473854202179076767217144452132677452611401902586406732623180298947701207399688352924261487561493337682588002903523722698248434460730604363782622158840844378414919743681967949025922173841393534057221747625170729095681936443099339091506870432288691308799946031670804082280134663377420794440062350456803302024594508056678350477260118051362644767865461539459021669433426010973379814539512001289099774924192396684784962092528699166513881717867660400571450898141317849353721636253123221644942079015058203806003388961694121916984844519286514182968877930924373060927012229342683769671329653006032404771767284523865501532750444338838150417926295128077401934375412337633286628902377505934453120127940893380839284625334508145236533782512671283573398640218347744013454843496356601477171347887766465998634892902042826920959296067766814563931412456620014568346027941935892687509414383919403225288432156694226706769838396464856994744619111687639415123076104409108305941170854844091018742205888962782581541064241320244708372439755085679281387635261025106939142075634058905626530942018158367494383901002954912240902125569279649460970673393110014267818873507626399167370002687477213009979452763364005837930210809599709980639409566409577099883736940864359706271543836157709428465976380531120542500074556072030036190252322187826794771783808606946267651157604646581148381086090691704938060737852651889740041116050249946663167490767117576015544678039393445927463535001150339130029091049421753227942715324293454824508184543619085304308255929876187613602893059130041989239596677669546536911351019446807868825092902993885710946789819089937792170477073015084805328728071024244850551367971153580871067120609427213240321750056295609857469020217790476038068106994031705376831501078794839895609798012925574405855436793380750923703228033699729395775168532640885642824046803957109880183833103709744546009460879145149918897623245176665523340121873566327535294085488153359195451733245323542533420335722938102993099019270256360241506137523469534291792495876883078214253414314022406562732603671488072694955548708865431546122297645408284182357705141956106419464532788691017008484974744282069789859119280093922763138872450587962963875762105821938005946501909346710210438399110296488710482885606632122543138972335808170643089535400693182154024164924770343181077388170803291748868960828044711293416241441198012623073769827462331079008501539049369208592499813874261019292426119226073224620883633989166123507625650580010022047109782665929060287110904896399269805938595941495309976212659638427539622142956972757981881960605434519109043431055803695373641900841186330036365457922235169712757389799375539714630843954622153455830971473897132400221699817593022851441558520436399302437948599221288014457740651625896464906314666859886789254386301572776726702201003197645904287417584054035450381057016610609313858024814791607812802058913291869822201438918279592270093059535764404681966687856652493510753680119393389273486646247381306169768849031911039169448316763565567668893725748480175757013411970584636788647265024797283202186547404724384799917188586081864938492335188432632379833234580748106012290291177342983061305455006517227006778304941801764715213830728719565772905699267068349089319257769301704203579723934990721039399240641044443921044811580208347615464451081275736331754832837268419078437850005343504636344668863024202245340269463341664385188970114454131835545459433247796488178510251402452436589467582112262891620328511153859186658140729263381226361827588560665695423199471965305723619761515289834220762042407688875273641613799250177551540785041643253170349181912666626573553955899366692338262011724015209684271137085454173017550861493131918069431066282615593515567429366370931977608402907583436001152521906538260715619280246017272802622898819897472070580337874344902770504422588801182075522365769673432412797190613918292579644650750658431112353888202726341838036113421023533100720661332401288196750870259404559979807085682960475993233524343595582706699085951059987104736944290916103825898908754239298776920853790639510695804403834444313838004056127797109586862976372926771628878370244896964249816742584931310974484583933277256764325617208604060305517387721687856592032881306391446483189710598259497609408020061365110115206161724046077197227012816997644272641418545214139188337773967887412626448915533751477648938428148723016604548040010604723383429146944582438385616429904646567995764816051168347096793999333144538862777347837072005511680717312742380391781686340187212698629741523930069324029116391048547400753045937269612341641302948915301806304315496807178289685865934668387724457986410742763386827620706082142466854494935919958374828411897252245793241405538295944391758261916392275413967937905352855906639975911734025472744461606931818625828119457734527125030517437930218090130948519228819529827843980820008620043146001957865765921719680247712706916145831295271714788510441817444313289693377039004634409927079339017031681186953907696535566333263346057578972668505566478609595983376250034730103334002596801750801934216944038362635864593172741138118691859722111291245035738791446832490426363491876480681349153278317275758695310602654539309497061477465890213769926236404222474414665618955933150934056210451008160657445972319871241389017484060447671146828110692974033010880507491028046372374181522185076303864237839073751496295837494991976575049133440536190139788977493244432382776253470437846658041410125120658890027764397139436067170026175442570210131255295264812468011957425228021612876023453787748220264237450697929280183807169084784986716761545446562097031666797698560732629615151921273126231508314514872490056469104975802648738553155732690015734442532281927092399773159777309825068874449579773983682697815426520244651405721515765123123068918791028523848426105642794498243905064080715388441516752898795456969846690273558523347702828737579852399801766637742630358776560483088604091308146240810281653421407804884208412018809339292326900624338667808128898581314854026223698473002199869141310673582216772984537346924572016554674767798325304840422711667729295368316478624269749949588471104057897260814565183972939828347408393399322332041728899410755906043479026163884985945780608724757111098489711994650532761593410028430988967420692536257611973783121899538714893749761775308890010921389329307207019195873783377946261451764650245606854710837436238492028821347629320202492126383069214323067615257384477799023985413504221099982849154017342439912802215812942871768414979940856602667581875313546493665383229023423141690113479906370845119826883266781047682587733771788293862940623058610054645494419257569326593659353083220017344926406654452362628892626149287007330507986554481717789178095759658151792331967243476647533472038881885890623553129186679258739516399745980968361207699596122197801349722287125874361831429080847704463009449112344295522917816144003635885085088330362627317820866421104409215192041354669198399908793976808171549303702262554209314700714064907651418745606668795175883991817699361081430592685552074378160360962994983441837562935931065662445985878775430972942626426394622300695867574509672992277972839189537147278122837728161712652282726378570683059826990857272350128517176298676829515637791197617597021602849146682986847101067501696599058848444884124544964064331366974326976821152150404229098140560951818040430397242434776207254258598829371812906405871982827236708963054054615337190924857192502343365415344242488712035539993706234537130293730729520631198138916405245525287868051141648622242554750426903169490774309941259901454761263307596268355044170293637389184860747774983969531157500018714297444802173026722120297529060982837522877611791684890097038578084265515388736976165242147399714692708821099677972683179542749244707309856450643237867159438432988949875820483615250983582460748278187122952775781441712973295770483992079999854065781111614122256109804835436200502630444796907939526005023961986179050755647904848200148430629867990376440875329384267523324778219699588061432739246752675237661101255726432562455987380328612989901680838613406985223873370389844856590284971181434728140858880252749815601906992775460796500704852422326575690454387938617655936015352701304734465797708993931344681323994028319321878731456184158232462684200425863662141453131096973885190090075936640543664487789592998144883611920408870584847122872487904757556705551445161579472727492569318202987948066570105977406198348669818402291996748227021789178914105075036967421851714496547948529874544197765830191081139438210774608116893044276902015524746818434576558049470833813425845825925491726057488524858878321074483559195951235198703090943440857763239894038225114945633819004496190529437599872155963949398756676073020679131648835964303327558446779746648783349637638486814887680792456317088394730393754961352757536100111614976557594919722799354040988559563741119838457218115720680790791379634391559893447371259900879247059572352197746252435696696832007579901323229737812074234336383062886792846534723980504660309085558952320420327265665137854200912877048000740737953218254189258853600843940621918737735449040961537402831135208186588559932273021217541645763838720079053405186302955706040063739636431223084340465664173224384799506757256668179630164830877325598540161389554653477999768067633403644275119886887284490077125503791895863632399483717655348561535206623288120422059044268108791548775557722433402239865855359105661290132685029773892008919057308979334628028224153906153182986957288997507388637405436616458338701012845311369396723030742993025738461350453005537412102359246262264119697667569711901540475746354738895843985683246721565255869977999983342711352111472885341286514150528154729636732571685486093802612575084023238357386204028119645506720322749526825917277728790993486672707030162258461317937050653400744824432309852883251297027167817878851375010948633849722210682491341052293454814931663877960106717301456210380949259840370383295200101950895385809316330629325696982225386278515395063279347296242649780169048493058399331227943937079372605964922422311517205308357165280365626727222052446915414046048137844210896119320849517136848464876902274967401413122277253760585649175506716659091419222367925582434354247692043796139680589671229853273001175419263281097728081891874934228445110187618471283179874861483764861718481253294741986744242442179120735707506871748164586656610221315314747726654037179872700080702535997048708942150887087850598831721913948241733667540767641778243403595918907104552027494928406764505276887794765277211486427407900123487935074729214533214151349386457770271260389493208991951807905532865001291076230507025926373097557615510926346742731445319277687673822667859877084446591876573496286291269867640434557373132689147445716026837864846494578157420328871331357373196369205768438654893345482375038299290257306142099358128565526764144362342290158470774417462052800668124911699009295486777912806277983628562585496784888346834613628815133569922795640540978626337100827530933621601284023042960434383361905395543730184547230712128379043681139468891229855888509940734591125083054534450174461465526638269835722560900567569347000078590770501717936654149442284710834747191192856776661556372449687722807993459204686321898543180667687777963938809254712571316869089938886486331262147115290137671487077393324401648558812227454273344493934300026490137411845662809984431888680510563136256648205420682544257456246220770710971231595604616146982703332393840347531433675390106148329879961042341797892878923899211875407430543849669917034532940564219380662275551484499340555445411882088749045766373035333531125635231419354283305463727347567335112926160987541391607411903235795606537049022975109722243326550144460521847925592117477460126334506952505561246917892570210373069512716349988574748634026522967110883645477581586554845069127638259138784655617074937919007285747760836046033605391076216349328339541804132926205069572501773219957598188538910354238291909294734657193859581517363139086872763908707685746183816424871889250299706453638371187645656223248137379192570090287527501029619195742392738117290231926119078259022980646306733241345112485572395826077271177449826832898676676859188570472149245075926001145886369966442122456204973056342603911983357731351870405176264233989941000595939894335144978874481355638724710460965385862804157364522526910558613514166868864167853377852674806645535512893308262219985017732925616295182070076800385562323959762274548749401060970545996785453160231499347461326644037725516866991285187880647506416604178310035730019207878905809139855142990609450786839731809910284378622724687945078712930022416114488541842723399369451399574532742629898997456412074916150924525942826291916049337969836888940287733281448244725319179777027249762728451447642298410705829421520239420177192923436546866459592328427712216003623960947400499607735125408197504934260913970980053340529218963745942935861018063732182014054327547217726598927428906265121914517957365818437358838840361549809217665328642366835003175331833427349895575378562248948589606545663028658022959415963882968909214242960264755748162053614577530323077658390798846315053384561025997321437313102436397058347556260426139445762676033189919882492384188327914553090242954133962963318809997193702973532362004333992861301183221576429847333332413713273769302957864225225913540343220404114011333787919340281063061461960745544636847056123560401175519291207866693211628629892073702390961772954811170973903010775548804619261209503696076643859219532797255757747313395487098386228613469586490161429502124195823963892178379514998758543288388353831288332179880720804430619499213418883588879426305857416066440348516708864181917556654072980391518179429569084937938244872640497566815580487883902293170407840170620844389242150541457671309747527138049983877409405575082234446698642103649436420443335745044324004239666144861331817198866991444574455091979627270548842267144417863302364769717022822435673123828095723176171476011767600821766524551114284770317122657177172682066437325652317569014759809374060794884277418731944694352970044207767479110841325753912684967523859819497235400447754371200808575548426646301663981852174937450314829686246620904258417982522424945597294351207386324225027793426716443106734264494174904667480862532742442134591843571745346550835544126149615226213281116605936719238820331906383371236883893760907844802008841952734535888704879705200119688868155086183059830981194824727048897470501076532961865565660211021810584001109842088996400162029530019992253248487122301252548919637944307810740382205491461891140469646152610101977770760955897677288245307814553780011859434836761630972354704423163395820275057816570915962367567831871090155297245297670703005523585060563366657347226546795426348298598104447377481215725522215812649755964032284895332982154124047339472978571483753571561097125178259720826407759813163804604580985581847612381519349336400026628090778135967633028179356023669188964536069108069859130385374439645066532522243836682589140643891860729298249397205424067816193036890432382083601441258537172856524145210867233198635670478769674669675055506834070234240939704416202021376202138806933994283017716610713888337462315053197461133027631923757218439235427474363258183561325288414755009086734982591531017748436439057135257794517071486334755861046854527219192723904250826108624745344224428722986305130693186446327749725875622422336821698554711225201919823636470620225886214956821133002397621212539347189377588689989309276947176819382936134254966919770126246892979732824166530433772979540488342462919159813524377355134164020020154498599348402884261814596966622086222523139067467577614563275338966229462697814807131451067051870102802426654305335988243733038932715655164827552608333147573370225218687502342230516449099226593369587242051777533025143928246401553828606439055004641926430482834067598410943236602483568561593173788590456004239104809889605462412385166406668245964644771864284475875858590808575002413885525363653762710740138768557807061749754525892694701780540375967394626279087412617824704034618532312682960822102166512046313419574790869609682067344146444548019215611368380194925867522744759216350229740609804953829653906421295833620961542267478827856969958828748493798402936946309116302932870512796034300821584889323575473143148079328965487896243550254335147257732920565963930690833113800784247453192141119801989495661566173939528962399005023608404540184297861722180167130957999584675786848602874440885654981481929522663892692309865243684472799316761331988039836293151817180488081848370752377173264663669556429886856712859948794936730334760860050258741874993118278824352726365418867350982631961240431156958396073471775390826966310414321146708521667328251528991325262649856809193453754741614509966627592628371303081667980819826953947158680827800408434650371481542089592099684106832181571540337027137696914617852713399322575762862329907101633996978234698936548075352303615703812108875667737117355756725482359033965233496828298777201044612101183925605335182696278351113767821136525022259770712899311800805519896730225904997964687914679712122191601911842239453825699113634089467193778034955701769937547677374222769183427520200329227846317480286489540208216613101679999370522056739447962878740149675914783477297334184112857629328611073293675350259122755663297257371812172843450239585514886758770750433020628308932965623413808898476648200369348900107080614244520285794263641254006387787138240868054920651542860855989532074665098847466581331949932280966704528993925962690260922456105307080193372320926377885737328792919863457924004098479513448856044728061048980120169431916017564205269954374504010253110182942782523385830248164049925463995663328355782151099779450303338422123221820321839481014914071942686778456838297584531220346869620579034506575274797546343177465345337932887268783668906186363925112640056048015387579300072686727810009154600276370986080059743868965331268473808217154260249474822384829046505288835340081907577224931399010006101450972262885124174186121491420868062731333225426204377193772522759063072746835795956688524600018262291506132421005847529446998191250870308181002180374219779361561924356469509349378521087218472663572627841954377754875781306124344851950224402623253113060301891143724217768736347009868294525764467695154855144283796551907429575598368800201758321589038763273290889708597983102478535668633018133529201211537861080330461735186452712981371517704829892869191094433817211009842092130695896458173571553690877041235902065503399360558403189294155148551142680694395638763133654189035620425136672633003436143056567855435150571048713748119166434578169715037746702957846633294842071251721730130081433841585894355304368932222841351843496416189766618969340469333541858491008471116620441890069738565702691139933609054566187334234289169579752819442002770295906827628755137879132482076521099578253355323046327981870667857567880372374764818921764808498397984225426197238405721569860620186280049937399175705441842048136919968096038287905143303005838743641258633437096769972587795485166507283023975875195727644697079739587114320731332688590230932710569755479605189249776200708014971876497271516575484367360685574772670877463926685791084467387606812835135424547437060852436242108906266908242326322509592709074380685032596140060019354077319156400877353756046817703782788024451708397435723470249090154581902249262327453683105181590678218090508883025816566541902130218215569403503187434224657912369025613019841295153062732575815716277357006982036063414516202498092758208821937728225895324623000934946104422461128749445546134193233158209967229818843192685841680315336451745746535636070130909194211039253906604730748706733988466255412147824925958156299756808537490254586963314583838353954981041157321230826571178895315599518680075221730372688828795557743482723813252033450544941034475446633418245314056546465168836647193971215206959258286373027743540315924917766194732207580395231671605616661512868307092128970561652825784332949882636777274482509235629918956787761748465012382509520600910514164805903869483271301456182081191729381933707312354406604160820496698172972524683595969204111517587764689109699749424268325336659917495950457694014077874952162398032524706618257177043145001214169349966429325617081857037869352470318280025065497175943724857134826129201058751598093140206451423054338060054357586059038926153003077216800270252431738817797116476074397227296740316922718404004441836048917139089661820611358462164012938868374550486068106145194048659004001585361414904130099827815469516201752879290081419218625890640849393414745445677435407286185307932723239569477073009391373041272955808929824466736120556298044650918230718629668863545183855934421321578976863881909986922268197053804835384668639921992632429766345073703624402885729464525866718329521276655221643262388959109154973300855002514266219097332877823092014570604271491034589577774265663365891206607428667968241149336287432012797862802477276094510149451955150964917455331574016733662327246761965288434388709400015236523563320993469725185143860776461200395476214444371032823870993017120648981322503983010685551570640490846610500090109842046729684700592976407962618981501442572995947384913025696691861873569167324342961809740334414180542219478712215224250325506216419042904906862892563094938476759621704723783033619436152058824868616630540972848469935766406190590089049452109926566889520145721875252464610254055640004230204894183897476977722677568752844485826714308009046410858517990659710023093717791615123177019998272755058319838768778066315968632753848790906292287247399258564722915658218981063240346658740931729544759340452861941383325176382285487196261317295365654360397204646540634512535932700504833654795802775800146939954501873963610400682527235680107489971440372780184838035921051634245701774017901836242021691415219886239301905986384347845909479331531694880592232701428062870613746884798417963336132269380553078162279259268903701806522549384286751514897917682861650811313979413495081988002465566020788499953463577251487695083102976936185869722187821523035792104517020277600973269300217461736796410153629819784592960719882735780592434829529118801667288517309172050320886787664229007240500383366756648298685989098115103039196099953709244734925794212380635170598170378438122307186128113902799455887208784178076252882461954674942188593761277753196679359270255650871459795287422174809860475110555722868929665988478791988993282759547369253082078660256284097681274421687188805632955844912306288999413317927227028745630859998209812482237843048088317637000455920184969706801120974476696082053380264386142190952933472040328280721803686660658732624800554989835433871193288064716048278455622797387069132526064372425011419885942024389029407925430038182164873594478852663155820143513832168169190399227248515697250862885849719486460057411986187697247044287787075897782061692973134879663456518938310583856073031391560948878379300723072809539590386721728229306443982030406723094476229359286927111603015108569179583006901888074680391001894190532259959330616113802868894826695157470780222776274773536757373398303656874801278825421781694183639867846147442504910280038800855181785017960379122468782534287991642434344585296254311133134114981791634882958775153178383198956759849980631580543502079409067284614224860594940700548172270096810581080787441402096649967955488790040452159546313935642761026985456104682428422771859438838608230744249584133576312502488144043337739047296035741384986988851726287846157768873457615951929458416646305570144602152588271130334937844222154554886832875579195808566551392444642738036241392241583535227906030943264945465354657150901586171437901416786539060069541138065933720182533382522673106451556270732578071985552195982382364347437221361627858483967236180642110904568913397148013102602489253931628547851810982369576902636446921621666624797800819853143074632712453317588805958168856816216460648134414320321324664741649236572413893371738892475904493678474238360472691498622405838138714461394282861217106511364271811094587889585956707865311938867710313722935981468664146062308472200439097333766018786174967141828442262052860925562641327185835181974875940757511881396052739740041414381715186494747058795330354765127838401075811573358857169613220097621016318830140302337874328114334452228341493183439674756875964813101740300269078361711766758814987498905765757068599260635590555864490414269254473519941930960828109515789471292473872319493259693385792925670087334050086821444590467378932779894962637719513590724846444157056240198482665839712304090659148370083121074542533421523719414111455761364583820956258871552220369064834297930032136597089737389622480088621436588107844853066302662597034265362753166789306670927807079076606816283857829029231982030599344440552552052121855448721449357216554834360346783180291503493899163484565755971313788875889753087140911535155201548370310932654439689710989478265722684802275888794834793382835565182464571104903671324738491451355542393231670684899138958095909615331108014731217577307143206892897673141820565662278119157701783129145082613332709412383799049432411833840813412062808131184672310422870553221488708097502615000732363397369655607586648452842935041456029267775109752205127422819004405280463886885835853358785670226281399108422309108765228860216590373472650376812336599842009554924181620608464332245189061089631480855839477936465174289943446566949560511826083145645203334140244186621455411904144943348770663630510209352328756362264964981411243936452114951053735620637344394604080767582271818309803540337387225301147418598487832496162710031589089411170551377884426158304997754768391956041375627486337819332814496490615144886701036635741240966703595814956511368101733629729261713879916453127949312789029650383275632033166825996581207384632981600804138049187448319110625411128950568185880036859839936051765187320136298205696783983018146796807394028174819618445618830840599717929287423166754385042927711750958030062104913370062055273584926945542167225116514522051370804485907423098600568737401800236658525698204517799194685083521103380870953721173244697821385915015082418144733154086915315067942274014329795431364733327073451200063882609276065916388002001982265890168769584014019492274763469273925808055233524367094145143814998298958967672543631755805618539931625117829603416152046340179140653102064607976042659849577307270592209317700114345081167126729085191242364576054584145059091100582797094747528826454595924412124143057672037805757950989607317075902202784690432270457652089614546531813753692245559924311436016161700208642087236393062594518788949318071573015675888049140208602415613742370329371378896268720176273857458036978576727676250567570950613979253254228167521560179736302892194632814415499550344326498569045866162623732305744014418651060834855515634902925298632156832357227398825731024900180677911564496287118980287469496220591492705880452150966045954506202339302458895882195993608532121291486803685547761158670784380948453747475229248016732597057255939127787308010861002213556108562978823939028079340234221634680548363564717867018933101938682178293313457759134598218507562354846764614064032900517185810991231407332109003035282690325990807209395470736873283618406554914562710169761704139084452512099043382939503045246379283960316955443511361299292808115732769812936293918006101022161746047216486268646742819782293312723139222013963019737741983501547046858797342786112369456548882588242824495876742043090624478813349151340644888312254124233515095967830513803544674434533904244615552803545459341703216755223906463089292805708178505974520627930940488884763558476234681722668128670074560950804384729633586699630248905849714941652160411767364888879574788682776152538845984500435584374319119791516821383750226736717880378212353896472726884576568161475999569503952804450153414280420807860053401104002284330214885476071315346815705106906245796760571433692213147846693534477453722904545426332331253431363720049811403415712231943827127911040083719721494997508266828542073167565649214701540035285505671853870654849452840392039657219671348492084386232066892941905294455013863409372760645006403440923916217440082271935436924046460371358426895329182937621784147406091142295190443176523394518699824193844483408934468629851359986612323416252182578019883357813921546090127262418113019620591533092981884203226762017018308762155972971959398330300102395736739896084598659362660354590798264462169195529654520921573940366843676242645577360598254827110302932323212370265096940616497843667143843177579767866953234284026209523072925372268939576395291693496093151246177772535198074316551077342832873213231158219528565715822989877575710542322984833969971793486200516186706235093753117802517639785968391663732878377150190291891094324256750240949301055724481805155501308455585159452427863889145999342236455894049009449288583748195218222046078408175725560887996984283962936414432278803313742212452890580967026641481459761468806476513112315911160914367543268890688482980468125952570901375841747510548637107459540430361686080779431150326840909546220066998086995901903467503501570929963977587998684262935863529180358895790431613113598512953361687510696237823268174264364415139544197098532775452779648817929004048751969051664226377044417854163588298610553117760945398287755430063560110683281308163488133368626292717715517234078985222627410365120422334638370087866368994465371926298512813920520112666945131567617566709983439747870356893525833114626342202709029235933353667760857347534384823950097563961057173983536515171323359616807349168889325625475234878018954176537046966885473985942396574690927811806994654481220611563959218501110811625779422852325781563741584558073424979492577222101835138674339043666363280912936994979308187017220770176605206082680111443900131762571221204723065439202229575859372719883746949769587357350818288164284512971086517271524475110530729379992919156814832114337063597798575023230148942401568648584394625522181898037995010369964059152484529871331892516736039424718906481482396866190334398036615630478229757567821827860002017148401311188949828660961698005186034721491064035967175215945224457511457873937091573976517722736854654544398454204186606571729694509965712188042804268475346559234501297526997728561576422476690503548295242147812798119011266804817030163072200787116706696524341942230287662909953138367647693866862442696828222250922179910813045216011811799228834489057076135906597752087335416859876802445409724279513382085764060931559859026373391432992792866973609570904677982045179499048655363069073449976971639467496034453716268330360946634917480054957292507640677160358616054665006979559188150996955528713141706810445353634069901566325366193375142014381794016628056756845346664101626891516690429631299782309070490511733871433771688874222725768480089788302632997797170347997305404099088661391265412771329126801102430820633279261648703420952650847345860500986538197546175730336011065902731712032810374736984517450667370838216815211688540167658918205813417083352470617127609827029836876175719156443522021724942072196926278191531548484273688472336489864448151755820449346323311845670278695333218029886286514894295447623621018366099025920260160695625765163750043451758775499199159295783531622927545560037710364198750274330598692151687142451695425959142502018623465733398818351297825886876950067590662001474113314056633007037220839925814431075638631305577791525847860314005945032787613525738619736916062664745435230050331198764870998879306080070471394959772641746822194271375202468232909241275963871781729075847103594532483047081820894718509656199424625142238177140511805388013975125976465837249073104741427985938951143593240231981900053694044056951035425248661052045793291198990188637387984953582898057047987331847985335066752853729362491849843892737387888381231277253876386378037760578071328892600105866970879436088582311588639735602931871646781599822409786909803548043638043378484049657994055677666450393623807104893977210783623510127689648492491019260573112515652925741572895797639163496291579924852633577782055278071955792736430458009555112394395512408934280285228832055326886833870278123539070809393694137584386045285633740625133774114332514140120198917194560490434604021889755970015477324188220142861958565819483959734823339175708279212463626695706516318053203458392613472612836448446053824761545117995554409893507333420073031019856408242597910622142644139911169371830694816480076094062352371084398615126519835300580150718941874704715092951448805017108514255436402233305405504791940156678417933169507101298865113690752732693465138872730045192557519894692525240162404231709717745213534853985750681395909412637326224227704057602717660306300291753356755765370226303000792985766165142036081586010855425928382895197079927538007187069152186557636288680790110279683072040664090585697211759421515737232397175567485147967505034169522695054390923657858695869776160911153220320544189416865003714110491840596713750753912239025697890904505715003224020065054563687570412097352534903192238098673602875257498484026012206518182354458433281876354885610141993184083359245227277503447305586838366324176579781286399215803022025333581027829734016515490612983059512466562407916153751694115301536562241362479392704405015027364236356333709147563984115037941031607552853394368145540344177814885666697686412739811654123933206182470363199178635090739336588538388702041911944986837298287698452058805691988986572239384203224474782814800597147847666684694803154202420928150828808248539522914156074070751018135289020203253833509780230901731972586568617864973572561064536495790944753974035572039374387552381493268181231195256500477636934193796757833025210727353722862476392493721038995425746683277844971531402364979799814372914356140299718592123889901592475556475048798478828203130129492395481602756722353848277837325733890852117860156144149037409601236517286968725073966869601895404726789250142368444151393197822841583663785301378808427606669006841214120854316207730836581833344302626150170913069161721331696744653041043036496309680926883909975905821938806386831819970417311667294502949405446980814792660247092483562573481823335718666713106714748603910882005941345363611007933824180968918972709993968220614404052047791715325176125537399872098332806298949094802627318967627409319193028088467425040785416278254494175246947818192644917382284411830522720150538316791882083986342268213996135697675497999708033244263521827643068778957505607864430043509878345320555804356909282234618968425298079321815653828383693448095473049522213918061304453973032502063141280988609200419678393049076764883734155529996025464387588985083985258660800942644500428362570746729790416744187633935362759836679146437115868306237270170273621707751749624141256358607192677270627784333212879378884690149375577259155703520824169141261318034970237993325706840522401149180782712946389341158050606561530330718234592763236214648556459486500712887815527055505421089813855630104796844156901259809770302340009669078492600266000236152993367294233812728243712375046659639203032717197017627143169146274028166936460431577177274295195294434914666071253177531918297292195845626701834592287734278814726794595596903082395632496325302862604185886233752281175481387471134655166278632013965873710106830632052842183408766850891030212759601456697189506986269196924912583171300746332719524169879460855030686373183376773531017831478125311690141336560695205823337807423080617618067079386596513470990125523385689962969467362877720830609225967700944026196145300584280367719263421748261204795691447409282450790024894177946466605819086925667196198732850822952302590730348835407143386742965579837326451186366744736955182490707497978951970881992883714916219703015895538606647487851522409872733502975008380107890287409111837126877474552648457191340678148768536303196690194459981348030607559046995928500006999801941056464646094673443889833192634768786311433655826036071568780281789462255044206319026352952754253627220567223700704793385047898081925402061069426045259214422111725431530407537028051768886830583427022291599183494333268517417283106626159453121505015997681705221819854670245201646245200920049342680477203642469977745421079433791457614572226470313961234376757784071788779409878749034598521710964186843992692465673467129184622671319798223633473848868925906467308862268442551722064190513963707720856334897148334909217459758480638933159764391685332157113473560693241026182626286959134147623734636158003307577452584024449358257305703483709868496293836657880786605316457248517457264834758776214464393087325253371707301748808906062262541945345934941404227986461320136045493211963401628745931326219814621182367022291446360434599976960552919700726174712093917373486868124978867048685699061018902097626683650087365380925275522762701751613415105659594317185041249535760651734661495197021637907049320621834586641330378577765975541836804690127263493036171003892855631112576783876281369651274616698584272302205792458780736283370606265048986739121868730417468503134275027395216951226758203422382296898054993963735452498926200382945305663784400475863558746508157527867976453019284550874431723553208204830097273581291037713838922123671559077545884772026514035597903893946107732743772818072755565614847427684728776021693064479771981427396169125668463133663669074172219013385208056643395424336553685982569105463035811389564672167229337830442423099920562349375242092659873470561138681168092318515008902975699097108903302023333306362162369276994026126407466096717743112140030740984934883313032741554358391012469463670939827071558944990874707410700960597837819859520894814016372281303688221690044386197588376482724602295553674669150722873714970960988320844657584384489026922283446181357366773408450675929833689393490236322428114723462290729541398458247458141938694221161041263552754831782563642396244428652735497656053833004235485262977663078765833839392953517720997418002673138125149836066219252969309215778718418695373803830367528437633038364046800112020292847368947777450812284879762062892395582591160735286971170706562921837992967167245535970216692419418883957535172173320291142134770445694916663895414435724518938158680434699196269825876500498009450194519836927584753466223233080439707269533092389389659117897130718255769844660352732546575458282722558978378704862001502550724050019417376643072022313016364244906558105858128823015271039579769393430655021986388125044832038642777027543237104618018710394477899416467116819126260554222589768699516070051947377906159772322718827583910373754970080443383617835703694841258728978700382309064672661264050308242450063076229058692370960672041371931468180244711735517159870317624437183939025599990167585102080347792757068954739959124720246201499258466429522317655149942328049202280350699980028402207514518618469609981629070899210313646419111330456273073356684099243020530569411263402778922269906745079362840732630929918575816652216594622007949577275710816992200664124826708841395482283663360495818418448008956606794168200585997109218340032758149444224145664838491194596665140802011032551452970627886780914165404333018102126852039184341811859087310292925556625620561932054498781111891422188745943958991566793554431017275288385894525913230450699398921592276892962544555809943174835842455984122388529114463446081725498916633425966510559033756388999718206781874515251312994150568205138306224522472657475796976452860336838457808381972661789993519341045536370706422149651559454221660262036854862472035084652396388063644176229049181299433731591105603046763910947761245931718485105709161799177023231594235649866027221925441734590660970154368925371837317908228649685580262972447950120137345718130887046244732704152825617735886671264192675121583835827963170926394185079899264969677697756006312367820421229422901493644535024090923888063914286076707675346884795315573982861802315458122682916360820358967642441469564318883708181260854012105347727060829966122881113466564800615841926810868481152067815117570654486826329827950068579606341059890854092892938160929616646864503473069946054272135825422983902167995246152846571694397772932248307673432600342442533992602824315865921699003021122312261111928332046811310703792767698361203602824203094945636461592986160701893381442543881336089853758245579699091116368373886855221205377756262487528039354143270998951295698230611217129953518186814116141422032963987814798322598507456968454890170474522639867507838040111717046642128141764752320079754089665527439242161317007579366667436057599299266882621497318455307213009749213120728029206581680236421574830133113158616571757571462543803404605223939123086554290883436760791994515192356036267300822086163555896991535109431818235800579117891740507345551494040134226317891709762858206036382487373551402766735762480402995453619796269651821829455856411700254252980390811519983030461657169300541908678932043233483023784298787252332792171052256764392538590684716767136494247255062431059000311836287308855612928756985797396583646082557311359402664573902125069700913071736420689847156011883682467431142237370231615316971226437123816350831195843675746565977754144480987980314999805721914658348019375051830704077186034699433779759820868970404912597373878463508316660166276391565679852089785754737423797318475764539083879872525811133336831282840609236485416271900603148297907596671551031795030337891298333960937720577264210155001604292845371467123561903113431358628523019799857810420183670952133242877384557698826581279795801749201871964683406377466571610562806908581256184651816168163187036207006593969896354932598999553816096011135088923571377735999305346703130936044615174855330251567583117811597119904077105563367161335586445231311929792910670355385538678361655070627596461288742256877754684760353763894166673480161030972980913097566569523193191352788182705783220035750540853060491872264061398508188761405154597550887330553449896983346874811445831911049559339788581011579975731453650982685683957423652320552464948647027712980523144149184803649226755246231110063114879162511424279208358644992315697690654852702121581961330515873348002364198035391617570443223525706659787479509284728509682347100912253629218573253595025956656511395174367511502549564020804908979246901153282916483451191906074195188800069658827977869543942426633902120143251818756831427345338654089166713638567444835694335339075770409530914440357831883205971638819186572133728132452703415282208226332573661921026612498743106445244462424507029214841704967286797287583547327910676202770545034156026564121282679337809665623869954890127866690773944179073316639778321216920279181649077454221913212915064681779074918048325432168307451644257986001386486389128146380980371497072306540711930070011787449380348633926953095673233404047447457817152258224061309179928644626767808060114391808193275763536510964301308548448694075871504999939070614726673417105040865005743942427298940442828733294319117888440748821461044833288568383270822055304568433905621454806114672790938081441467172630903529016801868617292632481129654525991571644418419179358918983836867253977935771848421813807330088410614682031129182398786904615618498963946289839459885312577684726935376365847872641219597078474435972887640938812220292768317891424925965128273107877397094675411712834046566497014749467730548918851388648683623865274416517547759437108673841559162540505772340879318977618126107162932697479075013237501177681988418084535499313174412814089102240818066375750735133543163758272723491214900904679327740379369833713019853455764740462848085784983732407477153603715987140415696345656223813087300834006631699966542915795990741385022102161749058192473028168924892903448394806784433638944031893454783986226732298896788082559023296126039706636731938362290046612454856574692363232270435954082379796976544827611905449887043053115851087601483320287574104705110107894482146136610702603506480304628277864816392451894048999341865969037513379765069009038224004214384192838397960804906655439917920741910745105747868693881150912108788559766118312833846490270972914746994792669750287354268427876511654679621716066927012375837084884116258867333996832932263683036070114491496820278506308977802969221178389265089429701819532563307772189949305684918985865922152060284571610833166939649347140845185139414475779940262433271059621184572323888794031033671076254898800176616571882369471185097551355954227427203749690973012859622779356550257238378649861628859819959527737984801431995689190835824011860857160116761750498506350604458022392881623721069928800482193183996695451766615551528759296289689634698063730304163381242951891718576768721672050777364061691868966604735821708415804702729837351760411333303369997571915941641925967879201721937949519019605600858624391554545486117392356344814485660233359763125028304588879998454200094635262823705191398096619434641837986671219348052883881321968832091941676239353212475851718631205707579595535116197318578877470357592082448269603968210205283317879225312428939284916299561944268066852804224638722477848072935235162984492270029277430849091518009483032433783996642393043327270015852927913161329583291598350751517424697333621663483047757810785057165022372985951355546206714092013722535558785067460774720975089238330783274906264974949968369224792040986566009234193667395848230337485006741461398324803816751894389700014240493936021891757362188007131663201417854365470379949291176131569608895095446055161479787666979487271996382699081003533564602144559065765645649527963614284107459899325580845972963510348394893483040624940082847628495700070921382624988757605376337182713476170435504361187455563732861968100457449572250664508351385177343495574304572596565416440671533787720680027811602112084454845218642987478084928250565590689519256013421479621938005833977259641622564354225400291531315152483800802141968235205805259899887670246542145848391409910023049114091372815840209887878173071716290132937255458572163929031086249855366732115381538611362966119719164106518464330001566112329547849110461935399442185402246403737971968301242377726885617358393962866186789761806536728243249177828304978698619213691923217146971415058474412469654182277679453538645176171666602811894028614092154368202795992936953745747624909864940230632573607014457740818475688444710541224184301043392312869343090271966361404299864760539851391983971175189381947010954936014859006792408126350619133134809606993892633877964534190706303550878193027604299356766015100796848292972378156373140358703505360304622622608274500414358773132845607770116339028508799865440621011607398553842860964305881872702726995224924120642235343579035603657560890231418525803266281500258695937681919922837388780215344654292754161848809849768705557646635554466768945932984740377289643896858491037685164953467950052768012527754937725670479142822433109437818061627996449986596057086761306067837998031249052261541554800998592027948345727370371711499310482529636871304697737850120485412572925687970144974986522571246819967724671799462037867776833443019340917746078435824481598534518236582151571979523095446731456110299899728557796188316941539484585730055282178904312779053259725415380457940531691476397526957589073346239342489981409726575033606403613175481714220138067334663106232446447333960459563503857386672825886452627448359289248537744231831933870584578372538574128386262156792594572823902717092513028960572761385671183690138198815758965777427013968210966825856412726390115229336276038427271253328668322100389745459518623956842355053059366082567102022482569886815623458127014078534039935019294827814912133151842309789378844996653411926602554625582603277737336196092292050670997904914012933201535059208433904065098445495293761974636112800126360510594861394115088054247509853922053818888535703861334126993466328494547510203975163844402598470897062844158727813107083372007470044035752276593740116208694992971973717551224320024990235938135408147529390383050665034251150195047626415776379157985096255317676221570475187495024402557686455799832357634381862007563925493633169620411214754923173504119401564821533962909412106822243028846001735186725961259918808161891104522087132331451259008553451708337811638703158654741338539138470969574857672760202035926201307086810236502393916326823319755569874892603091199957540229211514703792629348062281589575280454259622635652353480263786486318033378077367670359818539335774916252553292998022878051930010548839747919644678950864377989318956490598089700181524074277022111618733848194998845589326265725973598648959476654887763148340497359327702766361380307159941764517608814323425796297554438297341314948472865173235911742053589196934490072177401983250918524555868627742628584532550983126585384693854429604973080339465847103329703064722105779689272310494338882395789312962074626676958379846111864010274308087851360022403957806650095055250584614893751045983253826196491253976743020007144269012543349242526132141365911719799849392389200079260832347019633630459274398789128273421024016862466717572228180169310478308535553269841114654706048921670504010640353900616922177519125853818469065078929330582177241065397646548577189265464538071985768503734132172070907398121351175362110246510454338765695965042508085192500137174524811391920047373553364909400149554137325310944673107014572672777012692655945762908730360243905051750599285698917281972356927174587320735070424142612412294289289431433383726004596946117111341757315594612571024902069394248442333910717285953996140793521866202659404963395292511309000213457116870428935143123255870440295378455652849567675034302747495086657910564707721746717341376189524211071840503496949884422817638122654110956792292899888635038112902027631325249551453454431204395659483190328928188824819487017141415396646237012684904315923981842596572481748741212533291804362266228363718720819664127029082449120218083104275148121363978484190490799228238159062714482486694200872938818305314147151608633982480744291246540671638460773914094266596331784101659820919326139755890191530224258650552862258107015305129575797523080091551605429045389706381107415028542408666548698804383996601112285326022355795985606388475174483343962247032899410377729091475771354613167338865328409309654328147493802310208186629296815369152747432615781479649700626382349741076841723038225824587887920682390394372361194656334194133467052093320027914438431926956654716231333872724716639066367349860993264103868189018537328697690196594614526581423375005225202141514512111366227976961835701524934162696810279265760372689554015374105809517076101695524123325064346645411041885264060605843780212822704451164714315359329164365411669566952412959510318313866053368147735262039610659656873343161810951127115578224594196205090708227499257301392073185983682043409253482648183959192889644394328305080116659167916882576861058764792753649140743616442671477621533569845128008458485897372732150290783239280424101417558617548568929261358139039769968892188028831321013695203466924078494241753891259768882800290895670928436052181557543196979383178735891094570205720777857019767055215863744183290518436931658338171788216167263118368463584801731682521395944657548691861362756207117700590107041078939140217392670068222512246283079635729398984761733264395571235555298586987509315257461940302219293776581127121463298405394145337404414665681268200338781230453597212449844063969341728089223625031612093502460599066956166227960026275879521813405883980711804372579566455198650994119875310833079760340345233591763253064216267144983852970101174468995405366952090505724551362810388163197658047755069999635047384863054254153575354292897110527746639005727578842756933587310713779196420134416023373915903276715833056260153236764664026121439261905612140727781660148947836302709133574093507400192753325564513861273602523273484466657535241985246118687840918154865957441705504374338650789321002522629140424709556953093549310642626583283344846032754224817636113206712181041888021643711693004839953316995732904437741063608926777130974673266650097485178333975460854912536989184794303275938086214130457352918562663953813149293070021135952641541253608863390642534698310117901398094309248605750876758236482533305850292184399831501567297447611201342396331851573720462687435957198618708788587259458942144438987624186406603744273270745992734220555053276536376389973339035890037384965729683550926857725665027618640809035900349042984695726482318131432603633069374440156872464445749911394444104597388490563890373653683090558759775992512845347102858177153494993576812333972313984959914555824779840799036399521326310182840184464845231215406393933963154498669865985337592638731557254839003382220815355452913773213986930839820022434519843800858501906277217856803913284524351573516032695735379894333854295084659692597156191841285008446422196126159569671251777922836397486837660470598187928641518529087461993023194758942841817243026640635574172015963472022981839973736364948976639635291530080315407412950007355364170193196884807303198041243019734786406422477620418678859221210174075370764569260918302660957823055301677774181022305902084525368335812253548350681787210499982566654874499403950800770849693437134103659435881336417778961576824690704810267512154704074115904120999988056860887867713822776525011086909981703448197183825112357355036350870578553640777680379049859332885074278356403700453819637932341277728972975931410024415497670802633674135416750380412582207548512296373082354645097346738026924412223331008174742491036866193772857969691127787755560888079384658620252201589928439441812715463211855406064231667858798858989313060493067906101165705440930308973843017978043662841526567319041753283027198971829984464759746834826480104069848573040245677410662047218988680468827484319825230094029114323705910140217004087448796647148296088749498746016429820385703050482919351204831964824021019825946129160681040834278557666465554765802719448181319629033644480233350231781415625677844247590755187610012622738978853421249971425366072384992679804657668678101706099181478022151304087601852314846696845624255943902238708552259870403303053558387693325288891483570854151838575552995117436644541442979627342680609311621793136936539054444689870739493594144561418614186683011632110476820149241829467041117012438938605330904362921861266267949820176988429745810983634585761131514430459537039944403378541481930227200302812104810479873323871219015203058089373136450105705589968904962074639923762691579827095854645967573521070992107635796813823372755005749948684030938429972533063852251804032722851355141870519606839292362920504956718534349152450812262082898919072090238356780098704037256510695039300469939358870007254876993416182475750103143149496208236177194763520558947228838778894190861804179983856072778124618605390535780522842016306925156626030916765698460102024240882036382433826501798130147876415161328482462603048288659007082916167984344597879472811425086947108540600044859675685622011632201944372412286486654797218736901322898167070885098654343114477052235214525759666255917708038222746550277569842700330812114793136387816729007831869345908247734500826844590657389436793500404828368317912966991932119086276698085225365295946350195612828958508339219626360869547542182754193869598143538604339260393061914347535753137914809274707979055279332378894944774544771956891331516484436557128254261003674458640253585256483390616144580869677932840580652583910811235504521823607119208623464143580468380473072107557662798346325656477103794456340559118458762639673663804427128874375582937950002101677152121018967468991564795254950636998113000885467437524764578668346222756388204576836586546370096382370724933350128673857086631975513963080778762117245583107165791363349950436966451426955719086556319164539399770110316465573447363422439064802807356308994003368272115354201352605218497054238847434529541966424997495514061290745435730896645053622430964024830797342825633636556724643880552790024509355410910675474427481711733376813784926520744188222491536425812138479660593892976269169545243950445016953710066075897767672734311419321482027223105328968539605179827251012470937337237973261957364081691636933847490872577957367753863717058068192830111873141630826961986432398651236948356384710116417652496894109026654143747651025819141161022201136635140793649500441428497281606501003403042636254298179280526866851519694114428887741420448504656359091152935027974851889723807235720053025497691911364946220576117561360460245679937959605366319746795741200114984573188855195954517148474465805125903648161530459410238558728038661616288125146331701370366192537368715689214795187875763161746426362417325315935701616569631264053877839428781570920365539889976809468365784681337571293993713462303176902416827170616272784469833237837373087845101120697697152492149728653286518329961636029342417291340131789839515438305816132542367464907456724186892696450627614844623037686508346376962706591209311722138244376303991419169110385165370771440068290263235674412079917984957684825651015521927694047141221467165463979694243031925355671035747821418396948052711563265763268075143100373289370402107060790933907215662091839551089838746037720571074526257527922020199645746006330442206029877751365213151181538079772632137070928904697788446888159936611859320711216505445294676792629332575396091967146419507986453273772647198090756715849596065589581370144817727535627538700888884854003562339325156442257499517330658021510917962093188005949801270755694160882733928221353748563228095788898813785665524881732327150765796601350228220585678249464520186143211613777997630353575183514881276727962753428348618162145478615024996663695535231060563089371507098616311174699522811845256976959297443561190634945292764703804587632043081916344022340591179657919300482541672765341142296957917042250964163631398580401484007272753161461938457322711379790751449041371199357423265424409996715465840739438788679785874618017859997975239624293423394555024541281048448792192585808801628287542062017004027938988434174294078268872870087878539537483019900762975726738201290153160191235711622358773606438221060256307361778373274258105076781340214155772295517865264466014959369838249893817720369006539074889687976664371807845025789421314333635722283363174659253612345305630903536689928657358539331036419955966814185446531276112771658043372450578512004516225386000306703444127325779517133327616862430940373399583509975602116220623259662957076663563879077790013851351808777807229587893982848904046855377331815969931055437722186282848207863268271072211436547925028459806665786117764847826643699643615872076084170780988462636526774826147525789945129234112252655668537933294583758016733829948575316333704985703841670569169097735818119306194874395642656055847627629942290457154872321043545365457609238076245434752771384908114624404668049575344854794986779653009065725036721494336262404411441227916891864245126194829858502153124538868496508967199091498291676289607113112094704493908143255684363126309741830512839999655009118546711350616912636492302547276271847776571319901036015977847552246169286739843729311234511503005192383897672839110955827332528987085673499938683317315036254795414608748022318203042104519989353849823967503491759615446906786332613711592854115864726615710923268546730664808508069385445610938119410833368955292949126330921598371432499731986130886578134081518849367709097436569881271560569764436385269668226302937123014926688115207378098167718479630468492239401061158291799047131320898269715634778979467067594179142468097603011488387152438192026279395277652962256335932542549804873761096568782760186462034042088694125707439022570250657928614844144544758855720467684324015826616340511181807173923806243124675870410273069457094912556410531568969101846094714681266721893064706679107287781294174319099871528683281159487178421227615677505571672959709255694759388740564191703804145788047676370365550038737397560099467470111483726627581584168056727289788581692240786784261868001499170934799742987238065510204868488927977428101944690952347045898728062992337400177901556549737850417048648827698754797626236602767560222626477097378005482092325853522145481947249523895853830865232608553335218252737425421051786377512821382187843442644035603653529816259935993958063119029929765293472682371451620959320670339538518782498831759581923672248714614661209896383295577681805361672714035786683225656192073031273288525328283120702227179767094724405847051084434407563343067451098680964456500318075752622004543097086850039074203070685853806388245319133119961442607131745096801070128764109206770614499700655579878875963209376876418888030049912451350961595139021649981433623313313318373199170034471655534646390038043845057589951220623384371348266987148166853639965829268053494380669210635608709425236973294334912730894786461217615532670342392499395257872169461844280533644601075111163581038969699310055976540714566141584793059183686127506870360934710727181174772543686760148309844291046917603660933054004911773745188547747346247119189036542525845779675257262686015207795995680169910681568263728498276841754227098042490544044134830719078280952065404882094980887418704743811580949154059588808573551621013935369458690767764139459992515538780762552755571741386979404062384245364066002757433937006432815585235155801034266900615799644626544129450863580393036452801565149946100019420440891775602709833159332264695720069956400170233037704827735118388712902101936774268216612808379636476112573276544700702370179516626587274615178994274980663611342253421636093303376344068058899824920748267163470851935761718813064823880683531870093032260418960466747314969795806042807917234852942018950429445233684832077748527844272670685430600632899635106277824072539482625142599248739445447152483108210578209496225674131721431693217686026223841717224019216015438995624856469818634998116486277532950258378992238237731286487653497515769864671044532476731354511197810876721458955266115802073973344374325596314803112372441868742105922947525602170468542930491569908090445219028952667714709988094500438120281933455556840473178500141949349759440628412800550067350798021350411111953412436596510934132067407342895791098665612869452152742727035256865780967686333120178799919405823533815210197857780089255139925657366141657965291911401507119730875082174041037035343096718294876525663365840321464649683021243118291811423994314595516539332691642340880074978003581081173352283958463147770252771861884946414374262960119540830867534957645401215646585447246093934252312785455375843493741343659283359558550552194359908602596652016541108645261537944716554691808672017577163448595107427771370735602346619642508323525813546254462505696048676818519701779236754563825640806558615150768230346458489941752193276354512802775046405544193458983031722204820890215474092268942807557023667545151310864274861555867911475938968577625938292903626406539607066838323354502281967564829640374798778248108106330733207402820671403997582289988401251244755349704623264063060458225008459462450759460256657920359896318977061130475593649783324857956908396474184621057407489088594918126517875703680253452302563314087210436642366599209361970377600599455567508044267932741415828933217997747754595408601302890898051050682583631849897375850189802700799349413405305464196787882801889293833924232304296508691256982457293939695696524868670443245186754266510025620441219565721217244573218483408504245841981009899206298577200136577027269526451947669970212249542895167577281111355531299758419220912135263023234033197658612255173063191628624280106387970547934521778530795937455036911974395123128949549570247962031986255690045653191455966209623430224485352968205165187691043698867817440457184821168164308270376510096694238003147962494614358450114046485793741450224988446411844336322521573052648940468349157539880073985407290944106153706710531723639186093530734171706491865338703981926984798471362190277447060379937692772617406642246665896926390491515409486824708239691203262875714589287660641595110130702816210328431521232403525950491637788902011464111466511535357370118259714814168386221931382803905453498100152862426196736677085101182588302191146936708425640387075875042513052002893026731945426796918930631706463416557686082219594356402181320710660520794640639082564528758155903752074568695663831298475708153477423054112175274765363875909769747954916653164933072526416522920294066137920913363686417130674826624702180608665614191054079212498138354541466695990811949499291429473311802630675908123580733492984967837281345277371751722576985962307647858804933260438931847191367861897525030076884526587313542634439902431665169156798609021263631508649365840085397327394483648423571617635096186142121485974301427300226776264119744125262393354331086427350638786446012313614162078395148400550935810699652434498237161318487020179610253628764706809205957712157783887060031991575103949243483523707740895274594329426370039248661411214450534180151518954350864773875155347397185691206020135987782267569353652807200013826601932661089901279492101828430226478308476545297139065718739246612548729028297169871261317629327389893035846096167874964420288493387904699913644390086035623289555337135555466759879553001615541605431630576983838180148490613387616407635453289561690521959081073265392094095449957208232164427385520507607238105142077394636962099363221510260328074061619625538781059141068446125539423732793866434630205556250540285608225786567562052368292864484170758557407628594663736353624925277960001312780434212401470022735116172233947025128610544969970262981613495909272549649974976086981825178465632881621314885340730617445637623298567135811955171750418181512729941222869618337289539238545695773236775745735204453143417779307977661579103705016876024753483052640465745567576310533095612721961784929858723573066793098898097901237583107593798723831187011563477089129895530871436262674199202807584785775768923355763357884045674106533984235443496224014541462137315681963729246651915140631497961160069577432255694581042741523504383375089804853221138571577891292008938549926550820548881094798152743119535950184884489211038866643099850316139263131224597890869089819483280251392208647088155129239930408695267861839508181664221395713751529352847999964907457768960488176500499169293152287708460760576069073249874193891632041504918279199348679558158648083159871317980103197846008971559211654068657949944957993009226850811507458642635604518030479797561042159179015705733950763970972009815424028303200631334731728756892000759724568872239728383358568303013920967657574620285219541869974437278162998473093370098903867541671792552542743097474491066139482641136798216702008365769383591671283860043073465629801905291944956127109154912506677352312507193708116373891830858540931536231294846050492585159655300910883174075381683280300196868881960172006558024616863623957703683442698020810402611393271332101966617941807765053775626852390913886576265313564673823736709151391753321326908577051637649115328119413319557685080280524804718217501357076852068198590951770498978397051095323266501410512088836491777973904840886415980520662107113764198062563658868172342477703889302320038456612647584556061698586767233805589034761171818053918400154212247735718537869863312792146563450919479833831487512475446508981934138339549850635777134920313541549728938822394536382348670133121307763117497811070454607540141429437523702213426389064487030360886831690520186389572119895846563383041451004674321900349353304801235392457979522538170851564474537896148003713581763705537961715053059203476265446769696735971761138827573524074093530884824604458224262404019089876386968218397263412209112793387072516584891323566814222870590145183122336674770621842734588427280753290163417766229503584708916345807875587819557218308842061016869456081313988611504157152606153476705774462856935891299876726151449295115558797456175472879496470763508727640533130899607078299103039827511417926760793557281573203833605383723272236862669390888534721203656523285726847472888098249167686520030426827341739677663026877455150682262670378524794816289613209202101626651030088441081450218942583525671158760618326644667545024163670352861932014527605679691759038989900298455117412783216173646287797184092865789608259598879204088272607993166284482221797196229592004804789194500480070955283881973795591892748258957842886798517756378423865979814628589205205907181779958402183578468946309766557004984103428710890293225954856084599623073135505302457397462342488161512950062164520866677404287605214560015627995169055903733971323600684478105189487610416728464113253068372771948685231228554025549437062002471906407334815113010343735451787709767578965581182124490331885585756982869158705498898967368549073791978695513587699166385666774350362041617764157670411690385089300330493803364217097062276652296175506544221438910035017207996777442228431081014298462779002018852316573824674210503970715950643538639231403919069200411128531136953964533658036304388238026868985703832217637968137389471626272244353967010697877816937468645212676493387852687993835118605665412580969456546166592543139569576269469880260431066463549246480965533149343437064489364886675224515724298418315615157461955739326061413522058235465250996148399088804424922010514194587743917104603337072605113285750920073959459999228300526728946462284702559184117223816772024917163460822531022098961801322335566498739062968489499031221979718180110126122664231883460531620435508211479433231356464498710378325933256089726189627222725741445143531509857883424895547514205943437591331260547077746650320139689926654694122391814568857190886444643568100860835079579297273598987609480461265655835138519654075241437418630062407121717269007596867015531933646639963433259664695677674828486015975644201436557084881532959003983153003173329578038659499522739330652206588939426707204146169892972481523865816122035137369688013646105990767487585680330608135604915192093847586787771831987006338201207912373727108829816891873090529720289539601741808708858156392527511824443024124140800095375675243069255390740351842100171073418131330085344838095365035348679994632661334093639438836138991782048638240293399141746667527658231020294893994887034715327573894745239296555217762769703239699294523640327802449205285960587257699502070948866819283944197731404989258202221330960098091543461119121901514037811052622077042431130708480155521297730125756185665874741993123259444580256960765151995655266405323106730381524525936128179945022188565843091643032675741221661042750752637692398639454599158316963489159783897581473666350888146291789458207656667652543556866146608789455341346847943705171697628163419274081844231637275815066220778146188080712723381379228910155696751131330921219345849371202400892805132884227443633295601683508468863873796650705655601822170445997583165608585465943380595212288563367651373865018729042193488375962620818208852455146383118122648673415343793937097569627576072921675218601567824008529103763667950671960263322319920252993774794354141784326693350207105479290427784304111496026793047969114268155371788482404853043830647505060950730901944826275976730052576899885919491852095454587842655330799955074060934762772389013854824589897725991705978071851887524002375360741671419556438087495630918956015623982673159812470698126250314532524871296816474581982703598743001351727193015584862199184288126048099633323738072884372620910274176438900208882336280144241022930272998460561420293051322646395077054246164133530217702094167025670004470195947141237384154943028452921496832369954358124649786998595125193314667579902666365333610837170795256674697993625570716194069887535611370433645185524357384504781167320013622974947440455980382127994120194784847935584475188025945002513610179606965544931641552876323850377930992756329562245109237806458679532965991962615205158143460005560623174591449340749269624197014475208836854241762676774952867698784474967190907588097456806286616490528214711149958273925168449261376622404926501098332243009959755093448737758732091011916511889067427985556896397918736823568539221455330980808010603471509032705748459857853610215871762183593529176499829179653293093541479882943215698948385402970993720607913613531443523655984018405170476693265008525381497790452662960610179196093848362862974164917850170830705920810328649451138855646577249317006536690886211558662616790719661559506185730749896370273594200327937890175591972552159959270311460485410947382090434944151311076195829456040294352958857799834559819215933828743456340513949447652541705197372366272211266860204903390871669865884088636269979804448054895408239850442881876047475336559348617436024314320975277247658852107050807792230061493335134590167243251759455719331616630967430000467460101229487675179973241339572532450141267017461025023942079143942780705684091893450334149837930121345725958952073846152386810160836879634690281830681336221840132466698349911953860635401937269769953357432528496637586600786070205798551872142864498990418857661456533482762134323636195306139285949467223157061668517217318227813584827171371953001870316698574218684629372714739676306940248093174907615119835035990406615548294707934177818535512505795852762166309457846093239907337690918385867057981133568313963261328806448948885787513025001600466777026542878739008117106630489570294816995122866091216777847757396562860449348011065735238033437452379853177845021702697359405224280611137648796094144837869179142719956631777962903691398370093762314951788562571700318241008580509981777571931921084755653268694734499147866955818355562763607638676676622408314200355452721443350666850377083913217910038990686255180475470680548403533318677114926486033034205025054270865137775225386538677587416066485094526723681898429469198493203067238947057542303635366732984472254639346351049497807965744604154995804192309726805482324436137333985127790133491749340143597713455271429661343250601977645851312571959887936842701330227733597402305574326250802089447860142616146945190224507605174995058473580820755316765790059146032655962340440575089916563249888582803934888761859132553052593218209661956134306255705058959183327231370765789294543986128677999243283002137028882664411401115661783215790265198282327167637242651354285782562388179097391611953536212438094189243474857538940024235986637258335441115990131692827253422796638029997725670299569880923470159788499243733888122192063878185929513342542180687861148416419136794765764384255714906810742866495410435098804115489085439797079592974296271792075452154542001079010699229531583215443340803777405717527016831857138963017391296856453028565279701326543681865522158976168285870753993025112187642264941344925187275739594694030803861535177878985546068000689425123637968134222774312556070778849138539789668162459416275309670532417294562540693547623083244832065698261984100583563623987059591041836472802267323222298335842179003458516012063616575797031100977598937578818065725425189358805838183391457186490759207463254677874119658758559461765281131652482255311714955923625273280235183478111181115469167072770725082052519443437285595187722937469802058166494683387018968575001133710804504233555722020379641253949604896975953316640637990492710111756634754672277313489344427049914673953111640964106238991442565616094466388204750926420689112494183385322912155698347687206696500173853693388108606965965983672937769462133181473768145871254280665224685491089739347667533643192380707901323298210041629704715828457890989417509512673232293439159546163858501313419487273252942231241596646575925883625885679743043769987192673011616768140749573245035328319453752618090297672893457146652089239188476156866129083898250460634228909338223173913443447356934873295840601038502295044568487282185368614401993925140105243110496276021447857663134224596457926250708214567190916482622480673966020004510912570889497244384702108837730471184334101374690088453227750738600515566609525788559825195871732854298061067894993867177845796917237241566749847512839543765250229438674439501972183857485455853974517610805797585813869912673291511919408956552901661827398251017592922959270332352267348128785599627027410300320751342617354688569646740134678775801647741930562926216987347427085786731202303949070536722350264847926813867731480831235556580092614771667663659605689943178881287974361361657990640319609979814897340737863203073585550595536978870224580815494775073239658582772871968093545528565549148079269158208583706981654517231490947511775692304671062532919936851079225405882914097868299495310072160937359191999817269622063966024835112306877837477164100112083757729190752594394251504453506904529280075964163171390084755702234504335945061240837386799527389675812165884693866507428229906467814356191937659986563176521939676005373318053300702084390179770391919164568169441611838891538505059424942967863535681952455977220040440646329270871206378705648534900519418847965054054395768536061950202756660007067871269337259804280749508740482321174718867004736883420225335763828147764195596721047484992770003654278453241688719209491791448652590789678738207719040316477781181544691413647916263598745657607407971506246267584917693530886754003006779257623417061364378328435120283131999916505598515459502913596525097034546438259385809869879816582931488838878434240267691617493153994972966724148040360667110996114097240338610832320072147724046175119627611148360415212059223122789012139600853637716198925764662907231952004250961139744955421494858609908421987648686128810139313151483236383792337138501015189776104384731288444788591658733679104962035929888943248451517932103790386428341827500535859278330344925287140291123846980030829868791827992165118563523191675456721948798564235483372239403664589147905142282331817716402202348104046993164884644157159668086680126512628048839206313973740529357106189323401085170199106211154677707393235646194856462395517909189374045361073137245011700460202781456922458966766141891203506378594566423818010759242115677924516411073321289387486878067122903549344646001441502374139042683628896454620633714205768440850130742705367919713789888955921441113312404426074226326066947520244325740134515910289885535059755892249951561408907695544801170925532041120756159786764138304493281974291101126828654123371346271253838068759143807803006932498941484867359390613918024389814532545904399086753512122921255732152943658247345033189632660744108378849277974210790223458154144415172652129790642693116137791852009794976694577217787040683977850930637926840738959958951688473129694290551451193232042412285563962766308396689210896481948259449545064597592487489674576629123166996078787853372461816030340544045356058648690113144561513144158623330244279269154723004021515506816804065335335586768827284290401829524271674509911669554361130668794203823186582428306748327561868255450706567874784973681227850444606061206555761983041108102229667787104668743179076264682249378014475339193806804775296406705520220949821797600530398885150336822865580002177858755751363001569001408952948343044374391826987695059475211223632997245021793060117965525802276816698228961498919770468770280337000695403143435674047013791180280462407052621760864804747945274710138892947283111772795552655053081438635087330251339160603027035455672369602417752288923117748165294110055095497901467487081509846893402118105116460378650026804151646459620450922390025129455410422780777265738786601803088865661645695117141871555449433463793356041997950180774451751570321946104595802293796409348772475605035250767789204447501363487034175178747917772310868477263529148469591591908357914446585526895581294207288065832050171076678751967342046804223493130340344444356792881699222239512504507385807234924618642280076664321611802080170075975620193436119716693826535243047718513850728444325742109241464991082114232448006990377261168684540186771128647989406467688220931284383615359661531232937061191640891437309370353315224390981831299446351296096292350078783214213698306366748005170955452829812059320193571889609406682352905920750257444100460039330456243328423332865170726882597516683636714317297957694097669716251769684388265563086625674930182661957036027599103998291680613054335189600630894974586706313226983281494414439454834541474180435516570429259713731834136902245096579495619916692716202419368127016102143023833276606578919169432389138492856144511983218812764378394061542817190255497483482402255404740163388012401578922517018428858714419142977332759075945871116666365282665095323063699498617455430642116967100088947793354286285926306909936242447930995844591574521071083090998114087933216401288457088218274639765746978554434371462059761097038244524753561523624561025622176746186234321215882934633684453153141027390080104806601998438419444385756122467061472510655606255212867058012888573650250345890419499746446795117841868046793107098677042922024988551788663959892672141230408529399290353629406375029820406886024746485463151461232232740224307685065431799566426939464251374567892212321931578466293369434761734393198241424715533206986103757752906092654944722713696180048584360296344834742189540034811416301016144501001790128021150728093558430980797077213991581933967587017922401155589025441764889983029284763402510542187096505342373793703349211617478740863604023896858930928055563721156919983764070619663327647920298109186949517466200292793534366223239875663985838804300647005861364280510894827991788551641365317369376322689682285647426545736033790018463140879782375876458306308144005784209844457739461901438175425783087816215420718518813142004530882880871663107967551888829235921983974753294693962114539962856747873572622007730624351191965682734328145948426159176577735581060961816431282899125823105860421048639629987298762322806662492625030887279396435358023103397185147022046389707381121864327413561617774021834824687787370577987445884553177260795206515048972761978175434269156187664623637199334879203935578837668459081073655871944168966193248562654833553328177017158363875132587417312358539869685666171671552477143784792197752222455494557675557051907277757640998595563585799007969311896822242555353287538089589274828551402102309386943416610783185432015870222460277167600381393277582833159407441322296212785069709641295975515073936172798227963457381025155911451959610076408179985993266111954422792324936082490827968985223395334900365312573632369793265060820385562850429786273603469999858979127718253202828805286330231373304347124381882158828289930264750079856883359753940496349734841641623642085778743093998734791757255842728284693967642661478165729434767239333168693162049198888879138485253669343523660575943461963161747990829681453968352308435889965326722905142107558959923929889928667603466717495327484900721509138921472920160273401377509791186775779347567079394656513763817430627153738265342300475249739975988580626849985857782362877009096778635177906201645743361129992190297713192807296464074595896651640402624286690293036425288246013858018439549200818910371610786545827896282923589683058846513012992048296568734274374466980057454815829781581057324599208958532110249890793879192684615193332835569017873277131018929865905106627604276354392805793557831226295962740586940310099772485394262294311888432107001978091162189335084566931186315724742962748592359035647316916283586136100763993196126008127736297498780769626605538637712772226040986846170423201175070173087119250656411962800097846548793158068012435334219821002228694835967361859172086287299867257150878911153825894568611558716327502300400983048092721783794017626074165376808451471107804890336891421795296367356414973441474186402239269521807892099032364919258708012229451759786290452115406595881283054659434912393312706822490821878799351685614754057980330752247090926272452039634151074947089916828140652390991070476594073088284280404276388983978661527352574835346968110239315469172169302851450378837208783098316325766475033761473728146734948005457096487073235510900308638835993597693399976111851525843240977520895959793798853919905643071826146781671956582787658251277941671016065235858158440404862070332524844490429390171461150787304321128890326572609286020165669764375831441958406776346905244257336409145950643119059660413903980605970123411483734917048733495368409644351293176598727808441274680191155927242259771219761755673390911012111892646634497496998974956628228414826910383640018754763884452169635328224471570751903110928294776661894411083453397340511070107794289372570862392660770137455447714970601047494462971556590542290548284951510752841512715857903414892861484811947723337607164107608679627689879505709610563361297413947342054738538208134370669386936665539492727581400965017999112000392778338404226802058824905579705702087720368122206417586918524348833465083224233365256452818018562354452038794455921570645729808471333140482709754085256922741682111393220213258623362645236497214775931995000194271693724021200424246557335999606358982582605500503471734191720662879615248828104771606078528108096973271486693390504049299370199622951222417816050206481972403200551369182047639425244105607981266060170297943449213278959625061573527261242606669206725575144954724852537803448400939883017536248877404026556747827990224666705167284777255608166792634407419528539939532474132574380004975037536618701843021685470202753342059068840511751023039379417337346079436452798956173921708959052544064844663094687275660425022915890652821723917567182682944881953702657053408943248791614845291292159976198035060798600349132970207626511807555113586231953177214850938283947420411926311856411011844028843522512419318661420747270065887605021438670023303632790979778687099389710480062138247352248665422362265457637549752188129516392717715829246746012811440052084986091278451167644597357901644660463574976841131457273711462755062198658120902292383487788861577439819067842564764248342418396128433425231776901143248888702388585065089688033100849036975392672958259521734314291182765097549106664890728492411475393977328410702181696614992279232627689181978192648008083055004703122420981312991030090203547297519334374167237253987518151286849049294750092956572820858941799345697476491513780235814340756968651906132887420300740758366087100821977746765215028010052487319836480560618325895559030811710238325858551188366477126110236050960785689540043563459456542322812740513449896857853400078600193992073134771531880527857493342697686056636535620809771765314950383632969789790652153795801157544415258058588572112873179420181492626183520655347343571879474435368756286626363736039064662912392429632049783821437524557007661624690479585819908412521954935510833597164345642162834275720567087532797975272157667252298494610768796534381829104802883471428520607633788186920121121287859850546194602501966618479361328989838590850019451111427505700687714933310234739829948165118254945456882013695160669318829757669111944952830386455058961922627033771755504890648639601170157825110676353555284563408211510850458633513819877441870049714399126419612639379604291239216779041890297911350753590652377515242497727988856075485831183978525435912619879012470753685211511163849874890029265532946360423604656329229342912969340343630378292598333154946192045724782259068934169794556271668524711050079065950149704150140179982564223366636043755425370006677764080832437310391728946780738265042359784526784606627033977279803011108699412138452939276170891067210871551004142551054850826856818361710726166934346763756817337385795394408990373724927577474842198453225044818119928074094965088519392023353354289236008420712642274533217556874787615210453752397167832419820065410507774170118933348620599226420664978405311811425946196768737456994706149321953913478948805625891225883752530856061932410207355273909818478546323365527664038124429952903655142635833048905432652554534716499889379664083383270425457474241286382423433987965336603715161740343106155101210828884298667817322859944079763676139721375508405169925631877953165689175789053476577323693732212252462740503580078413136812654801095912174718257331256642152020085012040582029093206336826521170390418899879731712171071986267649600622789168102846385470965794405408376757156354425952542169025563066067692859374660703831722392684147408928101497025801948699173478663125884380919183014413533985162044491752860758392876103834013639221813635115399055515716570812701425422282603525476606019894860231817645741821381981400988355333821122204133860594437849478044777922202239855649550879627472224738005360576629309018069179435816826366091952707921799265896318738442137119195430387473594748192029754785028568967703127583821190689974637680804826424475335738201515100698806998161669172287324272669799771659942898123217900609617494918252231664720955513821735718453706810182566646906426547530399127159809447491821589715197462579054559149551447034853663633241650745312490276984247351402248201134792706591714393936543630254248707216291576829525607430317355147143284405115054097220666882543462821869074936011674955897933440080800333093828550052660834106654531950173906240032836425735502215162913814967082121015317570783856252332952864685379622920953124449938219151374329417757865503728741222617811522182621854770137440977503809676965585108340621118723837571103087520192053062137116503081023673638005836753941372386209676734929070492637997360406446574019997422561399401388893371623344794521039235694731643276042434542047904095382225558843414829180923233044300189814281211381556259412797243673511744457216128154419404187653597731883730437761960633524459604762706214904030259637833629501557332713313885293024250385621213147706283149190542243355093559587714998700814014322446395961322760922426949706965891288787347104205516648024980698617464706580150678217646253997471186735083573857970680072503713676916518821455613725984157750269080400013423206620735827499904281309888812492949795800435988036482291142084739370173208615412976083156608953435743397810902206039136155229743727587228948150680703880347421955085591683658232900920766555269064409272343167000691233970910079398216234458825021124199816755606853307389171209428099520794112000292970110577207192867234699846263037510642258040828257464738904405400437464968836555216258700275606330734885674105783937885492692052000656782625393554150143701854993811373879518798999705849820309574748420976749143567647086019837768282932020037017306804396995255315572360860580370281440804939228758400077244299488580706573436636791318857739775845769398344113047751683298216297985802804870511879621623412099956223193140058280954090308877010824407112581111057556581400643500777648357996636848946785943807879690784267517850510471289389575682282764092172866303266433879745422638725561348121731116734710424099403573050910326413638541345607724376848759661742707174893939703906472649255196620330047280613157988055314637545800473055520378217005315056347313062345015937086609232730818245195719383258120193451723195317082844397614826270748843464573911430535443257766992288261212440106472543987784704571723548436539416734402267295883540882369930897908428520898533680461003137517667368657446519761196145923559978585246635311488603601348918247602551205323125740886209337924495363768608603783891945916061081467818099735470957408557814677606665809324816477418508228705087783200921028401654031088910152428735834022298184298170912762606482979133365170963394414635001222740815028091611859978097122026873720573900682099472763837750200969318467659657582044416749569603865023545436100821065551742727538615785424584652580489247824565317377639098705034177258434454077523328015346353432585582185002138943024130739097957220079121065573411031332924608856845165407252822600039680196114498321063854249643736623707682686482295694857593712778355372186731008136422221514922896531603583497623975471303179025319483978299648259524147850477608157975000016572957338970018299189174614919754311984344869151358455914879579867852569574439355764067088240719749848937050536759665598546560352677409949344666929290786114616008258201886038366825494831974247791953968746980001430780863445469488736308495445856358827727047112653988176507980483605393025571225789822474879925013489773102321530111376437742412995095717586165299285686571514208764712060142683280098078049736818856335888291303787950229165230298974731256996902364670823660606796699132826912615093150150456174207499965877762803093545565044763729254372268798797964247039517439967756160815376365696711071221721972549135270210723622963530032216547767346152227816176934782466295256118755542952154756516744362387346714537272903345192278420667928675905685098850431174322126363780616704317187499021083570310133357742842554875002865497318277444403141960476727359109042008689289906841610567356087695423326017390268905598749661467759346511761205222070312750220347159190387179354187714963430780834361559216428935672552887630639591440366961667969695298670697436370175067295737273836467686566494373508208382881821852115181688498344996554041710497383719814888957366297153766301328190121470697321224206582496706008290863194346322676084189736642931155463347914990884086178503511414156873261931834686193594972870738142452352629684537748825953583715281111238144524202372982121557119403949764823459607400691955661029783156811346319872956010341261507135854293717986844464372601684304031092907719719295432437251971113149160381516743411196446631677001219304669470635129044425002108222362767046560516627337705250852472194774671134638948957865672713955748145993036006925292532640491506631453150441789080067951918166273311427985694141749481235987692402377577388986076926516145914298048138261652508315584651340433378420963484441630785445835556823265395690366975731649163505554074471880214576702558567326638103199825909296429560492369926533402742532213349420482844708498427506381193055525999895870076777697854290020944309805821581480080363195495709448582505682002953315538501765437084949170339061356860160692007724938645725949410934422878076690178538141236050485281073642805135409487404838823112559119383082552158688584936020686184206820496818985184517047125591924206008406884656148619474088370829012552658618728851965587328738471710606413439983106164786245745501460276823152705766194322904828925806516019360563736463773277566706825219664243847335304982875429545993794509474898686362955537754359130354791052531574152282052827046075776621983897624687024941629253447972727708436831458828271587691610311340539240845448256840206026666565673916849141591688505575211008899038783375281668786057631021834795521202394485044660712699139715983963056756566791393091687860377799105584782178196703305708729242359848839262244235948506361559186769135802285490130596903757839128425040982040525138738202546544027381989129786407979717200715483800139637504411909967989149944225963405281220448526728354204454800739836070975969722554886363939674944973485495733694606403795652974139926273077276637659897096068714037386130195853483920872826395592775373100621423393239142795452109132658800937242582234250409106429509871851191757215832543746994405690873352033204314220253604697281050796700977692413417605591033158067780404222564318241065581768272216703180455641912923055876458168254821140388391143506668019470799489776192235415346860202298435568112129142999099195512948092974193749452705160165764497786751520723447583057405096752281509750611528534334835324342066099609269663909837063928861653792142631209155299525925196047156159694905737521628956349374235769824995787749675628553113580929138671943170465429724894507095553918231765086016001711732165054785439892767960437393700709306736802561484859144948551971671238903151475494323235172913910136430866354145032650253587245956847229642326187675464486109283395590242656669939759958586163712207331682281424225433193408238474775048675651982606817649793745612289047786687631362569934111352133166867028026269422175773750757914631845013614638086045358162101545534822171570777768913907158924199433505352021406311827623420229449609753182773605375402189692700095141527627518890619489077510914010508431533290439200826124807394212852856723841760994554831810559222926130040852974497496246024926164566412148501404442463863271832945974001397872387331425953150315344817234723565010022791329210523182187599714724537848384006239596896342191382550204571770536192915656864114045350788370859379418812592306854606954022106618617081687292378239671469615283054465898266442488574342493072979229358767979695367657822843885587418618631228389514863691876548090357350104562849502737546883872473205763045041067034753264933759798273036870340625641150183107193287502742613542658272895994517958509291148453921397540280006028738138777753166082189080953926183152266767826629796725867286899760965858974684834649114645569229866088202863119381417103555779940672639883212130706298869002075436721730541727656607204178484790252338093676604813197554529041815443929046146937641858948946494118952341424146502110961213418556747485677767093904287526691785731798289208119359698529158233567710465608824286524864801833060555308906636042618688390875470525650548472570349495320508518179290400308070335863161912477179391719447223470388156627954863025785265578859251591978563326197956963985996693940837093815682095217813568002570780760442560470840149149219829665494264272047119447679938004220458815359673496969056971155042745950597331340827410921702792021787148344894803467237719502649586790052316848530529137704891275383709880793967718547655244160005044571945794367888711187293838216403202011221002935229370258021248471435540818239152764524140804499757720696740231215071901225442383621305845945339929469273890120292060276837746014402871926895153531917590336892201990307699607265510447272816793572741804811964093768872420318615572890178833685542562939881985782894904191408553135386816711180796754943777919990035034131763885651449041515858079856461974084199310297067007206499213754752037949367142234141994574810633746234852957768006086780286481852137442501967833766170891280551236257335037315961041058724253663943117688732354718348148684311549227909967739788965535677935879495594941292765092236536263424214753394684666844813916577911390435193563301025269576907792853308237437573085123087013386149005364670869829586290872029042179336373966049293127426572404329639960813069771663670674908393687774890425648981475132066339991314033601758894122773249800684306270215131222111832360236888794168557017664069852561847004641230670627031353684584825055836736959966454361238210404076564381847476979121909778845561362774241925587823930320732099651214955468865974026706159826576080624554545497307000438061595722916394146853408001216151638118298168878748328004913080444435253571506606190767636985722705525692248301784052141098463278251915540226978093602367324002713811898087349037898434303992843817128189613051765373000340673389509016107241445002742025894902302215886231945493582666355225926703300144467883682029695351634279632466805141190837903829462887335168002075853406341357363976270138929449417906597869423407428383922488555167984591993212015291587764855799971673920559468184730133889445329244938298336785721268674759829260492732853006802743859388737663981152718800935773791962746338209693109470154608578735292910294814839052441266350259229716342334101130810680520054908498057849706219555577539526037685178611936523519296905320794338909057425297046502065756677025262783788246091650947288683809676069621071128528828773464912181367846535095632477816453754371838399022155931900732962010707960444219577034841443724161119439068509940364106626035370946717498710152865560651417847097465004878419904809507563237112878290320425559603671432379941359591822626076061356907729752047989405144216373000583563472114483372582270425055274782598961504425761872215900331716748928082420892646218627156737711446985554599325807044164377180325803003171411029938979923038244472561614864963757380947451378025691292640628195058460334354589975052398334900241241925678428784720262228340569442572691308935809804890725733196516220860376024168696834810730781289553637534758936619765163444712564392696315137416774793942051482631372432617455656367166134883570261612291769594681566073815966745205444001686762846152305315019788360855034900939746208607787141970280584496825025587596670195533784803925667105443464645361730898040359303823134677125302397673017776411418916170767173957974566734229765604654147105686950871190808098293172393474713869767446589115940374684920116181765200552364010270094390932905798133855185796457405085290415332574823222591467963020512389290949361740061554126438207093370265182997989653613072408065113899071753071611126795219032191579784885377799410916882883480183068318806471492206534164870602782133974294170359202462355974565715023656306958614989558464783112864215021412530080663015827023416869531323774808617613151735437297552674091484484615272188560244119141387471809274214561890881116323815926008229255930973876057399152676652646016481733870857707120386048796754545099251608213886975828655924181796590335764525333799150427134491801716084999271648547581266012666090142655242628980734048078614791230406138935762976145306317899709834402818889953811112668632465320333430246943549847360352156456282602576407145990290829803016149205117396350779253501674396733492297263398568975989830681943192622775230084963898773664643589729338597680887957134284835695340202075214236363177567074144925864524098169177591458018262379462053290324842098302186989834687423104078956195369681104770932078291626916359921529000897195145139264328453788769930506823510004649007445556490346408764748228715344766390010002532339256424574720917272405241721361923094649717105656978915852646746667909033710833132681290824134123165227496087465753821153592608795185265185667367844354118813171591310053272071701730483001244396750579615809914353303641162172689680028711698853214199323471073860588727068822074986030949340817345830456022941683319277480354536367929088480875985755938245495373984012731503052230389494418801505650319632201123188660638049904594227240084134497462076458564375000688077560976586958493236663107592989639343569961225973929040236055452993560276104930386453172099874923419628906194194142243012700420276414920682326178101395308070084416221169148572273863521233179907659213625306008728512904148835860136796668506874567449616808353066225731861318411555153673741994748064677133080547799898926452382550452295782799509362453967293535111930763539769792540947210006788871975798259380679444287367136780234266655512043358017264176330019100947695856212922965872207450001587818408491132409887942491467498859495766301700008091579842739650237344226064317526023230140992676506164450062474393054126509391237023213502865158274424007578358602187031932326999217034500683468077147392646543886325871372725730539821254000313651870759066155820979225887169924836682666389091784117069992941993757969985960312458709761062836974037391910670917922347361646307524613096919086379928460767467631849409755796308430390518310502667224872875252607775073644828347298386345077388866058524798282055756121909374915342231195264140885600780695230489020156920290770239420002976485430073625699706050437419571381892003104722813855458219361938186868290689239916574192949129798091195435757265371366229540711574846282890633333699912720694039319012272098217471622408646711878905796773133057515674206353160763112169893551968917242893892045872226676726207474545286791540442838853547894531930024608698537891312092203809501829247734584136717283684451552793801274806626140453325513010113025928454431415069947591370834694647289015940696301955572416349905208674308971679211757593782868868159517425242284909333680053990912338188166318557608988710242289995437318674882805290724411890246998005403598166836253872846047534474721973906603670076068569434523915654310465356895826954652447153077599182693169793087746969933366099558928263583617745671720970191373814070126330384938087179810950548754768005106458054894737010187240881428650189164718975196436847750405712400169216266385020021778954623429188748697567001254953498924038745108424010451292893980674435630602188318226233317624036394983541991980026631248610401371517518919034836254220410857880107280721049032589575021665301493812771522131170900721854149410631819600953991760043921638103422269192558595005466831277381232886129186038385986031726806279659671711415872446940586980244048709329091232407648034097853722895293916045440232377713929117602337546473201186671927383925063632205249642989531198656256854962996653223725465505923113427320112993930838803892890811466520083480629756455461735770073127180915168789437010860322094860972388844698025213122337387086136661798753613038641535592653299414350169716052932389084950139657121273981694598124870759052273743471010065467029244276261991134785751044064711925770379647936800217153018834264346437129580464786921190585738531837142189650558827433119312783514380766998654470259447881988487405574587953540156721281264519857583126755809901256735907974475871777624739587417022198955325761870234368007181470930581071907150757272499360082487065300349030181278684768087367134527470785497630584409524747320204952912104468811471088336808225742019134898078405709484824850842688727819365101375160170269309283378110776664314511153789816850752291034718159979861284894979509411994914002272711767891573109753505244171380242017008240102130873102759736592168230619397063446685944348934399781374121594569910692035958030241544910425854904812012108631092464347207133831898882422546192556318989844189240282902017790351267441278699379284695251000416223532501013832078380009734072897730482218380561416183966644272739122308849296380798498035272176058354409828679774080966632764349038413378030767771212963889055532056291115775523892556015327575178806360414030035714488070712116068185234960526753604611944691718899705018858706707848790110276272633312686391176336747704353196972479409975572005060649815316096185640345077915230452652572039327216624001163369039633547869265057965052299741795567097867433286501154448821731340451395648566158678468310452987230799903456903320865324188674296672277592238069446319939837697313686568316358240015393546151607245524067425406695873192359631899709614438184351060358101176423629503588714566699326658376826620599348240627760121988514825015844844895949321210249772262995587794354099334449093539099085748559423293249812354459862378910376396676265537831452162779156925633012190888234718502179002305369261011154681984634258898191481583622086925834426540014575598805439722418306238439214676906713963541788661292870187837128846087178433207476287687496109525676825873147618568454934374961215662785990397424733293715009421550762169581627257317009006401000346840819667116318118456836501885900610256457191998470648216920764492824771148265380060127917864399578500855636354401755898896636071116622104611252548012533661875306492362507259466955896435080994654894924964388483243797550264896119711770332851507497605581029713304452524328464519706666076764660829332016635810309580516708972534361980979671999829033150419795346755743760288562804850761153161898259167945159885009065313607504428964894973820905050922854070437711636962921532169857036401301049529830585100914566609790140352818361805796029389595802825727447544074373814938423285846270546795300615654224754848923806312035313400575493186560309926984807963279590832061173382212275879222306106226376041037165892439083026761785005599244498322990021996660715535125494838515925616574041437513590041981600915554420582261716885414379329185632460110568299059043107563130587687429632805284679205846687490740491653965835108574348325499045298908026401797056100883152940181138989195601188891942715797561054164666723258365550712148739829635588587647443503853065011094469863027606224600708659159735783437474935933763386164627985733579940906141003320749383877426988582367169608828128833094674943790563320208547085046490489730743940921649975786574775976134923494217099997999939597677154050056967873651272028915108196789568540350685930854128265244049098736633120947850392881538511319939558643143978409022020395451480221076732796110061006993451525117963406622025527132602337115966873705049874671859046866921414244495056625490350544023952103459783285916935522404936597348704396201907858922692087001092365261658844874292340003788809188365942425392273212234026810879394321202691995729386787011949754095414767077592466070554743149295679426629873439278548742178237632114149383975890969328469504973650820247630975498822379926335207809406773977462706343382672250774709546387589399574904023360614262756320555962398736403057719801997900672886419494779594436890007217869726557948761979546346679205495627566167021765223028852401239768267012575426272921733927790533799330653968159420772368704260182147682011520930771235162126293027298346382984628648702979898071803439175008849952290353476107471352884627536224429955265822532265184329880419386890081355185819982135789642852893455253185696088904239458009944110508867258990323097467156245169234474195270005782140928214823310173724045376616096346018652074002134106423274266341782544605589958996495001184291845810804228310676648188284269619055006196168896021973029683143572213972447187559579320623068560915179491775640448251982688278932737007712814499816427264086541506072937311244821724027714530252262617175136402541974498283596610879950191843568998712990839186681066879291092581189538359070692934457114545651626734844352475762001111075938202541833727488821000101108681210219294223165657606193936304051788330807534609317727770479689259321416025379405962429312704237286251467412828947399484099632116779101597233509367453564902009008834477375105526761029927660738889964843910148813780558453124801822863604432370879261068080712475876217331836979525354548542348393436930432958257555491745439197095587124750744935164961867339632375713467861256252451058281239715636269543573463342083158447187430129644510747554971297111655730049994862153288704992873744258346089744823476691990018639628668324766030377280972847080504296254928973833646089433810562932469137881816800994534709768313628140291480972709234914843690847712742120757092810200454979210587163513725594703018368662515422363213571509745345697973480121324894332282357770206202001240104293405876575825827426802281866810483931938596939244756500058837909594124963032873535936362734044751386235268526815478047468240916136196307036517606774461138805480795335436432201819841863595017232576080290307183066951745299429947066168644910552706939174708929807421579994939543611113819703790897234940890895049821441188586916655957855253924822044319735425198239404034418762988034776905979923313658985068360446418182842915274472116197124061703411534617964465000092893882807187168190678398634356899187927454557355047468998890243996628737674994856341703394708877224617561768087988396243671705594701017539552761127204997667865281385904442867655089941578132590860985966888900078995691864590256816774188921734441834222296796280505802232345426691970330214312637117183852663612392613037672125892007462246327827407493512577473298374902478409053156780146731157374512664479635628107028731859908114018703833379372527042358541115461394327924869341814204337002840189022467443245494663761102490526384088144072254006699545726440361170612775470141384387100289478801663514509544676638851713452011843152470680503727883556004594731110571009770909948935358329584371927054406725007758946981986996394328965040481101422417371715765792008073038919006747151547032138353572557429774376209059556804128924139507435560756446028199207280108811832145989539732272262282267707933885176672571335009751649963188742899120947213488946042413040576949329343921098610571462481181118382935652654483889235516856867664625949873578744229392595408241313919615401990171399093849666663197257240083289297480934670372968914613550281443564290233310875651962362901216266803806703002952378337999173184068599701530684975303762549581941717184396879727840292328703384049128701575601886483644490455713472934259101665405998071826271575510928687418899724733632872372348498907253492241071017541650635205415043065505602587553968324751374255238089099251035355939443508006325036623372934378704824640504364185220137752669826815601371010686061626306855333177056616145456718415420512235926378336929226070866061217037498536760688195761376613723714005805036664034684275763834372857753738257590499008070653590412656550936178343187999465760253860759917031097260978224383238833013060063549391234011159196596759810017497445518536559081499380384515095550044850146285917975629709425595922523860135196936025952187916612668682090026065311443697020026915649434875427592174594016315065228936964808847048953193377202617352582818135159913491872095726514339132917976846393327542750118752172569448792715193413834376907565951176271487631897064869147789511440222698605189253924463641460491287975841264035861131622545205125914363463001190037224105544294490477058900693670635027870064471183318424696331092037584550700632329291604963388551234176943117863818428484567279677145908652789166729381240287960006969208424521141889618664038093234337425566565304360325219390120691889407327377760683919458514897527319249060059664392448637247996815648329292074963192417044891526753694722653044587276663450098557091202420435751218924303210629375356904019627752331830858310799929326893060563608081403276703492176717290900883699873583467423939763188283621033925947265360146363667379939634660356347536791814864984883152991979519716252159547779520042740599910390153928823853255880838857166131917107745613463891112533705950630586818315945396683383029880620595122820498445345536865639512405684727057392080509862171124849129697747573808433984298736684148799577047515625715092063574518513416090249727534614896941179620851434708638227540782261590528237436275957883171900036669930680811765164693638576699669041157410788239475289028165326738674082612766168271862471715075755148483568224791762619483445993152805660789298644527625210747182628710952298376886375705697166462060958194959236052272168108330643324463030828598671296923276986766209870052033143882001801714875848029516923785771843600564632986827209749786133261895631710743373163162342114130538777339191457631174572786815267876984942884668176758592934663263564870117553357338359819631168594615197015807474176802168255514094140167135450404849698529715408014287277422752433238621345431599095040363637538502206818991085332422007318616025926801845705403276706897233615232544473584878935841040105077738156039589179121953769327555112964945534942644632363684715813571718896032517372789363209318090298048207513223833076042157233518833064887988358662475714856688060110354103585625805792226334039160997193151541688263603349638705753444214692182750110518581808310187594874567261918052974467624680205068929098049322728973060158226324040823101485883511041132922672468694422173246150935127795968295423176864530182139968890322552770894756884711137580509347993573077400332181055517870589702472086377535891918451583478163416944960649991041595257175528295959101586045639480856144795818503418801210631469638499528081363976918245785674101990878911846848520070394905226531752285701298512597764409047737979948196441856262380781963242541474686009603019787850873436514805299447753605783289373731477578180604015975190772638146123609574557097985265798104674601701706064251497783412720387883833973108241432087872433202451409286837784549317273229183943889702752865648512975447977552180800340591994332494562475783430257310515931457467714609360323585751660477368141727904558316213104409356807282663500227747623272664187133459944555573739521572244596876211453511835114727073509181940329283325344714792996329722360844500840457559121584000678173440982759822924438810158742725818521272408904416891191813831628441649915422844599244054594954024622808922191501506204767910520939014353658965060987278673144504028308486029975930053870232650316298902005599848156554018220405028301199590396305689838192278817230096372447015971356902982661845087825518735342575424251133426051365782179628961426671165106984168191420484965546581321579057262461551843558526976255614213207433007756316217326587415579372043662263783819999752036662667241527479981027194985955209578593601093955905642675303377282247121531569052894692951339705415639043965070988264313753122304389741992584857067872673797492087434439196624123896832608143687541777997334597853303267248460857563828325495175191182193099070270752857236276604974516086253692019896448437270213867356759397494576534190124996091331080365393253163962218607882460836113692190707763574730473174166303703378649044685725409877166903820506411253697219511675001031709175622837741561773355060156380403722767881355949311748939613782128988283040995880403560224437427348982713801047504088569651778491032390032915146759994671390898224103529641872638475701039794539079586701912502632264361549084694349187034422168251827373631379739998440990026713206005957165991728593578580853215417028857565079008726435797652393377954449904153804986062854431827304765652160577877487225434450261817458847785012759646457115354042810764433592919974829695557570501583407777833675278498799807074669961260544538423274242896781288480396731783983226574348640408739201238734054438590171017818175895437888772706955801975962903777961259797882951246205287121837696001564668428554088937757745931573990452861608517335095088830001060738000125095852312043758681537001333336983361449601246389626375584299069284168147692370254970352086702388441828887283076085848089796429908352259219275044615066091686009283928140982705356256148645804724943667737947983437309545420874108660091185612558141371700900058759113285684383929173178028076794049669706064870090616515988699101442928506074058737480816044575340333560975341392677531605675401178387720054754599814083550709279818493953258066238620980237758955092300317141178159713153827901264219738210141941425502994689973316128849823449875403768622990174318794896543496725453887124023608855336974699871616532598013062288430193660616538308304577149627685389760231514211468215612948608664121450312092947879146058652079491557471182795968105856534352057873619648948219269291985492552817956169538202010661136095354857463926008404626660548006222796671101557063952822022129113792442594249739147830892720699448046134998004460129385850921288127228273193857373374302236629875317069337662395420498017177494849221709202014893163392985545229266244415581417680380977535383022701948399690559374418358153787482859160125361648117541589694335409248525226033873092758618400836628636747638381579288185031600859484649073057545432716254963163786200293217378397417248318628456084778362752938743855061026400440315648929235364387076956861019885993827503683762026879473215577674113900617890566212626980477208578527170190330029494893793641433950789289381702064789575380557488694823390201269721291952089298760840457727381980371282066464915137337578825146028507428941413656214331108864901600180873322489227020221218518244579884926355626737441410200941287635111391965615779820709139195139257181909943352329490633468641120149838215974395380576039519524846254092981675287493465316119235793737730276318068510755522719406393383397652389385034027789157731816231355764619425286235063534144486751169837635274868559597683383773240217560648645495021451203305518089105370584510506226306305318732618621266991775928933993379068014923971843127276951483323167450477166421711853984526951396159393682909261720477229448145174078980984128208308512210869752061082362803235487912696850203296944545526363176771528915748953966203545058166121962524912654246077935041173675142730831007127075696742931862308607176892512837659129490705429689704763872032158789156757062430803468587489567756586028576754514656237287391023346497707848618481814979340754266779710734069889418543481412543841700994508415283969700103400316587634034914495340405681456590822345793210952566897245399493130736960620736514486007143399943896617635367146936245071582913142492087782744770506048665854778266273296918770609409094285411556022988413301958592164512637113381993814846333053458203660226881912725743829763889625557326330145955632539306199396044190851591520753829861666455996050721622309954012791153931856168859449388218306782805679129831052632905194240966755627184595183973271995937398935190287001549494344507776081766446903905096816331010959746349945408656837385385806867551398180367967478229633118789788142452041823505197586859495377968032689644594517273694975862148492493754259620552726776780727320786184675418216293056924885384748013267007365407629408278581688032132673950649106024031883077098568600699905941656472047964287831580510162751709860218868123911595376228265587664216778671170116277712347166208799774348025007389440856471326123724169976499259533548419961832191949613780302605591426253668059010468219132034406213758814518701214650927188296641555196792854857463796005912698483140045791408108419422651113176349754672205667039943270270919812746636442019347798208952837430452315113667446931087258014713550132967554117031914391659020158463553506188091445699035443204746632081349100039703226999257923662670370964448370600737941967065694251406103486968525280120269437533893773144675704871571803027647211460103025912695085621744623832287121746940790907820175373223444755057348910817884378544062896475796047149114416596712946084424082851712032969067974652095353324549635967670767648520798507294216063290243112378506325363893677414183470465813245381950458037209174762959256921624119159454765621147490346714225523177298148753655458099834181549567500386535233655398680420422284571593686572913222628324152597323879602396146236299066009867836686392174435841723012476909996862591989239037759776752098653146781294354844090256213708569070905774102319735525758139795853005456843495841231515486027429145343094233345179306672931283372406444678466847576014352053862352919045859706472592668516083353782781706457457315482270069147478464480775645419506142957563455236352656236231759925575384318566678036544293853746070511797999360394328250661108441659059588763424601488438219993335913758982933366812119662089196782489782515822398898689348683992868278273075616796487913186083301624099202821902530336086482810784214045908327145966489907133935670866127792101550284087656126538676817962412697591759255348312579666194299736813149034454968555765093782903662853793544546979573003981429612306883443430752586732125320408295100338160657313211478917813384833715323081762767152685999438484094565845092777574731703125911879431255679877505513871962521492885891297471377046284514157305551214685333759675693429760351078163704206265404046977393244828766136458215572129280625430524167696123411526717039929953493251985515041942801625800766991500416073184282027767896532772571531077510525104734042762929153810987072403822912932010873777829438455029184498760715274825196681882129097157105977199441984040407480238630150874383436708468593228559567490275715418992808716684545077799834981691155929242902827179400831579055099972498911362544285203912829156326858595845587786012129060377219919290945845568540276920903641684733843997200793421085470297450180153551296429553530193101798789731115746393913977286605230780693624044151138398805531212454175605663033851038824759766364238366513987382690955837088996737066966970673653396608638185083143037322646032092346857930716494359089178827143722962798575155141443465312632858624302076876538079822827613697646169049932648171462553241792095464554903520371974302429268408091573978190201633285541446418141651026187131126504982431037937714150732100904003629562844800345954413698886786852517074790025750411554427627515163346290523524193932676208000506558860422116123119689234054280433372399636284924101473915733561924759577206040880115746971310856031253437594654855088910686399783108421424495382974497987623963215026959925437501241517865434023805615215691596902225150252354498011235550593895798173734333561797072509594799556661830261181865022918263460881926091296260518493016908350532494279352932390006931642222606555741852223090394915179969244652979420813866470421040886364197269020719611152806363913974505448572975711991418135451886305455731012169235408355112259252394757375563084889031849167471612928114841326801954659342387554062825586555254310015806357929216883696227978707840354236769760116850893290874793433784001422479002885309421006207860797438519276447221104444519605137218695169381069827871233529700542664340145755567493358175157023412894778859619278083670976730270524902344333719846475739508502315571490396189461024030016194272245255225619176962002824974914001497612822911531479050879892387441335215144513960515048402267933454628856252602477214129484554476058841016251013739613300456222196568368248795515989727581915811177008072901471482477943690907944911220576228994476807624445316752572088969962572546275790620024149815072104908849123697066238408494065703358338416712028380523305407712225584312893019021003107200722861096926219869316793172991707997570054874174982012483815445968659588697273873621722281657069224989862998351733258971402663987744909110452895661744850195200722649816127865001029035384693529987282210399065323725742048018014943557542767582042954810755283325865517809277680847125997022117879835081815850493108950132711314584310400715102348511172444537822190888976302880991052112662219864816782960775621977100877168162698171834409124251522131057424428265681345254095477958052000657766157124768159434265581588086732990833901059120969163999451906893815741223742206532299713864422813431052713709600681793391269309404823607947146253815966765581844726968589634094895545155833868195404603155082552466586718108294328122877684394750812625956175946408293676877933236251551662234505172951338287235650523939854487398803439137113163289226056095984484493935376753158422924384370658454918483600947646564498647234456808577281267289055318637521095342000954566987872327622072798342752007386869771406935439423464840111791046709543372834086969508150104190395132887659985268721972408049525724269154540634856071501067534213746829246571196580245649676803826869036937103089711389032963234184957282247932759828104984310833920420438048485308911523514606725202998824502266655259159324815510955323444074728227842317067451811987144613103873951008249113775284227599387883338499705294853412068363522107314774267028961583725317268953596876146156233789677947461248820192431623420284788159030494772489807558902002623010277552289499816004472391747273375260576136463285786137150104989598542486916170704823186190459269896057139163198134600916199388736068321171525494188146474188416459330099634834909680709282438131058813452486532474610767369965132359840187595501598846416670562461399114947286433470183752012970387816754942069701045578553678693234696950112683498960750508747998291069762122110504989205129743156746986044565682091145418191372857041479340371871842858630309926570871599352755339173714422649008560761146659072322957597409646640612365672715162386315651868631551704767720054063418368115280362595183484239797673216062096971274557113884823854587436505826807481798557188793483349461315457296792735431789972684131057366285754069983865986542505379155921594787350666476774008179849358651740065930637210118076017332366404147427264934843374654007706553297683516516759118634144407248635783763776462582647341754946951507326147804156757808174281088070382395098268224505451771910083818635654660654258193433319877758244859379272712435788856071273162141434284113718645106947216706523311167990564571727166969728440389543511713504415899273841009716104854982828914041213980021272085868231098181112046752028752150569587729316380345275776132878922854379316735877629168888298708443756226717175333911446421128636219124951315963556602350986006828720822196818698877873889995315571080312147610139004869070497977578745957705040624819944112126263734490848746093534543116914634528277685915898074237539558483350901961318520012066857802880017233019242271449413551118826979412559503971779069653152384136528345353969653715946332010022842106290905189274503959259070030558638452951372164828697015936118839194957509710182783780901983049004968018705924252429309198431727876815454923794485017662637606836500814094516721625323043827967844376259634427571765718723533576115236156972882893103342071455064412032242840147011029660843350118161713985961410593695549880402028465337399586763766725712757032003659100182906753657219782211495832071777826635733446688191254654522959062163271302448274548659932371908963932758782940557019733079328326080270719572840282972019631682078196528062590608253261813278661692211143623932951015541552813136877596297653175594884917110995400075288301229737435758355405273514428965906779057577544791968508348518921173451792372441481489441559960325430281524771067849450156818560555521189933548680282985615465614415683780332306199433969792646257990785411834478325785337423320412573238669044829243393170731871156947023782815522202070881336749806237612990772805369363461198403769107075640468077197326830965090049440277368827514022575934087926923113674039540630946170651830143898905968846011824718399295516314080308397547335674235833825994788017376353317244618504140830546878680138866042344507456427343032615255261458311839034438163593094971748451175161226499650469329745645716491942347242376568649243200627434275160749115428823930748748948257904644495999222845444993203243840651583271176487494550091992022576158364825068082867619433465290066722981338001635552777151636829915573370409695342079785930172644100563702739125912603568513070807465869216769959519350937272221639742366575557298501421949479517283042433045277154151976491941455523585112172006077773794308701707789339573355703558619875179811731102206840269841117753407253594132107783768165169848237907617305534186461011987134643308613609034769643014434163455851485069782144164334335713857698363700060991936839092407851961371794386656114832188792741089719549544576757896374059803533628080198737756605661338152602613672602203652967813952649466473561351713648157464871354338774868253252762515219731053552712838538242527450457515987399286325489695699926620738900447768893549938513537418777355477881858035081576355089559980153980951119921094870760499198112111134114487020445747084160507308412756145935575104552402053196337689608135991196896493483979950180626168793397935683600394662975735158978991737741127750693714018895094438481880471793077900006247065344692266246362872771888384552406675873234179828707992813467764913864942426238766294276545586274664830258394034771286552787517221514596146175018919798826786002974492825364795398447361473842775901607704795392777753190579935722748971174125721487802217045029424411146910972583786248911476606617440825155788126774765926237323566846978089207354606160329619402561286658111254912225006153165819245333561647124916538143249798383498610428535351013630087941448574094515355781739140299904553959607717598454565150313972751591796711120575626454937100049884762241547104511230859165806637204503718254101003530372208990288346184241471520244421981479529890898869586933569099188134500745856744003451211495033708835582759285728274388402852038397890587654916211980131944351160911917320573867934769743162767006531803131578799787828673469328372256103559673323012955467856910899918093696842871026827002180853591582601804770530803333769467539307416229801976952077418046509912235358627368299612454173758350586838077436976215672590305576479097677415622024005492923129269058027283060618681096382957772346272199262599890277321986098530646609434011558594830508870399147512207053379709301770140584483470066572603058715765549348187229377653596426056382138484098568864474486067680266006336179678163246188128648793292419593914645777810294604090748013544325211371659871965674203124528114296113903096392482753027903850990297562751514103383316915238940546885151648327759850715745710081992637309481505518704709771753616877775306736817032790766757784092778072609582673604260687140081890547070824231981364476415833910759845978639593628778400830566531995052582385459745649752110616406566726517830622927837589058698582024763844242077748433322572911369331879405490763957994594814336505439966004092902266100798321036749537757418298607478426386575548323978643774256770824412324523517469174430109893513018542739813413596639549389345871557387774004943967191264515251590810391015423341943288796145260951092361576968849422959726801624652615313093804384439320487933556767237361526160838903405162468475854956210692878629876110261058352535458966395386805591889104517596734066394481051425763623277537635699934341186812453973783364260642376106820732584152708928672749703910578276087015492441931709976588822312434437845211219733535994228302576139195289548774169802280279895928846891997921022690606852323049117365504338839445860537767447705997540753094586957644620880475763804844277835015827556408647696070776666288721000892040523126432130489116449958172609239781837414788496222702804408397866905923863261101000373246823748637198558751519209958242356018419030775937586798495341528474117876577661780810956662216397103446337022557516781633613340602583924177825035842028534139424525293783780614686427849839792656228974945304997098275245375741522561927227162377537066794773790030149894644625440535183986207093805246268378216370428900733302467579581342713810056934124364423865241784707932267116512850190266714067243848076582907818249263814156080335892572213176280047465773771087823677928787105792083074798964753707992371706121443795442822538023866179795361123205814695656015081308493272106895113014277189230382944495066753774946817452068203355500806117722824314625928006359819878863628559147081826748715000521381527621499623172928194763639332327036519037404923263910878325068347762156946409927367131947806781005349836378570217500131899326752267161691809500746929650454463685829604538961688885042956046673786197862230573843484870513578146702896062397104157599041472058067112651126688769678444454452697141809541622104714783318198709342109095154205193236800489730114780419816895048362123903635185000580189232442698316787992083904591614273734730537529903475500021503488487237297119975891218385334921540377271886669884593842196040277871934961286364822217183130539269430065917673032757678213497365781634502046526817505180084978339177808683436981497840680531734040645795888363528122715189409328817335609534731701164514203088836837632134653136036548681994087561130470982843320976372528484620343061137862726657034122197318854581919539330465642536110165983244499765715647235967533654326086589980327457248832645056545527900115501145352674944782704762846653278603701929813765562311143310361705754730491668952741804498637023517463158086069674469327321888590723482788966521529686844065014585554338800599593939460202817647230273347467163582469304265721916818501205974537335661803155332751551790210046813370448158994714086936293158549785144782127432885278609511642071821623922017587890021851974332839085115473278578452754057825953309704306006403293535909785969542690959367808455534230293502552212975652192392505654173370161782517674740337246065157070511564971877926771512263642426085066653724800190901278961724694236379684234556184531449676208470529404945880597761676530584051754954012708945003581212856710645396279757110424154317803361941089500803199218366858846222774564075439896953288788719230972309832697644405898055316032053288042456794183982494426845869774011482375424000660213215956321613364974619706826150709681648632303096015977391928730091028502160812132880016743305375158380622093438017757787284875885196124554730296211881221446821211765961918388958943635246378997213045296865551814797249385773477703478272725540366640836099037876643032341158936483297379363406738290149264744675343057303748912750599908731505232573381071625731482135930415015242151728746988474784946496834727463620556832273766429610699583070496446342993147141323907082185274905393376521608192359075717484820070441372024897044304218771209862445140373839252135468142758955251539934316519105768720178732780635096966250430811541918097974231742027432818047377401515833106656134232822097087788687023509283097510768039552671575895901882716574349406554177476101442097157862605299658156141065711096779423432387672926061748046596403260335289618255255814171988209837160544339691816530869651747666520637840182063907212967388606998725781462117053528574923609917198704281136697738078503642398293726335519307279574815739870061823391371377697682093402987332372109879016654490515632136289869316495871023696428223739497386425453256549652294027672262583663480039082377143972138174761165559878450084505744819513388407953524191279876360275153744329530927362025812516931034304536100040611429338152558093072149361118634585776486849989632083106205495507132785380368444358290975512408484684626383021716750163808923993873816033584108469067450296543618186956660718586777807037872680409181035510931083694676213844103418902828475895252607515133233146517092194366998736347016100755295057889517374445640985237824982468525416883717299323179687984027408795139084478759719064495070349234994558250731569563143944520496333945474220980865831208770761490187026579165178971859750853071034670187991997085737122898553887144138114150270317923135122090776368862243986841797587750331461092827147759904043296569877572003718016040478852551802030616445188701861701962686503486650168966148933621992052643527428207447367125167461889306969667930540986301522823343448620063097790005939538214555503429847635160043670153407919412674557765675113113987704024631487380008312856445933023498729555638272933299832628688620957926354563429506038465131851017034925695315106622656548176050614185364729823911461617849257076168023452137695720502163210918309426892730854878350613603562369834724482058664912344669123939119993504066315864579745861785632152805430967427096031797514581410387907793298835780655449616320344775625797156209289343981887737175360945122482831495609629526041471963799536184769068869370607336161715145302652421270610102414486706562280388304000946380373128665074573186219035704140272984007374129630284517588624167648385420935443505512490718485952316193735470843454466914093419061009564998372883572941217090669995615979435362078040020931298440232443770093904111747453551000360952575073623167154698252806252533630119875521717092663143355236468020209054084307011809624706330614895919754272191727979696958899308423238027480333902320695765752939314213499172128793920798061215274506415597552497669558935095632044706955610080155581157609050422925451838443092447384786543588626137390842671634183670625030827259731656839168302816249573982824789002015799141299625825786900926698244716748729262335349871579535520696335384060562584644067943382969995345298275434445847840472776511550397629101349678841025004701576344689924457081177801624266855975841374327425727986396853959879328433418907989974581422807319035615642130389299682749308393034182811763012260201861911391868957433904345211512287257749063119702862547433923087732987433606655943596881527374595850086349069982507143319337900617351023192081029828063596483695968965422594580700317904291221507725162557038472314657062406185643975273609224826016302082135416564379599092382632544233690085122139424102916847705699702149989066298408675782944950661886009057843842753664343557350884940131554190721667475155581900210589090914328253359200858748720298285446652693223810715345774744646414121248281777016496842862153782310107467749657483140028659781036402716444474974140062218392036238483577595082544412834250084354763322706141113763608767165662809907152892886123314095552157781243468252914438134102955898966700157819352906690278687554897006915062718369843340115111619223441187077399224147958415910403732510029320775233890556088315708575704093355728026680121079255745211293554179614840119186111976465893264603893680639691118298141638986846019758289555723493950596327010858308919740442216683157477530382686926376927606246549314258999846587101790974949828479090318367850976503503230023930430313983756654494000703996480140307263636224464738742005988540440620805340483560840125598498060324078037854589460602540528347856593750332942993930262984713534408547912273965449659009248115872459209874503769912355586718792105969150706386629813441049429423624342684141563788014043171954223230135955254292468328469379143363185043720257135687862736639752625594421328552628574824899245084918736554877967019052645469628215932255933101493515520255676920079202419700601913814012452837197316343564558001802932288530282477985863126335257284590853294441886364752264185971299026726413511680893774361940089426203520538174052235861745880183712794614581901672806911686223444600514095925761202741531380953599886492145081386172869024827826551962773030410046513473806722585180394277417216874055268740820756497584558474725920348677765270562089563248063491001442945359370315723153055469184762027240902540076126740800285870420952488180706267256342901034933481550231646840496863294946443182748767501304699540536040059931478071671791221433817508222333380868576536818296116599599261441009361827289490237527121699198871994802373352802516303741638547191175114094022336857347226534197187838589820109413813982952136978452394505952594182163956816402529369441349125345139006807897027742159092020168913616935978210347747340873009285041409268438463597501188925881042464899513397676510924698955246395611804750832756557463817153190336385943074417736002148829234564470077487347932891809708526397469479967469206505508339858188023270074952496856681151766883461657433686190010088974551502505527939290023186969032806721313463254760253703604548416608552307118067310141386670467168155905697338141783538000373634546457978315116719075052653438401111912764169383513730500462304409331856110217334935679763918142631859851612500174116754350938530552713434845352874041799334405955162697949093812270449856589181118615403487578363686012873162965137576914433698834509468072937432399364271277373144067288173697534286726308978133655044615740772549683541251199654110958212823251383529521048414765522762852700629190870878531872691039422587562199869459529295404920150907483960833814115950648020870438917073814858506336436365506312964674781883637262692002758688789470138253744994993584070742348861127096276945135782149009230860089826641221652793589811318514212814545352084012666965591147600556670037562329399980033560117474139455668911867948176254602967454857338629740301700526795659854280054618020322037916387853658160723992777362531568169645277915003304843407124175387331809909699710574143081080969315990958275732597654081571711353841414259612503131838338674461623645387490720716504639574210442718527726198426074627781448240446402704387533799743992510972110914337993848435476203991601039746995350450342476029628988284551810556858408615562950203088751190827161960713652202557522486755444498535405323390673607865967753560979729774784205952937234360328086218428642145046173604481345088446314363630890718249962854425882053404660638672382193419708922741155460063947146274760693460795547490266780700606418095880810460441358127285936804900206230898997613068219377486406263997700278122909315594221712420030688351648773290351698334043179981982523631513575362157861715368860839976622559403665506522688151440502059800603198015903566344382074414878535391263136458902885694140878817579202400070214929946990083863847552223381320595498954813034466583476291608833191069025734292662176697306395646097900524151484993770596883296383874493309285742195232148695156447553135319744801012571129373486151670901241203301632829494099936759352457224635416903630448716770530382393686227851574382581528961380720081336875504507395200253079982521468491770693883408979012506015143028964363449799346295398064704396088046841061336267976864505777579450212395261150842676907711482390428954421978287419864745723153735194594436572535301345212550451075057466386676374067083994058326335700529733462069252071456627071257257751309543573643639974123942554217239009098024288659233661411426975338973346344973968315289304382840924789431162563068527122170885530548754203162947341560092788005279083381668931876718214448474430503237405441118395133741074129276776655164250322565764547675170849280218759961999516228229441854388974092834063205408328843388363837325229673221955214627678985715147208688651039142470880380787045635739167457004150053100761996365676986302981459767328312035033803125679518519634334907529277061534951899087094487408132815932386297323353355269827974881562522530778097089947291824572476828442309042594463225961099555937531161495218240511067686382649108250970055978011941919033970600118115479167090794259250738016004498487560896770020791182293304890700528495574640644261640823961440646155454811347991386696522101068014015509818919835064862849677279012757578239179333113878529799605336306653051298392614926137669682725471654932899759993081903771945635786601660979727807454955335518141815772125919527193411318166719903609946385402488891594573505086232020058936601175414386342748861015777742192574132703601083332250647314022278389744107570330105928291614953203280408084693397645568799627941007224272636407196768231072729674625466770284549235737009513221267519291279684139833911235407970047609593553363164850983721982186447476734182766579611862778085676627850846330890823998221827900242664269945152903230049516911888219532862200996147082741859378685213623449695518136399994961211875268866963201969481905304466718761080345143288990373770963627936122688369071658111624102867830771290818334965719906082264439767725622214637465685403073218247134029092142250856610245046817428387199029382563565176323171132911600379794648974613379913722945855001617779463417685886119665731883834539773995074226593659815264325914962439941455320077418135326192623665847718880223185260953638207384293865851272978225800067773546403177670887943069704212958218185500417169483104530146431930662942030435508127483744470666639156675375068769579661877014147891402091318638361928204809219466689402573790710507646636625430203396340583618964668130998351805925084736254455928129026947349724515318540809243617446204552604810463787208148674877993846436522738301916457046915071733233548301784801648433124321776701490858988304644603381316947533802163397962419834725208275927267931156006878614129610360062432077482924152202567433448461093877327718576386852501945234150682103134450150653538863348623512011803136031732155353172003833895029818307075830547028249214297548251936084207836664727222700218804474922644669748520629407075134807161824985782565410755857343216884818800086409513052193440672901993726435933563380210741843634261650587938399028057697588750155717359457796084306338884085357893259324050422550215189322213054326910406419198547921485498330452569894393808786062737110397072374117746284052925234265225138562731229734470493457977204026631753848741987801692307547549804676931440324052364841011929264228945636698642600292125917190680100134080327714055964829323014586227063272778903991282352618594613983235123414484976130109624840627244177113555873529923279490481503676340119413184895575213780995582237494525749710947720242985318606544712946550419459439560056247634287076830030700716989057533227029533966669581243414932448329423419960807216827241272844700898680089702779065006793738588131152671034287763946804925477107934959759921217977264014404690815175806445753235797732856145401008325975085560781232162595118608080512268441830552765503535983437839805844573317082232403713060819365910358993539061771558385795772680915095028693031884902643649628268059981007733253567188752303681100873910669274307129563145165169625624125176850044554490230191178776524391673358550479742778245619342891605510306677293850475670107131996918357230887590481186557067721753664376757454562391909963189557143349109270638768472704101549989533685412392667273470347589067549582049996909822083456151911918469619436503071816864636611064123902752862333550110750937087791868210290456914713563113065696898728864410921736206216573282932579705301554844275171793203419523120832166970113671661606985177535636433903674207910641465126279921185549883031039115664132269779657086668401492054643714461333313301136581690063311828878171094748514886756745612875770536848575595300264174511337187866960260932528339106147177189914200291810496982462423054195991330686079166186575888329360813706080877612650922808909050763807836499037899419774468275683694305228803062549527355886034028377526949283066648064834561727838680558431840767034031241056484440768040927148732054314166204728867327730565129490452442027513967716195841400642702247547205164707942054166953916184837659763004537365547052783696410444814252051558567329398194388135263880056102680840295088721189184648643162442109970906850231430284097485722679338258430603294726104168943530614215287885587145696671655569861218263461230171984703851298331366150291151336243354544211446220704699946702094432532914323101051193627965661415931036763668134239861819894814470959528064511856209098979535072133848222970636770862694223787016872953257915193141097113556191904631729709607895631751435561853389729310273544379891395237587152546480915964286113742994976649964453510566797790006920681397020893328450163771488353602951337864376775641947140374100292811777880041406832850943962454359964281728517165162787023105970237254118908498520036421189806459932409012677120276248227781844982036787432524407588689293619986778945057835674050647376952048017223311956916392444568380164587754021493424604694045318280190407702240154502234271004341642679688672189489648190225343058197067620862338588307153461977688945901402035815562719249414206132071436825165831858210983923292083257465761452428883543385379623613964524229594297011859687536934945241172784271460233860908734182769762146352080654313703038274883134813008511905834783775309870272349355747120658685748344743521095594869478661132636572110415663149976077654227805223632035344248528410950147355967798513688904757934585404733746412894101528998502718875445151059945859069324292981495009706639591504218389358119275457829044317292888226619089137244354741597005023483872705060578212192200704069261680736648673744427290961049884756381362096340835927300753538373663789769725060675046228155545109249633903298951024604053669928844843524059413258781708827877528715324602029062168635649220317755755385664336221834187343165418330629119308787019546300767711482023824778709351897489915586980417299980514183797224207965677866615840280300392902047206563196158799884835155731003361689835711830055172398375898207839726603804134783286171638056097435554600319662490834502973878110696842240132577029520604991527074299313120444639348339627480782643347006473192542068555361685511829311628454207635432099519087367883323918196046326321445479832275287204135029970677135700568943611660464028262682931303968807671988986713580401037022594672383300075800645234764880716862997970991463503347996693538032295665114227894890830392505102607745487804622439802164326898990016190724319852808472476772917072147116707516398626808687984381896054523083670908452170312537623693599592144984018940721667679303522014636693984106797158223385378398609501478807112874186870115247893880912930789988124919205037719550157007922691779027952154389207205971366699377340789409268031178040474565713653056432392281266664896389226362380244586435156467332790816671658459024557968659145544922838702040335112885988165337095393011909810205571710833574664277678766504959211984372048571847872884989346373372174577420697100635215378058683734047234636136540737395352321840833211347337182342901045187616289168484122679551694706003985394335577885787619270170571264021454114133349898959490596740331489727013999183510766853699332244810047357372788928417165280442861878071979374780494820853723645994123161760272384545387426950078711520903848673131801661961751491959551251335346740101668205377454172874689981661004298059079043591454461585762046257381436121911290008592772892528393275197125550819335735449674494632551805661767702323628906682333279696326127138092400184357668554544539905691665498751681557421289262839315332874578913154101202928778197111133954665379233186416915213539130250533311097806529549995396531745974272111113916026120074938959270428675284546457585402904935692477023388145244411631376708146392266691845683217570016492087675642661462628882829679234749612244074681401544329099835282649087596530341929073979203285091480835518751780296300837341078198379061491039181551521208873078762060093383646506770280501594242124971826105916475236106541540710969257318576902580306283195752722199668115996272918078261704470064422532368239972610020150555208851944426466518452545740242463962981454521236672031807091324966310476413175088522395247870717760974864806676914338528897821262667576968058416577281106621930111687882097039544059171073607956733036674475442800938082532539767945773407791816430202389569222755537019892100523832377582327385269096044329507161797817999255979534442978171045693284747968530527375902644252063718846396950707255255001488847403710172248378111775423027740185483682644095685913030531662667125041416924497078886550350992238622674391143763417747610578121518007767591953508466191431779196898087080819159373657298146337027596128536009146623243813366285238825895870642051934929476392204274345365385966462171482394825171294188833159362920032649664769552294932532166643428341351451338049359516798106628744571411081542764371768285368514455876022334166913301943238339759213605995131550630027974490957281021798911199984159541543457755011336741072353372470606208882045613144162598540238682138987655477326545475950104824970195134165007282657145910939705576134693830715166909319920630750784879459117552991960327645593307644342715239706578996955406648160576823486430312380922818825826948288709041585775880802239693716785842327148865922772420462878949462710836308365775848968506050464974490671203505673501924171840483777416032554440365108584692913454972242903846496568905738989342317589524775188495319722278822305652554448312349360595630859910837744940490799496522583321207324087314122289013983288101720316909762399951322452588615251610836438657278484680280115744030745707678692159981707310742015554103320470307559640180410928843113528781130537461310341622785295277071110306118287344388263284784779650355754568151707345051258208864473633159948710916026358280332319255255571220008207200183266927270537609783871249328704086398059223527559049069782675946405861098651383117456420686583156423770729375475223732363437155983109543456116628650627922797765679699177000604760297020477091286656314818687684602965097876055453788692820564583240379840461848716877705702660980075279110614403875961201731203910529137840166434289084338824386178163420468953487369759390288544875194868171957986961562609293186024675589634378921386021233593437045603026880633492896596048315537286288363886989783910804502642106215214815968365057084658363827242965962189314623172589475219685492024443905687928554890919186618238026508046570163390183648873368219893814623022488653378999329413526217093172146180741075800374536222457464021606219311301267968155558652384576366721562121764929975577488897864681262475557770254742878612690401850390552389645625355616610854340182732351814614648522501127312973617408205270572679643565894288819882524235194987808302083901008015771623822043776345489422728335900734015421392763013187283192327011166859442780720799077655557506876021845726810685457611824545941446276874773560110015506632064103593561498333995137810469178366008017512380369015887050360396534440745096798124279677365946031580799059912182085517236556095263041832070441973480588358180794751550242300508941633529302772093597728278832477121052116119161053141611239884948603326344477830325943572093580161419764074861601893002840066115211284968933967990480077723618959784192845793513808688665977583404405250229532397808934470030549536266490077350490742192150160453227041392770680310908512242486735330411502172890667296479836007623111242656717566814112456121282249964330897978850662249670655237681912859203012436901249667487718880054078608844029003649537083242021815983643251422033122624626783195275162593084814857529402202081147069769097550563324432853295204241851245337054201106150301352495084533119264304936083318195442891952462501115751021703739399645235639283113625022244651627305185059405950390174470286503331955543208931106401548841805237324033793191641379671950436365680777726834654973462994692583881703262167375403814654470110690906190379025300972159133426420106481962142461183958763758256312228606976783089374634055452462294894430017366107116209953821555518927031650688382960173025759407827145063942064215845625907794544525607106394581546848778072718086344459148434223158243502049485184340734191134766736620936976661235604860927569673683131052024112184742346497176501793079525615908294761448045202311224835885686417805455145459914058432362507025719129529953422739504511798063565263848438367787483377630898268519371941498949914278639582929757718961236420964560279265531422103878861488909787672356404095439451971716076058840271110345295297916061236088164755897461107699323900446937903132179521228639690202204849757882963001933086118540585003486834854814800000262596386234382944835945983777844655899676750689217989974563662443039320496744154906573647774634158086730806110686023457166644350356127228884663790175096885133418416458021358007957913028021242518692521417804997814928469636793634545752115701345916799521868819298253072438574044233651233770947880979656395765094544234883339629349879187122722221408384788981941914368234382263112524489866290526671658537713521585738444578356285189468574166457320982593906205884721381173654992284928003965445707146959213824305136790168347992566908691250068671044369524801916708043542361343959112557294410982728600851623305114476873335285197004434548934229519447432691976701651607753957734564447387106347773099674977487233016183197404744999960357227646555084806571087675612769625911825802621336619173008742179889012181444118237853700928061536767869739538060936859150774100483813999851616102252664854197865618598054849720600847924590885741203687090296454612376977941513194654158732201091534796702748093911581815194472135203335039953042799678881659958072371692685684528013797404056870259626851448038320086479728088317100955610884353763742732964953762314744735359590745821180469307017978334284262892437403818266566354874679846759781513019241354976292892006885319343219978674413723079829740214964959869449294694392150484343942437848630007798105193189861163000089496646388224656815759447599546746174960739669227696592149905424254836429304641401269093360296176802632007231712719063045911514988511121715863438551632591750109025710437789624155114960166193586573385539819494388779231982762402412861491948981112434922961603738591067371413232124360364473139650150587009894756738471125738651541609618759389921437107418982632170536385136853002308565932415868973083700641670147042574971605346332555097941196410465058323260122428244598577196442847202083946330358992720712344865879569308979655008896911392367576068736074042178187512123801536051727974305943629394570388196367238620334403881182263293732511907034889505490186173971438776979752856278756250144582534844530588464088278954611056893194239146319087121236758698988773927975037737947388358904506645402221269366304707951951748795750382621465347878300381648826577490617482243362548217391887385041452332772250520217401813142165212055812950502504790919461296609252733072616912081051223865486547992885570609500066369480459761864966756859533096139988110439898054219388412633155716980033096782732068927981485998115396286072593639648127138351494075167933202752772947322589422112813587072366994615881339177939281681499365246355546954800933991530411855755260698859361686833367353298030887595206009577094901364080142694764124931802216039640180695966714749318350853610646961808139152488070016894603541871699192232533443282503691710580563980891652834177729477532555870418352954448465513872341657004258303361318346426908769734069016764132436876618640802173797475781407854652982004671585136860810707913810645498419485434751797641740576501869837593977039540712750574998811557456666868375067542985613078897325149580826613640722450177546564816580344282653615188530841817190234415454172231853152308613614729552491697981679054383233563309751285933725122689809414712534416484633195912331349686283658971383459807584726571704022497348627322906697972637638965371600785015006390896578196664163488813432636400716680233615433061114319169644750978312628647138193422827115499598319439713572191531032026147009024145767472269092878850324832131539297437684125427133655182564040600373747161147453646223511736957903846378932128706068508991905715510914195662984082737139780614411801449766950183901677503588158542398720610416099590007594383204250156659246224032768201425759788246160514992324551602474540956707314268853249489220949364280802740306807348040586012977640773707716576728564936255181165703303080182893741498661162821453433253074132621330174058362154396344884179684015853269119181814895272821961878053638294438015532406449252561663094701652121721898976032174161851902513554900817900003013477850892549810501339964058319238245834155396940432579499183472825136219289706300296346517720910654246672594835521732922384155275579065385250602050066281874278468351670863605469520372646943350079844281592588437636392063503129437380903527985753304147742165445922373967091952048361720761407830043543104451156187142757899120056837804170993876315695582426034493779490422393164063430059716409202701948901663791080329026796019994025831169788680280721122592170600858003185260664929210993538904968895064907361543523126984301667975483193739337881652099327959829789105278248811851581935483778445891709678281207738487977535089636714087627021748784135364516594637468766919164942566768448339055298405272540369455571689747397214639255986179881286091516850377912876068609209029820158829187367798055663357200285377305112647025108831387440923617946700538064168236323955272777212394912591173342867838539622795297617536262356664210847182898472692188078877311180419274542624248678190887811147932598825608322511062212987628907189139034049785483145064179880889146846691752610131695311970087654625793720001028342512106265757947433847330816620923832783413584603163005304135923286680780461561811146050033377840371870362659355894184053585609403348689777667559648034667118826296260606829522808607012581133448712303295559106222307778546011258313761038797116985728275529271465493448339824951555225334036125911629468059721451519297665598448020966307137468714670449551132597632321057921641745044748458574156345130476591191750049282021540659219119219079317645595577602953902612445409099274108336799157821067395264058915796839617738398194621076960439644054888903166842589027836507408227617748262937204208840563754620159295108031746766305624855698355605156878283442506121577623989162965094147361875352763836878029359228459568525941850290547995872791977004781443270006590824881424003204462097139445804634034638512466333468152676042203120566456128738280993007631026659683162004924295329180428755058565963715877275872808049791207359132535112770594346641713384061488943018956601965392747071241195595829211615022774079053993350847074931293594961310641014246398904518913633357931588142405347517417157625919395125553579517344812886757762893482773441059998030788979620489680241424943766892990623912102893867322760340046994659943563987257629785334331742868908565781922549187016065193005654156400459912521963220933312630646031849290283339360637367454143993010149698536228571709382962101528376642792484535327217983967309555038838689542427365629801516291050280869462447393324482834682972857545030784963117711162942327998891503466932905549645015071711040722574074174003431333535873300441474117855615742361010315575060807034452388180989789690016147028533898865250943117959254844312946989653973372303025380465915370916670927479964466675124020392264628665864957866636636663211846055385582405967776675878101286392719393817360826543002159837096316391351013530377318149344472504814902260137346851220883976858792276116697503976501344685904409019688850399069007367977804375579217704712800612113809640783148537051946507175161676599262443104104509519700309382288786092851360538111870198096937718921604408976216004032475563230034089782516146921916598673705784635511534643908956022358657457397854101754771065457906393373478562453759392193218366706004691159517513936762507538039038439577778709588346776965294759647465578814238120438379165577786835267339487405543512483692637297316861644653270975851043534857694666537199644508057527940041776957441149734977172767448582813445162439273832502893433456701812369261047563740918138036025693809881242186390928361598390018935229179300895913274246315303989868418471386280288644684300637212426929994862188899343007970546316052922023655821435486620009262582677063613884156417527320441464037484591892262103512345363074291664665492783277859541301937265748742844192145217264897467652471217294967224311461351214693174629169921752537487735957640268700680114072582107297010256449650852787033882643144940053030191735078409822492630123823480946775441611528269471329372177805675032959481542806542631852882621879413265177834138402154804274114882708061498426629837687117380403460578689432689529156583484017784263651078208210392100576936324415695366542905858343384350358480118140749120567065823536439714542340149651262230223928937914092141446752183185386669504611042671449895271753434201757560219543941389820742033107786494193899060939779411909086832493532331225397472091625457254340723165582013627929812893079647457435431898388412515778431646870892047069928016555486479416669550522795591432015089719822395769510070050717516157346986068002620495327601463155985256434045188846711097793520848962360290314064831342620894783466798370578868390868681178052156532934325893720092444862941586273212480354903489901000696055034091710378152162660670167433716666399192218795132652617445892215601796585358411693204247464797424669857720684444283041557821898780983788757662676727131175452009134993081286908116407234327098975705337815009385332274487764393324076343675944138193943157405823741169285402622203914230333543440033820505278637943446177627464055513934163346197672171463134271702070227021361107295890396606883211649703312481232922160356043952782684876861568578097348774609741999527828939229999234984191784284786292061389878765603414702764390675941514618800843171675805301024845228362213356391786887637723613136204548305487500322659095833564169648164402440536325424136562040813568395240311951317804215413831114891315867174064341735825037773408641558503187737615975896447517245425335622568714529888735812771454423521917994752308926779183806147556954326993684897123085260120390084990173549338748037400215670967499546867451633362104737840584483769170550136051846739068284630346327338107388261383198710800765886261275429192577371823995921657057919137647094463535221085198778740952712989461129240040580847240118434684961210818904832044044686607233979913013318977062819301088253804854743751962245664223549464464316596380322364903822044385879502605355924279356044380912586532395639618342355237778959025018388688168669256701472733511634888356446874091483907635128795022215161187117748752585236082448254719901760502298541632810156768115728161334445551839230202297779780101588247922493036288418932577272966226010345635949817057155467571800400813845737708327401634224496986578235583448363053515550119359489428682071097688220908144733723628665767599169999545883976448945108690880232678285009509784190966222254524239723238944121068376288554144093246413572600161998146918526136647268884674724086416492652303484262621106262569755496155388173559360686454410098628383570752933791237207259058695467796156207287325212828417990287118936095279569101077298254879826534343926858620452205497652018223996200944853701375134562372621267192639526873125278012453954127720456292144179443177043744999644822415181879903995999959396551148327992765489367212780508078143307726873411551215297028535329563167898227907192195417276351184756148168259782256581295686362173064894803554816920723600111092306325631719357813187416425999554732892204521467532227208693932723278176258276555646798176757346298247795762336572808514934467062819884403489030288311144770491738294230907693997302724199297367076223340702643249130776641746249078731526099364638144773950692721006635659219348110786295066176132430415570557047280671840819749419042316669615269518036136938301024854659144554806433243021740462765427494259843228254022922470212306670074283872457975969343318809168775281267566519154929394312434711055872336231779063458526576153444988397727527704861795420775429477797448985385344654695184435334283959871511569959355549598455336387402655994138510488710229308569211292900303766698947197414647411738942137885920417961877777491687271461257981324485760929670765175256875702980432852442759808728362439471067422870883472033572200574128543943160320365224677686571053054094078787234285477146024083610413145582693917807989540030460144531892181486443318822047964551082288968105240095471799405359196141801032239999638158534456643990436078170039911812614157904114102029383561439307742534318639191364441444054483450022380536018300074143009391464657599264334388430485964686976059029532867402641308496012419721710654936240570346399721652019166941063947083989921537057649434382857990187914098676543268194820500620843753311901947098166986600571222064340549751445579891145730254339177283723828119338416159875800760417364591339286279100801600330545839668376585084192594658500363453701741723347298278133599838634132852828056523903273406025423873354155402296390783459477488868919654662662971994563989939531323630821614162476914401911169650822086449766318202246131164962198211247923441446964181144152706002871910697986931681100766307105174209782913344220588125516963385120839166061030616601093936799789034451458395470610583608647691553030162658410209334723251065049272037060581958288572504278676196865212472293605912572533896988690780689377158900836471610475133543900933015828721927552701886554217045895506452122090686410051942582604786891436777097678695123959628377243138473301416089322054592209263249550020145906045746113869241457857117701827863113798715950975047502306147686609715665806322059289218211976314169982041991387869268325857778981049505444044464903906183214816216905751271989456791208112540740492228106441515449917710432938961553166230285867418416837905826899204653857512494632341430332042691560138535004125993985162423439078022598851278888284172363938651351044363500647659425482310688188613037900033743908463856578345413129158263723908961014452557180360451256580010844506917893376277512152768009320852651707808441463580660678150909795984236579605245792715387745680266636708023929973219277802381134978925125391831029033517927107179181211655073594171631877348201112562628023818479808691964600156695156850746662876922018668955731322579927293490071298245318652459325690129960084557516504157828030254648849343771453126720071550733686879390214776183131008844577764475335762389787426821599816306733729833629092005331332417772702478083634126994018326341727131839911385672762875956276821875326119311401717064151500721094825012184762895717333696465346761732321902184975648622352940216039292900316930084615500368444576845125599604101787319884469353486795977866761439925139203028949521992879915335503296778611799037611937525674462093508896935305928033237916203866802152887085969252798534672170295174077607946688758659144396203464375832893124454504350821950321603987323815400568413186444115700148426981634779011584668339071665338639785765489547505626298834510670394438952816703367466884058354341292098208730639354285248704731262018027015426645544502384267472031947913291343609733686780042987858026439920020522452535125779375473309294920148521409024590736626660818245218016607090741705024311547049393798855713143720160922729128304429909109502023704297948673953815680171728605420707762898942390081540296101705401144562468292809625016894554818652292984790424303949472917213919112244516925722113820956620832113682609381313740574129444471302204937992392876169095004076995239158734508947849408251915549033289061031566057117461031413983710498574840383456084017185715897003611272682446327208035505051878177374699131427448444966055651807900355385985304805487142843471264019791626384802920580324170959028490848536313502957296763936131165330638098889733359079943390765680842493520986437737858678155506380172011555030562915747100631566784936720681891380929524377612060706568826462713825918830803712792530396349671554877022076318334522289024906242728421703694181134987153506702779881934517393726258589381847100710121218508059801094947067292367217532793320870014708343534713385571456482605451026122517659734149098624504004916187095297537680008519024765895853401509968390208340789036671119734184430928162520224445436626884363401209070741752336189527867490959546041222221695195769506192762411208210767513763334361300709085494205839544628821782023786404670084329076943940035261079041945765799159168932179588264343702501303630058558527878348760172045809103475173025833096427445128258405801053908654524460048516292909404140443950734157767909146108802368882995873855549740710069180288335549020742177419987733615230515609684112203335388026067291489106905504752623189372496966550555844654820583690761418222831075571924703183625189362085708391409004345122257846631330185239393020611693311706066720213473384398655081140487913194621661478064432094535223701317643523333313844538655391786715331869580656258341275093457882263093772234447273341956988641810990873342306189908558120696342023350022848751839087987526412619879112305557167070532415240825648871910925762574324719067401130974805876478641186700948027474292437449067584617777013666939702022340681561441325177620329504998707545271157371950347379933959858347563991903117365008448297820562702245653377987468216714111074900247558284541602319922989705287056892148969495353469668300933066303754435487618067938891208030380048324463189010073000387840871780526240428968490356216395174695680224764884621376739835759514037483251813003651964008437477164966783809863198676299852984870545853593954077574267443719275442452715553004516399784363311522937335771118232729922399059451769273633923293252595139204122885866859825389436798481838215574766806518675893110781545735465236656007284897197133002630421567925685311077008316132179450019540712763447274613204149313074166533515466811350100176881204539617092455679372310016042850643228769454360727063691205908048066961345406415052016947955328099961162478028888188155730171456967334660433245940644178703337661701148992049553219818878000042262800644399424900362831363313907057461947777501779711054086017587857238995355566438174114581178919762999137328345128518916661386976328327318907902288942044813504592829816382970881012217874649680797119717728028836387817605024847317403669788921081913820722447312262066844930322399151944303710360286202946628567557622352793930185818698274090987808447096991379874154603724294187945239344163685452795838541390048691746756295104030780811797619641881664948806765098261924061789630161885118394469631844133346598102568555732406308720551882203918123098498760741159932505186655147502901529281467483200873899179773495165356062155307803052528654684823035074234633309366051989740387807789823382006089300180267372278764329799171671533607390526137489398596800418953703323306318365814586409335708620507044773108664293917290539307516156652447439654775302905461246837387663449668186902952754014358678765056448767527033747070855430155056529373071493044482328881204783182681365131152580237617197587574466691449921134980720464039446829246739586669860250994154032771513844577041189882285265061758600071630947233724629363614718155081675443812501196856502953793824725800234271062691949484120468438774924331505748052752277721578307344080339039594622164359334616814001020150229778842691636173028557427648538934771521690066449622294677322896138603237953526093120631881342834543528645835003841604381121567899893494046914216177414532641241365586198149996246418255186750457797170984437668076567357915147973647983077606793131019130618134891306228034757575069401224829722937297549342205127808539710737826258302068897214932471369394357145053806993668858806638894156955058706115792311638728711609185126736896152893053540192145048854684993241163592070735432840122014103943028059630796808807135329378056582707708342406260454264536609840710084575741445593833233900295943521750138457278307094046143880799817465064678476678968875319595453652170674862306638617316427167188345176853253778502479266877994053901281854920898456213902934322009215697068782258616874508106173715368982007903991432119675043470160138374329630806239497773975546782143559918774599661630977777705628183591835299637324299827112160257108773174443299173558827303179966049100599147893665672998113231409251121846794584784472038978341622344342984562945179800877188466492994013272947705129969948616707520781708197492967509501083802685915969170069531912567382869666517984898949258494177304789660142044372513075465069454286753981454794287042685757582364485155207247649776806816043074322090099360404451220459473898870718969739509545595241522531715896903996108554126899583490933535523753046407091286022285769463064379909210435428974966836198478326950817279189085208987704531237465161610513145268847408637929603527340376747528252849141692580427770962432000546654147549699857600131926588855582254628392163837184611038418465239743583244999345555603550133588490508731271180744699176350890448662092378611128753635336874580802100310501125327803296003351414243258357257939400424731644046279814781039729929308866032743056250842216148570501493180137982745530907757695039421600493568924177731750058647228473237763818760079222198448022501545410938043045272123564898500109156860973855608433154993017527932948907324965749711711791443340024640882150246617069895189017554659528716483738373703421048683296781886762904983159676689194021503107401173608090461126256633963714598313267405934316410286876363781807152491537882616394957714566560910047046237240384179484470382050910919401627104406283725827723200383693596410416526178143829201507582153188566165941537874662452427303319434059263804531330478150330599097145112803490502579660901889154913637444842522484784140151312346657214028260415896507547016977542526329195688841785333701049245314387477721993341599346762516400793032126048964976318892304693489271450067262918879225448055868794039752488194665626882290870509263712356791339559230806661096309156504207925640176895857565278535197922989399750947058100302505873256517505456142340154811522378327784366497339666658344495336619452601634720106894257570829451118524769839388605565129857102412220579799497515744514980220063262981808326398075685720151606961920415746198644657768550827098768309818282305759338169587143827607206964463769561746219281388758368228920445472640498569796842824242892578397061610948257551783500097012609153528252551659440565898682467899542715823417683466701955975537791418851045965067674372286710144139844405043350952580001656420973328370271530608108037712360512768637007396239634187701316458510684035857563817921931406120861114757568330946330423600894416777604670449760361682250126583093031705803934688770863703231183193504758323271022184280501961671177793008929926884616280715336276546129438763919989265139126076281187118014087583895169584409024995065041466641814375438804417893288461666026078077723260747344499257306618115367383292751350257295505117321424059601898460122129819672072730848763154415157994851992010914766572352003760203300202518716812317145908576439763795357106156516561964685478670266875619049639965802338907324594585438039537880292771084898068223236182103494278838574203209230392507159077738892609790511462173327953693982704684686592244470236664179775237612844682805949979299808560388292661571278691339335454918076017044022675539191512777550892644519599166128536732532975975148106202019239157229729585718680651575794054186305332627968029673821355859970601027536200300895339762550481255564292740114953377344982971135720703049012816373503067396854573788334963393422823227230030242237929710052506278229384009593977847930945791107810787308382592935605524619529818130077429320980198491956269756635663888068469356654346053714158465691531954145953478132235114437414157876367765561520309078769370768661581022069696369687914521461062202778459715865479415674639858276717518642794265965850044614071172206997959904824069487443055115341798199417256925793246975674050189927053896018995164653409120743316268868824261597198962559782890089275485252494547819548878518290927874171552703080039132636532344004053015630650194002522133816485064066137071946215377916984474804638316414229022539731951070975660680251934583417962060409368077336848568128685345357650982372127406616333742391907121542255621281853420914006798065526494726404266952584372218557344547007068826525149048487567226435603298187285138448540600488931535639867962086229204373578817985663719307373517103693041203501922890044176283612834261921556019684696687667440681008006854246135264469646008876277888466463404832824390713391527289548933343474243483950971563840183383447923419946245485595835614366402297606261184433492621904797555734171527666614181539269870147091223242056447402730914003306539623139155665514954763784614317852220289791000922669216912951387995919497020649113361882058069551399240353044749623587039262720912516185449257551492322074433323745117044127100601885538593265627737828727968062090181394206855282097406133975086804496445883190239434955081725005379835697115791690734923516197623507279983126643325396759840302994837117304892541002991471264974156015275658131708570267847801561376420664438989786787000107358656165787272450670784962040256902639064256077473044121492514591035764567906761542832663482925872437991865763183821264593234292798113059896986971841868430104806751828925892322912828518332099977414350323379921578027683479549967697258966807277275699819657722148137680364052216460049607218721114769721387603040829395707134463555705830890863937533568122205058562641418525073526120533153805099805007018197260112324405125662093473319459745060274441425887109674275331258646795401292009465404597228274349293270909173868481864559844049817724129925898859632041832470355695249808076117619585905684034631589257054372756990553107560128320350229876638704794054381416239441749509381828211330481041475836492333568549754972498200258261325383145041160172294324801055248944880134559086579563026540804158356027106288598193498488344406905021745657506239960198273538045786836535684624359632074133989447211370007602550791135618444530728510608966407614229507356423577479281978955667153939548884082717819823498850254095675441623985410269178193068081671349484335253671996905363451333886258806462371696690274837586832189807372825594858055951738198704329127990862680502620326967861170315444245683900707176097503965354405210653035753046076537604064160939377888888481695382752282929835804468824108725290007021642463362068622254956724265701304266082593300284672241705515513764625332262262057142208280131809376307809058909534112715022415756510059645212866399485358414987478389592277756010032710546058141435761641056409722030994321288109224660630972120578560167236482810221318891601338273302492632310041976738741426048025111316199332888743712429452819027231739438382803431171494149998498083820962736105822794700910528308699805748666118451165077816976560150162998776686817611699012199676685700263628262189277958993668633549493238580990119335986621207661731266872294313713247260714061240894780754125167255561014522873362460639094097278120557365243907718234223949697134143103303738652787167637881215182580714071899513947139008290859361152832247630414986644823056368735320346189301468748294654671318556826911669238947886127130308922160043629605326219293143139320651478623004866317486188261350993444246583758059352329110474322790567948035857565415420965890759199199231344575575040675250539138523740960807295249591643656885948728377572035292017779581802515815968767892558836375940770336098457922124856438761394994817869361640478627619235554018608600092802994562163140080238417821754133672042004032078713426820178869097918890630840108687050023209554989028727154968180812918597753222429139282445810726643062626939669863602249297238812167311823267009848403020484336423729963151243961126832711137882411846113631429433208976891784638234129213596624742359384745293676390542214848647908618459370018249346368554481681740281875742828801835390000158486569274440093858986378073048682651427917204970615449982817437489243008007465230443226854460181453952078466968439624944194257725734876251386720156471209723753719374822445953226378319630244221629310636372650624489822706454886677713717861156631743666228201244746827783575287799175469338684359414117986078381917088394399552407219991179930755369214705945538488054912278748100190310430543424210008161024864704988955056502938912449233589307135711574573150770531923999302501698072579169059289515950860388370323035172055458022763678693654833232916941524262917599353711973930361024831503531188401362690272237334985785994688034255076338568555351464870740364115228997294017594316230493204400793972271646035432450549031807303687722281438402375116815471913607238665601150092940020840544072046123905934588130835173779158207263504110506435136224388068601812711507997706730036949761793885737384725434814697872993044598150372696590239380528404073969300255565548483264513085209432370276957509325317013695416303187334692244147352427127877878509633054588504230081161926125702210899987864173255357360397576959356580046356149927126167606336175457172884024166848161260327507413325992305677868146052465843369552374751158993664731174616985528237484081358456087033059756257723784969266287785200257825829275658094976537727510079124127840292141490690673654881171175414015903486082319181323552367027770049382085190284069842294823991480746401645844954332208260154987838887714668117047010594696777969795772216243332147685256781559999187764615470209709849033620389175415638869952761052493744738977276424958438877671223129090457035973854374249348245066000584960059149315794282214546416607594620489899302903376881491224156216038785937040842445809669031354095531673475411517112534224733573307756425128874618070900446563846428893819811252716428564168753592328293463989154749911948079353319256535718563613827384683454192678479481069452632558336160695566174776624282157429655447773778626899278264958602481848523597484829221119328968227755816584581734420347251999814601435255215398374605046931757288414816975015846033358758669483639708348115212659566964766662855720328804595973723146673921774395492083778488758429731882806910615173282229468742254168470050894637898020407432930151676386832748943993334737401625644252314275704458091866955367786500924806342808064119035526972726380158374937859598981065484014986201267259372723493376979905359655403405509929100144552376628790855450749321501936540627943833869170533829838629588128638302620581352672145013754932526824518180381404562206586478445812444199217716406292823057769425519473307897085925801597391506125247907563755873071094364348451697346313368863142546891797127900072096713668534734048731853519653597220615396295319865719915534974982417908887856910069393461105937009575083964187746480865675186621249467027619560904166735722886718346887028922031766941620407368826921371643988199029946218601859217776033481603071793008086599808678980611334999991274818161077103079529434837210060332664380970978195101581433889486137223041488474980503136523906143272684396522352001851377563795724191517077891139291292942889723112137560259290613089957067137002078413578014590413252193807211737740148677925887185653361960386169693105509361290006733946608765764532306716724922164866175468864281285520939543440425413216522011842860241740132258043064163861254460731028069741034507663220859434914721751305907681392981948926506405953506223810139839764067584249044438075395160988490219156480750706150506555979170471248352435230228212700825487617180161802594031032325301408530025828107641697097048671693694681151079321862699499685715984072034744378329627302925753487823228765722227246908493423445156403334943781660274974159749466796309271298820870327360716751137693378397706395675655582843311441943645995611659446225247365182947986042157070720994646989291804614500288676044497799238680004340126608913239052358256593743336257701907355486376659537941121051382412729654566926950937019737726242887959522797370017192146719927961575511050538205333939320306149723217530352902116838716030950467763157215088707768394568859562983743881682863227772998469690841742231364327194713267792717826223878474961868438059621200733883637292495658741784943022516108749534924939890580380572661402900172198708374006086916236889184262076232287136343838573863481715072301130480552223191825521944197763794995892899239746358514257714769705079204827910546056687317311941899736537043796164892076665105301704424926431050435024296676338744357391690173996420159105787518691357626558365012295576971303527606082781508898648919636837729621048817240666232914507262886699381702568348480634786342549730413028010822829682766597083646714461552712433539696581525763191450326765752278917192428375462153334922785785306978607061797596382604462411605982605527156589765561418330346502294028252804880143154648057807441194566791839314439031648468715770211008454842949114497631594250806270093096144402916202312833637327460772707480186747027008872405579907861935726501922000758928358391406867705909565831711268970733901680036953892187437298232793744692472186741905443001109305090327603341850977853537298850385307008005823282662974064445907290015356248945024158452262947202323673665484020214400089578096835747772628288424035237819138715435090768794377091613655132773916070892845863973642055038032087013291148606059407523310894923927720023225538171695094883466768460947870063711604872208760390724016951142501583039249857390182506965297902144000006124519762346598475395315166059690498298652270049603188556473102605375040615838575964552902186053174006969676311469916240307747129333231445305461894519111514689310100841188761554363998461355464853679866537652236490461023918831805723333670626551366212660274578957524600547582972914560168932538308539421481164278597704051662170245780027143077685853962770315260731128750914669182384571873458037449891114449999235590234032874995720417562855658205490701591758162253044615188077388017560914496829895611917842808636061870794719716821122622527209993198313094768469699524186798689041669945302823411757932185938316605450419772039072038734590166712765953620777256352763016884456926774237143055724949970232430064554352517545749134797101710322576593369301388826039360303587415951103647975054586249440683068000253177314715606962251539837341822190598588239029984129378140926250427109699109004540383393232837371830775968718117435136297400256746271819426153766145544482762553449539017419178807233491530575453462191070441001422189927738595755874989433335538199247498840544919437817946436475946528179742391219235318228446307532904452420982643768338297169843327147842243498010496209151118109106368818457131926684628954240043473709160157931937439386029467461733276438877211753173419777210650111372009887627070281718695321808008690952231432258568918186551469863640905245138382096931514562613279805744387208413150315592650572857657689305947378014240887644898438677766854657050247440747274393814302056456932309014311987831712099663434335187914538249971137345548720869927573558025430264081625364186547293971936641201531944459903712084055731836642665694944184428334697413428862163132465638297417504757955030970810551573815421842027913218798806784879254408537212661583687082300691229919051793056416645055008566245346979230148306281726125134019066039532641042369238888459628664410442069798559271338432389508602869050365744510866233828574226881291263539383741638542692046988423327685626900738881015436095621470043736214875995349870499922052073741902003900074564102238118771373128004688595829577516264505753383705792309673552793279716616970537447874506155270409677006703085904429493846805553258895946948930735461010174117941557010814418596281053800826462179019513489583421426532642335964587152944074431601713567606873933144044115066001809962588954513025523642267415137437845445207968774091763540965855385990387427836966942387416424343487071755726077418816956069466568056408891760292890919017210028205415140606439270130117343736185569078070195366236911962794076248936168701133831364244650895128743035124595340750267826839669636115251370429053830844750934133263402920015206559085322401403715372129618639881081761427372418947559602014451902985223907020197013654743730711333433961949595355437327879186822631319766718312116807460630046527617636130436256639665743768359415104891340202281526491229514041663982536615788995779756086151403684949065977582798222465804487073320509828158783852817575391096040818889462145379730039738512695261376317225289933016523103566634010752562570673167507271280390987943659519709993602968825929348488694740854309650504337026155036866887468652704040698010391823021421620954521766166311913702757817905928594489981810795572215834642459643649880821985719910265830934812836534385358844342575955043773100185683160419246677082592531536906560265882237587536571280181670193128231923678212616711626778073425326321436626840642660840592476340632758657584695614514988793904297015431029449976388738307126611626503986998226589600898906078295810127299931658292348207763827494066691256848609119919648140565993544501439656993124491956672652932671882776557238622353047867239362448150258269035444456510758917281783602482371151097524197095653471812807685797666611797157064572491938484051974408359831217565233707786630502794089999188347562306744651467799216957926837816203148916079951426239381195497614052189215535313760928918070713275617540592011255677088768203254905808608057628372758456282038193710795205292676835941855177691786526844967627568063326871334548436754302762527150457965961600800997385368578014831753448316439637715101300167509329112602677382595679899625111248113021447638429966427483602789928929613706514141721967936266892202686806759896249462622444382029128036336844475708048332028809760981209886375878182382544146903878471006221774567145806587138468243143311654571939706578296562833886779904400633223490156529041136740762433528598234584129681670043516605683898898957914972299299865821835157256360748522126827129620930525293698875567561811763136544191154425449270658351294767749055027983177690157524558061433116115985943498333276868422909855962691086624803323020659223486798328990180533421276373525801386619561968468257561957705325766763252865561046907135176621562118890940091125484423149170276403228650475305969907126196337369691887853858512677252599579703304567291560314360340350946341863225229743938045724272989513840232026109466730009765625129522251418387396458754590156435220063048932510298186779768766717280049939753180967341950840287227176939501627120914157608766095768626067414471727954754683359854187393005141029843850086766556747889060907711527038834233193878895100953491567223211527009630811460297196035484494303954838483603523117302775765682816430907536056938732425060720002915964474613851358322124961158653745100482831732232046185670621843825527813435361766819545303892635388280909897815032456783603172316475660325751590797483025817558150795882131320550261233669911536774211339058982668111315623341520469507363795737463475287189393818612927840547285525166876195260895761851208980888010147221398973483628084736533097634537530819859403399830248383079915674743152171301639636614052613917082600870847444642764693973870919084788796863528228795858447308003867711520206919594854422271413248550589677806338716950907130536136817188182485772918504633697918975228106008715947223703884686852292195875078237096565710377065640894375910348529152827438693541081851394634704538292447031919727733542624692393817656029627409085137509930607949830405143683571392598444133689837989509267365269968615752946695436672882969363739543124189578852484257572267164832815605125289044247304471918575164747666101152663218929093663226057141747247545497086468944094218394669458002801167840227531599111634471826245741155089289332695049269381705556175336086481131791498850136088755776081647033935195510849769558379421844628113321222852495358433263464014612254640110598086605483271908665659000820511308911698590548369997479306219688776401444801304415885571894177789486126616089263264994460457673707855782776758015116087448959833660097879239098988058557489777851186204922807924338050512862239738222514360381010430959821931297510558495247543259109712903135460443135312844615115728159390774989257203489252466702606470430265189915279546500843468062655148490059016161103410872605340402380039581400685930400616550192355423953590820419361066340048681488157161189451433669207909483104350036724991267504728766901339887133911311190941829447061031337237884578160946700987583674201988446229270229148502114730352118815194063621732462998865151317454228110915573741139848577727669332205029161584935263309492170018943091818172322214046876260674532361806269366466034434041643303941665079583667137654368311178218436853701363594513091981573011832162602527395236186304462300889093339967268877043852238646282380190015092953260679733252242186312052244869593106578029467217444014037223795415230651387989103965713388468086840063191859736649553801047218113580631463707354930502347758600015461200012810775947530447732659482147002568941666487784253198120221094454382122519750465665341010847831068364527701943615463062992830176553085307009074983463686125460660523309093830738696997646145242409026870806941649833655493841410261884543637671526584890691408776314904187919553630263049391390375020615334015244540494990597471392183784251992753573680720664575917752643578649984948282536594240725450913143608446114926984255251620110878025993162637784427392402663346553780486485276601848147770814929271731685361377551824368194787215683066657261659484964049498937044173290664510259524578961404172432540053801474195755923429411029068812313799888974712336062682802521236987002092662190775919521577398263811604705568428921837046174086966583110911544433957459483152383637247989853044725632079703363679309390343385401984434528262015986563918419202779681813895351359295228115076801953719439900982016327596487877779998060507120298267527882694746530473530658843731342726050762331612080312050206483898968685369583845531501124211741286429220332391601530450551371023839056765590871013740878632994656340841832286903215121522407126452884227272103971394565494698841024005308009195161973081556524158810399693075881990466603525048327495249715786008653273905139250538027553985837017195248898947538856113060319734651066757066464719043178500289942790519157246279512586906014260545623441962392516820502842378891259991342060315519525729009889787659449555933177399920082169971614121039837525667285902006181821826655037006348455054792160097491231295009470576726201546278100352251149584305864873951267294379903001428804897394965874060251272831347862069628601812694364323327078528050262733816118579577561570989071484373157749008489964693605656279384993884145107930256767020629870802750777804866475046296287111468277218394801560402308035396994453480436430884124398911991773163493771165946410509126116416093737278236320010106706877015376688500668984231306591440332046396298914157187099555574240962560543198283664450977807848934064856278880065452416504221137368693653638623260900404098687196795039449654162372714410330892130433943674145127589107204529827493084788797279313855819731918687509398415015840879435666805422048715502984198808934123324112459811156488328488414491003267309411437739374398708507204727136594404924190743234334169657655697002341173907464647373091443489786523724009995073828553362578694696447106384881556825993356642072851263100918607646298203895514870159352424033607482578230404927064072643380641321200739571146382173633148568436978825627791074508165567665499866579434021034308801457141167941136275654342623134779501135437615350816325370594115664454636460879268993532373795041233873287870626023135541687863051658285124237018547862764824532220292007931311521677202776833930378266554752613076524409167808432833429005682970293682602940738263825923749406449564599982272488761010418091768465972088021582993291683036778878728301104792035772924706657873427959964642106816671443026803768420334772040248701888287031842179910037900436126874496142105727025799185426071476205946463190519211073600586986304895351569171836060699969045159124406960418118698787542673044533521565313910819793782750425747062129976421149219884011112286140865394212781994581764232436409518045388712836233433513028765533067264064340729997285241689758627219686284206978580212854437919359920757938639556756072087341975686692193478166175934597969920239388096152886700760173215201628538625223435112261502737458666482081675800761813806412817436176628545694192648193729789071199677712186030008695866768532779833301903638221714482189808144853258512289653718952292744776467826700874450606128270017562957201186472048338941792636775655777453400212065000487250093531390691460080575482144363089002768663061918605212399603963180001401699342368745181303964108448972361501184225514664556356133446397068601300198386759042476334449236850601485226135555620717370323428975088669386710697408562746809548087686755934914639878023136644789755613285652063060469909854014344878456623318114143083367423489354099548519713443404130870452110096976386087773989754918910739988247152843427324550822785015139798276103722023677622331943183925872189370670054798459280978585155234823947752536672479653352366648733599678616892398237741022516348979245167941281708881241441343584277674316302419916003076252789630894938811815379371026678669980965896870434586097391289949347806747822116228757657824899629913263227474208465980172308149391895863850071730045071926490479921127157853545277872136864474291216779518606750641175666330875743126437678499947368322040834550969618465217740827147024695109488045244662875142113309368842482201512492358976254509315076001439540220100757040043828296629081836599461017054061920186188408545412156756838411417828564691057933043265552027974571046392666923019435571325725183679652496583135280641493202757595371253708298045279181339589300390674928783723977510223093931962944037769266869217207867225682299311171635608302667833665324292911169268739647256524079714878391445964170475831440665091552696698428301531796768830201037905433912812538749863909582285044250904237650528750565917367923824726896817938740932127442101795449480985282671555760954035876037098640898892870031574213791168389835081052779819710406217860907373841154217707673052462858283097015521199649762777967638820277984106936182404921252483035865694658666639072300121237078895412177229965186088386078092338152758375874058964171212634212260821924724181336434041665427015187184395220527318678317952404843014445640545501697693191594572271236507540945298359841988400013867525753752319460521370056507409548218747507333439937486655830750492392325484026844602911672251356051041012506239916107112103925464239129689090722662088835829627048123098707584901346401014324997640527111789990392052196377260371180933633036681281677533137038559750747172973683602839542615707619757962091554246784668777497752422240684610276515166953409521772900254826542235402477126478709293411468401003346160920517317759979677365589733521506012437003496636615994715611675441091926711382868894453138188559440549685310872465927222356276774109052879466466663973096188385792335254226376461288354723236088512593364536858174727622242269942396007210949517949326704064448529410557029648855413175126205257940624573601667357457804617506676379025576993989011688205523986943586198454464497572566211048322719816230011404619529223358437794410187357419825905633732340397492280064344536386108739288301199939518541360745417608158676103113810108400453933487409659986720437550450109621269432039246389116979152690405719769055416041515606839971846346298035922629621582426155482187308530316649565624649974151577423084650209312828463913959428228419934281446877307037186546566161770666343657275208709713562519931039682869383231813899463143375840522148004003880225873308913091915816042679858880332364236733104906543424288585960706126545085813493001405225943858738236685362631924380690388612441216354490064548073651016971959670870964273956144057371723025274782657393712916213541585029893349294356850011535342239937195906562302938766094136885079192298856608606208943417671524412697677500758686848464055143241475776318412734753808218576658316203668306652763946609833486358143462993571775883261961034328862821703782692940417176015970550093716679128889745883138448457081341503654731168949253742337905902658543409505550303617850469122682153299992294588337559853978580997248784622373016933929861743870378251344504101064387613414702203378054668218384333576891219525438231590442962445822112834912225132691891240722259785478267909415033784718755721423157253304085909518260149227553328972034074723941369052504776333696149329565448166320956185687619921176364425455817726882824204349225984760598446609256669855211126482855694650136364882124143766327856814329282214361615267050944094751475947924221823493538359209706868977667758957598269115939704006299682462921332278030257860264233644566526210255760728044413200967378898822451842706253296853631503917375929544194513904595720487134103322298519837561619857873516015239546581184333537515790272051279010856049365784377932716195542484702336035262485536349268990736905925501942406559681222842482347216594512249752725659138552190215864235642626233486240705070182723277782562995237852753005141592760546861602058486635810244489790812018164574287131301973073169248439836028413112540555309675209714718400225874073492541922737356645801189024064459677995286368544956703388271459931698131661906284649491079681287120343258309542337929391326967762928787206780685365981826564004474694351755678404654987795141296624530779946957024373021372365944295290214427606411162144890452661596738386961016775568995405894736767200787756910806615310953027548523902998622795033000466213534416829108309231002163281961905025642285946220634477496230744794431364161811585197653768552456282456074151016430139675674958460670709849457776964226001331332168916523677237837280128975021221126889072933959912476690112716967013796545225820005312293942211784783824371554089193840337627270698236277267497740029030779592758094745490418866182881392527608540527436301559722865199310025706067859560708719900083685568576463652146490045595675298093554896184643366176114475264091805903719258577859832032039850404733855807267479837178157018606434558647100574152039382992241090626095977616418431558460237131220187867995591071089634660632472701436546324268246789973496150843257031823983351028444231812888794633471350150283659488481302014156923836539449242021875982040662863998120989627255197408804132513431923205083382482316000784151986123318227887488420723377139427480829069553159853939477851404862093234159977139421636045598920143653709270629321566345609564285462004425270472835516872508159591139066419844085945161352111669900534917119863161091716461338497698805303835687380537653182455573628622110898334247079206226910018666338601108388858647185988167115487496759212035367020477687042420312604603149008360535641677812338457572608401471801479089107753400030827092195036527705058866461357152385130117637737398931264210380909424712299390014269955583630649815372431858885672060749250049093771273803780001584417600139097390368251116583352616656453028713288952279687287795307401175688701197533978792418413255745611316439802363528565936247332283000708045643090534785795049405888942915399183836104949625890142782649925913065119887568275746602758888974489633530793640605214237629992402001705574647606893208734275589238664841596592881589024033001976415045696287521064164634578761426039921757769302456824396329584465881458630823756983531405744586391659887221061528351217374747849369871222237587718335903942235346961117594126138392093383901836688086934021098965664485418452582632410623899834468964279846330542539303639311536296099484513081875564743089622735378917432552543986029529082505096017090226288418461207848120866723602036843484723241685132239024833900508873171093636989106211638899908002497062348546587142825750528426282284133178346401758102522323115590623965539645182506017915044672648966781470824682548935221404777637208010155834785438792346388159130097355019185686345602159235692980070584088998845789116428515708924668141124770852971787593819929427707138340224588471252106864333172733299198745015165138752870929406819774782415136744143351978196886062064385115815431458516002441280940014539269268288298995341031127106050482506479808611299950840747372916095319826380319884938968343553638788873309670445979443310022554638549742999181205117908140266294668370149287954173953682723886941130791860735529597514155153325028778790913653168293224956760124356530882351084949030033076280054438581155801722955406984680488699719008204904541554832480393100486874295212196051888399585778535519323337753448259249271082649462289960106863249878967815467111690852339836869690240348951419521546770529878548136812343124425786709406982665967421258322562431266435923212132506253637131558401956760357271443683359288863979548970843919758034411650605672158071876921557903022721238345709771693619945977916165818911969892113096250796914954920481287396316262881880373259749869175247777784099249039528635965384311475111591142962104256447416967810948486371153101559457528105659496829417716664348409560662009350540803755257131758937494093563988821726783066031612804464665916368043399966966069666704570131703869584025953403405559693239508873497712542219163363040257299798839243306580381043696673819652263794261178946625707578463228450969736251093841107385981462696822435802097187674614016180054062089797492036967047546291329578686312594432417054694571860780537381122909949336862225055012703699980970023103418914174514500320649518653542310677595260956298706781119460906093086137462335041797179910764061839949189061492920268036878212233302185931003908282641884211925857120910778396657492595494389634055588180462214425853080835275523796716694134029524958952120246701633389863311567196892458537206872179646744729728566557021883775130563711330037679245302191733164685400996435273553615702897769831604613282280418594569806213203925514763031487384752676166518217355262745627355726289815420116255555697453419008377553576891028054836910209081918486111366484691743079797800681720949203367290656397958577109169013843091201387078032241331560640599486233397349933457928921288673244879777472181112857766435914145441896214037590149561281174509287852524857507874006135183652611201812343763142132469306572410373118229889759073036447130135936051451777611475133740839327164864158963426685685877749737798709539851823920712448513457154859668105792396551413100164093573968391802849696560862310818284682898000834457502431328213376916663824289332005122506147312206443372295039040131184085987436778880135215379400607427200284606292348655212102482631549588111729670932801793238776095320830881552566326338189912419094194033942562409327316571669747043496306519904008922298040208329017744584608537610631442238004980872799206686503834516360223712773597126009862978702135004383489885551555367571815196239911038093117646799877224835735434131506615716248920968862461890585124327018963130770659099232087745709222062315069258869622650232434841867723956564380260268246448180435967086834083835241323977119546549608086505790994690261170877681608216093238894814775081797924361261073523871741848670254963702858657367300295544379804180814165263380318067488934015067217865058967128651435207040338957171064245748605019029244046057234573617675918203079888234089403869886350234434739192314616002140141360732024959880449548645762608265027042221631253722723809439642573853061610119886126211752440320421398983765635632441851244848575927140424002923002842443865479101064500456124412302731195576716284348446429830671944690960097995199595362864822979271219240880644158839232331572771951364310185001190461082274822192145627121944756867665676917599078758396810389539773847095101990424328978377950873764035247573036120181828154157347559236621548847998308550504209444771848512862717154733567480044531398491649358939144635211434119362614779485427123784504137647971490111430633090923224690291594016202977750654771295258381514027648474462021367643975143871494649359670282205326100722902875748956978723926890309939543797268686622678554490397015173820172780566293399393562596245174389260148682778489532188940853686440145800599057046649270641875697078393382366462565809823547633296478846001502893512635528984479542080797801140188851267453570102624162812000396634616093097916506827472763784574124940352278254104333760283380825400729036361679472337804123778061263523675045122288568839513647993659016213065036161995033057494834538970155288337214685173766208456169888440066738994696636591343527396521083140020706181068647330831532353965764771900709383173560412886820972561711986984147991526375598368011988837597967204452170456070317125215687147787342708386454445528759810858474391906293793062347428262942943563357430809379667902683919240750275996414832545769864631795524283087328485640425184083924277949879363007809415944003466647883060916660694937426184820736234881844618088511393857280106114529983660749703909588146204911710436659273496341660678942149093462531014250723259680310575252879165986156744740387867132552024191144958391816332426493365694140124407079146314116506250384136362622544799202856429190414413792977475452507939264045563548094103584645135941739193298239236566835040984916128814739758478921560470582278323160383343291631335801031099057132083550638191360943838990580365743461481690928081332886989618990826839047432051254561012804118521313331571498336741283661222124483462376545210787448600136415941957000377665176573361737215857490419758436176268900440203068552422068352804538857557633396451550648177525915327206322887408728155519470798252239227072565710165106530241881295752375721516638806029539423370784467511699922828972200550782794791176965142031734160546512335500237627422213166041719940590829462090584848389267273848121873279368569543515888489533996114924885091138917553875119638101681158513925130837771705342866018326064378547510890601633152087582270262210618954814821076071961918150691724893731256725890623319161378003642958162068111583978502163176256006129688632505725928630266695092535083672871191343195540023701208167732946197315649630970057775228600922123074435906802459294090746724942434090731281925556645607694227756919898299516389238678760875676416255847549877942122725673509665486818651492884749715099971139797276719969795297359680309278984274309114384803667468913311702849619769978002987352206577774421902463693727555326235059779671852394470688868519355967606343824009835733907543780663857213382288870785688006536264067785930657489430498075329580510495234120615536975860057465463156601538087523409176328879025942942786708421440780124026631119905748484051172593563989620023893721542867954349192388962768748934580146839471726998269636118246070933030488169103494304394519990985360673772012735717494936284264153622703804825635633084869745726757764963042546034570064487259837829552546317892325960754447504591717037638804395931630400833024082403357107612295575966889931242077624551896831487250559411108815932970715461201258225251840322169808300208029889475444840323505899200680378125472552016152767833036074239347084250151653687882574363960400913152107082657371107876668525354311760817303582057041561976857376496066388199280726651552316251963324772336914232095894548071686468685340049669125097127588126816055108711979115899289353660171657449054815347265088930214086690262577794797278100764966653568119778608572208410846201124475988918109982999903486592508437684317687408383685349178573109537582173487812591465437910306143709647445085271044928743282489191185940079329181883728054950272119333550373954266830519854159400623728779545462032636258479019819427790069955154853370785473124790424480064765981040454646474541223498324397836022607371405840882162605170853801474503726176872733994723481000550103668380009636329949505047557254433681991722587700594224499049093812419845099938116700643618254142441083443242843869369029989352609994285455600395455911377933740298871274407744629107355527487786931357040478680202905867467501944422784344935559872536429775591401432414333301816668920981747196554847310036388828743841154683866620198392527661431492014274103405951947750562552027098894552535705671949804954329787543236819801462730936804742132622632101658788000418361415287882059241504829170211606843729669548048757915399057524366412908871967252025108367957047489966726382029505367809079487710308675849812914267842230272057386938071000582874468397853849993764805524154831843698908929460020527995363499708848893223206619689335661895831897589221929447042491766135332431415989342061666882307641195711108299556418865684727453194904960996745619210988066122493497609071647395993865818991765883836474654837454300303391114251169896441067904117592223276090479349715097271132253145382884857014101182524825810808697268937929541216547587388351621492998233940198865237626376689026999935784104996611736208796861111156519180799001072553884790349669512034588103650195307136475764422318114109492872605022803126928364766944076920613028330263608852752445249659230140792374420950734655670039010168457345565815937222720232597930749757515789864308760804166865046554568833096895311946085846938742021137452140351328846110424697342187963389415091209028060923565008587850379920824958615024088670620994628356652774232216005419705673784059287840194271563646952213299610186804894412695206979746951390662918963095446217676455816107767069425624618044472369929536743295768171381546842054019113946017743198103130656970626298995079402389463076044365687881380213598507223410464544277950850007080510744876499741400489428390841108283912199967746977400333286107410090777877083294447382494360142823935903930337201462620006424957205552675513296390918273704842773277784563544423030171450564378927745975448995911640139408484883271827473749074452924380223485912266471448242665437222781455460484772172252805628965472686739531926339934067616606478616948893632876873611896583289300694167833472548408787702789320358379009933794215661283831694960785161778241292933256567248630828767298620416247126291925087304682134244082439877721054087107848654734156517044153645762992820758547041021697398747335475190262704050480965939876287216579144865354160094500132688796072999724946076391189150823533664972986688465136197549102924300690751410319932213181491957192279547116116299216471178526587819766712796917429773388464079098526907542729512736391813953026246348815747311317918598942285193558677556280542071778198380533842715655552880242060254948972756384986247953391900765976935302403854679868064584959648241042404524778521550178246542173568259574335988499346661375730428470773771114528259486946907607193221358246673504921917074180165125901065129928947040276672357321866046829064037888806409877835586482389004595184577234331878596546466666804756937436278235065682463585637395945723496551161810369420559408175940441468021276627252758228550492368681407161744371152068710378045475042244712053693386295957496057952408743349530290974990248549299200286504593395594078360783651772858235772782938200047399557390166760668627743184877709271412943902833453513859810666831166186331720326249303413585908253065886385096378359042116217159215012314318617366280102088960763030252885277153811634649245453790893986503392631437339911201814064784693108518582445204121499264432411970039034718136122618244530496547787829449141369892769556514560551644670842399742177473317470068546720555415342226398737506636524918776200895352713511888045692390876494155482831015185126607361562138802697473134366926661608362704775360195095765833696687016270677993798999960684074122423686661359987561139441919997851501913594052159022365361071971549533561314699400445671005406085092574800644996039723757693509653136783101340821770114895981825605904230491536686380771701521324150636644176690081255095573644572273745593397178821085001941731625265031073569037640882481180122198158214742510379478539229877866938799016026944965886121707841744258913054639996086519521285900478817657501447970797159174182441333550995115700478796838032181129450586895424299676848747497043714484244292100392211617600418486759419654892898187517733500205374455149775794178762706664012503779669767844738431470818657875908191633226770589440055656862838273972314416432988338235933826765413734394011575823353025230641629944649416381124283267724414471099189013881703985417256150018659718158084313199917453947426487334072681845925256574373021175975788547687709157223120744836161881275140816976567133974903536504884643722144698178976587819712986904563198500870078945894054690863878321831809667684271806642946025281774627388124405144165152414001351834445210540211660603963499781274521816624215028263425220149756575896576007502828039431467866414834417497624887951661273877689203813127975231325062185819958483867973433194484981692449065531952412860214387556942947359871803922479467749473777404770593881617212049616537580469744044083239254416563894909407612117719164306604721384298621985871503399170594906486642018608762615794276144523575423848052455703307151281769786636899012164119364007380382837494294931136783788119961773390367175512894134505233882829555967648499017563599208237378751004450696982979076878679197903761967100245025181177983168199429564906937494997919897551117221660342240325985725907504477659992226963715025049822987341220996900097801227443617324687359844073416701320807222390076745716199899289771168997912352512746704029418794335970701299364453514551089115568839060190777382385796408255260969141905652343454605941156845918291158318790477313222137521023373680595048099662354771678175813708862892822628216338657393408509223028774713824893042633002625996969590578466040825555634422165612737816174492824150971173034226337414724386470682962322575930243600620721295377129011438421870023007293111820860039030987968728754907914875930199462251487857666611925271691852713240565303533605830604595062601279409128354244468011621312353951180525815045287295416642363330760437912394512155472428688851760880666948151344291001694922136159205551678646893544494991666982526506988224482860942957513845620015435381789784724251618370777611548917131947300856195319809295045183617287584460904577463334958134759993555271220007145650429715721521954902108073648849197882293808835816831937149131592682999235035260344550261139998380671352691314959019656398595807995844313229326236347907903838539542322696513566859910705411359676542562408052461581630295695397460418462286934273300246829129717650545010425143390618617377869927175821546483761979070082937398837881762359074702540227885792251887833556739076376437173492122707989793016199455831830803379817890353298911910152756499163058190026816799356376733255084382125730144231436762964519572818528054962045734541149182807176941915496809198982466408700097660476340878827308289482068749965116721171486835949538871763971866588069892502870202999074484679542262504960420736980146977214045981914467294974311480719020755580949950442585301044212346127221849643813947858752437226783690583963498455587165050413554318063139976792604616012315793110132788118926383034783368032204576452149314957304155157902869056500517327806465413455395761686225331306851603880460440299565403457635642069114212956649173045482740567565476289556455907591463827099344602279651139272940384264823804961100805326537735879071733694923550363713724681630367078249900572793298807309985681507515909275063261861821928579493830043021499355098653639066409414792249797225802112926326247535338271773534351807197299096610512147692317229101660173672953728186637947873242195787437993031491477088446330392035173712910917955805397800188868185426664473663954709856563810942466462012372980903818802656132653118076087270543764196410763791213417472207643566296639302644270659760577484063985835085614770287034967475543126332545578933405170308993596565098155909492504943981498863672977678049648029940257922634307430695645535279036873357324208894447733117517406390410413434249430027303503275970128594633687231535348078071600339166859077323506634661931434812548125404352842757500988342748094307768422304184874782863956469529384776780424253599982956633073409338427582550767507120989521838780665875102152066886716485661411591237254788662552487452640631040062453195120704597518778456929252149005874405848589011830812122196573191074554774943448290092633436344087237139198083466184614032792972039969909837085836386767514513357745818466314122268854135003450308151445351462097075070550626084818388783128896323742792025340041612262501120039791878386051620589388083044779809165668063767962697372245923834810482256229594125454331673632458265967134899673311430378859442716364646215790351432513954756942254667856826590189781445762562288536250946490164787712530543339543451726330398046408778198975731759563122678627007083231283577349021522778781657666882861199248551472953762728387690148520094627029868497442757923330037020910999861010000422263760761108732809136414242735894558466788361907616006798304678100936277205835892038738215908666155348866747840565399339954360982389935365510628230497532486295975854331793663561926204516192673951373853425928891113148683227805178949353644100539125107376989564255477679553552348927425717973490059187127287620302348371682214523566168626644904067557584161624483330106528501063711585255158592314482173770442156117908646457306358271963211380889782950633636286619672070475761522522221285949582878586609455104120259024904789401431158829137125779829230328405003018865586639538637417528917150139051417948534089975061414155167152746296694428238126596701124878180339685451384781394441687533499141121824624203630038608878375885382959174632063998562068872486155155722342414908762397554140888482417152582271356783950579745177948626241210906851488345335782371832490833051099474227715710300438846015103118778919233137726550533465016033649240873971185615775767034523624733327562906271811601834189227817718786231893667284954616290803497571298523426262503323736620758850835206483111940672907387235688937616848260754647785931066518874143444828400597087513771920317768053988845044312369811490881224181243567156938266379921198890787848724312440700799500803144854171188858886744191050542151326118252017305420832547183645518203698661629835436055182657858070987331456641606582034249761533668179447124517845839208336756732656167367026964039067810366378872192392342361229483814670400608623646836860126852455977384914327950690756996093432166273303829850852721123245821502345420849791651306219681993700279780441367206639964333598689262728052777722836018559635744816008089478689258828922292195564006666549235347611614398689120057356115492208656291776820556127853629648572658483200209160890963500246516417065283575907555824071902563744508216599904412010478364640065623570301059354113475907378437566730079662344398763648105210339597885770324214692600455635661356064385982684471397363019578866791837956177960615966179861746389550067524705084018004661217788192564810596729226748056141551266465857093452641466221012439926522625005813702046377385859885890630268949930598711665759415355724762314348687808591646374014895819024296987858641685185701081869090820647663588081456543096845257105498222625859030931426365059424133353036664557575368828841500897374291333507137318027497201429468164345104443519432597544305101955199755340873690807614791217943555084254818071225451114902733424712261652942643843870839071715794809849358203421306138159874718496238646251288906449588121435759814956687254146941713349925925971472636089887858560945709284199993811383190711151598886733670205356808970770096056849444505268826987338128114071222162233556651368390242553173963544320097804329528609526984170078710942214950695884189718046674478622655470318808594548677611597980613148861264520775691452697911495334191589431875431295877419846416373392619773954379533175726482522343552701004407475208299608277377650089378996228688026856432479824413115472707835703313618938360244802105096723500956123009391493140931755010774801769752185802115081169931914122200841419301432501022261457601497095058373239628681345880142720338284648763438932807596966643571405022547305450292289463797568493881869977774600878591217621734641832980373699014826869602474731564259224529044952800060647388914744259015114743118047812015401443554381119356533495420104921753919113945487015397197319697616455937343995722765702621059385822907669647131419761358036963852399281484700094272208271275773281709323592673809569443199611811615126117382680756381178249984918880595888884073015292835716037716982589854884145028515448996626422341355143113901726629244679576192640717119489816882773601832223005278834853901602457062572495246902482776461531116782493760025126793412801583027968332461116775938293312121981807304310658268272251460072638158661386512124645312979349009287126600378413024731061932435823732040053808924000085322339141059837140189862397929391485349752104406410745859616075900638322766307396205750366894412280565454740556667267673910168422877631811100912343805345451062901166902510219736896937034138002565046911957142466114926080015959486531489651614890269829265134756698600144945550254513785347530350743282578293639911873473037474814128829923804394108539962327790220456879565017115709867228435342905014585038119232209197419073334220263948613254224746570487822132992707100572824733918655671415040474317780798546073064952822094553709358480710491825520340896275583319676067293818920378406510003486712700026917272788607490228252451178388971424121819184141558023486591726626296182296742219545116044884376725181036108633769515227684072368847373582999219130744058640928068467513308915378187568521842877147297580978124646436802639928447825674045929284373942498604957208467782702342041573407785455810171941428161190434315111347463923855414931297702629194287698539930596183512204696199610708579045012924763169247938448237454704928499925352039834559129840072748052593014765981643483391552309322982618106710612680235065281170487719756763309072982292220090174985226422768828370333442479327145983001999639767819270511775259708117487487052970334566951335349536666572271330987265094398779271213912068130847322367829795014568005710400132136378801395644317505517898170652529502225626027998711388324420406609196057082783282366708685869220613478237714823741235393159980285244159743156671081001363772748095864542619606816961236457220636708343990909950364530561626409837575104625551917278864828655702332275035248337834869945423292956460272507683890935472205600071666244577509997806756891135567274788425650877176531326743185991547469095706469520602127963148855784687467662687935930177722236009888176934992382343120285396736983739709234865370772522488040929617317968270430312675671725604040385404037454356828545199109824508298556281744298504402550585824668366873114010996851661821018638090360974806900754123549138481597174972857144493210775416055010507635957777260275187435162112919727109896068003813642969881861076957543376302857988646080414239032591333761206722877753299611953975587515216080598247041209689182333542861597241837997785575957573537611978672033975991461760520910144417585181668858228855072710521491929173627668397171414424796786146508227623527442648395057506657526642683412680565347798594667713293241387386162936284325752647739792192746015231789490749131218186424440760156602519226130253628231205788443373649921781984500134714595279474483799985900285045980734807107676999288541920727442409334257163990253162124397720978918284824348806917082991953303441175451319979834968602591613193960521406026010702378926254350528190115210002788525242519535727495469812610280228253454201852941032513611267843308577365348026235249018080161561548690521833479021331561027343095411576014876075867393921625480639982361045093530028071615086266423544615707237518244042678574091307452733511392811021443706831689766381414245520179146536909934089239522319466178735448758645754700676099506574729087315671810745038678871729365873873271346857815392026777945228648653238562327318720688180369168795310243201655008148625505979378705658712313367895634586054050156598312348987098483035033163378768911230781242702274310590391460836140994264225915818312505331878907586188238005657025505403835617288687444226574546871480954645906179611873021585927198915277459894371979593776727505677139912597573139389257864591387891082747365390766911876516121509244025883802942108152184973335146304289889457030234151254108842880542810133536882425421782706675138448141960972043305265833533432406011840259045369858251933385199508401655570968816330611382670264843695479063852834281329513378245289140824651094974305071955334907818758056971173686446221506374403785180064744709752647297165319896017417220783030962508748685143886885935876342468148750486715750109053499236516098368699704059790199790602917532099513050159081038811406319527307529297199332646410491378672152199332040370602996219772119207823217243472632809322436736310506605079025108521012747055046349768400456950465859933681680266506286665577441377585064358457564026246746498605550362549004663423482510123451679737064197738451212967043089871367053704718624212765580248848255005048981511401803911145043564948414010662086413105653491412963378161942470910519523767849530568652263521388558223812983594150997319752152241177916096473725027015282201358221208253020082459867779973134221145072777400135413505899944529295182422983615918343886473517709500379938343885349077844556830924655750318498694028261283717287139143228028608548629521055628424478371230428181283052931773397758654847928574172677706249682342187491594694218929174088431151998219131285690148958512245956879189439125655389743643165572300978227192754301348776999627221884893269563988552137800564935116224940634364020941349225644334291775203061326690061752755361182880833624629650210131346313341755947785713543009816564347164800691163348142024333879353155541990019409440517483636589433089047264901075139202027395314016757347498043650179907728413852425068806862268522945035120612217931862552654567954441936763611950967470157509399228570627370241755813638256363257346230455399857067566135715179533496671147541115349942044156473953690988607994897482005352759751989651267787406283598124514791400920466609409476273097886270251588845744721751542133165298091821513595128950611975370189908764828793690226855224515626688351321431690787968546715032160006996443747051093823466272818087147262716860344521538446235311256981581386784342780397894322578177371782850971734943242134140068581992622470650886894884026157213419395564890412974882084216027052948023715599417356535819705944007289510257748097410574612041173730389060386207490146052665138675810065837395517290094449871466417002737641072716074330165671745674563697092701973114338220231766393747784276172956143437220040663932998990515861012057584624034621233707609536564199511343623894183354153587227637448823193704336733342803548847328795431321550318205353600844892375634984833524964893348417313392560844202553511441559011534935133308073869576527275467587342038669769416485243172598112286351223936686070792492980776470847029885692565633677597782519334106983167224644952970305946428560937839069369466510290752659566254252743519070309693425776840528801406812735351156973765194459438525656290110803836907349881485573793448344381406707139910641851702922099546364323701460839256353652028167466234136548102720064050785133465250849754881311522520196615757802808994666850848297489383719929541682805299821607864186805887929371892324836560279067586563307503324608775021490803791143401011962098274768734113760875145784004176503067667528229840653477589187506568379854583840358753446280976839445842397337308856941231948954613331528343972259601421542628779468711371249623466927335566845312608811684273765437296053968715123004169773707065458101392647913011049125419178001405492395340758369202843118581638284992969894462548220856130924865783902587253287323587952030236221206687606177188361107469910822039674021440212346517889919770727769928579885115235478528063794863231645899618840511259154335069881441962456541520454734021057970529028513780259278478801310776777041817465472864312021818903781149280819608429297140529748731710565319253031486657185751029359243432913673655794930150203896348165284442578901563782949932940387545182778673154602675622713181998670504212257562136664651483766460159312089045697501599719735391607803222367387022852201536382773589145473393779818275934340323574600819456008800174888873000423429061349909125162603450091722966858591474354729280929672073230960138498853488148533403617483448582591548024293750554883129524379128921502766648947844858238160844632912960733084581889467623543277480026560394424695993977158512998029736904227407667156181004087757928344767966322568600787255263484769315571803355066651056819852853709330822825142454437014279974827672514027441447000694555768848213482344606398890860231096324166860609595166391930462054246356479696041074567728744408737100215264012116737652498056586671474939714198736699256708660326004938934731702715759617682044554003930268131165574865703130736036394444752686809828751766196092286522523220195809742909490285523214651287785609480244800844773344287225835242682817358647299135455885826287761344514305666954879666353330698679147411995233177290472586116492448305706857275423004087861771431435431253835157595035832374960962626924844453104734075775281988002236328471528437940212829792596468679852733161641487222181109354496665689483008926627038038505887829762738536171402803168358949224975034847543790767561155795386384977687211461627002218693435659567533917888471717197674385455789239417427691603052049015221936847289249471065463498063312751792296273828362245536111060734993976870962668612751550006569073249188959703910756851589348141153041804493681395207724072871258625254903538009778915112629035492054429897160545960943583403290072805201202029568286325313748233525063588841306479108846504242184357066705315915963112892621119321421069237995522752096250667106740371132473982543832066674521412793563919099115082825364941263070987485313048116590749352934935737890774473352036294816032239899254446145497738470890647871995414530903050501641536509748165367276049725520211655374602545410881921812560183008004455647123989590069753613106476512959541884381524490002381909120386932967752481568110476569465337098977900001518303123429138354758064456774601158274781787276576088168925745925056043290061289137391839330217298750747636438556837133715514412064498963199196061063830650545902277152908459946505860641052058039388351223107794330778616399338366193046508012499404114412291947740931366463869165046005434763679288904136777120665289587731807664072096007159212031279665828850657456797829628307038549007954877821815596675304921487206273586682735708836281148234304419708495622496272341278867540749497240160467316613298247371903819574018529878433282622850741919915421287129317194359759806032678790748893946107534811614595882952320720442406932527347285215301804831833657074537200741778996689325742898163153040638595862032714689721485752711905493850395904027344914826902156335716490399500189888864534034293001218370822427621845596181623797523745965230096638895592817523434361291321475931598748964213107784305683808193892933174562931681650542665351881107871115488169102751659801117486296123789259916933386057872232559051056580288227429112795937542282796745433040372797585317620872566793224183129600413333604872608561391024026350257144699184142545752578170390360531484673465793713344469500797598399291153836656048911557405176583298752142759889349649020449542017335981164650040371473362216766583667389588877738030486138854488597144241617179621104763257899562219867971063715651124045142527343801685404980738927724363716768786365871288352771239048749073766190350967563310556362801589787442055936428212710191401892749445058289210169358167055610754862271038334595046788675053107985190507918189190636382583577951820922251380927299931349477036346877530558935872424258111814635852866441375094882393056976139180830427693412506188363779530846069864882737649069973982454146373397364276100315617430065660626319243764061954064000751504355239107505459700061298760505963935383291515861535950840504918677369829093535681919805256609946725455474105433515545561769932492378677902710428187350336273211933088698760414164010113600941629793789740942732676236604630111140993360498881342179063727092704376626708029491005672491871863321538475668109304718740851037786027922432500012616513187757603098575744045256422279806400022932989185329875118407751185154152392858268158502219103297357927058164282830129962306763296062859326419627193169277707565378242950757112165901750772389021468946762231269089693212809322386806111898923531802321680017936617813363801379067069018328931467342022307636071816835867991039693408542582889170725562182454551576695099180162246777692347472078199563192540439290636615254537880363707283857120271233322047247142990709361622002615589715457038182600428725943764570889338703022369010450954481497046268404649766430627968029276684988136953930417824544784689081231441495121734205173439423272741199677374519457701497517239288759626381282488856573441554266832102609104997890039007920297044421037936406907796761889911271982463256511125049329050889791184031226730734315815127444272578292259145844323965556967656595249761261068767849131811516843643416251849932400689232126329051363106543422842424640014029573258560819224959937389827826576354069925581742612314348368606734698169799314680014438465376373208130026853428876375514923657022637268756235606359219658062073338493867293767278085227683377588608844485352526831803412856856129552787167076595005765167849905472317144140566369148883195409696116651306271759869478907218940407825735017044858335035437430706644698538936480444720407354566539797983037974667109773131270032456823696729821645440652050952054338595609055833066776554392519047465953828533678585602514395731829243882384236062118709887496290270116615605473846165758363247749192788139761245032076283481929683602797516591522950375740732822758948878896145715396173439346384606305129264586840312227797664669934068625424143132462879337875865973149906630504419719614249109298658149894558961259233050737049370027787666710232925565710472469648564558283928487548411819407668570147490418596122822749527061600840160013661403886717870557313583306741289772512036671890860742611566347968108887776123209764843234594976937589160919525674134933378214177370223365707005076844354629051475870152758494710233607929656618383432507766489415405805770216748964355760498090901401696539333822548288819700069220846041366899951321673549032317566269160538984615869563994305889599407831553611105259014500036267308851146811216417389920416934080803641426087819513561215197349643814082597927682200687292443514789054403692490239265225352862991900032406122252252663478636618712446652854593959222236819270359085517981545803232504279918836097255041558988229056433717893179360060903654677323786542508891967497094475551678684671603428504463070784845115647969899881474750143610487428882931291900244006085110856718234648857646006818486095975041339101282194551209886000310567872820702606040455242379841601957768412264608877968820690550859688352207417339509475457491517558972394273003200064729150047829700519952488756293087652987439517879682453701690666372663357645686195738634461648926839491260855323218678675043218392355276317418674717718492207792129560606810573577994442102697698411258143323222749865055709935199384071322120335092826592109059898042109081421020681325264365475552408082112811763551554170668763072768155707955902542823061655534148010978482040784228427378017188874179372314433760768851831366756152918659253034907483038918137723285938590518090766796954302479490649303937923283040349647195571025915610724229165327158330922579212388445778685756341120010582237696508790045622129497834331082959991704689240127183074784643674514614296529331618774871860186151394179533693315012578713180918050913273333840423455311013157816278987406018573842400672868189768395615666849646992506628342031391116344068187767352507894442757743253607401080621977891998753935426249959137714747021012374631947660056953333086680542972495836440567476652235553583146289502797851590026445617153004810933075388936272803491130277511958201404343614058764264088311234977088241939579054936755995449409477122569225699102556260798634112789036020862028734729194727514298668906715465197473452267669098883020144710313798932485925200998800970338867797930949191393255940267620453204487925249824428545719696756068422764443435034684320781554113229775060910918844216769205577327969234153305511459595871776538574894436312005088693192769566686568291785485209966191418217679939721028548068502293399217394969684297732130054967992928575492843513040516720820216460597585199130945022103450356992285193591762421407796272790226345767553324697878456123002358707517495157555916632804080639075027812909322630247196496946480932083573769581917989511380256121393321247672308202860850306342195556790610660940449112885762112788772872809761256126967429355127865463718369833209820647445404936768743974555883596171121574166844753509847001257694935982061099769681062370205106535801046713160531312285314950091538909876692651180907788639827451273383729756919720238428102866331246887814202187852338238679503751703771918660950151770347804625729948299024088157429930584390685244119671980142797954037530049898591645363431221062224323726814138981132783683379892074154103939562527461399403615666067349948791974316747924610769090554773124008215821867981315601590554147894834223470440246465449941642983825907817731207398159380054559934364621647325541318287797780586000013928489486940865968359720630107750506267847161907231161183138041738404258549078510522024481560687855065109263700008257517074030849678054835034105944916057578506315294318887700413032212645613629628995563421675160525929596803265348779762450293861834612000811547692531918986884531267903608918743806967824974444478126583857761646834089628643803350041242963744781723252892925269411635084090863004946259008652455538396364498482365013687963561103053319171506761601334689204691921309863390454451765007443514025770909899662614512535741026018725484206054205042527712820642458483932958334131114279587748003144345501426312009898390724492771578073700764543578140332283151618131387517975682136738599783656931763689478871024259468707658208540484398780187201511367419247631689145776630177431542337715280950226194541899340975728656599015944214382235144126385975664248468788577071265418248470768997320640333582647965898025341558999537900608861589550695188761412317583272422360174522715134046153225544507727240796136580202140515296029450282749166362022582649128854639598571424496632993698379702991970694332358399008662892115136664979687273874708804791979061039875071944985904922175442852901751080170411552841439263267616844597851923271198444040982958195971553795432260391620695420001164461736822820496011922081961676074319238328071244118126722856055009943206735292906813898952344735167628279448304989946547806471444214416808059677464888530302677755851278942810474060267513415960118829577590945594517520722415662573855229856235407129942634293108322500678992106950117357894288757544555423217350482964071925049550766614912137023334632428326308560388953706357011619463445487468709041648315033863106901516058090117166601533202733571838111140593429547648029002807157912557883087365638748221221841007315839425652853386583828900398469120548715192629586058570433431327369930231479284929025676128335120896985523915196746588537462136725882402616559545179188603305765412212336007146955395253805662874767719067596750161496669721600281514766623233370836998423919213939901736669566488567534273873320502223188460314549938670326199998304988016696641351827161975803623741168199503496710512016983043472018858220785745775416779241044437255240166785276971760703805041369447045221263824563925300078310069313006505602844159947939485020958122309164554401330379189685439035413584510734827336479213646597385718391287660706540882203046069195808067036477609465380093447585487112162610073035359852474013184252435147711750745661893996738359733650236165505458483754490186828651366441667270416905309527090072392197914839473631179893571548960373119755483636238599455760292512366593928734915314298370378218573721343729657696592095716362104581263549791552087401328885726612013425829843716685964141870373561456962526998857454193863824416199781308196211688988700705200481075654271487269853716480783511233243263037311140266595687382445030532983265292328859356655010538554672220039376626528278471221660716626459596914048157021853301463245456935437962414891228356831129264711943990953769030278772692211596606901652770102619828090914056951014241269647732434804851447221937972811112201043079180787983991005162641301604639830515525456829203698820405712438676625976209750254863042827025388356014157437582468152964932380939879363038330611204827790764264709714450134368877604730237940249322854483688126409105155619100499332182280557234279914262005491520016237678623687259976353833088581280670834000614921733978255643703562530628157931236014634928355888440280530168655726420615453117889859835082474178547195769053154173446071039930735050158876805624832169254227382820562600157529067616342117340075604498106268363056808228477284293219174219337499434822726267857006066627569227157874768520880555207771392459984250520164980816127936151599154165835167980468494266501628201637580933239443898978066187986411153731746027808840340803245422749385747157678543695660939936629844849853982391272633482464448585612812272383595536787360631567575415300989493660341452411430802353174418607204841699853502586889189649352493717204013725653201397535022574979204466467053846346708314813353205029835416317570741477786066335628130271871897031906449878315495062626363722038008447664523265737958671627203182077835956546066455655154808704882385168331852391525741615616340368313923257303146275264387225514711742994825611826381366985776200517863398212518379262083714955275034576094131596722183140079557962461004687555912837967507281172266607306498464424032478750053139180348720074867463030269016325813542332309144141502379360200537595533414146542471857272155265666489578981389437815869668751401880412569444012885058712295914102260077955559032538462632351387729078379666267080260292975473330911343447491224344451408004496588439944293530556008501754169091215053439378970203172572272087322848380617073769601518216731834333331202470011001778412538849518608606100607405254752556175118977665655752115299785125864721436274478268638923882077563215004282531554345135903702534501801279002457640707203184239231003137111498393533071547574619963107772418728089700202556604528591129092180029023986022324283696536284342665439259322489982789593544605836391614010637495683062999619659009557615847605708963262185543496472067302791324606174444264069073070119813613589247115527115127016179378218680970041977321263481180125675457693138597800937723216068286224512585747307605104495805313866072227735244772924616058288788923596754322267631987970485303540628308673843719511496737819133291537918554388688764177933402602638789656354538675952257370087686080478045124291845429790389087631038029619989756432714212892731460217227169652601774518541826362390519044583479657480908869427594834334442492844671411931573110728867504169910214970323790645429099539592184094574017551621894553075687624835150324276301585715803239002740028046306997521365809299571335264215775630363915545721374720434931324153920816485718626246259731675648041225530902324168481788742198096653171203117697430246105310450158068218934468838354842180436379796211281568589581097146528304098732672687159606663283357688951712687732915455931652833266745190513548056790193709951990241725943318662237742676488836566866396820977633196447545109933072758825026019974164622398413962748104876772390704967164620471076752767526830379360075053164536118845692739346236480174224499043818586060211893434385213506445137723785790035515211214122333343817673200981030306093590051387363024241130964112886375103739988825606392107649719861052887269604881164573924170005333662950464955082471482023320206299563960138509413492381674090977076762353595327897124136096057599416050276896557133198122768170775916195376134560577449386617983755432665711593799635067357272783338807157716174083631171366491285861131103322987201339789394836579742024058969191497734720420020580472744353395202553778764868680791647403762593424422700521478634146916002839007753470442399704218498654589876945652287438178219821889439358370167709675513481316049697834559407445606025402270203375216119499531872603407413447889242579161585265231356453567892780252164386399675591938844803787774621719244073076317466013239245868674985007108417116611615532675046330099261008569094519904502964550635277798011138235694556130687402347264447201062732755060593182076079774843214875498175929372132901166589772893695008778682999315864380646519977533938210906484512661771040366229808287425958197108989648819812735400175236536044181148347330071805192939713868683286745042601537356857885561326847282945325138283797372057948028534536444056335848806014376120514013575013374441116351554229767331777097581582708299940190907416981399096564898997782585704217896868155388566062062764381627330194025174498413813144549091285356218232730851093680762378680308213509155421453107304190412416568128088496352719952474880985602672902963237190302591164623586963483446473942738477961707887112144928041466630419933803516105688869271754915874705096771930096650565278282237387912571964611835138041184669841537451719755109981853092766307591858380105929233408547094514689126370540250808384663436962231705607800431160225970593372070665638242258270944755505501497483937305655341397058815241958502445806825015787146814224677204267818991771524299197067335600933506071365730028502435219576406077013247709308917881085764966669371310906952603804371244254001384054813679406595889543718470477842483489376907553976214575733985769125082809936306487960783369474564789677791983880323961780029329659603326788001948555090470167522653595160930622184932369447238830504191407162090109285900270564762706951635997031369503370724502732511375973700463711480652031954607756883569264453701616136555467894291075587244416085612597206135474662228425930257123471089508682207660030181620000357867512454564151734150223627765882124898220655483928147140602571287824106609521203199462301360212132386198195618415277584118146313427072951355808683563757969059981647034310639885856406098186591809535043158122776580369442145163144472395146437665030185313098009373585878563438267822977749541489531313374471854128083083712724899399984075699380935887754913798432044779257873764222086819011834755996207029676703224286856135036712468504626217469785078623181389746853007976810214151532489889945092478257896007769102368779973481264120030174725328372756850867794641124416201444417776744676490088161669019902350650086201609072625701473827639111599232881501372983286075833095673711524209294669818249718120491154867141193797954944010384725094612434996876946126627870466985756916440539414865983926298580074520393910139933636572612310869086872003319291180356184992962477996853463125639782441858840048206040088296324934335710052819905461017121082732844756727235717890807238073361571799123949041572217548321870809966684237176971186331157281331655886917274824198307824343788058427676954276899475844155302339932933251303875462166215235988518923369875444573120333788863654178312871408685714355107227600549790180292384082408407461828394328048730701237742156118913313928603746637611113007940790504070403713677893431365549799926456383762582879815228647697418653729810719865233970322775266065838906764399837658874798993693907014762674946162433029677480294899511741450175422033335791088566215265985661877220981604043280460769834096786222195370243071376637314630653271346784487784704730720918530534279577607751507208589953074423145708741620448478021677906295559990864448774503197046169418704929156936085036787658315746961161993049653477289031256337007729681133685011693069234747810589434902993153418699542351277138613460690766671679932870625144409478767365353878368988500571267162187879098781047659209552882355263678387312128175513914043558520786701505544386514993193685428591513631435444434231164577277830089109788285344710015359168568972584870613790326048794031443871568348690711880146088774582672330099192216395559019991881145677801596382974509018424922105825834242129405682608508805129118458352629677675828455203607454263918270858307898493265889570650800762033892876798666709415157497277007221601163795273063919733921933741472250148295352105189355330677368294464224659071299266102354472615583172598087799764768665537027824870772271733941819859867545908633042967798518115308393636975770960343288787294201250260524860771319860662696004939347649722634542192568738757686845675356847621030264408726967365192934149748300600200159414884307587043826965230711679872051804820824595381505842683271639742573935021534628508001510027571082793380069056483065295549094726699335916334640125120331557788776512021958809135439575860333294128372845383168122737615354305169107535627323156765235721953977366895606457425044493114010031135380120895246037004094203403400729454402027490441069403962092734450415095591056799514545741850215902104833219282943011622854732738545501171702581055908500027973439905763537975211381882886559791159035682136542363150871166818117726207635558910201916710751282098598149491059913496002288863497646651429922422842620325854848729123783119201893524324063635027377156791527259683040080752757495418819168845525097746081841548812102961564094965140756815065501738997346532568344862763196704054497320292034197430799707087998403060326912680244776828116146926964561249941774677964800374037924641254747777074127092009465000260892154450414138604034811231674210829483040287935103416904059431285375402722027491209904012181968779257237437358548642717828086396219241781259019229199473568955000850952151066301774910766627268152464143577935059711984234800334775032881991192503203762623141231025709394809643227353112501721034806455841050080617430176175366890489792555898372246140168357575321679262165275207711914859465989517751349120067949205498631523712449762025847962323371027962796675282167797471750013086611046203717379853054276288941671409715134216117208900692363349294646351802627860715081517172423558965464885141360621974542401967476660183565225762804022949489451274274228169155282348074515229666440445775058213019498567518800514087066856905165655013307524764339530573757201375151443425275069288280508743969436872467804780594050671403608659724702858590690207205375709149349664378568984349422995176774246097106473283846944571693248959713061253156390668106397294082447914127120058232084137796202808138795745691884638211598718380406607470346141761687171874291372160379282660914694764292448458945215801998076961629995184952064136408468928959204191693591770503729379515208355619879566705987742704341560495207753254475896987543345969360813270212400409922035453306603585183048664071965790128461146117455669226807958632323881180821008222460691844576836041853452351430808847134655051072591585081794574390351674188496873353809091350032480830657401503161774776172612690471298053135934929962528210361353009684360583321523767106720064645347819998207232103906302993494081843841362926460164127498960897649876215063267105289452180443270916801420776704606008894443674773104664098665390249960066419293718547687978674158584808132723228684803635596908768087230969114662395286412385535285350523191465453461277359804471711727017155932033597177168178649878117854143346906849264179678385452305579524177842998840618033096804747031546728815420785241365907410859421313648960444710187011720025356711635491258403064333088553905330352908057869011176672584204077038957591154596780004663932545706180342172342698085880482866126240072047204817811973531443495283216940478187093382211430721611277124912635837065845217981898831639836252375826968305281245206192065932005480741290973176849863940197423990935460614015355553512530765066255598930570210467205687018378880337933384017948098158512874566146138965922513203252169180531288709464698769434903082322880431432553321778025394245142336700788363564517205356201308705723349670192005142825606192175093859913422966206950773873493910016509267437186298964180889430002309910334465599232867566543841626536178619412006771138062297563689082764737497964956916920566372799423336938299708982865527852548296672119316735042207163132501760670232397615202063524409581058603884385241514510688274837777718903340537174078682834224627252142163214400874055962249090862524280878815537721138183221157872460410110436072919176178181478812040095818583930361424098838321033105624038928801187692400658879843749869567252900080901244503713154573645958298552583505306023603518539906115149816037531723555856687872533674217145332569607779974015860731192648726285317698972399764851043519393813395132646130112385175341777260973811389800450285893641020789566583944430960553510069895601442834560157652623244269834889890442350202587068374988551688620186856500902902268594313783542359938023672762486868308894132954345741688104053253174071302683613749022609231840542583427679794583590509873203133683556491053669333692369458179624929328508811182854905200001720490357748818454561959001531994349239832197350810277506935169563587973238877672973692206213253033000520401018538817032239619279008748255036447104821615756125037250053583416882020039752656390653195196564177340579291223486138650951893509722785996686529096283231845823853004006968439495152799278747676463589779128261013527174231557671154655882891852316571963936387351057655392783047677134563686391387511628316740924582532192412122461880864637208311186685676570835050612296878164904652591882188685267444231109287941295679392623966733011080128843365630691166050887848601875420649601237894355395542805827221690177060970032444757086129676666027234111295895227414571918290515818385695180376934448581055771439726258731783786484013697859525624937102885677209795469668487536858697393452433853690918364451813453243474995006109121329991625817425630250998463533764745474753301820437308415561172262469758214782570980473003247039466974488500811875267628643634829899825977666505949341373144923584788951934348891251287044280989060301469504209538366322303140700030933602083718860304165029367919465559555927521746047329668214138012468677380147436240501474639392468066389961206647895090284138874957653894872439288864088917367330947724621382771177735120394066896562029258126534486132065980734546860809412096988234285130967381683128800776706073244926746779403689163090941742090078646215166486774063563643690084669303743881199231656077832303206745914298798523628063537635227072472301079301180656024342302690208641589644075171124547304897410929822276260454850229225893182997341492076187360035053620104737257272995187647607963308787046394705284589282713077544716446575634574611448105194176418162466737846727392871134376194323373781503417280385624456587430985811040056165054528885680297153804949903800284313920330908265300918701791799545317727057436649313015294079194089865449745980812206738522755515764745779727371297379943535928520426125081069214634332501835443021333511228422902071116636143325759571659052577814383800934958741470683663203809030524954484586279007157688885896948592854526804028333893460949504064638614508781178984368354449253585502021921021146861830744511339542323517973489671738685509145229390259144135146021803878564118787855726926424492455130749986438345183708039335179508779885477359485029224857402779937821277776312798710409691058904637037506057714267698261377947602142912707933512120601704329441479697436072074461419860659011248705483920932613786648193652257039872360155396976392564231253667401755089116940323046909892073519166629382558084456330667906207013043520812081442347127764295828102485681575852629794870847255006353595856512535678256912689593391924759249540769207220719745393036141809890485861900663232391557438761583234597861962920537672608176044253535928436380521773253761968403875044472356784674578446558570319985203025465145721369889817503717138729834730407642941191054891698863520479857008436486636008471422967918472977133255474581368419016634501817558650411718911677628731289312733525011653655849264386652079466524563995926722893959519720523254877728154382250902602389632587692447521206551025130612547141392626273942772146585793612187403722810898120244408106034641985745743205826999450745516645583871209804855875162363189918350558162460195529036581160282690039153976996491231086071056279371215812708144029157039473188490329341411135111785003566738144767349082936706962364575175030686137455777824020291846447857931218684421780587452807295047014711739938010970537610729753298423418906937310130649560339496807139588118041521833296217325113010543639667128093529750503150763599696004791581659076248724391533651880234154082672162338191786089803665090364838209123526224879422075569345264491121383427039792334681466390807917579710003173218134732460004360317523796967582433086403084050248719439704049259349539292810986489870770532277745418560258270756772359557772557370617841367736177645123412538997347475645870405055620666024539099729588398987775425978496254715773729895976980597577369302597434284669366280188020904073245878348819924062687379464895919352719133063856687343232789343921108391591735412701385785700824758100491196413424798575987041862475901352362201597796065877939632969737235003552998614913038703703041176606484974374759927382695091831266205295287577733417158963302929334267648177819575507150657586757471633310266234464475774603674661537330114532973244950332371145936226546746549483268544893034749669553836050963820624462757934308746270346767567435102026810082077323230502850165103149641494706432282578788307485643832297718531332083409791000112308511583965209797395252364947900044150344278274456083530548372578122043796476635399173382783856634441887620495091619728108954335151051876773687263157399264448571456735820876981652334913007940260439300640576557457261558455039367228121333090152867538168106068251103422427879635294590823569200339797664302818506147051857256798584317012628996688385122140076407778172919089225750766513362023430116641703643788161667133278012729023933509500010448996487922579748239674284402992209900687761596477419481227064341488723166300022699086398365775089969816170960158611054969980063272908285360297824441866830642026318042671517012237774515148292078459740925246993458251971235080066283710708847089481381304449985177152563433423767210113322954868108520115181851182312805431085722451402192917570273212356207736723025379794186848240954122267628807409790820532119038163125919138802093357506118877479763333089600774805493560345631434621799708840453406587813805716953533745280798489611859092376016604018152998307423566366959767227642140658088789688189802135786496043913297320452296293015356268194842662333869288926962311659014258163313854092349380332223105358666831548442388305866524392201182895560451166738841819704153851379045967279539666912982065182236172149917643611333448952299035116158978759014575566963989289996901652885381063819876709296381354364278377405015178139229718885606393486002090587310823125149694944421958929229547116721558852009869866958649679609449414231657253294123771519743519980942886874845427172011406092345952523973555191215768420338384617360668142196281768940544817250645987412381601842132782094771434669790065529986733934998799156028064144597940346260923544103847234378314856834043364259700493325259106416825519630156034389686405815335765141167158987708951306781256133388767467753720992876316931815148296378284322636098068394781556270327496776119913219056857757950638292737285669288047703724212515517938330995022887075674903701398446718529707983939133948549173186110533239263199389423254682949304651096217807479899909333596247038188558973888959981622738848859440768923737767660427979690119329323064302749203962883588121146422230680249643940845161203921320604201516339468739787349882340270099028885535899774000562603669864354418970799868449288859679224228269065001546446420443511293989723537948512312954452675669235393401291817749217552153343632153933209734304761302305869336148530569554493721247409731618122189979798626403548696325440216444965828748561814862516796941435732428343152514920914255591247315927889817524097479259902886462987604014858738055354601347201598588142256471725160106840691264261067446029806213829450900638136941149765231851352099464422942763896657397586399454986037855995046592130772565082075785157107473004052361826559912235321846221336175752016170595638120220445375657382744869031965151219477457977874659005492719559668289244362101389591593037868489004074875674244885406438673926981423899279304649503942524351183710248299058062029475274033055304584618377075506093769731264386192999123532798383458870167723230435498092052630431922659979644853065598330605462434185763113069069214453068774236030627686800925200124092984173517286901022519657212332221186152229542024197984605027893888245588993697125212604182066631948849521428391832007948750514209097069245200026374461568139943503015967800863334130115244693465431855201074774746396167123485260366105706299472682677578138498911181804809802249838957990595673417472824924350536037050708133732063667125305434164914996113223345907156275963772876917203412869632844129028246451529093376212684367574289021974169141134249667540686569705058248987676306588120743120502712966064228156041876767268861882619312672032943022318032106305361765290363857117107934517742396859019076770197898948182168492961235101632481922880408863618644162564685463827447718622880855673192821421050675196295417576231535754509959314560914339098437031972014611437515883053018101462720576015850566107147294342793856976303903297068093827940781326919705055951904582728996102394857296919872059826838321555602509209662266966213806409130797017266678746335750059467209127837297701216266515468448959038098339227692072889499504096892354540967140250790204920358855014811102602775138690336631059210685065992561149367566697435622697165570534456498806843372660790165818464580959498862196194441236408018638521172860115298131769529031141944642711978358532540083870990838949117238741154030275806653762500456219971758360696200692040751919650805755922898486987666503409611072571590904252480651336982589146307906790879481973122282098861933322071526795460193049254353490169134834180241163496888688819169339554625931171322288873603041007305447201209928695948149885641905668803718442693322000756577568143228348475573884542034963165945594977922696204757465026021051877835396614497095093702459419019293930043650173757677230794570816297353383778879657722089333123531964508291788486447864454581904828092593462726510645726657607084209904991506538245447820936646712637974075990632425798515232263295136925676450567907234245774784575047765522051010815440347542232837632848621771529542863227585123665101692133082642110541002250002506017240088877404318771853991857806079331431169988835093092300739185235063750321517803296522226118399208406569054291806504695252307326226464013571288239966530027931386608365334675901166005363413339293229160443546003041631946369407855197058674804262836710375985105692276950274596939993460318992496290468019030294957158104335920640919350898011635047881278749037536961967461482832617941783105439357298830594783548736108716268588552936576560377881882263945020041772420296843879777463070430960888149717360235085614704857932890384499136514409157269285955754995360012620593588055784034393376432210358946139598465793746446967378703058496760580215077384905503543953399655540683567625256815195159391696922770461984035935290169035055946055945253779836803271925872981634598606202661904165631749648126759512079683915394473419228376568004986072546363331239798367635768151750942572170539662830038608061668510432366867696258356277568939179432083428202899829216675487764312082525513173980544340067341320170380820012706569075535797022954630491187388309199923076812619694953217179236787331269936652695935264390702043959624368248191805054916147103316666298606803220534560334486957463548043972990002922231613992691093539248658972202660518474000417611623710934546334340964395866818763900350339720502399897039664144718812830402527841595391372229202007264947843823054825620151250541825481358455314776110271140496996907374698434447693767466291566756557412559443366843995318130265587728191967250393503164991945379427472330541506760410770081898884403247186324115239732383150330860283447666683094507027307781809478659311477956125868000470634520873381394262793013701247178375008430431104266239291288285971388963889240381444470993806839162032200436106684058483099753815763070356299556364849004069189768693596973639172533512210646180162439508333499266189571486683160638065736659072304630459888464074134127073370807609132684829685604235113102019675034733081112825972999993519982536095879534823415289398984096775231004147467918374547954105116807415809776148317217194405581560904287825698867517482931028503886048483628841563049775310788950909294491643669619204332133491216012014331650740867710197647537082192623814068999437906802171470713116708856340879331208846225095446582396752299607811599545820599391019660368579455857203955235134019448818642316358518193281555233530337682246696140967998372573962431116404145364859175653098494328711041011046287249781697722019907741718059823947203938057738814062638755937943569549265908151962708717899571776318893979689966791407958354430811769185859093122365444041729916872861729924921936712393270943449669279279341366342223527564007025327522800356132271012812696515286853621000426454253714054185794495274607759419810167517820691720182951513957454867540671902270649099584899958984417706245336005396100322787542643275284201299963387799391554223605821903212871503319997427168406512523778166308469416477489226388886347691790080387093053953143957786029090666394179256647603236333472592108315176630789627083739469235256053463085234257108626472907797391810172823904889291545422188810934508807390185002429701250569246154101747080405961972750902136806092541214924443900858643738663522785386474313660082349510048787750214335534136399803946834526385618835221120100286640566014722681248235955429805183219729280254911139752173280486030211566662320127417737882250148660576239486431966389780917515298569832357414104727016203597909259623628688222728756660873106528924070004254656930532598260692680927962248194566889777067926593665014166691624385293512690526172125839533964491350131880924065288228968216471694626996789895900191093834185343368703872490084889893622054140349004222857038545767942587027059221223268879813637986749311469973502799216128025156123320754260487091098633355028798631797648904396096176418355907097169986719381772691211955341073973255962880554460851477796994372599620470767469684317899424738281525235844977667227411658521523700433581575904830528403342297293074745735318878606956674381929078976254491732179785899516780935249928165541217885680133214280232910062658099141525430997632076869859344966059685712832658803634438927229835563150353728055686387779773405645500551501195775622082858849949816702452194688678259574332896768181773250773592177137415497820254436563063732776540657722545746313776157105240491191928837920401729144488116998223819514703804558104678013430930326788685800659879027953188849472319374283447719377097455894240120520840733141922337555207577624907105203362450868447952968959617019204301708961755625650819889322303014859311317618906456387862407164908210839708602528117910090330678176855154298217095195188343615598217676894266763041530516868210787952661540328739248245114352458230409158324917992891986569006765129771012985065464532280744905864299338368316804878349310953431007043454950514581912262696940560724261106530710437394588601826711146415361936541946354092299199366964944249153479775762969786757236652887842289409438154073551397614175162847709378077712639391928509557927615551331495235067901679631500328656371760871547122635436588553898404252609373454288953636022380417578633724876283752921809379785895602791014596735016318189902675988223831751443907714955219977202784632525059385177990015899946085335566342173486797145845895717268001977092971785768905556356512144662924698370204785406213026928094228189937735000360763802290411494023484997106296444510433517001147129583021250939432941593997307274306558920753052661387238639806772174489115416883378215234096663864888383329445255060876516686834204088413451237008904350736667828318269467515142387465020044139957994127978577072378119186597875845194483328860453887405528277534737647513978310931500525659704753750113934917557643882012973582209794880998553034477857043919094542297516644649122865545164612581408972749509517485922383586227533951643014821869909930974002852366039923463122084927369739826412759625472286863043195435463569088944039627908467606571598667433917742061242767473756814409934744003559732092981288629620164967348601079374073384526087459410488568891980321750393709536214592097513944890679535859440007822560674942677622006774864741694706313137174188519940994501873553876330970140298910516042559592425237446460102512935888157160461587292280517155248966147463566781820847962800845007605831598956696999981654949456753123192838172854090856264258488894275585418420683215017274885613733828626127043523490187400978884265286821941119213275572067045742282296732130976085478694166528828024379798690485065711766655485340427085558355374348926640644596116254486575825489716261696513989670608135358490559991332959032181472784201202058356055656942556419989472799407454983948996166545517066202249267146548911458836741097534109095186206035779840479278883647872066581563530841640247308603289690664625761117593184703005723317934301230096810567465615147607279948513387666602610252004295271081294163999769035548006323531205639679917937381763407655341575760820983270945450044271091945592392127562537483599051068831265440609062433233050463299885300992826783714088803334897891497657097347322335895471454436382201607775620300353781854686512652585716014677854707404898640147608735829672774625567352046847859319128910296930741578510778629642929517966609619752354718832464624179382282077504215361755237094411055869376585888329901423803327647986886011645212223980846012661025418809996091322050694167490247563805198340126083521703403232420190664230782966146875864481628471753270374992606026590188879920080001311894961749609887019273023632102700381308023588620111063279311343027189162881416393273006882742896686361745367396850131173423574688533823240203748557068120188490732866596290584040974204404673897411484929197129355075785614968909835222064201454572647126863279040782582313269674504698078239920241856065250404795959037950999785962001780291648159833179035843296364397879388817256945770539464016087064566843170670461619165677773335638620054144437396787137064301843769830202276251386915328797725016489223577137511190979515646826674844960703595942916137802065925129851000575177394835396917253536901856665131275757233361938155517462669808725470503507949347870076753590587641295376662344195200327785539166544465986579697145275775670242813136210176681449980333485699617751239267212730964410035978141185628965360844621382012187555100290977404957278654005463518009013183545232330002675680367129425233270880969071141917445022591597931763557683349646007668793859160781696189799680077577912047513173064578796989710925865023430893092226584112223960073458041552653537302244803397049792589067596697378618961739490024306943350305027248617426943015394946916499786218980813175962128836394267324018793872864125283947483622932721708384062289781773041675156758929619826325072152378099088259334143966440871573007495987327492746317377325450581781509970075800159218612248596523623879746984508713719150828710830607438194972286790217836287219095508277876309453830888053051270376871801087030858761916249090350136341342862349340801173288898325292983725636957212621129740088036743414840529795611707092878309350777283725161884111798698663599332116311219479688200716170352584843009063976681005288757630588552517707941802838602635970815178101072332109746923541294519250465194270111259623595236425014451579027735103078597144446571650285083661156688692952682784478635335925775560847551969314607104085098217720045757498277596071388776497764862310017439558224906051235548688662956466565793616326356746235496692129380467585696144580576075113559859967266942003637522503522031353043816824446965377819109546461819141122340158240824919611725788702102441505730800533819716131231177601811108984977806253119907131034792834689573381807013812094739288843706749528541173634480270986698100693673559977369842457768995391203826853326974819794397199297496229157483929317125229427771214389858772410042187990202513554451711589522563842023932330675120419167226442107215910534214594238642131914165883830056744689101577809235673921285369566951000648543035774727199005868191228126959528812006973627152201053442762988418314981347424331543130834276703808201233490390607765384730031112806416673625398988833946767131134644191069946057731413106725417777228748231496361672487406250470580240719627735471058027350025718377822923993040159929023296306663379258530414397161674753799686644208322119371282019240098302535651151323962204880972250386742043688629959840351894920563439765298652371486476622136012429287485433810045745856219777904364443623035220840205255623070220803089494760519223381256573726370826229088909617974434392367488513257887510071688452253412694712366190912003073411862418126563629844824620917557834538164729181509501285471693318465585612448417393605982541253507926420009490229448978368198183695413033638126672245901361344539741223991303825458090289259955802813727596889182277427599230724209469744197925288854009385268375189837735086199245126912670846224153728436578269061733018298977238058032695446911745248557712151544552032579433034433209192196280349756604476706875182043090726212824834888395483737563658982336302892448015254238182642128672391413772915309159115984605806515027360385527778184075270516199241065557782527379869443553647005097363496979485644100912150903835464792901412706186379519605581664586698791801300099236772736649405913966855234805552183812590030523386588770535134141378131229431372471144587526526562485234440837820176632753029561802001839675389366471849289802447217893695648333173111491681322255978808302762033679504320044095280975836935073806816157386810259905863612185864487202273658014959377587709050184586334228943803639046119178310953312905793289419721083212002801605421063427325846313970889240170741284868031534777725055713000975535784681800925367104077572912861789546006229974044200861166625002623133328028482848680501337983391883085515924037984313473774147655605521041230142993723900414920196078598008942881535024989628890139965021185516814326160597995931923361080309359000453948392537015801119740464994525698139430198572071173534051662396955961965368924066001525158098177564150266457682193294001460351252855853711005678558314127181816778753649001586128381324421992432916276980559657152254987129625416813417497099939588961996062600506865422952073174543750656051802426602788268448393024703874877357741322434533581005771862887286032480397377460608825876528665729470096259700620167810038029608992275378070794403156232821074314884184096135796893619136992013392534723195380534955029789527508691243370577726181270472478791702307689174557825834768305206880131550628033257682203512122647696603972012319450340061063377345087876616313022584554295528952381082551308651807833659538902952749055787068917806004579668588739541639426763890610751125336362640572862810007005155430208064460444520313720661090576452474301606151273936499192938732356240951147234223671289812947379661279176769859356710920256801848868148163319413575093378540250547479346945203952166331639385050705139772412248239728592497636576647868872162829973605279493917593083090051881347291107255806154674472225736561344638244538383367197579437966071556323107338228647764779860201801102331140026901663510225866006233521044263663373115668937471312028061184703677756343632331990098024994122467947185549792306053928930098823899652871204941044177265365780322193351965360044037422885920560875599677675999112725371114007843314493704252320667446700512712209164696054564995548191760169322772890445728387202460608702503831009729729074944409140748365619158828350723944767138611568145349940781732593506770160179581456441779650738999353490876288311011206040663721911728586789713348436484370630922507395399735736781129846184368076126073787009384836084282380937446087616744725881762407040681280206900310742483778620063972981933224807995642126632001028790740181587947441727467053208469314017727914491748445590465281212678158935885077142764040072509124968757496942781025258390464764308211208679100658036566933883642219279438048913201914255467794095051303938074994486571351274790986596258934138897078093176642393022177454200046795937367025013053321001828783212736553535344975630106351083131709191213684193947802966709368595508137298941145335658755701640648099446630293964971128235705750751639746532440205656579680884777127040728909967820375058077799792366855597036846212823639929581068865955211000580087628779980557417706894958125432001190909657016683997814385002957078041117134504254173313605231349591839224545287323074796233028627945941305110721618324243625898047970652339429654606493131465511538272984732954623832352488560602698942213751816599954339493770470931800451866895076218652503003712407032930235102079029240781552417126275078959549399973797964434257666288936314015762955569190130037170163908977212258990948543780079370741813331429575628102023700456921826385319981099309421761025788712121902539208084525473785699801075774013136058701680641399631525980755404404825723238785061304967085523094698907905581080165224832577174120384498963612183900539969759225603310216065817384630192994664109970009698537757573278739796751065718683978901708300989637889737599581815122910499560489227929359392392600798124094318950249556411900924096740845650528114097708333476271950272064553592825151817777492821619191112451145775819505373180731267480056841167187989560208730912407889571695784536434771968552926163797855380930567825922149565687021537873225676602878075537564730294359539501601173934660234062625141428979704608310137910002861224988035681746256192289695203512538181940579667961997230934022742641483281181397383969562284320403972501088046071847885462070928168334405637846096958947496847022431040017222733625801725058800289416928383434269393979277768083713408684496401089146478415399157662891471503352048267240520114969162140118279111271351088108918715822074158803690925575827160606738335402401810563328907649639603459532680433378666960518525212644807708230161656445040113638213254297205999425525667468744876428878488897949391361285819558567097360459637283935763340114032623254425294653149859728054915484549489670920626652843009114407445227890344680813710427047350502992767669120143619019158810601890881257424970450595244182414063469635368157414248957471971197509453292110930819943025998483573968241426664579687534017741862647912185644944361984543385751310293567154241647558716261300706092552188830482674972192341447296218941596032267737693766159773520393028831191283865143625627863069347433532833792389826515659433542982192109621631651586216224511471706854834041357249911434395979431707441397191546770842026230982250438760384270632305173587195838619222121833126291955600280246590068133762942644056106869420302846213588685783485987622197414524897011459619104621809206647890993861477968924392240105742802519611423401546677018660806047698735839157893824555684686909810213129017585431440676826828460497977157883421214773580263821030251824197824841547605773907815622649038519325461280127519789948603507113467277148272943507614613334478403764873929117954405652510067446972087308432770710609056554988157943172568609586815877341681781383569287833163461722285595892258903128070854199045138146235178214472052926216286207318203806905018363806683218901028121192424829713938395540883678554797773631060228533330834760903496723564058598941853194652188476846406989633696918580736195814398679877009859543821786336692304251338488049407420793672203160242961539873411287335238568905221675464373737781370269517688668930963039177766755942895152254993774300464839456534759731847896665717045936976880216585556130391488779771842699047358194912754257172637036226224734930929216740405212533376495593665560703763153309754721064666882771475747436305945138020215267911780192013781242044674643152904305795482039320866546951375562792538135685013067795640489035293710085465929635360179636341095984088928392386442255640360224070291435503336095532447390708136244398849309956021335965258302287157498862492040178305049877093342088429068034990154530491463864559420865795581283020428017255065613580351959018256797644321277144054083371869004049736169084317734061443991812260118163806193600082070439134204138198351377079570340293407882470461842264431965129400316802187226019896151904028104297343882786681702643595026423614134811874853004068224564191111075161292682125322303408101602216162512899607995532092352531521898274937019820033067836833202049262372715095593880100452631859706629165957118804329744454419783587029131594908487167871305937446573933290745042151425623512134000285410400650357036079509163849924582859912830169766903867203389141892558417493372860552994126082652350123100484471582533560673407810327542332083197584288189136209418940826713252202745875019509075424365435549670659945128737664610354472612452119299551609812131341343019060360745688560368245014959374615339564055343353765522920983303684273194332605070696424972204882327793425912944919009570070097897273930238626537030338377854015815348604226174772472312462657241354756015177908585632417762454085921544681678298817907896452557154042977442770884587675441286021816374657370200672420865498099071727874959836548769292944459276734972068347091429345637958428600449641049603041233675353916360890221121066519649054065360939648534524047294865731282875350252735313710809239877455878650520913926358300725233013297340140218540935923338580434127670097585442062322995450673888079005249415972298427349764276475541309906623353520952478301351641256005975862968208571416134278793222956847517920314649158988506701044084796243485822608239611267911543015414215623138077652122306881695752532966194980556083438299015457000938929865881284452008137000203682497474545795756424751553235137135249922942972082016402468242669333368911830962948976642706670251188035344874125214740981416366731965555217162838845073720536864012391984935021786272148607478354171977054543622568880999833373705734777175166681907911553052691861097051738605777314266190749080366598519191302087377033779295979933215881335947073267514487822812793496003859471887744087059423928861700697541716718874565871091798871987377790243342403240555188371694379330928418643080774175944909934754833303966840745070654978133366088703461544843704395565038918608801943569507074720441170617057579167326668223121116946048254550563888837108902339975057011363195568018651534236220754279411159828768706493090930308988487956887598005879409526788530438510497406765455142990295088079534367014801939737012917959790412160484083807134644074938273402546869933178190763828694720532183147708091838763361973644147038088070919738975903823688735434073231124410107865852039372039937874143808353982650039423578774475799268504743625807015424574106819713180558559579898975528620849663678739067609774077724236188918679994575523205993603144817076440620634178359742014083105067337920237364488431362549886216066912527762733260879350641718839252050572973245517522926513070059671834057804933919541248209518257539429739405387155142909329502936545629749384765998187962431650262643333110144030141949241891483918339601301479587134451115533435067194132821843547310144028766976296715535548964762146644792667287329559780203633251743870996896842555617108333663937996223067966003370032465153089271138689473326857176951017097575379211930361957730225459219273286393292782763971344136314419547916903458498657727830478129970846071562465255560241652575025203604093559496493115454148912823202479598117370601448469804710151231612877364530759893722809334107961861498819058942048830581768752757069092760135431460106473055580157499601059822967992332872050635353311174196492175361559850238086070547716176804672878461797184929967815777520517783526929079862864432648919538349989953657880784759674481655814424923546620350874244373038955557620630955400625804440615097023686863178978690285246688302199249921439145421899457251472268903436699003021270269051916076527169269338013300371702518533870118498123433598070711610197706940752502472679405905202644368135554158929754600932895795190388735390944387811587534458866524662571430668822633082651468005670709951561748639528135064448753907289189709476989865692561227976563809469385177857961682257256664475772642795479242316811371755799498028520187078977114322232105352694898348109172589040120166537498809047188465155020694490255869426380833103656047139925960008275680486165538457089737973869396003056276380027218225539855397287485854443791869952933397414057227129419057623551112766296306355456218169692511270618469539574275467144621386330416809732067988280619453548922528219499030039108532222428039667007115805013594435616279981487880962402617686553649542431539686280829492665600503816346771222763228442664424199218332126326904235555190203571323397604229081422758625076944398614842433528980063715784741443144018502934644470457019533317514360586803599840605665568984283866839663168189500508664583502815435584768288927064239804360265691908324701065509421705894419323937920756540277472209713042955241311445567149170351693698480899848678036733906191954222811600993282168399030354197283020488558651369098204265923452799537301399453251079862715663017625028162310986306435675493089843273585611434252363596033972662959659664414204067401212996467993465486317144305454969851671606594426247471257260775899304423554397106840393536022548922877328973140948185200627686367373632053729390404196075724386161130740195335179202303682044860516262602423918050435649918187332549813110920370293615487266013680606333129929858311723068536306410334526469187803557030248031104638005249468908118928623210474277282452845341496786353904745086418117073163515347047505754264738255449393845827460874676600878536231520374781117855076997119782428951875709778818260774398246418883723137366185946844582957344222243289792855807048440792182574703792886052657342033806989956217326151425031490943801143074184803674611801522565908566890546017790412631078226131228960646465884960845308343131098986767053829585994472272895331800392076616368992288092777186990010716095330690911366189882595483646845523333786825475524803180096669424235058274080230449682590601476794004092000499953060627938428025382740157689763361120583075993268587199959569397853277353433515394230822895469519746147086940987903094534931909064167427092854003809340449119261646717167462823199441435813037772562351043324344319856923658307099568342799073800207537234393598026327462839083927927468958470768264166833208448814454195526599195287246407062623412778796104068943477029504237240263411486434189987528698417997838201075323462086643529113671986911244860404207378033906631721413489633867875999540603355446909184287562928954093380713142945042496880145452466063954072710549509562749680255838141914585401695251194408282192564703944572461794457588393411380013945841741785759502257952656030267525634833782530537774280611514657059905584906734711496104325883012923953111400711331701089870471844992872982530115987980565548813340913492241799531690014084720862166725615031221923436084748197135886300552959678576779675491494274447821186845314814155754817941149205283147197297681277338538180926208702332944916936864123907207424589052103396034461998786278582294347719451994769124805346256061845689636741655692293005512538498984003940105695574488275398518033639394025853621145978836105673128154769757835161666815545595591596830033711793329170684620296131092329190754857530496772713059441185432842733979332329424571118127397443427758078889501160030300536284225758214307769429143793826139238534270056861527016497880162452455929050891602904221068587422347927095633730612550030437940657445324500480171778377395705833355874627624317762311108266533848764289474573203175334617471623749408854260961791195507309763213325411248460343296669783822168281440902519275465544107247019761850006236967946250234987680514515560628571692867993673261069073972281487572967408178017532155256922774184068236201566887725396929184537952335162562307437363280442714676765264494558414190877188850558214879708824744021968133299028454059359006101587949280821739405480728862756409183892854055263431724026142331423383767617557426085260115853722022346574705076422731864875466555614293305463051747683989808177713923270950194072303097085484528164742336659346510281836971177123412948049017878380520264890653560121264090624426181236507469206533391688784097304448653422781745212458932442419965910918424444595717472407952247604093539946276048165547589569972047455128922119150492828000043792906904067096965376293205375782535331573084443664257073552792965223988540723077850947645222779359689417702427315186025465343424647663703678397891378663417401830901662607265888046074211154151013474818083028938463126364650400367582066294165523756396310928411613292214914965937668756824537738962584006865285731142863413190494912000989332023156480713007929164367877378378028648687841710853661243344530596413706581098098077557052831044287543835599604693041990844637198040903493226351628452500180681223466341726957963426172143861248853485225932779591916668744319176672153350139334200418562713082881513301631043877017250082681665423026880304645649931479295887544228482310694891857687713056244591506399867469624580357760918021874089766960224586440108855661241169850965895015425346544238863847810901947127232383657351021253002902131479818874610580789375253270225745955875107247444948010011875339141492559713232304722152137418349975141701117458175336580098795926312833092722903591754866070866585679067431315321412026384781380413187110918760763637556554936722695185205120390545962065477051867756173752813451233097977429595728408507927772497470206807546855678794339095642239489108171624647211187248598331626085462542456845137032431119199521087907797109978722136436211689083421637628096671737283026804881678659028323378824860178242321679045120040468865961050358871325006215748737344995807887831966353130050201929959659731746114947628105037067447724590765324603958000004162196812520177311292964162401525089086028327670659947135857150425662472553984715452541895889891251660242069593408532255992865138174354122797703257404090271418073731131801563605846831879008870891469521456928378303230332588459003830205204523272606069853295538284522824579330106874675854391063821371685669569546936721737604988186137776471722651372097765777876390430346000492427874814609111077702872605806583965812454992262466012921252647447125589046722505756336141295476528479890646902811603207395870320118065107687700446751431726903561107187086492982786972138747441401198097972662767024086563673968437746280951214855077381588405081440188213963418773568389071465987188268016302826581869296107447667991525796452322160257913505283629780570673987406415699799888482748726084390869632285329036827119599577544243466484832151031127252548861022979226763687118181212240048007082387398616124146943181526659951344575795077531150733401322872684991167541877130895589457791155504412567706448258951068628185567512963322177267010478483887435325762904117322375475243215037374230506540191486653386257359744796382989882782690262851889461745255590470412353664022947832130222771054892061588307280315490889385193955024567694424976552391793764610584623303014149435429001300363170083542683057764582110491726311736637670879714806882590203062067243172379835129835514606904130466934064886777259522082373344539483097752411178200697979385610663975297564298017124166185007056118938508740949767701200963234097949588833926591177920022219074831446012308910359427534822236784706773255458130340929947720141681341669813402493648425257533525985634221738862777011831217705015379358275286134467259823810186426574926159239717050283544455931304968613229758370565892933752832754526336391908929722448634144260289561241555336686504269946227883826507481215800341633011154065335702619109095753500827838732904633448156690297574990312950796504569775083835876910109097187193579112806707722848930232360667211378884346842998029232318810866388325336761170275628962836812628659148576800200200813606404990135992085283319535426643286768792213672005280875111056890488921883438969528625377612177978860939386472526861992619354025716291599857763859992891760948675285161906030887354434677533784582079944888230416534630811984987321675175814276969789656103167813335748900019184173991597344591770742413265231380427463902482855777550129455508914694402479767052244413684786903571955352864468515417977558279993922554789323672947039797213015629302367479035568223826290585316409617892879153732704638408648479352658693683662431692700107910966286324278399121594863717395968147181135554022622502509154533276184316982985984957712694333358223295913951288390569364536880049011333653398032076815635472441342314478297909773761137574039077237893405738968467042987347441214819429379555289978447989507264661204277908050840005472391339488874017561821329477674710485186361719586887534531207436782675016362902541011537279421664035987181543488514574152618331423923831928652427667166676667740897140865415466575852094560482637219864285260909945217620739579879271666275912371352527603658487263291170974297337763300458823737025414465893304342718337484112837625758007497685129421901141766620683058726977233966164592842266017675376336750989528492603883982939583823720088303373752585776178693842249464242169731066535274072398647089220608065364708255860586907052811777081680400765789880671507915373945625389050524061311635471972623183610227336798003801819790018602265388330615210633535292082702868598492867954998904056296488787836585299034240818690534562786137792443537664949497651185676300111567366400975235378941573483059018280078392954312302880633098365152145219617266368160014833227689233434360286863565701307216683773717047032362740324694210950313338814821221442118292870266162473675073391872565370775576151374385530859803296884856810120653726112285945131528613111194508228804527935276919685271252165381408118999259312883895362830101687734148040161351675707246279595475839750266703276466870333615734036300876340346435523895700806169719375092813544528188525277588740027031331284663396401070621400887636906402993636240358961268654694772208317908413029939039080035517033579439098848304675636220543422659950525631784224985661071575598333628678890119267511009832891391781930729715498979077945570692731333615375983118074682189181867389790436812902948960953863001643973642375580811618843018944599437132545717865903006740845641117120048037592017969629590722954402315969572914984529617318051318302227952474975803509216856322942939174448441960352018362576888988501744056777075380310754696021333900757920401895249238164608245940472815012648176625404748095043757131897403910805985113354759806054553005456248143926182207040611781445754138132404338291885688339862253703773775490066891697550895328032150538174257702490256506748887444913385613445797531937401429681957851719816007883198106376851405645730394849398399433291342950673458329528928308728990898416422893857671821656907731857577585291276782676155188698988357519907050086876349152574290724926340934438395673648822187806222234646572983415637319590686997899120895986581517110034130792420363225190465508103977794289835946244432184614905392223850450621930236297291998945851913035535741070364395323365615854432753498684597892967832679807958201099900563778831997082940117869270924516758915707588609005050157940646733262370672833820496066004638588979815103719436235030370741119068109493924362334159042954729514419243349139713534261053766862859189395485508919582113186047738696885747595843648616675499164295282414142215534790875946710288806052221938836646680621455322299746762850834309696728278837775768025762510423160723144906062828999775822126182489514699170629455651963565681910520724918345390184972085306003268092683470252919898275111542082466775588307369465627946896272679041600840652985093907191468817817084096875029542778973902295200480630329596603658700158917374856997377649407484543886088691752991460114203570647809133905038755605267060059781848130141048858001856313643188078539907994716797469891713466899983922914742375232736215032066016717673924221932311342982671033349280079480370934713826390299377180861960067085929320425528517426170036775435357851311909435797828787839600737401126119166341698030499176622573024498754339203755124787265203519625743128628617601787499621469300464782843946783937120212790036571205843723255202337171912995245533516315615316431146743933734496618169829321612631383857475358384015077456371767123394945387144957344351263046567040301031555209168768042258319362178682273207375849573650134808489812763352765533322662299275426846975035335705832321502053607488462060406756151205953014043218385379010674958396595089334046584638133431409574564455676424785060430167811923747425723900913877435282588567729469686290946643656553627016701266277979621772753829049719828052631279275422784632098087503206157563776153321859623820388897870298851753375444436015675432513158716209922675494713978202815658167849647570367155016770390959154335417238937474690298413909280891548908077799734667245577773141225235378350026548349472244128789824286530329483103229456127438418734785600817364642944332687404065997736808684703888332886465738855361708180958282220156167746179121770717665694976537536757070799242753923617039179706885667229008647490501280951874682755707128478481875275521642517082005166105362213433803769775203437931405018231389134010902298831911823036646666118853352696070129439025601649707348083101346579922875952520748109326543381683145664882683003685033177545783443375823317151660143832532195811311774150675713386520865195384573773652694589109708610612718193091904149662671782810495837267078664870855502986706938270274340980657284904655250171986342780786951861135646218761390769045120874053298315683627606468958108516446143794427883078663256938914641906412418793565193353063839683620988313717353745293555086377892358297932252334597915391466351809890869645534047532718299074740275622867065274227806908843588607903715373026140179210620335709745970227725301542694766509473150926056227335340000212836103896391793576914895840833299382522580681717780609451983974543113183434769189929559104932195788036539650842465841083942746496741324792325676000796703755307029878448460306383943939052918064617895099953753392014280096162676444029697944421184464857558630927462035304940941329660291181838656568211703401404015177505542062270036512073711979248691634004987384266531792707324895618600060674455866271342586492871935420665431531370239391147742456286492325942963011810077985221898336506656355178925760566960741023277649036489995227011475855436235972321175994633947726530516020550412787374205655605998327730413623853127716225990213963657005095476708240200998086811402472024030075902033297607044109683051887383463397762144320089731976194650281858474500421602479816227676188345138920055634103328506192781729172069771385167451489616541678882067595895686760104601571086517723998792046234925532314690809496850437333693263254283145001916023789885327649795517943978932080268843326204364997871369347812231109023824305083376463724980401564165816853205695119251619777030036722880810040809481166717728051443975101286943380441180593351962128220718363926179043639148215743419949709693005927528747433776485620175085194495903501987423233404388835913471047549380494605833445679188383601574717281953034084206310149030953339533782753856246652612541221347533369002141904586267062752031676940833686784413676845952115177722292610057230996593582846611512221884824039033141666393423789384195582386922209824652270824058195272129104090925318984024477230752316909464833422571050057782099901012681189225363790056131543380745809378585778906585968055381327002647828868773789074500683859282909622350308280373708441502487191680728549405934690728767277185611490715180370619036036894698326128111410901081169177889937493058140832622168417225003031192552307402396265319290317133324103754336318975748066322265841908221561450071269235949684074912305542886697100359966660567178735964045850430637028314629031056937156880607584062095575288856663220932614274800548885392043847818676398701113793849739966895848334756413707922120486385420192428661850415679039771945536280275273684633561845097753258052676329513959253429585116986866274502625871990426570220601023268982812338697545853256926065052966531841825240731611384454364394335046563915203498459775714167009910169642499949089051710597878190408692599237780484377047940255835584334701070823112243003800114490392196264741671155044818756234937014050231942671321341547315187691811997556715187145494932603614214147648005006499781371615154759531594426498669812772181784998337299083334339563456640983530246121577704798238764055737716345917614170679026649010896977869383536878341877752798700226563506374078331454494400210281986572106189555291724642446684525005391513242836866640888134101637514700761734506039198257233597545558912483689673756004839553398686150068966625891252531532549639817502148687505476051613028077151175232065047679976717593036806679216373903401652610164575000592461156220973321356932624586784921212947510753176245303721116111725798341071332102869701112137463545766950410537779863821291481551964990762950578487134767611135037735340087051753084359156413071940077620776845199041169744032356021786640227079958563662274372749913374703329441286917199238462073192350414133129924281780055819266304570481958312302134597660359058866070964153780851972478718657621515217034847850953707062667170696653229304179860446106159250607141698114144287682882203623885493653502710196387334634845478331059795962035341003758771175654828818835605148439564016242647689087482132039002903291346085260785532908022243252192984689518614934415665731092175777807546711196269456572561804998225759034296360857848432222702398441683644864867630494630119682761455112539559861747720555220134843990159772952503934460482655541069604797043708579406964688221755563526643074244768123585740210917243129066911712623333975447789691812523836296585073485739338978996935745858564932136011279134584829873047065044409780033473643031648263746804456428759914328295329364647967467444537511868185832104973636669610571398280014888967820448487244952483704944772172986908698142519393771167595096819055570888641569609394573176943785238041506639051031092804596214643817378623618363251886072025430540854055832721913495833977766513222423905742771992154497275541065603697291900123257496936404962000709854042605587674322511825973284350953872916085600495186870567597240838067041644612834651601394605765288171033837934643463193599014262996617932954414771099649473704092678189173709157897340384428072275386578875772365207956948155011498492679574768314143383290162661331618062358313827692408265640130670270615861056319986090186780703508460314919859805988326095571410329601205928803880243324215714097167948684027166933959839708472031156422939092012314242354380204932022086237320782758511321995923828320497362224161883483828624567892302718192216547784728404428154835013318922034179450925427733645884581966566447087425334046292536178345455305316601333133507583323985002843572795518007958767298319546893095495587760460150400662401054061519336557102009560798795743423763640436065402106136844997609523892633247340277157816071364912858494705033129729907566073562426484277698107092290240289491128462123022169885933028029531287743034076478636022462390752885784680434635192179928901854272546392760197749588917413786798697491648292738510757299353826768339791104291427897028491744025580470664988314954137593567441619499872745498587341966188050070504745425054009041789537936744309001770678637011275617188671354747939281078467707087091533006440789798270051533150902549531197837395199557035338995098238647889221601601371759271184594854070125527727734911359819492364130964058468851050506107080916432678454224420348000862741481810928095070581165112368187578271089283329391607043359815934892470619879296234654583815119719352795444270022776811247397623497505592793632492918782802770533846672270308962603902344920193817226322955489437692238876030455678738596283121128983190869518575461331479382069981313802854521146289044450418626558246946335233928130212706790882411897676139219970095228562680717172143517988602428390710553126984332193386005944547342981205299717134256375706983699214245677029652828893041264763238598418968626310927940239953924395923570510458186111079565244779203401680679885825245418845416509376461582595127898527491034204585260815423607122375068274939836841086860326238779065153305760924193562098241233708591723039306680031761265316434952644704947611233545285896194413706394487907963882389578725922394075137801989114752535202389288965689894862299004840999714918458446275559021944688182142931385222856468588968359128801616385105973434885641515100571737314956056535888238869419522436875999529248254660280732209161764304028096462146979754347193462349330147202264153720961140473981384049134735865159256215765414700475949101900286641153054581087638039105941799125197779816774817896855499243285942397471967665737203054582997191518183569939692527326234719841354172671675915984487241736449945285369451793700053537211193232760059223439133709369748435343082395838029398490115728873055327870933579929247218067989011355360001419546774374148140724525631417419444313991062832032210469258554705716796792401830203410700766454936094823157812972500560528857841137376451753949427873740204339634254182305013578846459726958642674218570144875856758879527910445340383319219247144028467162069108039424382571760044908644200903352219168900031952714864780456825453116092791656066697775468441463765435607020347209002874555951343749411777792129214673571762290049329353972087334947384653219030407366312274363718594840458434450569705497235957581139182299307786816617618769527496799527700655181135422014534353900325732406184322665967938117684255389061527995972631476368365849602388533457318054539200296691150464088793863176080515352113345906624719999802748080619423490744617544638890302809643031301618625496012081528904300011367083045968144681121410859322745840325979582594784767000860543413979300546065515191257081910445112988941296243215439408155775069427235354129067933858355367734859354078045005474690287513528070630251982469822167500356924153273409423372972848778644706682466388884503574084139477989076627538207912789967180318591645333932904542556041011652261691938082628111929837033551044575695681016418408438347396739988631876068120168752898097860095460047601461965780082991380188668063232001165419487311484879708263381244286511410980520331469788538251320278740900741591184500487507611840915676046848002019184558416934594227595673627507120101480863027486271740759239934643651397968122506264311688416267384156215719250759159707143954183411683548752542055876852288433664888598039239031593750090036569134798541991335384677553481513676169845217951420876151584669427130364645025158849171768324176473481753720692785565507188178937399976598753133635820220865769049731729691669400843862904160362812577064217327786276305213468896687025595970008609537393565162154808279049059326054549074571882580619004832997802450482573916363785960170224108743523132693045885338032527346573945777778306469906957987424119967526080770684802202583468610370718207297646175109877236225545966499411774935314114444673000600617139271861019739947310600415550702683059925852514283590188741235572254595672697471816938952397087365382435382556339626089986631512771646442745022615275714669904388747438455994342827560068015196148192631642749517263754722173730883850460898221908660216355017306125778609892105165474656669028091659207869301401180308858605846155263484608610831817528935407470361883400976878080077453798406284510770373231653144504339967062614845670860614790919938586782233445292891704367212444497685840976448024129282070521408798815581188785797019729470473509953970631081478636612130739925007301877030894450977514838089392169569405297464609024341187183640862948396410686260315629327323340733272711242759182454111417981625387040835768747670835298212762978891304384253552652986222892429114578885369507649162081682376961645597960510191284830756998131493265355346977214484215934875365479959662289158350012561341079930355784674424099902844073233128345703526857596107118192594229118528678219738341261867423158645163181284610855435970998091793587347114039241757920895280025084219202425668126941918749629282989004501237949283218157602180384685292607500038752933376406179491900304388100452129012933633593705882399041721452140703384802085662761899453604151547800316162515107668939170327566903808420743164372785940688983832463380494270168015857822656543638905033814003064188574941266097478039288512347352230249726738814966487508874737341500477277158626628698936735050223961433210421015485375982839546214512389295975833498447406449832602880614792733245470073598959576123025503809217732516046395639531136013483344365495244520827587462027877290671561796876897339274586876852123974170901914005650297066780499437726938380918643795513270419375042864085273443132835690426161047221291119493477582916856061432203983371925982778387754940537930268226681797978588864287140365328935558543560386896669959732905739341873686222706662117654204474783673580348136478023389299297079977645503294968900583461064167968675748464233879266710866203065842383141642494787187381227762799995548643159806597628127969783045273318164331162025330510866028015627658682978544091784024903673535189900918150891541129066786205224933327894745833467976211173818630326743708085869123609233911241863798024367808169764429837992180234548136274106314175770192063775562870469173071437656048094601302428916372006467576469273620077766606086764918052234339866730666958021686989419661103338807495854535524964525494256342362550320313844081415099866283215788059282283659009026240593886372877604083654018064832190338992038949188729288713547900949968897700679092614959270270693561320776889623882034866263755147350386202210937438723892357842244642435813974013879491816883197029912167689969478751273512494852359110882595977602937319737099204976970099903177230626727137476517776307278195757803829091461176628686789093973962414182488614630849383874037433797155525829856512377366046655098855487194118740857087599083031690462743107868608566638731273182220576161517632892390437510308049702648225571070191939675970096338144110743830773273380536404038467916982186584312120258910662352071420171107883222279792057709141456212133022505883439611119965160430939840083770625446098011821790732848510102264474884092285045402278753957906015338635115348978420483188979088461272154429014149217471620313294467104531846538481915194532503579157254340322128287084083358381218310044384431515736811513907717243211044350981921691639419817328173727917864783027778746557543491489697169182792228550184858612984838453983870890899584049078953807463544269812179882557675237246080683253251776003252516367001869927798833514646195768083715443010475730121892692778827076449412249236667075108381804163442519185749587645813610087531800672866491576927048256022670288397605840192032200039533985459639583778788596737165636739644098600439589654013096773970515035784523067722011588499388745101854146930247928659628149817287132084020588177485794147298472656100274949611903708224499178317270565377105464186047575057281269635442491220820596112924140226168806370247338993570471306507031554499978228566143347108809860284370332777796400553505805916275266436383359265090383970619439430027676377133140986121336522090754966898531489872079271893152097710485569899806737576619810851798775482609004116145103299111381538601475467002452603541114426790610348018543043603826283130199291966460077647715692792063100092967949454130888970606487370316796693869111940807061311668651379793020899791825831805859349117385954136106135949085911044113034247573668705474779222244916673801967801950828973737505750996724434818423460602664968658125853382471960847719113617268554030942226630377617123892522770281305286558940879702795947030610386689170768608125192057875908611392295593578593263681167032989226888148956384340471236129982917885851162965893521932593032241961427126450231786475536408078956678954960296240368873349192223201344814761230027068423056015281516479080107501452672554713777938326917065446332309118985269660328580397740966917290428915192811014718568644940195976291638856938424836082242423926931700870309489664095487789301942539565798648017810199195994218846221034933360930714826538757871032437369069268504009027884186603618033186068910459976188698631661803418014826932387563559682443658257090925415492291286543057104765298587042670282932985540080549590860440994508307764447175311827404208907831195730165176479695172574940622668255456764926886293470008951771422221280044076599442781820617200013188400434053462044320103322789560819416327355114348216958400110441289465706518617244639664114781269188567518861188661846852580076957774988417975405793479774135355575280317586960553484452543755117282495123073140669975156621384867061887748749135311595990523136104378507924262308879872570731561485138561560070706871466356151296187748219563885785993285545342650672796587651149083734746775328054853727721299637956362830840069228561142390022893777969037362206369610626183231266594766801728727280759537863540275503673111904717153654173656856300490381592329798439135589094930414514433653336565888908555746603010585374600764285790968670884940489322729184415906198267891857723534820816238325223027867811270156784606009057072816680217394031267080942110839001330194030115209552961610901220696350583278860405155417930863513191844241928673014283059232407977900218410679806058880944533236478565765152519107857396369799371327916982164018599519750115357091642781949303882936773643100053663096211988713264020637314594254939621702423459845233953524688497276465252879328478827256649100136981745343702742278245329833464129293571568623216840802976187478754259869973937974028428005271881089141979551486298810393798193451968534791821346456023779513249954242427959978563776768389120624853618502140883805643744969137600990022363393875393214083310933137067192483306188657997771842127074039364188655330176112879223557661185806372160627676591222360587225584645955556279027826052425812928719987305244629078917548135675004551998629317071285649615028069820586346359691493928410708102187111389533257175736176561985337257196873335582958499354186122918635845070683188767348399622796819979804117596575267463852234164501060264486064097525068590370919259879946191300891249649677707598560286434282158145013985280427359422755504140405296259692540333997246165677535579227241343578147401367223368942970419705861362479498984824383051057340559667979429703160819707454279026067020448313098679984939309588627371386476977297740338079544471652584514360595136525691017342861009173303645942831408401908724725409937127960781993149005670288653944806877365663831793796287157254063511397150563067978292303010952211396185967991489671566056886136301397513461740238636468389652150902153171116336188764070462853105038572342568863885886597286275474197288374638720541518546479706479551131375360176400982757462868335661081969089281468853979032006774972170735267103527937461003526510451785904992955994506200222032268632300337940297795703015341303134547199214686365268344441929258147496539681991544713161661409795017890470292374883929779071474533523329973416797158490636636952839280985029474547268311984654974496111737382614115515907590052886482528255589185548294970478000805075042734172088284511305759476250242723400381047210822094697709732903785205491216795035119364100174498537338123926297211911728913390085305702045546527932246882032936488417798954069418285982518222403418176086350855181202427344590276111055207829084765117465386410041256171351871043703427877500208213768658734123877095736298897148780907662699479308433386473893245447764414625283526695563803257780587900359261230358894681415072055844041280981400385694570548900493107266168529623428296817206699116498640678432889173213920248026861780119784844945788375523053614220646361143753236499680868182400696103079474576195689539122678194884702367526921524809746403806227407021773553124173654507499241834993122192304064099282216631909911097664587503166196021466135486595544707165542713078969199809588906900231560004097168804447980172515514504025643004672923250032248755856913942139061904844917311917223098813719770921363337654243536805029484829695198140986267843697672221570086450015377650243075907120848831280431831078613389359428666390247052240948479194787452364711230392799421487973625602359070802070656237003877925229625614547150576862723574831811834509726949226924519278114363931611952725761514240218082359536322273874898648368002671260714082575170272725304067351277166883043060869509780423758672269685995393916616320617532271916062072281814884602540371404321944644778664962676456998033277397558354472476795094355636362136763089318701068702989804515014304189962744910838725432832890413209212227978976700570914022122734578962675928993797552607185226644626728962752112666933561785944529926054932338000963887906854731202375084130293517937453705083606400012602327639577918422873734259792749259355156104856464323584035904807311208991379170347364905571991502857292278947895288568994521584872293455249111098910903269103934130687539194852845122002192894389361019634983028339154667648913335113686443334179654679655890797554123310859549151121559374234306557930042118597450499969572384834249092728403310376058437464786832060703564244134452955495906133655548600563584588799926660713500156280797260863585653485775325237182616235869815198413766337726743115122982751139291634578650668815847396190090652137344084161919518956892826781017338289965527971138953625761571931173890871288423731747738539202361687988794869481992492180929683136455561829045263497944899652969168289902310973388999153449979967047942902592876648648125241256029778055942643567590102622027701700459307242043439546942568351706485854558762042453813711166836442821651989586029900675680581688404805689607782627553402163245388533859445093614084296128013378472905734068631169891768195497038718015681254932924748786601593528392054830888401961409387232740623403300305637149611960378302826590646321132593353844608862939456798697164012425861369340412390109945819370987273585612211399909783976466961784097489925337258451625518244768521607691262376494358047990672910306426559161834430869173470945949778903640889412712630597951291187171169528781986473745236603263469738650156504813722925364791955616396150199387102473355986626465501737715985034250444899889741614164873133366461035082428012632379846603014044734666611603028289044831976128406215739031913905700149435190002086791675106356446315018827792521014228089319992759951704254360380034555827392287605314778001552707717683319302532952098058165859248711976349546872322361996795424078843591393484286926839945795567965433552362703465576613986558888728444715529067421017084690295022323418340437329368076456450877628393276192192170095797479574297002905669030720514446796983975768990313250347300359449597753143428233566068115077537154557280250862291584880817321901612023804024906456583042894799207625734856487509061577424480369033229531361602621133569049100547708275496209524881509468015617498518725176525205358074509341741601515500982703558878367646227900705212744728130114691100648788305931037355360027627544427104959327904965182419086620482514688372308587839888580698417352345058759963411959978114755554328530536163028381965571779474776564270929292963234077156035967656078698512544743700488496910115808641343643814204639293225590951437647098929368529076065968774281358637501069511544284480515809926117041744384615737440877575551180931775340350531276842261778287080190108157682604467086813004026837166572881470032066790543766873108608601714707572322981973518731082893632544780067063328951181692527510570942853826166286076629710873898404822898344535436144696556722018035748165641741719388806190908785488131712684791774712689362113830546764245401724668494693494572174717248345104728743789916779258680478025274637625092527301297338087312097356723716626447703636284656054263860545973056534547706844644600514136603521084776519606838390022717863166588573308902498164023755105464287666119064437138911359744590339349190698480174163476325298145359874018725447524229801761002077589678674826495839873936452046029379375711797109120297987695398445953138864944913777591000637493109602368475627641205811292740216490468708184549499546955131736078735163084667413491767875959732714615766722590991702593862640029248210707809570593012447811997959122145203524531325031121602528741981129885504525941635163080637182237938269522252229570237312496128367832582805829535169146284546571790751651858334781517111434480498180749944270807523381695531440459773754521544106096011545016734218264193573906575342161468488243393067305489964636461120823947818442169869796722061613731818532302304330224526758454039670496093553846251563121701695373121349004548235459902908297142157220141739277301314379215009094690378035949230307517390508383737710913936190104675601337858929909984406568558014603166614178903127242374367891052638141663397407319558015550991325972322456958226060963396882435602564331833223261491701101491794555367998682428146850644489722288754184488369127611098879904638252141852460803341420075586056865918084978783992219973330524377528677521672908484841395181225297942795514827620940772951070371838116290642401406439916701175608821665682648156578863860064722920794355014108848390119337195943211375903736891213707052848910961232665774669475025931429300408684025375508197732839794497463033190539151621384555876873319397008620836454822931059202535165327041202209721759676992842226629647069119851198053721285420979981884390325323858076800423627638410972117696537249100281625866245194275449370446617226375296168080334643806306577830909624047247178665601025577114884019070196111498788738133325839186836158689870031535310682156225002781885118322659931091141137303044438809554083090001050474739720993095056419945667307126605829625476832383185397691036502926691780219264747881439524364743621262949534362703928320768763407747259873079053342900079626176421844425949118329125197583101516994461198098159295531657229799758999644140646840423757874510145714311542315380514106145542343951666862521852828707019455044901166494546347764483547646550689103282890726769911557887593643376873482741197368717351052471943035647162612048184754535966050181607281583316499124832157716438413768449664044988786132705709403877805418866859252027758593724824628061599321486995434631616400672833083052474163565308860415348321911066354798580698312800252274555727631090226190500591182208074943795135520240744183849413599587722693752779970421963704481051913910503849589855483670807484634209349937762449608195988672375020878357053189694750245619558416089140768717140580930928547948615041475478241829181862869037862929511084952533886651321050356513349957779111212125207900585396912284995660469703121175445182270726468617797721785300726142562394924332459669067702537688529556877359592763961242424887736261443469064573164367174194980971531034756251381277815688882547457876906571102122192905663666813816930107029177956739944280272183421236306431465660609358475673055230379593313292980255397252452296399025937819873911230379768768881071782204997136225750429991411743028370693637244164993262139772432293103224106170393719689378317096150483971225425539833479969679038646937206522934865942007401647274179111136067973570388574612451687586580175718078425435948297867311038811014620659362307442496250639282399331592785967944959307694482185095651013875411645834929317575974350196470403756202524241234402886486752359806071395768552628969671045698207591275490731208079120492896745385766679517063768899652708729525825286700066315409914065243458986172413815994861138212216900945715596791789790174132108665748684555675879912216613815164977296194537078367853836867540981150318056937562408186143747154801882877031389163680313483136353468219605518510071868044799402609024773189087933398610191128134379020004664800458981608683967946397091863266322539264574620459002680728365488884446480001764307889700639571762708427914725985360336441163779324368957988088626357365243374891763652466458185708999550296013797183648729785289361287586137545738583182934171484034622650855199706829155130628200853101609395542622333236294524989985014870270756153951935778754701454960627876088638494982277701255964061201910723461715164061325836946040832020328331017239184716595771915757398737489196735559410562089427820980868317688565647987033720469515695855874312682628959723129606922323339783209718846062051397486844122994825945943806144261169572300517122690511804718792835116202386211295563323878726957260814565159328967620200889025450245045103588126899171509946861657315200523044073359310984241611418193294586066400903201141597037823049686467330170068597170239336029257212722203981612245555485078835948080778050375559163238816800126405852368258986935415029876391081707927275118536818319525616174582955093789399955992133763603725934448692844641253280692061680698716146703450544132162450165659142852779738586324436578425420888629268287573652402302054473633942975712136379507435926174930182616363066706324961630853748928131067960663890033190820138664935583279484348549722672783483992102543576374315239026913942112397202958011180648233914422697941991289294924352725638784025730810717779322958421040907210612983019301624395861901768914939400431156721660766213218574597929302892026987941388274539606531290980681162672903665725850212817895558048149109420641194211084473134089369977704051452411990476014413022114526347686146444198155703908234887718884530524439993903865282755899522806351535700190691788814751044384597597356984637166147169560273922368462313602361701766017383145622208998680314007962802157034954133134896960263429955077097309046173947741737763065460849645928574901466480183960395442408526908380966570048130324011860627937440796102033907220723444784672408485620657558627831406045917205115596659239123826874899564205133395378863650674519131245563111373560107913952943190721403882778982300702495884869180587798729353432557851042556899806062911389632962804183874684465057502445868163809192013495075951837625641975403688231715878111322159259547566598691996100320188600013374379911913086740396014974752009260502877093452204902225503422740130548679252245572287950364946036042523148263216826021424404119084043037241611775237323661926585856929381689000176981608059779613589247845061144874869831120289921485134095202882337217952095853750972934624828908479143373724649878105295132626960860846651662923552406385180064170144065157443219258759909404306777757017767095501222382508526257753323360138296857272385016852039276743932942942024602795644008136702223314275933064914511789715914946664001230804938658986414817622133520358838773969495345300916616419263490013502424629223438957185511629854546120196704194864529308748608872252774863313833292342948740110344997016944772398097074534188792131484278100748085685096225845933058563580718978155984059223201804383678263665759167623323815419204032454031454714362953767157943630429438899459085232361855177033291177422223162354224511525437494945372892057321894454889684688561341881974085685280021664584612291654917680065448063304814589108463007071638781152315434453236126228162274658063720102031606573757781767729356358278086083164640778395576592689877082395067390550072143761288862737378315844823965417424907743664505370429398767914740679058753139182538278402071625196151410043500488127050489433527905174587616300314575153383396704445713779992266029736551948994546698091642577880508489751520738981066218300139766453398927941827207269366737756780658563720817010210314659678339143769444513503726758052209453707937348196544773802536912470793064287006733062616064833578830935282317457361341702961485737325954072391335600974215346849490569471973726029778217244658956891897686930324527917003149216272459422432922517427302181366878866578563804776069655905266420276956869512768266250644557306338429172369680511889327648779598317277978389037836913227500109629285924580323085627011562070355558714260845982935157985569237365286747398704564475464731710411591006304655631758293386920707142770106739004797529641255361484202631287654050703429592424137426498478490055124201470136223523847099253030090309182337705655777523352299542092644936278435404496678503345012043881202825485507404038976758718048022567958035238742301733860268074961643615500320246584379056594303531946197507443206722776620473228003518506486784478897334049062798128467789026316893482472258475056304389122168859312575628002830967918572121699443526049153082410059703464018673711929225306423667531447334610249077494363588640134899515820118831916672527393944933518145449089526105408721927618132478619371634523152617853853347143125018658748334227764275453003865969537880636091680877026487883028951243772994994485807022446272057805956499338045539018509991357365371456953543313143360623760525717856170276374413252391140586526202174462448623551604385177382894574945806863565389341440296627193202907674307602623360760761023843179272707436228187104423583413928895151359388756713917725933253247603905482889745455036981334222283514205515208894864373652037259458045377111811076905196143168300937852382073633429524455335755628397737025012227180724224829801323681225395850957338198486978653417120114896696418627524795505870660541530616332957839611909365002457990642486719019997293040195217497649685891266370623968897432812020774231090450447766537506555635376161055345027734352652454965456747371387874678084019543081684396189350582609593629850764301070944120841793485579314383270184185558016118967339220230233577022746231295568741998932264233488118683695754940039119254028347970960137482775124017168971254692020477684003457515842337852814828449030627467845546336390101933556302877928354602104229980607213208256105528761911207274405616845268350566619029084521314745290252981634924686780445275515086960921021101060591508226728926657743184957479701570528162487881822575817258378541880333097150665921103784101600214042942991584019459282095508306240315127578361329741667816859241513712425121352549428953452635850124303653935331102512861608291641517899619440389568017013599804822855735749399501993109384464234334858983833454096133722437599799279468715849428973804139404739448478901329689092461517513388988077511546121592198026482552449501807678408821074310835049986040924778892478255900123997817852695634596521825596734508599475687245156799341256363864409466256265959818839268650417021719977010575833920220533472599785358299737117922406370171741171484583422097173961884570411485064043113337114707846941581966855128990454025198151937707877178618574213509078706477797947628056727500561840123931384980751305884532243140757401183908052740149855318304989096316456709029545879303335012319549509550263137128051114688126002273395556017558591528946946446105206990883027827066150625322026482371082082179624337642827877428134790264478675964329356620640196786822692030355487867987945513924179590830568856310060913150328226441014186047088533124799100997740292385471755847123419542373703704873909713400121551681963225367826766464243276016724740845303067096643574002344604903944869411726517450509708157572661285917197299922845590594316223934267310232289849517721736213668094795742937969518177567967204258606847860481149967366090618437240196460242476341051463626772994504330299067422443932491914320300637876898627553687387862746496725714778065665421344220603767185703962875184874828916178405762886890610863391354689586002842779104148247814629343632427929340609427361049376839748078376749163639021151397059268182271787743177395212383505455168111546772463616640727520258766308346107082244669757632072639236162212441386519521279989545627396863647029172842627087097907032844846712107523754556204129437313637033115319755476706628271960867865566865668539758442524469420211256085610632379445371398056912308946832510591087333945840548671904551236052744700264543056333425790136049366274795892464721208490750108002034912257779145379488315327934535048261748954562734456367056285682455141873545640725780963386374928822795623321923342668830608182397753045061896038266436315102261374064009857899277527006464166020198855799473580078650257106678802298261190989622055519842780716266062406106168937730754675523203782379269748412719278994244799618744321212599275495868016888946235760969585412394472424551568533617479206608894856401437740038289011964931176049349861232161502161990251837880856723246049496759894197713989180899326390261830076958356722950469457810799644092458111747638177022809267593346235767108248605902799484684492760028719200467631894929302107882110586212769485772862470724035174136109049089393369252055525227286536259987323111404919692074098737751705092489721252450279108869545000487287560084201564341695228311109834833271843078612980675238401237360669172621296463967086417536875171948104547213803161893299334845035342062196237059884999290080587326558070969988888357617191864531309902610368813131253441113045616113442183349458729319401491821001727996754765186706610685491155209822818613916218908484632658877109428887998288489828945351211450000396050599514149690441069795469299804863101876309428756028826219645493137954155122074241910162086145551106272271727408176453191742246133435146177364848938862630928321383669625510855956719725104028120378647140009700263039094059373618664466867132978868776580619827956218392555040263991335155598800372377008069467344440078431700486469991202055384976736446745045499191525822824792395030405988149544119220351332159550576002691331382008449749398538856139050825159177543001820211704573775139983786123486316610660669018762707969289686004625678926609057125543159438578124023823653409475844784859921983433495176544366684498451552736971263640270533806569536528316585773068616843798553442120284790332724964290922764869667045418667719748471933794665886736892190793337465095908450541492172142696938675537098476283140268513102413299253092602556507890178009418152658569685897818697308850680740266004249921330115788003693947965047910813333267673651122351952161493675848395377999002215232912368021984042374146434731924531855553489037531869502173293885977859739549244621732714019676128953980291302324780716055489157065085280980086769782413423414557458770369744532672755065191721012223853009129901461519752527764955365225632650277202903870939137056779751044521043874885034266829533963752242932620861971472907054410013739751001997572030883259739228383974446520423811487288032326604406614495784223558722808282433703130678992705866518750207937499029792978666140870710240563263129559152060543194545965479403487327839254646691270361054167421578802843029089027362871569815796761925508219600090144805537779297415010766431082500844523226138881649388273288577510201219374559366247805417325330914637368540233530992450189162064956952634524953146410229172748836972301764895624479868821739568748713217683405225230047590384215955320895958509787675577304537246704799164691213126220640708110491794497698368907763120338790772258074967250959989874846787015145701423465796326526310156463821818006861433809221865052267549917947953272601003307446328260566393927462650964434852302865231847431429633300067694758124917112667453819327378347129270946148334171779914786674978449763863656222838927192162949316770077219125315734954663179304640514486551083356621060678651372899605431043772731060418564186564328803042455255351731820422043042610878701205402578033164868495238590532618779670437900652388179265435055068307514837855026468230084146342776352751910234336535764514980514428230083461758365461038002025434169412911093648620062785050738158331011391631558708432087265483181826752840685227776733252881487627551988066838628718433310662647254929787741078924529063407868055729701461222206283469962935574272327683303682303860923093731486246979944660643242784645909822463431377204686605231719844838877746122937224571429778605947742491240865537025580573811473442824609667244627139110990245274607009622325812556630559903572230599535925835111085683830653077054383876256563171539711217085507325962236502834725687380510745887414919787013525564971614206369018678076038497295353851938894708602921261893194738346500563195306083050600028382756360370048606498176262456613472477314736063251362385662570373265282589517010519336686769117511485474128169175510746656077851991579219909582658624165574899095429505186839851798122076213245805591709125739848341868293105597635783602259550989698168642657058424420755566848947351822777184205305890488224448835988499667169718084333827393997062531465023850968035343125583249034013429982044497833202654533246372908081766852481256076306809599370792779529173442584323924080799865883495349779842141535094434492397113223488066222457768142204147487131169540281843786327676757795010610046342920698885624226298497502553556261387063134511431895354363160387359777575996106668588053319835648927359888539883210944938133838267797145621319856310995080958570273685619138783823446413366807099498662474968349281783270131665196855861104717727284194132229759751537211439850457669479021630314877441864770920599221965576104762754439165393228630128034374914937056809303160050112625549807156448055684118688254170498410399031841732668929004130216243913234415116188829855784362164366085677546463522039563345357746686524601483688055024900722704002729668615950783949273298691109119858121066419344627582959798042472850976141035184424943482162426085110486507817467037454411388294165279757224124314609710438048449099708544611640402596126762672747235742506085686772042810678777591937006612849643638841524810403417643657378918427387095545003884794903324777750089192281293914885116601838662138130913130423943585630945412033201858844975744974932254617983956068540103833502169399655943382438471235049558631241053985697659023000654712657516801129779382178233049105351358106367705026973801285205684104167520567908752349916025962566950530126067429053849192364158844472151726348200331296274304291830514514516147296610988949553061576727020331566075485206082767544315687065503331193315320487211651342081441794167112882278057323163270462700444275999579808031611621142732928361488653315867135299041162234325496904323363544691009873266578523704993901688116587406032320678017493286183999636939341787464044576182934658067818750028756711726998580608548331203241193111894941261846840511052804697389645493949585323538058464884237963907355272584224503644389915891651132780648679145743512118215073824540912421848644504725902481998417695119287833929983623109087816587197694139803652189288175052912671032046398305799874173198332261870717817638619456077622791864556686142236831194344463447374157743586920020404351994944211153732472563582854688568122415898720498388238149280697529046613351934507046326072869838182942941313886728175187105232942219176226430079459159204548659398849704516419304188088899198857694887278161927393033971633630874071500614811039755425197037111865557765875127256437798723325791655661051997321857734979432246609247960228967139426504307091449233059953954782578439005297844289339490166100478481222433653156719562027601324681920639912286014575741736950083692348687263184392560573245354427442764369075895480062412216948401427343437570694706133354656517766176831315140060404938106498928428332044706926195662223619268562312458833863735408036762575215523156817778151206535494713450929375255987136892340878795670200382620996002307472983515276886727839973903035385020749800586678359918693227914101256414805080117392682390782071440166687360365381468314698024936208679045508914366926650398775075871555085127034735334584053445528096717649554139380108170523236372894039860272405026416634783857965970072810656924591491948515358831699240851215574546544628309168818378637157466556827675911096286693502371307984214135882771248024332897392446464202463816123029220246211470215334260524007576909806110609890991262243139112335172933027626565910040726340125781256614627691280840657465994766622394873021084662337674015985458045721364695859827389518144435804066685682416977856374962571143919330643093492765938977275827045967083901704469292088248469918244518175279425069752687966907443504802769777371018828467427022227775773881802421314148786632720955461266240713917910161056152173631504935478477983376258915199683550739733589824723098811553322560555419774665214276292162864851362431801859032685232003847957192663375093688441564598457043251787701857595276498980076647143118064178532487615796397897904384383501624364472383171045133421762094599971701756457077726960733511386251484012505502544740977547504934906265854838004653714756649901176228007020126809131434042360991141413125386554696869175866830571132040329133041639707409464732144233500178245416512468237811900564057591230163959354624895228778355571419047637290449806196883025744091366919767880567170971515476611151858820529480382464525850738227503251213206708220123371684247664758638740227569006667254509552844016409793658568936470378767931779165669041147118262793892189830524573406078066640678532004640043957002796438698084427047746751218460566404716727382279275010120687034984900054235529775763641966708772850483396347348850081658059421516587672055395952127249309084667287365154374871257176670680201353195038721680790978513072529324644336141483956791381234403246951865324415659853934870695338911832006972175907885669317254931969165644438856087971554370429450686123536337163378659158991928658408990238973470373508333825512762998015309671860357735406323817970195849063854736136498279322060707718670156366403122909962521142591577605021129431826177516082371015649105876478039516482906008518293493712841142093872750233784600288706905470103408167103453430147163754663354377284595339860431231362044964084194601360834905285000972583599461156334814631024412986411574043027142147479597442268811242765482734804104049251850040470471493140482654142396823016452117577554903739563021027999637603563968737585320361355808694640342882322549560667477041849363387570893303468341159253617363845387129872129841158600381135771473108375526096640717184142677126929485165644260960497454877610069268348633198853148817403834591450162610695775212133529560786687873087338120181109424769226291785012686326119187748445073891199812813259161794542768743713350088699819356698021939016817462336325979274970142361914565485724528676952723303570281676650417760373851177057558709693664735540878711155806675095281221647681728726752230752566349567235256408009338417754040178671847558021245178102786182834993388391236287198709382259756672204862831932381967667448757435670331002302396571781909083447041737103754368857699219303498410007626413782243775500431490299633174147219706675088769781922140785167249048522461842317898944345360780244902516678978910711387016712569969921321179478311859076368133274969445935950133774899967097262883454781856394609669034145979084870047069931956620272703301532854455679783209699033289314854490448979648721992519896679110908241688764515189745383560905161503070080043618673524189215869203407389451339665370377003825240928970366501087394821180190013711740181233846653839000649599725028855712272796032253311517528356280520137012987878781102028484328344174273308533778603153070206089149044233318871496201542107025476814726523376499670997667013185151487006027154699928989432333987240805733869412185097974849911607835259177632026456349521519269190153090980300270454363703160723817406481946518815221665115480747495800045021872798674805069148127865054002008737692325858058229837061881704460220516907765604354081838951111821316351703471142643210652654782900984831262740489563786461367095084360865203044334760370896642688278148698704988232581728868657569357797547714321428376762169970875120308227398128911663857704483381884975686549784353286797191153750710198028364504548190448769762319650581754757826200774844178313062070524219537474205161759166747314005000744242000377740867011641132957143455450217231234461803042660238166608983718327881726421307757441225502258808497373206873894694770549657616689906040673154815242382341316056110538174895502809100083757690916140542376780411048955841993879230285595656875358013983555385909569570894596520332909648704592194270653695208190968327777586773913837221687613685465464427682162835903403095007178286792682600105247661528487857444523209945817813632433850674358600437420642105287289711258468908571796020185383396825054456318909063643190425506255021738012188832574108007827899875821950159306197168100281745885770477926990662921075967518598526478322671358904074471019770209397669176101279162596373746643288540125992235152983225963983670054118688416470698150060487878110296904186824777133200180493465065898130891606413401295379619735670060136842696092249404148606142397457066337876911683305485035362439260091087071269705604396322569597699544891792080322159556603376041082055243131067799080470859533897807278276274459559929042870864565346733470865785072850473690407298098835402282164696257115444558208269708789226954105982633148424043050415427653434876984926106027317036561332538939405550110121535126749551207317390242173502728299481940612990264576991805834276679460135616061590153638115584326367552511617528776761574135687922326463645712205176397794928697442340321426675164831555792740579798166338871630362192514708201567093145464142057055333217351088320418378025719445186692646353183331984342724861234530706405173953318088069806478361570988084442089251630506086428339026737687457245693379917005638237109106714024880036544997612977596052111949275252380434324714677037973244338488214895343881571453052152387466730775052692676749844288721699202921314924494737085355182529301767631640478654321120558474224929933988799799807394421989270317933114677131588519063922366594345383329204618568790357317448604551148880750436054912002708807852381963250283889430719979389976315334442128537886848859897817564275448434652323699973864898181609856176712065468072789183900465578387620312750580731821587880848452762027439016099478691315374831596592012520008248919115395890793827844016655766018594984012178535517654630400526415530600256630429967600486279210151366815801474411798657080319275606552283277860719675300116675465404296498604287953550921591380450939514722768280872009628389904201508316071554373391149433588246997184601157583051014181310565141327638359614251035942890590187401013073527746806979520210036994118590362305521359008061110784757120602995029451217672989636246256989434363674128473625069816469143675355966040420240234655477487961631099844444317881347034826148297790680860911862140959956765668050825650602227537241576452209731826471824547578544119441814385789323882173173745348708146362545734129848550678311914391885956143756173887643752460554134390529497204095502792771041329327050049215370812681249960902388528106715730472992753455564945878831137690650331926514465854036789823891897373929082995413661378377906203890164970316353871095086996739406719321300663172275343757420565633396758494923849041146269597863349274237770074994966783514038905241201346544692126130258157734710985332384879806103417221164285585730676931795539153320620674999467349782267238890224212985367278567039521321649419230938746563222089513364829085258163789750870985544696313951412044600917219382460358961386605506482394284163594319608929709049366475141211745931766209610826978745554955367244198531472846426499262005456744154939526118194601450825480213036425052256878888358669157975116131849075509011914954991417019494035943971978753308698544497989054021182168463319217082974642195924173944086677992392699776244534520036800179553875500999365277919667275266007052633493836414419892120766103484610109374381800108138681071182408266992690003177935390077046171929975089749141094485048784153888866777073735938090766757987799817339082951676608278250226295834581989634646792459547399384353549569707765647534823214859881611319168311888043651444031627517976822383414813616059292052361663240738286414080887903747479310138472479011872487371745351467947076058102445869156561428546973854147433483801210436385728332549223077830621724322496576682004835748145768742719284819405502469641121609779700448070786541806415356577566204584787073674616952406953737424655943966166508370629706808072211744195774309149424321500243101699682311325661969581950044722849956408250864993325607624325240535012365525269731819093821145858303279461007611383590266433576246201405293137313756239969929434029241903648373406642999342733326536085876293988952700718291662068055881112366169027769179244514395656473040363456056553163287095703862818612239155604210533812746933799389149569619122126922966957783072883237145056730731191548316144484156107502407326233815226051545754634848664460282884243435393056682783831043263454505524733625668816079013221678865206717625104782315426613413364395152890039706114996941423073309613390208719271757963328365705817053761323642828096588511610923437681023083688134092903504387113766821347317119299315642940568126058815905440543376967648002560737376232792766528890078438676798039078228448783739508604356435355229534084321574347001101703565771052459617466532799002815405648300352311025239438526709214824340809919883548895235494454774692767471758514679234687207284286873094835942362508532717386272074048210483232193398195922047486352547267504427835941915510715509797110293166416909920729223470686454085855958368291189139310424304417359158736854292326153071632442268788223679874605501960541681729167230013764098719439498982455992065671069585811308956292409205949941596555924109285408668477271589436333622703209972637654835988521540002793666518721983270135383988097740756676741468422226875686374777966771051526487124210774025768673920941754754760566395868665524039600002401044346465350891349798895663496086132152770748715156412394810536154308459008444367665313608227800567680852359142081746295409978645309596067857689494467770166392660891759185696916568276998886022870228702465474398042754252653562950048311760660482285703349708148374886846353770671887837496230499556432295181540074944102009872782520292265120126917496126408886697828570545437791714221581822337529871368876895042816406218207183552207319312120223213009033630271668600872219972942610381249934308345510061068123793739742396610034111421580059375880392607461992923129202987557707328645050840043333630859473841346801924610709018797228001467182983293335896747969905470482402939873450406664331081534494504289526978595597746607390691583641710176622962935835933125924464903747062303516648897788228035166396321812319935136829971601184009850525218752599633686417096528964433326673394163115617022322122384166387481013324525140954813926809002057732636688849169319028670691311764201392230130242695068588797024470384858550151309053008807145340900673192408367448641541281113009062140146047192846782068829025625224570507644661567778794758042533533248192753770426127173044922913524835779503216126331962289885912981469626447103149780065628811335785510065036826290872014535027798532473420094019182276326211253213087002860328035973717971126030730757515608904790187625751674091737318657232893342526227075813745653027966318305291415299156770913585255314212082945663860651504573088536696700328632583927030945680108535298377840782386927391020839635708825691780783397179410003500222301568022875017621629842503737924832073008238349721278564601682924267637309926290212876448958370426742641613473831156228112087875819888026792975646057911223826922622286610314086208017494296070988658409985440420403420128626576036799979572826320283036668472042555925473146010933187699761470489614155540424048276890696094314283617233565297446166802574953303567191188003614190433216966624088599251789349565006414983000620900133639991522238618731530445415926054568250278694223675246107238898414430999126416799306661812489048912795612537060428736431623685538264837370494938832488562550898092608210707610306190909112005710707209171903541467723752653515496571672480874880890824176490274300833010441932138899247453445177115232937917239762828127141487617819136734877334111601986884502121064662599881902746881072711907404407572123943047790897298927654916016803139585450461622855605457625741802352522610923959991676037660564350352880653931898754620750125436114909519130041306630821053320583790866398745016805145642849203574462180936688939734581094091765058214151912299016514704473869776912393242356101235067224709180237789841914801113586567217580906424974340042942070797561183461365535093403818291160262684811145849582369398330079426610632183878001031550782424925569926212061336885010279280934361006044466624790098411251574652595276920956964456053187635694102419601416361372231220364737345027235135299631221883167819694110693001614915097371546832755588782314165792359569481850091987481280652640383914473128133794099005918376707427054009061306418996839476802931609611451990029434572726921253714657106221920486847179982424232509266665960732884502081113345779489749282709299320416691636888798308635748286966404669057809974609625128597451565845630316864133581110634999740079841600793504330144700117912323983573219033473289999465095091784862686184401076350437336538565263027893217884250410608323293535458662836612111265415517786033187571607114328466767620231058175391806532386583034360394686531461406896673686696792859700931030544456146676482018273280872087175203299104377338875865313572246150359961157973760517080504943603558874566080600758499632807938104456439803006834616600189146030030059552625462293654344677868057155174793727663920286244524457430466265990816766593637130342108692502203436658370039125626962467146073913914690264360971551236655318319809750112610354070682174620785471658151320744967659226097775948999062592055739371670002633455564168178645380029647333664573386225719194961537471459494037096744873987154932596311094551683070418307841593201218308157838933647167221494275603709976931159104711354230261196955740526580128508401967700780645539610799859475993893731941122012569375716858485294458333997742824212229153728267431581838910386731038993294846175654805012744159719256987755093547174207551863512373495053650459267721484400979095800394829471547628380657743790612906385219581403380935781786996005658693315694787318929979313752124894330619439187114090102102162438934996537781779301958237377843373027860274526671872477017951076282879791650680787403941533345559265430333104791953011826417532994334451052958207348172961471782359980239063888948243483682719339857273771415814738515577510462292041972583572735573802214642888511138412358082062429938277662481803069111615914052124888011596198293393599278232270321512985738641653464204711831986844520837819710752969589172131278831248283917509164372003029134790413735071898931430230064456676636791451571819369861158282203033179305088338511843858445539024047631049891650457563731264775718338388811023185458391099026684225324847395718105491594504836994436965506498983516240169591088525373749022269280197136887969460341827366062827627109551466889094114144695884588682884690018300668274997475352584153950743608543710327563375656191190432936164115303475767284289674335040799395362457315037303279810318564055551333278889158048135009039095384926528018232594320176588476070124585553505795057844641862933721926405858191130219296632918102861284759497994052774424325619809469407975354362094826759781500741265353699089700635474103288810711017757163066844581523866589572716188693679262550140793645561865730749664850967918518833122650265279336127587449884291897791234629347860931350377730371281451346454183980558254691952354022489020885485825227368405987862292405514910890155191911046801231702009702907528320707638970072485801170524749433700918430223473976845617096606759945761735847301834399277686189694752878383776699613800116791217336225595215775394090559000323965278277977731830932105445238716161230603655419388416049175176293638295341136763290044968692681849929495365904400664903758675366115640709666589135348326042419896213665936226997394621435579989756865075036314453445819632425230624448518625655248947324628092598393338674771848347265700941607601167854357844807258564507101464439982050923429996604573487877383107686753595241283743456003289903534604997704553833076348165217860811584915858555376929003631801105668266830861699822223592296525400603577929269772690111076925576476788172832476578503352217308441283985612204409066869642765746578050941004835391881439703802290744759524584533244297401282966061562264460088493310265320286023214558122846353772683697396932134256508882690435912005858541021020959052952251637668064467033953596037095768964948195403014518860348636582888422580132106819081837875133420286447654286641943705279139778699013558611654247946667353975012580896093312627914407338777079266094501138605834319356859904273427188933146726869592924023375905312906515998517294277983423090838039215294308127605095393744775396619468882813967383230087547609428836532035755063461410842626700957619021891830669186085156495651213309601982915925408696510732425560488264798110524909848431177302310065407378012829167357117187920897460375974678925901025625853609152917181992106935379116493271414878133315037926700673361580794359772103353037646962959911645421603341056306377480548393957519868732602280360899728390481261117690174498931678129740909062454288613162084246364372691814650573654801391063424547881827010073488397946184895850620598239564825914172581798496854794429646388486239296920279897689346140508219444755773302672014179012149310947808459199615731362504703328330047539701643189561578894706448066689539918082775896039051484095706241302309149416222591778766582496123423420308710099015864089638403186353439966090848127831397450204874372536438127505278630064831493081938882995971089930679730933893946116163851523953816157170427336934961389503466457906030323117364863563398205322113636133210962092070626206763336991378446293466190980408534724678976558386209014769833467780839064422648131219675463947714331974755975141689916121499000629126271674307748478195381212547890986237485879333270407697043210604936480219418548514698242976999462476978650037595227559013727416048134582647832802866615278364045899499407090400648264493141734440874786127521497444340816487222737928681308925739513597746007827044792853343090186505458306552521582350661441602871290522513993434783175260614098828146632596817561020936891556182257528752280193072448626174883872167036581231866375213152976324018953098969980005009850099314783123430872492259775120486200552851501132075907616316767778801247735082961059225999407897235821951469327438799110284300563298481037993833283781953080934440120532621161182442158514628182354039894929093174834548232032752218231794134131347562700448498932908074427304423118153572007655900256969089768200972894761001706278683736229349516740112792469581168133959140229970268344097065237562838052801048536050545842819800851534241030503999663869663148172047953152273898945623368177952567758509773807827527158626359848014285834190303179195742901257810021934660942559887946812180106219482070301502350666938834077690882738640095242664845995011741339653513592568416597811775844786935090581878696307589373315431635194920328204800308130690295567266946632151463274735492459544037384259387749399752609209541972880294928672965440041037178216559891853511740430946855212988272559847800743217358300001354982080602497598181095449663138557839573738665091763768650365069576488675262465756818631918974379992162030791720471131878603116483976827829736394376443925678066838757664421679324944190806167977902970473967782762811400927965675972078056168053065078793773119447805853783084659490711784466006033145958912718114922620120017786107935012006060880935811171431264708675563291618896218735784319775899017795154722399831725707209823283376968840431386322813847414683114384148979424113534264580971966940473308844566489813758003651391025848813053075731665932701449133301219618428774158589979061088011378587671560884789752261505554806510724105818578429919830970467885749892507748006690923281743010166800010889966770404595393953103552859762050193247464462616056873213217504100894703868378143480599306819788317384430415803401104665233418057058499974034655996395653099274314514411667497653002385823291643383317819267369619220080008020979212154234319147025897787019901015228574776428417487404542015970357511732564772080797961408660714305718136728250405403190197696674948528137008432538872841799307508195721948987745194261741548692322215684188480122644029815920646520072468116879504542633070843670091335595422359358608783030911763924066539315663320812170669358155199519597519088552420048687660093420336631993625027770111564563013947074030869656023645631491530647771723037336863158276560404187243034748512039228928933457199501618770569109128332894978637785204604685091694696305315264419108909998443999386732268773706316155949525227970428261649382550980913072190201618401683686916454343527381481296297994575910372057974316373312896012825650313764250684951631310352865655045194816244059147708191264935006712730767541608042472662581498456846872886816266082001202923502854174998439560000058547041715972455137468003042186420659368497244262347973403048697708663962691976643717345951405571381056186193787913072735129556408954004017400313546257065959715617722920089320072230410810567937875501541972764854412215091301024688822664774538106384360683800172208421370781394446408811594308120619673780821770316218231490595067677945571096862455072545441289321979782455660395595272319345474997504534244212200862583006958742378775082527054500180077192907213033783791618580941499239084930778696399855852419853422824480913423082268633694855611694637484119746853617558482680270012844985105560864333917406176085275805304258753492862233148556203985705049716333150033069113413746273290528357293505226374199200962208656098108302444034843595714779223805399296492685903633624662477782551498624193497655720931320365072542021735920772811794547947689272933188101929263303390768834636027657491161344626514728214313136039003237544016085351700137435060863244173126001453378061700576592485419634764428966919933108256043945940595289290242029380645936035093336036026407858369022404546969168203262870688117593443874651920519221242512091831702300375828807055952490028997593832463753593625563156327879256089001139246532311429703719580686447635201814418996371868404946502268648999327344421339990206663828230719285205747591725285083110589125089835721355719434941932092121220857486492564916465230280959966906368375694740580972578405571400641334495583691536516968891601580337077285258745252756935273586724436453165613454833566555402175429542056785049237907007546345614713336083856509095504133667184417132708917657080714886944846484717987438713842018478110245568633147882843371815193252077292126779237735379664127311547339867544093481269793176107984559852718498503667621555380633137309339921223112739881120615261993639963548104019771614767155951344590740508174943448026280978994329391379586944710014905873800119684188116610106107493952861573305707769291483085023995209426591591400890331530270889144152296374259266806314313521973993069877699654877881023346160914042558320941103794240840832243468083977069148181206438793977577834673661066173317056422081803341184526313868572671481822051646021924424644242247843639904953269333293512496219251547695980734353192323855726235573917117155293561075878980192979915321417672440677460774284222847999649185905339568448574195526426368280477571191557547207453952844658366153856929137211981514614595520911621225568614944469859307181994007621420437040643848110767275643535601897956780415218593728217128254413633209105121367565967483922640578223604604932921151728270786005022085057289457750143838371589701597353454291424004181940627302104754995183478832890996663163543565054520239817572666581219187263633409634520017489690445964697890458375122292928668333152301431365181711468071017543934824748301440033466972066067652227744523637780145795181121713677244931103917476301925205681196813921144756704433996539899344966917767171168317416316983384854991643900974399773083332360750260188102152504288555287454524096725702112147823562092440568808056871060421937587508324816748108780917085207573580961884118356361507865452258913967697858277027056475340381330753211830938371394192167973143407832830029201656931355629016638900973409701687945463898895754795821979489687709154132909732675833291050037004423911282011182214753215355160656089152273380144675086787703916960544042683660065619405818476946452574019582965676797342103760691288253113333503766140424827979465697748470161251472885147509306571302119922068072567709352551112005863411262706295255814757802707142524125036528119844126327886311429574752250552109229732910357843379780845409291967079910589085747144235218723627260015921754622810102711391887609015587455793576058939863446828537790514313883432388498240022184853013601124983133979470415564615222497672488251461983345478997994296547856497658692898993676470606834511300583570523992327865544961531695109918800682332844875574304751139557655796132642303841230229914167683727660745833484374619955605809588699173128887659859130467093605553305431237510226331756912267757321938698692847888298560621721044124909569956415944650714655255035329631325513223308598396791521809505036408481559367220934597252783722106307621499114334877064359689745222020804475892870593579208312512081074402860847222173732852609891695980081511072332259333103783659453104510663733248837775766113683920848170153659857292206296129601078013379837348015745408718683642384147237586904020414960381024119800895579476603468524214921752677015303764142599228158107037304024549211022039875051619147151059847676358662117090857018395393575748495879570976034716144221993025854213369452546801271409185163177318979858632614179222475085238293397047237213478450972377298247868203063054940414529983396246500092610744454011469174886988939484148293760655539197614124150158621724041425968530692060091948966143179844419079225692573708290069237002033450157727325101097897090369648661922740381779862667134619205395603689348398077162456790765494379645949607860189975014073562886509836606950328213273963701508633900795734670648201205548827895529767391282382315151564411164288000016287989062629861035193325041234891102754649038853629631301537518433789006055687645145984632425461716595232442116610108466228852937824509902558157186541612349361227774986990735625899244708376317942431966603637630194805672032457000773137251473438992898973504676865481679778040593194611571693728030677468355500153675676234245315252339313086635650357813986896557887754278635789987164074027524973278016900552266918335513383542054273187702613491115395922517316219883476727026646029533788761263412747349954301563094491405007924684254796492787248772869904095376733121472593895785959192689921566762599520886099533559320020162302163360198944615392733436142283286838588083563394082268440224891525754043034031014269634065190165539224850098879406546476520388700198481790225633776199178388805209985964788767932115373676385537218623960266243013491897405235984497675313889209262483456138428891282336219412625201010335477443527624734128031225554136945766361431269756214059190495193420914265531238137283126353925415025688002675943634764930843867346162926227755905470007756741843350443065450059617543415420644531171031769810551352596273506820979970395305957689663687360039424267700544967150174434775918727162161530009596911962251893431502962717956172561516014213158463648084043513055352949989095470632786147972799891839822322925809293614601080373363252588802498374986675003914892252837752365508246371445438179895236771441161033156744849817535863273288113107453723626636935768066695241834778628891200948894347091429048749266527715405331839617737968483954773896212798373462465040597768617892319949445081539582163111675579721309174552534599258841556629624325499265721312773752446758834032242216812622814754676553951516672796926683779310151490467749777590696026556331594317330474623342967233886274727637222093955408994301653453935682660050196202995292699690120071143737265712763234406404666355350708139770986158019287745905436903529083144149811900368382187178615261623254151630571439263506346372354606951572701357844428395905548487356969935606154205024212605402219389690687764908967660351115927362887472589964641599148442135148512937819641798521607339190566619797155399987515841956297693356123505581528456175830604831475759854686423731006521803132236844472164339883686294347015399567919735146562995733900146196900857077028734561724188221931573246326064358816977043304644463859167759042755690251225014605506311682699926730371925383040291586294301249847474154934955454680133689166645836466329042559220679917358675617328044409224873361533336587606538080718601947769755896117467093764332252773876615854503900540568712608078013824095854234104719962309272210353883672560652278803412664014111792354426170689888998004709619329669650835788253653355624897312346908672149013527225426158837436940083150044805808449112860925538264566442495052048696046307376633706415901353224868818738597551519102558244647365008818982562485708278035421051912285909284215877306023225220271442923512974993901052985056046638382225057901908862847840271467328821376646775359527533864327485774438418330591792554497107844950688041431405981621474737700811652322956336539903202261267614619922540334659915342543774652687716273601162071423782313074696856543162474563916393446852918177084404612256188717459997601344673572270447939267007865523499732909136648717728730510121861502071848839706667229698410347154817144267076018731481399089864355706274247399556400458859404060834285215721429884164916634655681961961758865680641333893443219967212489769981729813130970821990720267353820835528369892388511215489044926841537974491651995632252769283316976360818477133477130628280785515037096615216361274626258691416299403117166422414798797073883800911557387984399984211395747944135435837841081169179068211124612558429065274668560599141693271252093522489760255864716335265353676038254664640412015105284205873223525189669629967753376698711570742593249256915720760967439237776638106985300167754455223550761524143654894337049728156348764681091324597433572594499179892845530313934931896169978268094775407642270287495400521628328432522286461871175353388338619431007676010363138765292740753562821113180583898264819261276364102834651526489246807889755817126367335138729500809348156548730925718267395111563508215894081782773586358179468504523087659672731033726471419287441685349147455106343727607082782539508372532385033197030344102441714987798771910931166287894576955449236913893545489300713279982962637057338529960170455121483850797577928851875137440832423470224060515006697823837402958933633811926909489630862970685174785106854859531197541416307395961319004268842076549507080541644052082737612234134796593296746394358379876774554475300009371791704198240238221122487624670018345494631269712199580971304874976228094498658298817345356843559514586908991427167449606833005300074335559534640259043976268560804812351406893101531392851923135099884317018743245572314530447089563599477797056577244498598985419604394538075046865692552898975682248090131325619370771625807963687348063302745795565419217426051141993528790548344566410979193979450375705688852044107802284409134834781346045606216783483580863091066990263622029376949534745498538173089859871021564927042712580293967036428599995697678257769783566206616768306564399080191336250058868195417071268660315687289722688137181027431527135825095355709020938447349455758438002931447354669579526278561346457485074252520006059026858340368038276876247598956633306143787619441009634334221969229504561157281077750958863742158289645908975546554411806191013555313396292598352261446970112042880661427458096349234108785833850154301207295249985226401005058804527015297670912915482373083532991140665522587564383483584576637041712797789659496866949153201184584943321915711844017894388767205556272213741227528159671198984048257190888091507366965063238712261817784137643597945015565571118569287181607636215421533074766696481924704140666376960581348962644254838249880790231070871019478130846415369592750059527459674262593416549148596509430209403117587137132620031991795426216993697924080040331685959493342601589459447732212727298596469066265190409499804196038531883819421951033683768595725545844848996897072306414317870928202770118520624098634824785566482932301475330611119673036557444492799289812006177433444271506184117652476187526895854050164499407197326230613864848460046506441436473636678540275273920502381962305560164441495752617269100008954081037779881915420701164721315602907260099305411942291499036307844281040733208023871868403370315414221874192831521432056755115900588799918085078802323672900861095903305380283484935848088354512571933107456281144778256167823619907332589487611126245369544189782482458943284019004795638664762836396406907197022404535777328232409369890901952742757835650731827872580719285854336582721916176389998027135143939228113111241242259828519092291398064292864293035875068842040134598538657171277588089742846507645984272199413558052067168502952137526189176383667956726343673358247984020496120775753389227286024255447579228158865895644785794218142677416847860882737360049236834633276342861189107487234826665048799288987811062533643102715065118003862260872021512145374109790098258097169310756037389924814961936790425511808000974824415980390117799140315946072233361161225656007305216893809858863794199190469290048429958088361552431137341551793914683695305702006822982931203174286012974998466235583657566928785842963629002236972574827240211330026763515491443027133104767331851980377000423521762003556268130674022542009102352683950781560039575627777871618342886247763819456097638778964891436481770973805050068276064095989439017796105953807761064012178272428550882950625592138640216484995556585906745094495133714690743908500970648370929118485447325438338790194108617381116552324693357159154377733363711194693725890006799004642185215820598715992918662693306467368846190244990151678583902042912019749188243511540975609707618008508766202877884697072325726065898022543457518123448282747320517951650522763199383972093677954298018313659856827484109835006100268112469657669704785339623646113598808384304518227077051230826177462458205042698092921247232677430396077845213965640867799590924987600564271074833257876318472558914626103972507140784185637985875708745871297889622044265002234577451785112310026884634431384669031015661244813802713111842367969490687136396055992746901771594298775995418174963480629573098886670409027143865873076272842486246100924084969993381126948392383653080321040488357254606385423118472909501898032820551606405106198766452985086477978551954818529587697340356762502034120507023323187909977322629750443753987120111935134997519401550497418405772168536777649954662919836820273026227890795176015097082253851512665957466986229955095345662005672328510518839094248767642624034330984660594503162569043955133611007265054538008106630780923947183718249332694906860494580346239527357609364819346093982696373996135666981671625861355164179945540529137888261760362528448644270748180288643834191026189221312153969498345809433081897638452621926616970953030024370233175097126207014224186983785471439134891623017838140623585854483077605633699959073565986216802761397611635470439503774477433557689629795486429063565368361930138748799533494895479723953929921201004077589261379970584124895849901898588240951777068955630585001038965708442972744268602228301357952900146749107530655079382103072151589357419287575169924554549514244191599148737266113261689410318822223726534651698787901724034981059006008842184770984180380571586988259120871841045646916338656298055687309575523099319372163748700243135187790552575066832532901109904662342964735882722297041156887122662511484393040086467792847199879996917180860571650880493691944055586419244319177452756440341261571236285541566894861141058013695078026389260576324264436096691212668267360937474480952749799727008947445496234255623110508907089293153415438744895897066073455901550138836522853394021066659037595600817085147956144123477369916474255328257278016739723494705057499385852276260527239414276440249267705159718350031815936242314842221404574610135927981854443165354929735469804791795834432048765924401006822407436374059509141335662682923183640481257015313143453063363626646857373143429518174605853811029305921304071659161298225829481761852077781872859654583135160117400460910582792406569109694846526968417479778632980475592135785162281499936906181767154125665364349458322392982966862185462035132362418593198787253438189696897267184670422455107024112829076119245513686965546910572883919271756235040986272999394535691877220286547962510032546894713704386941718927710762157106966234052583506306290352370494516274987200471746369110003747875441764231603529399114269434720582097259121216451860936351412634229669829619490864024989620139301407422370093160730069571355062329770770958567365605781610694023884432265137829276867632981835353580595773324255988289957698827314172345343241951680498004690768025736716371476471276799339506067702956367141084925464334195292827067596639485789293447174905537589615853118998397291585308175386663080592459880791826351706030538292429226308469611805016320318502768533401748940590560276166450576334514809751434641140353924810122376069923070759711939184599929015611900550928036518808067760413838513465698464259334818360250175432086038073405148694459254178160026071689418469906784282951510316350619475800540065826575000313099412994067295099278001624458755217266582655780323719928992754176531262230921475951878901458908244376332163136617971994949434334896028235205517453974374967020435442118138864062808108484788739111173038957752853362736829168870482141566785057486362143125276032721183548358442331759478936965894954536223450590317864144620451765616514696584096356133195039622201065262076650987902989194114743926791405635357423514093786266789153154855857643390944307600987647344105163929778926607421974766499392191155020075185584224606712232207762697815957189682966072368539344886353541719576452047608796258001697774476330156898540560926699105292079387057239568445748839332662760792059979868077870943475615035947016648845957103899922549586484069835658147885281708905817818613461115918880253625532234661543023196508309265544442856111343419443125227009200264550374990684000931309533531669235263166871278354069096345213891874716277587041336857581803353284727356498977185692369992025720582929166257090113241504373096171388655417530650533791740760273502884056893271407075018001070909361321685218900469308004229135814336569079032264901186195087426859259149188406078299568934299392404047521176826509002053686941603316407306703852136557150183732261588207309900841236469486721038593985775323863970696002847628019689416693959977416238818694894833200985706346297928391930745685482124892257006841253697461175697855077978110703207942383430268680349816489100643622100777219843405762709560662497506452377358755994373260424883928391584054712483976414239457026898032294555511100885055267219399206289278006178768737495243783137847074163742063238114958413378766036619384188928360895345821672089286824441012531977993103113759314439537651099266419773177967074917130720722282566090418280012027525058091234412564748013470635632348083169431540812491879492466101665705304146891628571772255039240054548434264219457776478775835017273162382119200011106390178994460479231572838649547661755066366418859095281499348017869847027368590105141624841093808089116495792740849314660524877224426032281586509522106207832979869792959026401890344300723674843112235760756758233305226753493813483624111202335958829348870270684469025224542353182893234170680592696281902731302371964127347939630656180409392329925596061423151122287006758658851071587870584297384479552510435925370191736543846274671528556686831170314417963969121254922317728355077641205334936002016446315347205089453442139441755363589504281714279006557953518730431122286012462137510388316147838406712735749534840384181189026363498041501260386029925056558301844990998536350425916838248671499160401849626212873650640942593417906958658714196094848691633553657976360903400277967927004381677950615893506716821012193881492360903758600034129291642129801597687677717270171892308936214218123167213208602044093034842355029249446511898865034521802107772552697182473376907457660776823548643605606323230273946175158615850705713680237747735115055342325198459569454559223351133054735213999123780260429555843177014296973694819340166774240170270363349263664423730152397685803528220752183204930843704271484851965135174737726858690935740659261981062360941268196912109572581449675587099256439683216384307188152684063792295864336503259404228745545057479402010124703357839678920818348883473040716520622640883782843621440219091082671891101323367921549140774081981746863925980220916391406724415411471004804522367177343227888415337605516717553166822935874854711620228789247256509690348317387216005613042832057478201458704562488849123641865795731211087565079265076551061302231441783813093039842411049150058317135293977811518174893860972139121736704220279003869864653452561697412135098403354716294701087038185183939320818727869688522803561891402773398166756399172692026991787763247872487626837158488827211386779280333507609965914993974429355212819116567053235738191318386282080282914821141130962059503888249841883118323804225489356682447571281422096043347341153740148964495398472189238576379420328836611546884343529617545056009739043101182931848646622254888111131156169639901428650390310302749370876975147142014141077154233474931745524271494321549977293829110810606852980911307257336922905031758704571553060676588032400532726754312058475979023184351318197085697360691227739340005219970841514912602967807885799084008016948511125475024173282362550088547477804066524350743040384494692526180553177440785817960215171411415912564866550255439601198891145646056585199840500879995135927182456673398090374248237112948774491337398335257155617579830840740408817863856564371730301449584949364569351758854339776090169246467329353861222791394477124796615983399505507009068902535219672752634014319384133440580829290643699086740272215579523296312201293059855102599298648811945796750052472862623099748856637681611844809720528322266311310363086958621037260857155524297051278991853888166373468340634898343507620256525309395950345126869099682548656634609788258212522456704050516549829076217803540505827328058255457232986951050442472328602064385791266619565937685541982918254408182130736652724978067999763645497479124100723542933738658205112889668859049379197265831851483612846095927364904579694169453025132323166958094954125921438325914928840883883480127440522369796347456420773418910246653548541796242477377581001905994183139133155402530784447340221347729540991343470196739045335688372745693834636979883801818631548594940632047832598497023904497615448840898945898174954918716323420341048423962421466814575306264595438348363051999969559018358027589027290474789452649376274410892528985016282596744616102032676408499461976449464974579768003800587513720824741122519861564690550813808691487896742096978637097866729651940625321691678086252050519943504324697296072848944781459210410669110126741420559017819542047982194955899578785990446956152436858681596696273092216897050771541981618999512023105884377992876662677943381795446975691846717850038989262369877069837235087879448614376321112995020433282586887212902451081926045607505480527999207262999989644689985025391535661887777314062709832215879519868726657886651437402288120182750450789315598743973062603672744787894403008580202595146500838986301542445891786079191804626774955967905566400612739565124007628291315423474487494418609710217603953839969514610652504557093337855702694168346481744894122779337604646521661601375516542152478827569699073116064533102450141517262368458739796484272872795155190344964419936202199324118031239571453212020270580377017709475229853052226141359729310954088893114805256534159249483169513468838394880656057049119931723444686029259982814152374388197487010258030705723486409478104089462186301224121153189763057382610807960594472106223232163332431802835882928441904608843739215029519837185271369618894113352197041091769015586342937671197746011722896495453379092201129369956281006120679384487274801293072991430986965299778041026794716481151148449540609603787910837262293512342452484117958055611924301860349287905659021626308586194240076700174393722577257239774356015091502925410622972836044559776299168843810948215532660352674946080527757057055965558423976748192252650732461504223744145245493997858768979244430467511851291854658151120496090155085722876158776213006239826059590092406580356550977187893726735974047360880431963995593214058601491788437629394876756274961342993264886679905461614781851653511767212984403623988200700061627129511195268880558282208904664078141046570226576156231265985812572763015789443519357932491157030214669597870559010257613889305427010236960621983225360261558314797830363692330500396705936305423317295992141173315732902493848535873273494795397199396467871366517679093347555341622439619428286117718436441036268074158368946297223823402210405313717723602311579356998460297992347733749110975594866132228553952181135454190567750817470364196899992706146839364196568398339113685304752797997416534549915023039005390471107533941692834127360743262566093157276765144740194614214312828471733190557600316325842321895366782372371057079155123477407221564871087878389828650836864092675982267286488147537636185757445978658260688268063605239800429620568998997066761586685522241045206699725016027678516049993961243691791161440311702329758067742821947518473895916229851060256846246564548181275305153202916425019053954570812469864044220063078069754803769363166260912959735078700498198215234130004812456552448009000293528936189289839689076859840870489514228787296348198484466044887382239960976940733571375571293369131539641167065828005367251024458917517509690733398651911901513940645919033870583405335669813568427619124188629274756474248352765961990115086111222101302350713830530883123085753838694269637068999675794010222190487120668140622619541901949581219498297512568524998851040498861187764822215930610311461192497204909742952489689462787141116253590723928811852282299656720083668753244769953963798351140284611962496317739373366133890660029629853286445058334741102131687069443201518430693798669921610151901804623222220420595510626366709198739706472679362091971576744178873603330595888684470541670148682555591117680677652626145247342591040125057407413248567994101466199097174755852946581393899784631756807651927191020618106459561006783431067227957398447361534227181567998726441294489429919490661094446125783867934712783134626214506783432943475342101712513427267728317385013410419781376003262041886046819315606756797401546613845938640615160871547785376331735304243560898893999192899250456160830287230894854725041194663580398870179561095231972866456227059146373863944305469361340578918490515619649260750084116464648614491877304230504645076751262383620498750378164113433359621827830609879421994144961230252398803408799223544886987064899759433397053916829577128600182320710540147365863136610952072137305073696732568417518715333483426295348350548823963071725209858853617803657700865192237571086751675119853160838657273532732396992173478971841690347771831418947207920611429502660805050989626518291394185691351856762620561798813534816822285789684131852821952618618337493223598687268137114749865387406652536467542285134493962523501392505825538387205238233272758980006403957212349625581544981185010853543724339317305530275429157973365710287392183334181461010029868512370217931626079212932478465202178093122244039329946696296170175892215920838157175669480318546750790142544336208417050326272599808914767644329626378032670466191605670959177000889509305856688106458013801524642118333464991242642372153124999277755226801982099839318850797685180125762676117033619574327994823421257979571096697632137220325840689337774819817946277195787536045030629392070929278855408734284237638579741117154504600990979286150909770828836938605614740750172791896225392235706400422244420314899155536452082386303130518455423041214995818437804616655634482648503432397120546746680462545705254755304054207348231641345091993275986216779340175948452903013507956728031689492814598765202571493254755105005762602916670068791994042292095066793116292108436814392647310519081505227069416096994193277833447320745063665921183683116673057069240831414806692567546289830623796553016072678215905895426252438393970322713646498086226087411078478848064703178437887679325322788317608408085568002378318374194863966257158517483655903681587516675984820461902799653554176253919713840730177570349077051342105901625322874607121234014204059027228685072246889292157773346333076075416990247780355196264895351415985099319633803238232807732385116884172662777976549119614004591781960878216082196548743622835602628281354679195436757578400934929626327824883297951711812397767102234487631602689982209530669204361722032398471457898889471527875053534239518252002422805606938865003467087277350590017687968316941860226088495389358705336736698915418875243305040681026186311104698395773028056580000984987651920033002997550306415219220025683954702326295391206408885572272036049239063176703921376136227174365339480066712453620880325168542186386896986162302737305524772675293053401866818166708816817887140310348900787455248419053059069987791145168418652786459495831991175247444344806616206718959928126868759819606830645445137171404249893785260950419495582586186829368496278391899157068324858609362918503507229477430701375876596542317570716193212878514392717074201302628383319789197245693152799839691326063206558173277504347498242153688965529973117106503922825416866054443260599380084497954036306846651865233144852347634611635992743218929541903901419410831323861922924800018555618461564628219452302747029898709733834068685860978763690716373039777600880806675242991354298503044507207387683845462946110234982728393305774319115067117185850686822059278175795211795869803626455794298996001620856279872942909354147499025401039603062907067413662394581672431588403830071521465953120938391205788955875436193348980810924256945343008785959547920099991698739214923172944544388214418075363116137530662473003406766966976664731113924668197489148691149507435256657470154030648886081466323870242608336873521116840581237896817033483036497353005933601882369881620761918652868873869855266983729441909510268198700661094971650603981652258413756148850176728975190860860820718941950371591002682896368790636620822995057493125519905673009671494939861156917030298834117215735059818585775635810802795309124159345169462932162331151802996846626152892506122505106628984593417931131333515689929097191985071365103767394369502743929885015351270633112985933151509037514278963545035936420929557405224339941235307665219205907199720137919132898203052182663688178333411370946490445038458529281719418667734208795319523600857084240215571665578333327703037243135281178967898426943097023979441515052155238302463921403811400417096213146629169425739112140560350357057615209474176154629094479479710276232377427690119213023783795189382634388944616056144440907689912622252226626681722639656254664908912474000941956304334568802279708452738772413992296314958170780835958620804837739887963949526283194786653125651481548245300993824322236990910888048553812351001764596526873671646545323503625705865032979347407288663222488373946264504866988072114936404263613178206987398472081142445823485193451315603305486491216845210528927077198231352266521860972450157686522805902642874775865894351034627890613616587811927513075092975958760378779676794657463722312773362154911453781644326770964310740320903398585056930725870257995049106380966361756882213756302315086716669637112554650067758358623609772220605973639799815618679569165623350545058223204878105023988977231839348269801991435506174045801856554746065661850234402356177017979411825742902475654147251396774958821386192827669557651595223979634388841644225183877781807881729587844342754918323962656616945112614881467217715547676779781773598227756055118052955554319925758135506808263661088181793202564167883814757072874591826315212724661782436558052326876618426750693285331389140237591621685069865915198767347508491810122441873036891933580301240517928797350661070941477458732345803929666472919714410376459395878572675090501034319860419865052426541484381536117811827775481935048686890099182789973483772006483188310870153388471374517916952402918628508734672603984591829054054688256610205276583821307501350823731539866803505324843388738636732676793990790339054068671876131113767215024387863913552904112687664463018415988346519233592152388946530164817667879341435611721806542681960083146065947621344239347952249253570964883106796625548446293183794279817900661615162962332991155102275530359245810842028994359918868846547811475857851311515239696644317476126409280933878699442947432410881538274371456607724051753329850023969243586467511138714682421643126164058518770575396961941910725106470641039967120843588830284513563770313573953408847637084187861203976057262166961985986591515785238406465651545288002703165032160465794236353097427455971647476487347979018843598438703405624129474999974705743966392990466864427686109557670995350487379111525264420678013844264701653515845340743854815368427125159039025116623611827027416999533538070428799861753791420990779263087568754703547736494117345657575675899410904630285886189852093969262271572933805689064150124274710562644656058710545604463625929372749365010171559360741674459337001908742073877751200378053488793437900457093800883094019698271020750132002742323834691343178256718402731418068189866369313989139440367595601455014466979732269346120059219279544583360595718187480892765986541510608982443446308637327177158169115862338229209605067249301918044126363762497908696479698821468664556589893199833883683001118347340746503165563774030100072794730374708299005082409980472019606371150713154698466331491690850988133448549125009618505454325052673945611091221650957066761272716579747918828748266466584962055732964471780971738363071445870607259251254523723484261905736783926322199800181990890204726705240450250822472746520447567525943393573662502837370677907737096372071914317981055228162394672365091233924806138345211542032502859730198535128025938192022532130560324175013912572831479649647399766167946460058804515690353252632621689475935477222150519815938652781921179334027235854567312210012784146357201694166929170234572242109498082840549823884045381205357791854802167922475462625700207597807691834328336102098326074490887732541729570125935751057205357214694731626019728540785383436212333120934374486955111481928114063458469606848184121121643003994226986978009595612076329639882779806965758335091950296455872715414012097815671562854075942161875336076183496278429925215057939654079596781224808164510260858313916387475484851781740360894356691061989591546684660573863241224486396532311561090189377061979588774284811395506263301703474004331230430100877967499209556273948742306130126769925348159188133186330454987532541886065217259372310930768272640296087624676315403559940509959481849928359315438593460129127923932770806704824759125191440256071480254458355274863694518806097601750831446873206627629196896756813913241588650481604561304319685693211741322282211275656072805573933688287042687701350338155612133234450383272471637061988390970690751311704870423600398356375897527609048531827548596837231270232565633918796470659445099411897847567920216676830465811288055894742328755913417448570888834567589688414506588042554330457342718527964011503229575127422262474223940069853714596954692107428547082959671013254453017024837995409553755857073649102599457961121267389092673785587898325278293708021842373884116605873502639238315923313050457016570677877795963834242435165516861055035447563754348836378463397974424981836710388027708306738047727578873956213146114813638880474442584223172191586415065432238772718670168739806632959064269751187729112883328852990980169117141438946262529467316216071589300303995400908237897255462554853260206734373419731002502919395264345465549455877140009121814132735976308990012359505885515933783879674852303472869058249081437897457666530046455248190435984605311137732676168663791503370478704435018275155302541262234750862853614237891033390125939039569055260526001048304636588607728040166267690964430086830663810734583113368605169253058255909011703792533142032261521222773853613845435143928993889645287706371697580500980916342964925517067295670317542077785346139706820839321001159313284925347498402370156714234379694039742276902105234315231568415938019726290530632562513720183974846055386290891675455223914795257149295035901876457864270179015809617048955504625867179324356114119721604667639009467402840453485459725159336193256539448279321631466607223502358878971478607240573089129725822557770938695703620531330885134265281911845195140017500345418350873358030162685856909925082670327572243025248118577959743693663840367822378494050096206083059525020067207542544780118045978896508559868903737574499581964306261782233452377160259253444989228103688093695715258021009736741366517619919660439527562079029584749744527656168751891676022580596400385825747453591897800334731296670255859238735339851997456465285326238686431714832198426262261572421382449394883864680400033787631253980266549514457361170886512599357754046065450650440698723513138502988105890480369893030493980550601527771377720051710400425426981837434110433541367194640923092011925791744042079372258315468992241261525702974023280213723094853463191783308851443545487240166168833802747368978266808371406308599471235117047702234086047656596099889959128132516649220274883540536478497162152926271588090165978918611734709091316055181217693370027884154938018309180119542784454846093631369131383127170192985381097595643963877531323506287139434448567141454339784754098133302636488434902086896959880170153341509036385942543866876775957271900756326618967060876048781744348978841380457003028482136821496891057924876028001490887112605525648075491634563325293002514560661778988974710771680415982319142786528862674672044064438460861118045893004584172397638535152088893084703858505687825963103834436917489549640490561862656263867614017585842738894941807525932002843708825225016576641330028087590972407375119018724343309380773645886749221412722015313117374810304997219328428117197377673547738144996551368209449592348429702184088614365168610861803452275877678183781708917214537665781963159476624843580950205132203864333398752185139028029135273485839518160968696826445256409428289118599382546648788693951053867498077287257259584435876838885583426200946659647182564769089345265375517654084431336046704005294591244136503328011295166054118790786245902043198873668069259143940849638243696532623254642639578150258355835482672782442717667265005305114782461078194723102077189426765667438432251015710967592124618605573871549996570847015901812316715591402011331416139540509283034169350899100018553858644937639614954115224824152654940155148717439181081082816125225380829961979140837773856903236213221541300401057758993292516470268331080357629571992115159276015803679240176091161860069402647834131496815085202156517361715592806802495040053161371606767867615579227639867919666694256400623087349986493123859909267370673015050806851872233927332544203421533290820969075006877458536229283189493779428635825099794058233126441925369179701345344028721336950638508388343091025173701415909012305879087038960663878752195963368310815965331892502513742710944807075858871836837325557492622648837304409241412348473737903575617151207288748478543321443390096113673570225467329557388547298513908473853195231066084187215622344483585811612841180932136042817676589560621852997184777096171245096681359172755152945032486640546077124189359978084970664921575944669719648616126985426556822823811697277118532629648780570417087780299139780743899472597459771570433707407735019741787506559604832902751333941732331160332842777887920082111939022689304270278869518198266303695703762462508532502002063161173395226028981747479304432558642895327950349371473973783344362665243592220380369173595689979013821105994248860593074633826213107409740044574119378045620799160404212789172715868302328326734451912965046354979697077548082126864210658507427563797780091116032338047527676886388593395945963183965940629521471088890684977635317172907658681883061733551385928497087883139042741317168777277481524853086347717110985330340604881414109653787231196507985204761311069515900888692244608523661285082817109647651746646948849293423921629674526468636267239887723021871483111617593710006599523671044081016401886477562049171695825702143431668208464439413149212079893993725181420824367819985807238796397039191828973257105394823686699186456722417448506504000376182355741253775160517109015800645156388416440144189218602367837849517064121247516711594100178307613965357305168713352076174850629942876619049570131453458318476281257031728426200115088129431237973346155205440747507567750951586629729361463400967537946575356983647838103661722106445473618735450107756120737426352150828531669305314122213977961857263355069304777391355635087627376837867977345213753465066323855267616126672815612129827800534149574551111492281279854467258581807407276894677175604989623497196424306346409897207113967880557277833157858069479849714655442496960237753404106853972518967272784542499213354723347186224043201596613055830096220311385707555319704245316861710250845252599789364154689384993582428285381142548677435366008158110034688765563959689486556705052056803663457969322431391678227903222395507011052648742273221395010635049226083979288622540421093769804530508403297080334285418463215463244749780804334713617111017273817048802319020224797479633033723479286943801058937483509070039296449622020491750647449547349328506064742896340428442812855931890346053813242806157624376147013126447245996015010424320559722651774580063176182033510726677676250323846172073740121905503566266088076362313249414643178685569749288994086691793312486702292096552834462743695410062473935773253922256103106259188786418616331411419854039925368907728782612788532137682130001118886004726935000582450221481078380444495284110364376322391845131884460779398709570133058735386137533687343850402927761408913364126295283009000346255945796423375737078764544874964127142564957953702300616297702205979595768908800576626975624039801659203599426694510787294981877269754382343429736680927854888545664522056790568314031974255087180427765798227957287653226174493296197829289313125513967127935830698922332622752507642531342072801732654388516307246361128974395070263851273448254047164086705066040502123003574010613320025066297349625294538960990518707675418563747632423422978823480104747826972598317190102724300808433967256816871177396920801446679434754533918042363055036755784742105966849858843048463276659284914087290159138770067783669127279447890438247354636740628975514306837209727161455262625142384842399067268377059711418971144641365572077984278782273659882445068952851629402635066373281284143789425902822987106976360719041630626550094782103653110135973493388834037422073619869321740597928751640138478969921442476786362912055564743555264584652182501574377200643253847782153311373689376346605202882987659907801058650819041366582676810861281895350853421759369345984685341471805975010380257784188144768921643945508803229530354944880347706948231112155690159447804980595810737952406974862122499982674555132799221127874210423191222919964854836917068345517381250448426323229143973361544804128086091518365145590732244574924840225777865138714039602336488938818120103567795659994747016116506877842861279866527375029734064364981914139004192780939583221953460894497633152517319836537399635913385476226106499754546197301086520000930408584320205785427608099620590279732432371489893274431998641363179346197962735587221656536913160994766610684671694348933282133937485777350243758185366825954386069546945580216822354922778917306630189573699455024611350276214317974838674032891811663642187520420587390347561351808280386378302218349333841046782417805838001630954563878564658204084123059422765399187863819421100750910690289848407258891219323999328916616623171788088665896964423313882231732014074067327137154542727888421248328549354063830411095301040262403874767425302020603551655506897097109026975947606785487380206628663378470589092388645866437783485101575290787073661387307793764375556390963187067552624820931125094542742805615700917621640748809693351316468298457406951544842331240948681653315558551913633281985329196863977301948615342427912121429212127696774284205225574198819062372373405731622735072680006449466593684910367090988014220730908685050172270937979294392495679955044069170601835115310339809011165948932439687045044236684805552192234438784490093915661579963462595149612651953214679766572367408165226365312559833615512667718095816628959120421322146179526837474012064695040318655298202673838298307619196907966248337477598763091910281491438611323843073983387389038143243404660160382866301488601057744223230120243353322136232108521959940834887197567830414069553829773107778069857260132875467265600120586375986493803473394107008058507380965503502741785775032534669237094524304781587364277968103198667423939606812984083103360879917280007225806466880339486334623070565795595692638125295904489353311857411297207997367780828111979218066964999374099416242968565704876592836263692912881185166810746595266255618162763984571907873882578380150593625733021882536329757790274498880977588582766947783020668389016611209181432498773696510588887369240870067876645838728045375578375427058148897851611863174011819131196216673904304463295545683336067245000843831635994617940525329495365135106231680350878991910112505633126063651999367050243258673665871564939550813733010651368969189927041495724247883463503957730510249709084498743822828264388079106587150160747494561843346819241017425834235055108158431197109228038057919414617997155331402763433697695378216115339307711153319869158140617232448186037784978381632644069449788226364096912911037750356054502951908259497968186983125289434014230188585710675077243852543452549948216689931546723315100443546723851615315432627720875343455873742684720784219919067950801384275946675568229326520893581208709990976746183251512947365745877606480342465789975417579978511620477943581765818804594826154487107036053782469020120875461815833242005654590085082854692530684349627205685780538945340707653758904021108529728836144658147171837097437366228248667450724561798824733550839775233192833963466249134018228730316101982300995243265297143870120103518896304830549110765287951764452514694833371040270912312315009286138752557690950019678398903594356137888699356133471006637978273100860034342031983565519948467592975270122977124197106019625078010981063904234037046681463022682102210456234360520960510262211470613769732557709000480373183375488056638201220869485166689393210300674488343011305191358614456553137893517704749803719241361875731828919527327953646436151134637337938735919317108405747317412531978805870776722511995764830064192539046205031162969102369971223301521270398907676260560254328191712401898911819945529415638602411935860275040149033874004943147643141763018841513304255090968913107237601750466489385196171600343237246163990082645388438371207647036261221536665726796990639987186431229788080848087536736808372241634215728899611667460429503113519661756127261779423697857577383204912592118158320339976535466185904432504023850621583209225943882857731601143563454384542946573879726137284165625960269525693426944044460787384635455365892228782086761510490975683109551655182987600534119706178082642925956676814923255934384167220311764885546221669441587064078947379099406235311607785790805385880330981328460902247251250319232526169558072860618932084949353258315437981268297364761529712271338669437363454773452970251680504000175236498433741074876306384089177602547152689561652482958591118050479003457519987414072792144517306511758859816335014454657808893109730460020201010106788028053731693745334527061181191666870568161006046037918587473327805976127317758739731883828202963864540626432642193078101823747202314499076315461096321118076008835796014177273869248448499254237601319907243621712335177350365669793302124719698954657380622111236987816595881957986143164378454190125823083191497757974964333844142995324407987062153148664244377984296496534852669892725833208428045878312039704991583512542455509395061828303970441978891060953598641399796296677486225081804013654937232301783280592090729432814740015652273782285865869957286407094676212459615557486494263966939008409491276409859890847136814664577999782429570439825175860658485757785251037646192694524607644923395770982748742780183011090925496938290797808890154061163854795971443618038662291817993868568313254774347531917519015283605494023209100446382129688218115981932505465555240138543617674919285049044864855095647762454641161248484057349693886406624992953948052711378929688022206211447039663857174401447968072069378480494289605533746880092427684271351341359839495427977188038302969997068338697634478094868565221437695586833225428009401950157457180235666993159124446477218256792428581131766017251671664751302702567063225658603521006898999852896199972109490817186801661713809725891737533594294649842786110679914430544953719634547201296292650360351696317443495384343301036999716834097462004815650928285463368839565253309868941571844699294781160764192421452569043171280942296246443875561256720017653445330837394984731089801163030466284344898202117981180731660193991462996721123833657650932283998889246530526641039651872346112699709690192729303712540865023374363130771341158916104170320378159892303431735026734994065885663095214171663037567584507142459102484633026848705320572603652908928452029816976193247055530188285716154518543623681835294827146653548443293333520378058618067712375058341937518126417644662037376400982679885883655061059145762292262944992078267541759913197386516284481859553833718732768362917473634814473122134055147910477534964139945863919676012650937661838163894340674491395204270517415525386840684338952548808859740798878949184467601641022774027988860697898460395698968565441008098447892827002393508723460346758433344020397613659782808681100866225469773372270650796853946330347255610074324280696547810458753223249839787818225736183088194189643544667228245239540045015951317451753267432555403504047857820156428422835655383311683552550595315294574919800701274187955698087267430664739516892432266964777628208559239740079127709446327960577404133752986692628664294416299224937607457067452595439635995724303900382621729907689496255425322775846501469669575572150288123633623011889096901215498021899467394894639132004796118838357071837288617407058950480885639905082086940758254635477494107994468177057999997783466187078934763379590720404922349833525897128091985965611269316779245175301528353470542435363608054483384107675266386236565251852032370729116764332503813112950206391301220915523192230689137736626941191862702694200086423720072642909602863335408153207135972134436450744178344451361811673096998131149070674644011851490002996824449704550091849053730403503775627164953754608385764942603802819804255959662465343133664808513347243333002078242856174843271145105018548461666517055413774790770444634814715776316987881859976994251632157815824354483682241385464453869889212751778675402893289052415587742334425843777610339877605822450047974026835377814461679277934902890845464011066521648033036243953660860768453673748916117050281567125699816695600700739925829417807915756982362609686946175403848040278674157677446325116834249877681904361085277447291116527772471913392453061700608664064142622107530121438824817488440420860394739441611419533644348857471871576687010651501726862511852057021998228153300310424972989681505924071736178590200460073171470146375208427484363100875696834918748655559572637456712015799528163623622604309064427324408091390766648901196394119749461677213903124762703027951336323049282955436506613233968180479180336580789847941874948519918320568918208558062336877239200752500386646220463323088789982091587259090718212854688477223016102625474321276873785716636138436007617866966219426725465048393005330881891389031486709750032727480270747157883225210136206958680353113931518160189600424970320236801965748578073611421565386885770923535718193218321464313692297319640811485361636383190128520024059094153642579001308557822046165863619397816510697095404866764527252368114003869928138935334409731632635247237640698765289156014993036938827551116799011652787797649360093376689343191768085409215072360116854845097864179423854647367358799155873071003650843501409776598945519537854148293608420095591931264647180332988990573731412838007215120120037453028790774051473358412124267910538841419624794254177963147804823012661552605786899346246459244449507916682800711986285115385210418797467335750264601208096230453250307154324662961236622548680749401732995374171079746154950790060711396905543677509219700627355747965489813274034264080466101070272190303323248597846177985049221511918926159681346984185680631946392416266881834298255449873070839719415924675549162817624290038456103361280806204770771156748937936778049303374772987866207691457590087642130753938879147275113471277326352239776511995163481111474415678859784235199704857034316006878146979579984906831981793823763422417698727943426663798292481322474139043335952315231073603756222932731861334391347727662891289155343042009751895759446664910187515705325412950857725305069758172577495646980987947933355503038506037602944913980507483748009883821184615157934677475662253570810334539805007936823179808450815603484084107527130288184341854666971728911593174139509458932127410708018600096161125069392545776221804779531053986480715232853915912423816504968280207755063156883243082546553654403473804301453213963643090766863583485467027429568647505965419520807592962148493887863537476082585530420000051973731713838587844621563915336388177052076117552910793866480289357695913002015131001687173733696643792664336340683577270961113116637198270106821926370825206868858924103921848727307930026164045082500961029011254901691176652054172547040482928717426577519914993456737518609101521999916020488975933398427466252120535248664196412766735025504609953488674496069647239169727933411839136492321616046213401651677917368374717996059979679619508069635263390466308153406631813276771989666121408826998128395716630910032002482602502422280010180401109942540216054482243865506709994138628641395221029550641244068115204962695677300625987758151159251000138071932018993176372979454284790787290077149672153534165301542523767524498822977944366499592359015387742653288550136971957300046236415122812612153771011643958146592626080086059005440077945542709947771641671571398989197937885600438597080629932016531857560037366670867557841814756324735308550734115927095909777884677058882259658037345489959373616105854700241181337124216229866657613055729443251913824599637894128350796850522389450979635879472959091702561667022266117806355326230086814902746551763714558241131121746939901434522105536254308569941272557369117051222504628891891176441947194468656846443316196238543757999253662191225762843577324722224453282045106051525477779145917401800324981607639358663995403343972250523136458269529910350197130684919957867947967464637366243701124506793364972683868804883102414521316065184445464822881208307691765180725990959489162497700309732571770993288352358252360507103076193960291193066039927378435809079081978035777901141592196165770315195107844797707981454572405816062132642851704213920964266224462634334874457233132793581410370158485162743385816806357158921560898740432891446251148556079598842213292103220756171390570185223804568480552948597682038986845072700540888406486819351500420938835254452237788130795237460064974655053777390035566317972657205988080701715444407941769326664228975159888678559337424278812834273730355391408220327781688619025095359646415526561951159442871683710044500894314488388969560304409616715148565940364541577374244300735343517883171940164300015711113063046452146820320259834939366728414275866118917174750830747456738112844211751200679887456121660903868315289970897822586217536200193616313094912385779245970103869933595031199228937027208544501644088100946778588439714742719565332164302042052518015629338565161348473906585190603601749175081830213687604642001928065194577865154424093122881555931998137421466544910126694585597737807356616601761784273846241824643553429462737729761323751773597076297680134044283970355444230196571370910420841618587381659816119704206852019419391929862440908504271336116377132842554195395279140368714244489368586071473449465022360639427579049987008135477679721243498450831050900532310876004852429748890855889545302246134058546011932972606710264681024693724562966567952253451466207583261634434692882850341061690397765985745476514199931919603172973582807980782385935409968884881281004516068070755228131361299284957510045457429184728712210386842934909319230673300413585761022375927516139577712549234757943655138611524620288280736688411307496331505098983824288616084342357269571356217349007246277631505346803738748221815950585680214238784755893099821626443640318091296661592103851203713143912905793912350815146918674336185398932676848979501051706205057601339097491602255370756470251018610358103534947358622813485421301319064408392554326823670060681747460993682156463304556677177046756102400384793573260131733947912818546669044471882696337619122911336835664635791243295516350572656546387278321396729379889597188675875605348499886036084084624189432076255386149820940471447701903418973740392020446650343553452165051449252612348374237230724099824612918918877387767380259689743452613708067024722469385469577244817629976287187114540843151418546970263255430222067793744563821790506650499561592145587898308639463693166907000363447216753313240028119980124734242455411196542300047726488429058245305819178261337803746430518864876029782057386814832767170030624379511020438891548037076701038146190376903613549061351104250327723845247098803689592403185070038678791143788336299629438361712939998525573101785464937985613254613337944299545268666903792870720483467750135209290315716176617162608569895052755953058514898572132105390466257514483834645455027187669803791801419278578369062034783398581027834835744931926611489233569310908484178203154268344959245141894495170506110704032719493602936030673166185222266260983654702249960719231933799521932589058029126491544355152993874546053321222532716965674565687726305724006501626253819136467804543990328452853620234411954563776465066909825226535533977370953507379036255200182550803856553278605614279047908218405147357290670769643509912999956005596693966207854771076154537606985016043141434412819485980261528249571287551885843902005757718886217847210052828128334881548089540082043876123558069711657190784035289782645153629136260693703162242010598952859949006504996301656280198760941757569459625992874931892603957370909742461101347217953985660185978459527222711387592614923279647417194225655031063881379167214421979092755788091365728296725267231085379024811571243396307554809329926695621341490689098160204145469245220202715510383795677666854939019630228088716132200092030360055233436441173285027959292068098067753037052403328214225166250667921783717858052464405300205744459724321001922301979318734391693368643645446266158043083671092432584517819704822063671813418560343433173643068019231326858932706757964080594367240743918713484732191574576527719663288237979322300595830384701586500822497421706313662884890007594095585340928542467693540547608564966814537919215597109701504751527089024518381410339385563758293216987134664760187093511663925365635417018524658366915756678320679710742685069973259700563875022657039156236039250745458725003869340932751415909433149434157265343927186326433400850185695119067892956589557207932228668938637878143039332847426213157959346993947011719547638777185829231783339429444759943848200117609110288504575161400902689828032824249915840547956766796875610869279556255200775235126212176666139051644023389100575607447281991906769365738563201830292940508345944026860254291924856534502016964673343380213372664375838235495665888544953699944352375116675668196261683542435733591967075529588305581148938769393274444535534725594372886294316392146861912622160477479430812441877947422695371955702872673757625395711097597600337672085210903631947209665704027916971262415725978736911275735317470187321994836502758757280883766484584559131626750804217817981531217244094351052210938732859083819586233783439210548396012530452039667422282441541262131964917361205214369081994533110816705928475156507178502325784262474851553946650433360486274247223621593799140578749503531407694241421210352645808727601680543151880913416790391665081862655025964895745026988479775790672227392720644529275425498950166898640679693843908513065761014024587044394892616064435149879701285858748445998764980823754875798081755546796825626179681479898888761978712511212237811868021301138579643290545054763688246552377603268067347212507583888880800293089096062748493484336790970556870178782618287916360798048080900244556794971440855460696462205921480316789983048710333465500337321240606268753395971110568534089807492151091571830225977220292135106839096230654370507284272223079016203584252077691455303474617615034937300446169299967658264180319377820856748182815846670353439828101153489285623879092044375627403925245621395800550599720937293465962610821028627315724091886008092497121139300054909399730112279797915622440806754278042157738976197642633069564310410360319755221041061463242246693202038824263673565461345225438390686770679202937958493910924287913700083499832656403346171797630570006485406430527211923359126058766182854865701300582244262153580772303218326104435844054165717400448427395471104636725436274018645586695098172664692898841963846402520559360668209454911878621625079252228076198037125760435437736453342224592219413261057632114816508603225364934614096454244458482431272639611736926712340304878755867033992271929129483311311093577767670938824838292629458579717392435833139056446290847874869025794246233993399279380539827452279821713181078649990707142208286484257242559621070583057518400192949080522996026258063778428827722004153112729046176449080309541854720877170260434705443976978024071024172158814545997065454586825655308472950498978624009813488814235381095123578227986756828993471473513081642844419874993443611969362988156341054731084098732056217873715958787997348251064966957774659205679128133746408566624289558260935454375146150806844776625719828640821215910658776242488375692540005734272168887458149157967536431725404216485038236830719076695550801672061614053285938014659419344031052500285691862811385468072097106962897472944954634820524456297225903104901002960597817885988294767432037579438829778392076949147433769281364809881471118306287958671217909662071643675140251238569991933592132010864913332667196864358666598754708832883966065065631022106599563346313124643535475246568789380856757391611009535267344196503223536000517556101889240361814066337492709327580269252653646197688927068173971231251669521111143061483575684438888829475832564635814854234485207631992311752506636117883745362747174072099786850966562128452902799627472518926709229342258605433450448305729448323997845314906724686886434469766986320288602473080195312682422798297413637039413340566044483412684637771491252629376300235252933663701152291868576102199192065513239935366734655859409571058224875031230353345931139843293669185998573789947377019495358478319963442812504236600010155205069121109388039153151272333521748442577486406025899283528740879451124393728971468185084357810203029130252291256623978688448313664544520174197977351193848276992821080786043564123674842661822581921334513406379919626856847423104792652078376632921725364394626969601231232279833326738673157609431838741458416325570364171628031910776395741290879654743181170672834580433688510340662708348893236045128007125848028197283989845140551478076519093870167748842282591895612713267602573615915419358687803195521949583767315097891913798095400890909369052179932973081682167985241933777550206995629017542850270080381570460909616519535010016854754133885012981006460333969891319282658760560596068028809723326389430923978828153782131979107254179013081431728664141526686091674968857011929852656906146469390076210404563299073148481740541921522559265438727311025391465807268459094191035935648169233987989484821750419284282909036824049291408949497438681319208586360465001583237127662082264269710600546499692494163377749136120298288698765056231251537051557830202649646617873506619440140758159024020328626122629272002438587477392703042456194620853033889325372923981019321983180770494839237548465831312466900689115384458821608409492314750390809317713200999600467663304131870323427886643132009293446083500449780801670244870410091980346216606723807367650766278849840767701881909222934581643628627882102401832160746798544709419025307516959915069749600808844704354486460006546146334914768756093835834847535946743421608105518233795042802761433642401578163969309822372132351943552877364576276001898272304158154075330591709612160493918028219510913007883695248738634389456876084098535006052493003168683002654177155368056809691010078254502472416735488390837613895366501779869779504868563378715422966856096840139136657401189156189631844684959612123365087589088207007823056680756807805663638177531637713668810101379243462461444525332944584642143816529495315734093565443403314415248306653673806658581563355237491786972847726930304090208454016234017007166997300995957156296542612326953923700221149417860594866934671154535801467785316983295012276663141906274909953910102442411391478965079795415222069378953380213345950622155750600543690289991414454390064520746047121766788852819435816047901549686076398494422352090254537043564395569974201387902078891490105841776034456936834853961342999427694305521078505654945670535072772524272554373235082831419612784064067065492653490092619853671859454185712916645629628977432287482729872448696579694586280352432380132518043635400728812038661680148365912199566861107264810808069319569598732087268447952423629023342010920998446450881601061683966605659741222174192366257365034880963577155589983471338188644494623045218533624162299825911946986201139368600351465821680104472394938807439525272874892843523106680177033327425497952465674225002066864147733678594618810780717981413472977963610184915412917707117709249292011605718145097695960187840464294089677528411215932451314904097924869939510258687654981529171490548225417977191023388726132673831711793424204996372286096648124350700157108834450965884202443463727409560072400879186636730413640035768438026485731178553896958026020501870093978424783251374050743241422784539403071659704105110342114704995332892848424960202758049855285040296779161093291717311204441687933379258153705267169143514479530425044634888863333552219220201376153442724780304242205340056214436827607698188550596470939542056829225812816307570179929108366186587245183640243822301052944267675803507151566642791227143717500364862555293535618847930371275521405061977709899836116020518483543021063925607772922804077961407951901960827895915307246168627681762137186791369754844091304768596775042529696853136682920976169081939305717626229368778857529639233438830728407108260824196064478108208873641236174354386674580770821739338209612400483949569210004791229338181517782208269552022349844466663699201929685599229352332337716830293478239136084883109185362492108179362083733153836348398025287695926138972977690340101005381615144858320990428403012444754589809049255019405906410057009368957528564943573079162729769959966988314367801259459988765240211973118755843274922406305136791937306940297594195429093460948733704735032723485738580435031193587459728627673724960500937270079685223604355749259709533575494557064797046376290941818796406533110926274711684370509422357470718633626599282041067228410229467711241751888765878074756128414645503758212719130796996642397320200376086817438303624819116585954405306719543902499081725543468199892541963440191490415914487615569480595548109493671033895954421075323215860893431925655209727478450961550418109151100289808282821903166174449962979817458817141636397380415377570812361636425423421822578776480455065742672565015364895898900727869514883944613100782286557926192238972298266788276247362706759805537115068682011672124232135423023621029502982101984349820788372499885067982232321351297859353565651887058354131598455850076009957910476192028974804839733600649769452937480223951840589094254604574456973016730281346384514914393376345652773088996242983143231262637933837072183993142316942734065279960002661462938399975437803390063583910271085341759716204099616728764343430709311340368301983442895003925876941686830278351844532111540650906008196017403966837778295024765366546223816815178169496767705320816424455175225584324016677356308300380322799435112490648180598128182445238723230188511598659468722842452948511750503187029357012535454993681992954019154090686908966614726603888468724668467997096640101030707082096994912697630908819030852905264346101766288578582090967627808332942568604115357563650269016283521099799219383936090876934349402457506264047142933714708104137814591831891233533241229582733468420053559205680330597434234642591933342189001352131289640664355837052814581496972294819958933638307159862730525122539593027372352553079288163349463847497268879792079950036640536473229944028027160879609968619526317109376612071595097699031975645593706560000725232998893256897021552383676045808240641629671024070529942366743789831452777170280134876848335132920174997764284947896767294786766676750099075753765208515379763714542061905519848103080363096170065851257032071063980533689578939201514540542910062060258045960161541141065595224560186689792360266503548568852260519300591127078358875849132807082406039488380607743352925976145398441852916909031427743148074459283500584012553110743553929831089088007020319247732230547879674717374378978070232794971337759674524081750571624733627342704095299959472184484599418335220490714418216231300796593850220064099423596722491889032862879163836102009211263134583176447493934931372484766286677838595738365683761544488206771805202657687067180161325360231371156082929730550360901891681942166661023638477159353042633673430997580148864761929883380742228869176516990702931809094938939078839612590502813127822540720316340961691244622874034435974505659129423901944287959842033639039247458144317708682734719565681883507503728872760065562081002180092718586650427738976339154959003114719081975599491891736869516213604548473758534835194152893811718170449702722036410378673927986918291068321673164771544850723900862311197355114511982371148274030944396861641702105223716219092349819925584376574402790704585083877892139878648079251945563395637183341166389026601881409398337395650601274281129425062416168441287969812177922988161119070246078964590716406931808560458265107016624727506001194495912691335664604518409783102638723462503983022392487083634981638815176143066947594722654906243418921729755586509041356955092495758192389758073043510960608945582631374805706043293975638640008716569579413403219426026729605337987609765822612906269562544586014092459100163183339632415265734614069953121946567465529505550691484023943264606353667936867789820220345564857912873981624233776635901697709385852699665653733102367617182532186350068093056253450733264210881853280891529650522447380205804260205943579448186908951824221700200072580565156264087625711306846296083670575117651480400302646506004909945030951507446479974867867577702048810177310782623861234644664901086072876743553591114812834188207516422711608089009688830482660774056011327115778381308635150646991173405013074782145338035319753705684473400428537914791950020443781846646926317798846787918115230415239266072534060891970830296203194198159704280133799946177746978038196633578505766713546986001443163835501715647040286369238567416932565039128427809050324223583676128772921148397963547906261285898543247906053116206208437539068481247371775086081968519257721811959297750823550402652935999612407488685108740275478160128728423080957633758307500443334306209132406823707581663430387536263419245019270333853180523936368769539036368194830125770459508747652917126988632207764607582043829461781696061378215773323374433233146126040362982483302120194247789754080191051603366348392411616428424211510407102268903185970833999877071224462873041276731363770840870545284091490877876514945817317029083795040230040841006095822030982588694379921360977369322046394938336286334991619167259484456549286041597356557926609359834425049020705146780209424132716949636370308648132102107747139614427369312510837336869137810379794068749179679206558669184592457558561369299435211231102343460328646652832343874444757789730724194437270496798402325427337168326133339454973644973528737441186956147786364897309361319968383254434864284163269074928879530666656561160261765660973821061690664783652121130173072936502310998079385670116374221533167240871670943329553957150870338223135186039505369419023239185000600895540132611024897791692678518582494968894943647032221639584336048403503893559208340753673188171613997569304249497014108666577657130895029162702953557458392930749332506864826349229502541237436467375719722257941059851768119273688730251090973262960511911182933915164321710817312150681703072113636976370823738245886232530408720634072877818259873006779265931220559582348773878758522929863076519971184575549066291879529423221424907296603820839625896819489375941950294797045913784111783243299990101227512184947521040501495201565802081887213551417602294020668635514290799963541316485565673068124403974771164908292955564139535653323377880096219497302731134427017666495766727093895128617372029438484202358210749915239429636258858481586263647898885772075654827126998845593769542029367838650798675521402378495064845902093371336348690392385149838845663674706557508337451401138618535726155820073070408055045432610467590411154049984471543525233331557494519944971687558375575561900474856379092482213369171115279998357507135629560449516649734708290575265825380363207282663596066912852723024504713729102612799157379196465867536809213789471310570493398348526270894571207242613889796283278398723941990389973671263489968590680162279870207469510757608163399275064729803870120797874118103223055379738907259563373658869876997441066571333840179088175240221638251643573322348756583696354609064019715911298417977257706645412478079668996056159762421877671243618312615286047957724352489786791242707053330742879112716870948128360914101150540046411514983861203652537844911404742978551483869086066695677196687854341173443438755683812124650847469056410183468990560575471795475947528287560397649546328785502374763025988363397341878760765607027676511518576979751868990451746988393436955896666117892333829853693384085860278469525112532598543977964123897282476848826419686769430993600337481194786785157807840789893545875571568424672808714217272705325695249575213149166386927025777089918317902294822483178997368298506942682947503321454514605963328187274980140517127097734028208481846348350047936102097466534393639185934779489239166609903051669465610057355895268774300746288112925345591972688464931452091379085081802628169359225140603476388505615789597265047813966359058536892305450161011899688046220627073613069621435275912733000774892352544480121545278432696000232681170073756358143506533587806190044562717307523931334904459435573963302949696171788357501920561450998674611870928666747495259496406861016167342856595501518893782189208685149570137940162554588583721758004429307128589495116685215399675228362034264620316948508341929926373632441996679185096078072896364269012378172280960677280117092080466172352971044115530016346083131437283342579090271418180346330970899601623960523303896026079281949311712494926764846644467852952140929618327492895157071650424248301723494846584862748634008340574967482604849049746420312597067998632989693558061633186356950041796684832719543391415557220349168973635253969458694092002161271514905908223239407007134570118449650895949352769914086527371872599727444813808342971902320156731781646482766333038387870625401525910611370573646594628260283566575749261517360961110410912688137497072481384003421755872793931504636371381071312938224991869263127859329011186550803201812578195925620529371502728361063732830656061774141122016413794013948789542617098703722316364608097211756067030743750800137373104965183422144757919237159628137971459525434144240347913671471513219852596004568158975419608597681768123133146886864047210622039028471032077325471807952738415933695441359599470768118576168150219588894598047725843955795985255722842780876891990088390392593427377064776360711116263033938493535367668262955900377342339211397624855404688800089347316519698798524474036667475947915113880862678673292094567186326305565479492612405170954900916240041146661621428304865509264739836421053329996868736520530833264879312753746162971481722120215715528377338162358620400529569288470086254077774088525185988284461510480719636852413649805086583905337848667542157752808019323881995416704233960235846354493602315541166221840833245601727104518090904726560817093268227571213171101942390672161648357771654732589684459308993892171881626322876268975200954463568971773196589979615172217692721729755479210527984592226272154230924222289318247450418941472755163241755152886590105689936046350420096762733822963538156214565213275971287756801472294534033627872156034560137149342859042660631242522370112636889362521466475219936052714575835435784553054538987852618667965207822590291986459521077666994589411980454093917753474534593086980835438000430652756753416797418326799985973068101546125184911455844314201182953883474945572644717989508907476766882068730814739373210834118451774163479375888080230746777458086979410516035460793523715191711083494476360620696850384501883382012533583091358419402163589019674431518551582878783313845777704537930548099637795621219581414076378334570724428009521190227366690087875310810498382482500027012943058137829056713198667102485210869657326578515419591209725032837458828809528346279377210539987100084974881519794487703761553869321853494094730513400154224508585329774265544672022220258317244964618838150308470374776975736563975220554396343207008185365665960572054689514312306234715382282952784068524419920177437030924584052545753953274959575353364533028809064750664336176173781395113593240617594305566994384426010313585022889555248718787558219362839455090776284649991465241420582409706359049529588887226117390537393900268439251968726371888440441571985372344572661996120082186062244442170892012665576096467126434345711394160110103484115208690863047450544478935694163583786480125127992668830322757714099181470569627316585050085550228767540891771779809845137692752779308974038374216743210627240004165745252888992216719731920365896382778352195639377970813254167186777204392702256424210729887881325917198478227344528908394141001576865994434536309346928768871536098851239649164243074040056879551988498226378411939809093600352429965749159746014316633318197855077395129024274039442305567611278807554430577595136022571714314570906493783844745967672523724574462950155399092180592104604521241503497349644886064021362875288451114364242478592564874281315310532768761356547471956563959128869674243915144023379329318000417101535822780889872768400151234176673786158627538443069923721256676342603893435751800969768817486559477069119163878079163429089677992559979208265366767572174274722313914586313212871238290179907360376763294815940418365450298798691618192391835612261121707837021745710281346992819148902211342647357135568321156910936192512984075382888908468945910592754440619640792298626948641801168227631110979843265239828787851735645728166247551798880840162490310552366132242851018225330378494564390354609854232206260154843816975778764580444778136089454442936131202268688619062443275868199236534177295192157203077728321546972997989605182321325867460794300612887501988780239458777992478863479872168958592607654283908425217508389363726511132784225203835379637057957352683797409888146233009610741030639441006146642222615983140145850632186194954865635271870662382261509255071117286994151585424981629180946506667654643713499843732722584979172831953689372616276410436822388755394849269303870929040470120570409586425493755608132955874027578867557907097776612954310287455795800531965765751662266469515389498542545835375275557874134334322282175983211855839881487293857729935629690899998579791481979825781185659616373785853778037752981221532255831028044644020297362008444133654374435541938354202689863980211018757770777782857790499170533992093764619693127220854057030327530759653614141055047855845254728958177178537942001086691248620556792150043823571625353453404439735823145854363500983250247807617918831986088349657570375437135652440006678101900441546769632668208594709425561007420925640414637451846283309807837643580460300167248551726657481933027310418109787329713811146108381739699997069083588386848505555900552660788218227290293349700292271367331582946017880529976693876655016638635056657765136061194609057278442089588643314448639299926569828486127532395177016815779123721834795569893505392095835627187091284467115777697169393034488063606031279780409831170457341894392135273228732639815606230373453895938610133415353039261730089643144630801883901863152696107960568752135002385586804815639531370542689479922149701336240172998272676996429585109844828000934693058399570997909863699336382198419401312170026816749237445798347455376644800895586279155858445838193435240164153971126941350876917659197152070770020422589801053787303227497209378473365418646026113668898768888217571427944097617522233945976264079863829465456493514769487855099056886531716635183852648423117839022831004165234466121638808041012298388394917568395296787996762807106514017609980497594133879589017542004079887479169362576077700995728201430265839382078914216893475857109274908392369819755462469331815610314291668698205722970013996046474975945515636123132942897751894111232528369710791411376199836789774385880186604650771735661596146872072410036877077259250725768275580081512753666768817457484971767797101742335702982422067400418119978986762977672755476460460921218581604303662435834414358337005293306976139612032387950438377774113368538624129856815387063615914200651586737265157580438553749426407367099718344937805882519048089795708095971378438949430005231970206297368508810656111713706901565133889038346530537979081333733513635304169041701747930752316566388914556262632360479759874156517813193987128801173786521023385094262812869009943432508339881799431545368377149819555634971184702980346305754914378353861134577894008131288897359747026119205787453435718464473492329867445653195428315199884242043053609902990147063633176321463678534967174870362237820866002865217969736579248084417167249021413332395261470977564087525116612790688880501101445399744135708668215105859300374699954544982535400288220449803042744326081891878574117438129506561639759734422424214656368557222224858495926293085059250159096865728835626207007283355400963647948079442222773782236624921048635222824398815063359939096947113985412623554129712933551284636482126321783441538195800236951936614651958968911627408879796563786782881271787041475719645498138372367811660418361752992786196219415457148105979986842403521387199703293161830647435473985338134975412549854680824999926082878177837281810496017488486103783952390063876481691847849770513785702513254881817121089082260806093256055146936438281676247714181065463863973782563472120686990690632169041512068277671295914824391280095612740237663252391716353245756229802975082501958549402198282439253131938079740112652174652053052286386496281462527564344863437414126628128287279126183460906959076440259444540717865457778804438641450347461731819042791274634449145708147911893680647382330325894897881292442402880542638239256039924753913892028915841396714938041276991939992728275834150773408773286146239755373789012286173341886722688000974790847856106867535421044858488602890266082025518720879872042135938933615723295503629237105512087495423893770500722552417779636237898862609799633864236643890734970549523789769835232993700382241994333596281570841126954206338864565439952467897256933290077079673238883421454148911892208573717418150475748338095519084953042314426151316604652842920056201256059424981632370726407188108118388373179302413286429555830983576637095075541360777782389099259775666148338911793657710234424469180962073397178167596389137872765898145254298277129888015185243458599357291562897394097385511766464485422911799186847855860702297678728127492908666858003652330395748265814948255999942441448018394548601809924613795451838759456448791286685046597536637120311729141499179050739612257333090663228966774067149082427263618504543058955394425640038471014714538003269975279332518330931059281707756766041433940366694715106175781244895472747116397693472089476369808240370299356111622980375218389166012611756361985318228816373359038211402952677496244424531578763187134134431767624185936336737533831891295751847372350635879094504710074579971616237814866366680180133061576731114866488218797414953116145098188794560590979852955546678963110425677375469698083138481045741917171219345473908753071482100124342492061517299580583659368452910404150842878234351999293328827627113206208055673587538621915207881452926783381683259479376373390124179981572423696925525707495966807969663976978028268507407377883076502353862602056605647461962607480876373661662564964658981766039196393648549769253864561487311759948828209939043369266180296572788492009775819508689610161240201955335842039357188221590780077863719733869236542436157373315159606636477056102544824245074890637478601460724427571452183823944674527065856441607157724157941626909196084580338987916178014605488093618790707490735761143535066207517206835638180614067992756815220239038879036329944087833524633642519199986257948088117728021899638755874698771861722361649856774006815756065885769818555188712653838916164236349841114253300881582045024310560800019145613381130564889890987363993007185898991882242517299898747791746484614352697787053336593404950985551446729952988065683687681275918384963423161428087184625803774753950982435486694407815995158520906117153136599629047765038025663995602685827409318204715005677880424218675716102483434323715740371042030964838398908461867891026042817126605059779598385678545682277969291420940918721917474207405325428885025065006146037991997596004345290212093576272112732135324623508941575355466469493896074136903776799080762427968838334188855262354165665501360553334432772047112398676044103775925878608879874688718967522987586740387854395759738945237594403036653508138599989517593071279441612743157810397575458004335413900697265393732152615280250968091850987943172286846143657282905845897293884702675395960921819514127633950128940105997011488349072105530542819425825537165642574244442900124134754414260085423626949775853571866393860640497166576299615976631931725603155144767682973368735505161064427485486055437498089830169308868999430422102571123607386319765478788058395443993257045518512398039768222388140341615885918084802915966376944105599640939592368755514617288282995772034522014784198580649915345776029622000149208290913157029775678047613843271785806155626504493360171160611872937002938855769504205605561955478237960962933400654688993734195960226503849129687725750642572025934550821884372779802737986642930888284298131247436494078645735480019054654165007324590607237554260754923561259682949461651924396982596137942813788077449531965040335189343806802576731358567298942133577410033245848983896368285113137512600651038475200704196338685060279748761730176566455484014513869088566259575765724576460175693828295912185522449534465287008895024083269071420271305058320901835264939354503809347958467717474440725539995442630993256650040073059134369693463246289006707025146003423816448129874579602356770388953650862762397980474371405447018331100001396730123255158168921091147858274401531365952421612175475761664309842191977632627755373890858857513631711956281949218159950583181170415056552112224221803555451894871238015563434887660431913302444111687899055931383092241775134990056248735420927781947978535584666953333710618529823084526541874368367959128932887436108030978877151859247853043628580595598903794736847439764014710836420763585289767513827596224432520899414183106814499758860884522503704027803331006067355133288155235262154002687781166525338403427403463559262576294764173464788558460013534943477278785344532249319309604433145202850332467771634617067033715021548229708418822819606524917700725367564105806493545680968195244533201351712006670192391644104847885832784252687497198579716212703910019921729490796803939828087575823344863516102367328390873128162291586283148400808799955987451647298035560898573387080346550684036313018279425379996995805892884805724824695153081774551827897690692119285638466065230104349002271726760915549604546190622250339273286394937567491095128616000956785501650537890544987917673616013435270928967943183411135452090040338210296995079016381473953603922869066171181533739417067240431633324387291429436367743488128419158220589761890260478865791553054942859966109341545623486856544245454440918463073737843989578442859824595014083414617013804970545773665222924829249206688791036394186014220552016648396462950640908156729470738013660150409259882602969470783996191237067277752755232619990114868534859055422886889017440937507309738584748326242388170245992511516486341824502831329544689157836068195353930401244227018488481641073144846990729117614679348751671431381877957483986232229068572592716939030383814727546904490638077257335117205942437134252784089006325240383939929763052718474757210104368416065127584406089562752131189885427124693960347110001273959157146126048534598262307193630837022125791857878561400373864198899262703010398010455898663829061549913847657828648870439179658892340132992594321591678237510588102493844332744017661662294393024193739190877508620702526075877880197983213110468240130851173031741457985734886776218509337176979216874014251797328365804706460756436567167502611507267649469511991560835463772518427743705311467808864798515642295793072047773900460939330743050344777230427398281757923655468344802293244905381379183546262857345011604993433610302092342230542856214659658492302211238598626176482170735957273459851244537678803921595631442409348154302241931336191005763483337763589065675394798207158667480598852110535851989130026368425767999338215584147620660463419236171486021910624919383849489884121610986580994469312668797172819274662221443908422337022924199544281642637814769243681211721784407425046583324767963963532654215182440767103049151186358653628904034702544199689854604621278338643660152932887963969506503237376103684511094399173687327838460235816479754015439649248932014452772493769345625867914361799987551338731966219752501307222528291324490843326370586117146257614176331383005887307638347222456761629178981639039493465723550261351498482154002502274392666390029281176759276896203890149250383116775935063791881951347849184775161077540842308780592352321513099598677402357827150448473283810387602998157385266306601453470738673620801579211399123406938402151425369487349868816481957464496965992584809342487413849247752329046687722788173796266760226330552198473971157819419593831556581974707392358670405908244008121386620093261547501090138253553487809677193469787812369065006808395272215685945013373569443226787821425788476573323289701892455980045441876107161284789108093361257089860928797265602867169706135819980161558539921242956368895830781077077896171750790916679895170720320394750650300802509737968451181804138377734285977279062309848460990286513823710016235441589893626798794710525504338680315625152607787102243665250313135091515183299863721714720430806921652078199033316440542183033209195886953679382881502018300047334370782986208539962916857534416540305536503457349282413831264785870218177356270250897514552074212886195861968001245007360894756646477093574586111627027200038368658263405315332757526859792127233798875345758292404220467936790200270121946933120961922862562669463022802449500437471518035730268218855480325230076605947275765432077504440078088664751182496441239884474750884647664011675107694118389960370683436709943262505457989504018831508866303451061902205070296406561622930940845443561011995818151295651375704779936302560263749125459449354852029140748482056660451173042705673952212356210746011023296156116151014353460499946988138057043823868363229675426306531817190606696353435961531212428447972029409527483099517405718608889707053696344539402354610814756988826136604066980253266311199178686117616716312860560758010303241421209828215310223415427709134191765406724936223830274130034162724844933366580542417146714095107728272032550852699821540536618599413108569040308309829542165292190017285754218324908708980102635752756126042837578825294386119625953043728159111111544668962412060828936818926870861648786534989860539759723010774430782802296339583443270509774437211456667985153054198050209279475230515124209618471398503091537514222570259525757472010034688783536624560785989328483211484451130561977128150356171238393357107178436018629024646810864836422921101672661187561862101862996508361936497765735970148896037437983911248198552088903229933756932680303579205335590704891319212503082069016697061177439409467968928084555595785928006897815298866734659933660121414965470541588289845445976139196702393376992529782790179188838218946660849576262705421402315583786445415350882802453480813506027652722410972125960572578600157822520345735014321608499681441312964103672231155004479798483082922577469201690896748396454917954652497897646863289697302939785145263435701056155748732734279972674440123410479607899350973075785355697098058007212185253411742799561918444073956360560690356854848685744861423596059603686457855533108699171812809237906810636116060033900295993473014852640970528186438663719137008553153826415252546906865819583029629857330635498136630088900838974391058202676818855529148101578139201930247483212419525560468296463589855458554183473458173985412846809457635925220751260293075377406375319176561002177240122396406669896275692120203411983065751584193688540617917290949837143258831948821467686651108771406739153373640899482551027460593962712159879904213476169995977214623019031450383559689726095204024035665048819477660220270519015680276891085147992290959310186315367230371538677219416215156215431279536944215635767196423589723935537543539868367280624355647947223146604706206110102655652103484050793758974629691624457144839097939617396040461655265416225333130118242402386603281942881991909649220955781440092652709569631099923929750965283926334827921144693484423816484671766236271070032281131197554257486672084298174439895369102434968166584119099617896630557117237577788167452525949903287875472430577013946050818185259105121758430266994146641180886377911476514080044538229810938218232981716459794142186223428396935925092590834892099609774826649834180216950143645333292398359114143638115324453177144437776077521653451987549383374692263859260433175618665819249100069402206179938806620245553658234949241945945146251876287419548335886447235031119172875804158706089031652015737730418794978319919080063608440234824642844492761258650751692030609239245695160103632463049738374805238423982114257633152628880635113395646274288113120636207425936935924565542805980347353889485297748295034544652241313575204804113546049387946868775169505564905138307106081715468634841724226864305553460114880924276173347111366502359070899465635051670916360032316580739541355498564685530320677591640931688813883206939102914812295191389516082609292170293905872263936216920770004292944800094321173790476904708494220682367805832898131607750739107924550128639515944090025568188861666761732572883125540532425443887609916329339340212864913336165575124438952397812442950597545181971827589190843615246916376572228259687042749029739898262217225745387293316395658838055812221203144832652941106494312692801513051404628254471494050817111535897263817513497575009488005977251145979224513083981784400174097059051777554996999112451633893562259899622097256206195306931729094186786935617413342019680999412483631461590706016388370212991241363792178517957785095491973831444181557564942526797249002098225354190576961442338735714537495352979560364360625989731267270649378493500257577167544776905722428057712940750515635985538474574239297462957688852954729795124363873025809784271101809761872700458702580000455567448455321116076473920895691964871013057127823380201545010703127346526494647461879229556883088407894549059924314598863831630691726497255843596804698720020916493490158838883229785011655724085151473782007311346348316471620880417873861214316393276660933094470961189648879520591363282738271906683941106734317275866297705432056637069282059713093752566265694226886225031187594051138901784936246826109126722776154236256436696145442068849409907741159775926125244517440805356159213946397331469702268053259527219152458956907866690312013151898305178246529749132975859081106253138073425329946731438375624931973208492568828271623871187323063793326517092016252655937988907126325369713300858264937595966529783500399357748246184895374385125442901963687469066696977434243845255087896624639013218062582006808368558392046340877233631307471156747864470322061365810159239707355588624949844802158235063827694984764412856689657297325909251629593175138187484943768772646272512860166112347536242298180727541714245031473478963311001763570070575438292861598949605965108375110579502944889851235134719595857644483732149141353156421373972913602010713320901723348292591033530651527164213517042495366369137193020899302557763949040643791695954461680622098259823818684475957270785341576908556362073243046181627591546794873862314651509813640715394457733971689981203852618208682276038694785065616702405616349643845618487538378715581820293817013802886146730494986562933311325412356116604339973151688606745179536575147424930071681377820394551582920135515030084515695903606242873126200606255437824763061579788439108996117730314343860937307516226313903291372492282384241317007948527088515837046793183300415944058443640896359953753611656350690525167380040266424472491101441789051661833856036310677235244389920444046437920961357978571778695832402161247699734432753517640138928061180249702589204868469708878401728045200442311323834104474630198705232408559875535413051542813827519057905248835846048630522580544768898305805627604103671299856875260788095638120252075894021771755967285964138636559064167597846758913461446697082105218951050168859200472349867900501933876835679028113071704144483493494033935680145876486004196487036108753172250803114805143815781078048977801885607012648095304857570277907149257168942706594094005843237159225428899109011157759567339292296973977933433339975842196858652665611034266778298092182462701580489050304278320561572841010753440978616871285392804664229019385170281960452727486097059093004509734183836834541824229585922593831146360568254307870788265545004647838047412065783519286624619211787855735406197431959815304781795692765194710360328169232138366658189256026109934470477708927343648264442875012652443568727518725322497806874237397724226607406725299471894767403528543054542343561246616750005650685841171097874054085665726280935046245169805575064642189550649985807297510392650441584131556102703391674627549257765123023428012042471083353376033033931477552043274024746544877783935581652848326534182748365940861494537963256924286035125292798359451487391230556408540197467551834369871631563719710139839438080811362894959433071530969308197989931444924753004204327526007251262311051045844053920830391136988097783714416401811643492544826620157452075760646971533686312280660122254359176187732040361573381013955366705628440630874909250516456651190202614925431340496012009952933187947646610519483957044751476833471577303845834230833394556585441689331441367617905924193103310026018210766595834990968883913072724279868818437112974662289006411811184214257432933638269941476204278075756148623216731197140513164236797608441383380420335317148966803120836693969783261334871002601341285615360959761973940594457795413786848154064317569360613551667241872436254249255766843976294988043040832987269806240269153007370990629060460896399602841466138600121797425383744088882184692843782111538578203082400295696501359755229330954376630042582999731068096025753885926632954862423006913911956580409867461948688574581330270207273941832706072670191601895593488876990867010968185527544460223509439815172078108276824220714841056150554969223940100265929508776559511803760168911703549509560087348998041538515758745607658647164879846453917250230854501176485937426505290920369290739669999395654552743915105927318385394141180153747388268130187594191017558649534823642361909629661186583392646909306503959512100015410821979050660589932842569532375126263359413111867946202672759437766353626052308171224187786798444213822946278274781984946040886997750057959115478573630617938899004781585393779662755230290822264686031048295274300235218633453373339170719077274923342928512175155285708408769678683766524687328057617615206810560350594751474339648795327676309966199387171040070054508668211244554616770234078548225074978506491417835606410009706795701092461312806001837055163719199830012241671865979702934319213709763840368308613908118280089703602034368100334393326165589866264425788245449796321384690395658478343129391124783589267653881148815046863096178336117416063483961985683991061748252039732480081603931559277237814136443458861154408287273039997186357357941853455933475600864590836020654245698002961925122600034839100558395143563164495816407346711966212723824941414122836022539085591995309860593617102913353109139840964972666985938551979593258296925227919478079773526592437197241024584331633404145770182121667824001812453727294177159472835219264192869027285432839532852070572469402407372925406836305419432357334286341429117601398946637038717733521422600476914246524721164757337019085812803090377064548348857241107293223900790936416422215475453939586222722862430089038184834749161565295275494034015483683711609981238715529729934920300702473526973167682156247337344795612662058945760732163524721415783162999352860909393495007636765584712684071165058996338207678350263173461721343974340003045508328531958025270752445839850840706586665841487584386168757747303131714263247380574987062354723166224020945485460108577533773718858304633833123774061403693602265749759279135368764566682646764788383110872391159237691854610600356525303897141263731568166547267905597556187600077782483109477592648216736700324203647328653802321737180973822214352596831470643292852486745428074448301926705542010625361280358980598898216447594400838219176595907868525348024080232553978213509564052787976476365480334140208220694842367828171709233944524235037585389224408061643783998584141705532188225902828518896831147002809035397621215650522786866888598819657769002419055704808205915000211207213125335387828706207865401717783969379694935163853104860194975970907609452436095241410204720916898883132052100834955254180882805372369785418313233766326064522933353234295671846479330246894546069472336331203210677559839654567601431281402361045496553541461992234459414220501154129557082511392869469919776030322371189523379360717110332569956497554559567046887364038579984648234331286422192109169993159483889390573977765225461844446256039035578964339205456893064483163675317781908017855397711550664123039213087757862288045085361673274614204341274307654854855839902928531292658154988035995391735871957338038193158174997339303379173127047559617910866686044926988447482131248187278801060814012126136883501191808184896006795054866723515025633813618037454030315801339416009057863079700735045314254441969974449556873885186950076053530780076775701802911195898875239925471163515569632714168962939948939227581860150422839365751203576711705122683983481889879451038446412947609443332016217526579496053195984126595471682497947675984689281803527496818002260321986527199369234364500134282672845806611931369176479588287409419338145031761093458922182774971543203182406245988158068312527868699791090077514784681474487565342310977685999549342783565169099895648321175434293100935971452019752148068589183565312552421395425409129801919987589490463652343849292697538235277775350495707916800237406417400452573304780378932253828710613628114708152834451623504697831388163653262599821754039448320080233741916735914186397220849591292664074961282193386449891008067597834458593182887656938102018566761737675707764712073222794995893286650375463221839407594942401387657055272382343765506878786291477224025759167974565041152714021258421857146717919354483361510923444421418160945878081540208768268807895232973621785959073593031759759045727402401124436487061359874682150967511264357321901261178970358258189670008175026386454336762385383159675242897255570726494535805162780613662967646573731041811730070960223381879172579546920634051523591984358808025046663799662237138428310265261540551639162927216045658598845318420191827244244251258318322005088465060115762602602097199298853880741965806452835311626633256446643763459955025464665335440606683280108522541208339683952808800447845617705918337382382907450133523532905186534236090971742490360931177429175774907508177973035557594400505946721238268969822868165608290280312114361583756659433611573087983359849335719877886829776168300713029252454996800794407689561061191510835473349179082876958705557607832305561965242489436318172256239269446969887380015570201971041307280609066818629030736489865534189456737101267193357252462112743694649232555233330726848360842038796588764050688769520821066802043040594025763767123611910926989496238150075852374513140710035006592264513783285879136956627302424708808920535949972055357353025303081161180411775810810018692692434400003563032152957354880801620293365625243255451232772277535743219270243549036305742766443958462285039914312098699420033574605666288913127721612228580343407494854670147888050229522486739542164612858924222218093680906856311299929296670219554584921467264774864250937334492040971003183374928622314210315199835339961122288478879833758938136977479110840713281218680770780430838136284886605207769304622568751251962915387423180712291070466975146258862883584615866967337477512256023692018250019540495311285123739749544852476479492250102774828398325624865574607878120233801339123237616286874772461265089016108130553983040298091453429910672906913992600621687922549801188529543424469901765767069760067955217979523897801159556346429700137067832207249371349839136714428004861362465656221467981316002180408426037662959813369141110314262021682758727082269627048080600076912643820714937118112224260880325098885036076851148860171792734635525382254318928402804864304351231751210418385104569884012668527927078799994280703591472990882324016308451981290605714028678035035290087643935710238378545810154165894513114046869281396324414877804148683161268755966388115421913617001313866895422686572558665090858221178419377440154597909592538481348208762960085463082920358299543689441963277137481953218899347302488845524860951469021869024433127633180021090330068809855384914099065146763077123868594457710450136818863805890310818455043822229162045242473210250923492631970886814958189344236523589278623997673375680050082274291964931300743978063756169656383856032917687561755809970377644773839303708874390551226950639872855201854184774660649327624050310363603264343286701220399649731082422851813538932312504734831425632308052867401032457127051741969375227407787821607563704550527944300191233578080701773770574756859722796022591683911682453911932901117381773833164167612694886870094217514274251796326207894577718714260966553584556896079665421481573564354297985426308857018592283515442902564058484029560886775327795402051120733591236772085176862162303869016299540340462898439145173446300421792504928616585942530513956144879544621612274033594006557987171643709186167832629026219429889825309775574208892864277462964534189281666882161634292385181650965787255094245631163031670257394888054598370341005242087257609785800988099098884195994812342323883917482749588307408520418238490518418347936928980667637978379645441408999161252673567765720701582571529695069031342388425740173206783188381945130105447792013314981020586161045749232639494112951955252347610820185513975827141401512650871666004227307749452185351753247956862137380261096023871773045125562676633655167037798123737797047105857253662332851658245211346433087090826823720388383335443177900821785626582180191044846041802489258661526734701342350847325430909480313840545059175930903766197995468016927778712000309629426022058641118866712912684951991495539497667012024108150656084710545010041030910609864811044206364091263983949235044413829707577097163281549883731594358235853141358714824982482900101011461593791672663425787853533593336943889086736771301553313316030407228859402375142555135260845677355750498733406099972972262867534662994717100944758618354834405059640778023199966984765583787699712938840520086137488650706166794065684890242505094786660595969707359609821224687831790491310264207759057606909869031255599042969432197713410978106513841114450604377801425999277539680348637424112937131009108013727057023902281975215544270681866955870634860219715801642448639245340746292061039030329259194214144664732670652599046855115195917043474128151683983104235362106489200058649763007728641185101289447228641470535863676566204989720125837356397499113759512917425749056795196188478325099904044819717803864634155465636638379625168300985743046036144958052631335826912871118354106579190972580011583548693021787321990497318967024992071648738150980653518398524024365848115844595101236076736472555644851838784160860794193106956608469188851485023818009792000000176366068333698150713737438264228668256142621861958536408047898842163047894287051670418571782742847782893258341650427682429027957520569640918684938837466322404577767523553073626425868410218057495382206469769621714930464731010702365925822685011231444248714625214062469177633989178220444583041243742646331683389743200845710843585561801417904209462296126400402564269209811538098625291881211990743017367851811654138805710916565614633112512425058097320447168612405198279219639577750472557317745581660462476392339744352020412088750046748470762012574104105380718939878078774036609464473401579187675778872751102612610217276317908880324550294250759221034662123846675578382751939980427616744852664047340564885166788396313614125935421497700770509604866243635152849694953177192487592071944024742103511386342258468688380316039826741074369814212879319656086367040747082319147219312071769732991217759097137433518466842225827992751280878064431363742372889966618018252064037849314928146797259438959621270995079744490439000539075357577052661317626922785251111271471724519209380099074799103935657365514913201540438814635223358428212234106272477035134826835048770904514246348324840044491537108253773937134509345093973560157473854385188026565848523378963514776731375076092994090012821370361664813474610201197532246010655059531872529151804546797625054850339799086127479598972918747996728827161753726791277672432494692943001948467203709980325108770188434860503841771381842749566788370017061457161091677787275088588024786510309857366172849986888705138329650026826117606004739273748570283028606307691734074336373817439733695559724674131447975138402031242942376489961378025197816816762840044171534807574032662418331896783969654831732169336993662314490693710216289511125168288437554253497921419713479317671254731183478994202523926349860721390202097593711129775184583766463945879241705043639610059612623262236788841401127902240149296089474569912158973193294754050654521718316594272654504016385053028957502063415074471770462661800648273404381247298120941643255888525939131444003524379867995495945212200413229465369209056559789317566729739157562080673200594419022602139064645044716754825975479760679725920776114632756060094794743771554727284025355080414788657943382591825266495239061427263391866687966369387441227517474302783112678896571866329956904903878235482134951825852292794896251810202003486472665281402933028195166697536266221179226025682328836845223887849553252199816297660755394233334363747620866223680413870444013060352668661702734999527290653083787779704987190421764667609857243736817523179281678080347820640912849278482689639452328941885447906184023864610756816651365675898276646545798911644463841571541535381615122346555564751617795079770250051133288206335696254602053226073804492639879271226207644875310931179797830531898319526741495796800269072779013821909954010237551260443373705787657484714989809244064759785495328223786234031737460407475937164571525600015298473790872057138115757328463550116608909098475742238422489539980096764310283391459048269612464054152879211993698763172431022446764940000170652993443564259555526938533073678491185968557260540703206790746154366289045538784157260224652347386406817107716956595780134332535112407376532095792716166862240030606985823223958708467613556755425392727987715601454517400309352288947111827984571915015687433675281724958253690678485391755037704005181396307096082005831834490022293998731951061439184144947371739802761895827256967292794316059511088714415875148261028109535272671336947487661406070503346814945514582910815144936440746821599463846691924123104761229338288821580095279961528806363595660969923716211696754454267075131036389421307620608239697286615159916093619417054607313096213091654129588046769740484785253011969604870432373910608298634636651421088605139275609020612761715285122334051857093845949699318220660669502876919442520733760640494951365150297360823828304133048635426123249719643025378471644014614199162774453927050463118154817395272285339364039197020733308674554145277295251450362113651750692089155577993765549660677101809397234774619428893831429104959204616810568412898401418789239375764785005308739908639724518993975053836349800567362506917003593848728053889747770758248617708826957050302622491726394687716098830646554334805530462190768889000122361859181278444395738037677507048416304074562659185526411270102967989648139582313676401217694952664438693864788713994357274358025582518855474721099362567445480329114695939633721855955800235562031482738449117936231603937790588570694985230925335708080634579724150069322062016329406526306509848646543549525133664513885579294947902325649277998035697214493306808085472346205977135935099530549614584411920045994869516396666329103601915492779614027696604993774411548913278871800758118013895411533450844403293984263047688872248880608248643441419334256814075408302424435016686994145536876836654251509280501748650138366221754902456997567803186297769025103590237095479997361172120616803780005436208187863343620458863925130649866473108476790978703390547390655738400340622746300830844351487125831431004434644735989352550396051351239256723889543597401094597386211662220330069694952736993101476366246396641636162010022864426802442175016683627449522936382088423663409533847454464703627117804101207623316415631960570514975702722476741005590321555367370195056984036610065806960266849168257668229492827529000095307928625275050345116554719471513284182567831425890678786331902075637943708905570128638870934550931858250214067404399777419685461453258965652656671729060352908703432658062325896399208826878913724244006938076919985279430136394864857383744250515782050753272363371620316267657579304706451622053131417994218110103795110968749107517343169720499171531170639500188670956880019530057156913034782871265318105494917363045975084702690729073947613448971988491299718173652623653391174946656271943390027924113373436832047199354488770139554876819318516352528372870323834635043239141039275300411000304693950031675311675963965018901787992095443940256764428467923245841690227176029451048647201119313694540456358654011113549283263159876225480444150419213449591339359345975841047592410785101685423512682393761802255847769415069510712044514624240779869427302266401710629034011396597817220370037432286556638816554942629614843439360767003966784699233958236172046604148797723971466507182478917293874646962985315372019812044578439214886218076514165430750832033165297915030929122888302998857042084884465292259786255582743926552987297956799306330279486269075399129540348126668195405096157746361177042972997079811854796679148122264319770139389692740726538910133134448774343495033350229374973042792931820691739218034778671785218047243974385777250304212830499117678082607527636703774117369256240395917501297539539445002463403825927167125578956271726847425728133285107613906754715329319004027126575649018163117423661707840755819064573379436767449632382035256641783366920416057062574351238092945646789563356703873132739063838556492932407522190524322650034253117887047886571752257472112176713699209434675656104724481598539676165065139978927123811700594295560397211982134365525915985550001004186640201770939761014688123393028534347296830475565587168014401055415463907747208739309514584993009549181943241107254312763971644815653561072997168956270017340862057132685965525750567369307376251587371880254056861427975797179338299071261724295908125927889084725743816598361542793126788137886626379110246982421485814519288918501835391683666855650015778562097229875513605328659403298158629030891557694000678364049608800583807010897338220478733449357761752308538797749870397916189467782684568041259462047267388616065865191014185944949207992953989414169689807361513978149845458599797965403118608556752661267075541142837286893388683924845991209128143402630184260518311585253784865125966810030055996312171860486687558550620982412746662011232614233999943041428069626728172570825470502653784470310126094034361529960879176253385617368125613679960503759170321491429268411672302912493671534251285806705307089195243608695949999542452847281886001448933036130433513130191634352170691006391832928258335809257584850652469852904933698186070281092944769586320054443783576154664079254109662690518708361299655059338140979886398606193163035726663653820724701859502762868751086439552026209461063237165267921613056008382568589037369399248842822772922051575776066565504921197067574579750510875861220501410249383903057006300345670102150739001936797348265968356301753575142105206016875305478672671893297118152003379735912449273416320555835240820191778021000872349487785400542758233201575301261072358465256899917822206211733878686865457925754147816037176167414577930619777743270355036233922457544074321490934592100879876406223292332064251871368499814927573293244856849473958567315046122988971741842125446154036727684835196809128762114417942921535686470053379265682846518164271383575687250071106921838972684674460424353430501431122031521773071891091363944175309432185834591334070806704808599402629981888343586100220621679192041164839837716222210632805743726906110681613952459175441940838413706526335694817509274337015828394175706009699616544858656847429277069705929979266386648952476100815008545223878411401486746782004870674989862731420714670142676633090539822743564603376210470750758158253585576226762403062205924220774889519244545439446353702825274364541771287822382096421678171457785953871748136218227786212370607829712043349793390355584559165221415174537642925286846363287104731225608225734749670531011262202720043947337018990657918985937250107005998217314063925918902913839657619366447722543186589028516305732771692466007115665767419388570212084427968331247636775149423412979369019627640991541912770969742592756628830430568972575094819562038458959994867834858476970437675413230499597092794655136636631014603452330915875450842947559572389171576490659894022133923323700157472143527632327411320041032303944793693177630210488808118693826405723096837813484402632517001919313132930955597905296209417245816962995964602427676742566468852717674801763277286761024500056924352327650284830465277644921144647501740929769023427052964281725817352558012102159163249292231978837893384359097858144867729499361847613312513002902665017548961435846139098864436448144261728031892362474462196967481113940601574177507213923501971871698400570546260539936440918569374776624664066356435517238682540814505738213104766363316092384317741833876652920443055562709663964313851361485140491738610873001894628928627131338317835223320606580946495483863190061719618345150524086127853035975214441203422028518833871271313541977636029394763517650598703457643590319004239355661657086026479834766357499016857861216483927280018906945076890142326035201092169355339196801001486057668842870915057437001143629911308344067781495816560811697169000958561473790023729195643049472140397443981493418774289500655212438860541999523378817835299016020518156086189095134256818576659685541974280456082395123714904600498729435788822294978481411568116045893466300041027956535359076520782451324380515083201871962328564655818818975090776326849528371809641779001600188407312881659391672426214028627040086393397064968465064384803697437856238881658411233071344931868483779795161894111869456931499690059705729266221361868153099300030628806717658546975398624685943774785105067859812843312788901696156117276899566621652811626984792015208809068524446080568290384349252700898340292714926903275287944611292993434439014473858369843330119055761901744070032837017637567393011430363476794624860780485957414483075913019540547728143851918644016635749361088235886236661263009964400743533376543951936538380416035032030084751915941210337013904790949287312619469774378163874840389834801327718176269198210366615454117876411901378170154769659522625044700132384271109673692638818445844207003201550612474502381780272809191061250152582934207030642656148339788064799035696912758275527396441743738752673556604089282898743464555570761032364968623842606286046916350892969586473579956475995455584465471262504748795909961341415521347234799563394408234862908317282890443600158499486498287584187751114933951226901846521169396140878390013051614826344042215447429019948846628264951415260667368543164954605883987440323434629674081981306217339997280933942080170599844537192068307873683748775818973496626422277560862182068258436142032085808360127826941610386837298419862045070719823107255535796429305542548349407994081429578850955275522392830105100924973281534388181195175366889804536085203133564424798468300155057802128648539313600135175166761946340044352376496274527366054194667052979229794518209531260472256935379226056906725378335985696785713065824319681558580845401285702473377429323369959403121576459483506079614225593289374317445235187285119786995094750625697512565172010801920662118212213123289904980280444658422711275553669468413393710922575398353589947389557793676146468678163002400837227358647118677393935574431984853425973764336163216127497123123668084152141674025748270419849168321018327670942744287481001138851525039915656543758138582534311609965787472948993226399620859123640109909143683908097490807192533040855604574524303225795438673695580251082797342246523580431991320034946135215025396838265918495069904380436823585640131638068925803386579397396601872620373662312145262535503637111683334321291817680996808856580488176551215047825374739026480794469458558220549813420841135139591957855626948850131161304398224662563070845098165564262279759707055125167008254475442077998123974961115727102385000520046999438030805578268845339461418462370764149017468956880654281742261867156702784448492229196638575554970784098245381566604786229045809318485878952368773996591798452984987376715940097630841395267824496317126557275108186692733196540549980110479249190444167099287545356440209562689087613859259398948810951236564193507121060828962061831629961621521960197438595274991831083454758414306281727202991360598322726465011577013169205856108575214707410095198766914576095584460521535196997477803161928287566032483110432450420330863992035400120082225949426120570357538524162037893269630764328950983094455538356884533466922891533248420310359766303296471331785589777808566636407133267078117382603080049701329108400239022996964635604127764940832486653593528398243196019879047972625506468946017490225307810391762359957137202663717014631445681263117696943507487882906658966022608480336365066401548134121416407598748545127365250316538325164633282473501198376805488352472341147017581664408914072342585193329943438546689650284653402557602070904411723659770588353762233940142045054733751768038191222926468541141269166056105429487856439654889399419841241265711973122471860895526055020653411923280566750402584170825106575481901630228861935596113177573813066914951824757342990502686187467803507480114996407057295783097163013709272303999688833640417187490197740116560343034820276393497027206721517394327614661810657830680573005542602117741169869628046972217343379598841205776636205195088491748136732052405412675941916473276567993491022744145048222632935689750080446122317968283082926943039761492122847804435138642352981289716162618128337575726798307690930364017756747040299989174266399744561761705884691279108910706598733608109327450792984488605554475059788210207336435714400602260988045903127300931671619786274503728774148726939979014996385451973700087646044521013999915307536571568483706287050282367858600885514392115867074394221276060185251447860178151561901326691020211866284371260088907956882145763948200045603818293552593522958896024847087499142019913876548843910263162513419846454207799047223468121514228381501623246769684089678642035715794177445008089328539729634303518558982328701534186690964936319599737052681979869325918303019724219911879373227294858167022965842228471893212469727234499222039793295199342657501320349434990811760626921835335981588432623814421471637824785949551505334054123008150203485476877050436638455303985724673004324412890773962643232851660184040069982228499487280167131961865319017536128248473454768518926209297288066283836069082701120934852853634442028017098061169798362960713826323821836494211309024346439203370416414531104722390284089960670017734487360023291836518188285497952531791118530487969046533503130429301564461442493897640483262449749553176545549793978922175503143892116076411048682081882737527952344308824377555985256977439629950957589154778284987717233142049273853274400674423809789032779093379648017781064320629474567171145277021610865892372657472545790473222593916950969845734059813894550486916875913300701116945956654471968421731053726989570767878298659635598658196626263292209668547918687496918381767399550362206152888168007197673308645325336341197672763412773291395135794874883219298307833638192162039516542594485121075794943463975229285712090173709355139587381484468957480786464860009689713994666700470561092048473873441995121637870324583741255214402199431080630977605109630288186079743601949601799367283124150683045776723715261018725056028169454309330481340818566508855028043112882826073184040942834459902664389345103531456676517284956769294903278276220019367431433759640162510500422329050156371421004637641739325768166869406045754157098243782626199265271101733122019890776572709269040132926270305585072441870374356007627808234483402390291127084123387266219458778566492678105982293101378144199795245829365188201188335317211411981349177230249846817826715633880360305033022938773551923021911097396042779360647028076666670381073970101069445273309477511829319145475509638793123433148490081127218142335062300228095247014162064172039513977616329675166566251116639078281895475932887441282894635007641182118628361366595191396238940271664152071412999185195909143362524551102041278905690338470381706165405064140101517141082167315094210691472139408017626809154397262510292569853528265163640772905499032038665033819993568445123368771813254781367501483280300110107434857680780804147361547964289620779794869492229927004048499642547915520734085153232937834288660504652347952938477295763007953569601812120260671865242124711156555972359638687192327633146498672478343963854177410015919426180964602493334032734040611717903653414567714079481997644267387919653289428128623664328199328362125157247367053085908873939001700660540630991097035590441578619345058633795902883015151064163884653117811134770863193845162817532605975512013934988439744291142978804373723991567686301755286927925452331169200094745363102823540878242416982724228429264575942519633347466489439922070974943842023142426146800849620388540471150458320394176597139489049909618040178272095456993995660555346592050161041159448076880854916864192617527662618109848983323431626151488992287356822271269750917334197137164365178528060851213334784256699350380549720327292601513728030690679128216610221145452029556872051516659306526696636800364593781907704402429393290581384978782969010504046923694613877480385833474993778885456937666723588870132251265100049836744587357971309099513203136065676179222534399873807410456127722712522629882570774993458875024570537553705218825659395870043506296033077971088422090554645090562304948795745509294378469740500829686564655865588973843352479827348956967095175970261316997682516624118187181955111588793405728748735095591039930438753674373441615967159945063077064295626077483217335364689452193038856199132074753507829520874572081872972537208986805673682467022763798701634519416057541306859487207261964371235893704441221370658946201374547339770572291948130650666093778330224739596606993262584721570429866558641171473675345005055780565021053728569774013990545834007954333435602685280634534343562205798086741569031294536067883164965565028464371288413373313924416788205258905527055412581741656949758920156523064262973741972234728800102613293680589601722826916318319850822255569723835540818519927635626043868236241413571523816267980827113067914033059060265868103090787044707162878957861235398488833980676814421256111353634457968075558099512659176491758958372968611713736310017088147934864927196366251055921540528368791308395734973412840844419743056970531704923733159415160825680968286299195637705217872263285037282589056893682720215724785935557517165567937219956150821956166822331221935541688016010085670508357820919799256641566437521850820573336788962121543984730241197786417720069718259983386293829961285596127329675707532654222775980295479185961750650915485878762474600367248182148156621639729406907808128202832503779155371683775305631002921087546470867109432921838964124102956934431269780281035222206689294741597347364712319911127976007156433167172424038719863638633694219877063083080663177909006762870843976579876797029811105439464319605585151135000500007918090321894905674550878237499661019914192198922042535187088463010945407798312814873846607915586992061170974215655452139334349429274115589573635913362337178349656279516596956444341241773427441312883413154107962142680205792390615325506194541862175858723568926487371859383221301927524678472542876829870376230280793232029011185990531814805237991850291493468325079795529940274159860443335329739638756344592156332169751653527583168059938057440112709077144099493456729164504485592644496228075432987986604105656929063976587236522841586013740706428533765935487368414542311298539707872322848063141392496059575093985009443978059666909269989978035611143458704151489163866600872738088960629028002905396516769230279763719444425446573812428584866253827463341073696595574701606973742953102498984524951360264075461301369030579421456199095285286950287215926172057263294656616439408685011397309584533361083704929328266185646308613915212010935757418753201841108061223624624097316141713023822907057079186894413678756207571061732774970951966868449781038570938924506290818567022048627982098560795153685071572589725323034668290658533253805839835830261467947263167618482398374519994679124155677519180066106104311170964617318634069728699849710463752029418836714652472206262425612713217158893197263187251101824051723955277592863535459692539937639144561472480860404766181983645039052772960374216807347106095145057249139039579848818865525658965420241196340974160058793394820433471865431645989221220637248024027943367125530521961705268155350134291286087522841961040193996500535626050970357023474594288909396473769757738076588119719426961830272806021073490861016599859384126737928408712721841335797015712961427068241512355459734989857176634119218258372618966709971546309112863244835031856741387852952777828488276088667112532888464059946661945290294987260545543779327631996338446760575225075239953360983556852620336355677510975249695184028990099800034417648885575214205917408811739584295870525664434287448356240154378599741778183615579956903603796346259014955275028337505890776674890554130150052170611026281045637980094745881806424593320675735189893819761517730850026517583158937529140526368502417751011263603238400235652794641000721459225865454795568319217001112095260942302360583459175669853921772332536967264205361217228594803352032528709314383000561805957829341041947527363903408031404391240649001197442515943535877162704633090770010523557100399875366047027660208163303971317326913951453320831934486242260715229015924617559624890879744321799826302752251252792078890532678013710060264625428138893386814215929763203769641668913499166771213068129309270518796227409298598298109767297004634883532820813679725894847259946006317046782554385234474072934449777333440830657719607104259447366114789822457978682948305041533046395483054267252149234961946193928018822074264624013475834959924500625401254631737623981171724136843534183910979243443684252303148427083428226087278118445495884724477648693859010750180979047408747998574341623131574761478350959219983288057715837840985416477309668545696798236431214992535924513934139760610894194939315172785180712529630733585558933793660698562348103521001689005731893207203738486092457962852146407265203471755713178339101904894644179192526750849195692951181851831437154281587614011436408930327674405111296977495933603989267861864430139427860238949391447543997877149747410034388222182908126508434476727903732429366241816727711259010901403981974943954059097851409493839085072017731156842192695809135032186277398864820431166388070342151756821538737310960643678502910117526476056627572348902008104713123179006645804698263481975124732279163103518615465297758722583269854388297811006111212674405288177530435332294642580496635527649185146530173664050839710158998059535807807273272829247341285540880470198553155986169523898168232448216712172695635063974656185467575164961107476799247121196163970043150012156589187892776736226212675285705290542171426729849630022920412123741684106121845638346418959074438183729707980219599461607129910168312889902802254370085301087662756036455729370147350996291411685946899575827566756764557474741943264435475506881829817765562731342487058089560708043168161257606797717025247510249548446745295362997423583387046759935632427251655577752953086820941179870548372569532407366213296733825625750997525864243211870430633811690714831712951111150194421196122696081862259527483534357986046323837563269464656988041267973084350429865917753630080978582381740155899108524885607323829048775823464020751069564399161015991331982177788938645333882105962466609679749379237296891672368100291918387131871518667843803123272255222060306581142495777039826000694543682655254691702772915915991151299411966261828424767869949457205685089350133209611162725613261224198615659769909468412975340138334484779102049406695162781716543239645823962119854954041112944173582987001359802690677322993048353743363175896826099749088313554953981858866713682603000292922543738550353013019715304239231083409960598428933688783620149195862832674837647119229432289667711712026869941066065640015096704222750940383329736681595908241353855184052067293468571527202569589975517629579020729935690834189034250777849148975317961435523764564546939666595803174266474508320364738530453982024422435658518351333159858667650708155621384813138545754551463276430612918713245621041969818322303028323405999037241993739479714004736971128331774628171775527762384784799384072550862788541116727410106971718984706503601313204103136542622220441912282062612197746564223543956025868255057062907295594032177111103016017915931689619988199217767457940325141898859845211559563972551828996717331050481858471383478618835639223050441733098586310421001589879048564139898906591289438237013142098779531511360541379387729608993686751963296198844690410166221735959855966380228686529528768291331344717130983467399074669653128871122259614778293059220947906454516945751594494767390242287810224396181292768032786974736936260173680372195478027436165374936981520549083725685430755892291342216781709105581842091961789792192763189330072082356527838072814293148099203851883462590177540096696921658172610183776372762592825828820098579665508791836183991142171494081079579150497804691802399956168114148689219238838860302914145560449641739032672898881174147361724764990744675489183587436786365946406576229790762248559745038876377781052230014841009526187660895511399162781703463258191838376269025037900655728366639077877224882713117833615398507645680980769745180343238105453444629806406516744814032365579503178154029829693298841491919520862583663021074704203085716655881437410040113567523734021196540488219508417771008460501878397572356019062340935779549316060182725375064202863047354895630013435050375385899632239091160944118488454777772269261091706770190392717023624002832364960645977500773198368016347732327281983145745029590300226081886543207659230144309393425123731397067387793396533308674503215179154286692151264702626553362775271301090576198340870556814181894166036241388823535605536388185438207643449347897651685551105810069575411718976352351368266184838020691941846041857233694254480271673358304820273829475114085894374161621691249111762057419952875874206011407959119207499894562816755627869099817229278116202598764591821180544292255073584858268858114745165175523863219725176592871161586030750550573488671002593708880898755286351653220447937745033079204961292051357805116936857347256396706662331570785983254919471507601723464736966728037248997073811627187901916344382016516819748522602859614051540779450723244144092078194861206853915154273729070137690884548988545830278083969071238041600628400891752437468332239382608427135778545546408133382171223648830136530364448981918901050755251512564572965116689281843772499910835565956217365534353781028712795929495290507260786217881543108105411630523831722863199361887081734723707568376379798958570270514184901063876953414559095424295138108628683777610860325772362759983081791459565855319864949843507463147368463584253489288561378132855728179517746515328816885189466217386722864976118718852628601216962543535462839830703826904023663206673673935664104902934177750845143473243894365399811585220737080640206117161144504778581999647432511385488472266616102118561889828162622260164226764150518308838955391554480150432962317163263644613478655816427880479770688051711144213319217917001898036932529864305807473868343611498648446331851885038293604601170392908273587728576496671138619323303820661248721968674108514861493037865744320078074262380467411890462114099815109904498867042293444463135176745330562406159773197831827048451187271729031504955073155505771664517708174262653161729485630201345534209976499736838556246984866739833635096271109421899468043866641897403971633052080867134398759092039811803949297011266863360948229138903750198939077133050199998452847828387526447519258396596689787181849930919592366647787110548687495273685744938206427576229142620734626267312602805455628833098108421282835043547674183299715194258328684384303271917334393575134526344524837120809277425176936929585830975042294867853675311462694775629833685792136118312137547078891451458789328145475564908038357119327709873694279036499218069444767713491715425663460182015579971816552168342547408371007808455434176425441427608065242095344954606154300619404645447751948373242646561833349283043535420979673626493900638672968724321657799962657633754049831871483222245171985126549047728835937081728709199783029082169027728709124902232732372273976587717809680284554418136718255029458234754655237001681357535312577832867774889697262934498957107111177802797070241314675648619770514343286209271761364686034657444673966457274686131093856662038160632290502047516796970796423280622121396841883642996687057787836771948093918600516882865177950185451439022286511490731009183087795955588491012607009077892921637698560265446017680519420049516182335666446710094007635256182661535545917561361622804056895040928982861122469209310940384297269444103649133331301972322110363485537616336064987344852243091031634406947339199387654669541065763930962170182099735101888839476320694650770502352419283866309714314085668131608212242596286367264301497318523919027277218500179255078473519492355960853179831880721632383830064924904172684810123842308763421370560593991265037319567332524285298600635326032336393127363379633746038190771920620504055954229598106994405286454574500561426330725282802017207915710665765523723085042041358688142190133776537290740767068730219664648180756345784186219942185949690187863475866950471382873869827219655645150661580961931366958477504765219831201141216258132259065140540779429121348343049041419609205681300620404735450157965234013846973993642651485407416559899621489446837233191458440402217722990278114137329557463495901673464331367995570020782675998830379609792134140718209624781424448363235433650315459592445653893941717114986242449425255936753801701220780634042091366252759061523944375189282027256261318853687989633194231777300212891173463816917867931152836852685039018161873663311795901980267992722772290195378154662612894597083742898377998857741672914235501528981742626619700100778034336369768047393525186706858382647951177369350476042372614615223688508036441839223319236578598758683219015741107063909687595659078295656936189331209358495842628260291186593099952270115857157385852931912578559915375100246322545644489513562529853268720405091377413315261775356558880492218775353005979312736114056280168047384640113898684700719669295811212335981254907535442080462705782688132459924576019256018020043625137872181733710063811342362714379352359067657410963082735289331909914517238144407623168811660223876714452709293136136173653274965709196654113854964545382182931688337490434706047519945867978828382981817187987385825980082624207619800809335244447191929574885689358369178438726467624711750349093020768214471329966790444283667984884030030009976645927609149207966024359402564891660512837191014941624175086389670499666720907648287295905065790367262962536070820376290216592034358324783998938689462986909267733119178141304527980791657216185455898312865877824886522273212932875129843479529198734180145525238416035900978815799732774836510356474641412264871015469623874712124104894895340941547581462841108267209420488591063150129598680560428517686347570852993026971843696272610835040120629870593227946445621752966935196540897511734411174598638995497871348677850490237220306138019828427781112742832944800125071120023369779628498633055420146284402065154959661271508933663885053134983633253140774987303598116019104294090776164844891688391010478132477571329130569333993007383004903226755787547091472031402046155474865257124064093875094729942560187786142842730249321898038088972990918526071477808732715911896907864064528511323163573592197011608699373911576332320610153789941987286512784398237908173745816862236570463935966396717482906502940062345768385806634618541599754914868054576261509016087336903529792876611355626959229132860642564605455269984284939764665862070886744317297163800431007298654205764049813054794755825403329901689875547321872272361610783417658416828289635163992247394782699984479106375927840997124370715151557326451378460523742778302882329017109758747766627147889918806367311722246702849679934267638139022932126452891323924580857168216067611933341093579779886499681771677002565055023185312292503312808238151689540383059027281552190872600935585582223412339009714142308590492413621008316903715523641464799864942975774465588803571296323590265751321576030957716461305622639486779375263069197579361300033587276352869385592065972439728166168464101458517212955308391484406782607137220727380500838289174494956482997370191577355650351096027748649364435752995026842757685264819667288972821567699809001540768767272409931738493030577108313267089317541664861714516626429038827153399589971716192070580557094162405048873614442570186412270292115449578688340115736256774709442189166891615142703742346385009790170294852797164532029479105336921945272886041532840098599588423712296001196626058472786477555582304424562034449182308085007581849204136153409175007816168238931379770733383589105610944304196034361210979882543134535299179408419801697907231094052784230785524650995304448668359419534276032160522739840039356383732764361172269600223288128209715444141440982706726615973858533239437137208830505020111399131887328498154334449626296477831298135159609616383411939801478938637843472584466617330061624652359767574686805328611642857665915273908266572839458434130163607150819231976701087530408973306044404749610646558605921043847163286294634786006387929257457439316101142838834865329820996622048443032886718561541906257600269936008627545718952709310459324618676268422548321687088300972556884002575117854921969780087681224970952769141012850439265202669204584118801771070031228183073654030991338918740949306526606564804977262752906740603324669012095807817953742488586076523163486466777521564274368006390455179937938347659164088554481138030042773724154312084552023294525239532343398973525973997962207296940307020345054489789123136547962163155950782286228741437738653035949075882700618583429259213976614445892569726112058699945982275487677085107130406222914891753937355549209966106234939740865166296721216588310460361397642396631197438203138258604697929425076484367147918959729819942346072015199118534938488240773674755236635619251890124125025385733301834768472025057966170634768794581674128438650139721495759676351553714396093269664999597820480146832636335418703152127267836015278794361211229022241471958176249360072274413037062280328687793521401214178673267508695834124506691506133565582613305185544862213689526489414579035220821921713319066921306076250863055694186707238409148303147668325486298618697493859985715828547854384231407758914126152429324536484473008944299785826613325472012394343562835279123948632900908829820873397829086404276065394633882402368562654508205108084066668995656761662717756489556963855000087835795032787212289841186858573815768136872803058102600268644734986209563193700386800951590217572509947191242673294862468326475314440892369537085178237629894133480279440740939748711237775814819723960987944866606720848303303524921337589293092009407331391456138095370183229056393290665737404554972709471885472015236036059059033421875687902774787514133855200603102335110553474206037816200076714337141199786611815546887586984764287065044475605688537774954754406553525256150916611307241781474621320433371306356889473778013056401844510017326946480488058084076978881994231151762205564043600535000795148683745156973551780616343657903630312359644908399941420688893426639001286173501225656989819667092251039356168658729265582151194689006188081535949921170739050629726634533391748887857957515097380918871191111259405204433427196167419640160173399591183726062493834597767291704632514788357689633630522289174655728868284179919524053819074475775991039242659575087696940387840631946902614622253141008080538384154010381877387956656297913950433613135659576038054945359141359900901423662211168929816386839979848742985379224218898180356099849729847611232456441328991361585712760696946767968084503365004728612360458543600477241253511100346577395409328236401468493182361592144194379706581619495724229310325540003676423064873173032466290392418523786583005012961084143912262444245913493712349860870960996716027567476893982229846134059243691651643243722987618899764987774911727417966311765357655014061137486676220806411658994319243263414415480148667709929171846491991361287361185190992741105801318156603486554721750526550531380985479136153205588800825829704791780327395408424732622019598061965660837299323061495081738266502004450244229779818530159889840393823274472123315079334760624163005714431329939620138044313879690205839196777870857540037875061473108420451458468617449320886896313049838436128788490111342144492731178669315383184675583262750304719212796718091312446284765323749296976516715295620326810576911962580465562989904398066942907060090523865070757513945677029195500808575449422823670482771585472299225830149082664179314529701108991659847088143072665743330582648404608130228675038777087113051168883575663935966150736555294561076946551061492586851054076248955092431733459795791673880766613796662676384414375556149394064739141437326047712573706412844027888134058756264443009661624560863891702776049365331425093321592089410275401243179929849258016719885702122868738842762799848052558623099066284335997245717829699203652961616503149165327833422886202761346264044370160466917685425688131971213006135035949098858459623936732046792037062570760153716444816629870882114127624796037517150234191048666649445643232032444421624292414729992689707890789295283933522949209962028248041743865761707007403274288633368263507469741936154321237441542048360468300449704908888839775682378359425570754276374567827024508719108739855919612024800407411121047848878630205156427875807880610409262033084666880659343185267334606519312710126953308008824737005943301898280753282045717444774134384804825698245875422258844736022106071416503308401905920928101243373332400168957779241081262346013017446062656828739590024708802736601504244889344136028538566758298754486424687536547249421130740867962973920265966918073681597447046608403739054995890720718395238897492650805351228851363604547390548309911991814521547211574751576092593209990824123065300588353003196555379936314416134020767292893179193520935070216201628755196096552617718547453414073430205666132562550951335850247511208938889511816481027540995978397482958174387786711336154926301736372092389432404078630811071221132174216779940669880876941875178112410522246029011930048160316004417773346914702498843938870467761910228220620586520655406566769771834905396593268539806669425934816690821988357481652189740076388253936190711496204835259128479504567734617877966000965027402051589172458420629818741167941382333579858167427430061717602218891347952698784130884713065762255504041337749089373551326570954594343785535579489536328622393270413442718233103827136407439773352282170229667915258431625624524248388875698701003486054531127746018471947033847591687539284396260859316220275414432002630323661924717907903259525615777259976897932291989289361391310685488261267183297515078375742550387037619170226650463531029715506065628571075866012582334013745356097986578043703058482068414405339043758139255318234574677519879440562836797896508533650551099755227201618992938405856134149281018683675374271847755753551551626871255360606325039274310876193973881836756403072054294434592169775578782840403390220916423042716171956156541855366830861623223514923560081861875473146012769359760844689952312980202164551018374244196854943982487286769968987001407591050881192857158919555950194360031316347515618898525978237160463795034142336325757974620878928208740722093038267997033313041595596530021283151973323631897353571848843955601445552272515534366466643866576330337296028393362453665852412585451059598420703034360056166052379507893159469777909484278475135236294412074425766686082228995259509710343233608066706532209795829099575824855275700885365613026463669602819769747468965402798192661554154661346551371180810915496981912105612397267786743442054108980340468017710575912315106428733905026306468224661804833978430604841976096918526626228899801768739283002932277577160286089280853361583213901682608982691625424962158840370056015110074099617712293877890218351883457185324436676359126163653607775774765782741311486553798674280039495496560142163760722146594189544426029418232107555899412876113968335024726685674649246243194198985078510359021702687140393028258892135390007499648001140805948021493578375780789895132022012478329185920290098163542545545595178742510330378659757477701831551207463020533593917012947200250632034193298243479549460764325298146524260140346542983945383067236675423306136202056337462031070630357810262410339126034239182452808790510095300817476919597267447385946449584450984406020654705753835184737209541343691988357591607163875056084443026726115002363640234597464409539285220563355742035760825971563065029076946805121989569668491194477650560371317294804981404260953796747263012346650923991323109509290024150289279738347372653873016495332002815877164293971397468649107194797951397523354227089652962861409571893344480803082000205079266757893013190308070305346280490249765779476852668936276777037031028304832945042409615036724720475176209509136141084518886117833274193291312257562918346316491045153866857713496127127797191039097918992342530836870884418209927322768244507912773241001590493904756382545602313676650431096154951666363625326526193533607225619271823131349954628280755134129888158842886118527054722145057748290561737788237311652074876816115029039931015111559543597571177447600886355349039168774662386316067709178978295452039044098143216268953165789947389196665911198195905356565041438251623058190562306256806243760812555920036899129743606889900055171586260109858666677327376364577054831721397818253375549357022211673707359261752001906704550740970293894297623512625789845058884536283683796772295226965352984440591069998709886301111395784187245105216932502677584916975112428358152375945677350161372376220549654658057895097334267708254331681482060862076542848358999782221204626505214756217427058411299405491619503242673046733402173668708072909892722823469657090311761429025684910400192193658301936556985170066756447722796440904096717430110514047041021623562557233977140755548885250115231056550481616638013458331204066838580019094192043579099853819004356199614778187810842660977043487995016421738771767876142141028804144304997952051014023209473511370749001370056004044401673329273014780711676228250490594742323921678192481103347474192520846239357923326833865507273548541954643554595338082883799171048154104003237718203134251900089978234764076060782446123364821693991586798026104232120156442603533772771876849510496276703695191481303918861073504031711405189482074385951514992508428264256798353582251682012521864044384388183191905647917584513128263572508971408715730319354585867828615388492152113816883140982688057798316404651648356441216152993489510984329185232413193182591115088624698698923723238031162177948628475061730965989558192366492823885142921083415272085519772683075291941072097423530975405006582312472080726933150819818652936381129688028244085176750975597018832252505949792073804557137821435118106463646269385080926155793258507500623525353591570756828334028517915827153262446519216574403761456624932091956758098323192672711242226585738974991354341050155003431683606026996895891864183834023060561616463071349345643206816728180497684468167021243160076753726686180418921403482218493838836928406013489429204937071737029679775828337491410573713473472675196734713477970931486517078369086933510702212581291429899123984747551889969829705450336342000235196578760788565311629128500116945378850346980202298188095367296987054208788327756240793033899811461594144985224369089096743004775715967184358164191093257714667549326007552256350402227768490220873916981469165530288256555160828123308166934022761415599154761962815191814588562452406635157814726537236774173898983369018959945710156582799767612518137398855320909097339364522115554093062921648859484341576452922266096998423997509821552575029643483713991179943472267095258794375436510546516898616516465626746439322349397402030204564385502379213403156810884063959977041986151186882102055555930828532965317642218478334237854875334186335866727460291025470402023828903907230034942709715930042964399349144697703632868391602441126622496138330295624633411869168851942094194095161859629872295386502936701470287323372606890985433180235384696168372759292964090811053500225361245514353135952708329483444561678208776659001948760876490475604755087076387032333226119327546754841593528199947051149534243258041255896429462993938618985619476837206535856970058337782747616105420986473838179137441611935000477130732738149923037929524435321506790702635914933606379973642682809639815372983799697185948830050508055547087712120365978162373374056715528703557416593183648415196752370269212706929854070775025384388086543917593103865775354369710965129200058461279447719292950635545867331668779114164935818692957544245002468521434907701859272592849255204008098003489780611166619883790485792617356684647774088236428241670661284103812372316537882328774950460354054696289811781272508526695965501798775902460371334843460975235689986034449551337939035217648250314395739739666787047585931840213903712939285616152474677178161491559231284399353932355736399166905414589451311267034129281822434514393839372597483506277434200309525362515035044734052962174661607230884964332408922683538374543504222532111512053506279365925521051459753061858406400882231147972813466463994395413990924081000879837184501675583025442339054002389841215683435827829364793714297510770588776434073458381590392954319467239830273959614526305373644526044267238364086910250995427522980576134236923988360006705532117439031924731285076960463388546617657881349681189309880639467111519493129506870409535989556999742325206160690102733430824027618746187267916858851487197483613457197211014835337238706804828120835264686270935161837667180164365557406121359637986591122371348151383152591385971417440849525546038526340747832320735079693884116014003019663071148778910188671925101477098600025431220481926119547307851402264038307389523253773504238864030328217257523225566495675973551398647873458782707748347021022784617290213444145386028963495157095838561688472568332400872267666910222984462705851397397214928292779872370930343562573671953013661510301727380577956824955573053296090674084263348946426631737329926999549550811752826884367964164962899103883172320929765577906342937362596402773353930379739804519686037385874051334431396785846034111327431552975756872042207726732631340958981032553118501275785458934807643867653597885817826047491208876615702311040575225645615579983685212353143248205139061239583246548596902605136225152198576694635964365935478186021059474804249547340918816106624169595580553033703201332067047642826206673435375160391637345927267639957259249856542655743892648921231237672362389252588240565382032983895894793636970652901193130131224496706246266807316603519319719150759774223930166604442947796492887190067266597197617166537312690029965367396491155639168940535114824806941389586333390967982991661096162347201739027671358003069166065808902297456243802627559603711196314857805411051189012260531391316780530419824732262606819071316743942364797634185216500946246675281116318875946532852736597770477013616389176193503055388793250847655816636795430565076761193764754761030342527760293099395523028367954226851079869949288488101672145493709565280577389623215141156432517709580970540179850065659638386138495033992117280795833453221770703103037422048754822414672867996102930834361448362670096755316918634100112856220876662192706936100941720414888195511009795330320966290775903264034635264666392457557741389805870943941465061490434284241960077076604834344521087037433223265036483570486650031485840970283201704659238115477893237155641425343763907419514136081489574569817377058699865740956013193976680909252943096306986526727678802417023041776027976949807371748251021756813572688920255934085232349726591581006164078160897076989412015882804792763938700267510105986586471839671226289983653062687897227303974102874786880112321231274449655137874401593876636481129234462617115603904419121707964407010257135713370415726535260015852167599584303084756713162334800239654948973499796344775407217849846977097608724546591390912228809166799473540557113831919416427650268566797385951133600527680253447469261880583869655167105531876257583102575779251106900498768314897800461104111968350793666813501472501243453736147691850030523827957472642826521348937944493132029501318595606480671873780939472450941193128974238791161242385539527494071882102971747290933873468493360065174833106478765882443755734973018336227525525000928454316139313933650418322482729956813639318201513880845598526187407546535311811339310083328741789151702597856712821223265366696186217436140948848613384664135924935718927527867456547202918402085824050167630259665880863200783870109935370456056711887547670102135680688753410027253168503842149386863576742424881146571490853547415235353381087884277999113732001596964427799325300914182618466619953748304934804793786838845589502558017669441161986054588220437543082975513721226698973156491789463557058156898378322709273229027496144371438350188946955496691019977114500867138787419098286373034144069025075020594091042580211230483401713846867533730779448570594087738516632970596547271435642700199673956962723630649493297374357324577378266765599711614993165923349148227168911254460906467421991170083399093088412974409034956799973840460891870451189394391221246631055920882927807671126043345002261528541917826407230288402769677423055236682429957590960652832925187880141104143345055795091324683110019841712903228606457285443572103991483748622736669247914233482446206860508397008095968808479722283727119763955222046268076276320492616190011825998451551124763072208091594251087193810410249995286499855341484699947378767290192065988895821611927132671951875690411112659612442561925076231729169385796729681227668713470309340822394946856764599597376932480161373098522283671986457334872224978699401261156036036053602247715565545609518187252535752678647130139048931062372912345892024333032701092497295518752093060617695137245583267878358333296880107230023457175978263289230627539580673710332097866239204252955594725651809744112676927523748112468991769684794785061902727605430344324183409006379363889331325591152259785197998359401147507726269837391457301103417270249556634335546301310231133155772819233557317093368803865073968356848262464305391405147872004010031858947179234551570440636697642318338250796227864520656298018861183636821831450777887185271620347140569244856245463511492927245853372350669861763750388342856048392256154019986497993141629530303160720663795615368241405721669341925428850510382339108339528286963825422090116145198496722655243600070700224977103416914257659584625804966192525129347008363658882178871315315357492882190826580114375261590118250797438901140300076605753822547776418820036314763888923746588524321802852243234480359524345968584454063263759765795114646816735687527433675094831202703378570436052820319814350291768004653040359445468213906958622387463237473208232008128496330500899046648306037768444921318312942730002174627162392056973734101776269146136588056650788431795892793818083569020158656802453089830947841553180939383998464361073290185358087391788736873051299733156703420691619764090784860892511879332589309109266017339654869580541214321963562660405289674015344061581594960386287973153316355811480105599414253306316283368822087256078771614548579287902932445015816608767276261701885159811577713476170207417465681514221236530325191821789883500413502016288298719025108029817098499064856509571841213427627708526912231080193945706126154469103321611763772514100184750366017143979002317501259242545043538185111283906058959613834149489420471858134604211316792637440335274836917892844193602118990743394207735033063082465796135297112886057181142747959111320229054636365940527680414629229015835030204564975049248674263375880484742372627528922618378007536647506203039945632791965354753116040450809631550750320252687929093595992409343277320630485664736825109545687436992478788149091245472965259870391571404341940186412266972066057118289134047368575461709345604927498843526412549715466880175896141617253400686956206710473147961745194240741660934055427553014237547752815024438035614247773344454810537569625214190079906055434596367101035253294103126315948578730613191707183583103363904255301840237153995123694223415771604503637575008391896860635277369633256711175018810836327714244981341987653555873129138315627979185383717743443689581849660641287132342491080881469896545977147049612433327549773191043764687666746108080459567776901590695330588597598121417055215799345677189344460810192491134845360611987006837277813261870476477136972274516242933523028749589170909669670871786023936368088965639612564779432981651321229994125976216099795703310774063294803554805624450313439373014967070756977520542082527287975477083069888841873537096347651037526394255018325950894247901111223984203150656933279416100452868683334425925077395013526563606283900149818172427758827486239699940660746026072338543306215681350577020870704080541928937955105845887357284451666088370849572208260453653977827257181277013249420767590587514037332829687492457930754733518777727726508042971100254994752498483985098327305921650613721538246486941073708901709668397331805058724020575427407105806091587210094528047211271140777391158841032246951963664378308164086628641254570165850785691896065213562057282748351879488285358221674307577244390923171835348414381727154400417523913042203562929366297979386510912931253717611652589759438955613679534681671441882149969679964937047514922452809299683585878640250169430902934145236398770147231763388146392172022197642382167999762154666085658892227361394374460151797764431108559476446698023900850529192590335616006777861265091143678460803585203556657737994731020873934372915626734918540293756662274745601964760798937901006758512141023626365415423641877141301823826764834945729353377579274556054425610772329586875008506489793143095046653877373203097105526600708333374227103604565830223026879517451499787792512159724776387022854885013932921681738754317267016814033487518180986357526295625250491374879643167675461248939101885317887592648089487964920766206888502130868965476968202993617236036809738133667593582123198333730342128858273546803453022388417184411161480486937475821796858351708164977054782639217321328260916047548761590608975838040652430853078965864609847859147160787222250876088009524824737797205309663156779940705565416948697985422138057984169637180741831891147656347818761476445488319731099685417785878648419354998858930092949791831589226618590466778606709000929622760592462548321811234577875370636772880973402076800918614129296171030446600660554650551229008834577868700621175555685624303494624429608260672468367806508036186112828766998109925845201295343709080605537845711062248804258897304561108591073942619677239221568748781163028696892083508535211580471363342446016300235240928378576716496745427720594496811349614997576920919641774294820383999592138247330510346546332234271397925844096346354473103750564971372069567531149720872288425740122447790546504999786336303831677756590861786616569690590424578276443025926971143048139144865251955194174076866493090555331792810709938104724214248940455917022897137885539612460331633994744719757047661520978078739821561617698317959964560887696619467695036629541934462877507390526112473605647239275969600267627098392420968777700678093967957538714455565621312095639116731638920922660105986959074856659293275823863896350620182212316187277476602138025663467193706531416629145650444595622588532384249583969363648017369053731962348923514755692469812212419410315092812631084782438956026011503034366548285804684642070376108232594522672173202404551210037133716648398307472826320794521173828619389385980931681403331952029893526558408340895112359842835740997901541547121457562683604345731621131639176298900247266676192479361481424436639219450644484294816757490687258517648917782776752067576318937843922761586498329854382408279288026025575383582426167747950513514770770578112940362288731915656018053308970461296760493454886090943249335766615587039969264219509008336520757597307841725646976984375598875967284049938826029412031907502088116340451281094618477148514054769800668421766280324202727909532610456687677152113560852847584616076096774808148494262087711818285201797044204787601356770084586358081286079946937733062477953109759446870417576563711376466012382025372256734413073326122929537363354531559030944358413256174315724981714338848366231191223678744879768877536968434004696482785136830454912501503935172317151850174785051067024145157940355289804575413796025897445789886338656228049557650925227336328436949458023474048981933553621594292406804471813284666410059068210879272863995178152007606381135535966081895511723997822259012438662780475139907030026060675585410809838425144274771505732433920519914877145600354182937581935085498811455517975582519881633770025750316361146041549804981922794232687090008553555347746524031989105714296112072917049375495527677258262867186244980603008741023059205962830085800791406344751406471584726623222011209284435261439577542450310196227545209047646415959606969351494226568078667024136697323859598994825074777426404942904858826480651134847258031046483626821898422239057522582774373282674096862118788970817743887227891031075033735961735116078482816222928842430293071034331690354944699129832958989733604880596765954409809437949805608857516916302081544140615109992833391622158796792074063105360815125109491050184248713652050411448690132940523957705710931675188276715893653201070677992723441674722820269155157965449444655025372399062809922443517292310449043886444733671705515500644710568335833156258937101452925339203351471955633121394034446175134414916018931299594422538167793447900688632119516687373714036593120060527893883943936756512082265210687586576771769344287206166558296464178720066465407188936523161342471881653209146321373172415339369607756083182747407105098512282475178215002684499812904581821139540540450455112350454025288505561775053992678768777326594099791558700217324924859159755444713037630844543350467213947587898699666200168393758675660732801163967378660958156450651511751139283237407085972790887542341170529436020756125701510643719127297252694177452532369197793526692732121390914100241015830394647803812899812570792600492104301748790423906912270782550781405401847017511460604199336337494624619655732458388361507293493377487646815125794293183973638533520684656064981024606094031061520544520238593446341609366045872768204691446004514523736160664084279590575622489761216580280889424808697796825530369530043536770983074238101191800803111697223135588450158496882378601532573296721373535893292728483306889781940941765808016153347422994157102031584727105878356149349065779409140370131695203954880870597362290799131587532590478271619770511797625728846623069403289335733710420709001215897790536339255503161261698123911686034496963844875170919663116415360056564385555086036228731378924338481333074427737129263410708276432498678402858973946518045317353338439175406985886832955551557002723395592829127474485732392315123943917878976501686603043776656231138533279304062710550864867729430659855078362310131767094974234872426731488841172438091836776821376283132192309485882346082740355762748424285755315686485134882915311721068520840371946645511094631563723325499296206387436072851163367287528180971959284567284284968811813573721553848518788440020143248239951898280025380684314592201883523610023398758491151124251123680821798251534774387702846109127830393690063813410200948380149138462148326177423280056074716200760308507327244296376585331548682267615059268058658009360499651657940089093419042562448103798189690959679714615042958306973946129579279519720379316922172144551073550407547974710972986708977260647741492090865202726144189546512896567112958958062424865445354369900647894169858238918010686793876107077853947129307653264139282752523342560916042093682840242630439982768589548991653311160139178275597476768220776806888649059585025543249915435648215798209822530639911313929588553674004387636381637477187734392395690831813782380495373894111236266765733796579497712118120174104199223473582587984286433344988099223948931286152954846994416219845734408969354116537070133979032996098652436269571796719054562398374167012163306671271564356591832350093976089204845904364521351632798940403171538876052947519512060164191110191730314436724580351453610134062480556065342464613153711144326269836815449674057984521854762590307063280305581896586153141231841554600396862332840133455963471118282226851484584780057481860022930067787454941085927894397743435972005738663694435724692735481497630380458526898718101350643960221584638865550988029294955794185969714487432973504607358033211539743791491378171554845818894016164041095590930321959196299090594709070749932626412508747380228356771107604074748856385519789585904908429490682793897643568935598493623117180425285747491395164730785024620763851681280253318141740395552549479133626896121993955645087663858687048936281864586276436757464960789349037347343549831081593561491320884373750930077932595494717451452201836752217960528440328311609916727523946447705754531276067453556585956561657944540565041062021311433598993166486487630559290061666900609564204795865810404695376473855446194462097547837145070766214151154563245066719361032528183764539259081529637050876180320374792145974866016158427896352706641608564160230966665381161851359823804047155646734745266878776963559801173282124645135583187507321768922378178262584376497451361470411853969704102734240518162432714603946017618378273000236679892376813766916000089621310363625086868409528190904429240854750648242284763076501503005347839522666877397925673522619682139557023938790934895077261031124210284030932290588783974539310699703554968287136660491721343920583151596584480986356074088256822211881398489351109953662070131561772188872030717031564957918566951703787242198160832660673421918531107127116764627605876315615088694706576619359348278860329503593704892119878640746199644279968103433246816014077542096639878197402637202311225803632502472680931052318129496710886628428915557881454772000020950004368598518268089801111092341528768498060595933365894647881972686513163067839016905827780667583970979451527639201974152316871773364878135230466037450478730722463412194890452764902780256365337530868437357078863918465508317305722822379454870359461367090054954978276373959030007463818922984396345056897346233729222623426979943012802367869248922305817576347063591286164141469981261941032589776061363561910859096558365611129931206193633002086133208474716296812860692824380816038783971746067660845522922242155647469436061802691218077181172246775241159297768857510554137035350312927916514430386488270367150204795233139283668414861545897166725155959675242610062305458342379428265724987852914860870266592586863161209577232721826515458383121085486350007644230633453972330595965404388194590094921317213784354432974240200775356001453074977614175160636815931318736717565218318508277964822259036998884697422888782406609498160632231939474602321116520480997419609902714242038808791388420906599212288272517676131597884551429101831391522111130445450768068444127696042992730408797184356986965936875588538492279805886793335574628278506439927174294610264841937719801108118907071099233319785248937492346094072818136920297640080478304755648286659125148050789747913357516907870183762860189168632312497422777251099198685220936171003011747929270473511156909743302676304595966435140760731925654904642579492251377888379702055669319011812969162436122191240128189725747528647653712537157455138849320854677009874550797333772029272247267812808952552239075308507680882584558697042773535989544281079311938865898316562218902354034599196438919800370731083003705249772747439730957514739001216589685436737785142303350250021381043213878089842667483123451861664153818020262919884272954252296333123051303473703200682200584858428028879115172050178683935746249086247173118661927036134154957949197227756290596485209094091955697284176275723345199165127885170207680553504340148107179189317536649681252506946523297774454055367265713927497872305450823075596857747665428445586645928218349447791425738697633726725714263257259609707686240449455422326267295694579840914617993762929349349370301085325298964173252171331827487128611966851620310675722134537249449627290761551102206430589093162946164608244708296255542737252601271389285046744163389684889267033393506318836272591011562045739616525552111454291353679717990268801635460078797458082603912789862742489261159209115597518613873958202061193383720375699895879032047679969748162032805560299477644803395495825495993275076142779191746708612025280145168223199243611821625346471230010132421869090047085833488488104426938142144673913423593648909169562462500923900184533698926779214461543658101202230831716287940341648713265051358124747681072122230975778254916467586652294994699390571611705260412238751519006130986134632140342200591757525829565485666557605705580665797502804080716560297933164620715485846384321958148960425561813582471084166445590087485017890017038040350811680148959811385069196946682049050115824645539151683472635214215921456511304810820116014249716029406325863872256883837591012689685903814091871308970835423064034289848902482982128113368064645682288524367493992489230818705271907223899511055577423864869644913888088324269855077564493194934108893150232971279451781695047392504467974128579309915709648486144971656857905152483527495406440955993809438012838908820427537041828194305762505104434713331366634210423189506304994603602148141926849740636208899658307847251250618895176367286561373464664827691075084738096040745185460272381613994520412129660472037405147638651698584608401027131164537459826355638099767789572414651548016505288257773983940492543182580184781057712717491126249737850896470286194077811225728750679954795759824886965761303401667282137744001928637101613238054623182421042273097167753790698858486698784416739924530189189966742399794699326860805869266089755882618944380023453593659872015315938478614009966837636956253190682436787050499826183641397320026348084732594896581274986926667887108201861513698202517832187414083930409647321482896493112449687976789219972948435229926731258314614533494335060999178106060780639147818240775780457030534961168556348433454226787762219297653916991646097974971578878404424247507378430277127908095908748828150017387822459043298959433517121058588630779539833886550480381958439002148738682550661166941729487716514650878394537295263669383003444549321998016376507252847652507704396534165662698073813973868042602337616443888450304786800695117693444431454232439250004624784725653910403197682965523432493108844539849472573355905116087701397384873304302612821157723202959123199826691331161041502849004498265708918477538413363491884483426210802950501441516171483190137598708603509408375487074604802051867787457002596057159205137366126483589507278860380361772907525708718335401233549971096048704675760218793919140901745858100282245201646245139126326154254225293901157784620885716656632289895175987271497328007171185685454100307460338779110314911185031656017142320112147216202966916612641712981615635489614357370859834480367001924503766179855733496913612730799816672542276144514547334493818494272036622285087317761871125243450818573077906696997241545430408331243824135992578309334137223448144810374598958387096745417152092099611205712944109358806775648065838162184511633936426321311070285050263485752988181895763945365097246553976006570028871645198204863098304452342976119822834696340969516709496395131685858172021354325349660921662345749934367539934843148806382217380193478906662966752156337414782143435707175186246440047601678293859389663832935918245208673101866061440331317141464593780477021257810546097663740356700413212179194307185159411491719927117444253461983943490182681347159243807321329211206517590786817003847390556405983256670492422437140804813373517653581885192969645628711605623422791444606928995119350729880324209391026147479426959422890284115598066261910085899192485411224888386100774561610764330587959454472097952412496325160567609022043589051496271146078952301847937126007857632201112383079940806839987765817712704801065233047900541720745784785023591722144821035295992727645140208159828057797233414992289602842538378051691533834818189304821960295992264403259894391232812410580113157574343691660831049148044819936304082854025698019893371024987575147388452348695701171195436049755136630888173267307164553718375843544366246099657599973152930966790171733850141971723589687203550112820191118644801511369618833239092330241214630153802036867431920808234074783775109543678660605391750089827100242360522249847435215137527584653824864434247309757520138577769372496259903502458320609144961606337948521885137255098336225787075700492549139790889927391313893242806947015545447987159341525948295731476188934606770615245453497142817442088720517625485941981513342964500151640225995946232093005552054082775056662849867519876272293504299201455483688614716170099538381723010248104666461795344874056763890283569593244060435635185780159069151372129944186285731360646795839305366005110440151155714473893920644842914097639222163892212958261456073251396829733733727894954627454660199936709642751948255066581162541410259917234531160865081024141808082400275139795301052817321387750612943193064652317470480601114455809051846023230152470029236362103379067330271239033500870171261151999465159086907579426660424454050172888425678601599032447775869675504786912791617651973696686086762383059088512654350462509636744475184207481743918688877560413753041046843883094330662901991674176270832267993390768772011393907991630401701128843926431753383791884669129142292158992639193760949871996632279802027172819228655677320935778956986753710005990165702671248711368747128723670859511698567625401049175596474672354951419724614339116659489988804805543764673863942448597869616509938335411382064072758414038663106782111078186302176967832865869705887290927187755970496939374457821373294223419417107724936926785773125261973325786600199177141970634112454460323358991939069437306256752827866744500945396616458070812172280740621801240884506291401650588222133110811622431039710766415540070178373190035614463099104582120686299737392136496331121437460804790912975728110170043864157828051424825432897733703900434288275346862132106198096092509244540755697866348578575605827557567029126261277981086662853965937039957461166747596987363762719326445106328444641653135883579347306256160266456837772613207801606076848331896430827088572690043456942437717057865525709838963590114279776945688432983134618149318183225129744914825440587670455841636686899492196700212470496304414103516516937951178616737817678839296979640634160409540404760180986033228734883949134191214352288291227258761029536671843283245300903752787976950372438420822794253262143013326352673323538626632084491202012719015639867822375820242695199477312500790831662451869390910827250533471306703217373506299004006534769099264202779074693959136044513177077517168760660888672938162205812590948161104351216077598317163771982788295702722269083518745704340670857093225975474328493630593882813289408369235308205927959080944567831741794496473005217249874518568464837507657381204913385328573890749719823459522846874352827870903367552580643292390491321222852148509012924441596538459420401528546622934758198057351524009611990359009754185408241080540598438785431032259949124232134282423981467972829884601989098105246439508428907031374182618104053170514296413951704346130596841996243971966544664775786138797569820569173260761693331216682394411444776774551642880772515334790104593794554089381445359620391250222388896813033636479493395022967311432802878129031560814975936105004020490293684305209047617026060948550907436642964908652681917394074341901107497715937376504356149141398039260082004162827958342096984819220097715978141954983044868784637810103786220075635108736754996277949020591323186235880112214228841732652948362527220862837810146671770090224794865607888171283061433045212784159491470976001200093819800639012707580865485888129020526179573534886164176189520202990262365156842675976427901794793728464114660947663148610656859538129777057986777217649454241217668654585476159524957740158214073040513944526350373185812689508124694164923065572315020850045274943563172776359031461340625994869229251466794167563087168217813890340665707888300143163187352209176848890552668280118136099526272088695270511482534420310094173179779667494769477391820754827990637852456692626443358113274795555842392006684437310581058041999490421426646735450562619075617394773007445963433867675151352579629844543554214082707078298016953607566143397648261071563078372322956522481545632593532303184865498743294741583953537340057744452287426539800803456145379810265015371142516986982789753343300455230969526024900354621263503622335997317750448632955873124642650303733281694021683236039027780781070707148714830229731720947354621035429461230180125460035670839748072642316972043080351744142625420649861292215785642766913952793737474710044918418778278318663267223453556691753630638922040209917766962854729371993034301908141096847258349742099799682027389367090588858049502040484150229251595791495143577611350282724549660586120514109851293565778770184743219779713670561625854818009639461191891780538041456020094231820381774290051025792582225305059777507223475746242588832040139098273127659470263862001154357024989819031169676904953710513676570441799263531943716746195685424104982586849517491003665232729682263007987808441803785714816035814616139961626966123318027641903085979970018993430010798311458605990012713986946932639494150325500791151461076819670656771847015738322481737041939006726479420578580028737118151545743649854721127703418641842187693507710212903386790319607259693519800449739601024909226693080274996752208888732301799298185911111871202168420361226950231910443906549845072057086596279614040528351697281480147460122384254756428775815308227629511464380448735769947829973236999968099079323182473351661171893031987724635626101829659383053463871607554813659008100131452205557688891778139746380729152387888086543471086898938751801811110909671350373982193371351015598123655422993355674657779130912525375147033146429196271070497370870392751725748872568868845970561985352077795282310549186678835693222058296428106609064767203276786087165897782766538601272010403158902348482357211475516535668277672329546860134418321544212656072954264086780575508319787543427350528744241625231687912155146666509689829353572033381801638562646716292352759373178486317391199450409949216059928589879496846082894711284510264037327150188994706549169252397556467386267716531413950067323661746707331374397740432361112471295655687575140992039633286018238357048596375504531763275699045729430573124754133985275149771520678738706000920789150408770095633618000089008988469893019338603208366583616788384468994114229101953814947407136454969222063316395772619445541594722042022579629010965214579996503472148873553450986819930576127131971633453640446215215206620415351476881893362970718298681751454242591925366317854383268612969201918296102036962244069107293573194537024154172453142290929836573295395808815650472619483754616267549378387893407048665100366710407855385930040154617236196686521406223362443740269368677490302498437990344887135915115329674566441975197471703043882481533592613579244710264060269376727527690938552975487602866617325126502190615626743177050328863110645714479541042705765759211892833492166506483450185994222709166097963761196335698329253849615629159390752398850875101129217345709546482653123090029188912313401065651418028629565936580409050897316496476336156538211423244994648663019675315983688812684817591896308340626099450285759679666140452259673668589807498442846098518748278779100775777646614528281598787751773517974585079563329604488420345180545026941677518542380113012292842552212269243601540727951366208104081127103207353852224260706880019382911153253523793630534321499994854104529242021830344282290588717063287494200012047770332857601909792201502475170064642386098739123728039338274023852397640438769508747660906078555546098092827110807500644713761504909028942800969246182740147195908391368106382681264930529246968143864961158839841471132421527669327625803882611303042834243308699752802216868331408385761532845876958172108135497853503569623298025196960693623640666324450698249222848115558299263520480459174589215877284192410476537451362960634022938264056063449567789197517293068493517496912672146672440798279481043634718107735214903791490135248618940432565514405031453401645016771706119303305139582704440894086625452673169317036959467844740174375016809929061072147208908065843100541241783156772000516122107283125704355378300550289726904661782055642313616223653730388988183067617219285176610021208319839123163470734262285768284811838630685407293271875592375310788463247260014478491358467941751289738663703849463186078463954385212631088225052277284094987809587540990357726227229621514945984294311127666601852519956814437161344060596861685778397880461048553844680096756055777932170047259180941995805511287276802032797523862301939382727844990183842421054865573448631112610785926347532922358160613203350958321389024370551496334164666064310922960778862482308486581146401125303017469922189847454790824802153572248107596908628992664801086745614345974003846154527577599067268668938848473954101432231427377957152213363409505364877563929721949623971875269848197553069991124021777341148767359510533275245473321289503978269062278005213087843092508385760826084377992100533256421166377923958801434662684879240596774034682126695058335596478463563064600380823536599937508472201712163487922676211999875968849162311788433219824515774938886066729667658228441265688720707373381589194588862739721341885404651257283919245355288380250067503879821852110899775440204371132334926609647147781484078457268397122697428647888372392973154192344326075908100748229092878098074671115135072087769738588284382925784598173446352115519939663362910227996157509877009747824846438385311657765801449350600278738113361899373233614015391526331404390662463084942545764091056111139572380428499029604996146974427260629579833527292450219064076102905714380677382487845193782320951233867338739275669332585959496293586857124928822710914760336679187111228085794934182404719652095203516419945914174271906308783207573661053836854017421871184915348822670815329315535001320032470670766178112937785921234620032557789035466627136137006789064528145558958981937307608287263470778433077374506609196558140417945530309420518982162826788491846177301335108134116267721671365428593887414454163936720412449534607620103561887124822342335619545794796761510151216489417073389322688307603208798942995309273354515384413417852103810712484647246071988340951605474433105222672525734384300081838091912275205229023127183261883780770029490824455258592267708504371654653802438685462024779890899786065194691329129977212207976543304025708426033083594222276753790212991454594699449895825334620625781589529650750450129882184638114964536995659176425096835262978959645126143493055738381013553932457860397282811144415626241896822736987288036945295908300564270230405768394582068124461245896107428018986925728452458653531967551587755245146655759565998837500062489949597462140785488753995935184583190668139020215602107675186735108852769832696459240649014404526106892182943686574689344571973410920801316346042905222571154771462241726920293911577273275243898391589975605391413193965504986429872279119278401488950635363923644745575887411875812808139485123598388291268750550649462681571575533934155035814886818088601465017174119851485607424169765157217581899260905571476591141916828496795339022819192973480436287710249239251677577916392550096173832895746172784432061784364646584667862360941091990445254865167254298448900293626718829429168754467123962400948128149283851555612244788010637957617904109712472874228336804627753898728397573526537961292346718577846494061997667117964163737770718790432589506865768680323025272635724608234634251884830065883095147384206125824136909326795088113756903352419201453427828683446667935677200140336487666372960580666619625257926656441186220239094944715259118666992702911987157383159782903642851159280190093803566456457376451067730612276432020400845357016428627184319548481499672717384158334106248913671658875532092777822862133488423946286035911939056489755064155218177424663325818966665323665150578456147996278500400321830800470910387178764878007564886646111721120899509177491805252976053558854753246704057909703788638304875460176535511884878114414281968391396385192803592519841131220374434846765144592754359758789388371079964080029175658667710107057880874030494458916241660064854841951481883570820860633466808714563429455984542778720545408010616306557091889461583147069548264784283110439519099147981348105605773727659230158226568308307300382419881192264631762833544463147375494779971528115972320915618921698428871630689160802245270862042292934094350950970100473496930310475256106917317795641095218858448442819761910010895696197334158576721319572191334910222441656152385041257802957998054467913558947404031035285180919399282078113565809294862749493751343986955942717907496579795525056266093671353564922171289183098626675982667621867611486795238481250524981259144172365429897516794075683953467736904417657705209683671867232418106764822604742391560174999012497770805682384133215576707509916549872724544830783830776109590015651228523671290607282622007010800322866493622296043157921418354458874169921476625586240449522970184487476179146560318052209648433334797837959775019645625072282601596455681878164502137295287073188400842955276296813136679295654244631257058616146394748845091323760701030374637412809640765278761915295941473173638861175927410213202376362280877728709662322013761825418969076919605729223200385802703831717684219228920319863021388904623417526324306999970056751623051951778096831338380072773995839542302902355173574993855396706332118165767723502812942457282591829629752570977590152017366906369707182320827007926355024363436820075453141938684631492354604484479006448132989104515331719436426288693029823666971304023877133185508183927290862269510660952941706613616656119847232999466554917808573261534239728172992235091063979394945090344273500605946038699657281600563600168171072258084372852947300523261438485710580101943932801209204154508352300029287189538442554477373776115077633366328529254724334864871320093933588149548890627974941180697775129159738829238046064742105542773906788578821162666472946043834059749857768908865527432638024798774280525842882326504725689405870482832278564782376974076242970420777473968427824426611815537913652009788712687527002107893395857712580204248379353974279423794387681024404805628055899816756457582812052584899060877375737534571929689970597207581340724469744156065494676163916643923774658189293814786583546313970346003142182016424260682040858632258573800504546772067943894856347963663586735007667305949145172866873252103623367465646697348333466698948610542665215674370927360435805084935236942348765501606890542275947379121640440995224109433789716680293785371795232650442062585908044798513212463613292633253306594016848643309216764711189206289586658452842747819737207321592176953941120246367720125474626922087788449278315017820170943293590862650540081316529198306926944188143880426976209911837015032545130388953970373592103743617548414513283830394791664087735896472764207819337553970273440583517327715637863499800000727765117479014923604543447132785053674155401886115667753641887632837879215206767841649280290757374767045948205558859484614526269000269729350693788548871525305414491025726925561748248537094872146860206601171018448968226476460364472952454161844488383199465560591416314865833975422722896926276285208736335452360494000862448048071297613573648331576323033096554128578070997945474368613334888846902558298450267075379827525412842330935043728696859610674311123053196584859819593980874103680794550957675590346694771218576135336505940427474744689095493187802472739168291533153941327616375696890644171605655502994435151187549932802155175878232522143974533335236147110022210072360120789739852865839352351663681097819873712955729657512716101695658180650749541045179691559699865883902405070808749524689285778701393329835968233746128655055009495543519541296283665890104369632643350710741733938585860096864381223755676457090542940067819183058149629137026835353407669870748534744154220945233837508144782661965670608014699265150991485463748036486762774333811217135887767379362823062362905150980049314305906599397206197617386707780757249523080028808526181342937433211037889047658481169197037405821074452740035437365500841947832995347956102347882724091161850517498331033713883113822551327727231834953657621590930178749633193827208606915372025703179177647327835153100806705253398235001806302958087784752127792107656507385499061080708824677751952360184504151638134778850451382292467780963741413374150906198528525885147663508438096225439993861784729343978586874407080990286582274132202086172550541205432895977975194793224270989455060266987072236536907893475054504892230889016099279037966062146822453328555888354021672739054884410781828474032636695058012572759601341606498032498026805442160149235286253624596656427847083832731380311843536443594581422803836254441899079224965957121094021476365280632514333380353885988971180682046530759888581242305120646879347352675875521250419217076626452514775954644096673220053052346561899803709858944233038764672477612259637966520922762398849828909513347762152873418030969196421815166582522499284104512859544644198243315754694137351422514019417738998165884208064913438825127866648408044025981636262672325725501715420461073967756020683073124936260124308830292634722070341856928412906559025371121903927482295361606444744868364502118194672111178635794269302388691663751148240365115900076144472311990595711973840128979683731520003889821331770046988194316151372749441216772548854406798857260875742916778749298497776159621953075781136173531075720026124845256634696662031439997116756905825826505650309383111952542254801583146818675449094415556372450620712753837635727196120521586073244220620011539346575404592164105647829933988857917189616103876979569874386317145457635397117103608452783388788602713158150584120727492567557599845059662980925166028159542681107821499319973799683387617487749099570197097375626918198804181774240906165042401008307729850805731653539657241972530114093569169013776239570692287065949880235630936064226136396494007162784411865702712772002001867914877626530535269701451130055488381916521030472188437819654947286182087972815165649090105881897873576464589141680318842760377154654087013468206594802430828914537351911134022416123022648224367898531585354691420478298116294382761426655656426363852335274838928662226731541827961594543621566103452672324963888525616903957852847326526632692408148078429367534450991108017172368613466293614954191125707918879688399797311456099572288910353086041772547832949208198348742898959005623143726201915187658934064311175912848913638405946084694012800565904971795447680727887947605828876607511273179097799064108482851739145300271467949869719981234165504771793987669981225996982914581953396476213974567688380920151452739742048298988961955580028938432665517762792982288189475870980482107646452150028673907172803832896053360723830456109169345114540105006142513234378303320914695809353652932692969205193939017867934883145096132360147082317111773184795825110687852151146985911626790209977459537872634046284753214270050569104837177227533373959451652101454610444544773639883120880719987041371229230927677717976903234477019279189587063947136554683446424993491922245898326044605325164540266861876717139177227755906041024273674469449565711537783886454733790652102859208585434044328191479966003642924044080964259376905048599469892090436235319649353531868283735124270853570727058407874344518709760809779711550761265457885146310866668614993423020669189895902774983244940646054634607862799080711992283364979735848518381510307952663252810084290477556671878608233914384202385998580902792835788248578897393852202673743841804482094619748057200398317692485983416308013397649005948223197270868742574289067020919262573465024029363030002439134272420842738637691627395293812178938836722371938426564914576504351986552083169950260927682928401797811603579472121372160065222809051323751707046554415365100746961372582684419420007673104795762136881082509207699724756613934518139094465417971178361216862599062679262050314516020016727402408907206709312873476941488411287364207672246886879692750368745806917838275815382370398904741124598737993958756392242912580248977658853567250304824225951398755586595684451773570162007687367998432104908138872201720021071676013917946358386893091478015462599653247733672200613738291384801203551997755812952835097691404518735858546118854998738880101825304643271616914881409706082483171483185019271913760092101905284852761767780485661935030021058705287421344900681213807542525058233911790207869482232151898165783842837372922612334143116060559556742426677045167452602821429755876761274461371921811127904697943808374602184033643647741853071863724159608979013787204793483788562414118184164000059129398121570099297628829221786917609818996580486544619300658973934801130709419011238175946284019436639357123756082047986128181563716009740304102625676593497653181176670202553399679955598169972689434731859774757974073899285459518145908288929068797340507150992314785771395297645114057550468754540447162243581351515659925667887294700394544317350673589502125565253287574256255380607596935442932654542481897402795192925061402867125547270871213450601927885179868991342724605138527441236442805397543839774939828966984514001848270739483781082239338192659442186704574741799066069668086965847375377412759691680135941961429224420077156908602853711614472692798117543492075347640948703771329726062057082809466317080289413406109630513708547579097723659888885937244069420192202803282280612402803971302242809449935021886110530118770870660384160140116644873256508963030687200141924693664577310625581314649619176022476039129482034899796572375132253610165565517769638577719453127120226574317116380766900530339631529877375447799835484863516271783376295412195964443311411061875788044210377092116397212010308024622747034027070872948313072341228712551687512337676435253887591027643256542762070008449083898726515256703931065609635915421703772969791207896977907656007288624586634312890362422544417331734907732490939215119622715810660346845791163219641519700053155577965959596000725431771771233316261766971324070727209661469847114489663856625458906200970783341182877865485255316134700278959032631768964419854061686306725364557963298613199656865622544799144490641575208032940055823342962816590852313306885846815753217945510049127204449894243837781497613204324750633513563353607356058755744501027452551729628795522290474954224033525734925560927016908183845136984315964842802885910556950176494467303997484467612813121135403942873668233999458634324586405244611271846789057740221756974053059688375003265983072312742290223998187828497947661072506467968797561577076045372556045322869346250391131395975019343732419860987861687433641804224911127952561882226839469803940505439610074503659943366841275100696807606681207849770093458388781120714637246142372442167355857635283953057907591519427132104317505381981233561798795612462531926988974485849903311304800800809987470610975299600238335216348639116629238853731688578402052141851092160315800679671262838231008810280532517477617050169327522554950477307809410043934595432092919504453903640006756671275489056705728988070755280805030340062961286912315598668997542091064031277672434023326934735465797857606809175790458608063674994744283428905461003418856097117012948999332341162157824892586544858509472862690030380884154866032419921432945881594300231214383768640519013938270086593469717017461728999127400714259554437629770795079208326029136836607090081054693888819138826959930284566964786674574045202995888763155489357247644924745555523608049895005951830201391051315397680547994565211370587013895770977328885732139114866536740207682173412510152832906045070052956237836550836840124297756134569676346876859703570508093817965143308927757264116063753740699820287485906945187742144712447461311803893150620762186026465703889574116699288226932838977426647124741631298027955682272129653141224752145275831024798239895957326682088955638275066485952953952247480968914035900406652542729200292713451338720146355894512442507979000227243213948123950124911837751874059335799712749795669013419352865105404556426844669723573367964947305472290988659085566011988326901764451598339715440698279957482448995534355211793723435408809703571077560769326653220881627497503508561195554208086745597719615070556342016191852730233058867499681740729224340902281623805180779824845593873005221809668824472348260841793125045197684619411966622133746358845023736464245070720751861347536143067376265945357960598606637426591206863164399941731030127624627335358292962392857241433912444139776305270922145398206927379440379250471739546139092612702812096610606516221724538504531501022255192628982585262438255325556018922244966684597177737564572657943988656255783229665249676824912251530886826838471805011609062233924828663562522892659876258788640958762581713751644155518170655671707137040066909441168852268303094778241166331057874896964267400220952726499387780877474373599663428235232322323587040613089833428501711611336019093184433460312659316917867270317793601860244946331346353010319998412580969528582257732701710907033316029570310076455532095274715556226988259348983473339227470850020551776616560197324802893230332947504310923836666321933431551676814472719713226951858666887930910133601753850892342427131624438625705870050326475245522289575680055187832912426642182277008334281648553571968122271190503025717853631570323795480137664566895950577050344014373192149586514534526641588774527514308151649728594492438551219551007125766633760624522829893730552906282309065772812140421497013652301822659475821370773198237805226958789475686782724853436609056433614682046559208130249186310169201716503919377915207746631767686684364668839998266656211392487666364097937132585997377119772509709689414697337506746262353620570597168650850027631017812224352213450954993486000487244873483036388780760594762460623776936668207259506757054990964548598007082653614143452939885278754749958676686557904581633785483982025922126663587375651901541207017073842872636590334026705131256162093449369824427562163883188676183376311672893448114539871656890643665282678563783904704541880471040508876571278664890949424231624824071483656684107804500290067399453101574476009288207049826981405505792128002152937389913664261764478773216882064992185845706139202482285838484504360413051597364026658276143865755935298254353316051989562887639671961556156032848437685807265275217399164798810104022175063491210580175085537168330052989265065388540345293770836295612910718586099873788044020381060971239113646589931179757365971814857108806175374426663138604004041870145009727055371778440087444220727666043117490687642395253344635594131142047480520041445483058648929539237343022828713971109698465796742480510921482590891498704308948700242989857903332222466513117683196097882785161256788835966791565071963833397251629723742746631509612256986629739642773737239145036618406739871412866674182172938403785160102267373735060463190139712514631376328595572966023872685402391792373366748836576065465153186516772487833926789549703073294577225840883361585585695088831070369282314932031459302573102783198524128459366109955099723521314455883373686190797273108672880081885082839711668525311640573871153536818666599467444332232079908672127155242328808469123018566758601353567421535612638253820096679958810010131076524395295255657429050984731875855136664309768760624420607893800726020890926551079942978699922502670669432343718890760097777303726452836004749360785758984136727272740616521077179429372320307244082453379713928786982987324925687652898452475897161747167966262852730940389093376373614386910528741017480374578768689348819018932343048694418337187460742134590253873015895830025495199939261154655916170313678075536685529785943862857080919277397095381876911319788166104854318601253856359099314174699053176860269672062044190123806740957938965029002804591460945833228932083934861479054395691687083811242980360234223225865593091749741096787253056348051889771720795531355932912932871617110483089513662975566214258532685645124453544613860372068527246132500778425676542853730432593157927901968308572706977410345840386218703272649686785410793909532768434011355984966224609723667706995626996890043107631807739705918416497901262000926626718139213029878722375890042307317931559435812781443318676086307097893202840014349375543260753407422490107377075681241596479993781540436995778683178387301541676572748481187033103834094599345182424280684709846351182085820906496018686139759389437241214727916519114308096534646851819092698981109577110714971390475620317553032595101508291992256459667889025067713639006609180976235445073719943469044782681259167222600968046966967314002545489417474964912533507174562763063073882529377196711913335736555597082677631313635162717072090494521389728326355208889927979835473137690868968433646391020836049833926533707310200328166212841304539204211893872855969866493418636951733018086246374847604638618019397253797867203320193961847993748305035461797776538843509117396075185557198021827275142597145157985227061472174562535951518723866989084953970464323321290679193363269616706017102403584057904972091633886560708474972294080665382849525276908002810134504176525992572225105799824163171815214351671130105558687342033125567078439618325785902746728437518182457152377965882556579788039987615979357412219807178825107377733516485296678654384835045805018983488591998253103718943653710583624751923763236738249862583997811937582145728832385697019526920597569133257905834582075176254010040025792441487365403564829498817991445364111542008075267846039408146770976094094060321923661721244159913781002061578584959183968603940382873815035576072835878757069290469496341513824136624814958670400289888341464659446772421417511869819338038595774050277706481317553254259225682759816853106364480619324832198370057053729429829656067763646955659978165957855095175681559868518059964425856581519058791870173463229001975386064432762522754126372268209395458304896069024235738384233240629008249594685242669741298507052289103691404981205691035163050220981647402113330494914291653281117876255971637427523667185183618105872116571452446169965014557531236048830451181979805773107078320759426577428670720102041389344433224249250538173426868846317206001111621356589001450962578571702415447243849557433114361489271090690183279639456864690138109047245278178314458006451127221028869247225520334249309730901100549001705665848228138019197332782199848094448405969060476270625650593895195840581870850506851710067339146498741963263213323726806982688756641971199843410926110249102462320830714321201067972403462491086736132753847535697836899414787192160043682317170238836316670238885410480756880647449408721653173344500747978228785440204133735516677124339939593284114091810476012794973537050225794762949898960347776351733145985571294189502587335616685212137932005332012979951496135716216683786660974300771672517811708229215715704013380343706983112794460110684303994699684700035623321134172273709367662045369966702034880214363955865651959886053538072669038964180078334925205480939238829454087964442423402865459395893522335719100570126964651902750175752409657767187722059599455204681836426908124495549296852653187629549949678284041220846860499442137578598618961092290507423282119605680314184209437188096686723105514302310212237149961175028053539888373443546820543860552753499642094050167562070355581978254805593486392848686845224878155163316298123143068113137216793489304497659742145801461932647060559880967201321193460326115778502750989627980765421565120675536338219257252792210296244856978516881533997402016582291891300598481871591221979530694856797270900231080153713572052149774636670417490412926065327442084000384207000131684394164075262063309309526265963589219613693436905905877036416903858007365602460675887704497100414115733711265242741388829691127244438533248283590192666910345969116558189469052339532377677816904016970081932550730879055249601195099745325455122550579862496391432294776964806761061886039442841905032787856332177093749459366946184732683572642037614675617194179609234621419067907341601800192206397890662177231117892163382399789131056057231696466314115184791892571606750026610498576365792107427751369690202694569335628776276741579990750695055832548485053075786911050784585383092164969392391211382624276816311096913550265013696505752678736047256807324026562243445485449873508521943232711393495612414086598849404084039286535232745970249014610737158005024319543603789972997655469582727775913164160137085137858878411787618530407696670121778685200215287571279131411223968630434640118181765347117858391033145102178410408656228178157591975689637415215142782181360185310451099180856402346417867826941049605528770438542904381332672548511684262928520024989791527946971180508009865621195403433449724893887797080504756260211307508784765388815527838587245786375022002949803497609458532085185488380422301842377038748597277947637367572352588941342314733347058534429849325777796054735189808435328548055713448178745358112520391269909106655110672390853210906644174916865385637352740964860720499537129075535268685846223012790165824116174541723505673119070419060289630224336417707952710962000706626874547209290993434310185065057454327046358854244835238820224367134027926982907060566023214867343850819413116828065089145872680088600033048672297869616846344478976226081272625029391232061361436565267757084235986498138026940920033337522384675998594156634387591559304957104184293114507880822700928879467478714354524798293117474324217566684560658592765395017663641765212768019023527971026219119394344959693853319889058829578869794373564471836523085512025535781350064733347791713445314129088421163336446966100100399838746734722105729619662660880542420925471317521775834424083893418222482925430501354848490382685220843936438692913643759910287458034524751883862983811653254374962877297199796680155881790123967086199115942577320115977259902035817571472725377144838952073874283082072062186070274050069053496040155635594283407805628780256459225392149514986512810107258521658951331308812263626659379293935654875909370102380359311050440920602219234329007473676291751762882258063533290773908973005358449690673191140733474963592918926682006217813177169810356271037728611632440999284830871632275953352907273834526902040433657126607938613992325884942031083349124986607506775310851627962472899199634638784650039235563346007405621770750043200707068303159343432837900103121373859394083533898640527679347705491396407246876007979543195050631666317119332899518179519063436683478509403986484389189053648820103408655513341870049740405567075182357776344301395508147205740008606170045883585464938477202992512953926071142756172607938982330096504135190659258832499906500529902206337332453259808941835007562264334280831391456204973802880871631125702451380151744916319520304588782931486220263935081760966288768393192924870332007345198003164855852899015171811508581192818387139581337018484329592183318386817301960953093575345161687371363680664357473177861482578602861126877506319080499880742801190204200950113068102565476514922726096545266581110626721187025316642558389263098943143606902330040937220254288840834365013282837636166577302496816830515308317608654575616580508046761089715881421436723794796004837911202157494836449228613496826941790295984686586484044498275310289619870727609478446722271624048374389839114183598392748717723686810510319993939320236219234589105668046973855849454574581899058357762823949184198863807914071006378966231941657366268188374230017132785913837629426621804145547823461802735730443493053643880250365707244557073913500938665102908022087197037660171849091089972852574131185298002077513800654044485178901101465025017424550407074500655280095587295093778879347669705219893666868076699126693513443962901521236223565365491299838664230694962946337507854732865930488563844642144441442780418655902856817896930620059719699722194383769301843866411820530111577059799668597662399942386215134699256305313471122406087206915895759837665775016196000547130886229701726219104968519002531132710284326067431058876896659827272102700973927315752018400354443864790425689406735677597889845255292357578743802538329685437566239539717562029075978260814157658731703868130595482897484526378319493348268847541380604076225014032526189675284115846681331037290055441298863264559347062507530890276966781867698410906438452384489368184311409203918573086044889606059530286130047741632239318351035418000242059366806682010827626679886850162927966292625078895661104083599907154690271013883916061744319378088415113725562796211086280579136793083803245279605822367324587754289933227838165333918263356719639344871072736058621944825940532225420713353293804035615234781568497704259219476763096045985576257305524992242462941481626137476536980523928315892430907703706377888753603018375499801147037109824582112106730865064253317446724280492351108518120680998750582210159694960340643876308369367839990969355959827076189001128294894635381533802756461772983602264341771860052989691589010700425458855917483656953713010159507551038669501031945309022332106449138078967914303009474226426069292957475513444648569931590357857292075878835197039544857707045101755128521672160974056350573306311929779499528312539518423582223256712854512559764276831618583598523935660298978824718837376570609352240100431243296510341868265866260824538091138616922081047447972942787312749588056584658360068343383448402761384090175711078935987732758862383844804233440070724041133410866315584716806546931302603822924160007145818565950075131490853190501828262138160695034971993797642993794374285705407945036685149116500902815851138290471336734118339487440053049731293602474649157594238608595452532464624218794024369198676985087541227538563658887944337000548092061431013372466479337959720863873597529958885132796713121820556772769237816243428661452668866711387592621457558690640439016808672708513570604505757938936316024143247965730231093730776487868995383858503297979746393102038308078118821284471313660979815619503376860143339558978170046334220774154065885417388806275130547251893280573747543722895618543298508779241424920219046167048587764725254695011203085061228248034860278982377726143896954276630795560779871132032144229801072242766341303650588107856982952414625124796504084114171863577900267417763296925589617834416151109248650873351865670078175813621309872525023699637119704757000818750223401817098915923451055638662249141741932365134417750206923274869870905443243905816471701889440305905586774120966412068894986548987861657238992000190157376826713893991680774695466623422340812948692078747324165836832433461256652943063904810000945126465166029550963147268672527608220658314574969751427626323705376088730551776166154041975604956705968237077212415722732110036835807196658750799553154172825452111547741470844819428486592494352099329245049591541848377769269396701434291031624588138481784253165085787623249901897541870014788186365982912965832570581728140785247902743564677627803376519208652674758239400456353794886112351348840667713523355709410263913990483403856466875735487689026177735563975714052211749824244397556547045958882999907792618748521053315527599772286845649236762483804631724939672590877321093138534612298094758590368662775221844658904549102121218818516595757493998783441777757867150811700812570044894862724029929707624982714089438031925821840685552646349940996167253253784991103008675655265663945205886773771190331709922349431546226118005702600686955065015562428837523758608539141019917833683553801931601196999754346886394939662978236705932533787256513543358580846108747031317773334720123326308193072741428687361588446554094361205023727246063441155240476329744336039953662135865961404513738798959524979294346002602179523915155128274659278404160283892951244297289690484827070952824545080644353577095113422284948919685459007763687329528387074691029260586579560560404906939946832427744811476005068799891941384656247155142326971371558574854065402311493779228744539794439192810611623258843888008941185444336725916640715298341149271154980427889755148193645089949328640289078523123476487800421002194482100887764065662718481764567435769776378185084124623847422883048659064843487840200709909383686804614563390111595716185754829930925545492198767400713219585648786955809240683811691548637304827650542213527398681041078579942295978901736039556698114434777963461234095295355331100843853032682874172604844349730613811572498071113124367434477167634404414779599638090308810475468196716673199608384398211588513295743635734726447963994847442046811437134919161042525105279017824851317398057806002603483495183486923362720041027031567755395784879446748600587046966615065116933102088115084495912772653276296686058227352048423813046889915272255907499348297414630950695793105395519498423020680952088460030969214887158535580503636257953699766464499506177710723683715382306564577018047422518709507691657493982547044007592834880442949357297783069385813194846356348377227649483927115662543940610486488325195254290746639856391736660985713816376367722560661844689690126525779874974885113409029445956358804558910554433186537177485889842437565051016955706133950044281740313589491464146264620180032592209177479063639532340984871434063238285976076483276496836177321046360169809749554742057205263789606348462012665152289992934394099655058061298674251619408245398568779257998010342953002517520840605988310404771455999232503254312929856688039872130619185590475604243080203791690056032184255138008842083398755455128144029047122683326283598258940481870230386407335735537332093560699968940317760697974684848861571620189274670279975617740090882707347088595809947625160202217667158542147964970870584002169537090263806796684625218891513621497295269448384513156042878867920531653461030336383935498023790044629852720757557712796032556174690098388270291306179753960542408259320449900966548868108497726105268951761079832445882145808690035769145087018497333426176970065910895716725430548716664663890994905401578308827599008723640212819867160743351786512569228408408995972832820252373505605515843110634156135383654877961423983332019180831490437448706849078651367653258740931883836222060094631282828414319846401318237240822589141499569464923196381384897726529400359071541148089499151031757377587483091794147690322238716497177609580910268249822233562947984596715223508854599439897323743999084368253962608938139816893841321492533160918103564053355938212370890771975482292141623165788664452235557400508354125326805210967595595116451772459266482521400881069472457700066959343103890137519126037667393167303429695628765535878087716689717341358435599692578184167614502430873512670099034691211958895953918940581255931427779932024974420919468732135117260148825669520114076672669991464442882237904614361025272242136206212830788462119999591312398461480543070940045014068718566354543252053495266250287520945537036909747053022077688660505483348814992742933447204585369293007422784499488020172433690425034010939410602611145849993111599838330101244032366816034678882713015197274363507912445712012605895935381398357073452676276267032046548627629402839719233159983967446893245261639226252383618797615929272900323408524283867185068340672637004006177568351677368173167127146636298939362034206720191574636535660244112261682825054708205830645035797443280413521907462742762589922187970508682788344125309728922907499509883461474106431703870336013403457830563854236387185882185656945996123794586160721951373839740355141881623015481975098891954774217665180504478053532541961881410088165333802829366565649096032420258954081947676674926922336377609869443619877816413421688498574685962115345472232757823292056429902227263412163138942703184240645644444087853540293606559659964724891296239405806566068043759433441710460929087564159670746472286144904231090319622149148746576580488264752899747375032776356775877672359059893925823880805227911808245683475641699810432304909944634505028177518794810094869964383794684358643289068512067607331972458914410008472550262149055963334915522500969301800102784601010388143141113272329892751797048415250074373779628076472923911171049557160839326877575585615086518094900202705961510860107756716485479948041694132821298896115038755343013925804432118574595687208291117632926901997233411851493097273447950760412050920621887151123737616858298452768435950105968928359993982378157847732001879055698018130725962224410962129305420512093702705293614841956214191172306257199053941704090644067803341334687553543071251757782744937267506635533889576383745687289770910242390281190923790526611414454343886832851462777331383449250558671875754764202270401452045793323936340746899486748042447741588907206726290027251802821298316143307482671311835994607727293719272978135151301434568018006135220557410670246565297189554836050874671836524354007145914177315751268120005534366461030623263173365407196745854252703838147312920184175409882766878770279459746091003354661520845503324510402547726744621026372951061491487113257051727280037412284911222203613722823558510255234263630190099565451962473591781840916561185432218433209424835610847246956820714532244437366137702547246768361360547889748228106491223298361036583257426018871193857324347758245483855143817270684518555801597675182055284509496004296259506476167758143681290698332214750152291477013038678187460679323099626787183244992942023207352209488734674216992851244394086771921514398799917070623718451104828924545183213756549692985979327960651857064927647223067695482175644702739599707852778765637526296939513040207280813706358645405768254115634658956804014598626652932678011846633445056750034394895153216548840317501160449860689945598593792632072965833088336340916255082392725133069040139104965594352189493822954212501182706793855914386610506895148271782349418117939388451363504227326236810305522508001181794153422922135335232629664051201903012291215975420789106146918019488138912302280537309278594261653041272937277096873380750468240301724320098045307385470400242152602108158200909962893520810465575722279249949555292023070449150830061289723837062670627675564470208621791629004158484358297132178363177541139285697263462763727630213015337748645540495167118262987689077582323291899515317289621410864004528154177785141238526617706124365073000336397169510774992008488219997554276632384784064152338369003958480641933534338796995540255982786809138315167500303329565913962408625162790280861216804904206344928563693840625150554364550360701334669215296134995027505035965153857407619147964023445477678592377386642583428572656869940902996389324155202035821178569860665081372740235896420615121821358036545243845079950152898547285743829001473293889424792301089868390006456991685702619177129217042075500990647151627756981732187882092021953450436622003468585715021093987224596009670674411553894591286899099006793262093771756275219480927956076865013351169943001101200653229648188610490838159445271589193042300985641662647115273280661972113077522468721317570010288384569285199394348137585545819727408030290766011632641145116123824133386301115626883211407655838424695385263037546140212536158727586893244499273874467847103230828694412455662842989940754012069152943295520683276959129904908131680563780176139429095572358818550578334269865294671190527173072470395559725789049917166423379262414521649036926261697614110504695018211986763269747620658279322405736145512491550724271005445247906339860994057301382092041265243218670688450733983036356639044686119101058247713598550371199937036147198992044249931550862029604041991162135626251123806015006616020969192974773949651983536528039769710404482472420292856850282175712716090355480726144050785699852195108089574581170256966898117792553262713015442189685512478541904207435871194466634129128230215444217157792692372763805310457002897306688369867563218654398495379881483438629638572958924334877237716447771926976738920298101295873004336161942320236159985688685820783866505362958650943309841614898109867902691053218059892096631366730740653880812944926298375820398122015204168927748986472827517642272222699217606416462249504387684784776361602775309839385104611993248357572860479172119433213826599877152488677444984575212965483954813789110594121242447938523056996930569159705798240353727388721132306471349975477637111450550602747913113290154618462802415935887162492309421633622680206815232026074165155840032016579595105891244393892756946116632220101168318331568050081721808773840438232437349373159586433345176188448029073182877879665771694139055087261992762871306811507926981534202853480836990512781097146524383873829495845100181975249017006080860278793669151776841441935587104499189233928124257019653576966191278084968011002386610376679560988112121065300500408732153911808252782565977392467289134630333114836670707140186121983021777304910015996710339946319046721568724420172310041415369868185469391475762241535956508547772467067766859598306473775864556246568645092844449642901208538480265617837280769215258015931415579020135574497262285964215555545460406529352148168750335090332242823262113673198710783213932311926651375726152803575007511557961715600347932656364491626888885544923494403971313565525960780369965671460892526173271530871044883751085350448949919236503713315998235896684335819874269141633338482226187317421644016823282807538290052139852308648215021814731969350032109699220490116071260983514104747407406936032871965577729820375876950993111486043162705102336533185750219771075410898049319421407751517675939195818420436739023835673287063579970230170976095108493617815439754439451433087277752181774870208624531237804392081170427579351300823687609177423294440558994031373333760206850492419824328777743153980447666006645798391092404672416498420278259147104767637670976033086916644875355784367853794340502035580360600151328275489161362681129727577495103159352561103079216005795998841824696500008377442466149410403945109569769719397187739576565704878151298072840153796272581974267785878474242329744764915224136018796184062812591779882459959295133390433957775484198405513859399882564569632684903820339995168093209180781563101305251766740759901369526533963785585888785059247261115470641563151709331377437596260869460339269137989662957602965101123021388503049436152439383606010795507429177278863327713138967810404901681266465288302932507269781857799961664944852802427965094227318759781967072635923005171467898154122079215671634824955089645019958356587289021484588318803507881026500227563936045134439726279033445343083565395441072715797653002345308333628210602898600457589295064792378883570963126321285194638128155184200639370705455482914587833774415518433638176826215692894590350459529666980735917854514144941129216383990619397864708745875179463279556362538245808483997120672078063181452852480595391882845762420074083809857492888865401141099617020330524519851386738128590361100428469730228791989195468285562230442132095890329612576171576954632777009367248548372950181388410434190303646197964704603122848019688253363678673345514550224435811217012517628662555033011224109342941961448158286505656844614983289361658965991127058873519804003812355528232256392666820111309293397391662416315030543522672059870374681442373892948928368769663456476520192902566151011706246011836165441593037985648571239292387179748429884354815956239506034705217616187009452915381015760197490008869067858360076072166475844910959985479329516893652561465524086289785846955705927806444928187495753246879223250055502773565982928415250394747922086995313648621869370440314716492487247901433192651184373784222671441541082213041794767821099829673832916297216267824857673806087624148795440554106924121674590775306188636803396487504915047013318179888663063511318789342637763484431738906138045875217864290291824240130328208212503028194370724502708076973079874542647969434910799858057370534039442939872905793440747326037049382625915879732122850435950974205441629650052193116376544632619087191176428010395039394825024767559309194421304587684021480544065850109692453215954901343926298139605718676330736237799389507893490779326302612658228560753259508411067725178117170713415935287546024833492018328244819846544529751334733102948190445782578601314045993078272447310215416029217796698198139581194996389778686480772355587401449093575615483659561182180779933360290903828944248519608015836278354441336787153709724070037677514922311820723937254291928052956518883725154678192877468537290117142532157165763685999338606810806383628553610593029840730818408003554400931802651985035222140514222339218300552367892624403371927012775819792052195260121772314915523011255051707099637924698604653769250828252082227351600085918135055943950779004567698263734198647437526958683097569474234157132353040200432997306668602455224223955372337357766955521423830847083984771166904205292214868778305780472747209163094787708019188447300873639257356043468955565927496871223979558228448841949203420214465947103553332101916082796959100987036338202559001615320800662713770623482797552572556757865321141942729337003224898883563991875561055336275219185132051218264431294457885316785511529823113790903000012800195113258097920512598052498942130958966038030325695878496536875508407660545756456367727793373213447775555106955425180093027165316728039401187174146018318818786460041038591348346253072963489461129764940595206514506173774532583534186579001762598792418555883125566112085450388589744303921828799251163513497391866945068164504188462063800680354475597715672090584159440360587434266269952020228650829220537124664077878887623337740412244787236967064756408030862403004136804742795690579168851081474533526365448597191539012364318461616612474514257782358367139070902842428368226904979149179302438980878124654300680251381774177419956780894256337709759017134860053558768326903191759205938501129824974324174374447621359537575454392436819197488046519264412773957383386631123194374702981460521505961508236946785079096101710292008748473159300976827923675928890318450559107639523163099392324194730638585220484200954508206559554626261756611773286322122873941636812991385169827837351753388089750602588841505026569897783787692746905441402983450878821048365424310329048864181431725952526623324876512686818899046151287199065159595317102921710915747164553335068384758971414360736197230555576248532065720253845179518581313914417993172385098735648497968291741850440995290035168082827430027651164190397212187287987490553662792477662309787623804890247814194320842920293870626019115543068827198918503876744032910171426297394060169143926878099903293132673332248202776540725460218600974384463944642258355371682380734297890040709490517936206820947825607881787711865257005701795757261480515065503552185229970191142292510879471228951495960487445076280571082357285210404802622465805631361013795359799095359932304561304464467828845271586584357634336680896659041082889637239847816446751702234135823099282986047484736719187385753861437811164553943469423454916678454332523835832831618394551474034738291131075264452463264381106868995272523573097100431110010252073187161272571996842396515627474387292256486683664739307150177992632156759221126545299226289303355248841646512255895226015386567962159729204956311300095399123755739687398122460837444769111788646083684796364481686114071257921756804768234423522344629069483721073413674517105018462717300209014934100860591300023640181794615248696917413697359995865844640584924762349600230743978141996105100485297020239385929468352384438663082983092606226029373865062222877755516209531054032992816558474938242727114569074411009854882339873839664788180495040981049236178836758281121411355605736035350261699108139124849677620135840722352957921204283180513119666940511004811458567610833103591343455895409206341970946707590319358370702338007272259893091322695489181946418229455191413165394990575789504117271637554481666399545444791557073475543411848488514881699251294817265089201233690700417327570546760728307097196546419780833769340209412442655568933757934608802646036717856955517366077318343430798664450991465588571479867154996692585830954756400734443273178739063538391058900863147512123766838485499847051587308878432081986902284669770961117534607373349359129346248531049165294577102814937744954278744552940189917196973763526243952061110542086612083758348342072250414998452820369711003377008256070808913040493692733681245437582699123557347855293352744414301740918982013180468099615348421894850033995323539526843455566046490501960673032585064216788262317467147107042176006644567852801856697859710419299034966659532691347461985812565689305044799393154152105947055518697969088760234168347027432215806554619410091735195518435797026669531288391147445063584606697021719328425508367895755542224291504832188335408834767451811679488404410575442148928972256887763616233008796583278673820106249691262729622213157202393538822720894736460455149414553043790808421394651744991509005227863640195883072258709169933145527690418794148524711113087551730118646769486757807113848083548001265794685893576441804366624105748259173356847018533867610198689172103649000506049171466204785847915994889356570447783960991894927024431020076770058235308770141443971917503493354757231963194322824909754310060034024348917603714820751046287372855788800479959041865135294654880992225946995017189734484714524954188343331139952435843032991352966847426179218513359720722662383561141561047435851405651470167602949072913740316752982333419815790490910307769772076482889346899136021997742209083098214419480432519502212655787693191693085106021527009898894867199165803034448996053451416005788373089401593707456015881768218831313047468777332456259230716498599323848622297474192803848848447125277585920479653604990218409494019989086652895536186368163075535448452355063916114740394035055428942272232172442359202227658080657657214150055429227935157790491051026474324505167230533133628862257404365213455545269171259868605485605004836697985635748101945945212875986519808265754901238144849435343894237388954025463834516427678498320136934188751859005504298520951587672952031195370246568179648371689810962272896397494413622258585612008366928176320445500242798838427997413876277237295769469874094997347866125898452018536816824980569746662825548424756236393999290932426507835376295134859526933637508104926436496922888304112309265853677355790259497266929364954476688240368092438366601535173563407794159930101372681961017285994863040033725676390761239940882030227381848479652945953594946114275364127773767949000810979519269133515659817958837922690607395003854891172088621523325510191005377872072096940639078563064030294613384955278170961151068810696549163770694340663005271658237432697855687724148537680014149432310997836775561022451748464807490556277338934307676802670732050230706770205953339497613279485543849283801287329650045823041408358953139646708270971586489708972859846000012833496917740008028284678196741972379565107025425651856745093235839449496000275316685924594403382792721211452669260016962921114596153390026676922832604479382359584986194661255521117740857059130462801024395992012598082325106926659120847172166183574328081265761090581232678361504471083171436039426034654730442827771061028477740968363064148088780711840092913603253340208287627018061073392947823662267795653814206320846401101615745801868992229281752190269000193046586656571396336009820691925185979015425612237021802471329336151715254157188157081171883768932844877277339902856330188304530889344076705686645544637545171434982337457663331201160017860323676902316570102045175082227743849089918521179018623810905204221726189402804397032270075410870564644326864166748040002836165413703636727094379199254753601725581274527000085177758485189870693666129100884843034184107322240840165368664227135190294446675408354050044915366912667199051955631179006344082956184428625969034263368208321404101891199238593802683871622265694732835509504600420194907601364377031174100301980118129699743407612104661123795179237725985960250981396259220563597152963149238634466768058071638012185289909121032857658155390573323207242299576530687804047373160780037426105323129849487185821883450715883440481155195656161493296308123608242805738036444096200764469841965243032902188110207841412002948999093940409725799044159428169650023365892000432552564218918987025702312334597064342907702050833783677652223857610173022780407564037590186304437956096587726260951873292551333989524705690373140317330201924074972323226614731076404205316625290024783044156495987138641882775465489086128183286581479751984568174156148644106085086829190027202233226877299768748196435036493183765642615281926877202644119801029404043556183110486326837073487325811031620411802842049344959300952211396026838359138653546487972360376853974063754097358998533244406101452067939752998786906440202814712543452207140628170902610983655341042632476616669138096818379596505733535555725424484191146742780623683613104475144332867046951009882359420934524203196141932642916402748593503678870786747581237435678119734582400424103705358604393330708223523115818705508565524477881677178166640220875402844460714575976694526537129650702245632240947430970236980411330334915395832784629540685632292599406352301310942093175321447672686816341509467982488214990809981544593902271051523355258534580962851721225535899180456591336145535256405483837756782229690159187827750609591471307717367234821148422685435561206918027434766210921053618827609838743159923189452149085260392666725485984148888181244406778440180803260319777798921156007533528074615566209083952199769086263888237395760172668632126247270916025418246035030298901486033688903520238339254456005434975100977749062535634084701825170767207265825579257816137368878213242995993325061241041355064208312319097960457978727362828620590503859738605698131269102027164748935251356393914369417180069265115270611897542402616676699340590319249585538918462604103926221917725132165990711271621512472138314597971868143549435621592548346692729817951903244747474469240187014741884940264612865701626830953927032361701333125538789970707275808684216415762505538477334779807071158312561110520410490657794612512756949001424460002047518412560919032356406096521243254490370108157057244635521256090932201386287285259657438818614340234260214687219236812859866743941492791630623522360303182632741470468688107654681262840236625403485217320664497576281202135165629354686603273589029605252086059272264364512064931446686808435841570266750631753167099681478762777762410001342171411619954509641938980794528860844582384934717820155425341058049856783893506421528942000105111290880655596047076655775629786801196730253855311137233454907472811472502212304952863362390932906338742757975261851585653732780433536402559668962757202801282739840747750544022882178098255140984876280458159551382293928001895945783614208132297753983699532607187376470921540527324330230882454658779449188139351887229910088821599072962300070697721045617352061272639187019698216650691550741409292018439640964548536816656182808954959771916839198321830489231476699160913153587559980594620831190118394331720583771595180735330692371052507479071759272150791574659375573622269854647740634830458475095832973541875503162916556016032957253912323137218448071326809421098376387285869814935845820788054658629277703084846946678674981682880527622015349290100518205362359344038454772901956778545706571770480233366626185658329196537248011921752717409474098051577043346214638069293176598538688385202872919850550286848692121306053649058619525748177885833260460484644770970743649190180071353811328224554702681272159600131052245366081072870452185650055537481730544136369088496581520176399411671365248557430059957000073304400342921668280653087822368419762579417688541403615375380374712674807451970370014396263973764295878265321426186149420031139141741225069117439474261035349696473201511407357220255186838058038815998937007378188071067296827488183535777697254068631558417221400295465976952429233715840023788384584506023817721109813616281730258272098303061727857435659221548731685065564145742274317478924558141801197563944501713684431430348515717685380651857898567618896216607095497083081731195933665402340345323640482422938259342814084167549592164724342439673163313375529328579597662579929905051922470651309912349939684811685444527706458731598908840295502913468919692493107855703038353038005984218207125734414850310572299774682258115294479149512347255394490098417535846749909403866239984182798147132536525001203821637372335674928049240467004854192804027517455770331461075239749706146257100074105433611637266230961193317748927758687559141318263998606459387397325444795296435344933361696665024388585379585506780271133440557369200436115959653087404329721459939497407135499218431153748884971323875485283528993261818392569819558196996741949260128911283855754799681167471538797924225440122684333087231340446564688560794870707480630483597581268711025240368644112649817916897497770796140978689618045585467382594542078410947552813923187378411606654752936933477157043140029946704403679405623251428794912907538105305061043332664232513566278071764325013259553645835956536526171241616609604209949244191305874841954967112634142693825200168158401901572957678350934974259366519484416661783569134564631513009971562527469425421814586076779148358629459740928573896294642685234709566814745682087468594435373559297455193364959405364902221706786702325993421899468459832127523426527393829769098073970157354686058284873767497763797608053203549977724776561468381352438212487850123438851955581605103523397393405907338680089728589364210811649108052171004357131197708938827954687171375612118019184196185221342654127152865163753527118732745505778202507389826026827209777951755226440245921500323413835853068622052559412108176148065592264487391288784686308273014386199990492272163343192327372949570573425485005201572091583940617857293631627048700325521883564334569231422273472301516439909117091165464597385749898529485324535575363213142743109718373257651510270223537354331264866769069177507905814016141704221931616673617719371167101351373119300453616173205017686254807107284426991907721424844713715457398548869798564867809100549887898376649303930980948668249067835812576773149190021165223011928420491410709748133543984571046876619835451531504377000151085400775199441148445854733697283756546045418948536137970653217305644475882444008265966443912879403107925842171089287896134168366434398241553593169712290856513886054290378213551038075604973340660987111830633678924388036402052489505351876649164722521275169614264408796356376769954346465403238764974327105803795361499777717407824923964747569913524472038732615569947274438376857344559908577328411317530158142992971074757404281338296247451050799801536650592139994425093674401290256480385914662234347645700944059935464632571005556164767448696005902247982907084765820646022650384224611896818986206426092166464431014369579846621593935695574462723293727436957718443962989394518358444887363070769002460458339225545079031469803411438739277128865416851884453778550053703269039760870614398949911749988373922263032143981475258584557052904880614329731779675441933724405348685318625310495010220185116572037993046495168756583120565717529946590307580642704308408040681080640892748823380383805071633564526764372762552878315171503305972944680476869666257857961116719262489842274497010429854769572724363107303526469651213123218911871159525912169849771856074006724501589637305974193330023582013027116566740337257434528438462665666337696182509564383060804124179666307321804045000712231368394209170908300064348931318390042613864941242487924625915248756378621087374844426548939037314427171511215850855116913557589025660369339401262113185635539551169988985908485452326247685740971095978101517184259959929868505122231907323465476071945561655227266157063131974802455098320217855342089502171663750057633989362912167242655395948350058618213699912806153462074382805923073414732605746238693124607194911679921166465285104221762255022576241741388469920206943437842753707798008192655179160148081858967850038598043976943119583897087491294831104443269303717244755713758705788188984098454483093126532294094105076682998749955926369273440082861122046277864763444878282399341449675460225064334123370845170610313789416432059985960969267851230903774827167998372656500134387681352775611310394356959732676591094509354242414890903481683527256842502517306810381014282751281634013231444532583142929111808170021969038027006580204893880440388160765099621243255197389809057027227480719788383320608749467484066135771923148870230534833477311683879226485129515722048512898796543297936236654177757397756168561202778380228229764265249578127014398379296760868693514286560733711410293994113945322498905741025959439304177575749273051808442438848773577620332461059296575770048386170500355150864776722965963538690104152012075589066224660402084536362689002277281500328312349988987273234643015257001594475484174411123571750181353333318184518815595121675259679410871277248293906559327888223788079885057870487379231144028232136663353288678737315671259345754092759986805631720060442271750333914049341089400005873177531873410424939149047735476987268375747777632710204176145312117120570995677583123689127379359674801066468072975142961892074117622916284290383256569716889373199625060828481184179328949056520846136530162461812603233932383887597769501071343635017569510897805213202735473709890519680562282106724920643391103847314804532885811181221871198400623447689755568043747697917842467261818502468340838280229613706805189967475116756477632821861682595707603075104435095083372498580836345077070026345079962784242143575173592926263675959751865327742342390748249011562595210593720658698251261036300571855995764386297641191740890271836618922668166876415250873309223873348925959715322075382813400883534027623757317941797099884569221609177762096042268647180398765190867381909808587855452540917983940876621849837278301167276520897005366865801147612912908798776201709580034295542197552312488314015967872473875188866214127045685409257309659578350079270619433708715914002107672110953424770406677154915778226733986416154679826673189838566564659603596594622295560443294248728957505642393873055731015443721140899454267066130787678556984319795897229805781299928450972788069763224198314556181358189425495286954787601209017169439116734513162526266163872521679291305537134399755901264918466573399814879890765195604374112377179688914937699028238155135248731395847370918422529411103095412272530870472225922166994776292923555901448531172379949602954139273305179281491059553990018379370488653996943825686749786194577150135377477242956459454753086639655304047139566195713213504155260422617008075789319799257563710648998813749615545089414807016379864558467253179818475246655482579373350379553652231235656524782270474384888945646742498942548379335511766847849583843714801040049957968432827376179394890908764378824924025561215777524031022890537818793449352728062850692152683796411962261554422962768441602400887100033236142859024930191845465933011579760303569046302328090096681713736982480185600464865066566873659602390018915325663507935243576202223548523155438427927872871901096115991024715962169908229837553825778675397856438197267810478664183961942255540638042459997717423176816827170458491097567270966424655969468403396834126133499146833154972327185788203650328204067241798627031628687638580840501975635081424915158136292483667353312058154709350146571929564205957525145984480864460502761838414223562352615757625947111538343773030896186102981941677541765628405972002376882194178632357510664171894578952172590767483544311561206393347768536714348039778429481758782022545023709211235513976603632761072304872212810999140201303413168052435007069090351743211309976566992773398498289418673536863361155406948100182575249587679920055641732617494299425292041482817820656049696803451893569317318595342793584247699242269341346583013876945275626685577294156157867990853399081058542772866545777122222204524980576050499581997406635502974442074366779718001895286929329856930910595421828628299083293140716663010874836007251039190340203880389277911258004455323243598240112115293826208108164125694593755984710770060372819198531595371985805628352692462239787207625188765358346319543135938152546730130338768022609794886282379816216379084521510098544807042800575872772620756532278548488824217960691375057303355455861362148784491208440455586960027802225962551036739888506787447376374529297041400207413762682888270050146231707158238029421875771380275590334145935414644003906672996270159791953209731751131627112687995580933309777764831894043613195959535369981334108761805337217555597046097801885408388349464939685358253572375048216829511882715171555069910178246817446065778792692899402621650978456006006934313135868548781463752144192563072761452876884054871879447289299292905561953009567090114982406146659486156620085169121561328732305102900649490656939274514748704733089733573217547451813143113523304430201245817177574747656634844306622097678910645134736139581845464921957470464812047878277551760153934532226411575719669982097638030063508322966621995383131031165425461779641297856818790919477869597997906409906364883983588513660194823424562186058420145538087716163504815683844619569539212006730831116667246479734955053332948392491168787452978575857190871771252815060943544788075585424636587250835988599613900067831945237507969859135716877559941314200970939389185700842086016324120776388499205720428166834545326449715731461066183573751316941395551821983569562635089968661120974632640912408010865347269127382448993949194963737130020851324232132684530829169279637284619518324272120705488408229625535080212626830083648734995128807549489754249641199858452252214251310577428771331323909127942174214318127140212359937638664498018643663315431878364238569881867461130202742653144475429334489826821130625166614041600190754667644292322291525228423611759227960526968325915611081757945186537835122101821641379776544595724437269512628902654773936693048744778251216986991598237381033908638576421673679315479337000382242159407998210373328512807968432136816441792178171315458924518963302448830645459286193823527360644175909586314584490278327288301846267964966801450117817792192805716144745089905731914763949893404616801720769975531627384051683694019231288114916669085605370380729357531630510862119049898212956576804034676647562718006066042898465385218273852672938952867637219797433816391101485188254176410584227314608772452186214096016813881881520873431022760493767931107520498428866805591614756809016843552865919934005970715391111943223132391645988616173799065403085038795570970774813616826489770747903281818667990552261774230278054122284277237201199440811408948782746953344651572372169366443059188928451224727121036863588404912440717425006975726577484054783509958544692315673517590378715860692354710987934980682125845653923635617792859382450378072450707664002638226854656419341051266865336987757496058100916643511633284099955222250505983948054374147817101151920093085750094037027797011297444261467419491815571264072698989221987913867580570508660003177554078051431191747536049000587093026556349569473775405423276950334712446472306603969687663922119811890259474595619006137325943587352253269124274727596003847715087415070952737001136955244559163200652042526183598118057013014646449549843380500655067608722668780650156124487485344160410634127266222823265888944493636088988661543716544865948588226401208411540593437544841557767700436172599648872542781169569116548261074192892814861772806060846110186837017866012723184143450192524769013625368686076226592444836444731575154669012679954323600442482002993145272208850444475618598495003780693869354433980993079013821001028933275555824496107108362514344157934800278468816800596963864672600918452868248022268914180360204127139292943378361668361908864270233047064606906811760997018954189249407183505756814439777475782173566802751525383521755439502959054980517766626455762449234722696925001448155946312292158419202681240918189402008341582893590722445420243486540298669133261944506955910244638788529375610759370672253045590679142136730689508544895226785231579209531254718228315206715820156348522121380053072557582176838584892860178536372427670284926116509320548926544767941834831630498756022378631841960162393451833546409094592982834579178653147013120630656416113479166360843330902680974559344091335750312625296195979113009045001449914171176833945518795892793868165886568509106114565826357670343913989334088961315862261306154437887849261226830354431513194810584109586586376462502103299768371829684963111262174142253107100759247548131329168114822575340837929562960042632999877240215949414346844477681748783763385117026086202270248164834853435157081118988761992979697544210335196354129300979111545964054751405366696123085173418613261283818224738900636591230618257631377677815790303951401214657149857137039898927158087748433024432792908514120209650694455301418016502958798832477846253495417964927144634418689049774606241734965636099092894853408511357349927774067917737901975861818967161504870580394028704642108195200658944757241546841975868015984309504584393946683767187895056664179573965650918259603739650582070655719917325219039313335057627058065127759630839515086333740023685744219106873718328867692744370163559746041836550459604799720321212819848728228676636994365339517866294696014477465548105793931130235972307305464053012524744888739000541762687841717629181734474538744676899989889027686711226755158782902433861521115091772782418921255725558255954302090218826025732265528229825981039595082765269925025981438287773749489709350950117508903593679600901035357433862346980389436574183380549271044901823647636643089003263082817349952859183361844793589461509945919224704898736105193510479928556661317170458836998447562797467590174475425689291910902208363626636606407214315431812533114641723101368312425530589581706077742567534703610199387158104887306843925678746757545571546672180484067043919112985062653485195821274355445841495105736553645508884248100600231287191250256279561675774460674548734504011234101346699459689266761638063034047876396105873828507761483153924259920180997649010860260095299117532282206833637174256357213594073878582465034516315800142228555612933636489324149071731364376002665047793735737542576569669090663295540203382388420703602497883222808624113695795137052834746982569479466207018278292222887781674846516757323668591281258314436510335926262705023243459344890990948082597255290091466433648372339331997964189774780625359926044926510250424232192297576775147841442015042941144468277609714529193394264866278901121824276244886951350323737176396229299438883509905232721969381823338749231882673750589014029790959920771336627357914320853944130661326954528126123208747320483526687123191951683727562653744105378889197936285025183095813763165839068679983488958579478830628354498565442948732936236805271417247926671783352808314467613583088143769820813829356286142365809324851379486767982566771564441181204462376423996995869339529061896010744383568381375975235499098849733975681607421855964152230562685248989237010791517891251147657996858797149080012619319082636277160513086050703584965793467166687677367319274017182285297855522140513368491212430375827543921582026294949984707403378484197401946947226763050882474107631432068559170534405488745044867015510517751306788728520867293441148595457597249522351554580122890819366524988008507620174383149436403095199781679972190135141147748084934241047834137201834415469111723077884336938851796498041587600287667702390099864256237796787400778520644994217476733265321230402257477799433388767006125203786258710711477831889840197468466451218889786550477422170415691701050173376976129154620142084176859169544749078721579199737195283737308795347305180495580850646942830414189707013049403636808543560950753838492551336239311551842003042030054479775277482620462319828021535207190083442026348510024148013501916820275726764104327845229246986675659147428363284478365101514172358617381225984176372971968088050444820561787521698618179319415546487157061842515163509433448523975306961967224131095289620964303208189005648355605151394006639787869546800189340235219574429249132462285493619422267111249715944829782063814044343687462199597708375158735877882649285975681754810625812015624169831500860569708037548832875938033432756585491106721311202254430562984923235657219959983650657135851976351771254373232379120701244902825712742857861333604406347900271031493819087216250073525478112135302165151507469248626294083615932527594529215053845544246526491747278014119105900643586419758614224085781942755161869923417157963637745944890724204311572155480180513415907654141750092708267433054260858708978180250218133107140082724860217457000894370737914066816928254660064241495132067451022124871438608589227269862651468255579529362962431289411228093150269625939043098880417881870083840060778770624484859137458942469586863788037208923844509150972042811310286610954594013620789094575753238320461197474888362544077235260177604806589535428371378645733460170744752295765139950493069591548430875884798266778537576723367818524723098305176379642865711086638017515564021258107794934979121171346266130257668329604560872338076839302738307847993363334473283149878385128436492555024744360943329433001741443265262010230924607632953515249737316635383606459718783976331585373452491760885948456073766584136421838258729026663517962406723445700398275726140180490091072549804930279912527356946408789083706857074950684867500046589782182642726047560022582496735021437042972271025176590565282009055877691351956222705713210714183941385234112551389218041391479090785503556138641221670536830180389062398019530708326347964800192003077986351367000673907655425270070148595383287830919455096552504413939035821679534116379407716801799775995755959951740417224677555318229488142183896185299210543943208388815615454823643649041455038398522888103472558425007330017346441978695395379355316636547209211996237792179070185185528468440585229608483978780904574667077772189264021025642449784134977142880196965251568819039096849630509079471267363790614848283297809154139076659020554972492061170997523463775305649379693495248548534909841347839343496211609656004984078011795843559756604516946194818971762624795245754644616611817615597224674749079336073489976370836204902680197431043463124991191722844586732749883098564162027239411475541731981057410901134693591809442472632648695303731563169488875770450069024415342579921588921237527289501113273013031665929945581263376824024470904861156893485297695063494986930005130038974572931095557778358825695749846608328200571664165770214896435129767154375943577653342750580770946091292674006213165077835518533759113533723824838362062236367344140502216619269417142592790289695867334421213389236466803219506430570717157712541491407838799138110944560372362877132067186474940011481816574433125284868222429404470596416820843792530657061758775343555611294015177131228942322476231851257602518976793304981997681367067362018358095872678502786160816404542868575760728312644274808514321972408161524980258502146602460235187455691340783776578682743445845298653503591161037729276016146349025968752273726437622524858034741887557212508897493400505153521178218088191365934459915800317635221539259784765538312831301056829857605098399041915557757400299597824145404557512797233643810510868765756572231379543618483638844276640925552773795361877935637276802669377149917009231491705787988279766518564442680927176733463061461532735196961376647166929156187998820074240962423992020920769125827321352960255434130948731881698517851505563104574590056265728361407391468617366747790379975992857562575851774432945371849780330826130793375835401067982588995976278911210748627735474635070545071221290401182561484082248587279119839354283871826999167595797865595042768355339443450086730570177738575854241326487215585245497801104896568356841339825451137595151314498948152644090698532213487973959604521584713341834171555910275932164438815362650721408400453804310206246997138308835028378595461776828152174323379524673595256484661274862274870138780840153184827333293663711620331893603887725362663683742681929294758803794418408893265124182702611123374940312465939074885137960474723857535731465687806560476924413988368884155918933795990349576007796277258479749791791398700394573273132118244484343629529939631564057632671044373583011450129355312280306419157581608229516460862684497338725384758882647037973404425470979691804293218156645827621389670863016094278957909227232057047798084808702127534394880883443540268888867460850928618308652696641028422284802586067715224648555609508461328537985956373561508472214156747231193955027175312855179888670702665918701644124086371921785020659011211357207681575238206849636657613085397817081583557789675429055290371508564270645712299218093620271937454295553525047045236056706156822466588290412023522700427859255410636415510027184691380504513708145964010386917655421947479592602886112108357243594405188711287779285224563419554122420489031070932112422064874969517829476390983443667222651759550548457663865056457711750973943096695485896639390363937007186057067859738537994478551424257994721701685928750744566964086941282320902024803762172378182610108802473294296363731499579120444986487833361527413908754676074310721987087985419494245312065220970218631692791465392512498760512373232086982198057047132135773411961249796738195856993975729811105462075753947923794399975918602538521890055349779363740680551510636974740664890840363734936597356391064031810918129350847754553644455830901777883633616328498472125943414128666440949906639202152993337732794664599502170663732106775069317437770342474713890580926287060789608433177914100114670324996309570224057765843100294629659283982366296541402220914233779087962565493480437649357252551657227266725563105274679322165587060749861142753955121188970117359132009433377735946670111815871553919381455724245793553875966339958570762542884076082766530221333921799681507608303092392410617287127358428412812252302333913814349843952391725523315999785020999903947553233882845890678826857406596357298105243093979935893446025112793068869895193343808160320537095493393987149696219539466226864388648545138458806783627485814755736558756346518690807983773854056319374719437791249531262467243495610087240522911339848135877901999117704239538046433959021420967317374781108026840054576070195547044837273587738672696749093529008917519481320478925607042753956171882417763618586669662639818511598209245129901347361557815765678507716695667777658717592460459388515689916466225262127529204901278885827235670227092899426214160482235940998068281687664006356497789045695554254802481022807833129655371611347894514010890432652230910984118510381333603917833989850671043194771570561552800015575023325908717449440791703986648330459408261191139057099675537023654041415203963381672260664676520079417018180908868220842160674584968556851953674336197433588020370309693918677492005520001885739160835089804388456227429953970593827174160047654502130251912911696854665438158142353762194349698927480649507967303876558462758449651119698502524028970622427982690940061586597241682599309344565647037625202560648701631184463218474212279284288513114411436617205887785855811046228443440782678514404296457620797528420450159230553617793917375680108818807297938565842736564387493066011257680307407640044771186662087631142663194528190801838291203791824292389119263869741453214318045051328597928701378995739850641835887510102959607401480988386811753700904952906911267853439794432157491798829491153297051559982413859335729224380913152291041414094922928031166399223384442184894389731671559357491073602698512664578459997887917336852329639895992908452530794762324711304837694244939153981626000919794152037699916918606422244418133912283655720811622048803179631541699524796528681499930915079242697211054201020816463612372438616034580948901090181225989220730730154614198788356576521296241237753154709833962564965578313275951729898922488058252212076705258184723017909328929412271771870841671577610222682871668260551264850582207163697473941665195873862753344685850056882296269530926744435962479829112428321973063663821826470840401781542601558023226470040776040408537878782962370689602403971063646490657168283537435664599206461428470192624930576290487395688025901936383068224635938351347259556437515955173861165694488793810459307714599939993707208044421862381505055940097059329689955072063521266037437128179528364852513854440607480170424936993764325904724085980688811968431463227862499191338763998365283705182815661566234573598190219377427240596233553533580117807606062244867773689846041764026357934006491881479517506581996359179614885816105313008342420799475520764711630900049330909003770379729280453376452864472063546690976073277748205116002603579250774067614371959234992384068801477424062851460785465922586589589587905118477087738754930838999595864628277202417848516270864274522731030977980270493248966821566045500163657480706362580724120517308223865855273963755839732100947111383391890908060672788503952095257369391433706463731703534974218278035441620931642418612537213384558130482401025768650820169949746170468086504861067543070210421492850118344967785271991199910468879788087679958557052961027269425344280949037131347362268563249506450311285480018818308946960435725610912480815517245657112357747263637822666224978444536424939880367235187357272844137965906734068764918470521392864038129867525775834918247495571439927517044281941683804695871248172601234422760472856180070761011110621145285007234326706432520321640974861167143925150954847761557550043057575948022742427475620401786455037910624999251536761860636543727088407400531619670241099650123292006645321934403816680535655023541897853100085331663908248686084361660276626015605226873327640154371725480511592762717956854851247461252767570383211733986039030386178474362324988146272187733678101055782249369666682558116852831104866230489540443427200180645923823260090053507207311166210472621969922714827111272222708412326860870092814102864118850070882540109211449662423693099298039097851136900570482224165573286233266490046977731332081797439223414002528216954948764981393531209905480484279275193891059912309302955044146985938653826852950969041706437719004951783132075824122892145714089826970255899156014823900853356144043381106565436866458857498186933039953152903993388726601417319930028827772419051751568061904855506073103114351078983149066455672366755309547729161257107209882966585594450934018409368401826509976437937749500277314797102519713886782864847812120751844921333277762584267063494271413627373778166640164169972054690590452215478479152830435264614359544177726020838494244091969653606331908249872129182426513202048544291901489977115275952271206692055855110033388242053965499298982198903586468000340793575088224039613912403656446430584626431855124595364257943948134139670569293952643198829344377162928813444582959267758133831709572753655816854202945472734029736632160370158404016509322305258742185628409764928618757874064306704745196614289220592410183199451622538947158273606367817802883892244773736566394590666147502351666958053909042172999546556406865946291519836241153783996644747793166992603514279911021985579416008913433993143164889578038431992000046167282570766067365618323710488223042336576500545480877344007769369694869227503771211777815495971020029740339422656766631693953144897431469735875709559848190265564698304211397665524316261961766669175576471231163431300196863419202035572586736937233845402666076519549088936931104453667065642143830299721591631503270254919731836894932141284532271213341633954731027329423243218131304886907956039554382108654662468425555250987768833997771590217233421900580648343634532003575698586176701556484124212198359584329065264758905678542317220849916791940308458342322581282298578539877968559583298409521835866369372903406924910545446039810336515979176157685994504030036342819601386083581538537035777654604027712935057705302699325773222135689013294013319507332215002471553429227468028832985283210537792439525665710807931279926094375054880220127777157299792933601318052826306723281901231478310271689303171050021432322546010787998159342501897594283737012622804169220529894362133889313591134288771875060926375949597516769267723578849894638260014211289550009931308662922082259288842108814206237374464970378981152946563605791053031952226913660457126128586834807509423980140954869166662983116363928176676973931876281786366000796116476662150407470382426312016724059394439059423232699735805433869451305857801673698586640988034558228869200472061910416165633043689321496517937239014563886745393168210528084384506892764795303045330749757621577820677335533048247762950324967789811880756763540209639242091688520514628587759471626838586379865585231979712600222397202130542038166582742993225301163343014883190577576204794137852064993034824066553685708714046388909175224464983825860014623205066455745258630188734875368178355343653805416151987683582581604265864634786606721806483227081309711818898742514134772103926046103982114346598082989781896989067653750415277147974714996692641948515478028008285871405911525853481334437204922877211641177653190830438214424403903242275779504269045117634166938487581505960258772882257409830485302901218436028865401268141243401970834783335740697806319911151412205537110514477821126075454512382058873311457298245573677435624983398263712951298004090237629637612075438108436610906598236218324115491789661671686627872245259627247055327625905419023279804405990658748990686979880353371978592205275367901014020065523367938099621506502018712539725876137455099063687448322179033034064179554815458478083936362440789879244262478191756993180964665747939915433308880515419546705709942910459675863531585217032457870762194886457997821344163961077481043096963064330953702938826020091726823369091629091017074216795941429996571329151594750005215818112076748463119081976509263927662689106064361195687907295520431554933248371786147511217341290927485047597775007659203205199254683023181490507470288530698754455373414490734829594554999628732749296884106029641201057438053576143296851313431012104975323455182557111672081354515464130715351412112648721993691796228736820669240652063106884620566728965468080060716106130136255529834245486404068981138450440003446954236246119658533515657600182386615993719875613699005258651664204528557032569099077008150606912200187137756185770590167388462710824980506448542709460114383216141140081659578900474467452720675546629466530001222124049467324678175519287487222135394102469574618503458564043837594413113739151067301722087059828803501779081277273496598785027525145420613627688588333614324480351946976778259916963701794550838395115114531851138007358625772114697335571830417744220343595466252685590798927002837223123720789744384618277612048686868613355091594049507436200237367998212549711726245512142714301704111757778783218192647971464999280813846070338338930989379629647224457360423675627046460901687228244420439063302579992015889278834877618011220721481620637060869258691797672587685023562616822644468693778054688017642216126610541257499179533225395578421566987901747385570544300714766385742920945901281348864790755114731443453471679678884611799178801097922189842124651785508967701673904393699833595654309683697253673992727149861313085226080399418511338550426698864411346174415650494838715735454925918522147798312899027854479982752241464316576290895962051252839548213728674694809509891830344247723242832298768414184278740372045141624303291523348601009410164092165711328613779858349090239978528787738064816123626342271114310828147433076531409443685865434508026854186519971152984454195980474069419973499004718906599025263996693199299983761300141300576549078528723562173492272175162064985986033035853692849401163650911908376617205313249689400087946762509790008787682215422236689443820152114297002255789481230887362234664549607376846563937132696883026396734906471596941893186730723051024477744309563393023802194553426117220496558816995593108848581641585778085756848204388439994015678075343960534296333728335946041574126022086335198754041823460668770671245188589309908309965255163151093425767512672904828068960717466776553735992851578298265852087165049658665314720008425138441137788707320884115134927986263583931203390255819720772513565605964728592996131033908671329060269604743623850849531392311455384566202010691514085514778112540312865262212410525904266712529217896536582280176367132784951658647865755733116909486478680367494398583442364153584552363306526298286841226949525819075048937065513470488808776195111296550879129240473141226381666650293298289141939333425183549124550618568814304031606897267077259825468424401778787480438944605632209781466936921901913562471454580422665926914135439664579174556241058100488481297407864266521796639748091127629518823625856756352606006467139572968676335310306502462111587797561803155800011003928129529033963220574097346069563488642970153957933440740413040223033886205566097400571564727054723642003175061600062334611997856194387972397942526979008274379188725013129413544145464045380265746181841645026446078338840664368672186879599198057556793449384618547418574321046175208577681076321817597302885596040677014640500055552569520211499057203970084824727696445240795289115476581291561882435819693920567719654995886542077138371801245740723174956755654704849908489603629743356394336870308603634980112947287497798362086009023897391314845523865994701110125755126871782874334054628315534452523255275875296900093021912988391120704000710968129038718733041439755186627513935647935452602116615967665828398342299447053535724122590852555407710330128339037370118438524017297590399280674064835902786794889909419336308101977184731866675278333466515616680680108069067363441911778838470141689728630653820143754188466724367823053843071480940404936759262757787887726450796911896628660884220107963218961818256508276863044855287289898144543863928811127334320953622559548126322628729534211383875100673604366878491731332632237508228990603111835795083278175666339937409504149461195601822345985539990689008601767670452415618850708739020429648968566734454801668473997295681918124426667680560461514883067552110155528017011703612060460852624710822371659713056091002571428284755878162824281408648625065079032569906789872568685210461656130323028441369247241564332733166349227173834883646821525088362047199485416206328854783596206731598520917993757586750743480705363417278572030176420717608131756004785403877097739396217350554180419292008356458747576534813861467563966372439330243051014695493616312159764658515689032175501693391976736968245468801087100529495698987313184138725838758372317934326286915883308852967061917690022108768272547298470922177622685371519899403281552830185309005117830506198688041728484344636056240754451061404137534685995813495866035392560958774806807841158954709599479763262911711767992016108252099132232240089972743096852217109795843849546480136743932662817508016166274364909871669473941721121812388017857697555005235706326863605633107375321212104091129987160138676006143185267748023108329953038521607349040233219246367410199191652657108708436080636367064482463140729576171591244176956888523625235744337577283935304136934808994078470122779042790660449724420845094748228068921655636338449471766024134186479053871254151683132939914510622574130005726419287039005500502083031415834560120285084007796060011627255421463558278368223582756477328239095596902084557748569170792315693567843604341245812922727083130924551497755562193398492836616684227667710745768135626671910816708519727794078161062583082494727810685682529756410428308181821294871298816590627687949017431071220859961371176617460260715348369109493763500561351564339853552094735219877365269227375527231054409778054892571847411540127995671815704800338579478177668786122692946194965620698969053840416794372361793125362952216511759377862653263944590799915619683217194660659474977610993938267181900748902486255014937838678508293637391231734897810140797273655704815115569820645142465862729041693127434359928462676163288563318551139808327513948664486801809010580300950416759678411892010104849685995588555428076712521838861055569426113430253550599897474082296905789369686098560312033114670677104919190004560938522476872797304034986980339522466605555357688311266922436997759836512983803846209470515500198690298322120270411370750962165240419694131182359452462989252047955894935488614649278445401529983019462029197234913898541398630440771632936811756913122712725789915530069790361183202078440351411608460975616187496548525894045996489438509447752462771726694655998769995582523407569717002550165505812025350852492325329360876611701866440899078640339457052411702537661640524363405051562293681837331136086041120065383639822153582172644657998296030340122971674077816361326296190662416479654876911149780707419692772824061902407786895144236906421584089303604418128915033605116991999161393566187006973658457675984395040927239902277852506403643194885960096312082450806233855460277720869181464315016016170458445322206820468000985113271294305376790140366278629422981434478140042218768577157169447975406171953900265939256321522321333590935849383375561947511376167995949807731410609096148644761879470395651256843037469417207171391839816313224948139086709232623713682767189097561914713265695964372027321802704750109149633046955109865900949909652116979202185429104263678009113305036304646564653359767646743000810343255247185379289486367089325417833395826428115310970490714717869569319547474764277333742691425624418582040062032531777721526838534881505930860124438366174074714427595564289422304407540522363547466947527129979540636529223642757257255598043012364762347104546521285434673730590764576050819461741053762860514216556912686119335692679421757475186153293057035969384627287268584691227800639785015334896068893925091179876865310503405623414862716971359502652787881921382448452805083363743834854271777481887826305752248199149137573769776609543876489042205668258746571679292577834423268215898031721629374110424302384571655124093253381801989372556146643414302865807137538826138275257726426581497140090608296604616990077181590655166544499403669003105615546402508337103061071166391438949235285216199466935140961340281601849780034960610382585894851695902914896199641728927164129169917972214714272320671387691396012346531354991975793673216242239892864763869987827393571137694370014636287062577885286210870647154092524714877066017043875887062584235080404237952643566440351435119791160204773227498956733462823612796832583030989183217602852959680483241452398914777382136771439181687523262041201248435926990492830073546753355679431044425783546764568241399108236161152145419291031568514727467434140019998653595646896558455682455721966559572289054174467214603968176222360614892765071560344543284630276139095924295099644573499735440498437933150344997667613344502478582185484113485315038800854966500807814107766568904426773279558441553769003490387644219933792941871108703207210407806770922209013315734458583075904265558222686565935471147875438837805673335105439863868086378461857598050542888075809911987346935410237374299285479006213502380585223135317653360950489337007258209164596091596197483144181156734027591687506163489970695205789250266876872285813252560439925603966497295152231814582695004438311887211137525900111319157964812314751311898006918020038179181383012532380070426384726037349623497396480373471212724302986589366156777413883718357118202068231378652170887730933344482244356405823693210968345193658738719088091765402778096452445150861703382192427432722102171956322275782078736221549416946089140371042164050071017382649680860348151745830034402919442306565980134306512017416599038080596053706089680477807421968941216829306778053066242510374071912327396755942392523491857215880576624889569432067225561958541404327023141994288331090867118269603635513902153397556435725448312024256052121255868573431085055957170711486100199770291175866967169293115614346593072348590529656051618257396338288271923688295159947644075989412251750183693604202388774534943629397231054200350185639805757813248000267384200710961445317293074239680308556703758649318472702800969675265927885304517692358775976591185252426245117334060950337962621609014987910129266729547402480995057716169315770304345083951116059668618491100787625050942991296716126160096366287934287021357891305222915355132234347228967123727291743619968676323348931345492919679813408938659050567544957038105819482870619602465239012483841375083498199193514223032960397652378984383253891664344790047873911735297421547053390735255832421994759207093433189054732973733439181382312394895349903642033154742840050230393829353284777569671476072421195716305744401786172649793546108907331922148372074582225200550895351072786599772280710947965299026417817505895106239544923528045891067390898715800483959891238894366912218334347964870507992687308611926572213953577639012613066258958124409913082051774033810910105960176427570775692128514356936384240340097063528286321133575347371667124510732901932263104704351754939715623073047470930766705268905223287768460642029417625970145596053858484169993267024268242017562084191207194449370269387213947054065885118887442807464858538379231080713816339878920047688362082373427665939951836936692538993048189460190035479399834707518436664210572649618258666087993091391225520296099986878421915470161682328973897865633674390447809153939784000082398744706900291323045617126556917257626484819610402915326401314102221037656003249236004480690562924624916875237032712874314840825456766722744689329001010562881949392030186500433302987508424412738727664570582701804983343251626254064525057600948248792647671969622802368327971684517333883016473169296209019111648261851975273689745493934281774714912397597130170202234572396533504712887450294990766266186364663807145808299424534580186099696416508815712279269016251003873804295672951468197607261116920036742307272168469648835420871631604067505468341100783199694139966211898205042732089139850787183265421423969790620060974779182020530637731207439578464405798540252107383974096798928838048609221661063144269179570967560036865649364404547959337323406371094509988524427793688027752474818432523072905833418958468512651174146951263872099956403031574478547466410698968461963899659054650734504749731878688726245745378412693532274093110774927157811777681183479390940138251468580826574373479548217185696665552138802637203314979725103646213964755223297991016159453598338718402236510886095999502599454616673090398643185616612511282193871658553188578542381564395194148952639777866340442727009462716406203010783303529046971902183949132822605173227524426545464092305365759202674684854415513068603321818017100465009667139836648421011030380713920570594178263789322940936753477154042629273956792198462728785195872823486927593513929732474543448534542124229506403988010632425608909929766908801631703241592990518900067222778633420788841951949680022805039154293797047977935112896024003823681541697545589929388434344526418209065162078281981617359831567684041297008072484097032070586324057819147496751515768167797600530710949451230234859081691386290267549083874639225035321834555233710824689020381837778262609767697732483599391272853749765074589673788558357193483143999241927896107451371304439833777469411149042022657390625726430711047005648879921589306947387869601863735529143244663939431128398800040188920866020029381014865004624686481734692838303971370704976108218110954827641194116706575314219850704945466042368491595580728931900477416459114433098347209662993386408238316762229600228307714531856729544828410932217338417664098573371271947361045286406218793352162935097764003665628636448436622480795850757412527836096621362978814253948180640644528305221512961191794341887632457343592509967146393126066590082879102534674451073624349948734828011400371449519860019632149833781570190797126115446116899360898860975833774317157247252202080573417814626524609770310698899735792488065802365779240179883805986449914966656300000793420297338330382025803456385432310263178702765334556969308580583845362481438736410413456588906727122432976286473565266611450486818187169352708746375814833748768173317805870302183351931870338434433207478248864361818449707602910922890350590648689410786699211835792061273673039239964951879854026724872247240459173193372385817790461512909332430426248542390781900372871639534283756653211151576826746154731918047946931324773397246256805980187202807318331558386028174698848742109305776204356029736572616615739884047016430754522045710636461734608002202720630881577730124572538371707082397909824682474447816835648337667737279989444771284116498814486526479169600625902549178669933245726211106628423279782802205755251451982767929422523093025455347257902531354016421789053117662732649564759400741273452910876955150289232878241529633777281728476895412123431185717446448455668797768895422946414630818655302321449137759813238944143807452829917002425847864929978186664010489263420050361859785731467644707712199081436704612068251338524231427620337670898956620307288281919083252534572212549349568167738186636647610940549789829187525221005764666954192634497153520954677910538383261964268319963925425374861708463760143987104929978022724641525242098863693992550392339933758805113043986175893280556967047050378485425000714035622697608786711146341273896671990520947665828395411125719427711026943578339397331572138142191701123659434097898476110919044904369894439890753682259959271144701236758787381983560980044088613324983696020137796620410530052569186907404568464387905611761246174297876069944618656969799779291101212183823422391742452390995858670628794315679571947559966835789476698620011508920762740778103862469183052048659680655024517033720858403817157912786838334651816995379247207133125340620836924801888822841085219969651231419358518638552245126245305517345650365945974065621742772820987479049131250815574956069224031209898390244511604181558046725073331952580238866796569210288920893257587886396873009029612196036029789810130384781965113905112876661954781089586945596278293507223330931356157659611709465204568152448156410247741753011893100017459518182155162642970703139322106003957536075642876072060966293794132773103354754553063050171979374067625458137580186713048664961129081642560752964287710692206526354578904002865538883783696948290616551629578159995014785930253023570805233354064201762809894784739707936048208197917442516325378800790635265184206247564462725986228318727364693221436567071622944625058661813766179908274387481328885210435294634314688313160061949068297538263231862729915448158874567464508638916102196956277986234408565169503221887656543372329591471019213094124149595941003602384864993955399876352435677728088972352767257315344416902037689388974026857455416366829048292607215075637279775079709188773964395561038988196200201493577984109490423259490741972691898110702026198701320917754956976256753963539184976276510972174046702980592280210581867443107475600351667685247384067866369351989242125143623278293978933561413402767659616436754050491891681013016921805863589517385081220609180546235088739305737067568033417742928139237551830617914444696735158630738333556070596774606774102468151788768704181055359157575873366679979895294838232125900821111715136095042755783597346692378740016417381937368726175472169844834762837670143323223349775018186828389772456397219559184655040123770287949936074892953188336648776412340982087756832352801192762683814984964440164030123503464388224492641540820671330181109695398346691954439192935057201071014768256433594416628323249605873761502434758201676992293508266747444547739502751776113057999204206874439925139681232724236188674248238742385906331721682380090961255390136609424348736448308970757450621503420595102410492482374296941267794092704767489604409357847913516081119365615868872808935764138666200365298452713987759249906511537011382842596785385577571342423006259438173565352186354595782072813636083536535505191159870933321802306941268460330396342909470675546597908387987867418257516733918170205212027594398621018347085307349111147292199109191921932343652902878536757332441364408407047230933906141576413199324239628950969367071448597438344373639258454098156028309594979380404518126915013238947755110722036910657923198089167253381316002779559022255436562985626447165850510268496725162173533087470169105323157756963498569008490065271823971226964705650542346796900642117371407547526397387974465679513664110064004226254814351712813805928288008430188091313908302929806940090769500200645042723563996316829103939804893101036516319044538970377193479204948139556258166131417275374774385074198169315187977192136191255721693724761947786548535991249788425225969792470514172669223141385987767006252710479949479042727741249062065849076310561294023502916558236645735987730164583220853927849630445112845006537149328394043351995969025531539421426790039812719743975270056408890589902562273510425881850082315200998710629374167401008068160081094465274932603245674911576485190508183073577018438635041300249371903265084022054267831121022975162547834678131568859562123528802222425813433402788673718710557739973892162933099748868025273020206137509845731827688404472482914669353357519152770510002663984345537577870594721527257573837109461155089389700760738085966594158386280558172795914756604185469362733575216947251745453343952143471966165329650222899704359230314180239649299073156614809272271069396027908524492997132434516932503361057162131639446081657839038333346626682756671694196267264772821547427806708908815250679453112941102499703264716817094333769221240476344132632288315670486082575099993360187306714317389102071504944787580730239647326879734599528046088985915958611976279017100758987034307379421054853380520611934262232910594427816191539415803852511624755756097343203964927665343639305729367122686395499384531353446419470163894727518310015082552062201417763191228491032466843115323990244058909832759976240549620730603517746518380070011470602234585773266468376866831633544920904496059638873185831497299579076556892312248405630116800008308875190993099941401166797590657110728854519674843202766175072472240430536622396671041117961395844016211082916264980921200775247254415987729041112502043784221912809270086949616511377665376576128509560400752378089737153895469859939551274583115749112841890463354465383420705050327067544093240764948535628713672948759764728254974817193608599964845450621398552635614139766756686761780279733423713026327791400349215495029557030722422736405495770156500114663327232260071414553167957999076808158052824426157806325787054793745211941866797597095186640287695141527820471392108889629749880752942513582122117256479645431345347035336942491438959778152182242826746029918152496614097851287946752529160886722390261772685492993507635841650653784171341618375865833201489921182985388855006643534333450945117843596544730666799926716609104345122702239750581278514684903410628536255533908434429675164725134964947569824483635848214540955855379187481524188525399137127953059067169722143032906405715810883015721151350675417189720332373758392392467486090897034791167805585798636049066085555875935581939304586549464488203597353535591738759449424781716494173361589844699303093946469517496635201655489878728064054052495519712151740136802792602114389244228437390925245350695558717707261295794402230232805920182919361281879786512781755802453250608807509055003213591700041145339258458858342117276829435822489418592796985196532057633225961952703062712074940454811999051714446958075403874598486498124141741706140768559247897638009324089256614932280420285911536772029268719807988235684296775396271976920517148167040084506365166427360458140462055557383332416172347549017607162959007609839371226821676773207627670741629088407736770610556343605945063290896658251531133201415801339374252522461781149808438940868666336050314807332710562552483138937658615792332176255689521009605317447835312921980378206989507014885945290137908187891334997556070898764480662642439660094101479592551755353363704254615824538281287060978948183018356505788340085722918584948328817976164334617760282495157626978035543834016457564643571370637941030723757968076411361108459472772375971658473377209726537190644975542146099253019143090742394094838400817651763551142051782531941853587950806741816044552437061858633988777658132330026008153704272677106058624226099906124734651634961173845461496985692803102360527026930376516354855502631708238552609947780687789028916124635668413074764237087764734363944423652600237562870839062102562705888398339519353204224183015906521600326427884582391902244867485987744822883978597410598639867302797075474882800090229287659861315825862572757811982687213432102693462669434522398981913725445428521637301359644922795410568855540478136234485884074196676704762223878363541964073245092897016853378423667562895891683851382509266159223339938968270664710363729672989981437555362074083534616787791875916846859982392751947231248183622236898925340862262454594697539654243051434662331658214448326348855621069354978356737543552184462433533370787232161690309759686305757929524275941224163522833545635099986623208854353691050030823150884067460664262952209955157841277635859835269049322139998275115895098288539438294156887381012941872890086221350635712692973513930626589548313209084240658222811929369423172649561813603492901438289525419601644992610109959646899722603678978389894023540546443460533775605483585392379293110537420699746169079513537095257295642462341579146180479294618664912820108356058969282252502491591800482187976192709474665297770788750043353809045731073806849549221753243545829596882918723751480225788414840370356791000327650730455185874789576566498074145255864066645683644168981546406425882132643754143914170826637875006148005501348305919582537304547226693299135774366070523585801175225787215899498578380615115885330716406509628717693003802960672650571978322355461856694640663261745990133278462222107453920142981591819239732266742785628093231576943981249234812783520948606896348337952387261560638080871467337657245096928596030619809759183973084243886597832150068767421544742711459093084380231191138543644642702960068778477447210389020174572744264167700825368633756344086494860314986396740406670403893110384956442703513940142422364356534363311551783968729841287931827815456703746936797073179760254017949408781642145624745062375500514598343662194538162127784146359409552756843761614252688098144168758269792523169055513852421592159427689749538603071651388642542371267198169141428652523711267850301546279256305669610054516614451648726471015260356426623159486697861931736735926166653719777069773372671095585538427069444362530975660864775211848861379759383580016513073132314743351748198993597408517679293531556232408293569746829157748256593656403039828110890512653071883159736724140977599250703387160812619462626624135650280265654196472138904493222072918537175956502772672115886082620117809478425220480877302770550473611568166732312698684137433790091193464723783412462305360740404557932084639227748913399256712128596981096431069095816605984798025193997101794745274594891779985263650980682221436853884229020111318497513435022156131406207787193371851601919739138895214396047369704559737254348410709768561767739560293932168889595473861842512592083607691640203519017686828370319531607695937136377196601472462472786461370293180158221075306830101912757083326198112692142812732308629516829353563596781873808687960511118645132577455698638721277891520785212409812811218135604581047501333861192579624470489953770192245382712269268076136385242565401844935624509732365057260809639629770635365517819127083092651587790850985870803722454645052204526400835888109720860708875239543687673913103457541258615807024992755524804276828881394521006457372620779424773746796908277445836816115740477539048716979925289594927053388261426756112204187180501107470255738069297231563221538923255169073900162909613849946536410640731047201575849110778510416909613828266736710742215376160033705838847111385977953428315737325948934916001146700985132966904996983562171073943881176910749440427257845089151892822638127741957671991502830590736139377051994006302570183043826998921964657917942421064054138184880387464831731529573895187310157472539157363602931992718806961216067285844594408744978397683139314941349680879929407515357455246945081631018200597097944951075437663162947805140901590052756380358159281780162014663350997085176824369987778471197557223739812219919179941062901601980455916333645925531611263050368389046650059244411002665975785616036897567114072815656952993040435113203959371608865073014979753629033238185399192963413509811970300285292473826195644638257752829702320026580688680069214896196369712867443968557583931732033099775670388848895046700542780593742847961416473981565198754034264535636174479410056064848808541302892093567137184785761811812006302436232118933544730963261732680189139121382565448345111123729555111464921638796795971392166258755216164080470232088901640748776833889433504084873600404060273009092494671780618494067120466489382978904374535269661705003098768532470446994680194233638077125036650860661344103907096076477787649681301941877706370785345276713494292713498225391609546980850077176896566055843430760441223389906845074697102011426104590539635253091117599340952691189371056776404715952089502302845127726676528631888330778291120064919925806655056155066678948089661135482060355088173249604040956345436741656353396319330261657898473046538906629394746262350328805818123035242045779276945509968144467534465322097142496814325789242370057814090931557267114183235051746907596496670075399114112149072652408117998585014982213774827536975511105879863821735244416351900796864740888085438412665047145102488097322923959292541850414683692183414539280302274023349454457333241395426185167665343701199550020033774953391562264753995833417732388358929515205848175295585349503673981074859809984372193318952829731401766808476144148199364343028747669880249080973728995933970752736027290131095344335151153543920727704100062601015804284000080265389831035917235012327429696708246041617658731435163948162824570544871728497410096661590080759649483269979409704178960621875562366486338605340236489339461834307020736986692929989105945199897849373104327699940025917618679784674721010679352491581483185092559692999417855962749364454301961696710896327116016113815947075943552823430586292321785977323592554836880206077683007282215982408374169051375606536455054933332078730561487357293202580145387523413449850628008733127135573511313523350421386138445034041906965261781689533881587114026695175603574137196144896045468607767301904686284361511037335877149902863571437535753081415467187913280837147538128505723347821548921962925697735230547168528781796819607893118309113164080297188414154990401625913020711773765314424808381834299650918813575726971236400101432627637600193825192994589360103074303159804425993273619186041357669781529386973199369006724337106354206922942247581340060810499160449531214125779609618820724258082668736096492661844640597244299097319537809219207541591332197598972252533144143596282614329603698843957539414211680096226253389336182341343917293620073544991811780213222517619778700842218771812466539573608876976924491276004569541992683930623351893956125941158908774370206148956539933844594036958388445034707107289352352787781930350671410950407198106214049872237287515790779076659196287367607698361646086422510745240752698167627829293837362096529855631618491268819416614758402865136373641774028838004982495650338500130686333092387949277072317843446221360202643898861375959440777982717401723207650727667607286745869377654632935759952583985931420011360455510318907469736511748189499592716729533364621537245426831535527302917775143623989090650339101002940242504599343952543438642422952853798557432840237522260162894129587228150936910785818771459136068524756488104156383828277862595666932831779855882478739481919118487091070514149791667670564499348034524238230790282700940656777849360008441086679713233971145189322180150867068302717083002337289050317026144319130607622395270805086220135858916899153004595044802355594316778742743154566409838253153740421882157557682066718469651365842095566330504080555919595240604038162472347879839028680474719640051894455060747831065875490550203260689456271142855770233230741114910426590565816699689278607862353503320711873574893692546097005964791808623347669509940692513316006852355054651279054296927568359794329729561801915738081231233106286223159745075715785257895266792111789988470901405960981073933091667902146566029145247034980652902681474256208158159228780907882174112337513881724481094752510354373481290484013760273335622761021527326640047889645179608554337461668802526648772602699952903152005924908846382585327285660175618183616327280818353908297434746664315255522317305369730953173147938220478994559988794627110422979783082413447374743169204179196709877017632596941102116095020628823278454468841177877667741486452295784316949315194683896179150036079139795204841134614254472727407632417600078960949836330841733354369406290378837528754404210733030372429002316301061730074206868562768484426692563487356836990109919205445356893839156179603613653121638084690440340731929439798868746255999986885118726575448687674391981853768982224016619557336028285328030689109227455157715706920533950505291076405318307940510216871288363577880968435854630718120842655812540123155846018955434557222845566694418421706459338503844147408474737660257918090519285524956491924014158990323602126460644089304158417663966652916324094200944076856332142273925359614095830413901920217284466354888003832661161959623235244495003577786887860051200995169346192041947364015683880806105874766016278703980786656188774010026280036571578533245367896417311774764449902380557297279254868668023868844270257619180505902276650663633443437797023366673958970179271659378398332192712448086409553814854748773760215666868248391692412999704902142365823041731207709882931877341707766106046777591067825433276679577304635650510596062502230165197600252445359845288802657303352559942336548134489101814149266571886151012052756370559584487543911456615752166861247145197099344343764701891804457869009716204511728010179110862743118895608201961874932677273688433025376242512440593693311454818803575472418829363554536919017867361497999791625627850589736004665143913972052178385780296497827821309535572202329542936527502247935198202472785481464613615112840732940999854770157492443531187989866774687899534322733669812106269845009517492137882935093085625713129558742627892461366770721115060685061363720995229829840913190615625423933819981669092989717997111077291170331467590210664113074827685600402561934545413287994344568497338736275933907608720700107567888902871949860254361526052356833395611540360054761362179776939039270773668760904870160993192394217363722217282211449930545223214959516529440936764045304706884091847866841364259838944741870203017665195163393462873745601487283295102635823748513294889853800642191949904279716482575234912166365548965090238655722014319813521465934359372440695697123666059714266882929553151122670136603417007523014337000307878401479403596622995019110392243133685771764352587105891118749789240382524758850916557325720042119781245581901416291226203770118742060094863298309976622201477523560205699574913711690551436213037406919206052916638439377987126840923150740298819553274900561199942016887559378904197718320309442456940910623271001028217200169460544460513570612434340353987775255226752526742436310517533286516487193808174562676068549250919684124812083033690323328566759132436651674429567346222526415223178183801552896032556322431905363213472989280791574444171350353575519688429749768606478729764730806878658506901000848413530016906740068479356245252404106560173602337791575910643309668167807888649722722789916596493703038729681654049945028006303498436726460815240159832887455877457128705935593485504410760259010023691318060338643410950999145378860524163144604522380786640409890327989729794118237374129438987118279561508713956040066090805562515924754422531951224657230313528439720962815631405058052164617904204543013751635888720760011425917654541834605401526474905556031205076562627804665867950780862234183316362169424749428488492587920768479788127837314740802511045500383038292807622149301156140526885682365562153166353084594926954565650225568304190637431618606200921321575138599372519237429086342148371791720539611660128713953454637995771046196242667468213127143160898702448040269431737404298990408185288326203006273627628492470218499559137282074773749574532103896420169880166384998773327409401482607519598805539152260289508510468986657914812780374603327798370507382408214947931523832641652418040091497126737639166318678501883103475155721719290264839107155078843669691393048129333922555826200621036933348002586441554261093254171059792085655306749149166511323204664017047193609408721608348866876795485263661464530576064729193488225057861608976065088578892410848609739278333162957034308915131692893255451467060035964195880767621374851375839647198872783793479184354463770777298728549621711988605030380012508401546251406653103533753189207612180845819914021033319271381875366376672716533273407849321975164000995457130432283927350804335561353213109866301169320232224905591011682078336315020649206140489740577033270287253342175612944887498017601505205445114239974682803461051894424517298500852571804506195443690815930812958065531961682688028569338447188734250108228358860903106000535566932918722532710732202746516704284055232336001452149806434528538026607826661584331091303369617521525474714223023703371273521766980328301387534096911214719194317471777223602292930739994887625655450968158264900012650088272960407854193097424574951834026156589443015698713047969449138160170423118553837751599748309074153921160308220574906189684894608618874002739385938359866888646473443239562663738427808732378537768321703830931529245461176918445317255147773357689087448664747627463955594961314506431074361930684192360516752124115726403151953727859836210106432480939100889922196037627932562536961604140674438356148785957990545143312772400958312328417740030059266592791664848662021617275142608824089929937646532088687209175674007200751247260150389421445886413118026984356251268143860788502338692913423974850755881813612688122183698666618205774903993994633421927458073965644621352177459614745694879149582482895645115347081890288357888020944755823345795136058490371734972224641662463933253491943087675040194477503674434668822304230829037008059936604219199800572709480922623511531282991331370579585317887655625016990723839649803605035890272832780752398184690593495294311139139862097427693194795460524554671060119895427786262332627430366212122212455730244682869571218131202838359226341308014621600309563801028226838750897184672572815298567481749940086715024407097511353156374515310641396850889720143731643701552742389844187767747447212995045531701784162456760964432194074680420354109699869975852617582419125987424590800999292442303991187722156887408405363549495577277916344128351503433938156250870012400043556252032560549212358833932611388148585604973255386045959644435583110172279284242667051885906886615084492761983872475056660223510109771076155187867073411633763122850948468341160892553017764381443456318279169286284609823494535023122984666944204938819772462138505755095441935649699021383276413114763021124768476368365611137434940145400954808992473192068849550185296468269522102099468783391091099289883763699653407224327405882027851320986678845670504349327971862190297502445352082069320810176768281311541724317078107719818987350983800648158153834941584083700046770913836817407547985978808191221763528196459180991428079537249347753407605142568739327080888226940257404328778573774937852192400010856713414621200990633003250442452349424749732267359700618248573865669990981015425753380166385931312253566631211988939724961881657363082726557253819499756267329101394913640974399719189194291727936141342935614132269452183484325360123866473264687841327016361597153783111083533177738250707039879383984840230717017734750972191742404436306406423076180395816376996844093245859736141833982533741044913144624198879135787516582122501625622263429273790663015116306055015563207671451251414117401952768153256988005022968850670102329341648353041727217905544873808980769060781585432753913275049622814213551438987748269973795417042205274793908491186685225753819176366861690462366238516446140079183596500772445581889752581448379545953110199575596785360477338014226722920385634331321120367737253665955436275455254940933834019677080233909725958001666672138625176421507302022284021173199364560388120703262551001851383677263869541145888461795046913209943306378431403587540811060625821998035188608425476244460062906661706454506196992464801512693600916814895691253356398654407708227389180954894960906530745959274317321684096165468548778774412263891511547747087172895157409473171635360378132173876319458979853722689112305706808243772487698226046621837111113519191691889085584589298683634458375390860591865220550624611470119432311198625412953304849419494259678329045976378033974936750308623384013565930889000863831011661713787304816025570684800915736611880327050282669786586312405361650121773005762294273706776722427947949166497467933009693481154285908502824968585342899715010887086764256883664655939428549749722685050351257162666114180154257232673692423790672209165744628558124029635925890134675307935569822734429892540199807651083378382794976415439471947285686400868469793016812802199839078464300783428779823306723223187330083488494100083284195021898350433055513468350689564729040217138463894315002085609946300667368223557924803850070235330582043572254228556076572615554403942776712665219978790490458417454413728648921879384671329336911725904387324210073464143112010862133525204260520803288219406400524738086082728188647059782582761680603404359698977201793037340247258349488916648654575504561787824511579675074050975694897950263622243796478777003279797455069495113961110884029718457117102042738774977417182527724142413743094095300529283123566796323754598690749994079981821671037664524790042122295545077347057649067605022728214980003759658510016351668710281698265636021913362534086175577759928365415273080414475129008010104974453907320572437558933266502409744162100267328518447054911726451375855125803971160909352357609762380362584383666893095748646575889382264379063861313542323770556495878126336434181845637546816613725579051782877584875205694967772740901029490319756159089879833225411183711961724798249993702588946682054432813904715375510526891150236094943829014344038586703039659534809022786063611894109575056605594824495069940639266422718798570758386113267169168395800820973949978334813349085943436357239469340656967521567840543306921519480494538334852771617066346460122746727280602942256464508819975568080753345973716104836917119351386187887828763969678395599031243588384686169576407984146773348771756979483033933938604881585258342005067728256774249903906435555557037786245221461445790266478423384879702238946092014855880336352675695156036394211353516726028806834882397084715605648487287945361793367300775778750862431625246509944231980003916518248218296809840941582590840818162360979260251650415162506124335102613829122521003883462801036816478696253237485877466669734090149411960820260989255664962631594466710250888785826179921980481384828449480857321070315936785532175726825114332012835155200828906753778760475335454753792089811630213869664277685613061890870945971994209637807573143450295434997524632639799885831405243101420481700173454191487470796445138325769055895675732733576343737731101239068487185070440525782841890671274602854856893791292629838098336235491471051257217218923073621829465738977690232117497688642241067992010055689159270114477738626196161102684815273665077892649282740680181001395668955486610330968177988582168867917011487022468564537647100223977816677521801637658290376116357863908935117049144198576894374688546240406101662018212632944881088639675071581916388357111459716844822169358514267318360523808229279474303816771385522985070402862534235310772093187890132150360528088535939398748209884138523982113609416965511319117548987567358319400690957545302340009861452744193037236443759002577285594555877529672044836168110069602778652868177356229293485005428791152731738122202921614453117008699263790432561107463178713598861637643235440393580261152870453235004822091007500325273390466173320759617467817211121935786202490791862840270379381843631973656553476910390531237885359745526391766457493001233674820261221874509253358498199066192927047904384078791390871670613884900021207573874435788743549333865013077409069111453555621067753277873995053036075687756308767711123097552909373146073831991710156107273979171652571863737197866322240973858507315131971402059767958528971160420064395281898422143845419502524217429414658036645424877657234000847681596845370958750190360364399071616551916049462608601251858679343491294637900584844580384559281061419845756762867822375307286241769905265345537435959760790415057211386629700941303567433447228351380610149872444612026162913756347911638661933191441258559038943608776195980529073680884261925244888786867170112617320643779236129253735087936866589648339995400561151905941573977489890909437117273410772479762019305370304929358681599469148079588900795856544217822392913326930871181817720728490490721741198468214559061160708670948877969838332382296688657240114731249088881044375782669304147571293213023737652135043107243013074949167558945014010884957022409742440422945153668291992023263693715885776892982301542314739390715905268613305448156504849493214521478724933005961944881454446776993781364377606015692245903255637999204685774060244044305109540157167881860719394554952961942968306268269248634874844498448666547569066709739542443151685667652226776234326403970057580382150506720208979243632552107756920330723104098068448419378950225554068934686847699069538366396082473337174788635700200852916462496498069629442154994108702887410027993704657292307092230402201074686668953463257557243859366661599333765684251064528418671202292268264278297561322260903998262982263446168159101357626233887585787434302398749874216112920407661274525354305550310383001352617038680356541656497893080682594773269826229648911183491626700416395189399721590226638973233729706567424970741388120035686632258453238127263856763635753125252498016697145364083848652492047908249756829189584551288060259783740128689059936508557364202655451028976018782772606003993990001831495489465407730935980792769811331750233026494451959672452119325191157977536314981715472998467785204779375730457852445921662743492906307409687111574836331275367351449724733842096907868181704338033249213562201713657602534883924981511749637258498255983728776792197382689891452841423674319467329871980776002057699934369224448281854452522647901176374402577681870791945357970830948049997068260977403647463601101842480948040986851556161206611745456477231462968801431801327535347201605461526004818601377617480495703063271399101721551466541013614211988284778482636323665544339387161716314562308252119845215185734048573524832353421312632618197292286936444849858356225114152384187258636309310425948710835232089362565654709098472916956366708459656591811743241921884480471881782726784853980058394296983521884678766744077331951565353228145006766772510584636684775727089407246837767384057907772601253135994162467637424618013161889912447697724780122113340550878637995720534571767271693757287641017653081658711448862364706542332040871467914207508936934158355047612734605552258670877726818572328967859209017521212772954426312636691077802569942359189137334710746966303736096965475558054839506894148470234391324635496947074488575840937828627131404003211970189990499446416640377284575098626377213789731943856763859696703005629945496889859530930295106482908049705975028986512148510557897927160561872501923411853035656710432502515303014176181887636636076596926449750104395051454262604531385578215267784550853377486561009005992019923366003412150762799905594415437099987803503329538518918905846424835016271867283724434645019759736649703112308177820575789118995716754316576780679263235744067734633692101966592615021127332821907253791208338194297029474970112081760139822780015902042362160581394475452557621106550289071472823250530418579969229747138757308776344542342950213391415088489705289578267961814940369075893762213639157341616615423181800517739929799492117960161626922266886290244273053657192353091884321734191640715348232215912019056700767667890992749088827246096125747377210121987702001452748217158697745580324764339457945543109140543254684717147471793868677871139683696050333523743455280978591017685652318255637607200587433726858854927390940737570053358048670350125442693441014610245232747574051913341424225999626190617510743525908176422901262813306064443320525894445662566618464362999640762911530293772179574137747891746985660637525503376029720309066578776585368375355133913643596439833259781255510096479575572356638995401024471292252092002407502490145985537057694288334113603547956940898445960819840492167014850328696447350076136627517244952700970995369203366634056258306583506683667707400156352361608567866980624856156919580650879708097488686360526207608371339001583680436666180431349066210250203754318022409081237461946136666137254342696699638005743894964142542023620749642724176010855401469953133241135589074443093698488058384058412871458508925148204760140556592767764449853952234059920165032640338167934608933778013052046294423559863865433240125684179923940742675349631316716461289315590115622212445295333978992930919581788337380408461815571500134825612599010510972546769352244581999947874281130168641340942747260815416116715380996379402684807096502224346699468252330049330510505347796158949277383684997396713382947558650046678601158304801821115457457983425230879593621560530485510957662283279690408823108595997670842215996636107276516802420869978386880446581021658052553239691056499719328878109357628002039183527227114399473935522655940962054819128963329152020432100007897812399748370277526651561119344971507736446421765344085127337995290118355539973205371349338376692928310086499592491021527592503281657619844910546472347329894693329084847794984033714293349566809247310967098854954470810304102097731882497047261641828636825332293619060279450007887040017991954795951024555574624689459224774185689366414024789873296925882472797047763082604501474229134228668218719791060216567286133981567163681795089265866108701845045651537118253798661533021910500835404647609810774016456810652063874228649779842019279282592787534047737527051528424015644520002935894193382688765555786230837334990015316676666933925141608467354587870264245708962759775946511721183940247762372578395427304550407995044566859969675009814366920826420379610752081660665947564026645641274864499806194089219574551840923428156917094170344703926476017645971467214124937036034835261740618237821157565149607257782885762999639867114466361202056013553933901599771360801653110475882357141026672905868067521065135715380318517004407986459686289686079693504484009768902469442540938708780559251651168861684048269801191683142172151366425440032077624959143841389731617204029273309017103641695596705411077541826388136833008953117842909329665541771703709004980022110918263176849219899686155618404012008463133737314685160194769846617528579556798154710285030282543947095089570666359446042965145986912452875926406049457344249760877412825666518103783078221366336344859460758572974489571806570082034973932963467636216525485534958732291019745003772852334803405385547789350681961874801012586334575744995329696630521478442243858123183980805555538741961898164957781086776548090398196634769669325011862848678846724276862720288341593662177150238603863801218458577648915776858161749111347634092091266045738447682304691227536879685216989525396451706233935445476212708764108417471737868223692932110958746251535940696417168912070423047572355687381852419122773794617444318924449404666554409102298465587472213590883429792719891335850300856829417085187579859551325072750509135982338184275365831180223846441358968182245257598023779788732266045573624886682431962992271782188854657798221100366342087466853415756304569426317872921789138069485020010206819408121205842698976182613008321523905346833346719037182596210109526981978984280265579859736861693212631681922553597483954497012865232745175169669217887272568167259442944005417798561197858194894717064780333983958398220151442370944953189514426359414647247891659384652391244296552267997877930168856821640919601855205099321720156597485615129213157067605781463484016980509786803612761962132052456436259817881891844357253525731531269777423362177635756277016895153128910785558923320265896571188575387441384038859737012627729946299799693542768398813052928905829231257162223774940302723557035520936144499317909858733426949527018399930519860117215559756047399339370589373736397158115652732010322171006265914428759610779729204794825265480934711846008934337403533710834853219895239859851488159508279417075737287406772561033082745541767266382320146688688333319359725912814317033480535428303771429428876121886516338680696193982389317408164580806301685049881673791857730058238298960273590534884990354211387051623587275696381147676287133657715198092610765536949205625034442361562041399238057151672509578231957607797894773367258819859639687652844133251971160361854277843533330426966503265805106888935663725449238700306447965600843871998295677759960780146223614177471135534225782772923432565145515944862647227177971190153122831955493172952469995813979173930118724092513948131150236099450564270283725959549673366825346887051393559381573274984768641482256293388973878371145177314881676875474713758405007319730579221077874938528970128196242941034222388187156607991652456120311565355253347098420627706110028020352443624233752729429297801745564036752509549555416488284714660443433289679134216018910506776715663428596603680169637116334862240837047947327792380736400696320941039200655946793057152257747495801317728489491014369520986221571969619688762517903829772836488868838116102461712545158972185776585419334087239645028211613941610479722570381409379751669797755304366905459677475943259402633548361249884430478062119245161957761462956332970287965570262828419655521696420092726705345890119061887677505229158624824636452929445445978318914626518073376784078394860548877434899890557166364795627455601811966912626103890282239292952484472900677118449983687672169787504744838074309534248056292303363300109571690382798345022022474305029637334487853740702499804276573363548178180882156465119392588177098664655488589930712645012149744138214864793803680345462764795227254216092922842718458746742171958769773070964472469530265949396461114134027141595598256047355419880560752437513783780329759106746662993738937010722825982744435379193207277856300686889676300227248570838730957459311772305832637164924458883551358089099029033484335980876323172569958471974101157179667175145901877214760320417569162911399327809292404101133586564941077294874865349247439465603946565825389027119549237466701331373902978466967978835076163772206192717856789020566770448531203608249787828853452064438154268051638816318938327292823517719163335056302127034742130743833937880327869003449536933072363552157406921702724635099791501285706422989643229059047982250552584660098584764832944825122000002677012144589187450132420513960501920430458914593248594211685326161535679597834529409215491258404166845830962028911326013148432873013786837528328935605818923309690751613051014110797996609614565028960579742266924333551156818570473333070430889301724139597018276095248132475607651677256713891840749499446474212936589610281694181381967563510755351466800293912551787857435176280058061799920001097158181374545799074355916027752384254586414675411647602946912512347087032504149456439123232601283293428098733467365127071807657676977220082218763064942841953472940781891348258762057041956105752455086453126175680649177018277202171091429363677609039870597277847230452035561930772613518902754688207556971845900268062094308632065677681174105179787351295431979985892528801984068536048763823669225996367176445478507547759694408817885385530015088510353203407728198590607883139235096670717598442830993937190417386356746759609132059301985807919538931102325134838676565190077687058966946523049909846823993170281733413327465448248170728384490861785000316200068981756520272880950160259275403695126768078552734678691324786154589228379483744662097352361199578538501532926367373689996060827037757184377663212164090493468783571674455935382788763219106762507901866412656610780718797431227073268164487472286945149223831068222142389283424425412882629744881209493336728404779404217765849780994122601027219403729261761559618511252200220980342861738056303731385178838532353280600973032367912998126259101778242912703927134941348381106104102067956518929663056854452070927700232394266863794650335746374274521909195516762758678701343666638213223966566203980774990125110019553366522132046874946485173703790636351399984920018136151018319483138439970580247572981577614547191555623913121179105215937907151873447223631703027088650550750153722753200944444641211867955005259281075107708354456848376751292876958699403971510985197884950938753737832543832110062483091720349940699290240228437297818876315907274594368347694300522953194369682762816702384966764660466416298800605723487516748384993116678082846032298573386775647822821804210711588747938483059843407881972903745040561304549996526885988036501247047082447771715207785537372753190739531468235855004884920126458594082428449435775619720951247862759262136671095343726684527914336985624859222243321499937308430622622698326183954762490934371585258866679192936710526104501908891133801504756968750624587664085343224130319677029959789749542378430965059301490862509843732122016255818771385040288202994088998768837110442978018386764848945472235799409998496130864378154013130897577307650152289289583282125395674632421790177083907344951928939811770824793833335983800241900270778978432766283485049210541430254114674878292739062409987877119187544742297263906777778845497458213471276295625655304062750442027053769152384131022178984442941224772419458046326292117759035974270805631985926747171287729695671498132969313847199988688977255427033488993199089619964802629589797376821613686601589126689974048462487459764742112998281426610408740279410733796046851704061046839672739000246129601006030041997333887865322444986991886805866797086812271335386384941587889628423230982046775559478029859930533997693631684579944659076905238046820956044785255063107093231958208695270853412275236715903805884762172852313505641527138690666426998365086152487883014706293213988450345271068886138474138600350855429026136101167138461177099035804479514119287221840657421460153619211437932705398620910755340709436957971523072449902232454374294314220900094017775803426895199371828538053857248840898642856726612786385087683588988293186538062540994445351353250892430426303077737075455786824113500829035982955342325977275411043555719425964198001084330349152173288469670095277169648567101478138349568122505678803718600661396031794318800672999297048043484667911436263727750171621592572615106560260990971791543941634366501934564041955953302128394633578048422573716748445854399933992843334878481435212095330383438433197073145959211980276840122737546232777438068502688254588128492277746713834282729888368063615381159146244322398441284756759788958048823383388529987378121936656905720565186553477439119862213204248705076809176569273481692386106381857123326447828705167880098425202533298071186037611173895560399143849126210756261332526300442910541711466957517432828699016499001255302576223849151228421007867799143347916296896807213705382805348729482337564923934970690392626640999339176819518389564199953006300497566936258868501538099943383173239557302201944395793578832719348568255634591718931154719873864068023565515933555661197513550997766916021707207124357637483929864497782297599877256296850167128880901401008869286469087276792486840381568945532474629241342398776687409419458206314900715655681371607390040540002918683065976943141326314857100597215675697588451551186648525147415814596196610024564577134214552508437073832971559680624869196081147882551426594227152330863562256156149564360670345341651336678582768732329496530894424347435933039491094707702839700150295407334038345989095109707715460335418749341312216860453737815859176164625291590281504333675941116793252473094310951907398180495188671747749817259318147264621541003119787861424032002811708419521289773819509886147749726789644370390793531473226840922130499778141193093195686932900960567241610615598322939193217583456539641439872482392223442217603965275006358064925326789540327009186169337147508329955505656144435694769118197771177124013696709327835899331498997532888473780352108535691006873996623549072438734533522710542008631601567407426129440822423090261523594623947941650631892855600292267465135472307797544811603005546072408622136406824856435346405190527601280534879485744063512949279624278548615014968422933164013161454143070427730530818853128661724983928226548712120139119790636882784971418994312077119432007636238784039587696755335236434951616838522817928208833888405869010719099212026473508346509799233553947254625205626589654491134164235515819453252261518828218801934907832362905006408758606656262198679775140848350357507852687100896683788074321374855983739313368254751906923965440995243724159669242372035792441970644943671493416319481680129834451263892298097963030081326007727337961497389992691282476017930858900594604161146819705681066836389953093842121149864184208440531138524732171069651291463632877699863696282841389041997918598344854082364280570575982329490190829070395245164168872598566756016894366276701569215226384966689246470429493128573883918778794053271163205539667845525832099550271982198480394391481248768526195598299984193093432930332788646567380056693864564520093572571170443306768359826464156647917434727592893369940262737957949107134161592574559228304964852027602513475864322674809891024254768704413469646705996397810662585981755041589152551331945221205755153407312868453815847022539925525518157543933615006441991080579233071278825849864517364668561599610263796986223128810569645460988223779860679879934190386588622051306652735783681344366502780420914790074662946388155639197121514556066539636204935471667809094516864239287147861253532536729517147116213189984545017849268143671162458245593104350539047124138054661129938469311045029266415505743206717346169549321133949094167033151210870678594387483798138075530378302778498341318812032131760116110716752722158051970494643404028921322270807194569197682110156289007325826084257615716755390753400780736075466847150412437411700441080372745731951092825743413498350803009166667050655566320123507122332246770321170791590804915273160576458544817492440703841995986022190560471537135549102830669083072862206062766919662947657595917327012914959371639403035737376810214976295016031474911585434444836442943034744607191621629173471548283849425202686712969712164096071593954183415300264657895254409411160868631280727322476991786180699017187807981861260018323968004260193965041818036978530463434529711028903115779196258300864078899158906522873454771376963301567321600543071666337104029741930436231362805137565427567848337130237493461567185069440389079327289371966440054542974465954180578647004241649302412104724637541798794247173386096806037413945154883654450744112324610054577058226029789446430790207039787290047167193723340724440863370818212624055064523702617724555997837574924481007256656749003265500517106060884777908004851932682327032628489409353764100806724856041724824245569435922160649245170171111739217147512954473169757024927818983877162806162758321698241493145029146068088125591099432475677480906893007500874081102643459009890076550629394050543794603453636736500664934780896860284442491697217872190423309150563638875984337832285771059055404785405513355463182058222472748892530449910216770965110586671101394062269564838275478202314202995218919399640548616219786631111110693265486788143262174983885497144426419999198696645354353630691193198041305433676753863414344193617051131275724030134069364725970774015746226309464454098383825673510364459975306707724873057388970145199226807231778241729637960816539700463451042946957139081583272726808847478961879220672738950804757980979167977386903902249169044165538886926195035200399242120496778406701364470304768094466420927123671369604631022924060504125032304492836050053000666145601016646512548697341334843826809654410694105972875915800044414381875699171267049779081944302998350393308313452263509813049112016134276789396198800722715821323689217740521145910102806319179772571334284194819787821840818007034511092031751316190668314274330491932946926969582019275522268279758633575028460369930021170226451921056268876913538043623019601569409233489754542901870045826488771548954163085557517856186089558519181448339260736493287075122858680512440361188245094016687690052851603342717091266548304539201092654015700905713197015220859240736551939649341817264480929546012418727107126548710835646142526652099255162141888487097444541595932854119397679202070264238449269248428281670570978966462540665880392066284623485819422524630400528054841614139946530690408089294573193687706496651436475707125149027978925903530886001819452067017826282966098618540735532394800723448124221858641201427212224260286576105475862220642565740730018023524447117918440971215462236878279759276001496527780569810905772618108837360602091001466168599480000942590716050271768585610865137082731500504548663179307383519760262346199990416964119784650439076079181416406895509171167647349164638937781765641131129374151047784742086626187305647172445298746596447922063007497602511739204476781650863505049968612717511278385560101814274653647429502057216751919048354808947214899600043492190871128076766423806805254528688956886021926692687169749770482148860853552556839431269479700357747065114668056821095416789668334448868097427319185508403416396154789471718863060191518213742595875548836771111487510763597581821921707371870521924282957304612070486122725566641432258557213057293839088929123382833039495412122724304401613732628486397408596417047794083037801154048012473659908778824732766233507829502052314567005501778289397115759891506133225544264211364754468597833340535599852158562371340782851829012751973474846121848255454863512655574180975333851819841458960672446526352896875465423754984292327360171618566062350065858912899160050703284118772531956486267040220493598877790614069327628653910704807047594357145747369485417602796034964135009473007179807508252128128734443845506162722646506050707075023849903927515634776980451760156118300992581968870724948046995186452574540643377382494144422346701655365339327699363545121339346521732757433860605618647310148531014803078751639015217955397636479816456819729682478350061736514735974101230278580545183863098107160909277201192325296730807356639391943684933428418964057990705702705756760207389946590412547131688927767059984158067896114064733296422373189391918291366526279334323911689518836647991079309325541029652423032049089260537250200629314774497950336746559798487468336426660730532418034571290728138140102580401652559413330512897220770056228010139077706481069695369189783923896451796477041636180054713941385723628143507002804072300293443283860771094091909389760699451040643195043012436228218273413792639189075369513243868289298804595393981091815959684040686577309070781936867273607504544567571520350531324003413017523904076762811545413580124034042340419094550280317775976353702662934727082476488174341247013853685451982187137141499541120548043705137622948838060090333358132766559777002741336721865588129383792108008903678800285535129932713819534687015137350892516730237203471021574809847538919681077431368091155992148528529030533867699930659364042691127787014768821436533647607925387756302594201911036808170652342709172673304632181231833113537405784826075501386711324722330992628398433859905477315292434183491240544141552591018198289271323582623604133112891968264069575402148669844404132082643292090037173818137479545227215654924628825641501566415462878384067288172523614365879901337672677168230055995691603152705516088449510902958264553087162276204866826042300508980010501791572786790629317393672029189886965691413533229731390424817206293006437417986192561638140327619944824829593297434380384570841970402069699542468807351618321583633856562608136703857575118230338689274272660090838338539300387923274355610692588314846035939941961968310957601160839051533937574503298409159085540955170829972387647710553527880588385554849995961139030432997584771605592132981857104393683935545323491764157925819838959216767774029736199577716264953412328906784469830157750413043079846094365492226277828337508546350458187439676791290502650514919954204444428476709310077819743620825066680482279741597331086079016530404933245385669981197262097291313884465299348241400762094030103264494403589647792562521527323625340927046191034876299739431230220248783982361588098808022760060047423154823970230872466843437812517043662786305831890221961623329738736564017186457070004200418155201019327789963813354579588755350295488971824435309138812827927672270797892338145395690230452191336358826007761266097179644151831420350851114412627418884032133478803285106168755407586126614639607688382506009505309387303013970009570178194818760466658723622259953832678613848976328363523421060729154631799740154846790772019502594631484021564749658413612919414060461569912748203023964744510928126831090689149579063451137487041999899786872830147640351589806340445897935851507166693460514310831013023852287444705908104227985914979994595371661878147427058233621697128956073421527049049804572875439422172082032522407481078785555170806655136997343232440874103540420341801684221487467651830770169711844234952806427138134651034777018347693236179112590134831946586660261913167444730743532543163671530981082381887596402362342709285580723804041346553398568721980933472181924328300697058233514775826640233745686268799930363033449704260080940398510358789657391359384888863630879775095940412228733481416276125990054465008285318573650417614571227180049610262418791496308757452553488036169237022545805166814157076974021609816575821888157273672919150208631791695969200963926825171869761861242587361809394953031654406627316944119336389881776558078558717139244290208958679698880883775134574386163957843257077477802704776032949989612299203369848232049308695474216093312227264560109123215971057281495855438693922273843568473184538654520106466639904450131589175013336091456405640014905804501482341302609544971658373118973580964220514190600837919382988958151242945930185451790661665629974598153084840928546696436562738137171271316096477167503076746026511725562529161575541441641564225323256931019261943228495178335388832400268433128255007661548690555408712711741589486553693267671096848772818340874789453881700700468689382097811975374043169826557376503768408997951661032225568401234833749225638748833833571985236211608087908000529262789266292538484424791704813670286767017502152608716072425621020126198518054636048433999662969916290970667583562768316049055417946153433886520124227517838253896873582494718762292202315472131354200800927936240904373067265652790187872483971051393295579075013889690049129864824322931041533938856246028201354716440276057211672326697632161202846741851723387033356099473782243035407312157473522371260715494155886728413100123100985479325441631713467481858367982694231907305225059539803939122843851092597781932091708985292084430168715644208688584476394897424641293007939038648860039846236133878884590804950442063680297420232393790778600011503601343324165400746458360448096016558619836875046932665470679043475720247823533086202445938071924078866051633901078203969617441511219032765646406266312175118139012784248201920874307097393189952982861727308852992002832494589682999230740365142053075503019466889902361159482097739437709199902208730609885644741302174130485148906634789132133484856803544560506838390347331570091720705212362707330939181114803433378798474858412812075869944438321386452274791720223596435614221389247468334536311042493356498212916280974582470135171354829493993542079409442320129989469070187772664882950887971959786607742331592304683670107687892867117870450480030398001051810116317308802006124515943615180230239490187479316414500437256134097746461925976392745099701951235089225282420457336839981242129018068473687810539434805405335538229175981206413677266486675654428600930234514613084628481688387893273375414816174742636423136841097023725691553303082451222993223824479764787942662543968557642271333288562157049668782657147540811815008725756131737430526523048688936895625956537866300976705665704864709954823679128155723819628986253287911513350691432361811029635273842983102586304277646557811374591711163745736128991660274115994232721339767470750583762256596659298833851081665265818260191231962712343786996241322556894029914303020717303630932176597371785092629014792068714600798789853647495920016823777232803081823515855169187225052348008057517650216703205332085400064354096229463811242592474376973995784053303785634325378728447952600033915142293590951139554162979131812814982986460520003525529960983211319513894539128882507882498435967932639454387510989908701066989561186574719249770420171435797137743887587901094760649358942921096660528707284827434970675451936692005789716222194733845058806742120524976935340247111165069611620859014657397682051815895861319553579290059044629845786752610576694428946824174405063884878613265900854247430172032892714796219137041319382444122145650613394288032686664588113392425146411870639271043875356387087466189528379363517104068430869038746832336515791404579827219386836874151349077818168882555550804823169506327836723619679444826373440267636023853925043563631118803809271626604373255873074008060205906875841737452462723208713301084000956575735051063556326717524328891866864153238138130797617507725550439057413637714140781868757673271126765353074962341343410896732838444003773432442279063445755429483947860656183517770337960258622070483334000426589244600306285678997640100217560165741000527072254885376762786019220982687064243159037589267450780500454653794791772058308148356927015543943237643442458294572476181038672145732287288332817243063189775576787823401449928714899008335931245352420649905314139646570605026311942064364319528756657655394522416080957009469695040653810456514968817401835473522280874681006776865463669705396203262706003483305323409282851766403141327613992625590158898700317638825590809202519053098978780873796943643738300099730551305834579731060153464157693776244855017398124321184693276200731395188828322073171917189596241732622944409668022739311664571469394883450961724311889002860402067398348271887549853096549029970225857795044715973927330268442958586260766606833062487025179274285587165397973725389302330543448809984632443244804763677609479116052066963409260229291366157420368616666474253885186336657191193344211243281714459225346294816084755651436751389955113966550616930044523712707009806812297140898876494749998088711997074105136827119301610267770911139330117607194487102482232766862044549280467332266163600361852396020023404634422204290984718814916296820088914067117267234522420188386982227252767398578358351626075341690714423801932934145900696514461689575694546634990180115228528886751240244271788525825893022665685656129354231792481388248409012811326228829130708973803564784605453491409630774440777598815383458479298954272778828414430131615246504948334747949011537456188878564985317903184084457493274910606121150948625964672085429064026543114670142126294142941962427856388574802381052919055140369513382717214020137020662116470210745143784941765934358015089314587274913964976466315962577839718019974773123893513597471778533768308035775021568573625813701726510428836539502931177167828612111947145338487614363008559604065690582704352669833054913832122368669497579976938431516250757343738507558398057257932489191386817269917865718377363073124977957040293869074569994607989112529636783085852082077349262270924289363641881563567804045555676949891834250122139897812074017460734758508249387119068773942554659645330997874059053510584583744429098474047077001985507539931911413127919798722910639210555538581142829451729114133370075778152447366320999253613816900328635846127751414335083952904200960902258150951343846458354244226687720783660933540970390042616398525957434715747869155272234415722689417166817985483646671728004906221977404203445734235544715344821422243983177180141834651773406119196010475492478230535014360230798332471091512728906942261775151539660103845904814866491907883000772981453679336755513473111326412778250409454110014811575123596017021281845851214382444114330424761276618018915902697732633727586037758006555080043350556008465396032223119785666423483490795916971244384639650306205443796951598025482049347038687848590994575891268025290604336564804910945469784466344277924275642658753196865257860060291983473718394365594671028514986659738859043286321110799660858801131774852074145202843722456787189382534954918851774722415084686885580959198631686347078120151895739377410704975647279286553308770971809531625410377102793658435600219219219466779135269807988616467100711535621495635489371416846383884331505605292004376047753323232301509860763722711309656728985977234372734325837877782977650751097226135914026446619463167376591630228141423793451182383418792887662602283998963209783827915932058251913172165793737058127615009091581319670949075265062175077515796973663135754850531353425750993254897388223371028057410102259472037391519867168706866717222442173037820074848469404612276044823821702857941153862300663575128760199241348388806659766123368353315412420866734615125469255917228615285251098816477099656374088532922565369469554275601218433474045283467916963273559354097909126270977641137739894163446408980504849954748131420655465552752648839987193419798220609939505380597764538120342935711233530775263256272685520827508109081294582924545275421225830466529822066927897357595838032251507903088294900822119665999833287473946676858305068089837961694815434880496445240846431059371515042002731223432784622843100377551950320659968371377929332444845564460074703823410406735714645220981137117184843860429808207854878231054878228565391334116386538147967806954047505752856499974321484970300414037876088506336824584637937660970132356734780227797782058352656089752695456947778016758997824344779151862968105261888529981060752132357367709462074971681321928492277120678846570772679122560962622504378130636065643708569831957365591938577906719652454082594984918938742000243647510953676397034037468368029039776512146583770152796544097630817882282642884384679909766813463752546626283116191440236888819675343464697053579511004718905317253709773791313541457741391981258161279824903047705363128374793053751353888655870531844107368534596553381074266842153579301975903971489070830777504968849469858731514452465660860388570542705560642955200196219314715539822747491914670266798205472003803573557214014162067243730605749055803871151460283932867912869226473161663389966492779672347910892667208033046762287670856226802698392703973834514389320463442908779098266912930210894992630226657373660412902322242523322045527809947282754427755264959468890386669708699536294105170473757347060555170492085661708139996949799795429351827642303301796119132924800717720784930329259350336484613695342460167999970838508267746804595175775341502819613203965852980668842839529006012058373015274259018091626484291231081764875281979436501432841717834162228654857623490559290617367412809864327502293440970581955879372192725243286455227242467420320240563933013218391804299200331008191094829427333021329101319037245509890371183806899635197588673840765967456245075602537221585369550124591078315013832235519237209244476973385880625680578344550496868496340390148186717057677818844388700280066207921180392962104317700973891416295418114769361728149976707074710630834004119649338641966052285097217491752453164816258531645576593959838493564564173751170181380714979323571312906330164332225683418276297363094921114592027956065754344526982042977338631512333816187451043944346636870442594563211666722678865127329967083991759363753142928549598410602275918256985144249147610658851561956251737826269296555666275108114838787026615258432624186586905968592653013842063177317686555491185197809450592911277345336985680207117615429980817532529670325214150413811041350312470554130452278791448007212862315703028822931899502748391374021588651599380473721927022930176859013395497623020998294306571534967952426584210667159188977836540667442751168816446458089262080923578445773889891636227437341825656817595239672836266461850501541463720955588657184460798347885325512091955780321384043832090603230742356954357305550145776977150101730777059948228520628676031655352110124628066865015463449129435022147373387196743390200459628712159315579052565094125314270458523561372394735470272961713665674586035026200425442788955502410483232845011423231659892265843690523013347431525030685708161082729164088210279650497968164739895439696819233429695902477035955019803528506375044888441262224762590388280972869947350871980372449122914287633078751055167279864483880751420595430493053855686395654089861281274271079073606823461903894701172989554972999242307159589452891731941546105031617091251691612811566976492351346229929356529186689737265522006402726641313384252936928455646804728113012190173981044931240046483347686889403424017031567635554723813125450446861390168497587174241032316157089648576763434675814951467854252436827291726895313406331330661316983233368946878584625834594176122472990208706321733090520956437473586592128342431366335843295669728462342826220817508945683587759016701192575556755284577371316390439542931490067455377184072252859433431461045086012624716295903932119739999495237735842814812891752435741607347313818879036863676657900905784134482775097285515531945071280687295421950542710855159454449578164182607247601726231432664176410664622019630826423337237842861266439080138637957352220361037838967798525648143088270095093305291432333883505238484969864419942541732720634654569316505073802458672465396216073209390277358724488435752612821593393491146373465627032684387481677979231846002811887266514094839325363894910523510318449506043949343287357706659997524741865540218513704828068453457113470985371897344042455771842397940583092942578680378119087283869555607936058152347350685225740214885387633164438446291862807399168528257906611048776354431203044313392530908488383869108040653515323502398356940748192798789633458787440299950931125118747866519062457572677079028121784732125727886557647561182550605405681663855602983008605978422958560569627221825480598756220547984528430478043053282360661532666914176191272493037082443908665117179781809159608304368663581831201832124843959631304015075079062360079428272212218842209164993555239165692279098196329965897591616193980735676829348242558490734448204196560770023545532872435269854500793116797183846397394592688039320666206828466194785934720378091801022000755616146694607131282685986386170219795859712832555576651170264735245648753234421852531657402378070739046721781424832873640235253444273292818392603914034794611428803339365772890465231226541359174259794620120318470884234983760463996487615877840549677951427349333587572262347789393014021841300105610347484584467290508762437766228918835655299801024087123590361055326835449912916582670443473110479894006528602311535555931543016215983236532371858029664172601502695124653568918822684078329426631047570764187703331303957660454194848160293325866774523935250246943768960090833459598434236555804470407729276128570219883620972159961792923875916159062330975270700986005074136345766437007965176522309547183107493443723210274537710793710565002454237221127342771315311307401243546125588014672674677981454400965703065895964770446263512306266598336332903780178832680177618027677428214480264733852131002684340553829577194182885016288259350665857263840582134914880442640388398111354158372249347183558762687058218341231015567989811429018217032250942962281060660542074461784198255220693082878016417056758260481779613121519228634861393487309508275931122774727274684896511728259691979022886053023779635797729668722954038076986508342758486461636515950694493767921515255575896481692945175687928381654863597424589424917921237855465845295562482831888550659602012520147353920368805279850129027727221174662568307429251525023966668233568776647445037164680350932140225058859251276391263509919231179565226314007627702360561485712703904818365455676929324440629355430585783420694062496958260872256988513659144723393601824407987475430479238237335214171985146023245971719914626534306208348121484719573235607280874437391212005995633250233877888846853818753913998667884419123078464376279106074668990542841908449133264205866367288565544783039041834318780543632574013206902958363018099405627187027157912109393253047852359918251753094381557325006403236213789005326076575519041979039378053015099537830413656898708089471251318272945570017030124626156949201711876201466258919692354176533438334127752763955418957197694847910318813568178139467284018912777011992615148969971100758060836669333917885265343711410954662937047304966060237605843119655582056103123340506734438889284812203390687416987966554840304515414043370426757939484112639757680528977013577803348254626863604820875934991138998801621640005996015798368905641195645161116426482269824300049026187470261420211127960447378686798362593559290840660146301172299327678263720436948140727124882952874252606187998527905603970137337264219855620939383383737834501446029720857107444932405816222411460422741651118621430434378275305447956093146895414449528091622900376270762586618117611364571060606609667228319273426224806401005016364006813744856420415016452126358055989095511265690407295393668205176240241512779285010749683057748200824551561981826576864243243965540730633421348776689230087973326397943522853707776190168810983663568284136382349009327871367642081897247178133648551418032458923792209143138918094182759468264287443763189701151822693573756622930248744064045833162558860655828823558965789013314261493614832919283024735871562922550366939912888419390123442150435630335688179169482539902091313544145671219778781013177520939509436081179252990231206613973285611157836331225569780402098449080192826889701814349844148268195087984155742766275858895736763985080673672584553726150542934339999798483338060810998721654405616242812528237248145210179592206647578915739645670976092445839315519471557042470657769376570546735964917326673536830606109798100177344283622267504463116561426541388163077803005438408096064581756339222723054601899776953724231373510610598006778386961332527939269294038684998319587410268379679259767579627634309815819696331342715138523670648080423902110681842550590986917155912724435801574779538749544447074171017359660762218850053044130573227733723967269012393059875953769562060024125845224683440625250395297241995430777762616734302121945764026143618591492803567333909393292041199711667101490409115914368798313489707280784064532915243347248135756929520786727434578339506484958352065022239362071075600053280357859840076978018114996911011120167438562826814509223941668970873505856200182835677987310916612640589672080279116286980530222892207853249099083575449097025980512714041558929237427403993934924010835432158102484890065485209795715419584523790506847734343003002521019440669613802837907668983227363864989587425778953963459816903163372031958409805647764933767195131387172675218237478732606553932298531018869924940478712704733938670788539147097653282477953346773074338768736201115807332894960121492157323299939545613866148340928437372710220344112356521647425568095752722678648070707973929002529176606375929954159999565362098895333321761054857581199450146761835669368060576767232665296099450098149813521755810432328618236823028436385853475509952563431190078746399313316884946588929245870637901351233776986985530654293941526405358597743834401916395675810347966458089256711605506434234280393740726664695456808868033396934376144150279869277494384088267452059483476192348532076601615433563347943835430636081141463813498013205736083598173481588602851480304230539557124229527217913576997432835360907431422793452963901121654983571471921556073660381530806521638135956610075229914744740608472296673900168912116201473134094973140987970295566853015137056608397674994967609537206768515569982009606851797080875088079864510092031349653817629081783049032999200439297648477584177998721283215787297022854327476576359731113008035783119195156704256445861604542879780384430161865429125469997092766125562803173092373836829966263193658781795990793298470769075814858141858016897697019733386868709146032404966890487153839899228421899804138178788476059975255591778759208211519473114354965204951933776165058759497947166547172545544163913345027975874166936443828204746274227060447376321946917748430879827857950260641500416065573895203120601222860448017645432692447629390164368777999563337256233420747325503125352930220156067387469538415845215632865767798886554953426737809873005215887700906915017586128623738731393058901477197381777815057042680491219609645139919973334036215737544945324729133078857834629455808232186019399474856919082710958115747088210779761082518724722854704294459773188667057517566697135654666575536226882683144263208408710548091337256818373029601279589926232947041640351706078885608231007883514598993714846325128717855124152887901449206939788972295363166281443920447042804068695946116054034057309058504028299535324486934032899362403588530324510812408961618112449183494590659735758230966428780541678887519278836618248226118774271975707643389332197761527200698315046626059416132003927722778271652214359672167648330555098688952740497354747811596574019784786942151750804330125679613861741330383415854132032014309631417241649588974286737995151913040801334763774376450715156009275270094800412185743975360669076412215239295038382139633780933115521736078299999921299748559258643624577202525130708605852508016749667393619729831891034999184265501335304018106422587301670793743823774634238229090899387681924647212414782988257411894230109781954390499887302820883366298503771663793347139599988275391649196067149145535298066080613062820627228833336374608271817575837969152295730563770168687218466630751238471424893330368249191226648739161438612785374838261139783002277734791939454476454794525684704641522172473369156190979540402367846451311601933998095470929555217053354863971788727971071169615345679649048698526387274353694546044039141891908719300056977567806183200046282674356317567039675628412231273935517913547566009658874983360540044894588728673967756352992314840905806484510150246454915593584210064009014533356359124538489926039583296817836902190705942409070555499813670095877771916460074747095413745637529172342396526879922631115743864276805825691516959360694149649451329425010981099994486649593427198837672684400820441504591905374996289846679904363510709904289657138854179866766612435292231189826501351769203180042205869002892797649832550977003550651239700777093531952008553253469987716838447393640677068587053537699208717574915914278415421842305395050137183321615702181985543501942986678334263080939200079799580961072250193413740293046618819503385884745572594780636402831280910230770404909052996606431560363750030947322264765293309754785237587194455840058089725295023005549955514520712856145005697129368750184024429813870395486311812536035581345953227597509539660067167354764253721788877765855170455141731961277541109783501271654175122499407672931575644567541902964702546837173856321805718265199933838942928699081609611285425829298737956651140708148335223822255854024686120439837165386885311113266948824505840417064384461512561201295229390518150072740715645903512124699234693915392828357268378665907813907736506568574571431021042057153110211814169898495105399008619163161566717006379102835471364433242295146879853445840945892187306518855789789389371200294739545075496050968213990762341663059847978881608873634714339754292229893314209210571633721961007084883298711037813638286283271205940419760995168473918279572404214913401222282051352414379192791973792710377550164607935446378581830592207970043553998088810677354242533122512380741831288111506810830422877994427618561827766170107309224658046753100317623478809041045439043667687763778882031118573735909561875702880198392911682817016661211951678525760598475731752125854346933126965575668311356008871613600316326133890421743475850154655875928908758487962310638241524374722590697800789851107179052567428533290629473708526468679873592235565224058330427216861674736683839627580237081882572742979010049290852728700918938021952498564077301913899039048491220885144097779857297779062061211775665589080322571068941856867435564168041363024304093780918054920280953824432007531111188966133056598094809711269668200934139862159832480823205048810705824641282676560681115745363333587304509703952315339531085702812902462809626347608119357822083155702151151598794722736121754631259933034404432327092741435482281534337761026603671269117098279963692266111845351099127067810576582283225068233365830440813192868807739216749078459535772646011811393393983668465965258664305965362137668530681729064837166176149716525667665937966166066063042788884959567738030121948408190479421545538090675293551449250948735251540290755345112387694483805122506693152330659147215822938367892043116192883031663499348034352954604543724457731432657149189633386739759817176383730310946075601019796137011033206718427114893300885678084726420100483568972938062054080026180403772009435130137556104934414781894777026040802973965439031647044938663876081608459732540643128990133473171769619924695282884923121451483874763927376477023708008518205816470993247962706559162285630912940544611038766365265781254343665463815408223504014464092489152719183336557325852757301154976989600486441242649985127253688065161269419931085882125712424671724603673700951340859605543369795268507841892636851223153095409963296311648179099835180084164599756200719524559597577127285439521788699417066793477388871535861314583134606970517656691102633657309510472104123109369483652608433837034875331474249846833451597032975665420202868834984696976146891547769967728150080491806137616540025611677459430833963405683635071589471718754758491126540008192617497989346721532058525735596699916703785331575814483949160732964908107792556807617988111787089427531361905248622358998494089518848762055456420761432189287460393006110144511795629318602195336851377890613788580621410232727088739069578790833337228745512572929789990541533719643486308069291255750889495678347035708554991963188209678510669365192296373077900332008505465662466617162552892600101479672804388674190412888288248685893941539874367694466310136855323830847399118822562716642521408403645790602139041500779132577347175032036989345909035899602246221465776845767648132987373200936199927073580914353390879582945147371340576547124887800471983396882988938980471845271589772650837799208982744698029127876049145676691327183921289560345823761409131215981420996089850501679758753414500958822492870286179635095835324080838649740064211916727875748663246173857043843556321680473538361378157815954736080987793159863832423696393969236047430571010140847570744451169090739674353123234819816267466440604937277243718545864562540062776338178399627596396919780355523546524863870950966773541040883137185751135169566146614977419284617724230813820734163734729740827689339109367544351543441379083918311102190260940308316462591123276107254138575296804288130931466614760923692272223413495403712119480034956547550910523106334727526355566108723600991187145213141283612515366409890105172598804708705344353215520517533312754546336254017972089954202342400429293621460320135907273225832964005025729960120516917738069498077663950588510645000636899903644414838739560303469595188187935401570983839502052099935389118396801410595787611278219908717911672852675624822566636075030380042288083454352405889211035064297483747146619076071503419651303049670437233441135372325069370811263816548265031140748278671636329391396371796573990355179758280414616282229266074703714084296698658824533609026540440088611136425015381404900746304672240931342716061725018519707388086993166744198213093293625291150512244619558762452381251237474192299648446598554276452340310993946725459181420580535435632989258161096946822822798015020594685497056394589093236095709612167472696900895967527613998200737702647737300467148723880061241834110250705629084045012985821722089430601908765260621940203058093800270542704222264151976220559113455461721310017135640244644905290371327494177659248697662645664791239118668907524238390357525117960905842382093606894337368736934630762375014939687155861649858562132311286584643001338005876602090092348094695252927440303930786574866660953778947838982859837767850343709762366516643136884427489016401578926315684319937336439814149631327241367617971950977157535628114240737684811193939799294272211340136672273874584699633630056703125391837514697265854136803711080801463186890911655251353857637575299004074038008243364748796983918882892387665966887115121983125585775756232883996457655250423000323291438302320034398136684885449766259987130687599555362305564143814075461023492116870715478506874359893090974433568840741042129329479197072448314583207771000039144175524663743343083380985756802808580289184159507270200594552208264828340333193295561175584771989815085972694461161603886641679901745384798544713951102998464030709300413380661132364087942101173541575507387824595327298023184380963997930214405313590927401137871600982256092688441696417624750422373139775088573043467574909204521846322750536756861686751207788352978188103382035224100453210994953218686872856670527956875788843868423567694626503154266552352400301790143917890336111386611970429987033907740093866068181208563448705330892068301033946656468140650315366259355782219953676813152465564984473824453603380554303745327188359086312886222028090003083670756364351349539849341150010446827600778333739767024318688510802510966279095624273171988894447044557825200433737851228887007453204754409551417594195389052501370667754659311671313786472167214199215713979259531396644840999029420527741689918506864843305736674656986472003036184771754275539479049252266526246170883159873174148739273620469949475462318813500145485457277750484235949848615650773092164182129129623525530075705979641714054964469297214519241940365076184313204912295129822437801874967238342999688616948625897390789862805639593053171703365926206520814416035434104363525705274043604399003468952403829853093035679201093332854488892589523325192238394919849381704857948827947794859487560750401541772234996965396326348327529007965476698449899461541010330809250467263030277153815385905146676719751491080684786718359083806587995889179268871531610208092714977461132957445480062863458929820831567885465950758444817007001004600296618984478362450513765803145723121030772918182282569232477566173901994866525173361831458467799721829330703403813869556655062860067143677748591805651350217308239589746807908002325250799240042511819479145133742066577855879985042361284568778106682883829281879063820236960777127889946629709397320407502469010741238397869282300864283076620563667946237892081523797028423302349612398813899531206057395875670737637430299198212293071699329008995861767358815188248129831076195661086423938499481408030850753300671053721263971821589415249102028460578129391578428172616620959793803707093388670653996680140668860796120807258050832278363189300030243203415997024977929031046503394237893645920469141789598206351788759556845840633347468374131421426769772019760486451233770357666233422207645700018381676128175303360610964541468418703488603400118315083541752634733472836750697650099095336443960553031478338152057696539510152535125648271232845013501995526150893444787575631008333840380630212048412122401200372522268008967652461722218530528346511809769411763404031512809429724622792758459885710626196791146818761038627114807653381049438124638633764940517563320208474263449774925416294073722584505035870473009996836376950001173072965357462182874867754900716729806652574311064971670581804063685697058418398727288170316616685236398186581243590704247074264605131109732387873277651306118169878280415009556494405158648348641839606887080265513343492204372126389730457737414386161290178118470979014519046770020219837600664497637131128772646289928279290071213243842819118375758345226691042871629190977226184886795143580934189916697371131001724156986620920134741008149903952008180606323690328013552872496850920406373469956245517359111554207940920807085830116207440289155343991341056172141754438307367128725199268799125376048239977792343335886354521417727607251836657901245026357625204769851136619385131465668025676951141473336052047801052309726627065163486363653136989461174188416163337009673182763111092506897798385667893151701351291938776048201270420442981191300066026814207620171395444432990255604025137166567771598189239891337674977536600878100474315193543622406070283074273725943881962253222483407859484186515501791836959904617557319596417707267870164127864282554187680509261714813738767415004103130758329381364638788888805726598738359320442142926736866689902681283473547953376157438739889826319398374146422092668958738236350244283673149786018221765942468310086695675430486159113566638424904726500805974929443565650404946878029684114431111073372020174162385856686640542782913164984844181665592677170703119699272892065958059402007870975215389559724163876501001318211298787361536790370549133571402047952393816222030436370594755935194871386242437993886091256728173534674234256591384204748163877585560261707903006396706111049670875303816382240525335170194110348906663411526455908236299105424494423194771888186748075344597071628660444054494388386837501455856158645842885079560619849212067774161300434519266564716903143197752795231602988331062895450592608991862079241737973210305401072096258932080313809958044873769868506756232118353466778937109340801266173908513091998902687795385845823807538667125206484076785219105718882334060687840530941362751746754722241213649674328978279206350097843043569617918191356846867295529386845760771301045849868985866252425526281626183149836407901013383431590615343328434053115027069311427362225182357666284629641646127451145193725296644891520481089583287047217947493377602895237070402949203170687123789538751694331632829591701583590351830595770038996827389266012067289465358728608375324165054217641004698092431189509558484824515086659730494056864590008408138286663832102492627840481128265791714383323088771510397755618595607514163724228619468511436810362427062093358840724857370116566069049993191489080101451644021028361965341913943858717303116064595957772208005754206287671675265634095522837615298621469150811221736513208072860024715652956272614648559653615531726803192629832063825189079633496410124593637986388293788886646602498795930121378135500973346811291867135215421191833333417890349722939143515633344528595741694508333800602417102584785700958942818750961517417735937098855235783009540074575520867570669576274126137945269899603950324020491664088206303029935302337625580104007031497213599625762476456010889659770495169307741770220444746720145057588312367261130568396126197513928291247722236871803099810976330966211840020718939501190543529778722494947251245786719985677637557015862610833009466903454484794227937482957625280641561867537862608742259780135595663145242435197589120815409979955997591314516401299373715373947447273671869449038215517741361843086635832817093152235473663209968300180615323153782522886624365836110422684805327076444092397452665165138511443968644905419456046418534659680616313425582996431100382719966227892818109164632308407114661235129501722662830207523185255244286338723262966204636059718698342577860161337458942899464050585794091443117410224003436523362919855619873872025492831666787914557272827283551335771098501465001649355006162824337096256724997204619294401038229977204041850479991086085339415207727383170809645303076106348510527242071389871542542560633805567981449777391440102195042092287838709634597431945492654892800160433782242224617523661287349541615659984172496940280402651729418236345288262129708148924471781839312445136616931644329384820645327740181107917617523439930728722452667359202760427017065552186104728056689888767693257902996559413649068095830287126850006353395513583095187923058550885404134933841308709064614924812338795991108213524773285304849952162665777577854735867290513238296797077590962338024638580598778419319239136987271436601012840592511729202544100494703588949877967596690375171231195945799901192392826718002228792548877763951371768248460341840707309211938588380995046573812052314721053011674890735082184216652806157919026258546611188435330381956614124267985657455029529752771897321080182299589657356458955067789031284862109820049738552736894576669790120132694708199186131279951931963881415642179224695504875051531457085759068115785549251101099010280632913435380686706826578321337940127518403266793898042386425953908786508190430183902141717735079383308774613230606136354225021661439111509951060608814410448493989139833829358427133090056821039750050793982040668482835642345304851386648264980400360171724911149377372162931673177581588074384587359644988227669719758559344990362850035872638191393444075012943835047170381518839681615627276199310156073705891316404578065365492178333520073200602930144312426724396832961844413574547168207635072733412175183942849669703640785058341738313111122997736940483484371678039924221381527061249661500106902521801324903890719252198818839937699069457742552591326613656674652424674259162789782459269150070575941101700341137028971067167422977330271606788560577677484115628416541442582963745700793675830433117216733846892501572499218856368729383313871722010190983799077452038531596683534358766444214722130211990745626747325209029019602582387127963764385479419169811346444903332004701187825120387472354125784026074528592899126845875848166549643259457720261296566506335551096661333887623678379319669987430359787769721504079485328862490861160959362855085774688527989204530739322989137396275216923569829264497409438128464548771719015670992717945870405320164006344821090615569542685512423222113340588927257318981678958803731043355897300233477300464674193720531080608479900206541384065139941975641779066011452795864466778668167732797713113672962293290391661855956305868395068406355002371777576001784401344676285983481971872548952174666519764989628885477179131371466848445616263529961197367794375089133313250266211142245846709437629658297673103738622335988898004411925010930372990076010252160850405879374231537086218451074219690966733376228504985001871081615404786044782669913593353984440569833893148571239061291776897553107141401894236496754577815107657244087503702359733332751855635090224797911169018567218782596559155169617251112420529431237981055732917294203366692400881889548302327061935551825655087116597716530850864578610709186437754555362835454495406169544945205832531406115414455833190620543362056304041882388354206195208745511000274781549865453118269741434826778865170716337111531312209176084388784165399062517701261466429329705693976028138534963844360263106060274091052543299503278558155054551029656463710277085247185229922796180925073242647123975570307040872853792028061362901875678955710093358976544910263328393818039443687740877418806382434220392632022999292159035459884417106236568940445045484023696608064126484287050413524643321387244187414904218574395819235611217690772527722751872965227202728408735371616445177303226647855925569462254139566619309701160585040958576006568686503261556704688359301426395072417350841114488665748539312188733386500973928406562105329432935902354080663984972826059452086768979771538779361097019070225077743356368635478667575789318008824795530184444292444403494646447964329253165860876462532006446004466888868791365162506021183177099889267372891126272254516554052245774100492545680990800948909108538845159079372661036390353618887628806974382336927169963056152035029797377517755265514899380223232710285671099672388379847977050055623641394946986563827383193579155613668814587257037180436003376560852593238838340863279733615190687421099796515555259099919546744557050686896745363840304849103372800923555435903507285533922734678129630624707312899606146075834890616370083398039936555743809422894345613674014666607406074159375559985648582738943082804676580727191375447924097197654139325786099372096835165894010676671916952812157977020163306793543521572013181663661686304518282891629574475700043897983897851825599310192162706891309416105324475244587777786008748503248313068264073113751023162265758481096776821185926161858482551460673265643793697400819124486061492056987666547454607470191927555685204684522093303135231659537677290032470669123170034997683853363296516063775616800827662722543915822576731213354478227828235977508197683281310420308185685785843899614771831280466222665778794910020059682247712005766377716744842465005839198610088351154530441527441894514588888255618727016102005952275368331097774234608449404795351233739280627539605257372607424089118851625600851800716900950475842323334780188234284943413557031481973746075027683824508501401948763993594430912901322063021601762042508571970452896741907950414891178680447570908737992647351144385125823073758940289142942939576874321635254274768472352447267935471689940342940153996608649542240101974675485742657222624765329408886300148330509504945371416798820795285336977680361674728917478979026295322473169851989733160539699224248080437522743462570407391568861079588447833398314460121872133653785863584815284789996640911402631112414948184968332465385650057489894825171697522254461208182929620462051283304832666066322233442701847058000981681431035999799080473876582034910609327726942429326971407380954083130494090870137989914422385682659927107994478860178000000242656039085480795457607776672990516076863205632321990735195950682207848378414673453633322055229349101669552223686151874530516121959409073579509607715117490213524732060470679480258794561439997217201021045232232398030121124115754585819470955900529063902375288428259480622554672715566477885577866812318779455494219839128082982202476585759174454701139360969298267049916707453118820174484681705554785490767261374941053509207147933330622497222453375181063243142244507393472793942178703487495738170034544019445325504826793677039935606644368536473201760428994147372556716576481239628829822232095480269320108839363111133657011929479597759015110402020057399259548393817464110832188145870761687232054550510502750424741370086041610985777434487623446201216623999767069419996123131044317633259502479361718476942586580250645250893751230200905323030420989134041136304123651484044691855570386866805095432004093938113393681223856016617615005287945762652368240821792547803575604782966599943275360844128755269129570930981783473601524499360834133849181909795825125452601719964709662585629581107916585800372506764187563116489828022688390480022760997762975470748611550663354951831051567989235938239957557977136119515056376963172597792813808277594521692577327224736218576660949394058562626688286514359690875357830827171269240036997429251307256583300679624157182241722177447607242617685397318590271494911452962314688123922470706355169237703779919036610158309899039778825451845971772246285412060795214265474903336298511978751624347525536605042870406127764013652858547023383547396452535565082419212468992236317967038382707893757287252331631501863902865942700330990999072066211972574946551854829965765212134844229467764714946963897855718849013095769589358781681031633389027798166866302485590529842244053605494266046359184543692732162300139325084341102598392763033552515085127422528681994939114109337990159890820262246471235173778402100719262012370993340372649474215017441820656332397214690465605544387636077867469451322951246304571530459139776838750472889550388194140123506227804022371339156814136197609322122143102965506729902066892836028475484476117117999958319106955251487681643477008528953058732284792761766843477159935151605234658941120446183409171085155756181748139720860700721560664153014148587464205078543091261411893330505461833726821071367266783385080832356602119228177747277824431003355050666590825601804635285163434894375081887003341370042979056868808380823017110057899256730271214570335631720124795395864868840311964404573766885547509140520058500285755968155020240711451395302418266481419762957949086816928992198911142359035416851701724122571877369075262418703287358627522865088716387687405020045572263910466800627915865164732307777404427962313380332338553846633875158214123980125067587697201237487642091860572738235150420361011806129576155064117822314943352077477925672932740654141336308179126069677205142359908019271632306021356993249187024074115237509315060026399857129413322562782453738522983619666173338406551195923683811849390321853542205937161897349341665456999380610490415521334065832068351457164625302156856589486234319641076521361233202849745462615612187900878925523901603300447915906612409657882296332381949710748737233597975933189905757956280002512573866635267015262266229290474531631709445872685892308291229330955448512524518315525452788574407208211995584495865283180290741591985559764337043441724103143266799725722327792611430696948554125075997182282057032826649796624171305803939796568018450728856442224319304823303628109701452020557432730548169463348592312921121478195006540941731674213599987485130229014178540651173924339510211662488986252545379391160859692731181342369439138099393417429113540069789256844209290719298128251457477624882860538918887287635356403452625171664881371938506126961451983626207394250366650305716972521062573559570464438567195056646386114513937678941140133182167493620784174863308699833802801582519773941228587265553067548361924118373133963753446879232511173717454423382026985290963970765430168009396032695808699141829054787594503171449259829277948203779735310793939004246087520313093780073822847454170627826467188110000497050435605895025625858979186969517448070524496834208308264025561672643206131373405161421308732485279822917571508131276267769466780229008330829531409697287355606632114398095057624332078180140538811987630479095727203209206545701918590334209798974738421378932526377142849548966059638336411626613897307852989793484559634675358950673745275327692655480572669932395708476622287615009492176620826552415131569791566999774576421844855363117290945345116960307257544396221467489453487606536781303274656338997815581016595801705039449694317378765060404925578428162905810784146112977582002782146072677767394903327287942840655730654917233952562706935659399391783010242063345322887203419371222942586336475124470360555206143020019693709203762377915759032131973552911957956079325903646680094492404528329863767511359326438490938933050921041538685578523037888666609436352446633445484580445480323504955842162396321868416643273548988344496564010173610816810561055168772815577478081544621503349173581890123080877662915310101709741790680397219882459132368453350671115375057537821135211646169177277148135206230516469551023778403257041153763771408708215174792763463680465200576430971985790935247254661862727469760692961184388683441186519854768244929233457330901894371846454118184209163563507694260130059762098308401696998544092642755117303203844262583343856085586284294995971736105295900078426577591827315095158351344666512054425073679416526995528069979270931394269237568150978887764101858957521319342625305676181232889341316343243375783571158990262217420669714786548413852896373875306447662939911059151766761816293199163393412543730545147043570744622338088084967015597070166585826996967895062777285477875896398489112945412196185037095410851421770989997850721890134246804443220375854531510848814816489001456064554911598571992800162620428936187332814196358075483791788616883764078020952510138773015114112900253046039630245005605148336181367406972421038094072080312815859872706884846444821997215501486040480701326763041419309300848970863374746906476159708319862357570827483246717313289218200709621198236658845010353469323763939874696558184410315828262234863497795040685691271146153251742528021438858321518823653675235326924189920041346767034231237243860270826342415705701482610598942002418822188164098294158987612593567786483625101647992651791452414882289098373199123870917516430670472719747038454172818225505194701567695966716799051476561988056521212605990305450464248770685263432519786935226401458721271721744502586268284300946652055240571109259742462629668222756331436334500095122319988131236456351686207468122204705322957491458483229014412011752866173265747862956275765968632732602068798704601874085743093915521525680129410963250712411046946843174252197576495203649102730138632991601598405293590472727824036348138349654063634804526822138290323121953077499009696439813940243124330884062715532028302231719095103293369147935513079782264794096149554486725392359043036550196397580982957460398610427077407851703980409599804159752103389726278567510413335626937739203539282433274900448445291585922666710618182516168712426452045666641079831931848712968531439043104763474867279543335664173264815781253974802526670409171233962348886062225213105230426384491699128546129191048694445595874833869461689495108539416958236365006829418966317475313271773209392449577054306613713660009612045684278305397442908794522147945246421748719813705398981552754166201247541053467969203686807770018451730540766423506369570909158170626310298495211633071419937563933280449281316979166091949501242134521310675834361261718024053229338016783259113980190590511384537234138609032929270975063268599603062899282527142067141501366515700507507520069117122841377433578208568555057513512895067498284317093285300548717737452571773195733254678078038787200884861826161131026431033527380032855680160637858273796528399924221987735755859333974768569834439892323887625287031785714838123101860213420905749464316725706043409691200090192938772891526849254852209118273404894010763045248478043987357405116394499885202955403968632797232126591436971404380770143239306665265461047288041071662522764081307786282319158144589402469291005351099442158681420435017753898678112115535195978136650316940317868722590826637290367686931950082585704032185662557640098241937651086430119233823872547938784514528275498359756886083446232504659492513919883209046629058680055077055621190619200911738097280617690193610040342240426808571873703914475836640494212931749785789228976010589808145700030835915487479591727188175334593250907735593188396528757440928157389002048140260593075369584781963451392599384966456971824089013724681411025243623831291719667405939407097039856980076363112782355303791035955013007232234234692292666967683335496149500894974868215550374393506157672432809690252211378548146038122048491242957474595060658549703395660456509870715068534986963123371127336878120323928000642363091961917087614250604037638068879953716764829510365333022514902325177921198059359147403225309825741738685973993725386771538251872207678232694174146425203214124408175881577422275423403400350047814893853710331512694763363665761762081422093354241357772291071205901984330398790612521111812701627367422832560530101563997680127710637618620667307724402506754926257943657340940192354008278968315967074880246306055687904660297560579610858977971736290199823565056463987791934974207163241997449202352022107575755122874687575759893539777423996054284550662294149808737237716687582698715775436923548720824294535171175316894584287657086666854176098258619508646322976725513776042499582244001507441673602347692478616873945871845600625269942924224470411627261952404615343913091216641972113735294233343091056899838587586367688915090033362838423812500302493063493049669090972457012283792793826771628808542143776733241791936860544807621941553601094200178052388080484621716726667740234165137100947935741172545126567652093140814022719905568020365226545157861431169795192967191807948690695532925577120116374391756389430067924620479062554151310104734543007743012869481490448662549601511597820369840244711626173706602765025218831138112713029932751214490151135019732504919275639159964348046638108625888503105177257366914185896606211170011987763912773589271744733635619627678935346250374903430758604756313666051675087078718934985055500265553503720401731357657179541004218469524969101093557541858290546283821917540749879088972031590922323944995721293041333335231998179308777771985430065432991322202751035081592836113080995280090728740421573925814605656712858216877304162533360381489223624354442895408026110010353368167943304890571505777048972960372122719429680682581228582672349590523119780232947627275303201801689763624104181537598327454797972879274814155587597201291729235192751340722084839823877345073622091245016641360922866073904294783650299180352569687585831943455121340870448792801897094967373302299050938538140765438260070542220729606206068038679617404350365022869189045834223634715304408839757895520833816694829183543567189925548517469063677375413884341641530528864102758788863911518976223394062211931238279523754553315620190655289435996637909246409399486021015663342073017101925557544767993650575399841745721343491861748621865151677367592664476658628235621061267829900759082496513175104718553505961695118448926961882809237404765907420255272187004565092135806116486464294588074776305420320407387906752087548482700049351053758243750689201806615408196270199157740175053789129959991200835522799366986809702760327302537746066983847772166697669993879257697544997130412715262380056424714467094326076691897578153088765319923001876790695436659495164161748842518939381753301223283909767529217350907976138606880859968197611374995656887684560049929910447144796006786618905696693805680286465858285876721734908004757110731781864130551775900285519094903480938488942483811300814859671428730227024520806812679831372141351437794359574309056327983735312997451297013877333058647608360537181045926045821463535271164177971769133586012212909001726158668200914200932530490080967501860181945124681594430781145327291887042136002823861357991641870671975993344451553421372742682973733162842354898575124998347344660892690170404762887013036531552165094122668224089602171229412077516907612198238755043885874015878335375738628837501405400629716286121070073846165539585926205842435130292910296757937470643272377545634142812004355725087034348165861109400502958764010924437512449370420830232586060855597205338204585165599456215996181556701117873897185426896889366686260532492376983400994392189932997587479100314711337551777602515092400607307986560932830801628781709266985072828720547716877797923895592594276032882632537964881310655875037844962202653298541291458743085195122753020315652563099431651067341517911990474421699435091807378142437467173076631001063414719353476784082215445645478722758141427076172469783018848194840255605292732891027148512087623070896311530700030449413279112646174405953280110023747781074425539701992659935434323637576746658213926448751216457617895701966441446277740758174232001567734817096720116514554743229889359838401504005270709304230648812711709625177399089353723351710204559346330588877587127373091060620544882598882164951178043061731926311040428975606413371593481318234828221253331081161060125968732644404504719362621472438839625941436575310592561113074864620578340931431697709495435285461456876477932932338975171436832316136198522360740683128990484115500071669893863596844067042499934220494184539206706260628695662646180079626015522971245818549066681741522217884187134198056797391070608941216350418529769643748454999937806740871812955989390377436524557023344550539138722508561247323910165159545179234555989725115655180735434757568620115951668280083187789583528857216368513773483319096250668042437094283798381722811472769950105574944255525935770710348713493434883453916754889420571173666039819681786472420243689065957025442383629098567662979359913003982433145273191365447250061658845435982499810502489000680122220700422753133307487464137905799500527443056019615518521643340611284383680579295349835005617093395505324362234824841829700100182706996058179936535786866625204143722614245693091701306695284116300706024999211751844834745975013325679652001129813482554444807153162775581939469820487047119989852268539909606785348690060830063849927413779296166416689413528151812229416778933219396853372038209085843118513199597218328811225613344438589534096671611886899890720759784487683665213330455702668599771319139604508909283556825381893802518432220392734630178477241744192325049536603593285543078862702672912959206646929691311958280957331936859811513748155211886312317351366486858921275708702393927600937788146802128210539932337352617856125779727976349776481645092936606996066580991822599422456451894592618913162941161327846924537807370599607252602572965598857813147711842301038485868026284029392765525420771106913700182982170183545020710321478143503505200367677362155716796099196364849031632207657658766515354392116226386708993799316208678640968141141987369540928430460567630751649839557823623994172560503640746173735242160984463635368774800401516893114903058433665230553106209674791031328800236882556505166100874750725826555114191783532130107043891445552056848862956927195438626342250144387787177536980485140837197280721480839085057565874869196771368470587417564733152819849667317465713379889861485415953989378705777973486374974095712688055669790276686981423798865101617645206059396487199481144786563750724007948915624158713372199250160619822400094266576178480635780232656730542143006018044064645458914307884065440337966286591172765127887793538496176051149192137229753984330352916409030136869612781559630081538751310559398330697805255271753842513128569000758287237233026369091400215472283688683965027888781194657164600383115354358209716166263263167578606548810330051445396848627214764804057978495244757384632451830292575000605704797160225361041127631706208141761003708599667105806976678762204929805698186653015406637024808449113458080333305771693312145188326676401305500285928510104197808816720882804634500040333486761164030266748694907477704302276886732112507896313929998086704823932157538763555204355951994545545806956241103106573815342007702597494419806868510916424403212719245924797214217191723622730421909888793242353886516746698320757400081886379405837622877017499469915156250759501929081912926465721781433894965100622772371494410675162777952823563560579284357570195563589195858104375639363298796258441946761811899828263496968226892177198885914091753189772229992076860329733330604116082295589368992792214903612037451850062380943969990280936891461988279733101971687142964506348753855633908634585124112174953260709257078103652196811779219425203607203413323657672796734203860341026280004410368358782247918447247258883887078740756476368742729443739797697448684622938494402073146472344707191130816051933639372832197137525482662985417855461706014209549086538054736541781007997950720028452649721236699973461391189146842611909514914737504267147005318748851964660546870300159844567970534088917756032476280544639290895987364346315204553364616282075505884561582765281126429622828702522858464386188838391634683699736319518002998126399417083784220522885318312399675571258880844444631932453662485208372665628144652321483117935865629301804154550103142915790901341639672502518617946472146203592050916374732861003977599612030820623318546799502938959305395297381039085918267393533801324052024485978749919484496145889973364752309998541307314317325296065547799069098987111785120096918228486654605981139865897139111900868169411993424789590721834219159672199665425241533663539281834357342890309682723951371302274551611188023973713676633710976824918096989407923027876082022663320377100435525418850068186218790794582575078698054976193545878826838935869969629826581475246821338143788877822919486860566903755440021560743094013016273265989773875985672505056692028966180436467378761853956850092277397257292103891722532279312262943911049264093601220389902265161041432667154246596131718687458662803938779179474503559136501471902003646887661287373129481502203370648670095290629440912986067282193222158251892229378083109583043021290187505561915884533028810214195220575961020955837381501080861744968361335528736729963988012967384930363280305350101956721291089870605505826174605053922188206234299461125975190618150381707565090329687242384487769865363294955698570246476328665575901915156853736045650143034451341344607261953480242753940790836319912609260057863525939909335060780612678600674085143401456781860518327167699846852905041243788481806279979174270810714606312229757270308485286161263816351801856276620237472025764515165582598926788915024258024946227533108295605141151443905613744460108088425937219090682957398798747575547699953525999373707366608017684397648112944006235346034765015333510799319811653203509860481028288810951507078576784724230831198614091838756899364968090153982231135530320675538003509448220088920198402721299066679394104618934269870866988112454157596277698148596531165370563543901016206208415141905190016066693535397884978954549326186429977388674265496785386533880430738455353394958423378551115436700182310694546145670223995699596569428439478618222743800701332090754585483107639953284324757233172222083566191456265501483026120599972448921978312524518042599946017099829254524519972637014248808024521620790840215423537193699582162807181941622049819098040344199688219241744591268992549597403453129676945585286598779641866755009337664063111488320288451642948145117552313878832435345945253320629211588631791146135349717311627584643099982285516752268941302087031019019284003454410692274372459765058886259033509706236977799410611484982486202580646570569523597354868160907249720874057270000069154149126102241825880353955016722529558211414828712279319797653149787885733559098708500136384770884847292980655316821062601528304630685702449602766506873781098573959415420607434406611058542714570225797424672965676180384220813419978121929859473482729548541449624067815026511460422293462742885904457947443001478566106977476160829570207994704052414003481308431937158343056495508952419286374056340029619068319876842827682231175241352868886323486105689940381952366409925003968820733907706596752046775670843407031508098220015069204251760789995490993197448906949061290389806089927874448003943298588289201061188850002231655678042849022518101687723971264183236912474323610515368433095342186300509836447104369019969580405720531142390442291788377767229285353029376065553908641649233779448728848977652612954283504253701167801114730085918562570795169960506540943402398356815360258416160322684354303975371947631879113980458224545581395390924620155523919078776447949470641875373635163243242548497007911115455643106151610373009783133058857731876188024395795524038015188764219501288114309708651397652448167970799990018495682384765702027205157903434497632185070536554625952723654580349422430625275942271511331981108117271630306210063556295168697252525795566397991467492590900631825592792266580483133691358812062990468209176073608072377799087641431154201920783761275310100853277161000591195774871025949677765042096708101021089317976150171097493744494153189095015409366947985428213408168741171691684246452186321281429118453472182833939475952947461996952524720409198962405434555627025865798675160176524541056031739806210660071719956986028687169578733024790603546261632534569701034531446862626057504216975506458130612076709052727812262518599689360601905675643483127630874869833491333212647290697018402634093652533231304575457592154050704137111350070562626801833145755194292125470701861383979555274941697706458562220547006165309831817577925583626903322556853495709236753823111889314811091959676695004879930675043202424303428721743331529159677159225287750874061849076116655189220206545634057286093317504419456748288604366688691483469844054702412195269276949125974734604509002559029709347555869012280226302575233041652618204670123314045892276020652119155511001110670562452039791054953908679817140782997094015587686025971508780240032461414242869516262289399977146813639606688918674555105046430958973450665260069197359596168536228812313777890991912520491647057713604714063985554213270959663040777771546319872663340093723850920564872340453674493468139295797986713816619547765000714192743321963879521416612383397824475197277255345639926082696309915802148209549586018544008996719141290325536625105526902389846531683269580455894524259233382350083933653062661553352598806618394521384427136800091996544879744913837044513444190979604761659303713979048527280042229968685806364269011834697147811050873578695539002047005396168955053902885339339164553546101175753151067872442240909341654473328509659561046080282190130269272302110930355400569073156575295267589557090222030365413208614528562691774651620180276239133255469607380233166427134631924668437952501718626823021223052521407136543648867219662147803869627540223963154131665331375724434782164940944214902440955685122541292549953249301448443845002809820833640255005973798282880452482485345251865454041084341677216737679795054561419940463675775286690002629833994784678006568243440771406548999402406286853087952201900361631731750804963015830978057697278363571037140861611098251899137939756216871759578497754764449335460023241137538966726839771967684988949382711875159281698978960844751409586672261545069133199703130708366730535646992986909224535710940564622930264578951899036798737964407424154764233559155718895432001603577278975271902705838945421217928431531259136438785655423938513713354525116829211792788685499222568615539973035789616159279936377072693033886152470305672312653944073001084579352001993450978347390502456625337824767630683034038028244352256947126663648371948912406746798009544193743727915951760677623535348749759265394015627060022242659944338107487819561378013599067092948287259081854379362048140627184164310569953545072978399603565714855943265473631742038091671173167006916664066554605498146223202647216255903937977276511688901304804275790990962866897673592490223299473160001522340472688613184106090488682378439496061107653686505651655823217473915418528705127019377770246245297925899141383002984560274784148271966457143780402955645963275739976276664474606972790123901135928642369680592199101006819349996026957451435644649958152913912157804472700637336127986662519366336257167329140786744062566570632233307414248549283787109733620204955501805690552294570031306840544199112595322629568082390735521138724334048256542627568078616818482197510540024082175857225769886124969122973851926871422419987291825822171948340194495090604125901419226232813097409971701043333459713621006224126988012019899201747879396811696473771891943661108768303439507383615440623476922098464676701578245224014239496524955405204551198687079218616961951195889907558847298807275607402445113572156492968371569566626745382244738746575297455794627093985065560656929158586522966258885622347715251587354808118886404769911299369217492440068347060365255749825026020939975599186547913764731887647941732537444199452293691923189472508892596506736692697820644885992016466786220812633346515186991452049274665193335804955478032310010371950436282752745091687783998598764411848589170561499732538228151375157963999643906023396445709827756235963924712556443237257726597718219661546956576767965667048791423807952429430174983321644690947669920179028701115725629364968015072292057764034791634419676308595406271058322210265818491938763755963281258749823313156422178780682254034077896056330594741381904587970163944885994931210561541181671711887598411625318514696158491741053671322340085710423803602367285900922137195720877818270265830958963487085392713697979864238937121278350765403385440166523823095807100886825768557077355707535473332542072779396322872273870224415478938929534536002827429733223616243874189967382530344037520325495370198173605109930398362733365321389004204609472075357628431225043819219692565799203494707235767987326094046241041387268090175823785143920927283933288923641507954236631807992607130902715398775367260433338071229843187614561399968860312132970087135041497274643367553875313585265656167632650298240303502133510738982396183996893128284096123783144739417344460378771028952722371116057202276684056756940696616191265442040068042409347533727084740149237402058236271373621641242038361696248246108507686422741313572868221058019237167453418103653424377215102676431833768062941994236432678509372817298621811884765843581872872407054746755722040026862604220290449833278342076884396768794102146293859903019888285273111060281381564508091327894742281565002983450232843433952778276650768959670740216700184031326967259623369986556749795584748696591260452909685274239096501120840934110883943099289520933868544008550397156978174451085030911026065764528710315191936459945567829322103361936771700353980665212910868316403814996255467862698285736921474001783639205319603688776244061550711420212567095968128237146550188474628356210516334429173888315608910294331803844385880384404247121714645569839996167329610974794012610870145863920268646494123404956618740729982023945237473485384324414894555505400344594502983043680640434088908397013064379552917919730738469529274371857903522064795472728853602893474149929029069861804181460103921083286825457947850729262775603280167357729721767330225160210406737881135591529887941475882202448967527662031693789026262298359260032706628567822056033506541410124589288170048450696829318521737704673781435750341232375802928720208174863485997833511324545475649062679725228521606227224944477461184743849962756028157245926378283351512548340824340860264964949250128216886857085954430486875544970720682936057544497317492754222318929269488543084983580190458968731147042465270013473846436775359042838145344623776319238063947324658557200785208719667001611244026146182665629792886998394211714256285692654851067169557814083220044067750935247180774379661054307531823206929580964630550408559186269099572545166206820753391861291091884832990435098191527944136763211055280049805910381671303486372955198136335208987142725451215343393451580839478777016773485074706456381390141228776245284168614576325649085636641702520360939560951680431835202182816729633940168639832730213244406324167963512591313175707157567596659500433549280384852391557051595191884613750509881393972969245490500527588008643988298651854671654721891229655236225937294789004163164048706320812514744587395433669548948175687990631544108880111031714288282196692474112107202435936597275992780046061719153425920881577640510889656590725737762795777179152936322373090564342234881442393833241379165923148319884778660701282684477982570392270661225398227746722877327381261936129099822396013866547976044210476342106602265429096253616353535332575705416281487270296034842940038464056675936277136320938016436623666225620191131170266429193838318124682662133701158317955617347856948538727254936805567595603145417015039523089785203926359683967380387095050527380638573166199496299695916530347181118137839483226301002007315770432735939230320178716533675032910293737972406081952734695981891223037880365412199081069093667431250372075096421197743776897418169571828892375794707715419286383287820785165557788042642178656821770138564539011791847586245431235485177169708962649388645141458821530643382739525756489682512312827119074133722453287011953084580057953026086064442311813813381358437745054292038255171757477279456402671541587384584875712897810650569462878786830235964919629155121703712228879298555507019671675627445044288448789643054912721512202627283918258452290966063035064784907446743932216806163557167118334037781195104910415212840237310042920539355848451925322597155864652301163438470839735800994074703861493114752298148115635306678616135665058521902039167504107731154262183661749767150240156253374525863022401365429809799990587496943032265355594304927969141399565396773078330880912019905538114722796709949344749773697661735901277324907679792190337425682083219332840318990531743374049786627656626495712246067339332303491613083189121747209331721606011359094602475366227202232513265410077161685752333741549409009839082439372530935579419594103722583955627969510203682653970094573904287776857683836643477396402020742150437545553896885127041181789157411756991486952483783473228175690061339615072451483047173451545242600591029066321845510623227353195907719804965205993968159398065238946249030882106013666030747534045769995006063170728512095821294812136314180384591111439707481472996625700715965291814315253306160344557609046333875020172457402115705461270423823906587751830428285557936144224884968355369780172531237545459534190859415882522654864761062139033731230500078897102106321689138795594472622970843376401238727123866499529776800593050141209192668109809482032551894934001581530478543605165782645285404755598230971812556843100739991939793346229401707645762151352599488380187422111786376627014974266370379826286468101025775269583123727264939210756105265590090500060331655114942837093876017792249791752513996153937040676186147937778369085499473360440861011847908237956879987510879385010151400045320595716420278877519422937080484932932305541504089846412139488373688369759510320682769308846980200493366104327715184490424275141241359853649900804002067220607946694037044607680284572693728090416303889480702784070109614386627534329712734849314484034895766939639272062078873006933275662378820491526621001207707561369413663349916831133295203563752369389189305639352367575585289237050743598715432395687101262015773492780075896657532773201476122995699532723381065412067046879524589930248676977281111950830898154082488892452296863471511609156633909758065048616562328242525077377067892679523196103843686180153540858314003192978915665708649805013206725623650261147695793238922484432814166352085438688085607429854744923506468693297967597821416880505045366974276936940447969171663202926822521796457279313733041063335251186898771186910586643213290071816928005840014363430419290912155613119788483379778319370289114656032348834336530539618502093187447202512999646632478273575250908377564790819990173892268374980212522837967786567250990870677871472242225299672891069763224529517041143983065046401800336727870900415460747944212443432764699229523240213455378558892711005738001724610217435140498070729060704395528603361080502555565705866827259693698904890948157461923145053247316514244061253486336072089814082904166615141098074268834438905930422353518680963007978423147906299938889306583930076858464226155472672068210703609916846021540681918164840662401275365958737089089373977680383944225559092292697533213388794546275030104312657867127193896076057343497972161142979509769841190838485234691754248924904365174161597530689952245116340321217201431799312205206695286895326945870201697518804106758493087403324724369336274181793981551806945223891853837030203480254072835985036031183687774630624498301113093403384162842150691216966332188845783131968016171787690340627591490484168568015748639283897121830335678106550596263453159541165192106842560274469386444691908550756494055610080454509877948082282176247854008733300374796053025567370668403411127246204369569184020913389122184438077917368960602391794388553010988739522822551371302364909392701140316173095449169951698629597118615126563456422458929327232089859067160115068143638188800128809658771340109966237214790033117740093343864031152461974264912045665963192447988024600843848660062034741499991590297677259133556394301109290912252080970301909874868165647269691688354548333516912389860960551225828307026627929452111424472487176120622098444461691628774739334605302099607902226191802239476862901192225679636429483952918193960782282335925949552860595880171067593509197008401366396599744653522127101461637977754004595271108420136290055100870318690547985087287647479967735750362414431080321489902710888508430301987497903987615814088836237224971118100838748178884264203060808582117294195293952940096275679006933178833924967863749521530512122184557657879461307791610116316912200291946108737138440601456055106684044184241230612992126018966040904692218546566297966640576161833436348792112658993934353991991170383074772336657493660130749736012567335353575160852271584954926823226311755435200771321073571658262345169462893618176084887267054560372354122225896091181489861263552944041487978146184278449637769754283086161656363676782065210079078192149680043741378374943771493707536565965543224436399143467347387560604301555396086090446556905762088820563718578897578484797977265117263467778101188661024263409392240471829171989393711885356569326025626904499298206607580942880693909958423655351438578901899124694330588095344756265285348134039578919842929698369182786462578372655150474464750971938653238423772466803039542601189415049149715919779110313814171305503340079432961221857259371813830544317242144716643384591767880545608863986074070079860325903646544302715741382368970511236884611708138483688462763490611570096084931680720608740214142919005815090014993848074956753305169902906084230278786511512573875535415111703431378130888132067063643899037988498465949882683701193059527501542062702956823993920715587177790620816265185310261673231907066353439723072737809364642765080100028904211462308151019107650043388929405067681392571745946239733114897166027023390425424478339178734239664453885211472865579039114751449045484605807407991388708384838872472985445175718005269049092250394244285263135771764973007216909818796431878236744872810456764428217328520524135264370400064226550140482397251699115529841816196702737859404649614393569878084641984254988044904721952396685431817512875420219943207370163679707591592202333065894736096676736158641455432915010403563594632154547224441094383650805552660072422754004377786544585695216498721673230556852871183397556931997985311579045938763281093186469873386329534020766789813977900088819523246183479612017669744645221639885537489388569622679270887249041081998805092826228965542513912083896291952575878080459240154356220164345579378606833238815144119752464129280110933685657778084786837224079410669931943883368918890583813298085130499768132723605087734670443947232395456280324804685215556513857795845279726700823930162107718665602393417900451267259509081617979258763344372540861244720881168087246330987474230188864439441135979452913352949276944240749001822427738812574819369409155902277252429682677910214996158561063041773028246593244850034574911255035327126281108801812706847051924818541620065830615392541209910609924123104534000100628555940669858032888531339717358875867109352132125684201477125144874010714566856225154208954450312510971839632927407665896573281130951809798072336509363304630101426555193694506360578387838146582876474749427435218745471327179899353994122625821288105495009841392001727559801898410815827664555908646078265779926898417382192066075858898825885919394946142759425877140668902647524966599946966993632295511500976168089497774591219470334745452169549188951681600502622500356777399696437831270573738560740781094539680708534398331321402039687414911818140281519908419733873348470049673078446491592469504259308480733921633651728262246852977913787071052329061832848256517658166192685604056896416041287333176151172288772888096985555099287842777688992241640657357212404878065851035636675005327843746584421112954247407401018318514195593982723519445534357482272202048572934505948830821538678718338526821843174673612699898951606436298730823708546463109380114858539069485742683473364617157729536166295688601777397718711734655713630394045876129662370795520809646888453086997862972803387372153318346142071874566290246228813217716941649779170175485403109307319915040573805137240190935181860366487498537973859722541069277921699885801284988190681263270098883247416432868926557454042634732468696487552469890885971771361327033210772977246245238676892675427515990423783724897130279178884810691189923240298685278208816711948029940724065904659200671496255893585998216818682326962727955222126854133102981721197097929419536486520540006025559355101778781825132248861904301775563719534139827985772518620810215061630834904334888836501081172837880154383846998602601087058477465385597174874297567828717335708345473187381748642898740876602562550798803201035883938257530035831673471474631504373871559867588369153142284472169599585369461443866121120666184266990351243949257840237125282065393543821475036279929266557339588626246645527907921354752694664023323924240871757518825317774384573695363087270452843362794949271332678424629787256177463433214081561207244450367375590308326984511446617739158148645577936184145336314307509275395505420933498498428755401234209917187898413938214106154886472566861499439320512578142989461317297897266781387337687006424824266868691048029571706468858633826664167318326866768681253933073313558735111255758298617387381228654907073133150947072640647749892731960741679810644067279357760156795665781627919524683650887521412012195221924203627024997107281874458373124489445356431366521942163961217146326737290707745607136767187996857677184276359099423992103309758856265478019166651020384978212783457275801426748200260984329506169423368879214252921234897927743484952813652964188352486317719847106131736831983819171830354003438649924986743074579953664242781980466581329640679301704794475811989869894133292070596427778757963656239337464557891618560313744251262389084610010464500565549108075839988388531627426076258354047955367008356912171321865375542159296509644303165144205895030422803985724324235945468596812561857600208131952465521397003415643609849424616695805570790047695883805257753747688477250242042743840731323276037778467510332806887188095092980701715910210923682925641218014798572442092704272920049827158871573734966287792142036394954551428122397867980190624633956587063455991083911384929689507929341640980917450160834862876426862284163120078269010114293826749700225166277963737761187817687162969659400032289260487757809580023243427832184307871706220591964794299745901063457114481839075852954965213681180154045577849442228708118444711549836491313745277308739831513397840644552182864726076149672332110354908767066755744103613186992289120230650694206690917790354891942437764556320705433737158825539889463647334987429665213163853542608619370168740990776836012785574827563650630553993697454024069161130150538885291857836674870830810914569515199640965282799120542050253723512989020399401551834205356624578069629984356992523991877513266761843221989449707014930039093701200829640374152390780761328021460709832377105644432524544646509974613665609951947371191944838677988412735684227866779023163319680212661537543949438591478678427802446652868833545299889312157165533089107867942104893540622258169728958829003582547853998967230819243686695647716939637561278346980431157073972769038295059407228591941187524399970510476593545904742580879200224279712680936666365085220978255388160490793525706726712352817186190196469302930795767181745474726613400300346242270175636892969229385425416170874534515772805650057577546954704600401362582287978542325683713587921445768872972876440212313162382317886331794212242580483768882738953576965644920779694133310014395914734412742952059549140567666779186747482204123031903674097450970730003456096310216914764190341506543230668252381121106190963948817663594265171381496608337413889384872186258518521584269369270045148545851361901475432693831047141787069704583482540313111275500557559734829572615596701045007488777604724397479575013128359767493586465493689308612640326274742674973797337290297790746558871494889969229351789921249850196800565454434833840362889160709040089228162444499127296667568708245074565994356695268842050495452938268028010040687854754727263775526228635694589797870440679937343069335386453656070659568066081719934720529801624009369245226882062235782819572474043289627517575014798089257788089440514255159475935826306594209681393628781733761426761673284202351995997126706617805011604279942702901272089017516688333655939095501914097450685379529835421225954535234297152115796216698021788621598068352491709723242437381467588414795258379435702114602395081510878033282784176548745015092361200846234382198333840868563632582736522604647458450857617928672271061271626069740639704926926597865635483892294781817374473566924169601027765066886513573845674809278740201960945171700748637863321236554165958694854047714848249862147407803558156787235943428761626824714367384625030951110014193967239866057370639450612137987171366448371498968639868307522714905487399040338966854631358364842512971024725626923207283346805261369547063640009628214098581623288870203305365787527619626318678719579636279544306399126087204263219818010318690347143273824363421593538639171791479505347986521845264212389695229986538069247447839690245725185142195490576738583898446437926646407685579159134509369233354262618350271243917539947292587910555682096895569971664907153729672757004774778398760156544801046258344342302083528895602638264533581949700194968108959194239077686276015365710623043655157985086217864396917435182501670330294866977229303857048849956069856357259350237676987069284685908313859072804368337246157089862919884912751479888645950802694383187300062668184879557188795924873986256292292167609844755808346228759657377532332056195698847658234174359492165158078077461349125159485070463067658581153622070962898340129283125878073725566908270743543191953849199397341025768681974132843951063633133270008980576416479463793204264595775114231462939075518644163106663903576534896014392395417646058309223393685844316705684356757387023771166992497671855954010210726272593503012380693766103339895045553933271790068836980181720251675238776772199211075464980597291164179711790236188635292710793441812471544303038656542109618670408225216078191285038634493281911931697057858807986352171851167987908865092769730489731465561267685622375232339964891493515329340333247152040573497628326299074849751624045090314528432927886424928505491217727992662259798220647829746788813393127478185724727627383502674783684603891738186181052653534324830468479827366608391661159487616565625063195042190078617197020412230822096053929796039710454475382678600342987728884361245376853302276660334316424399336116407368740298209587155621120838539442561288836103318403883022069550321496505919498796431456051500010557455635027842134891791934422376500032316089146983562599146546085628171574685401883935049443538546573296763926768331614756890362567020271727740367033634836821862378370226040164034334193790063113380454629445457854860230910857533201355489508838348882481025920464523713597659772521771896581828179447002207364206037775499361173774552602932715451582849770559218374007936123957299626446983488595439952480279314870665092144114989012715992986080935799078395814906611236664608665514686645929354489222988059609188382588774682539828897104864011219252349571555402140700436617834167608351234572363457863992359011791307860636088103343101509873200264755313971698630066336538427146207950509760438831713362682176601929910155827023489093456860088277939166917458045725041871811836907231720419134144387162068846537066628922385455182218754451808357383883596842416483555832857119711771621500464298273580665868220416954817762540524940995610842298234378064496013088801003643657617843408073161492241999531843612979815400593153919275413879757281681663175484383230317881715069039561118254161884410559074903890395620567639275941748252444965592126282895586245988387505124244613719306888909403988226845799270435486055382472893071127051688666107093378411832754303577224356561266421195815871189038516254479373478749801602357709555752561180029334598746307501843373388663681399828287016457916211297799868835594127468246809896192078258439296366199081560755885490341932709496317481554680951629160735682362519946881106819549354528495918292927017334055648465326230908092753468521318788179125909858933809362351935855740260875898649525064693855273434110050103202627896235755757466538984634418626811504296188898815083964909473416384733131618300329094476810851082955641328552464776590903217807157871200455254803135136577904606371588750644559783426693777422993267223277740795907994245453010750730198237576392551651105054884060565188956793258726211050399774962963346309161743328413851843366155160012238893746142581520951853269037106410136443550821598572148130654096921957426856220422119722890210936882310434272674924389945895282045913707621106311912895057658444065711205869686040391971474382458981015519912721670618168461843897146168164843456073158921281044796353016394710604514462233017490667442900339886823521497318529229645656703593776250512973360031749789240352616171022879585302841442411102497182310834047739973646261309499477425502133514535302372721725880870672234970475749948506108676770850886731553135619086062214578223062263464035051644555220387822585751490790000582870708112558795884173991015405538369722236054579833151420509549097178087602437261263502742073128020567276815196987425738558274587420342590058951856166820978203605800875029415315312826983727100865623845004624033215401130405789867751071237464553278151178988151526851468415066394212142834222827196587332504554372476824334892886087625317659522480291478886458167798034599115132771507667921577536533725472933737532317666075157843008459192905675677814688725167510393404466461454177286767578338768167629445583483096968367099787284322636788118977762486211527706029425878824675771903637769096937306718789543920305356814672583401078258633984921456344872412343357813338918614073276196695119223099321246321523976564172894009560547474324052193707720041498390163813606469603971139334440140325318738977353309676143458201613523430650425345800391502174511445775217917119236041977023542902240339192931763487301571568386450622363348546593691362398251619435908989874170498212033374020840403824956863255761748616163793612445045184280615364256513277604521682254215189401663067064803567166088422250944531999609911476920099633121261420850357621878106793577701145790665455235747623849672719551338410801297713062274535821140114012216830459572231716412795850681378159673337716743351310921577718282153530372564915749644698281557066983415858532188241632655898668585387563025751979230764047715292505515868601801869496150890930431936393470380083369723102214392565948249820135853601803253000386237945200360197759978655458049126623095310157540873932232421591669429975544185299392805999157107503400306543289291619152052052211520341147979778397075670839353276018971811319990422390416593865678663866899685556798138792658947548659381736110585929227941797993645897502182947983230562671399049334084589622691204315584909419171818375176883213799178256205155159149398090378629049871079951906353754428419056406600653457677229176989631789128468769559257109335351029724602327219395080881806064485199410941266169028396589123108844383667423122248538498230322968486038274179188001747145325304677144906227362515723079078154806070004361070327475515504406447945738837699094472659229158422489946571435030614301071438283281323158130125164755894547954024103517793660326800353449103388224010252202954691926525683919486223023085062616132036182118745614467044969042125058165711410736131044995358668583341414165266797340525882838432967589837011389438843523159608504811515630716814103399502000685232307234217548288655763595850870177751033889237773682952391075633561484743478425627773214596851658876082621696482139186709971317302384490091605708536209617084235957387327262622039289793254221110732855255713062824213476537284040751567068161434360847375069847821305352385172717683641962256380072422268236010889549003318284693364274043563987719356701092594204415838997551359580309150797341151954029930793676600649002997383663422041546491597381395564878687262270737858727490524427796007524175307571392547405164319504272815839897422394911162479218385428313000976651578942850576191110442881632796513495239244837790857004373916397522123716866659070974118055757803468228135085878021811483952764561479440102058139168123534190000466233316612558184251965351269900714481070966700413849579696794023515623113299592421000120595382066624839086112843729937282933463598906417659959630273600746579727368003802709408568839499322998310580310207815255904450700132416916793248327969504627771642394906570309618940830029118800120250184684737104694784465446820167215752414850764547143289861251471500916698429147368466175829448766789825099914095346166180351559553830177047855656630352315231241223888402792474488788106047078370765276698045265445845547713304794110118826404087732486951653501062216598887225625601654660470530813333326389605790647876446036604479910067969198759445357464775764073122151209061133590279123322672321040692767476459351342538514915260504688831238081769098062436024644652955572092908453945082931424389113763892306427350057975486547147439920567358245045098537960395343304380217376525554001618270578284165617130708798233163797214584084129120190030890486452837028981125484628427242063264776818677341456421014345537543087506646655175305154968514953112118877142207451417221354735176488691322717740077173908955182265575854435295898821631088037986347189033568846935214678467955996805132084791321801049978387810799549256010755997727380969278157850666286615715823132109664493461090923385307436910937135441107922220823640273012259040054512231031286814038032332848990754117386508156542177790878086072508403449262693268274127962968129675354203455509754598999580983220392964595571643880288143707280115331705408195533252004495887717473326384397423340558169222887808820750201203680970329348477236800303913084641721430113244988611489648714732386922472129082353067148546551926282794996495227548144310378660748661194080852689665308122413571752390274080882605988515785987993183124230840231642731089125092293613212083316737739318931124221990272351802596597257176449099182959438556816489213409474630343533598524142226269204945595808547727435604106087657293270954063634117271912926541333156711783408919482888404157483924472707842273160701220025965105285952252665513157502285840275636832520516465231243392606069511162125765112312477141586606046685169316394085442399007572010265715001654528607944955360087098301662819904937490587184948251296006608291689706316547971856536057143698578348502199049381570059681178290038449404346508894638055791206558955471179270590798859406328177280560162649650894779879621435721847533611591899155051763094544055172160562884965557352883369613315969693542112312942807154053915190469787366199193842447053454967817815336716817777869317089221508497811941252158382167682850580186985151402847851637317922031326582751533288115054329721514569066302662486822774833032186202453080337051296228351955998220008266409575496591948825399446656556959720961029725876787774206181570320257146084630379070658344823941934029040522693874335392209800689396545262410415479484902525407316477176008264277915790020925039211285603324721220332304188117451560918898385055987575766131305707783486431090890768426489150899834361545200073497467298250222586849126952176813438692605784215758413920923343238782347131166916813194027378890313369339899472452683143798218049984305319699013185190414406938362504255248893192051635311646758191446804056586381008038450449504049446503766651366108848915381393514587834496365042575504590162574887484108061333507147333207039757292310438997420663629508938272769917013165688629952177188472254655565040859996257236581169622711421026378594416074899107550804390821675365165305851728384321020723168868783135101852870083798229868848458596979467262302406111429442228191471865738349635755448323783658316950682926757152129184388649828871205260527896665520585827695213644728438991572266448372105860039854972869088838043211320745588161659275483767895540067560601397266667390570583415927392223323246254456979851386759359244627095420824978869746037181293461194124124324486320319635638274057031877664761769796751495051722370132589739757825448770989863049177630789024417552511105059141332698907340850509504444121693013261164828574601738277388836528835809314805859016857324606028793766221637919446174061905838750397411734439232823575726262886971746262164996466289602765091244089092504188023716616181295252359698926230157233377199119009162310484989568806898530856441312295592518637257077536255224244317034686673856190364117821225680687107174123496444387443582110145747838879719769566932067207280588856539601976122131289563075587274926706544903772243299964159244011752820209024642663788980694486346467916073833494213791779631764607639800413704788191771523742169372459049299937249575262520826744923060620900035166633068840945507057071280251112060742640808261923220821564095652666388349198053347476551866754460777307326382048315627274443930730291093480225170793583965863849261708219492138615613933562586781313533182211802088305024037901922436205241047467538530549451144128224765025587976371788358176153117259889857722931108558427268275124720710452603263047791855218332468375043709921562194877784801039476023638507172566537832281490911824307142677033133641374551242947580782888783231555140494856994952101817690130594515887994367171856909331601885944531334962124696546404573391901605407909578620939614066885119340247005052258003667495399451771346482846516138182769411671065500067959688802277932238369787408793861193032151848607873960633131351915317866941656918902246417756608177474806275305960184736634675462680787075669394391499226797198498860668575437176220915117167554922454190470123411243852493307975775080349817309495392523538063832520604747078188090429691298512184990793985040571509752414340364029348276199434752396779792382773036679188006500936336068409911913962257481164086724623760270258881998082642513736908187521438081129009671215034733613147966578013965423629155298064201213289864855525789378159312950873662598474180052391339312086724598641593686818900504649698796358064064932559941403910890831479124332868587695658960211194654474072536366393537524640267545341087819032335120048229461912231100302049768636120782974936174792260724351714681100108427650005313545190710587676436725154305147285903993313970173926901469545219657614930266155248754081366130163056925089618376899112076306446111178404098755438993188710521849584874569727588753423548592355137716478057224760548842230157374016268746442469184493736194137118587378062822195637719517163976267287990928486099615217367334204410391352447041373965587145548445907947457244948932687514014453991772913091494621798467821878351066731176451426695512430876809803111872483847928358663558798493619841936337951085920182292696672320733436279915811538018166224115639947368700914782130455749153053668126838077023659400223862577355466596935504233180765414882957249175909656542575058721564675101509340279989559052299342132979445635538205393630010586160411106662553291111650665353435798579972177348997952910990443344526485631914552171108994907306199736706951393268975126779880904073900268170183275829552175188251231739742115226162507288261355290892350954067237045683954547012397962636684648909108438742686691534213088631346929183501397405190834787745049038636565337319088149642826097395398259408654634909055759488672881779360755574660196913202466581590129057855107657298817624257217490872716972134605287355710378976460065058195823514067760859689330845383852051648791247107515436272395769009257256222201279856975130384583365969571396424537448038177508897454906374121314181244965942056213478998424153185182270857057116116212050434841500643919374147055887816486095618084864655627494280990368159113626517190883263534724277615343332951480024232296119703684008282796159193850979944953287148614678501367617497318069607842944693085788165235619099460829303719304565885962057451098714333049558792190765746800323387836821330528484847307079548444571528476809597973791510439425092576711083508381900390571999145009403983842724693101185055703183181144603385977236826057694933297525110332622065932557060039367251725630066926298669877545275294290163939754769634254095920920069700251484802293640709539199967728362951804364698713008247185877358133262668477627530746929922947848781038986529338727627505766719792536725397304774097037442345846167158909598849272871222927166919179249831314400238463604190231751009582628047757177641448418617858751137627427911716970347563124434015485418956193479976414801654633007633671761714475376622521990564899969692512831335455366451746292117331111912472429295520146425277033153737575434302025780608185621073473891484221568307842084804709769121067384679713660659103490209647251693168323448195419360226124442017410912839227231875901399038882045527957919460648142338655796404198046735264736139958370351985092879912054641347204978331164057020995104387303328433976176365179252847540108412591867954028219929265361012245714671236188448277231944695400007190465777675830188740171379824074417681799588800499381157396654669363121264950205874428717091831145277963035913412536389324517665479437790904281930707601900531265724382566661063761596864697727652492661885758685042871512277586148128537595708174800098630478684185795275792785968980129567598159499872876702915435915694106056793519809923181999551678376467826500650150361521074672390182789201711403889210580351848594993372933923910388791080686060201563175914765037745924974826559354479571606915559543186272318284176709462383543340404107085321722097664679401649939575366895353083931506537963057316950692356450157581022170598801563000011868038100557232256438737439711010840286134114773475515908397572769416744436920427945529797850232851205340505746773612562409433945923491838068083692694931044422218348861157008968498097654850553758279491846377509219511838933993940184114638322579063992644300548094175957759455911535227060361182140512059633326255475158059342733130236801237667792700529083273618826516279469058071274112723009053087871136263673331897834326717172557751162617384338170837764193253940228817307243573540389741025488339788865923338853893922093293119217338484387184180623482745697501028162729853123398377495434342688931591339406917908202740880090962124205683959917755196644689144220462814188396358880357216887858401506149234384916605774046879092827525658889178730429395919206058882064120256557819539238047869976111179162686301468995645750683153860597404778224324642023404568614746700937998529074589261532079376714488705491704701344076189780780194353181839871424217857903756827708332488414478300937972942252836310616549090109883028228549616422717625777864298695018855707446241502629240341064576194846711134260462497570051554810087359143025464343687282523472526227947057240167802055118090586928673884657203595761934149506282560490401584381049297255656245065821425885906366501937047095373418581071356875817749069023639354726419817732169204995611769338844998241641132370707159704351356259436162554725454689974894817935244762283210812756057340233967420855653649380397539431037391485249541275616437410798326513766658847947684442490624762922392126173925329510738555013974051883208985493256520919788503077893205077871342097982527831044482402328296807170993755426399057600120452902831792945412188408760546328845047203380075920447743116906015077533095604551707677323390638486684566546702318747356906539944294428296536600383979150354047055713545924101248934410159984256127070657230072468425178942577828513940381832523571520419667758715357134786238483868611526638767970882962239132634515504681735627583118167378594514392527462649929882530274522752994348117882662363895327108310294846009119235765376674167025803536732288800382787640841976852301102059703182012998394377277795908225030653433462209824267649391798586653620987418964701772358631068036359026104499804147062277257384208508294412772453954341617075911578953180190089847672799638175339634835370728954698137949118249195702757086365850662697904942447016281421748329282410591826916107260809590410299113806015558537514907362666681535575167047022118186219819499761747527550383834025835349034552126343603502559243911207252377120029099933125831322624953658891176627466612602183265236532247203713417408901889806890556907714416459377839618565392241786504235044901961976328330096078281489445411164890269461370570279419957909108565973363603889741954058035542313152022339015223250675381042105945312306076674260494592909770937814489561145166328246594392211072032090015367234253560839760449651633802039838726384615249340139232632257730306442517459176485596628395305307225085878814295535209942952028867456721700959021096986616414586697666965603356232078525251386894137774887688962166805725461753432497984017793533559875099663815059909185108324022517162214438095376053364613942299152800108060701954584676799760378132746735342688201430743355605162130905844943301629198606176316539543155278120166640160889325818035875596413174849846661840231208669979407007946546902559804551717456339753312563593915999476445091525306424887002991381628269747216871288268336594958561549788651135838686266325721123309181410730827380976754357870210186289200354605485438535347234004325327585586618283983742910732932845575994244962108058164137797499953902494084684282702325126289615657835342759459243455403090030958538933979372346143313107084328060146754872425137244834133521346250731570663880627439901293942653291741383112198777830131909777796515676033019872849580176214118814049366846527541186817312149551839607899708628332872361066570883961470496244882947857013398693208574452500678815813871102930729085871797916379001584608859982696516894921352762147041027733855365460452432553632285402569169258423425458755346162713700122517766418225360583390517608659171202088989618983490598439448050537773125917192105797067899606610207097371816956604290081478073128604722179516540557651758594178457777164099257499437094045390613709399429344054410699637983790720788375533004460222118129268128271631285680240173939256159994583218609551164661378779025822834701622110201353018727493313584586508825728917936368874357907636478455977802450957894842881287314434282742221251404314429972199292088686157508164393472586541100161118286207530263719768697661143951084941835252653217528063766355534612599495388573261782207063015666558385917157083871246881270951793795315867040164619339241287101265731741567054232059142677595777122152547508777267227320734798217161351889102711159707699562632986030188253321456453937379847415053230642285974413842707321630126129001918985656354081986452733390076079785854536084644886988667906561536662473872363444233831560960943918266618992053897397009244296682736257617922048841333757729348802725146382704587525834850003874418077266625561963567058682396229296597108176589835116520261372216124043233268697588469764787923312121834726528276799848167656920195440993752122816315603164634638054638669155059371428175489179549935132432059772463518962149983702288738708847883438991017854029757784217408932872667241853119158079228402828489780514773691480083563949830053686583311425197631486111020623518954342063847073778299217098933093763320523214374747934566787373515605116092752229961997074350124584478064985736901317408277373460088702942833524334329250123866722480202862762707840597435323230601353701382814995132268042070085002983963158687722292651231437292848252682920457108226232968921530718652496331303807953947036876860611216254914013163015386995331212141211059167382264156218314339149546908797180569358434706716706480565608768669833131573945749349198639333039434082469940535635135962478307041744149264931324657489836447143491189924920346278603431031322523903582656721181512074497785634160630609064251390609842414099806482410644728099341565181918359763776035329848300207206201192132302803473994399287568645968279680858191329440837195044453665866276971745598005099383612315401734029208653979527333110001061832654292135855954342350079863049631388596232124491224753436889435777507967036120122580764686641542052386712004837377129452968142440048066085305176478134477579833353551656185754391578785823658893043490056426678027852586402059861535165707823615947843830587350465330587170567142292817160774653053557087548494169708377477797595454238400297959453228031741850077846510718264072862501350383191560105741871734032200455357013699323864599724422498232616127239535769357327920314347116533746450553657426631412026769221231970505510220586176649177048151616241042219861314968476078405460137717548627357478688039189779461010706637292853278724735738720916356270554869287087378221875953409246360961973369175849618228698465815868099101397026306526874732450665252872622827056144695793509787162099040573753930256740099900933350273901001369613507624314298372038107005564413954480004791411436559531274607542872699506530891588008809716900620803710474371373505410545464914071587502557463631699367050140451441417717377642426193640712998548376423064346116800387133378058515050938968876127267545962093894063578713055725971612799820931039569393392146803868223944255817996552837217926587266381777875215533021416368443160674558881659081127889441080708850009394443163762859677060671887711539430741474511964067067708504592698011854574207783481423406323186559981410954545579219133669315122788272985266897275981791405435856494329244869279474812336921256782130017710886713701618659581076910135894463026835188186194543646511922868232708354024451576518770571549735479446992430578190102170041997620296067821375548504011711083447452520049983514501957662001596729034905314917614369353396037192080204701618213637375567315469946289267613618324262310169090415496757783588250026302888188654073775837390568040794764685861078785942990700790123073141877521627404910618731900057536304637093191165652821681514452690517626952801522224299751110843640100424659999405030181643284655207422523506547038114735894593429325057279578702140756324364100040076647908544215497934411244798248391031212171615989103706763031068215996706768714750549772146906271012846524301999498810851357453975989614760796321144973365371311528281389279182327073808976388437620456232862609709862982209219589232930578660225001411588384370027947041066038933333312219091608344853774831902805624513271206411276481590776302563210730034515322408339939259743277942430544045508647736823318593359095534189036760638788507842973448154470171267566166601493554840919638439854039994073494657677321670070154057836747620613973287003792346196920680746879836977977299191856201196149459367442712975854157457184048508895320742392277842301571423802242666999865769095981764934053420991304142188742744848633224693754042251394019707099238497969752241815706068150653136565494197139158892236246639388401470626849011543382208486276212493430318068936952046307223609202328797599513958470600552264973157813021132872869258500231996365237382886629039525192461870261355673521552471519374580049497775854665233652224956579488552627685075366039450906946499742571860977086435886297414122114273190331305638141467056865236866168688018913472906469029701987067364023040189552341268069708248590712279873438759667687190979438029486281598865405304424871083131476185283450463864681985850308192022327801628881472546905221554504795516215396053101574972591130040516161161038681058784121625858694416162992519382815789166479817434359816139575594288509284073155814085609403642151452694873672345096574016499615540142516568555584295361329649389402033394855896331721107389755092814895543315228817575797821754648469499297834531651578883744554540706428649285192281541452099464907897028662824263691102581175444750650422419244532127895294928768428165612452727453084007747322227458584312707795530361718965801016151215756249984433244925826973830703923927590653533140382889057537637161007310536547851001209804902742789827919339826320771671590467104061703465912876109729195430022159009669519445392326322797615063370503153366514558577180777773133517014443831054151794950134035922750269841130953588242959166394556752867655766136487688174163499713299043019581103390774999096034199433052543354054421763100847309164528908072873164906947661158347465355177105718671941722441884304563204320313445122128694027350455303774328353523537868509781438386339394233177701887156610349600265608760072786788659361657600677534916951126134330167762782803476892580120238802307298597326940845095009904143685089894927284264539711676772803657909280698271388211242929057629655406875987159000059630616277672359217349686450261833602715643520517719483585229001205724720087356737380444681425725037357235989922541877326253308050917581346652366148287367018850139322251836810547925971107101394755281599243145747240731460496216162711293549706930756718135993451475772143200436776338538806617700800044475593043322650012258919369688074583171608768288378049012905609953415007018039148517479340356075628758803591723501164985146913911958916667611841958434555758433368080586785553945658965633797404361869187969454698428653596242156994259060305230073992211693626226008627700972258070453287130314431395597506590916433930390489334135888952577424528239883835856114145239297229623612200808606021886637520237189473398400768437474406499557632803683625603653264890851892091808466940179542504041568772349957785945265987337794490842933860179387819450115108920224457013046430852673403730821105195388326483902965567841626413535582646244105824026399150535992961524407627439900130161771808726297340035411130311451027299999200851733861653023696124040647002923146000591860185960630449741968222541483459015538666642464141466731283470528932716671146981915184734853287208535052964295951508800553426369798005150592618745753622408660048629866145774064170255474296663293879282425530333792460990425882570702376679828734440249728736638747535602519337168100734127995625353912767868043308289085155316983779932447740905482550216383617947169380304048850079232070001533436250539932669967187929677081610654596606136931729576765217808136617236156478320457288053021452999514441726603215538217686745465235016253060979074041454428157999986253563809920622637860571084784065381375020489296083948275403901909389162066548435695435191385644481239019030456002409238485108663151425114418765614719142795017919306987192723933924530269791216923452195911625589980003172047605927981562358548143530498609109246553684181172804182739539491615134421103460137223644689284587080195826155190354534417948817530900342581580143499034678543578422761218077085554286917952373678978809790449314157404604621985864884581732053310192396737396005376231950163539478029262782960243328255945414538029058986268529819907081833963814481275089963842406726836596439617799416028523890718824365782727216997375850648706116149967210061940844250501047215039341202580143170522897789211484673606804906915699437037981585977723213490079610217867379484542738679794522680173523862128860358456834475837486483640126467361593301028230455377937645901346625209003752350850175058225795709043334275720785168347705519411870910591227541551409129097541644460635775360122489649064252178802406921964563250339283082158781135581458204634947298968229095261012368998687548997633259475365501535925532053116194619181044223787654369744843857687367888792815803000965845864226554529641783366857961457805816476473909833199371201808514379391602370276002326140016147574560378409912605783783692476540016664304853517066376582171322155212897633969474976672261407558557346316486287676814323310034734921329856114497015338765928313754209887042813746660435623498024406677780924978306137300885892889965233899920118866136531977761683104010391026732362404494113327660109350405279520553183184736316709608070671022186447410359504343003118159801473224142400164481929802032820944649507124459827983154561115307628752826134862950986960908417959043004910394922433027065983917997085686098120057806791920260679783743349518695014731911363036554646612510874065783817602077792306942983881021850977117853505095436678331219773164424907285823095640610554162486427626563727501915158213705909448362422586139800388494849461926089964417233216150004217852928691464003313063151430260078963723785582207827504665252497039464777961913016049202056249997976622691154209164518225571424798709489981653603635449007712685150552429669092317828337856768854233480017630164679980432602840559256346699072154019574326746099883036551790331578600281171595821574344335778302895733283897620025206016243475405694497676122160456801318228594674856613619207653777136968064424966388196078229126645490529057717864544734035451847096182127363108512186597774191123013451441114106408940566634715380562962663405818963174785642922158555901617856222967545303741524125933082145955458923631199639424021706809246850555529817621685341517147044301751971636015260010507661603366248350450280441556635741398414597405925400705323383874538514466147576900988524177856827141378580842296641749593782438398589050696838610376133553467153004890189192625113859303386013144397128521815134177878096888634502063381775455929228435053515355986169652491217673514635766034434494836095360858731521438852104580289699671285495120653187014660076138676077922743338079099884054560821616486062072615334040637695651453045525450204283724611627322287027843650699883745464667383343522720875917314709705124661866629639054079848924371480643973084117745515496446874667263598300492157321648934915833220324759240059066186701096028278957250133828018900778343643194273155848164451819009167970340951871678809536848950086170177756238565451014473943814101937155650705883518209437225323783786253244887166661015649067712996746975588486698887476850492311915949683214752705541354097912938892473909388344090837122652697632476409855729033764425222443577849197979868400065834287207843911995759991780614337365746923372859781711806837489110610440189967971919897922822340158217331424765223068034956389835031454403215425738011636465634527244940494689392090170393929923332648108287813699351302553553866597653883790937803339022502411224655609310507498996185530328882640997934923092573155536883504469792866560802798546694294857643077654266756241416948288558729986492249335147571463920843457735031065799369618422746856213901600299487764167211946557511043602040984260053893022243887276345895373169581611287870336848836944542612830711220602205714529289501216458231098012039109120315061405463513425881456517937317942333961570807476262959066516701937505101217171947543036493754955729784075647236686274800443700105719490169671360676117398569733415894169235633570175662197315831505236018699085706151270606220658097043497794030811746016301659633650934240659487892059467094674252378927434463453716135424569814609764344728077709168469927888626469773070656611968571302460512905159474880594051798838689674195845860861143203587135841133578861745436867408134598399221315424338619503277220984867543800210565511013533641928533706661802889951551328992190887484406838327009253793881539734854152268338484307382950494155570070862036094513092517949937160328334668121566493665527741662810838593739127937619947814285803260393396652953755029184132916876137924946313626914109541064825350999056542677143771579050891459269341952155384126523046873427798561065737797712099689459835345799651390313382355366566422872680480267607343785645683548069766806407473305241708515729203793489929122314568875485132064836450302292988300982291956940901998131133546423091841319162837794669267163332982516601066550698533392700056852511342148245982271077336632823492575569299602389551907275471556105548424408623102131742072850021269490818440858352952500862428616596923738811435973635916905355383318410412178392530060433355841760978429580507356998509868414996233186160294059205038886987195379333800212473523247063915970102596900003354110739544990769092566082995175071916227069463156635043481751790927558036927104674564471809334786388091918480308610727171856671909292684625076687149540962545656687171086150219669559022644087093140359076351638785869653574238420206975680792865022772577695422935175343416345308185777954856388179302050152460616739722034783121822131051433956633669365776586681837649172200292331354287444197058435607486189403168742450368279145139636567306971394758809773102895932932593477451474053130427178714436850735122076468740737605483812664874879346913852987139219578293500115727106643739139940442522333344937689452365783401039583047767317996461281885509161134489496752205416432537994113170099052892701009513838985069005396995570972312666240432314422086110370886624226247289967831686552415717066853563250763184162578724508538160571864427704739046362626876267884255038300186493448594154662920599216252809715433197866442308661639718118549221920675127190068472738670514805735541045542290802565615709570392705351948192629348094096881199857400762047018415193352676495823183481798952904674285079309816942504369427746291806184425436636684876758951650281778976897598441107746483971356704827596671790168599170749239769236563524579269989338967693325856843179269528555089040008386595424009244827892500960121345254976328694771845330456124339533366448281121638423123467234286138994903938608236997949443950102996848870989730548331997309610637627665009929183888671016878301073682701682295456070980346683779092279715382538770836274967510435307984397518559313861405541273901440670871906537466856321707993156595514012037719231898827951189826723141817126674877443450104820477918779163278083838479315682401057156383857265146875250715805846577125038049095040591076488094667356745759822191606653541836483593208708777588251279739366726104334416337275317039837197182732599950248710297380485028535406203676526790517098401275266317724840307920988932930320428389435229078208529718768711466571628221340591523425755040862565078799110056552546199651363481806086630331615082045340101306829846017270802539619497019431891569381376437862688342008724366659397960839099099881727615667195636922648001803878629482473395941417720947539088381443337239170504794973118459978382367458005054907861134699033242811728975686078333588446088544987638750383886900517932385054082766839936285197237114813307605095718878547039547649278763440769869955871390783273397115035916448382620761977710257748453884155551428075043404442519842906000191774425026148288586845301184530339136376596727049642867595717504535745576616016480436546886302942381874766673276026216942993701928017091626627165682867186005651409169004734049141609186860214202709550385541812442105799320402987259621180951903643502881347501537389533962388155256589362788547841069573655141909682904458304528922859406479396130777518697828394171645445540907426315967522199474189987345608619840165208787679247875903718231303976640557490308622523323312702699147132523734594484554665324930588688929466834932175855501510700533990792747144715023572620899278905986739750226361351352652178764312283314920544932056322097125012917242489546611830575119545890378963432083556291985887355209477017672389857224727618166411173710914949396105131826152093073630650293393762948749213407213244758746247295211365736942218749162084787766523560760893082444408192987109479050988636219572507552818756650836268697308462276392052122010011645476070355831572749096878833506542675158152358797686851734424789378106573254479473296973785533830845406658674198149511974458585915869677645030013807994669963123472202203013465491186575159924609078250029727306015349047294485656721753857408632794672513244839403858212886649527194514137440877230125136086895133401586925430397325119584464117333979913699732886008085726949867825871025100438459246967347510827993672862229768721041615792987785743784849755606903608211859692676897022671809893175880010087192087426142827764596943060959436001531061991055090013341483448454848790162404065147554911043634864141193081117988381201402404542935391178693041496004887791515921391768446705859470834832365009894551180835026042419817829254864242420963576463931534661561824563356785231382247587077867106565806461078882587240581135057258642610542985532902940984532826399476006670422200350523067560249457506209694001005519502789059222419395721212680828011608780055732498497858442083221033763617114579829831706304568467236602402091126545379558598205194135916501391910051284467211561636147041652210094182445515889288726988582485767314359951707248975216727954917814474354818956081345117877633421614640071061982788427797311094969500567686016603346990277749356069245780387989865520578321376911087310012612782560702845754030310180507006763100257871296458298155403817691262041759069775899993383945817243312414754823686647195550928046092296362522005817969285643624958819944275207491938494589824212708657590888495274378971173124874113565761564773314556645515381838782476186958960417321806288270869715711626414977850625514704403158968421541655886237091940062993476696656693344837516756490434576253995633642478553803261197223004978230774459853647967963410239929019550120136335258659755291104405189296943189930732483159002557258521285800061405529495003231823128912780891081984241563146470000792981818251494662528855921834747164677161794938105806951658279419444821039473426431682745154411540337097654336823588145077153076161090623623786369080638747572151848721808512246778214948353279509406100709843746007056444209759506495191048674006074431202786634710672404437321750283323131257106200823528182357162113078718988780710299982507206768545760060853485262948037806548602295558757720779794295303659998065856690861178367489719703267386469666958361359141624881971990058134716481006137062578478665947803400304719017211211986841525929342912774932067095941121550472734166752130298467060347057590790590480986187325467705579332995369730478424811569963124732878620535517949686409428742179684237484772470043831392214215073113161452699541145471157310524490748034190414734229893526293590135686644681183509578322011075957523053682500832887101022829007860482274086625549008696409142245056231944806135073438853400131805983850146643293721848997067032504754317638361779861313245476409402927327802816553312795409418166093314828810386126408888804669184838109032929068684967804942653783384880019866688877697361008778809592391441199027241653651518487160681181296721538715637221608666350541299192936254905333438154270204318008264749524807702363460100352838426002543696907355162557285665329815383549580751481083983424741952026728102441559692564980077454696350421964605666842909049531511422961935755736239615903180991998828903684407395169384951960002431991068665492059747079606630469735228501658895227954055469019347269062009543415386685463889820221453458456880608456450665285394062071414514809366174819438560961078296189292121460416282897657107342223402568805963017851774928250226122907268312547868587075537082201419008953077893495109857724068115218006246216734878389592693757831131554358527463945987074298084608608079909310856835220341169609043898089361838100255514936291585467459398096672293942626130248213425404601269610526739889699939232586401444640987986746598536164625637642973220829816540528230339283534018351705569309247975243497807356759589820255106983153779731390813469796623975289822944603902214762063232717507682687139271970674698299333924166241938775938435456249801651530399992019289735506342199300805149789624943886279378720364743783608967297651823529016873010111680869763093249746231111203945321626396131125680769150786779938771348548068148493443531112784772060669542161585884447437254745866326704808443427228778710121984256830802314750410712271216073655167535835913283538164420958944405679974259741437425343176129137109898895587513110015520462898620451418185584048438772186650349116552910520767685036664322937470606685658201133024220786277696230863623998300342839188012258384902769254521669854331313363817378030095621726069197104341362768309156752982892736075800905888203155913331841661676192167934919798787434540124807976881456987291416022845134559341757626145533543764478004117276985833839888226489031286608717366344039703831312260004886810921243492601585044899697122158927411244951478458658418118098660535626947675771748223362209031390888006122257230641120499018044647443114989852902692430874319845311966366639563297324102291540224651155346355047889972291938894829778658579601437403812879269858401372441752374648719245917558197471489545142021306763961230101025039481443622023190625963398133444052745828340957851971227920082746412433477998111052712407060900083282087648638203075904132989006156319517039747567649152289148231009788491928004184583077539273646557455706146572031348450113865031255755053584792793508263196998349308884694317980703063062866435552303792068953833166527398598120954200991955811728524372831114736316690654214969091544503060246956816786431456721994140404770921134506317320941015683015364874186774374713023831238981361914983891648090519651597609811706649579229787117239269889086720772944981646086707564503150689080432983441815901127457380042157322849334570593696215772349263855893506672993494528514002995203587043857085890277071325431310667484351336247688788490373187364931047203423040044492879621056339196068585426199047798562532689672874282680289614366358932453059621080493481967556766410623117347189853661079531376916841431980779626538490681098562956385330146447053130091928713683443947600301964811087914867109133019449619157155585183006748635097678864056388468791830199080223826402747643160284174482647996513434856799267487582890885232905781391715293629679205998478284393495896380091873844775349329311169781554860249868646450297762821625140073557362952804225345914446865997393982973082812725476047248361710427057130556456147614052964185772015254395343070336240362202666297088101692531700047671972809870076172675529984102227873531233112413095145780744772221652681435731178869490989879608761560604578702242000634612912257024643724398547069469798936656285365063148459952304621695135074221455345753841668603544521312909500657088017481795336641409568624284768128670095429206635038354713078446037038527927204599745182661213256312218879090583551870509291124996584535720051926345733846892874763921340114807881582934897495322468259851797922821414686755011191045510206810189782978666911074614418643190785378102049366747804514674475101871820378288490748377123607205433518259591845343960951508840502292753513149030281741006927418448529168923569993718766611229786378664349535649111696526284647765724326621479687593750537847223484404939504732210585064648585770981602896402808539937714145391065697772360896960459380447790203664154194112403229110279890203239528687306207445136261146481171821655869560652492045632339564400694150890100611780861931509111302982065237788041095699331388568773251490108779879597707333696498523645814837320726925362392353263785703241540741008890061502233590559326287948633931021758772450013928499697201975989783105956151956221472641590006668691186555999905211162660247684298252813988293334685445461150296387614364310715803866411372260359364178103283622444481234043111352902580028739604038336473204583653822520361447827979422696583195379413246209847026867863000772444062658038307698640009158678841674355209149439485966218427651633873458697242375268185489748516565368793857530203182042023486932566688458428003201930054565080047956107350142163859837746570426710470435462571121301423514034594494028691446703516898579582816223345960285621218477026848703788486712098837000689140965517486701960707321303734482860280428489169684507630593802400279654587235415605528454571269058483248552477839163110933573643889796532036624618196207147236374542332993687740826148211266972907833995424078574160685413585383228034814200651730340346855482944652899209260823018951048362399962087554854151609722373163338633917269335479842199697136301201343010251943008732786721436452054164612458802022549331368378626913208266574982394536003300574186285200700800927688779807060985301547931874372722986118555509419672266825016673256837001497357984840706415661265973199968233430226965420836877744185632291948506337600073593487679570440264726335695901783445709576051927102268207855142480955799296391616195434634542251868637879384204307682730916897247996991633184725649316212363638205623515080032684840127882646230614092507119625972793270774937423863649769013634351212759532718806101699310058915776040912893831149748701587182237748172186634571366332075491433998818824185019814870535788944099899172102986815696332990857800025543943762762794678363310359796716887078035762553485080486241099665440103541551933443037675253827755463306055517151875611410059463065304283684541997627970519784240796390066592786966380180830309336603729201808684472503259249097248982201450129536067808422970645358670754565561491016360094631173938609964840539605808628659234317348613532007450684650920801454350969933054661959206880715778171524287618927296127440004200977940222344310437328569911260164481294150996241964942079593200394045580551435435326846978334630237933567969143091104570447307613150035045528745471552240523033127528975640753791376737978217108840275340114479878491616202986405940737044459397595594646736798892574870853334451986355183620703890477245569814586085154892858253050717462313202645241534959642072166074031288563189426191695089874166888043295719432073406116403941435624879504460869193381693291971886146763410129545887132022500645143306330909136512417821757335963380395651998682890903772520398516073345982711306254377702949487883264174996416013733435207980139542315216753345260070072411743390028788586417304292068172559691753976337628094742768608443785776140801431433806670469709145680604706443211054681260854085888054724465316573341971446451258566002754065652270413177273142201734764997698287648563755059174591081290690052982561600970338658174899663305003951621540547424246478553271009779122183931261637427105114378210551886845721516085531901262991658819703152587512812597180048951545761612941697919104707929245417039409161194422441079900471310009452287296853492300530318987618976466116273647318589186818899977293646971298563256274324226606784859558652016989170048461734530457495128183836933518589479968897399970151000608449144017530760543076001065603968345278404715278555241493785940872985816063265878595528073653925739459108496756486082712391096106534920505942303594518988528172348211566612517567546062686171911591447473260065350090405018034697783322946026803759396224061567508882997496282033663586701410047723657761809932523924367590595016084332666828244625697128499094599048870403075755023044296135925773996912903350096876817404836935516519614837453524245087039134332768036841576013688812750011823026576367986047664752291924236020811474110438339083780211244941338136229791256194304063643166600736794617923710260604983752792997769113283118640103549170492259853173992179939063709882077296123778778585831491822294716039462486566146642806200768001306112284804771671518051616952192471769654994900860186525170324041418363280027864098458970737286704346596384367477110004729617885013836436137025921224651221105079951566263861593341790937005908022383647375068157351007064271663955033363196704584761562519408517592203697713298958344711812224817199055053324441014700240019960436552951714425066805081508886375199037200327138575083736554069314980924998315653273768683987536467873625031382414803600207258485716413447798746535918249379566639998431190974533577159426545013671511764496372575472054960269260632196841109082003424035773184136183180006135407316010753469224303541325203824024009784460803794901487743563940163833453725845525720997656437961272117384549110877397617562700735126070124281268266868625088664615085894404434485832207845947329110800543113600690541496268812744889967037665072075591378284190595604561794058833892791900684440516155330116490160999116191681995667141973440919160660960423843919743416909175057919490822779162094052938045690828672464929316030519803423469468583808633714512058950533384012383582599270750242686943539395935325498527943039884922864764333100425208738402777967413185456013927548297558001109872052003227706472711879478563542607222929100660853409619210367813646433972823528278938062033331890106327988233559397230903927388904617553523383447623573593577897091928232402436978499829880714168314344651504024627399811628185114581969386846412698787709268031867204430980752160261290217314683917397730920179446151954302155692460534561211054052625248564369802898538997192880910333864926404348392200962879282397086537254566442618413499789024491985588372439072410145474351592949205302711482581425586474468995973097700172102016967445836120999232711015185339423075541770821647170886848913522875502763713892472239305901746825990670114989299521831384829749197206711011300959890479724994220579954684714104921985807456724463142492968853390713839841841902391705378531265471904196729165111292062592365750786460332862491381948839793825263158949232100410808650934397236488823915595013469547874030420596707301394947222749450087108506324214881825359835202752116373863179599071415816023911444881729423097675835929135311914359830338733536533376937647926777575719379256111796685048708801268876028694524568520378677254011429383131011775546072376746331292719909590718378034285160570721238581892673671127902283642343222209996308824421266530935978559314223353571157569433383430837087755941591573122655925484172702177108244983528543988591770484187088295251895156624403178937073945608088317435555201199123334243401781769368428914661891817740446910054064127812039421023139445598428714093686553687543534966230224143336222723837801061163129659540367104213874481238752243054155607349932151741709226969159697519550727924425132966464688511352364674946666033980589896520583343860590205373221966515458075943221903368858785110712953396557205845080986829538189947012128518510721265727972426241563893101373380104212029566522498079467749162919241471927284940117284409152681961773819739330535033415260659055735432438496339466880149610243122558532921230388366406976206827365881308326724877637190765280117859023657173571654994318501409913382165377868304421967271971828436825229837434776010887849157402977886297631169433948609015132019287315637299409854732512152620585141171716115764737183084343109663792602816971659178045115335200522885385679978271702944772969761135232493249500034358527486950266015148006454554134712450113141339277099264255577093807316106731222741760693496674948263997289769483635707334810880695981382608924777477527012917005378146337892181070274796949020556598549472701613960916643827335807886020729235230715589076938538432221087199009557772750183617541783771886885877147808946959073755827478470604930614921540766635705785969680135794025976487472593709419005385661131240599892284183663311902206559581287757284570051701159243392077994055908638189188238407250853732007117791765263727909095868225126074560100531722757113533428238323158100163773530058162165762787037441024318172264714777522412954952895799035551896473547710241352186640909920993236153777486012402943416606901877491882319234065426817489123579986397453406837877355694097841609992175841104529758531093621282549064326080897428916193687516038015960042261011010474555729868886678597457439511787507003447446592885884049990867816598725806448942108665188712218439076722697891785567644369533477416643836317673751314636335850218235976790410576684369186076479320544255524030664656569082065917519504073515650770751562895487800630401317225959783615203696235759055274073163133965697632036286220605029664071972363556567851191129893506331635528836791856702726407441889219481227152096119664909041209844536641132479730155653244516596078082657821460982417383674825105241680827137135853374061351191789450323528311341404178805175390365611402709470391360276027295213560276949943647665329659668283901846682468627798658772275507765510698503552367744233943039259996184517403252012796421606939322427433081994343177341989697873337608738934361287463246080455213219390479214643307079990898931826769248386917362537590910651326682166524178615988348605407143812415175436368909845512894800371215608813144840813199520631220255535554556012129782795986643202606736309685805789763551862467438632174895396051426831025600643275880007530398422253582358268872524446949826626523354681599898111283519449855387900677596500113685232108812000201383909706688597874532037570779147955654568974572181606934008774636006839405547274806655676836069039039752391343217197848865301729359152760552273161006683162868604550002581742937564881502510037860266392115384215666795954252288409988326178070995489460779354954348614993174741086471286363534574363389674314501563796504477831234212154152297312243754085248573391391662964617047864603575127803401028246564381286529803866729372347209839553556688547030774849613828242838752668126949621290852581279896616407268189953600818551517823012459401659556989572748093531109796574873261321914652130180230325765195066894565600650899365066953580379514059889833066426490847315914821210662688382208215707662618290073139627921999953663537810902192097291890142358829569525057450559331738029617916645217859437190057033801580361368853438742335518905623278586526792590034537429489455082605027836021656000983291421743725400944474062977649753227423024766597208174539796376634521659159754159822877212383709342059367677419176412279049281075685042062147940120270322569002770902536034699339234966725524340147244018231536188900585348036155099550228035059251747346105545047693304078809122910716723845127699757588875451837403204656630989625159815220458170170289301644635451573620460009141549283308946035041754199142957557837531009882329983514952563402326600584378584743585052357732874329351731898055370907469174014303976378140833155266470000017057215294377869456264318262655873280866853400714190717883865541294635447554770157587615398401484204038976297594253410323144908710844700047726891767646960082916485917901641941889796841094344337284867069922218282444695040152697601389486442566223045693889282932328776659732385540947618625032655623037023634326087767128467984334462633332904495800541912963645214787426286111434455023339187176259496207201423004177124781422419595928241608919183631118045009170195633887185575700015302961385628054358917973711138345498677706850158395727295489518863352100145998097862601786496614191253635519126381865041730067494116509371441671005467216328910864620442298988153230371826607410418457991020808040610869807126547072906005909116443348557453828305576246699940396427162837037861378857885902657120933347811667754812539809655589636249223422868384046353693561829429175604177521706508351686366167004384097347990668146346004778616370594620705518512207185436304403066069334507288734093623220480672665018712820102426176192491326715107161132922661109808784940698861299074899919805493995108591344894380136512650916878768550457257580271009447927779792961866984377333895705424190401679196548545856109233863351198925404644223534230340220107544913021808426058378742576230062729457209592753980707596926443371204860273614396250723059551633876684158773401892059812123507683546663648467848997573251619060617221140042111505892345194109982382876765428661358840272048811409401187343815449089786990339318590553433701789360612444613582840516224307723040558397174757814255716165099937614365112839006678956396343401681640227980955205194207710046797929915522712931650451884284458798167827804506841279702542121153585703390048372005924540897140028972040617304529454515725535946393424291044536482507290205905475424822651200232168630360321608042960951635979615561894345871499579659772477415412892121470981585404253021170914827148613020684527907022295574343320835942853339357426135828866431161336540875233881900387056186181646050955368105567731220432208143499282474534799010056213860874939791748463689281238164794983905786662915187714087491798598961816237061712358224573542728712720669719242262800863548916911779292748201457085618184166357309300232688856348510288371462990387389574701267141165193877250116403643478251547243040584070820759453535045459470828806316386321341435467339712136192815218943257797136221907774563822076557775041986157783339623718516202593953744252676196802245533843595150789009881444329352781884420429010872265754238281297768563778083235173735853396794936100062484667059620102810261368766476107805302550152772017844293497642305855568376740639734343999762275811735760074409468223573055837095576151660767684184218352230648190777121261891005673554458756482362895129894424242896860526233407651695193718291613176474863297817164137404714933463436970222339102943311155940455350825473862174971724588621520136745515724892501682705948419350827287036061490096302279197189561602851784064695604426363166966953129995705186276152947753905403717753100845399977216695853144712847579017180214808827934777771669707312313545474098475682789559236069446296316739639865341097278764561006126649840875410862007420699522607135173075037685880356722002719240444381969545487628101074313232114921165260114746592504224639419955022318970578684115978393991427673706798630587980304089842381203925855877197643767710666363410326166332457205107900288927856887209041637583979054447982036397861621663449445878101516778019699383986177941419801988862093457920388159182579454065669510475234583761416311528159263126884370858021949450040721653941931130523799826902986060033866448375829644884515763547020134080177542190103529503539612000841810116733922470762843259122157651350707354573636486152012886146492793414267785375143001434066514534979643890738542647336874206629389653801707033286299773462685850690450596469371630557981935857073540728342764550258047114311105235761018313616309334244991782166099987786412885906146156486534501432340502819172339761897943527181985727041132256577642469630929602729638419997533004171912795517001213917274474322519781320089157372776132542797588410324461827042843892665002469055745326490617219706721985815023738797409122611109305409677422856373641235533959530073064441839457717748542714221608173996608235693748500548642647139580454847051646913142006017789893318959962541417085149958285388553164961462981557737621576901879835183762328386555194950292253193247666477447909603347724490263774784558719898705756267278731443293742790240395884599017856368656397880848963742950163156898523815181292915995947386380129999111640081348202756135927221369783961428967354189035590430182596826117378089243648245039433572179720452004987003246301402336448972753881193145448549244017256733490421502580608281059690215463392333096863255645602122868837963120300313957555075102046985024656820661059110693602789400214690767740571646882474992366442016144824623522534564247154732548552723909707096299481515427269174221582788120826676586325003456692278429985126358131697917918083979497695402824875555058987662034238578169644802746042421997150390668711381646949204384887893217964573017315219205725888767899452436346886444927662287543541949744398735165202651082516597289370081148707521701823261934044132575343868145803215133540692125473537566526217506682965686805108025081409648200099070167092811217475162075423169240662541469669711944530505052160723784984848790194361458450020997739776475367025765909495108096982363872364540376390505150582027158817451774161896646530551812509790200779257154261078522363833790606257856853822606263922861678899007714763749862090374065154551853992434069076997167502952789773374274887595297914439793625545818849343972619792638118126993974676548226473482653352000658576792970972391074777572537566408069141948497223481203034067990740791366365239385914171948079150988216729410512785309781863868561665493235961056455499937401608781745819300933245102041157513927943039334494807290719368248367902163101017044166957317453668155720583611213616053223822875143936711727379857762749990585203226245912458715558582222555489957668768839380251456129851051125640269512168298198672847008789491806776674254278214081468870588953022382369876964514323731308796703428586918008867539183133834455766411333386862332093866642144674294164264126229469253074519726019893928908536724138725075391945308267728997767452196085474090487603545012819906188330893797893775741266021911642793500947187947523907937268216688639899605828335998033922388340891102310778704019013192732068897417825643270627637691824693257850914828819861684898671600071998091308800314417259752640714851084656517636916630820986574945273816156180178285063357678711277192472853329240868052492206435568213448841644555173869479576858494185946965944870709033971396952774363294567676948482715954718714879749920964608466207308965860628461032942240960091439958804861675132959924778444267314881184732628116220075796330293804888173859463452507257676460313074399552471277603747291635866856574002335637134079804951563724483917448454459993085392776493285416353931321317538025614043069579675605385893739581821760249602949762346352733441485880769083138978352427958151352251508432746050299614082383815694429350258331027765015376915018523390996653150115120928830612659826297495257007622472031400591263122183965908052643827145828801293615940933537998016271830190734592833659646724637372522817148984874314634585469439417460051012136368026971779476224997765085722852447768233702723193052947687634948299606027784688776657156277379690662470015438982303166042454322645793585554693513404893535929085611762259200345720796634096833245586189054285087112444948574492054768666681457603247496474939817193264403291498389043462564042860333545778917723388236768506415519271751296630336094870737926507240772527004694743291959659883676342901034111384096210278833142897568026969044847940168445429308877839135822058036443308492882153398884949724163988270944453316354139250048967434686691832665734793897237609484423028441500958982546294907848824610841489094560176855708485182290835085772087427548186384779778454283791415758810095025632306632061989164883898582933017660547816169988013696141520198167351875422648790784771737449749681217053115611702149832773021590529208063300131665489161972480512015122013764327048296279910850015260901902072147077269417840258044851241613417759407814182682725758035110591409489735740741167639652642190776195528036666353509338994050209332716356421216241508625864652828913930149655257080534230950596881954816322297492401732151251969232870920476258764050407483924457973763312921992593322700129909033035067701535813206211148474634189023405141837198338571771976083908947351123452662610778892006180579471629715307805979542766074431125196869629262920166461641417903117943334579531496900704450092806887113716968374905206181116990560083262893897170247981805060252940551944480175072494470145466876204847272002486170769981581174448731831126014822873150178090306951382722288416546797521459931741889200223336912084561018978461136517319605550218608313440769477679235901771003037593939164711431189971020262977457421977418071267577647381679666604901493491020202209502227677318037799537951824092044173921045091687731381002797980112575536644936532707089766982864846583186071210759620688460893645106461318270984766799973811083570684530077279361238131634628980144018996896924326429935283381334523581813859041797618576606398809388104431014412470465259602386633722927573036182635312757796510100045491325507101624643358063182469830269059471762302169027173732774621800651301856417893066432047619783002708664700011981990185649710487738900083089651016374139079419767541357178829156249051856200723710843767597563924515877331521759827862185411584700981904316138773974234225461811037642558338348186902469411229248218492818578343329629571436911799539870220323216461531853752560348361209356635116847796000877770323068324940147121536144399714102051230188335986076759343607944160583873352520835585992265152015745279987608598713421377508252588960744206440793175333091517647343750882743640958408091977139834903011271600313066206320436908928923754304963292064294959485488097363583101832036416932866541442249112517167831347554049893233281775702577552541270215610762028718483705439890514487338267914119865732414985477320137342154072341287426895584252901483119630820572017672469102132528714176601198354691078996471066428319582028228007382882153782103836661686598251774343413126942674139608239440226458615407766490084352882095281865951399145201135485450717164016328248465868072048598601297963494544037721839395892308019188666835908709895006172131844737283743534137444492187184796316321893433256487833461234038373353587743099137183290109094177071798488115336748947207625535188252420199735287154397914385092716191261025341507142651032771222683108253201471665447760631137980105398081369068500241712002745798209602498590722571856989354983888324124584641562413681600470975032043588974454703687227540296183752091031915606131757171585644069766147582196347948499379182270035575559682796177434637935396636129691643670824044618355752462515758967046430412628472696326520522748683157119605193289417921762977974293994840016814992758350054401808234858524612625919146150433879050231214979791618477388718795396138146411107166819371753745095209391438618494478264157142895080345141271120762058894020333445928332177380393185835861409311551187637443303778165538223903026823976971161097870299928096150253764053885708391085918224154807533254709804928773455833518118514641234808685873874611409893965860165169390955428043651255134366746301263662842068085043434105442108097409134922786824698351933612134239755956237055348063564044564574568655045434316316818492073510995390501110487000481432791800629781401167630350171824646531289088618523195478103178204218492253202471821912835823921143457533799905317413786972020766931714941936103533689148384199896185700329771104799131923824127881775540084126831622518744188495887854574761743030364554367846472306209108272544240938543442083590225124754519418898457815386173908415689914624451249220563503971974383864640572653644655075051226784319089373765681461981354134085850246877607973217633987801894805603272065004087857960112841844513868477994728818764252247938953250868729850683421563154334058754984727821982743173310728199843265245017813149982274128745385080265970828535339052083313216667763033462213141835152354783036850559998995271624968262013049451099183621157472155954787195905837865566191388234782901506591486488135692072022324003512248634843433074724655556542080920118637013058067195934710351424605495677469096349383742509157084958738596332329241388714484958173004029008905224521011537092331895425335615257578586154459052813389233710627149124695088016410190149439028277679802223850864379048638195163768476188911476974444779758547182227387534178146787894454919297875277027599451823381229888379556164894005523730423210675211068646093091752803866046579194998029457073416461885195825190625295857366298308967025803388932534621300787880008084145030786912094994274985819379945373071172208285729304749361825891852108091034439598659978641350977369815213957367672509349517732097639119468967402754417388010549774366944192358859907127474127361092067240393159571957935550316179183253123619519184479944007404401257840570141518000155028805656364186295780750461504011178550390110701058552797097287193529924717974162290493653415493991999941523724862554943845904849090355650469307076911258201022776107860508301231383512948153665585371961145803128547421006218179055192458691410521401254037451991906994302157833700299265075675390984986573238168980772766432423663112166863703078444236980510168796155887163397209084193415042727917265710364000544431733447145547424395319056003265672406653397290666886245498289905779228520620214077103560285924924108111252366734652144838543550005650157724083355567301443579768297348922579586374160788965414012312552469311673268257234598467966651881432619342358765208209430863373780105449694390753804649007150746142108557688838947516313575671703121248553413922151475779505894675538630456410819911129120598987735943245915072427635425835138548784828273069919110466898301630710272102846951477431041038599322636929165421079476634486022767763709687295861344654400249614787906579299532939987856679274477776231026577818686108831930847538402301420486613404840339172953917744839346020751559999472807083546946166667611463553870825856863312778517032781653478562547818749951751136440524825917275463523973085920130145470450673607929545993137388445252168494428680999482282150133656063279054434550912465046408946844915283305830513261003287473668571179139634293196821074489218974142713813639998296816161827298684485771673649930093925404346901608040638219097033332214089350802972936396137904616435418151386643451893237608713207254210667280215084063820885865737943097353931059223111295081314695968889420580023420652225387772555081365609033925359025663230926566182659075975225812187469689175181057264545105297159540595019190806086223231334953691893063899362975875377100787002393389775623819762847134649684985582827500662399208093462733005351092326738377088692645848469938013078677498496485926646966738440244538290244778728748849934091084287235157410467037525448169139809779041087035151420522826473377685373323009564138163377025378207563558611838416360311371967527650755149269967599982788423262341100807345669036132288835485479726518810774765182635771648383359125476954791710016154931939778304250733567806083148067492526447114708259986387807637408768590000236575760583594992166155603472865652940409055742518711498553001888497474707477743823767736083087779071819301341647029154395128585774439764379865451696802652511259144374936575599345694159679611952751539493646761191782245884539589912972767715627272487969695821801819582356360573094238950537652666386358537878442330676095566769813153737883382531524837907960518440424254724120947226326255462497460727651262596852056613405448482682354616946970618680262167190104256210676328515699619462247070046006804647619153742802912617153155065647442542224760741715443333174149615567307786951829380706890805528972637963699665243602916320069120126507511989879665786213146487441119561257308271330990846120752463482644729897747854407654869945708479678187039879395382120455591782070600353094330433175452378610452333962173060288060543930489948089362538074811683674071044098753823011301604234520991992058896694710262214932574725492081612917796654386902750331596373870334811681649716347911035660516183735972338049507931572069088286745003211893898176161693414277506377760790806123136201337570527113457051481944014050941053100381201065681448910385805269677098015946765974170033789075722075151613788128040385694364375222459368686305724983716631481691026824742695388133117409265468625746422267913042219527013448872198158781468324082295579577274435541356261795346665553819100312951826374417649821759769730475934277408553787383540708141812322322727150203521207069158952241201685145824503858320867301249203863374169570490533227862562945850885828880180769584370133704595975371048017314375254959568003941618476631485356758690225470561988013751365704894797007917059679288276624683485764895171890539408706039760203726574659053947679989576111475465692352939233510157070776618729226423289560059770683678980087892893169489270593715479728885419849397455965399560897820827441912154985881867269028246764234015477687054070651421692387073943148229364815830538964882208941379770072887326318608963747855443603677284605641045255110739785851630860950406141515341087423937940787684236431594672116827514237676792733963426137688805597281048995490788913756988846205249215888936169528260927556516658105283111879274207914755901048324096906805701984013203084527248126912631360044680184076533123297876290899936190428254449238428088778090951086697969579465010135329000773737553718955050412208345955333241825483966820485766909000082857628161281551834448831156748723108316325347696692173771048539790936346964502954558553092323373060783226486886837548740090387543428276524686657952171306348622955397138417510056649124104373808098993370245758225699847494456912192735563088046955165906550548281087911244726537824070672096606540788333469109703526444598358941767745977066497831491878123383786580123107241270884349615735471569935456491881958554512298204179541300181824772976375325400177478795066935224544643639299351588298212565599374196776952869958582698084292788676192127050530074266931878528058255549611462162034237094786059259927782653004824219112987346936177696323893516525983272163469380972004242986813620641594335310533619768379598358487284015840521730854837647987770318705276658073622034959365485097074682145876024328604134647358627050301710135052663564644432388406773623682194792153801780818175762479218220689161405806007786289575301325876340675883672689741529496331347831081276928762307818361056697092085978546992054342049887293189335260204043491301618914505649831873440855206800230874617587109165795727283578000476023455663252157744863264040524250916759141740022130079196816746941461329257303375990461492552581714144857838359630160167643574076466753210147623482276273900725875929387282707252681202954681351855553450994489701861085150056650961076862431187506833894918331691867355386100610890367777367577521863368115244769334024351275148642367232403626616632038054271733399274100383058209926974218322851081400750771102147764146492335546923155058977248762522124945579783141754120410161557031339322124664205411585144326296560280614557752710842749960406113593261322018241379256100334952798654040595723991991484470095596569859694624584287529653117668251554208458651630841913728300511053172840736012069991171212694620445008814736997895192146927346577273372351541977334963484883749326620920226285924168993089253180878643125566361442147796126848897364434444417801132980225771895052589774354600916737056290198487965513966522163066683806436274345808324498598556320020997882955791061961632964031020763305838269993886296812199275154441561618750197267180600504737215074097783037883217478166641175279541167569680093514115826957431827058639333875367011029849832946575263963905491225638486049384454399308210203834598074790410797005969308618144906003471869832838890011873241712755383769386582038282702732646072044251459939289902851899915165608826960807705381526981824141019457914635084927919003222662338204812884641036648348250848961057755098938650391282239281398726661936295606627496331738817020178268485488192706490034502849015350158671423997648922699986898991262847995340694705559930371095005059332093011856461965869022596495430651944944355763532734206751893409561084143795663311603910829819487556797291611392517131750609830155455204848399584451559438993239164586437751883600405386016034934858473147612004016028440827671149949106616450940166626244403867108309980847793232806817571530223713668351529748299968702411873351992764361250334512577741887320155928181438211526637781215556440639171098133642728932345537564288937308161375857763090889579172781751103161623516503618626130412577528376483048962346257878257905442760771529167615098685019948239235525229643186834474211081280144692024829108477649756079722952852171961725924657528928908431564083457256917053829926805614960108799163925455560169598513638618298115731499320037838768631717195039622848933183999689685717092530028854274073415779509832194990637310018509715897209517743806298647531532406350209781975622744718616266526449906171319067505120625168720252182749435126515149489203832249259837989364893456453224006001448629704836389989438358467891230292869211412477628512788927397320690044413698944621298474584290781543917751111095923106262849986069913025549225488712953962705571049103839399258638331591655480598016637134961586325996285387311458312537710003624640818738386829001787279759963342626523359986333963788423292194934189745700378810172261994521427349409485084681011005033672328867367563745644002563590312345561049212352252797570972952378353200019489734192710511802937870749704443401900906266350989503742496548129606222280423089898280408715091470030540851853887449434328753438339488172018978883288729701292148247416046034839687371020266776044205372235116263330122956895407808021596079975756831024416725026356565194648063505803555864717966661080288851667840604560221933019830818780125237602388904145408739374373586088473134329231719809565399403352829617727072872370346575387432110193082459514705698377272392244856098071324404214754898160867646505728977541743394000208028756180559012646726395085066206636474260422873379586539728262122890766237599762477207596735375678857432633292514088357960824701179265191846828228343246093735316050455872152927416703925644178361966294076475675620091198693624396818814606888887494828297054691363638483234692126046537706030500722259526708685544942089692478590825771444563556995078241174519927313300148654695209803609247604023736087851683807943453455192405110574471507911656722105677888287432679870921368415457171162054114381379715034817513209039188237192733180860444703306565675493296772191119618729407191897316759180060413433187100563516144076210731275607327689941993157278551527093400908177005084791003407500681083403704548142975919780245959516800584251444606352398279716522030126519223261085997547602710523495648325937653401238938973972389692690545139596390050899886482114694489697460054173967646321696927871823429484414308646050483079250909832188095243425735462296804457168936227355257127109642844133102942998057601497172371344181263716731508285941768173696175502991826354994480371907975471967867419033773796724719500486272304891947490864171393208191532636503435596996934843647607866443806341285960618126440959704943928085024560720316303505317880079579538781916293220944704687751965071123048511017442258623574387625307457393459379570578566443138162596674810674356893791674917799286509755209232839532211571657739543140473603014740382988316919659907678328501415022089655687312868812020114055772929603745176951320771181343725313318227849905420630739555453642697709209079056648336542346362092775264648766310812823716439185606984813168354346317115772294752002162946406899687873384014970792245503916575249781387623022724769239346527038968225427447803918822210284196230644158623601331840996136280452914915583837975907710496151750136649841710433167902027838129264156060668239441073788588912409847644299273929310835899924959259095037311960388085686528814714913504225591482804838247945288844527753659567301147118922047942656011071393693105812331158329847507356128346622800522286612657681173698674880467017684739670442684325977234821437389798508607902880589256891450909461536324143673572343553312156845592752441914983485729047694901477924293381432038122727307139621402733736852028767155565528972488314478184848715815410101871338103497997599655324870116215385644799975373321721478001735152332258947107197192388890272990057184091552338676119894392532035696555584384426609446041338115147400263411485537461794152650443425843024404565784962591828607090366218664788183690149895772563401391661995537957647947065003451760689470869566515656603471465442063476762689228857225062732653407383045606786345447507465715668253658476642527311950787637527595855215152103256527967709998197564317283072759818475478484700155556792756892022218678990804099840537937132720494054169044711416860055703240069420186785872368795501006764897406267908332598761964776966863650971370023180554148864918852304046304608951255916972354190625093148270534620822542002549138190568486767892221209880739942243865809586636952453203781019663142034391111717325725114504303087414976829271950705599295184880990978490063376749146232854959858108403026751332388145912553380909200438088942141199865008147606127950470090352411691294747047934905240587476102768936249748985489164612171726985719949177104613161044583231808159483338620218629750178840701935504414514180489205843928153065985817780346838664004291968343119594195564248411814536251411602429970961037578450473969475103697667678944934608482308290653521654386866212185297867493162359845801576925951456371716238702972585430688876646488619647143015181119783547198070930244247321322105151539048544420546695919741559068725460458271345505934233250214594286695486424532196280067904682830098066262468890603959895304001602891045369859175121430502043352457062937457608792812497577990286618454762745454971278915269297499176065475335774694432839841110805651790104023663093224235387269117036371247044243385436756215949892234786055211095671129876768768197675609768935185556942083346857856232477005186691163229603315710681206801172832639391787062236861959670383150834340811785314952589410554784561143220495507827297839369358778934360628926578243545480412182334671224566892158520151908633356265094866428786425625249886200390290179116248187157937555399818004565199967099674082536677481961526197975035602368508055621872666568400443627687668648090253362572711430687263649974841589625703048581904880799287554596931361831351162183599761063455958179588812435050084195134601613727358020911747916925797991599233207784525655007128043858233930270173198011621929355770574330825444041030759529301578704083165092449838576061736541582928913363761767433554297536287524153199222218405971787309840419940482761529268485024371122994480913794343586941840468842200627138642381712608326030035506336419415106034230010974450069326189159506349813983249428601954518051323905395304881562130556813744533289857403188592949847394902232043494522355007520476837554535228191825657418338295472312747128622476998086478110257164646014540919778701705743108093625949172647573351922280590172593857974093456219306025247474397987243254327780458274191583923700024952381032956463476086613256839959954148005725193215414462799379936339104275554761508019181853261506238267705864679886354769170842205029126143138383116226053068489659141396412919090829130548267566315150243183788515277791810553255960235494546031027524275017066873040516929598267614631835185335794972392163082061002611125580845638159815816650383147234387355614296904180408540173511126290643007702873462024327620555269927900947865941298584956673248211806678559829291191272198346498715324390406720221874645495645510455760262836785199142438919357005014768857181039461257568806330068547124816641087040688346743704863447927473293597395463541928661218135321049482959640604743621890296236619422744160393614770155817538627251838170890369129970145162534606110387070525249248718451728617590462209100859650621693903124288934649474008520217885883692041831339268389938842706847554424799557238114256127078977579160292703409182018619714144749445366895163585949541004026890264323588708368465539373282458728587389612242035317022081451492284251408457907788448559488517983663290320828516074298588887977331237265696899450488269280778710518544436696431496052125585460358238270570373314444173500735061232008462139861195933769207171150727864167274187160989385335644961129335749195470325413202513003260427826794413762128594188292704176987197442846218090461546331833153276502252265527877298594828082969326685801699765490725944446616828089038321536400109458356757417330084001484601483909679135493425431649182780097959936233394058879331597783411234880329210975461896364456493579395685408025514139266907861081030680674674403121760354726633332211185360833675948701603539731349402697729295458831875999725047752860676526762906419201496939062501465997075524112786138900911685500068800130131434801900811259734158820747884525973805491484208787023357134704018199183187376011747867942109890870137364513967279700007734736302078580540739395317719745558911214521993025967224159875059998802339378423631300218728625941524629825623846844538556389284890393517665200886380916600533180001251909117473822481179084990040912160906869858223970500892541704674623657823786859318888196306561497195389146014834039994906778590952038086613159295255236521444574683563227340237570072149171751162372909848542635706945179671912005068890037471701727861326118151905117412398077716586250056342252800219450950216041156330389657047297102991679751375159131546485656813590214175448051406115047260934685455536707625721494153594133816987114120000455533708895651181614599495131264193168923076010406225721564578150694603018586466421117115039241315381428806368548668393805903925138274722285233656935948837117593174672263888626385218408466567989402849769083138240418611383017252438050143312008202634807337066079581972260536657102025878102121435816204939625168159309745605776849408652866025415404429544847765344587727949621339604894143575285853870229880452197829012128667172557305287520403655054547312913057418514533473603038636585906278538441239860701115232365977176816224305719681218522798961231212381532589373940390905050580986816953845010883445743783853580046596315743971037892634294178546901689028317935703485621913079548157006385215628332566809605945423533215309128051363136096897651961161078869040337315717445405250141476492937193261077236682062417441895711935090048219237613184276359343455515202604827807492595982633796882654151961316906327560767095736206319996571015968618967573489271903383492756084557435809969908337557924432325563939335928424044926172627740572024152589390516165641190047299377801886419392284381052935451685630251438579900265431117186188885342926322030998728074628707230782113394031131315452045114619567061677770637278701298445727532594933783577342746989139113169060436910897479648883665673632889257930721196907435578858986262593798870467742269665400040977394980764641161837765733544366977972026641673307263058000145726154204172503451153994528323028436206285787170852131210995301990294748528995845481387640851817446202914662575639464492815606825153623883288282976170149567710953724030176646888970608562093019915813433632570904640985826223942306674174988075593049273628586326705199392582549363002051798814551462509480242368133981995203557910509606202052967485578010381469995132888777599050959567801776070350849433708284792622764065485473582333370251779124935603849457980082691477565392200551879757564730071390168486856401490554669717066024195460932346940273666274844677558255513901925846122434000775249699162241502289042240231972941865699342345486661178445236053177911159489855283505325812265077436044164166026266846401255878209689852637967968187129582863479554184551965810105771431913014572102954923357778072560589212978169500540362755292891161980730949069962855133710801300413671293250179510698943053413908055034227427655290843989422497444427825049733505123564293938315098024954385197414634551562331090341200378320564382132581654404356560256569467207675933272992857699650348216121035610968093946565755517725656118373273048802172072443895019547530881352559815884780907627816092190491948050107438737057611005596018376448968603831376838522285935899009769466770868187756784335841666045778453306748404663005863876548576620406987231520492721969976462548881756495853807130710278512513491136215187873986538997729225630428218391984401205157153678067451061490827461865318634021085048751195156714960699917555786658000906855959599869563944144799425942587564516879062841384327052424355519797967796742788189360662655223025120656048754091543745122599886154068790797250712504980833502346006276940261714885735117799864983606050938692969405675236393604604730380706969636468970088845285093645986304558008646231620156013431378398096359890556273308541080228788624713668300960615528766355535333519214658877630889102476012527558995760994909547358609303170235083871095723247850052854669694244412105471367295841418750659571959434328035167046293840974549554035262223882945791813652375565628256783620899453249672643003339173422705885210782671014653902220028665083000615462242632331111987136290796361210879465962514208828213344943990228336587289604008854742656138999054626968183193191731593588102311504884894709534528196140183384291772424135101082481316481792800426014211333496760924510580645383358071849610486798349546088094466085300301707172778678035827695362858920965287880676186043094980709962365282643839232283233099459246778984188963826744573381826939581844131497988474113381260986315211920776366123140964032229537947457898636900774231205541499759190646805055340857308394744016994340214697007789312036722209369282922268822491114414105057575112847869116275012949692644256140692865068257409795719132477782241402880390280426124542486820665158408157895194048745943243676316765003672480800697905975969205893841186807452446954276430659249181173840150506696186515320041601133124456133103071128899808747569961839325789625643942165005889007153056742066297181065112370367253136298366655829122450321137758172976202624028117195923797747314406752846920272344278589505174363044960954871557674042981945448523191192188980218031083245597379770208855247656995869601819320056625803674957733919356516045146117333063322214846858387921198873781594258020919104841260658357396369224783359361374240328378705023203190101124770588486532599204148455850303259536604788617842945351106068888044104966736011853370289254591198851772508839718212398029602535866948136703103546221918442140075811523582755214403822064331419855811869320229506262186208775978654632661654727417620463446384967191610061276993110543602248889611531892137722134310977680189524233881070555078751040464372687168536786664567860850683817396175455311810995530545495546104977802564335066060615215108183148571343590198064802523899879995061149720382855013570089516951977988571869832448553575019070764196905429961648845709042161940541550917529199212322361408700459776758879505153858630827396725392476011522170690450278909112797151966278825262072414587565486015471702882203591683036619580486485986538581714320919003167233261773652390256490620050239460502046471787793436882475251501988345211683275056243831687443737582193654519584583144572148199058899700780130728722035964470776950443455044985398048708240719542278033589730222716843397846624582832149984482270948808001905201363573154389100815014494589110330888815081238981173155700761922867970859127328438975155733122933717278905704541887881815001108584506537154866078409050436446264662326088601768782840737945449242963698308192240413546001264550577638622156524998029208029236600420527036741794628984735389940067857335056750014386524980203351938860271815266333916480476543396034414596902505701220375546095662074192739887532871522977962977900994553596056661539538840046452982545060787029835891976682479330057315262875668461175137335255960438948112957123144873504785594136808964738292155585088755362204985496240473300940401704159894369389515844233496601881927964851934183259146314918749253539388174865086877327053443346841781127445394944910477707509902803860197137904541479099535807025086124694340737847285029682310274074994390210804575024091403005629111270329984391161707909849436236756999146778083857591119077536697549741751688802950636937740000314095852995460017473415199740330541678440156915483405146592146900123452494613696402838869974331941424628532419245067488124170931993387843434189211307761985197404749201985077832636971410531629234250865245961063039082557755401971326832688020103490674320069082767634217522435717987013167956577012885659660019476300197983170556535213670421774031688486886355375548243467444452344095616758384390036547769745176917352492735717954888130573323762601674041324390554848323072491453709047284432090622793558201563588477135847457941564827154620864817158903659341132122940636709139068415396892014039484010837095573969145335559597843312576587667251312609322873150688131889320019389782022620087859136067697732432121184497325399545612366255417426012745868671773766979293990295231072957556930603346198535753848141271236796917926681015541895176877566032243620485183188624639034393959198609574839815356010653680319684992099329151006363018427201825783912277111786574360721941531232418072376547518703903391716006641331268419131756211392229539507257103487534921736695682222635039436117044891227553447545296289488279438162880859015687937819448640338933743513612221326407890857753867282479839306592981939571289853352866761325496565937059298933347269788642556266539191004279428708766554128269633709197777265831737489418658540506478103770630015861522388966373594979561747593988872016374679577503923448724278854471614515508820600750100221495980705115404112416715863618265112437791323258570703759119116835800690307205357321018024593456469763564490955185757829290475397385367427867157892017000822161834629785660426877486254648762649055520970824807997769746080952843290918749150635286571626491790132359273324522544384505479306765394008772582984010202557062318599569267931127020482383617546840102771447393639159963877227965146225481403950059259767562927107178443636162845095641272161990932576644967585713291465959850452266529519714442060783999518443921547837919364742494526917875277951337505647800253580043766423420536085489211029057289474747313154780222860312451868270882021056867594404252389018028168386456436272765111902328264089897521501700342807266970506209571704664136325987058249450881608880731691537958404603207165704001974650564940326697052680153785394344393012193393764446166933858062606858721925985575619903424748849678700211934133592120882266858233427074863986142216072199053349958421287839519392596483826757003068087494799061115410393547953976327175411460628544246015701339037354312177738881352817506867845565552603619432042012571301483395287190156669591727173384326029965630952540080765614678233615425534849938205148931526711829013205698576015331588562358208169985880744915711933561921594841141300439099808271858881487139898732485956950395528714084438579654202767053811635151172746511553568830692628839318861496883773586918689484583720088483277409108655202175049972371740553587268569202918633273186309751393487910107155948101091372009848828216333130195959140390656272743227021741336027806775600887145898028587736811555403496888728155625623732719408945319378920725160381519023172895915402824272185743691265432896573827604178427922211382748599096108022988605633093074849277924008231819871302318536462733119960819554985134941151262991645060248629306803204969406257578254125520316251431233733234898686363199070530661290148968743070622695172851012882963838815470360068706060582453613581189328864709862526831295614942397784824415050108426995845533235873841935432241790623674416095635414680910123378040236200157096783282430744985728306690272053921230254559150264174717699163517442169082412693362307386631633305762071902191511766942711040096167901071557386560151989115801836376647871895482233429716836461249054254882042726014016869392544274136240167704778058016869884796755442551796976586127695363652549469645860582435644617563131864238699146071120742960952773600120292922381598972678585509279012225340376619488834936029723089590909365630781282243718785821067135751207624854754491204301243182872005612059107135223138497924858779479376654464937105457135590731711111654901559307951075022407093660913046769054196957880674810309395863594070574653814177482714429344640119887268791882524111604041761104573061972336292570500294874523902815874916513564627736777953165588597205765951146357509022669380859558952951043004421645655569027473810317336679223506381046544514393913588196636006405963840069397401774182865617984659914116225567276496504646761290494403569711743154696083711849533419411631203961335606813893822162314120662263212526506236818163885279174302591220194470882028417530325195613754193164543422698283613696410866282004367944052547286217396181398934083376676751530324237638150658116300567998079480682461964765084673485614490662267730776058225013960932578427829053574420521341176734000131441244506418728781168500440486746540755794164205595582222035033837805896009751013449980333421230255405028543339381329381446874825642441774666190250892744580149713446356147879240626524716828668557456569915104037164635927971905086364624225272321372942812422778850774205197077079167491834430468608100739521624944841450777509967922901497078499755492330288786591629818235305304133923118040190944575735014510335123295918203125492987488703337649153960096714071028115849850119354362689578904918677672140955229285649433843220412427909667697364292105435056243010219550796682378843859021953166231988233918769488284955957296211477061807502392737708132619034067343521149098702623231002784797068106504227488152647384917189830082581741036478849004724786552277491862967855372064281411756521660455130668933462075778973180888341949246559188476622905458045942021478657064681967271680118036963645724980909151831575953065945419455629845546489249227815275748452446456689091765831997208531094663685500822117598297529821911756092592108139617592382809269622589629223448188812796013957166285234649270927671330599470751648333533999689282674622010829625737370930249312879255871675481625272561556499864739105126457512854121405220135617437102756427822312626426742505467672843455297129325862974817075694670326901122006538449187398940388274082349433387388436136669173051664477516631711703003318970912467177930004543405548461628008280105753278309287039143854765097053842164360913007100616453475973659697005531664813287407101346867973688929973136791739519280265229522592171624062762571056180487034476923677710379338838888991582373304218950561844163684961169452888012551285021453975549674400180606169736489795081639972526659670385249097992567785512804203558637082798608929056247383463905290369939610401453458674053312388468124155519885603836844301644089990155182537868667625057275570920413527480341100749737362383665054531978265070773251566847164196587689613858863493398495716249302591897588543374451359513202381269394615894985453865851929877159391389854269703060990728533131727467075049090580126274883944242458756846243114431942001191743874049025705083226828740093668519364487927288868628292877005925908750131753714985698810139872269716089170255497127988464980983576964801888715692440040472514684691302122139179443630733272729418656360586151761366822169795345553585344265458164750578056262568212991627954763457993416507554752113843450396129377060566785150339723336220527977838753214381259545873894380732342719420036880808601866712366781643281652879685499721480817314425118358748799520085702933738456963992832878733765204464890746871755360638949036257295742688189789707008278807731445860671418282593950402860925413998426495110660535221217911972288869854284900884173291706640676709931824938064584455046707964292492671806380971480974375929867708732086779671489911171423889346409517192535077768978761500395591328583565774743915922128412803679207562230978609223074531771169944376706279937148138969896218586830801364539847110466592030683508235934491957687636310607432213879001808915165177814044306789826903447783712334741366605820711359398242769570922558568854583328072233843531906355424469098847556784572354204331839806656084534275738367894376467690237950785058583955522015628297247326789666978670502212505199642507739217378805446948230346103173213415037627994755502129254631578543346245972973287334992023992391233768024745388014994401314589078524359822621906805812202721497438637464147383931954459950838386319973283784575164750910071545607231823516406779867430482495597786761758578965901044841810693827978049955584451893897958413768891878220109502614763297836740787474531594595403026290574993790050668318767909784192359398227247275009541101512027493885912207207505166535428984663981946413856731891681140357778070179543776523546319712569289423860994742529716307437324959149369849344762053190487847146052150590215751968875548282586885757454908259755548198192557062011355036547529097927514988792509452863655753070146758533311855558647405944138692410305547139046119641083203134695704397661749576241363688512992132220909690406960970088605732062611619590354194372088268421119724550810529322340500190936487309335180916721710950142824851133511475874453703252651395399175798342713432835158090830581820275989273607178911426809164228586586050546545462856053375096010658143499409540358925546219801863314385663940311197040683407483956655229380307726275297579445268324573047379814774058050118224591839813228929352831581281847422788034403099632007245618764395740132380164664453794917451119303992695043869875015587348545126931427456970428398350428668471213675237279821101213441317591164309170933723580106427031961519696805430589201309102548510276287510509078811466318399329314917541725026728070203840419294616885013596485642675796674807434654121193386536317348985949470174094086256109824188146628825268004603540466306482822991104558553044232862863917725410076737362524000794946167431285568744969887463358737653642931611049787265258157828726714861395902226229626234483363729230140768897445727921641611841576757632505973602017550865528558143531342750315435526135327708054864755057636256478724660335982471937653104632843117257336779660843328565044636443069235388980295746783956226132733712928725310467564312244144359386516799384031613130916521023278978651106422510053052808299139087726574225851082114854995905418740781353553697673284957110690561420703685959970904499071909922415330685138194472428004340287252691159387496181782468284093928064142653687967575141669119959184422590550421012605074287919910447537375104534167362949319608327384794314692958787408482978981981382983757348327490208260595304551236927245047488751267342585298589062365868268699937635924646286020330807137648105207317266202978508129427803359701036314540997551385485775229953938777940777780991096354467556437481796437055900464673717962407646068489410236376222389580954399455200739276755841150179971659442912105048739039403927880653125795134123869146811963330041530777130586999979169328216829092074507277440154511843929830929380367584155306742094945077763670749254652905803804201956331227085917843456573625863412619580032668561755677838380325036184815283141110796835036292225913220366970371304221392829009696978827559910126857089736041875060122060243508290749226714726505801376012082765926246209854414769446489971510768374683512526843053699323646691172274090450106342987628676949582167359797494598716710140455493640792647450329981285815430812401977157493853755574643267600546261643734556785290108099474144135352257554791243398384718877181957884162346100539871344809618727942185671680782570108440650672093451878306904071760983622377157535185233079097366531813092978300269021437364315534170032375230768775980004112461699770919428472462728613489316793647416207249778081112733376258733805094531634554968505065875864967396267346075492751738725321148344073705343481124484856314488182492759790447926872082270558577309033083069674427669187545908165476622639795101810022975637270005698567998344118974377038805693030855986408166902245857117589641796272542374489130104879812101962719914581897449615064310279821678733852307672247901461217087932835603759999201320828971229136870032767836244000168174765869006865323918044496924021180882746366588693836126927197821157174847344543201912334954117428313007658890976680583000326973876947117224464126746393072186949078441896599977180311819944450465917125621414701377044339901477312678293017533911196865284524377343442096082696928132004728196093509131666161829731499238927972051653111688553385456759132370579042839583778765538735869056004562205333889677120896461686999669478097239361615947612311854557670878176984748064234043649180077113692150384882613238082131401459166025203206905308692531840741906642839591779885829078123835717679157938247580690050988641412779868893966268656005682333993384840420521631264184098057855821630699058792955216902409273073155808429754628357418731574808204926326697703817245080109377417546409032251974490977947799365828333374648558462827806408744060609795669613323418891933850805272374690145691082301395755131301821475503663133622593277792781524966097110326609110940901326764380180329871731701425361347171202182418361051043275756242921380089495820147201648977734189028382944453094072323929650626424690537428759334353139815129389661598223374360532341581629823162691704002509744499864943988789476045035607935390652314732960707622201740955871334207351197740761268064527557467399319705555652893852015980436323738250857360294905710000285182891861604921576346917247647526134270919255452850494281215946023938511868360933929295298278084465423848245631040334001042469600889057920268162807293454334778908160807983894044467221562516637180000097109011173686564830396990720197553950123517487697119520710285730335077642139045984315880541851857383374733319766858145743447035899319456705837936027357716050522568717450120322232341560643305823505678069643430259008536444195291606132715638155331839300214935972307970753456849037310386186977009381768133454761602792031691194685266335733734894922677450402278562935461218882069412134038811362051935757616456805854932516974435282395114502841149115829966353676841601803596503865599902648207780483884373254784460266118148893650285388301598036192909247952909857026906492124263722803291537604587217387703130070439635802915793735436560713320235912804958093149300247269658374137687902528783080155899009404968850478530150862140974459122140037928064089658764642553539416132136702716216055769755771608680787421988339925751211566855365640263015212703003596409650298679471038793947506219241371832934570827051533179558153416136875282234534471189660975370173287851241203471098227161609953854755219119266383414424143705970290765917333351545861839643508776555251165480704975069777103745872569083498173369860313437641041068824723046367118823369373740055873353635127975641179732458707427382958286209341345732521396429357200388768627360010726778622544987678440633173716394515861769847882277348908371217508274272715814294929239075229142935945384597385500276483872026143011761213697486702796959992079639077688138279825644013669939137934659488617419596496069405723454403827831333337491940727502595468113175352407083412167170974423535759209265775816531736094339718573529541214681269369748571755830987161944088074338572988845805933018147973330753127389731229618504043880446197304794304223510443952835519032934489890658601300681972324099808304413791810765726489064204966724780365227632480007690771722277542426241186674635045749429226983141318894876971535630479887458997150182476781745615654773725018743517856885609965750926859365480580687366094972606753679949593879518281060953873100096463350861263080020131727801644620602892573874958928502548308389363963002522801691086075836771516447392416813234243311317152330304794688744845551482823375914067741622131668935606092792487606425448372035741452222910020499352658506168507606956115682208587048744465236486769166289036544097956910099352790695674843472861203211888279359557747109594374962050887846088106189764857477017673972992353293736035609812892242298015756292623818768459601498014538366448101982025121400230637939954737081112816218907957604685001884787200542693036974987223890427334997736263584192850628565467362170614274507772302718858004611574860393814739972688005310840147748325932980813255631631464268879458611297074065517072881484234735424781865943520094110846065591401696938070115869471978999218130055001863142124854215280856634592116074011466918793404956048013351667569999761835311163870832109874684589483697947825955057630014979412403134757841780147441371919396103284643702057741452774430023580562417959359890975682627249705888810473018260957346378014543027834187730176976524986189181966083832151750061190770022271582597287297472449313713549013877852786864442964668703192879144088864772913907779846249956143354697638461157853054334353060018721603113937879965136525565022866241355554951772226338788844226707016804893128318040567328136912263443290134035256144540324062802014169334153356359743801483750738818445488343306853346195980884668766300573463160296218264595177120104672712921318771784231461285196309836289019837372936803222513737962177441745867522669834709514087189652883446761259631499871505541553194884491987966729088114274421428758510381007200646835627377489811212368885905654482485472697606362696210149796786427189532672263458314247535950836675789863988836867498976375307166568676341436347772072898517254822029968906694088908773633075472951122690452589124622243704209134378384821710524772178520273820910858954344083796731380775701963314823895867926668166087230951211538229272222430609752308126857306016151358113137231408081577184606589978362030725816677363201864903792536426333610335877672865861408335322323281095585105028173457217321417383067062412257086298866202689250566494865570786942155190996172838551064030104951235547297591326233820685277887806818598990130810446362084887324653183178656079883714496031392794689927343237257777026016992866659212745794338027961811818127385421787779171721164582868944166377446216823271611958115155385744825606159023742639967941506795383372764431283271213258526801886194724620283722085511053382819054110889930078562527448048937474817464391783048820189448295688601434244407284027086707055444586809335963452866379321254085973386803613213856315413149743368321208891789921341747096270211413740305357521069756552240107340730238592595233082022477016917476458175504586950120872570421850965730744637783805096423976060700429493930371713771616847865722612031630027245148856521773573070519311268037266602099776534730100036936791669140029344395198492605125893145463776959597491950848032746483133590425553113862039334826432951952526555945290716656803675221187089862732776837242213230065416966148748290421517189358172912889989389530559283316240553639921925506023205701765394132451945623651263888729048547675607352921265029524100779432463461447070053665822545021091257718185378150617611815496223639875680112149515072625446729082340853292739283252337871490585260884883497533664690414818144025802874965512271832961920008985283477089714005934397649071221553779613646762543134996305963084179817896242073650676488620464945840857876684447446513386989414369493035417610724620383519506092867907435048804476407794296034677941599119277728522146991072653793834415503115504287042537628995287862066959164185962333653132032556106234003488306781234210135359744414461883193211246623950986762112086907481933550539693123414952847879770828120414251499351539939076792813166423088947300510847905415775639055021204466720826835578283133137496880882394325709089128435139884250646997900347081584735204944613365419476764238404119789980413355519474840501712554968461829957463763078440374382967116658837530672366650905352348667672825157963945886538843826497790132083389771134742332902336642088124775973529406542643416545270529645553629744225642307299551531906813862388557629614090578779674320848087548224361397117520519734879989871181998460750240987832865466798927900137928316751137037448710824812311070457075933598875000049943822422264780262307034517277204452191564630276623920291969166341547341644647977051506988248818973982044865149067897898762062915211539905796851415647654602801888106756531893463644553423595451843859657343097852073833509901845787433225341719824156955646314512862436507918336445514112157950962022608445842432511804122353812594562197117325313793784239660336877997401772200001904749271971812097779608828187046412095454862330456456379891499089473948622852408458512847528673086082334752316290580072039914312455523334482905868479625352440464451352137564847885820680894402611908616561749931600848006229546324833814417177465344121893042035319759203198172558644831154174145113952783039262529652722045729777194662496673355743671309203585317162261685390859946494542233074827551705823126573157373490547508576061804228172154033323251064895878657419586800860305569802645197351551897751010373952537237472719304609755115589073254979556274888883869340785851686091240671203026484125172469926933394204992863410198672814314923882333107504122003731956771388725276353569307791317088716296696091856668138413693353892451490885083873293500322756610255266661743867185090326039428296892936003978455077786937688514227481586495823644505096644738388546223895196729237560721914780386839840455370290043584124103036353541838568008688242324925108462122064326310934730552614376831960780091598616706416580867605674301930953111768258932314624256978958959783884282815042668135249458585810028568069950056125403517460423535793393221017304683329102711244998572931098245644517521357852796064771267682249644262851548758932616579052588056267620199301889009927117712965113236558947534790392588418207495719986921364202374735867631751730060131255251409066940233894924947533323613246895961487983781568201195971951872712317821046044347577552849771373563796201375812923036607129912823309975637390451296706862173576902687692660294750274270979105167357266297423749921209695313994799242214287465172942172782901172997471132946316540921026096287004689359912528474669536618545258846446422156942345206520341662800789303273245896268077064619892063408815339121878426106311772760724508845311080831807747814335043354858145705356178133650199503150304419582491354048995437249068927561672937333624821837347180577899453623277177997558584332137616290665944432798292258542441088860460686810471973213440029911748067471422822867022443828732223079250166075796347625874229384333235126702170645670281323262648702829237517363595885659018298619722319769391736130357620551421050889542474164750940938253792718667235853956370320264569732806089956460855434045959377136622160809772121978656437353611331358412237983730169224758378941002818819001221776623162632008134747247698244413680427415304226795906587864562492935589046139197090579891983443376529910085443333697015929309680186326732376392370052920761319918495582959939138563409871377583935375153288425566696552260022187176595969567661150563086974220484493925411322300654066589358037772552304434849449653397013973029007296346950146150698497295239312009092245427448065816617620105068005473855366644152115008815034283846900673576815879158504184005915817127309673089505589609607989696872668167910175996916595287925948600037383765636645566321495572639724136982689818075793672686099071708023219180942445410494869729323531745429176246949477652333259896991888428740033291013144381778728677458378926741241409197363271244169012139044776786796736807305847126172319370389969554312194575636342207302478460614094854325164506768388696528956816828046977258935307822920604766911005054589056511975729345380578934205095935474450927324445936882652022358693035984148054434726026068107164834889296472350850401824277442311707634271467588522784535892345584329916604292561840600422596632732355348566635520292977022230932460624420273562680084035564276941217722705870503583961783526051182932285497446844182253719312895585581095778020469317722762326795812998379198746731486670230586738836402985973706887855308481444903858314146835496307080075299144382163003376919373479167665700072566436727253267251153080490617717743222307754071512789727377835807395608153886563831429809822690809839395822855845688774787766415364365664230909862087390463559133917055237278383863916348905162186747968935407865773385855192636642979863778893215311559243368280566710753867033673228290916440898943207682141602285664494134375369312205583289916245254457384828226583041401953768476778185942882904665388867177612591437349718025796225567567341716718581161687719482457060997483717784366732674790949882378465291006008363107760455898425566625577877526127810675629638380026906830031679895985200143243774819229021253639032234049439369038284184703588023313350809740420600451583003839008110673169427214843847885998688085397196662716488912710071371454085568399793873055227193078254454293874456791699568213999239948236394750174416284202162876894059289563798626980670512667551176853792615462258417626819937586781923614384131754371839232373714256230243645804388418026684959616554229995532205112937116449651751701541083216019320195825552927241974227054536335723507797504235812009550655764117423339958857075171371244585768116374060161304477995864942771555764197495317801567299287347524433012787102962729060681936466313189846191101625090753134857720142100186595618239611173291003805714143198974742446454443939413361199001912532867443891508287826184915490309170022502169619669259117583459740265883160335996325021784692810097249142885512760167145194206807508081276019410468798122704026080116368967805296331272148707823091757147936282858215376423354635694830200170804779280962004255721918644409231478442930142632417170428627255519497435334773661631103491016121165971158794406492929863326548107295245343901595288808546672660424380002161487316572943081254295610002155618731774698742826585703922506260042122571933843813890014334625213500416421508585852369040924221771823333494709828123907129470271947432670719604397270272786822932528721926307471670561131322467246397021065108009781668106279235930649330196210022447145929620378029568958557662373530735020713294540867641811389151225043009914285252149130078845521178793157531702057250570664245878300774246780862617659046759275162106580807743529205300401838263981568047943092072708932355568690929251180879198721441690258316548149528675679078277767361604292326889998519710569606982835533814997372772467718932284515292624948951569791828224621336395008555304788848861124387008639891478540515021505504016797469349496883173238485371379338559247025176905318593820508734507609761809044772705677582780832549213606706255935861014466543115135505019138262594092550676010745347471074534728296889613273052019443630486733241661872356109781129370270397910489544407467394097010893021400795986463678766616432375407853234841004306632455626188920512362430034095275243550406051656836035942757285211739819205609188117987757125447300660406416758885988431254224571313147536755487255545740500440845434749610548740992454682877264943064778877808699305745995213481820392389685261850162257492911629866908708002913302195653983878765938099865069677570591952374145563311233861783479932055407659124524761504229354004575946260704397399454539486704736709641556485080495597771673844977631702774120039997526122821369047854499747870520086746109262351142866544941142371051352527342819635250582278542106612050908238918785556950919090087500297929067481910843784130822744644654768315971415932281245019967004617749820647841490068231767365356224538591590027066247350165384791047711292594889406962164045690194111175052404937063886845942993602891833129266708638064926573422088214944787614946541851119538309443619517598765468098706159480159266417522430678821454574072362779821172070310660087598490907803007438842333116114325848063694304171102265367531769238729202575836894176311404951035237650634762643687366781361102347382929192477777958435938810586921054751360876453632861813060329585298552019330717825016040272764394379897252039446356906454654275612669779067287456008592056185664054506707343803979556903948868103799641428677712895391175079336274569493950444829628017564244792025083134168006039099217976843564968384501353744111018096073021665898136479462724131498635804007584415459902071308645103973900116057404605349514215417054397597044000507536335366551697387965064718641882139354517323262546787895384566998482511994432250139441952852869875904897558708678215313299257072374103518019688803649130072129530769718691472997347895257234984256631874619863752886081453346278223650562400567465896888157302014262063808561306155350579735365648963076128146558716976536188887711856932000697272394447795273127999042280574859916749125886783313266785710981980929478846459964623873663678739591532110862279754041624681495128555146938705417088951630347324433873781440984766328926179488914536596508648806359299105374682060627020768238713720305601856123797433588137698491600353882773094747112702414523867200620789165725442081918222237122983108649517062833592021849079000819731869545156181222243528805150455323246628988040965883236014023983188462760743455497371362523832426373002523519405870399556246867114004710347784500764302809356898219660124427441190667608047224843298749944037152600823330567059721262782709769913430059326868047387186488448324495649571570313065444002490801897643460145527578854615755054502673362837712048293367877255865448250998519299066944347520662020038222294137522055131418720174440562722499823079104720678087996751295079156663811836290437184998552074425693758038655816572544670586255204824686539519200172931084542514985949453205065740239512474466743833016617506951739847285268768806646250392455902309454475027821511168277694507345090351180527017752742097897834708937259645240490379677971562798099771257686156085969521098445557629545126021324835576460267645696001488821697582171493945889835672477885578006452286584177361419524339350345531302867077474307147382925161149613275863749814659244971249357220493181133949308811270419090647261911527530689498876997117729748138507904860335780681467448199948935267465348140752311839093285077060084284804154767895375145607568423732629158474686041471373629572667469888294894798750697207494690671798400768412924162849737674460678826887497685522331244368044575644135869855829028395004669858593822160962547249854445687169613456032547646990118830252828984475055446281448210459452266260945844146002071291497316800350241035349152771667358370342502805655792994846067882259278139234629764126329120884819544157752523745968084664577633230474084411103495595611616032789624443646762152264138890687294485683874941617075631631074556049156220936209104606130029315326847083415094971214120502628904748058002035874090893110246312265649523787063650773842024071053174200796582843697406650224552159042254631802018318551686206669525173408194516042539977100800296004669968777690393121450180612403322393705034694844108279647687269431353650581322246545039352639560758663490064165425252190042453999073902460355216217473849435745791466803985200225521831144302851754246273295956370180721154265974615394663093492613188251963103571526529477307202287322619911627165858927464660671612095077957377044238487491589390272750235863045517413305612750392793875547408137746212260050764237024317234620053747924122452372528354656400876502922958189084968037020816785387803881707010854459921307080325414354578047813476212713063471698977131802703350118848882934767610963434457209074108353889654806981196665296103043911984002069893923660233488351346317558610315777183344341903816427329119541950252007166962967553630600629361694681398166656190098825568178986837374796143363580972536980230304082628418637493929745592051808945364790194720754237691694388952079243879375915442967094674640336747425827233514892787508224972047659556364372449200073906954136090613464785574906755065822208311929854933105459741708321148572613615129822267841179677139819547881551999704215555348448840825898189539440621764363875875600544250762980115884971257094836362433475317555388818953246487211284903085465573550804940761096364830532321712041136558259317955531163100350431746486038280608486505754989471008310585509541493905388515891973764665195258420062518798960272845521973407412932771873144824655689587668509866586754302528927164889817116487074749637487849271824023122094256771160621397823031007396650028159472409560076891936867540256142050342761218365509844088376260132074909963717771893270235641351345659971773425508747461271946424221306415178018865325361637498933730104148146186579150005053047815033403267193149679337470517237194809357846302644933736923823506644402348818106304213571778229516582561376284782936830473683099163229234206933972309872324948303235930075798296278709919246538850175430078634174239755616944020923495334869965274788295243685968226853654213913815001422538718486106812812576301154191839942474005999428128124017629604385996120810168794643014332284612719957053832489370219763276072251643884041862048275824797248786822285167512648318952032173105717153904967889027701103204084645834215730220207187260316068497404223015034738938264401394469819039419363972971119864700143827769072034465280478032487983001818230573547725086672629358392784622637591100597882881490436756330523116686439328359426864244812596582849445007402160563768246276765671664601542592144934761873493665159289928976020601464242013108941781324047495470738332989676088270479401421597834777764019270623443883005894744593326095838397031630581072817009694994066730024211484414594987707281507943004540720517403127515506568072900857342903514380956015821169328313822587122251666427131883397773575083169439748187840100775883973440209897597455269578085518398627210637710769133436278684560026334294014063094103568989104440154382666715008062885750389069257149923697639719194234571829824858219477474166968231396326249333805540248804317766478161256165630090052304479272137538086775667386137754532099540421653839377494049903771964403293862649677465974734528994117040314678779256314038722661994975091430950210988007592537757667727573472923110788205612489718966423010506721176066837857505656437014305874339843489620187185680675757176416630869547209297462870078906166876011313856613161266279418313019424223063757631577073729555866685423028890766550729609320596443372214527285144323773800602116332379104150005767693823279762590777067296563245211237098330630775047278954421253852798048731835460630425091571564750963359761310046698426380389100307863038246446385588923890237041505673794824542385463735695532591720252915670622600798124291312194636763056317072666909736496093731706321303235453427686128783090032922578447586405658913349760690084495784107434579925921182643559646613560512238944762211268584671862075327998970621346350763603156474284330292882892880062494825149030070092528977917537540649154820277978990481464844273867746888394853947666956517105453302066361989723572506758648639037391300452092963939396100931531862453400205493588840764643956304470904183263981238112713057906098930512416855705704816894973739132219644957053340146665103637359371635195704530450093317018190062785256157925119449916495196312135772112051609274202110279944531282551467564766621221429884696734527445728013869739175966569926648024613496407549424023938492271765483818674595887932024136909758106019895408520333624335063297021368305839058414466993115747768519991118886999031969764887305946912072696914422865539197417330271595907207434926644786304882197834136806693856559810381131637969966856030343103950434946768818953866374985217647697255167336860043231910114393970549713813613196139049128569859145841417124383034541478299300981257141000190604934335875358249921667973632529393074956598032690317619492279423955318958843708925196102517589769735033060952433990633097820797249313758056179311327701317077810948170275292373476221840668682579812899482843836372575847391871619741594995286775517012242525461660271125311338996810624333611381796171792040064188813047038081389718231997062544558701147295705102140932187892284587736695625567143307909208769467607511611632320511371219209115204041844825005560540347042656803964252790240369312152688255062928036501855098130514729796132575345855673650000310785392217440326069591816953382576037050742566145333131359407175712593389131251709804826224424051339936138070474838917523146242071497336380292085539730446808930184712276945641855626576975107813523566703248357497647153158821777476359642503478960540125877158567972197328643158798764842648642489816851586070903472829303968918182936662874724457089652882196186333855573717539856566346282415017271856169934614622724177594943620615135558881084877420299893625508070836379387419050592620586114625936452827533811144723454756472360425125759016601098402324749067851893432970082467490055158484695310741420761615879757499695619958047699578633932905078376428409450546397825858026682732293223351293662924564736239958230077156104619915856251339556934552882240111410713828873823680518380083349949826489716384017502368206236362876600730747867316964392839545169841245719390511218192943760880810064686369659465540415039353388635458534265266597591280892310380037667629393378402867199098284927004336210455525817823299497569290955961485257739593815141883459253323577470194110058160578343324601941173475243835233545457595047477734358253826357645611984209990909599738723535389797576184593119787445232886053514605261193894281413706615067742832907446753202374974566202813413953445721362386202179591704332178660537707585053470540539056753999683586199198768530062455900975517907016451607133508775090784251906702610027623043441934313002751304823333000931553318943962448173702276947264461148585279095626695954830886636572132399731695557401779452026912678972542953465854742203569340019170717565117461016384796492286109186231903926909259173813615725806789844340576220587367118461324227371294706255676935827276191546380213621166631783562876081051503073047747739490625049723020959569879242485752003095537246097350976176233207302323299379602717301075427054697856491580188209390128536624447601973373246666691310425051953109335015559688905587050728555528544299585059970383767947139802069403669669883614321734530246181349205909201845929433346193358292512302366756267317260427464209848065397183356428038645365150293762023596321651190704509985253147750983791198924220754958881645793802475075146694884551275554808346725613476813768900590357531320220650296548494679721293962604868236208762379061889448397622541510295737474826760195995374076172342904235083467093258692725824041721730019960425118276010534588489855313224610476952533504406842419051379016128850046308524282362342891432904063230943241103698323192904791751366189606797614168183734895532093912765987292867725391506160013819049505529222358961559225525808328840073461303647690379965428371037332927445207999075013839509769078897189153532884661678988096489805416138384737392856215925541943907587595857752207093784791316430235834176994616372270415888556839635357917057110185579135049518219925567066679135751221650612156136969787758364407981925922897252284204893843886117814792840077592700309782047033275045207909346264173458196791541716943860904062316048054695177497234107438977614180011908031511070665289650672868347209925573918386785880475845093308803864888946014971466754893262657906833304739438904142168299770189263166027612797990214697867603311449134876714096544393273410082567114023369158697789393414684019606290944552923487354996257247124067673917322388365688296852109801546477895337164211475601930015451586599933325876317031542244279099511035253290636192340720737856445784920448216401694792807771286240254909404066343996477420751992258148452066667389212164292899598226793417743181297638271754136018063572969957305643237684811724558963727751960676195355945581718058947690576520085828254185286395059191607673404047321105830256903851893058325503872876986078804633443212456960739162629053340110112174404849118855380985456352389812479097699268136197816116925835833015897544130759391253999035058743353401203350424434903076278956293327532708862127606529833472220747728704647663937446549968159134694138111490154112543925043287438803847354478864502329028435899815186718020460415947264652901151477515062703925682974611908620736852941413613029852569118037865088672873834637481264000947286234881060858096891391449652667567527389531698523727117206341213724126269742347225717659935964399908623451154241429151742990243767095723914648861459976602181868322813280405781118000178914783825521553870226457474242645940976831684808454102777020320904068623092655411431831032801552086013950714354564987443396492815740669095889455912092696940783456869665052123003565884143824358352657963788903528328000443932450561771957634082808378347756426672547101456354950519223080999995338734618637149855572891789822867062231298838732368215795840460879430285377142544022140453337408333880653675129577509990788910793997715110033099819480350324272842023429058519634170089826247835270094747366399429819511990341202191092436195983290837090631346051969645523124321401764563583693653322201977563616551229827991512877357794093916121649860686613259405577218973034257731863667636178731208901239325029747043052291164410075460078743962437185864720413978042368510732428676738467701847246186008523035161561083501708711012970482115967724182830322353575334630365684383657166010814354778371630601815395170291388124503635107861611904234260632762436975759547539830610499960446536452978303351379136778585883172702630731806132543640633512417630692968363674227373632933605344268161146610251410122373691097978394252268157921779774985595897798662410759016195739795795510453092524838708204591444174495901104838957676025099810055308975474016295139117692496109222656828705391178681890158135089288402475752421398998355397481463836932326710323102414552545868249849892487387799089036555788024899964971654409140447401514485496559646545430567828927308188876750077495447188872838447814770755062797509168438379747234508894854741007841541335486063267628686795176501931853324201506490116440060378596706877485689912537375137257078227021002204290651372399590304539327314692113170306628553017278433149672987574160421356513811307187049450011227187592445617314682061365715002851784411625635129224100316582823163656230154744382245665058865733070994752720332706672626739010005041718562343205263227484458647582562433217709758302652633552236107020635377484245514645989702343903599951409792327067766035260471312756018991693401640163044380885175489605386403617496703587580218208740624189182130803971241151884257511296288558678413429273634298595784598735570781754340851917952169369800152349687144996506456285213753030671467262577103897375097148328000298147025358834928185933378703458286988218367753924593223141795412876393887131055215857085050718203302654371639553250310567536413581993024291935244430363831230508990250833172997486081992905799107006535323686850652050866761552665402019002984685256507296567524997947689353919685099805221530349085598672231440961655250464112303634839879904778726961378990751778289735247728718513431524481290163324809527486759221410967226813258333103426752845553841882778170854329789056562410192360970172821317999461844974436431328951154420824344666807058544024275665996623802339572789465087262366021256023679512899026984198017973491728073718939290321918995140207739943985490546329679591465197504860448968724795081341688433223168196288737522530244498007446800897859222349098358796684896086734518427873418794057079238108569810272836922384615581775724903925452424873848443144044148979578279590726694715642975062432402594410517099732498944988055326337996045965664850348251322413120859578295361902396089358262127283211083804072953405079758516241284480156856889030024628638686108741653082734526104772677549701760841269002293368674152196610190622948013893139828508821528342742429474719686505460074507376826242290542444415889993023492799726490926698849010866096553593623141942888535389159851445948985485235504277226610862169805499798924079659523410242516691721206661355842631341989148428636824507354667257797065561386826328324370762591250792771707093848627530617969299125795826174126059107283683485096638995361609717294763142776121991329874021719246614022873131244060283869798657068271006349623155368594596978745806224150627757237753494321412220972072217471482213406503780586186428552081728932805675083340500292562142106633348365710923019862829187330061272044645409505228338580670816894835684831235531793785665185696517945701007627936741455586327155916449799703450904666986163689476070868949021511359416891816717831151917962845761733583837832157272468108943927898917079022238411185096205205639539881831627414828384318943471462253024439134740088226402941806234500440183894083473615390903126299689347233182392362910659085765412620402093192219329752247419063742835158856496089049915241985333548644028131623207962359063723498230558968142335768703299849704513703016519542199389744620106005753198546203938620776866805510952769986131324890087405924312918038509360033555867368838714088659183838754691660367015862197690170336242194853928345039322363276989570987292847663504566428262696710804088380456908009014111340064794903862573499890934262120250768236433372375092846529625279734062450825326698443684470563218880855371433994917077696026226227856391763612332611342055103089802329640929173480932754903857513873067453184063995284880066687015681211039522850040192353093969377410332390964445274790017869391662170244675967966021806096795996826651536834317488111630767467585717134098404398584807181342626051465685148938687985162772879404843224944644282729068761320259801802317027727275666012401216798395780703629514211305371002111675404132365400237927249668812567429839168724887904305537836684440534368152692743282739923575350124250680495410041645643975081934107840197161687897066147885696405397774664598411060223833534910620708619894870639738764291130446911163127854640286175569782577477042653329618247289642560986405430408541654628123281411700560596992292652153411163179097226791347574095165504573767961611219130636410141540712823760321746406465343435675538398468869525415743998859344681753709966961305703891466292070034262674810683821687144326823934124806830666070185918573396374693669396278769631752915748705926482421980780453535812743824746822210657409294726982720378850676983075961485209144622402876303772944446301939956220799515029119429456888003470038133644631799833728446214458859070317273509364620349387501467275182573910703010952171542457480912801513430468024758297489905216264533369072346590500847934418274971093612658325823533207209388156125895710070475232939567272033272820706239311787697146295631924056266861986413916171523487476111663052825304365085219324901744400266106802106661480835762523087114859736312701335126648839381612664308532627636400881619661363682596228213923392295206795079856809584203420764280122170013901525975894416148632586252200149371760459167784433829124483417900551118475538388612719792068619566970331898636248878378221540732291654482045958283783362801821590523315877718620193030900643463761004616284383451768562960426474033948125546007500370011968198920452487043145565757451390327428588094441587757627566389488136376402133857970958275037607845560411030672396869781231923360114155191277389024159051164107774430507699424246024398638867504351897829520202478318097186728214082980880786700496769756699945856292326603054382285612517802080870186857997938810071938582166198591584848056441616981728733908870560224555265330110821559989207968079058517827046676805831430707926284612769368529349204388273981111781512581896353916849160247609018593380841972463519534506655340292798386219338739094554751465346206909316921847256206513363667593752965502030285334895993439916433636245048190559389794344486412918475915934312424436780000506455344942121929736702821975234728161034089539746317722579413174745584862957656476804055463412457902197304642779120862109791598176607445564356299631647658843021917744555796344978528083406051467393556918361075120213438637714254026649245090500073582077046845655623605820696094213032321587771297627311011852713755049478488063640405537376274724386479205641517784891413428706311602045123021050984746543268994732916373623592489523137184705538950034700242342293784697099517274635128272878396654583619486388365301664602608201629518790282484728517165469654428237000408217302374748636340885623642475553583917821594919228302773303143649178311776834626500786989733165785129176893450359552482920126819254118847511737349307171658305629757031712457593769236267319884208027200003186306964085070876785038925807711336504439879488157990146246930281562424008028368800039195299042610240875329139360191118809244811372445671563986021155760271401741007214010205993191630639697227896582641448414743004478643670248626523003888949097735247388358912312795487239285148818403359654616956420305964436466449577160354733142418249469969015750186669397449274621381463684272254844793168980785241458015841334265960442286852614831682434004452786247221946128305616807827893754684077334614712053007071277144442357128924178330353516379043760605681006719538916354662505858608267062079475899648701449655114031607633775939323269624655519827467712584579356138167446011582805359379345549940703682065919023333355419787668758984290191589435139410402492598442741069075505138013832711892355876926398905602724188700511221577924286542934442679730451737117642500556346244473410312588580083194266105100221102540186505590029731260052234024602022783652094197594657729093314175134124130123156124039271964200811337414643917148952569890066783722266325204611646951943259098725717750709540106276308774501435201280979782280912022068828797414612808310488835211453328588035251599341533689169609460656154003608280906231607386599346342423628513262618273640955745862075919957652107648829686629179090003083239311948089954535807971280990233236300009272584753791205548300011453987990019557535499631324410759202700231722524362797776692179882652855113878784809732154447335451358236875090159607660005537509710436761508950939246858545417108561106721097906425969907884582367186672229203312686339818241171905769505832724400383926853816582042108324446750952161431051759390365113941962510652392433603536034095792116445560299699021401538045625776074607974367426893302683493053658513056659441641937419854802530381247111808479047262770793836355626796096636086512734413751314422587235977759741558763356640571504412536332003528488781528319154978794565447291320292494425580355756744275686881319242946575351974656916569619404040357624988626674681879316763643387379156355856278743598843753801058900159819075869896485936302639130866026190009908819533587021207206785402192855193794237472928509267808324178316136204286285232370556962912643775889801688536827233266834785779008700719360668737449282592038925191062242234068925425767449097415665694637846669264008154092982457332415211888422499615514088420692814492996303615615234234223575308532830419552001716996433200287865269063527918962922459816838168027845562895004201799295225531890334266146035166970869647691125090494650905928624971635840525628465997007041271633308514236591479862243003197171881762936331648554135010452080503673784638325809020272659451663498413458542375968922731609040246034682057127068413556798171087760543961946463863114739264748251443272012942963944879698363333235337974020996346633628782663863428388163186749227267666450481422365419630803089331687154959930494471126161688579602520713118378633264299539900712290941427882151394912008059587673437179641159642910497553196858228847829293249127495456106921910599208440972153381764083829434273908348701857707231782022318619551321891189511985078596830226554874149885525214852845974592705609572916178754729135321081690327115042906508107758371326519491371319933805992756009724115600517241015988867630673721707741421375927772952861510227433458014451985371492322695627718088288023286606308020037690050426738792968277802262839184768399568727249012747126623174591100911273384952217417766099679718210285103117464424621517326877442247096922450905861791930149424134626105847001052476470780828968755189606390577152064207914466441406335411288102292428364869013412155629167493761367905418270023008602252663079387892244919034542738026966326912925046767507012505556457412362774896895645379124362861947400339552319327147899192782336609660769426284705662344747445904793943101918110187556641047586329602704386175192296830921323433556317476823870882275254843292297872863411258380797582024536872254167718206099632209082698881809952147285292491659269374860033363215796941872755443488685239887951176474804168726594632904647754810864081245567114646267980375217929836787582342988453604954403750922728828418247101697967607553854029434783099849079676792560160200463039648257949468952865062739020846648371205333471138681670461483817077741119239104552644300964495889360121353975891288511053212577405071025988392606273909407914419135304083172995003798545013629408869558039475769801494595558820727351750883949652336264502746811290934439186284173014445316726912335189077585796737498809019949322714798282210157167147918276200274230256768005012383051156481387939957067338028911449310718379441138816367991290760748429242594735722919927103077576927611189574532069943712640337011639461053859261115872630066854182162058748688761768424630766315491628305573583676155751791858200382476028294548053685851491410379741603453873065448221086276361399408901663146557532319829952059439288959803716007768647476265179921302249255297103835945246670524869713844641391849151382068252636055517225296922246067647790174228970940841884711901501395792759297579685777015815622057824671189289500556745306535745160718201666853188976912298341154445094144870040085551030877619284805946488281566845587461342837145649377116895094954644825146765931331944682561083764289762424376139976747278230803659767439519978634769605450815166662307547500694513611467437193835363477257394774632331347892853705639724542911901547319638071762399092477591059575716124625051239313637936814080852986277821018595405409366898532120331106639162177909770548671506970813189061809271573336287202472350744470404859176837305386950991495005029201845505918098538133796347797787960177889646816647830894233272607099981046301718228958946495743503133113687670278383825229108954811304614952403140252477974836199551537289287970019902162369867228712816488586441603935862187660861661535979749128992917173871217421652319594163122689302777149547857903305602211430785599003574269399660103216786969268727836485839061565371372738804045765947078829974663023399448222388893250176579943995247338747544755381070047179065689194700396687175484695514577630486055365367948799634987353160992798051821225873241403406055691861964334318986488796098833836816853330577802059765795574399556928804782964211429035713598836164500414366618207586405897869618535898965709059804427512486049877674582695583240378899702266243494740259878329623765151596850538325647236957542222185374462034802429242346398677079692775786434682818347143845226984120623957772521259930426777517886885759499959073876474183236848472494402157836552342895813753785163997748927931654014187704559184227273678836110817482601858278327404766066155239162783449356359598800585544045882491969725913397607976875043574649778848025964694817343440896066250150015718068797748481100374127122814912369947709012280328998388704909403877912167941506032486681477316792824893395195848163491965294255975523375490405606712760252537997124144571503114980340280356678389143166770395904441759623138033986038471427629518090326245715979481852727933941765574758570368016886784475790886331111983395119371893562647059123778337285152002602152228552194787277622951101501248725163217015643162524904275377724044098895203968696699040669618955059473102786874880617583988857947308017891540578857414044719246909282768286054146401745006929715066326115100881316410899732650600125661314671717391472164761945521087506817911231507044657061354234630837591293724670754090289476361073478756040582542768589810105418462105411246968218275475889343027019615554601071216732808024949240037864126068473088044208537572189411721744832208653550193096165038553296288231943085385122794844386988113986040315797888811768637684005792432112111857019153341770180601972596809753481616296586459347792551418363613078032383316054973953024169355546744544440037475585714459693213940911398944482223711709773009141942304224628570865480676287746557354489507512008385417137118936128243449304391423876180521967485017662720863205749855797196315284045846249954439213549337121267145807891481507251900472041181741593208027139886980012120243251432157990442985851989447868105762600395349752828961432567428814873691839512949442956162885632708244831833033973685693204608283973742716772111741997330933430949080153277657409916454282630757410520060935105326041763757935688928553391100711048334679663067984878011461607803949055214328056675442672650794209006288759042685200401541972617439620240935389382004994137191042643791415033441115371997012609603465293083947210303869776004864049876406573637571377227388027743535509352097638771481164658601066664149434281240856213838321137536414237611608090606818844178444904901320200994333035624470401370462960519628063984473392371290297294321209692435921242307483441921070987405330999625775998203581411421350704508961173226386979752454093004855893750639665212865493992526956576453399200253747787696522543338094017475629452538045147686589540537112170648543810279298771546030340769944628484020219289647167319665267909545622726557000130198166273371177507904354437286721549976080977685695429223946994659373981250371865067903565794480336268528290107239623419657850347568031947873474705951498881071144994803115727453388574018293748217930741903572634247298432718751659507125591648632520132707266957827708118211679686421144298043561296020804325315850815524430777021517974753583537644026561008314092467584781371089502991870216412232067429443324506787239693542394122282601915452012633318116903703178501544778102450157047388569947528030428835693383829378760871702869381004304456360785666821358731916231580033834800562819236232302768196127992985770282497548328408944649782813540222449158790649446101616990696837383956249800934175855800256451066842596567496058269641608738927777144618120627798638466783862158619013127194506384544359505123201782933730659911080150008847529466606865861776049710278950189982505594438595661894148845526592056851679947352203779155221860658594098715456186816809046630513767362602561881284716692425752121683895425347425454079272946969105769581531199505334335719561058497835139976649240567841340740583271619615838182029609612600249062397816589549986347506180415758164269704933363080114399438685415276555357727589453885165852104871246793168977206156641207279041544907673338434998501803532699361526794871103972771646127680355509309789919021670275866732054045864677410246088881224865066850226609849782972125385730150881203189364113481196418220516507735619448869743008331651922838347091338709869525269149845128742282939197006367657034819600880599053019930714136771470177828612253736171010657067751018913084396708228525739079666693703566001451823700968043581305116010029020159892264820765128956006404382811977285590352256601067109173304190395593538973792886946060252450035597122062400234539086670530735758564092428114663434693049861911726335081498353829157104319328313246964033478741763803427061327870944885687493906358287319247358490935608265743345490296822033633581959334199348253893818862523674696808719324093343686278090156849755729097875106676932133817243639045757641860904024292903221257140926275803586905340382828716738090721996019529923169489926880134787978837577275382999253339984693216034595321061323390745040934808080035000031047702085814322570512079305713114308968710881562283849096030411740159353744307636950382485212952200663084507577117201913914466521787109744229747911398083930323890766646386243735850821483513286767915044144681001658214441581586708983397915606157956212415723932570619260405797767589944698833821744254569173752412340494030670683741740675889943053802370734523623082650637552147803442261436752930258582686216999481592159764962188736593875812277630179788118632853129475253386468431700962565165083763467117357602198976955608589657222320166608158802199092997364027896920745875140863010261296557029728117210846908562146082425419058352986209519922090988482615371989884230921238113881092040377016960969727185791385179857414219187976660483580978157802696828191382721999172296002534126985725604240377539015832103233391188536442653891364681075422738138652927325448787410753936785968202669562059621433537780055572216079948878133524385295093928243788666054035855982354789605924816780804172096127863698997218223601331312406326541268526564378735751577188768449612251421316907560312493699374066538850069071331200118615084554432546453744871756864586317746754806121007626844251867128153577929073531357636262252999321111603977791859904354300408460760879883899911766062065801818161406295714641578871302309479410102460194447858890659372766417321065007679131173515944954090100375895538002577932751312349533464115883161873197898331596703325706717063720946187410500935981790971896728469441640969292852685802854912797833135034142732661305123218558255714731859009805355282499371978770415620220844701776169176490984580706108211336312035104784027165410852191003580093625182922371914726585721649725020598413134176278981286645924604499580964776311761822799670352687493417635605089064738383959067869508171413493695027547097672730840217973807717419207357322901739406707565841311700425259095915449101978840558570167440397979472333694154257944474030101987909042384402637859608292517152501667256639428993390699339740556302152652376724516738787663151399391265319175865455914331328063559047065659295646616327425530250636114195994789471160599171891205517703777363704999240362070872425371912741069497279002264861314340843179528056383495337660218112904067420823256094958842993854782393439253379126271903294551653734912602387682239921224777392945720787469183356946716718481283137956800302834192324689063096821653462752452647683484575508765725665375891708849183099150325564512962853466413228628405660213644891273057994521558461579295223488860123883872464960150290703461646231540692741732005969958423996033270464840078632059404728686501069205022032983996449899745370752844496316160028382470899666699129505848642984653994948967943387534947896939851353260698849472904020141849735785033008162464961467330811180687184313514231120860164603479927612841834132614862682751038537954358903156015157925912993069134887087439711465336045046596688758637003140297198217451807784289476843508309922461215082189966819823380721617071538820019396563377326284445037547716076879515032155437772862362972693958285539671280968087588992683523244096118302750300425328872408311872793473791644352341126343364566613973643562307896209103986110291924697634408984977252129110590763280374633661589155278860614213676608840476462302774679464002016764191515691769840500647613533846677044177304199456199119219889929028838640516731738512044270577560561052677681775662413585064963536173358818302236904806849292050996266545223133679938205130591338455742178770122113751429619857750631560112982016595586704391489842033580395617190175506612298053485410157957476257686782099027287478935013833426405832633553709373924094672375938595492292942329499216905536649193284453446345103881971105154115843988339705425091073303801737472145351553541026345765933602207063632630844549666403746350473857473805980505262579807791270409978837614560611099384224470000338860191874877827955950078224858685505678406666997518020273609645437118211876264030308164934496217069575775835955778191747145463374729276576021746968607691220685897592636271474581428891506153317575121136551033202600731403281070776010242135354021915541788006596378478642539588311905747498716476236966217818210259710223282066551425833832490523303958044754258406916938511868945825116184738026097723500317216731760464935396271845074041154450604265121981977679208097486384747406702651409378654251141389546108368672054317223138054003170189486142233188336753890004142585910043369799453433029407239918435477417266037983134814825666059325675320430426042830613964311806388775095779419430655379426000169695186974181821065554009028823923460241708409283554174572478973326962010689299687742821116406774654666377482690134275631310371896643472569096042605248505567594395083865406192394416911393413496550199854957134345796038797816851758430671704421221305691796240585742058928550825175518957486025848684294260351132300427274306904291325962081104297069606060319778898288900738972262696776567257268838730593057095679724334469695677812534748699503959417480237606276854417119384113212670213002168591952926871019682423166536046750189991625021081139282347728408972669050557274017633657810706640163800072846295529841127662621093400803459222581845897200979210903590839743169999478247115524020381035678549555055919643249237858650712203765594951137181599070444792537162684002725308008951098133259053300088932127630648235584214286521234351956653226663454359554633295506708286679671830480456759657815818127934350892584966234150453531585663308210316537982994665691575812930553015266066686626341955866411256021974860514139142889301134185767691519101075503448135528066697647515371612530098984048186949234658349325715475813952639492883022974797710081200522159435843251842033049421935581875789079844929778596406962659558600232111104077591288400353120829565787132718897505163747467881940255349796692949409945600047924836544726628174599104958713364177791731194916830392516251795090203211338159714158025953492169488014590665340400660912686453138211547338881451559569582650959001957267832305460030044995032969231398353939648318763054203769846464034508708890153305133984763783885988967944348743974646095366813444698022418292627128220390794340438372437836631030554079597789162914619639018153143538884542415609392426516635444011793540547019709050225156843886405980226151685568001144818078223086528547423115933749633226028568673218555253246998475649240224066486742251592058321347296592083457032494966917880624909906018325511048914956923259856090399598998637515032183344811111470529359700495170068118889787799962878873466768098182026806828694131821183991042564906030736981128870613697881101110210381113934033124587216104765521587973853820503663406510769341728318645896416611111115938728494307753701323672689695711011133184372178315465240527446989976154113737763288714338839283297148028130110698633582216882047804423393640317099778769645159123615690259313385477113071216278702719368756769392283804203078593780211513862580776102091652367909733494569144505705004969535019559207751705633358883630980125994452899140702836674513360551971915307473594781493563098190124121628146960165850310131862439724197856040209993794214893266098223083223927607156685033950576528580768193897737301966038002125437846288437406107172201176298487613238621452331619484338885637826192819410890067095541420507283839276194409368420657732308151847907754601306171946397307566540651371648674321089718577726301261883603561564790849755652234255436066475028591130578483283347721440579195744056642909139512695630399491095193053359916225142388056873499850531172537772048091834912726227012521950149304194337108303563980893915465586515070385491502339078877907139754513225086573935106158821998352521627537113290010598464348261393701290081256467692658588616909169840467515506350979733574032133032554656617277950542194552481064864398314539649637719829904946943942152481177864458203651567431948065394328975475663881544370596151853037398898777085863744162018644934183966662975913170800670751017722490246009778235977586987766790642103570277644276453783592461870997551378454571023546634817713334105896584528782320321022401882370540094219909905584668920418589947397570988850875519137486395614601472736061350698694249290409503305526474244346001151596225281134764238571970843854447628367683102091510637141237698347791077211666810234073734452158144658102539855081265616664271299505647107449307465252930584830004353154222322844710774900184004077003872094220000774000377902410052092948654938333690568479697037593754101317510683447551309581942802203040804299260982417723184386064856507237791668672552304166265503801339289665967108340113616265272363208340975933615155975606116038116745325838310137208754773000302495158565119746949372852066814452492646312669137713400282115515229560419223261593843456621880933192991430646007729682521483340407950755562945637239253137264931407125822870516234977987809831198487050150516729894155644340926528370223213977486709719296580644150020324181562723501687966933950254609621066633420747833516998736918728600208226009533453227496112823727850931680204583333662896293731149000993042110305716085028293260109740519116449885771519305478247639920223204370312041611751224385900186392813329226476141648178467058127944367345207709787658514697735929783925581709988776271765483250467894490576677931292643721630333575232457840963907276292819550684104577790637345648415142196848647378808784814063930710194181958102735207297360232828029169530746806698652039923643502328978118886944203040103389938650268839678332730550619437066928877129287619381055155403560614770724963691209986002778063751073140883333921607560900408939647910759377432860198354570348160491089177791111102064499055067897099385933253271540265378536669692518352357995428664431673090142003785309996501680123370892400628353892391499040024014499885264751696939951465236698275847838359737385079680824698737880110235981480254057244000181002733846517643391781746353195951408003768724048974690709173346005393658397932094234346691881245571250511080890673710536926834002841011213440724962403829840897812539259177592729360294744554099522785664157315403901882766574912075568258433060673557580136577851012356715638130629141278441789537974612334338289752586992160668255739789155284905058162695626093187633082609590322349590144742174785388186874101531671256293085409261757057787812018175330073017407585200274478939915077696698647906493818931441082697609424665976399494836563292908521233583121724294420188472578753605599343795139711141372675090936960658644312225200426477444590021892344332014750247574004423784253056916538925668448932572824164451261719301320784636299107603331403089875180917348279201152786934254159201949365883250160607700834912435154442259648704095400760488677415312746551586575699206086630014554735790387204321264724786507857953532419794903426807448974595743612639151776960771620711328784441951180358595279485584419122413287952891202123376061419717167023692237044593309277356257249785577485745209289008878822248204848024555780411414474000331306074624567577418308388093520969899672988825586129190224203304783187677416778978272970896401810057626131050075786737985339351025737232268216856526491375189375886412491326719789510430565968278741433697706344265888992598769859587103399579069594462876983382387410247364854543324589497803630026779910967605409448660156166559306838288410689551038043265870762447793516491643216572033032905043623359823869812709527002844381158081021899344883272750631453176358697202466050055277202251155261733707351817109598487806622178296460035194834658517710542314406697827636078649087771194412016102531637007091877561455939659218749896969357892353583285987095022084393009083253997275452692236370853727866425580127979089251524216705745267929384161847403506770379508681318995114889080798074045416689477548327755882094942981105963831435834361374609531401220341101686131760945423827808602454886518150180273584093743370345838500487986069583346250781602520223880295733244470533098341681750893025463898315851841084431311290839607277712308964539632764787020115146156876910404682054742685631484615925182497941277926673289291336954497118735757993580305418505382782238260530928696166460722776133278752734006142545525672918614208463350826940503773296911362417475894301870994592505135576377587716342743149535506126705829285688963476781597489034604900559945040109015522418210764386806660049600848168314323588423976538482920384644239154403195334041063792610885772381170431610920989001704864621077351490882536514046939793872010824909085857077067848733593178138694258593949492370715767835667342697082350222446684362176789603797496434580383754731710867055805732664752261810989979943752414388681736782760551000889130279629007921814270137730705297328620033987928128298338637297049935058302736041305649451515460241834815407662694441506090546917308208629971037048750480681106232274649427861633888644697453946329055153354246554030418296471756634082513561283046784036861667524071923568204707898165016239452932661642741385775726143433006452969194562751746136342106924390828872718567220967401265496692602168653802751716512805868639081658828922135087806764980593544000428099359606884087251256635868977500524944888477563698704088090817100553823773929775652934265800668850412285817471090902114683873854865442605760778301040049269832889941833982317333117539695595328605248833599635860333803386973634667884275703510694636839393654522379781131063124674743732688669263924545592328229682085002073502598100877497183578262343696799308946336280804189731968136645563533999446575923841236091106163787009616161011721709221103480376718716981455042282341528970374724937853964089529807916835124117827036993615389887316690078901847658492756106622437219835012401098796848408453900937257068080647192082659206850403783728932377284888638276417526003505468599833342008336815396074703021555569102423148439873564505849815971746988478445965090990694673379691695132084468583445363740881433082375779528809356654629711268329172649949208550856683991212275371135876806936416173436286562656958157704676249474842602651373113821618208931292703504031378375792080356320371254088572293196275967003841912121927196977860845988319341507489400519818642127764643333975787949003924235695678065505265929379801009724648074090479419428488785188935722960673620190573154567848477472992758093351013320189595181226234853454545565923849873384813630130971313930617799966505432837066700014094779958606440337091085530491255405619779334567482109539290692464840122692886101877651754996902885567762116513806749787294575942452744044345518977038358126177480301169105848404148256727232405492943932123484078620467873848837065384421299507022647541910196444955622871586106692854276982813701606537212853555294972843619779766412154773334527764051286706789012230595566263335471983994172137900411549367646608088532561875639211125195900600756273087368758448334615359199182804760007515004315443606398699680550885396066064320000293989464026286404111827861258862534318612958450258759327991717844570593068973830627924103368986794563118152681079323916847810390145702699081081354730479941849748816846383748031564069706981781259436769727329617467159953334284011643366817004697827013427676302142285886641814177427261178593193209657517027224267015974904497766396712927835198057080133540025706507577251524739909259133186903639905096376145642573329648194113457568667057060212587198646002139454920302588274613589198998294111960307622874304692544134320723208416189039484125148987049123407444457182257091596905362320970483130764894762225774608427987830534079674477241666144902262277677305433678427601816117506446834503646120098498806830347938380084566988514792849549886665456174595116720057503293583399324620237720536308810994574921663938222857442247971430662922915530982659870420282503408237682900074091286682891914040461003964650851394679790505051225278448145309396179061926652496860643328234488123533365990068736370338605571996379906462016842439320831489649182974159078196860436182147857260047381303701241845230437380532587353572199984330415273448303253228393752985143627366999782687982232193350546641699443085124463971852381000631942858045715125810069768958805042856198769114422169972009375625248811201012614969830609626530379522682950402995192972150210722787143626804766868268623649294282086831928510823493100564952978364290224912311265716260395808396534272245595618551890984001053348910837920969396388173130529892083961133931586208103804746136664691839184649919128255542745300198045838299394602195592896116190285386209230601839546300282799645271271740293151755094597049030607360195348451134506770723285072492459551848359878412938355190381161303815750380902006522627525890632853503892693437033161033688362542202879879049839300121394673053865740064001851425078777036355977422625756386056593043243841940472119065288391158904518672775203384244337267692658848998082464467344509138025057281708380172350474486570003406669158295250882750160338498838638903080542062252526595977402259391438036151418078896571358584342695580265098443721461061395951965761134298152472346050206183281834350837658755420365082687816272609367308091150989081415849177347723203873067934759565359449925720279789102631374669713603894566577827510934449915124634322259466420513789938166516353713433625612753716336801438478888065774936374490276024715403106873272528996880958183761746687956694837471797379551814227411471723111472466969208914037786705077497612899806493355162763490499053473855605116205293151520920572625883251900291701033951088500256204935065865904723258403850230769965488122478417105857423022138379413558796514549778687405343838642703391952267334763972171656901747633107839727362350458302250908019464596690881023487774329656249901647014395446970623193046759562191155736042031034147785458186786407896999179797119679509657718714411356829151800483412138872032289445651042464902719535747918606586290900427415109234882202230698081061066019885174044362185673342625248354711259543871620261530573180668570358992426154609037213630207594609922350305495697449136033023856194272845807342355380296622088188559326765498487610079034871378774549373771734460581491400176010832598868453385375614753321356758624658777018729037508175299994476520940055943737221132596086280175730355649435719227217349131189169717238006635435291817032028886748349321250365996073973677210670774031102777110348519726524164576932338855499533147934229635459946204294130145411679445259432538018391130145909116277992215312771424785364957033961148704395321742121765516758820104836122042545213109950696936907379265967269296784515265683238584605025966628498608405899436875931771048162943892503934751775730131453450761762754818338181951976131115943887961519066214118545362253369751958600019274316601579891325558284023164543605719451801552012559353450206930839361693453365103513466023473803887442695681333239791715968528013752445992903369889054375725256211063710731089694857936888600166524066481499418391869536922879773843574930550990986251408661097530253598934042761545509089461601412674817686228993959746211004012533772893250855710661141212595966659145957899917207967606680905461694746912862837377791049443943532963902050000822159638888842551681789054354575861056276743783925547928356795251641520921628441961226911972521407121493087117966404780584252019639821078904943028556073179323643499552974623725273212915961194849233923252895273847385895748550337978970382498439902163618917430586886809133670865084201926426850851144256170653154525670802678877339963362563055107363720098005500853322779221531360657092075847121126045020246457355998292037477438772828735156792461292990282578959778621339315621378965982886965603985885331971993305602958287874917717647216771973926854304989894432755127381203609655904880339600332928277833410553171222673935430056245444478996802212816119727819284058523950540584624237604280375432961502635982701527331820209413021197505221822120013007413429647507938300455043695240780842002296492460272060046386516113877920971957320782702480042793666703844688763419546525521292908001156630270598395634124051878495224366152210118743928672271419013826893205503205443240796258370629079877751171474184871231356106660874786324456852656982860427466352422704067384870151707419026361308392460371979528480619460801069092349115977714055259847931924518945228143092277143559696136094543019270238318951507863769870397450335426236743712103772339490389913467594061579700628426787760427622422137784075922687861043930372632881716114865721695163507080451261354363798264858635813161688418702698159080794724964187879383815546264576013102518975297452064776646216276437084705734603779790475724067419464595504765087011589730137114980397629889942955418204096414011944121984112276979470177412259458186947509730570767522966620197168628365769490725011324862265052003433053078928227114219703897160561759611824653317263631536209107087002188671823765489811120850939889849338236431525263936480161083445300070709541508086778375715971472215749389103090066243040139639668812115505124871872996829095506503631452610274244948533958259132461125076495747742529656497795372310795700195329932078074177049804275649865230611680435808036394908638225842417158716316838032545981055208566256535439670851953865580190165817287631242363816831690387625947329523731276288118983733524420368464833080075196919575369794632380313213983567884291199264250857743742618810423434268781517383504339494871247664812616550628495526416176102594463798752055119467529880151316440537301608083772807817221388446392193477468184149984253175409528429232491533591018327736682210733344103262600704063104731042678431451627672971660717722262769323981689388027283257618267662647404830321161635343596391346272050082840758508530860572577155210767583636825892290580290688308210170544619203677515842478696748208309419927219461851807750270103213535862749242651325256731994884309022083201212031483271074664304431387390481453284428644403416308003710850580649926974432515538861036175338696131581582409839716710928829506246037100402399820351978069017988588086396350805536577853737400794153763063979512206513619697478102604049021791372578161841261472575083777720394634833346853092023220805015894652911622698682637323257236327813085017732242225686682901212614456479220545433824699330937089283252946879752455869253750349461577126357470584722857964026531238501197314661023427537777357570697574870704396530496051979785251072289531333830276946433769954597954937681313609169708522864928806252429466350542576158320413750384105950764963567131504330250021836605473452512027271974608486755445019574439010415825168476857354048012976796079506943116961798995320713169084289918190737755938123913220845186189532125546870940723127353583782949136734282111673105163646727974268621528809777204649190204910767483770069426614550931855699302618937824757289299862922366144584843068426422647888925699711256782801216422899296623272346267012538991073336429260952328618147077141120726222972760727680853455147337417172524092864833634498203089850872328753716359523913438837097950458374377221494808061313275602979945606475127831388038659367348578530180415543442628492992224543692266414695201663314166346193622518044705382223738348357420870986113353781102888182799205512522234612694992404222233349416573332404203750030703073727940306791827873993021238216112042436701143691270778945343563873167799982428875676420221478383065413648370123145670532791391226209224517668255879493082561352889338298589714068000878920260576748771353084506257277948465603080299706776237140901241374141013858904966507745073558444270401517052022465985856810209764722344825959738840709229864152745300689739815874397185936376531997099944884998443505178504354157225219090541726199129616004120098446502024584997764815504422978633821798609216793863338844797626131187025299837347287550556239582665513888650166906011739980957297578328897677399847010298863076463379994240426303755855330925782289774678499011611501273678384290615422472570133192281073639233606085652981904133254554563959923820471710074530589372531030513579879635330861831023184921358688454262728229338563889345793379794775517354267819080020679553723001191142409411495587783139518870418329372040795094292083272671670137458813930857925297806222878303927679222089706509281878067289559995300939102872490628181809794188604778089900907691703329918576134128429356020764997883823267386487439518766761619204435960782888435690678481192224717052529434841037552543494663668756024109803463061693016440746703721862326378625819169185213691810135347801509873105887361768015566826174877461613230067033446971961228372787458544002268938473032472288516340863927146082613458510629459987588286474750027463679976630206339627691849135346348673153271603609888417884000122837792659122231913028192575931518855263273006783110394803650477808960156085493485954904472154640503487673524054732301440132062779176481911863439414622203700353396375848199429668729153689716736341858255085113298570571075584463283039192179454851418028426082523214831692121653703104112075426158671079226605107675928476889475473827565032209236036167668010573576758001470798359813592635527104384547062406449531606395509450310808571516102341527109116110143352212137679338762162117374392791603454112181172406449923113261590638837114030301213297104054020782868860392264366403274570495044825903358903252408267289043869713661410541789967675377761693669714013755187404093726720477491909163754889948328892691203768728830209037028729833503519878934995563833017704466401847611563759368691621005508388921505833538325479570907252179899733822036000325606866664121343299921172950076562235991589912583043277075033616207949652645087878433866760493877833561337763493737308402467540786839455051889135388966092409496056151090017696626655996819367560465132070876893288933783362813636422659174372770613128119814652197072369550398095507578753563418342483521102790106493729610270241271128399333555822087949838088356267166414600387390670834572404677857489971029011474652366247371731115672499277541555628499418652758664758005230791645541243887989009054035940727997362595020987600015675106602292771587481208163805589357409812541273902454355976855472049981479321154526533179988164976755847842223444476414296479840243816873178905799302712375130720020310093664619406000253789801002497544127089989547883275197930448345189834083668931443951687722238742932773065569215854041703875400500870846146957579121012828121218461034894723293182705666684943353451200899575997779136514481047558217407423318102608876870748205195431618987584668832428707679147221516828083859446706415581387655980564475408384363856053102961315599652954389999483074632537985181832234154543084521263065666966382269328898386283669296849082352833773231737134883524079409531175954311792125313496367512307520617598692875230559734607501217761530245698164765922461906156316246648288450054178541115825848255286365783358413219218737627638831233445098181460234053972265084114441700964264063032515045724233463100273624641673528326131818629037262069609484811567068311760596283566831262230756367456666906384560022699918153141476826903121350673214263927194338519497139258212144548459097350074313255061678035082234389961262843093611052136200284290166746072685505576416078964605932379924679657066776260067569126232572010039874206864807226651946964200720611146422204452017598984106987242203568599153197305295277671906124758243913131588957616864595229504542092919940498850503702882509292361389608558545795214216831054683194001652810203260482879727981055797597146448537744852610412030941355278611317150419223972544166259995783873807522963912575214673150452601762812587479083520868565931719273043922827433098053741811858691345726836486877129612862671169407628944482572867868357344938909688602865544694202633958432315423122450947633112337118802640432058434892896572543135929292277676151690629739476482829430607714651641902152496928227604225061421007900345558585497114353107629274148288878235087684010936862176212073753618862546012412815204255006240633734479084211027095351687914546789919958806001256652743724725776452925100903452793073370940720727399990037693802291286567625971341706175125852460557270987064203671170940904551263573283497037294655629461557140090960718514016238602179025224740711661973889223757396472179629167394221590822302834131012157140528444552014347363882178508899109228150407771420024249219930814378217981974471037312409632946198898498633971541940610734376544958952065490742396109161150190900087429821993384132023589382664850507438978636687122684448042210937544061496359389883533025420320892265218958408578018069202998088306763646778349849946216614571502197541423680160780247790876110795813499015824932327695475410445804147245076377675309309295553868431908043427699953758670894630594061786085494700757696893108242126874971467037484875188337476022755301006548187824024226622917678369445338761994479006427005790648598551938451698731309264213237313637028332964034935944122153214379382391089838160418299321952081244492226303126140404179508715418611630576722062823140082824199269255659522929575350850515784206177293613085234724715673913498166025118213206505270613182197427287607627883235301564071792047798549747463998721291909026851355854629090837866207792211017682347855395805435299252260592775362115033227443936817799906837220976839119578833176562660516811531322197415192728292018243550141380582503657263885534133806954789503024923812769222046074666296151337988825137365390463718253308254141038658773986878863119801416896506011734797876967895984948224815537445187832523150699564606364086573005273747432885500212314867344776569790720105977437094962789324171160898950589026874115259582079586802540255661823320834356464121328324632989046757775454355867897370125415705370746903695262580279619303480671497712535316891842838971319905960436815857987149793731259214185505919464114112773858672287854934248526193289606999073239836604560225369828483099988382300789322546160232755644991189156109431612806025576070152187163354678691385478932864057388899191201937732865021988195821076595337403166342510520213519822597095301288158867787443916039073267232733793167077781308306767628899855497951031261082977844741156826364778208508446821200811776972491955863158997128091778983040390424554269880489115161754784484047267652920238123640422813634596426518166410838658250392009175516636882217024176021396017296361198341158007940326740171039694901502701298163582446334184526718338735863019073071843531194185854319591521618132123738839810305275473242876136175737544514171980471898381116914073551265227771993303248645781264932771266411100272439661176588684726868271774975546304058875137117180476943976745042214130188011848152658170200637085642992789699566923341629871792610729091830914713655879032092760754679704408965036286723446101462419389285775334028918033549944649420798338142177919526833506670439914480288007146531441249566814010067402031448042446079766449082758297598107562071711440605690419174905951725290752909130692912223753476574244832820992240568298342185662071830882480142677432676579968861278855869242319186204136767428092808597566795999789216494050445145072987908967462436635284131895043924552760542725844989324188016266888836484870338036198815312628967331916481634624618707043611318977023866301254852784841007308814382758500902586052846546521823141942728639508915895271534464855134008815597990864461857540221905373303958722355079556453663395146528354520554957107452669105731987650366154190797832040637010144816128849846867127601163369889599235323945685888768524445997460775326675007835452966991176253670256503808049416190937569701955563206116741995103921132929009747595904061696266652298518038281587466359672327313942610704477514185347401287672595021680311358877632399380205786271124150634108813089537002639362754149879573748923612769335178915804053155774519976911293951266345118047135095069247289040731538146621988139185594213700216765379046543692247576486180891858971166196967097883401614949939359187055959537485799058432522226496643933960515427394514878880021356987027380327588725676866778101252807849284264591443793688203425074449115201930758841666470413792601634881885912817722824099385589500791870382667453060651859407886537282218276593326009180825695565225139360498625543329327394254976182637977447820086118455488279343267118994199337799889623645879715263384525922280193588278710709285993410659190502837392556548456176870959079362715328284175710492852960584445998953627202944109064231014313530173340250867072893858000518652800035799019190004202461956848075392299243219434658145847270169259470357125158688662919313816780752213882142241704101961077916284102870365061937197252959788260146125288561792891185543039370260736246668901824174157206951454790368886674441330648444316606438100667029707247941311533283643599990269994508652017045852545888574109823191078902529612735777048542638378982796359863768449924815031866140837548061159509721046705931590814662711953640075409744131163252776399157417865096250602992982024836194814257528127043633004999287392957591943305893301598895048045820974310131048358786875264679728922790359919888622845770317991892704592164842253605922051084645462638075040300302888240495433002064506390063346071768408999266527691021370025066539395857752446881001609316627292389994954568380570055937824590488879701577371011656754796272036333945257890101952080633100967649652545908574298185470942801383799513150653241933420577886351312102977611553471944701627051085545012543170254862857847075617358365619945991614746232552028685975167873232798127443108300249552928610728317174545611827336511330265005255666240912194851542565619545662804729063271194233443386773184182449309316777924562147448252611612541442728979258967138079262356518498365900153987380056837497982142470211089054914732384606559216721630138048628684864863316151725966425322075246811810675513667570675442365457728018650893088056670853321265017017233219905688165472368070643101647840742702675073077471938438886767496698719602817311690802427591297770510381780446840646212223727423242055788169046305737847797280063804095068189272732188538432769158215431729778475695386470890968843940461248803198118661320158467362621376064292808305151372492422702761981072321330216728500527585538899312826986927121227667987909192139347073419816499626643415740057393789908238855384935967197708971005527806911148240947578257923094744956241068897557721835099764832507286230660855979558945802122134589225583858372436629998466168761224983956220026366921421865537532351660670110419529727497904824712666579886554345251306703373542905546619230066936816524391574141133746451217725674182986406565350427584568937262577783315663665118447657452673767580851046215640830846432317224317404638710141504516177646600310119642287495047027966390228305079158948603769320605844613440976740522912724685245835509722507950226300518268580512833999148102227687447076458549733832607706003165811941072482737151149262496913973817826081487913283964078597941081515551098920108313936942262377759075122660322520734798414328183599063622627024357425407587391559582101076284579730079518644579109081216994237735404384572163504650934582267990408437423832854875169705891581349920473341597169002969871395304858942219312734981793515903071263294669446383276399443475579978272475385711138763880513449738056989007001770321630054873892086707204093184881554925342305669300780955039792000765179760464879715901808409604568565382284003701549385023256567760268716716007688654269023966062822086773847362847384953618779810853136923882772952577823965456142606477536146181692417658803341293989411280314554169375853657810537790814704622663385298493354682095440763895232175926763589977850692559823083913220840350424041142978987547476731537348670263567061915137226007823264964312533542386500122790253228323981952744815069226851033353871140988222757641673216390137107692488956767385439443683973908709356347146216318640997025879235687057176467380854230613021829262015857233375475596581518393786716689314037517337735124230306503425637566238986704497202667487370642175234740237787891228826537768325451710105660247947120497716344124443425266947813728162799227426790944354325416568526060975138733884261464185454400253228055289107069140087690446234946655561754085768086505524621594388032497604556310438073632419351516932560914759720835090695430826759860638035371379296980904758107136694513570097800372507058220857620271063589716305342297524341187195573805868813865968704714435138545091722062503346340813127402432460401108277901868524646109094323403608026237455285567518349685183086338548441771754729524089791769429453805225332914495672716948124581208305094264828096536603255358620139950536976065166525408984864625759344502312086610495679162405645886573101570818341566641441050972995585369715862178767510089627338473097587426797784164708458868172150133089635441804961085960521112918434672591520477259911919248613340644120757871288431923754550582903627139831907503595242876453557327922262478052452280390781626768233436751242555337518192979338809323259596202853065813564760632301167909617665323886339534900848649232429379767204526225551956885688552798750893912457471367953715417252657408261707646982999473512813367668752427166619164932776016429982585854930611284787974598387982997133090213490092626588091252741358363866084045332847729620407813368000441200369458824969276479797100091192039203085167558746426890840716133381091095661773106922186531873311552384812074155745354253987506841880865035109099775216150567329956366005345079052157539554828638834935204163849202348944306249678859556152494615038590017127387642729990328821973849036829305178949313194653204292713017412830828033565627194754535258570622354657047294499598508882785461504651705477213615114616490935040484137419372686810281870838875628989476599660811636414661030427710009102296673747370414112692472772047296316954146470665862862110299580265984376044028877812487054136810732718449052350526457641908029993727285922136297072272181872459378558622650071137638499508021264468279995092619697548965535304566051389552186355599350932290180451839945524474092087151354295474683833883147529003117727559040849130438156055067980691908398091942011922240556334907609718323322960718361147992184725821733840681647752977445495823013388843105005837995394795784085741977701279244825947143889260585541088984552264793616211750431749788623189714812269530538702928616604348500089830192145382150379412679464192409076652640375349179549380324457698229640514270478778758941138653929531493222912455778941331670262683542137999311256103766400394411186684131842013856807760558951854637357286040196069022789675995183702697352403731495583796948897006639307994342224813417305424251706213524024664886877539970547593018412721246259597110802242445781255303611897948441095026831223156004432841023943595386952857010800680273808681907792861541106943376216458491166015711270486994754808762100386593674616205391885353455421057246082604642472849118084683650854418861656869606405728377381660097797580690640390943589134843046840451220847625717069344107903636800331842630412764576827906843475782330155684579590864292889243314828401355428209023688316161279000734039606324881692355471374012316595716926663198496706891697719030511471093822847901902050290350059335000648814496750788081656077577654835515383875336285621356063999307968420390382589441439081401099766859959511594135768713766684463681872808001729155027332579293437365091282977807861921350309482302440682542966087237294640861275920089686565482049841539127013212061598707601648657527184979257717099456472857665392494386985874980480671764260393898691643162561213699020433143912221108403518460097068003039025805286526009638396171023553912369327720657225189772755168443664664575253053987947829267543610240652720179706142828191111043177010520616656431668623181729333972054702744140316295255071386241674479689778237997995590977641939562342669171163367407282337533088610183657581150290089379594586457675494025923624128282965251021569678353841029151262361768643348751668676440469939421591870633450945739519540757552908553768365762351509058246917609089533337498184769944317178093536118658425882683730548757946890520230551376061387483909460137483973055779130428094486268020497458538477552064159615667149494901258970909905152989877386458907975549203131968390757274332815745576107543347145698180617715257794642955666512401485344080550202089140995785875289765235144690898851198842890266284743219083582469083001437134251298222564777041440819915968794701466681009927438654769492377307772631452087369549212716761480545857124853847372735993385477533982330369232018910074443253713220996308110575925903559148837858299322706505008308458151628798139843771724109726090900182480119049164794713741169539625637231257785229885880447473153058470156253283497706476274927750271237989166918737751871830878136330668995535727935551043090185579731030654804090802412326157167402109244580243681258171135843449521096683752138773804441255609725648142386403095898089010428699537028655735843874078079396171787123129966320405790448711200456899510904252002454878574996787342689525894119500638270136835768114321093673421513477805366031153703271720570576206963536919809413386574618248616399983872457165844752011130840901156373329844883811719139918101038143864814971421918282517545184407262867236815453028026597029888478858663068314387940291904684365282663643768641345021178683408359319332846889704423274902002438575354828939582628087881760815879322282349431106948650199473344207956403961251175233091589219294815321272624384950145803690031461614773596038003499351131966513041946788771304262628988421680974603593644428173502286112992389233987583611051965391298582252327963765926862814736014487062911794370966065761982171705271390584752501474024629501341225565590626687817207753660505167583855904267767179964312667915312318703546332455188480730899992348688476904920366474726257549440011299084084803035118900185427450473262423524297489982676526106968039836935380941920745618581108445612168925808675105809921638742442365256965140827518712671954820919376523634495264504138207206959009203208684605042291696323736741234212506782118500572389526142335038569539001514076834716603014620012822774824254150600476742988464938799220637847299901673995703248149608778812614846428064567258235975560409438113963162161853866781626948651770909658502977537537667686065551555857014469645877827148534338508802458850491771840586892379785082946814470216415044904320079404813429258396307074828092353952441371620745231982175197016933038321114770160692408805332825195043057004772580470669946510296273734504903047036716059067378598211227304632758659730899195719497756512773513406849003067720028371306525267200435550481799088435410767723742376666319238454139851728298518112412302931880276484638130062298963864992021739743791490217161486161928644736438507982521882131132451509195188038173423150530979779638285313024234485361353740750949647150412006245865149487460259966604002190672054836969982613158128539684239783182868100415803569061255106484433452697224622766355045393826900411446130894596777784773321499829016864614425870337922687443716112040614754193972533026776783074397802997765342599010170047100417124396150860602702548526652791961771257173234742148362238018760862451223921061282644171579229864358612548180828404106853734671767362598935909902990320066507290270084215619401944429773021513813832163479151860896138381834494017104645065963574687402181969298940632596781936258151191662248526448352721741697688916963058536472014525165570471187201549699154521235826011958255853726042972460966973542315331376796681150066944587141681071483695260679279165390676531293844079642147914968820565091264817094392618566672358964941755812561146634300345157993204846730502346026214289906726754464945786307998140482775484766404093790576014798506938165686259108801571208750769948386755234822404067630955564119281442424655960455988966160548088303682819798896922921224570956660545884496803481117940916451340900270837828883229703646386866675602902954240383118205300755723639038908794985904145999309414174382610701748139523059842248543801580524593377735896424938833120305556706593082173613382520287197265953310650593175589269403473333528038905367678423141816047364258975297781198896954780309804259362446631890138667037363590911012002049815780646503378748971566845492424797800571537973768716340193963800723433306357386415370573564112285399790752348080711234498302673324219789287300212204021953498438998592595880246698670723320594595896250507987901201677240029478208136424815374213047117289297343906934303747635754743747069945366713457135276812501928755005220510313874080251113981325813921133375486994171098838039976226444872064711750719623441110257257104296820822211774898132924889834742680588012076074808070601581217113920516592020809578746774844314214170107143860907296221807237426487111374029634315220378241180922697412554676023022287595479090876825814000100291116338264438859393394449299015328079533727756525313934973379417022305546458454345529759276148666298607899628734429040990385421169152500764537143713761214346876368334682100220190068301743476535508681575687027665995505669446305485687666371686053267562947664620346787604838741479108400833270266850376744726552426146805424528577087014564649100487457216026164891704477263648911719526869091266657602777543428036358714696829158999779753918884638726817994741034238627477254822420726586621464463005287645640201831945817775572255764280205152873118376894677161154650983159373415473790671970659284634040961007548157048928134581589558160648342704511595698563672857018416029689355579880876004277805787486565449709664347048225042810587562300301314866530238414447887866202707717133785401938956923327823477543875909677024008500747551250369685835009720779676578453608567940789271154388801034349418890327120010264010503994003238467699565425637509001978764624507281752774097634864311029031091811484825905329957811920940892546805084892420765466830895606275915129116931418519251094383947843030807623175648271527718967382713571733452097843259684106847522896660806098667425294020744230740098117265232423795137526982871422507069007366477239996693060252295783673964219734038432136697680656858855476358212607781431702449013030291807717978332416287139029350300218244677475719576968436480777225585928095209667987105293524088849182095571340439955052868754069402190599773574386677807718201955837688376374682952947063761580182638392139388031340502131202396784896232644358494087834622191465584881419304757381134947617408131682040974871520685577792206633843355102046486605848385799448715458837188814529249117837426184795636051222904240432209776235082014569160018860106138427128803227567709043277901129854088964119862724667732934984260508813245401004380136639545610121895670108187444215817595643974934470699228350615472085168465358192606393936600009285630810756816670164397752355449765504378758459880143235753173718555901036042146556662374747884094486886095385515842523643220869624501802602420257279828721596492094923011894872996594856037908949384739243108929583593924431815415449844063041989186376801171029414188676087850839162233880630740819842016733701904983268614673837407857399728075426746229665818415426405831591631040202639275144913086350369678081992726512056573139021961283631956351255738017126611276309190345140469696776575123184017231082983404137770929530860745585145417829819374822289490014886159177010391695396174915634497941874918744537156584295620862091887283623977992793518838063071376248824536114237174097574926632602856441533303621767111053950917623106960158688412642894095321169873178333475377958289834747247561590571782460618099460393161117564648677680732726190086029646779445939393502745369166006052962135213675619759434860379893546686463117615646328438978154472794318527055542910709028964775012685616603585803967905988874121398650599925014891097263586093438748621911900421466467504098099854422773155451881318137020987167328289012559095534691803276323700239613583864681229908516229987701351755360639591975419898626741431232107968590764058263464271737809738402030427960458702475641595140236985397112172979921098338449004091061339715916670506720222764208118386304378720392552546431678204490676726414760659051746662033992403629015412486471475504698341838768389880933948112605659812508494976511214840501276471076580847048636642054179446671452745355737577206873284630509212556837185007382267808459723996337524105095264467399969886269958299652430115139926612608354551870457561426887869695121711857127761797988684355025038891048593866310462400840760094519960226855868831379539085450298197522647158998982498719274696851539766042382163372398839783725301335035490918909578436619739408002969004169121135553274788035883169912165963219042827633844912526002566344953237492623501743184946765566147721388487374322275884984969492481334307128435475292794639912681813347092885991198289813155300238098694970293509241134684483889015480148736760251865916453815533950981301872298099891281405181008969852434315937796706752262654380389673926040656506769355095208282607730137287530609739595062956347962666193403805487194604269905497392236302178441297412208818115366848801540256899921274234830866122288944423321575088228727323545070859854423222002342008178664039695529606682503379610237162547861841401752122862824900380596911507332617161042633954898156856970263698256225912152752130610240394051293768942811584176513471373867584225158202767591600386859438084940175837153621759121236923697359571938109994813092584051568009770970455900322617751913678753397332881906248679036787675919963801930884629689065863033288635448726715991091715539025860190257430509501206547969633342897908092157857404438209334283347224363475684049753402072143114160687494230913995769595429563508621242426871110461827886653932040290939213443632796528256654663749201349040008602561939927675588281276149920086060548633376331570214581612068537868150687508430355004450526043187182471653353842994829650708209877202161680072717935672196272352123921749986795356581793853850950009236459011889588457797011870401945163709825313020414549104001598932113363212915980853768901178461122561839687062374924609146785449015514921068198048682594315208706244055248419534199129076787297646914885967748878464368695071767582069804530505162677930078466665202872597397948121688880245809888583812155275045167313515664540871360261814717087949967817501768439803654524200620913355771298539835180237268544445521278987568849347212552845996142924718382224597502692167164929260532762576931802621741007495734943190150486211774812394662544363917266713028590177535383828160144276875909946386491951500307896693564440899734974209392450590952548371603869661241173721153245270225560497218821282380268085042072124330822836572172316318318773852796091274402167135868074795965157592488279946369387736575668569034754980310084630885139548088627819648007686257958240735535476183502140775666236529921259551414709973664519624269389068030265500540308455136904197158245675668257850829776111435586693801000837591120852160986449581513550562209403114871129780632336023451144834299771311756498034071595569212077313295812188064350866278601337717172343131417441223912147561486350593035688285455437505029915820573498631473498334592850180348321093695313595578727908482790654716057155412039935013389919888924479754481896811938335720368436180623450041651855290510708592355322270607495288982171549401623623883905958112941181598845415939190397332951642140820762713441062227770003738123785206930387798513777001728563511118947663326793906471873418892132683488202496872877354538952604397646117265994108944545062888482408120384805081276838415903434108137087545860138423208207534873560506777685428536090988851002250842678042758563412213275708570001446876739552424942115196169582826980971684688529260561198348815985741417310722367592155451915953106758924786516294216122992949540721787264155820724386418287267523343606892098709884307300898306272054811721083906145860361985723924249420435769706980084032604869380714331413628479357065809845504313232999143995419664190457063878343366947771601252060284702669830562328554821230538952323521215932662193669555498924438922604433919128856160094108288587033235066915331324985714825241560277921733093702199244697921136360232699805731619641459815261610992787693812953810289631066780025027474929312320784146514979961792720754479034987462890503106240777044686016665856830163002279785012811652267590278350795176940415960944962153685144984759016714992232738743149658207294409255428623405040007063487537351554714604592724258679605243249816556605654755889108896092600259441007249317043928802579619104138639480923338611592548852473469406669767188148055261743974376647199606330510398089144801524150497792435517533330765179319345511973977058607493029944025128930225930788606198389013351273909340053881618561372602723691474268060836831098349449267135737176893156258677201070187368135295021661219826737510288051059500689605097793908041832127140822161969614976010431598531775860579466335631019073658063355673189049714264545762628381531730035053703084407204192990268873144338724082303334282279505948595361229208367513320902652666208181841880056497120356998029072137631501736949571784983114636624224959257767382212029917730656153180385936014238685856265669949583014448975481854679208301246166046244930991623993867340552973704018682293727304575367036093494385927036408749837425908904974086458171046994196703575850661901171736471018233543171350989359911107934230747868734052786989520274411863402547656559918865557330068751517602235933693534879246887310748285366381912377242971740539783304638422805417697020381269969141736170892831564835231250436139390496861038083631204067140297102197082513288950081730624616563552236802446380665728040683791524938285464218736456396597051563150682674086650382778615039611779969110692114111505874888138526000585400634426199480976780529605374552641857619447933242890351858311289858143705030667965665533549563146286392206381486832850297554860329056478056929180899148561561400698958266717725980774013727472527849811965868180616119712738232464037650373946894336710155455482717888606156129744779863186243853505010499901536872569638406242110193378260800506596236510427751336279154134289991658227419800482555847671271546862967762025990129799257654493822881059217905172472980702361686741248925669417076640582313103138082242117575701771059661711378146263161133076032849245282859569429972532521491969366106160621946873192268168117440955080595165563390618823783223820645778579358254484609324974551709487488093427886292650304296956153657366286773493650167054533236239696920548744567029790462537288880205526873449736824361434666455871944786075996873215785062522150189778078684023808023743691698101218671105768417478184437566806594215174555311925193283221995776321693606125211687653283671745471003307604044091701019717355311739502258760941217342218846211812556803013365389540295555880949359185619623058894439531869222804104997498870651275860314026389543007896737228280577926326906552147244689849207279540652520223645871503628524383353082673735688537853766557495854489932263096735295870437429424431826927751138839688253461421147997909732995902268947837954743174450361715420773286498565515320533678899203049546014140249944585978692478265813255079589453708402217209362767240313607103022911889744170330969656635371256588414901947464228922490942805661642475049500901081070859498057468299833288497830220348246433683176216275955794889853681081412000085915672414463721362996209513321854735526466270782770148360721797109953883414036205345049005737134132513813154248395507260441768045639065853870993736733513193303074334324839911563724329791277207537866334293904852265628561417232362070081076045599812841062452404972578716474446769556139742212967126815254552184868554090821667797008206174502043051318489149948013848391526564342735909317701369219259373203345631540801139765811647805601570362479604849690967376822731864285814518065548986519541912641128947644113036046647699242136183473972584560042705115421998886388886733969606081435190577352457303287297554351877778687158792347816091289839673418609484968502112665863205803706869488464006478614352436712623896443618465569542197981391762664736582189522108364753655750194692713475688085954745221396390361005426222762244226054505147154636119681847320687478138759235479817309549825648131578483066821697256025862226532830346956793689836946588119533453674324483256463803244548972032449092859216868213961786043543433117733200610198143253501833814488752506917500548659625515012837031025485718743742772505578714149428180515448946621974203272281019753175846307476947848585248477139044049652687807485156940082930692997994386363184074797615023388132824943454490909856142714676307686010560624594297759786977676118430547277005889884627657037064298558819374833947577811552579724022250988262757189782136217173876376400479765793567432438522288384195537432873801295266573962003298135443175196797266753663843172902213674979051249519858587463393888617092364514590712650616861791034046926688165868084544733267111909655970652196740223929114989486588951938135441628409353676121955802635160495418880539638281987531225510625793278128410099955018152032310704494323303480595350611262088259247568474682634583870835861870671233399891794011868519111323883698024227509936729251814136905482441333753200364078204597144330535366611099791028142842983255969376263019937901881460959722615808659384970847659869987587146657754207771346737198082006648077525675349785605217828626138327039262961228947286936211478655100269158646690352468301984896256735596882100735590129064080576575281427088353007971368517310130125281230413687835234360806995411152332128615667359714497017855473639642904542567201539818646533846490207513316659134768880896044581463666303915763530375805210596453903229460208620067150175048206639838944274817665631526397701057715164998127352430777254987365667565035204562032064358369018161746249709486174060283893392914315154515213315479992834686066652139928737179714240154161316143247155834523003708122871038929253269340465601784886357235514764876712107362524060001358808669718810978374883356221557584502459636574129299229787614809535429532632810612067691977675442851206050140973888298096047283202928300057400526380901347180455556623885969718415671762529002958454202593845229779367181466945856235755458456360683610792674924114271787307501645903518834800749699021883545616319577534997933180337847874579470818460899053763656800646420290033345422426349426455215854423808108281380958294818287419019772487539912004275452769958877277486641053605572314615404200239119190151111460444545108467149186585210107422796364462916904378431212436080243429577921592301234325305250467697126211900244720683320892284076613315816546508244884847629166597418049656997404005071437546822228589493327729361789719899342576446262845642839471388458739311753629493040538069045147606349078092103944176493427994112462627263424508181417884638407422071536285939031515048067972210790884818350034998619489224420675578372063241398379277985519169593600659493280524187566183617964440867198398664670873611327905343909069655761188631019318726895293820325067211456883284929032038169941004722041296171691650613845240285663872496962742660714040635830041046141334653686539845406662105586134322639426394735142929749209286731037879121511946464539508863445522457002152105870875365509264104767373343849372494474127476209168485543315053938808773338503439320861892803254448725632473517153865345958340181698485696522752436418336187973782188720348769108906898145215647684182641745570747043979770226245913520659815580180620601679849067581164385257241480559422124180516953227651152098363017171541611322610001806022497112292928012511219102981059442965179782494030447557554300785720364030221013721380264181053690231439650432419958709054767591597956044927888150396274438151943406722300599340378637298255863935872652641939828562717675382107540025397960737978854623081714733632244203309812261962871133781272958705041252501192526806214296995613477596828592894178002579288367285023726182250973293742145803839657128921788806841478960900736930952774604730412461394387427673245106791372472646078972329537506304112423930265984072462338038099670545496645627320012303315667275613953322924015678399038024208396640142448720823856868464333439767635521918224284440387584199165878430556609816386202904878038403365431703610176020067797173689405596902014914955525003546170290061072550563036508462463596489542798685315741190809216205701385001147196911576614589399719140406081395075729532814808103373573005487190455712609649104122940360392323863921373505005251932740768863145191849001444108210611783502316272427978057208379535694281265669376940749114054684824548304044218608330329254107231326967934758907750399970223945462330904418182274512534357611759252905640067565897587459349572542819692379593069419354904352779082099628704794163626341312163679050801810371010253298002087227669272388472432716951411085323572913592731422613908841649108222120346443283796621702238233115367857235170856143401765266686109324356552782982546348109699570903066746576851180956440712944809955443382178374019309189860430939403702202239363517099075846384659719525242301992440817815810579663665218939208254487248612265917674364815484576331592991515086113281131622642800647350397916517942152936384842242986310085679699808375384940945873236176783934018606685696846092517628899690287639818095471196667403304911247098708440112964024993035182175767778178794327227645894198138617997538772285490281206007650444216356407811081835859899719656612460080815206375205028151495663762085469945358293431917800066205894370679810791734469276395941817369708083353873740973633163860426695879544781100772076441423521757111267806990509242952384577106441401471846375988311021240147474774551576265273669711653628079651855465390235505125710060806753925357536852003675480392956589443305322534289635424473980286996711752029708103787288152695334296044348668766810012697835133479360116991388725424162463478401729936439506257232969061391360928813046091582396865925394133003072566459028629375111847145865562270596119563908113476875139082231599416837895618863349087322895239305227800872936933357089534540444951666824088395848037033048604970070237550163832819226797763757456359149008896643070520282141711062531418858982837516566896841538164753192864518636923018824888332808402656661414928813471762782621996314827594588465814850073953448820028761893922754724149396022278202620375967081637722601583851802239254885491862750058535080558149541001646776686327860314259076364106283900086418673251126524744831997579444465672386533688139704362028461031923322556867831664323074099424385229926611266104123871632971337325340483672146168064862235268220256283581935958811542849784518739251536875280421211861510948351899408873556778343981190659191300520155026052515687250240850919543702780184119722188908258260851153344585774094583254860214176911173227896190723471734055512891553366009499514124053103180535937880204150720420169669654171168021822313918194824363954881983588023202847149743044967171949732834945566826823198050926667287776597586297730221514526550952447310289185358215029818966216372820437939168213128023121794061694978610913154747383253892129719540775948996911741628072128837977612072863492115798717021020533167455922708510478545184284206017175956299244082593587778013351342529522525305151505595345434266287697369594309500529704638472711404599901962652375378503825120351785208543358571675347212426397424252050944254271888858580498384549401742575201095201186181144087631557320650367138153666335880360010779766785083374343223899229818883740570220484257656635006248117563374033743056299800418016035420678069151506249972659342390405012482686083214423490688500152836830526516418109545425401217643235100509818781769257222929389343876247105318056723854754231056756996329983140965563384597825343401821618217845502685721457565158610006758428163114773128123141826871972423424321702356172080970080247212541500003256683242862433528539144662060253293320323312140103492310869720087356114227822880881387919396396678909092837109827874761145121809446820612171587631215878177857856246388177460304406598078882352920230963991284374495398915953855490110437807453188015428888962352121919496592399462043638310403140943254366360011575660643450289420946804544834028970645395082516273130773277410550704780513737091748257902571334669896741317799771878880275463085470781701352648782950242630462136408231993968439749641905177399788260567040178661034946132713981362038321637475556813304667700551979981356403444180206995122437080977558757021809963445571864931294539824086013420198152565943380312604361885734291558272932855473791150983330812940911700657778537945265991683461670750079900222718435653344286743499338415393229172641103704391251938146163656206105341790363994786708694351358130568788704383796805356928788287010932468820231447128380965939118840551263536413444902417204224067039788191260578668599025980089252567589028014713508174604315789368769451324934813356905368342721315314518741056624765708085557853800358683378357201058086179558286299382451717163974513093410783617341109308077951108917339989719523039467936183268193720445494992397611774020184848794067493895277150876336447978667552972256037087230954583515828935623322632336028768333171009736974358737806844342135045721827592837636099651125274612743431607290381672501001085667869233642723846395585351729169435825851980714149689114879071888469521618500125486867750156661312800722422751402331151402426976808187346061797847437362261232084245974858605583743756164873100898586376144725040117018889295416707773796070647415818556660080263419579396083497397062837571585245951778758847041518608048595778575444296705849728415364763598750718845035094224684755588454812756774323858374208997867183387984886289309781713480093577838766017355903350029302860939144584058375343308382127760097379472504761076655150545714179206286924574604449815499069930381184810561384408137441872765337938075612653940897998180703377531318161774516483402448066136465947926100061184883897225513333272001564506414793660884228451974972345106470178197671897425622283086785757109295939870529120488419643955144724891560348664441740748289416104300648668383196481509432240947070091565520633787070130859417869350944866012839145384780829130654717575492361277163548391633107187928991983822897518779902875543010512153387607589746267366907570429395025008337016977939450487665318451272612964121714286251237664404386479286498365939556004387560293333165468526897360496780578456033207876389273639309876113009661354954527345708767150848568992843642471346884641254483757002881330563757588359975163861814068940398639121642929493717231052871656407825545233578238458870959705788154617728885834381090709768032038581132931688475313465807281406196222574008146582500510394004029091810899850045867449104991195502874438797323543661907596751156030231015024508810888624263569312138090542253896660582115503384936670017036847096128488229465329393158826292112423320925405465035259009107568390148576273543757231088236565594975763301181175485787353442613199016246750672224053616566101747945517474819318439673220464104962505884329623008267953042010149967362757205823681178149489329932740497790004313156558565988191807782804423124641582483347458270875152398184131525061767092715201994844443304208632745965452193766470333040131120022735842736445551530738382603944620545857087003453164531595470631887177175667777923771426217044337737244738651971905176984158970524999427192157829356860790522637992956958788347529865257257675517699372364711854670908859434926297838319101778361528299633402292596032115191649064539215955471292044790550158982777325365366233238016404918141096850991301564186630622822092853321025674539683751406677068519729360008832446693599373704362955457641798190975847441793174442704144566732299131538355316066936477204057202991379012483301271383403213257933755416043150347226904636375588990313273624232773341905584007629197089998310725121364661192510117878373675775940807333276746094756891319609272758819643893421225380778508525047328846054167441278185402057431331050154922390470325547167735249501643174163505515467133877064837797762809102131694363011502982916677695612131203954459758767357713560915536492559532863530346611783508194142536375284265837520067120439854705228535574834913017267405047609388979411461348801551156482499479169571578281934415133386418877516266783183722138871971953625197949262359086469856415880191792492947578657061633722027106903713471748926907089595756646320747487660355959097383008945419332155972853851783365331538694791834259940885714409774300335778625650576082408490011989052853303091576186997997007074123087147966442545584782257960606284000514829532707660394586788116243520627723291345329153863195418656724187937526023544454971333858543299297447788713249643071381061696531007389480569367580414441852350596855688342488037113718804073410527371912390235224243931199206370310061783873003107858742158782539812458248097433474803313995780701868044796902957017313871005932350746236297839305238593502267178128039546366979803113758184428950361733137226893930709903165762815068958450153117147043727418387553325281795877220843858514110122307278423550106518233780082610306686259922978004083826544612328290723023805479667214320132977840305140925386000598646755689839862120780800898291144977877240468015460660959499895318088570049978693781373016623797448486855792941812666014589050838434255611637252686622098604269650244976355581293065082472493984663125648772843262915411485156038263795074705562486270006386708337133405748922014688569485325787685068081366484848460787758875925771032435778585634027125215961874536448193157025147849395439288841951165138358161917599987350544917053673157157780919619607980455878009036893164323029722746860382247171086612403806401244056098025551920816311985356272154761623134292100530253144444021228052203139699881832762003540889289906235011676733968647180519978341722302206024342995657669160750970218292707115640276843801229918391849080226219063658220546040219377520432702710697022756752470178550263119554191729806089383983533223463039346335092716793537980221805510533597669573711823263842883991315165725312610276925508950413334705549801571131005162051999594114179272237538889959587360455638483265467220487722359941082980733602180059449048003562525536398658429124003806405440635517814954597083854941704816767356487075895713566004443871852537029390939355898995048894680894038029555655481045671227596023046992627057828125392419568743695268744135597341324875273338972101036811369247655898186147528002380381594140867449801836050810946770170734976828256594891358111393929420013954531155948218348807966027886361693119425254868137351751350190172488679383154797647579350561857526804096856304780126221080779965668327420658068437579801911990518972523387003781016181670115189111381763975812638140030299980689571491253312108857093509499964227326315594917363810099557323417235486600229198906455832004559629319888052247956952343891409315651384094369812600338300384246294737144590687615928836275062218112736399477612372967079986901155881309326214763786348840853631550070095855503695996198734811302242016623976102874884430394727211138422650722841958708135378653817684317355950205411089217282745409930161516246192474408123265210511635124073721249145636971369013781818690909262905337522436883029819096012333502286133088203630821794391418482603450618463469713791917108576573075521309471198147768020712479203061984042069998060622251052224748212661430003497257589283037059182817832058799783491700188601297779015252142967862600219586453314223472839882836630886521218458111894550329279040217507623724263110962695859664426352894361879169595543350967893822552019466216956423573617727664922397328084658042910841189019977912771446489399508619268280819154932968926870219442204040901120279385469813252909854459417517446503344752007215377550007700446436922258770041673631669981049296306377312745916649746288512593748669705538622895196712788639841410627789235753587752995394580468980633265275199821534231298523034001810171550112579026182918872815708553080653364933791256280402916753903552815695136582564823889919891157152664068929828737982513917108174737039301060105756791591060698452730203686037563988483531927395196001081802569296060130520656806402662251645977281441567433860179111240214699908663411877047279260841703295589481588645275101394625660308344574058947804714177589208316197508182647556010472485702990863552611631020206894581319218133431414291963791964003995928844577927728098662187187222380742534616394895668369512378993691596024627661486024838949581683063646771918917610084518446884430619648006632878108734400900430116796695365692629824715937576380195769468032903131463847171747892482722262878097084073368596800820251641152296866042306800156001974924301060843638099060644572494219865614432513414737636794470250473879474179749820871938507573697105867380241153080014836475592689961109320691501525214287324814878760469774748509829485112516455154284550043087706296040603868293712738053970854123924190302156895608959004164386802041426235329733818264699129988033566573905254930515300774767065886769362709288757047405968778985612392169145116249203195652072239641156276474000670656324991474812877255611363976228095625495354115861626622112182453515222044736669946417351677271659144748216835331529613741200017968913720180017050539487354054723892356956619058035429292298155659787445008517318649698510597423276013215165852706532735341818363483636543466348105363835090369456114746577772102610632815062202660050197140685719490808461171045826690265991951375588841053778980038425178361926453121617728984506745367173438803810013340071185447165054459780167655395544497188265132953611015387466093632208988238679449681230631001155672335125337332119831549063221330708700132610641101014981918904833133341425395456612477667351853241211383280634400577883923687786461224521722035774779172869842473744038379119506326797461812281339240165327529654450447566498304616679076710137329468194206528070911239537311551454384144549064891403822948411385966869475967105102534117214874105377408572052738567635232638871217079077906282372929148049425078535694202799207296019464277723158456652073575597357994539267321742532512325860899070601088489003720925469277797131666322576232987095379548345601063142337883621271334647585273768210866466043890148423894508562689541631777380185487268524480155397999969846660805994819654369021954970718559299123615962172766070377090332950421366294542852494308331001162592756819225518249619232210190105265362271111767707558506077292422587631726744360893624632302524096062833828616474190016462515152275347521820634236512648324828970077128403523511062812493815610159816930574154019724455910641821012373253626444355298733554489361790229954930017766982107065079196705719455498032837608607887664045677576645908937163411425223687912277884219509587651617801456144560165893232914851556620536254222096393750153334345129214295581191583466900518090619971917391189986471636601695644016749403127425138025286685709007837924972788172812537188234689393313414209916488777620883093980723348904541975743708550367736635326531969387419865191533859823518511337658111379652014596217079250912050885928118430939610724359403555214378054478559337762686941331751049116002510403337846825955522039744718709491292635512233592066335767753435584400213461662272195159460411598836876410225460106990121174670616947846926378846807806384621105361714121676857493336548738041791694124563041549760599493564724575985348433796893256328887665592642316717856552076143023630774007743995059064413700960395016193839882158270180785827263288235144103242033997812170335831627201730221127405090956152026902006176863132905217697567016598106811327341980560349643881630729973333670869837503110611756803133629872893671041225845206560101822831896369191052091157660027001333766944758023086019437288451773294709090981852029529277107293905792517406515594857918000474686732011513647893750288333458613293570884336253919550350184422549134585937443355075666531180748138941814612930830743251451435077575959107381193894897329964435249190792185014326604624735756604664079279455409334847700498425647467211425345409824538459172809784358658830198407641940894992972842186593495060716223907722952242985491640651005623925197024013347295599375412207798783012211744924932934375609953817434921845443277888459656899418153145186036809304436977965994507814730513466880758227323136994119099167545212694281083492525087099453528908075911490730196690941059938462050227362423500907486693286857917424119679117305782445770253029816483171779229598207489803044369612299304901290789807518064370541777425225698733057109187096184357439310615097315097664898227308953627206460328458775992569946755799101580413942365185252729952529722614401674012070115561114901560651418202984641868328695480072475083137024753627783899741975438514152402997806053844248755296297321370939334170012320871607912396477465955954404281850539543954913137358164837098190283271896284473428355313109705170004660265534447723965626376651027593888333463599430717011678211231499869975108713350750708350273144600912670731990015042532751399032055553615549717539027668337494437641793270428690779990403362613883372993916147401975105781800497089441972958021429537241892781084316319872424379950359683346317493058988431141830082781488591888566853709110412431328016821543596846938588833389814543270498608318918382445813972624360780261423278559919044254431210153215556521137670222268859817428322197048383869853957528438833040211087629929233189326959467098216489593935069042702299023747868228682359664243094465308437155419825495194672026435185223728802296343780391730501481063672124581485671244475895165760691263115180065509902308370950744360719681019263238243689583202344151560501231244311686505217267936918002777352299566402931027158944673931421223061361798035641430954816072739433472671773142074582596546607307521500388745297222699999948374902703882518650135502349049691342152281969010232705466483998143563703562856175990730068606471803385342503653575965800929635578077536490872104153644816616016032523083696784182597006159738930218399631686506407357764310088359162639438379740459754345343648801221625013804665487441577943772227274986220286173955815862492837035647628915874210715430935617378960466313341577551844586413931576411398623540875513399107587497441065399971170658698466691059211674579989859515320404955766817628729778710593744219580588942594801215268950871388373467821813057672192117957069868461096808317347452611549532942251338911992422172865053852154975227808574319423389292883289915460524963065090718220425989411902347433875370273548838205669739123719786210049887201169648395722594223245489623414727731690956519680271570435091579680413319069916694354032036489044913390645934764266854639170326297131385369978168357900601042603894405216920080755333469443686623225015292100655595498642775245096594014626223624371059142018253883438586305263703709245184857282984038224767846429248019633033450391063284039133145657811028613527466832433301700671368552222290968582822149732847516741554890271505676645748282986522476375335861380010064510438371746435457444868016779946519211176139696231163149727123347950930666513127935742838732254763163530018073017324494443385250806182132637796535672341056880928799362639141220153096994989627527100369065852564969407041412577984553729995197534944187703980394635721422124094276774125312252474144312582382879762811719955217582569249327158243449474407430797280501384151284757683152542548217855232575316181413052940945671322539632298282922479882788677469909683484441945583717687306687978371769134138622263134452018015970329932620968626969555199737109761487255832512672294528558337845777009988253976305094785597317499762039646782804244767356664757467469512427556929086796353378932693498332294720354775037841652009678039519168522792310078581721937085082812131787021449857875217105265477481067123218198395546268543926827050713319715362229675999926481669320213224068742783152286656406873762733499565450903238313653029598515592717376770226835719660655009648873031778579390346196289191713407841370285362752116337457209477970774067775821691398733534523134266885800199791579129769337898794900187138692225221585879422572689502529264539222997310107040488261670272335462393824579061291425028800579821881143510594419055587395571791867921074302956044705755708738216967381826287445271059346221160521074775456310640614919142699441433400556601474697579503470978495219866458138483095134477137246863772060758835273477726594250892094703679106597102359400788972219618560482941252835122119333977344381052654988929020928065126419193185801562038119074195322262358015154845685643248710829351997921368516843255956317617308155818216060525492683698812572389465389716394083364397580863633083943620086528802338506671954370153295881979289635263536762417521948625459734318537897187776964777880175296537271741026934529746974817466150829805836208176642910952393615787450809205711168853452598414718483145351910684350529272998469120581602570986127752019974906154227440641971923371173455257309446952842742632259789069829803626570659281527086113018714531099396861453047112370461799919765581195352245730844410275683813398945108303213479613494857583044417096666972497536034121536578391146316321581557077467723724351817676841113720999556938758361401785524608668184590354033821534947502191254874062985039978831889555096954311019681422688872242275774697397651995477545581525441453192726746556288088285755466618928430467747030753127597783458804751033666389070290515479059967931854256464183316624638159008655573660532233657448735606226076405470966773410776956136426991419235439834737156729983686387194777808391163114922632339443945212686064345406372364185992680545814697150599636853337374256649980654154315306009625984528192636202685935920886894447127313286774640988054090259161500512308132059406820726888103186645878844077423298076695695559403387424593074848120137988967332155807586214812433444803954547957027249669595383008425866394742451263321378446473888253533134915957492956896999416363652813484814105994278700659418942699449949431698629623072838595043352680753812238609103579443435608147479148478039493277943896190488329564858676763399492156349399404423198738728168763245713855704594883974985669880757200659805066601194310362888987219333258185744025725972241210302769339196818039492556256524542854085085038564048519486242936358381635478862814323121642937886403305856448362484247885126516853631135541882535063074058796967566626683147872376977320743054298296583285341035559561373471503328823843346541172473207394890011895660986336139693292328558542202397169201248598348980638402838020343914013295246450486353199141448618907553117710349921167041481632800005549237536259832153255980126713481955787157137294636827711854404088647246632558297851488923745868824879844012389054951347931455009334644065126391247657836556721976039027159756928070596667739738274564617014043808295737792645406232172190428497586253069582535120747662227571739203181897578014606353830123662177866804202494026327142549454305671967394192724428712399702395470098929592134942810836087022264564140659828202620261726305322120268474713660895005755556022788302471775172779437353982634745916096268311956736317376116365266318071668114510021900929941722857156022406939201606650617494582330048483580369389433034020152871437346403287961802141304869210587845838373409750097510736850584765024957316404833877940886528550329501914214368851542576235327386479062361945858941487729129811527866701971161434882178585941827485573148204863506641722290450859291252425188109700655876034793603396723969151688288137777297388780402410352170912471186201514757044925350438023692301322746919243968779242529176712097967842929732654019651024533444378769645673074112406825791325421926157294168500486128195916712209441390753659903496733032941287862196243377366933949512196280537474188086338677658070488805969453002120785551157868618239836421221337944493832378222506927212086461265478858084161956564413923986095713306100804862669004056338310555568278706049999321587539615962280863150533477653122567395044720304341982579733804400438925389262955575051477452721106087772386413411039696648045460578160735486944176464793326876080308746457071138132931622420155394549112212374578693624002993979430937748028866845218151621764398750414375165861814829285123862816896642605684452838712656599144332161861047715108771013424913271249685745080922225295269473196979731595852633985896548921955880800804107672235633219086881180549487632388705682738360409205037441205887444292661890391441620021805577746191717856986854754528469785321410746110365820438599550263901301310502062529851302059573484486264119101133523188347252979138042355055449004862871522860905613715711484293240865429006207722000526652519085663730011891953969362010729333186451638672338336772663515960382080868747899812814395453748972452237548744693211915634989158251117893599062574930875773566826593565372884072429436103044901368385465427751943820850341820516104118905562634140011802617197000084829292285311970558023974373927786825302877988536886136384633433509441781451909285965088734333845537964495741192663939481971216355982969910792476936778699080992441644263984721920658314354993736144360071798561730338618951690776100195596591902187994475397868518912707952323851683213964534927866846456247765398867254338525911244372931764011574231610913869121461970716033095399769500172664295761107406728072368449095339651806495938723895451126808916386698069560780545030498521931093502263728452062624475074595769576527096866540717281358277828974971464389026766279402835077296426502372600480754594149854007374776263341296177047988851114533930372882747376063221166448991202033765218807154200780060643763006892479911406835937458994600649779973612431656681523781127774195986174920180740181418236209851057001383367408752029924224393689714798678634754573981345571976113702172580559704507394455762537015385120739872757371406521711722165183682956375342492349118086056387229768748439277795071715426107389453502547386550531850474987053921889316499370379842902990628207231096970902124902172698185558940711145530103148117262211553027096015186281551562241922201475801290738561722846621416651848594177154724781685777291651068107865271790553685074277544497095647345245274213140135802430374050630894906022518214829167511489847551036952178930687257781378627219160626973269654841544467280125989208364781156678576535103148326080737160474076346979511142459300297494540668843075151285235926202667446635641149572799928367999066078582691577485475367221024761091367920269305629985426362504572174678861220310220751753184432494663808097394684008595748398167345708376400747075418395105738677796651992755542599895661973785889376816755113888510931705351924943558991325980823044014750419098834995745529268941486334033758061487006429848169828587906735101406550010820824806811481428793163478251923801590556898402055089726926424276867051221553417295646117000937406146704472671849227698361764702819638699764258728921602315660409732892643449946235732428999307918496481526281140348429375492085107971406590114608618186924728778384485361663882104172017204225310184485460618914469274538872084423336694351385118617404489432203492956619059601105844985748691097596708131320728902586367657951478882524315210695669158457596805849593516261693041191301846264750304376525564743599740392938622596181345857396078461496631962084592335153188079125892435709381457826230133417130280886997447213472597397833042821290283761265328795585899846609606543784273114410481279976610924795508466728335031039584229366399606322036771192980357923816439666729894445809687997229368272380548119752322448050523493389948879660716892758200036975806488820436074715213450351846429181897108269770934333261775664227736367601087022490858804589323897632274136925394357707341798047926474041042053138703623837087056632185164631684586994712162477627993103340519731586944490078661445466812133359779410971786862731769617507448624207724719987377456931178640244422367765068814089489496672874966157229375012166006904643116121229083558057981451503171887703130210403315940078467680211996519402795992155364519505490790172863819757501577561151203016749383203098369319015540307685288055627606312973188258431431283353495648873756377124411132232694093908001751026188438446340059032692888795192048073466376702844595920054301335961310048860895396028004537408129515698918986704842024284050282394328709767806296124155805393099690688052129572582808838356932613703267381729824206274677058248124262562936276426616566831431757908305233847459097565301787894069394520617131463764390599861528880504463704463068066781108062929998363863376841004356038985295795471873437296336130223990907009737003402622082993707400703334173650117577116132397429774180393145353535092866448462022257509975168612164002777673305330893704678465672415519896895633053652781025625160339818387985683424740905516341191014296742809929078438116384415263516433807684844206511268432325413851364671966126286614193553325231067887361703102864034027220108718547086355571738448480615360642016573812542428179025091785657404312850785140073684050201377740151323254365804677044435522666488377226943911938772034819996960727857319761638459502473952904336070669745765568556931375245278503866574380130134440571755612940926394033780925014225569891262243134061100820686387272817609426761179689371263879881675882627734301487801008956037704227150152447765445093735896716472785835433620282334468146985423061413368319544974570793647380800265915575051509853152912694199791911206156322101590565885975811749506190238110485072129124920683018829107105953502035481458499844320947334537485213083839697779643110402249311400404472058762302395972263527001598171306427448853745771116599253168499011827596090139688009263550135899771255614886033904773094652294699836525842764171570691733119309355458195402730753596385969493472722132023983085387729525463838697051471319715616534830824584532947190875477911417233701872320200296424246851980973983547714266221484553040750727535718441828846086284466292777736410475549110646989574059351041108501912466186280506187660729099304226270418293615426860632631310119601211942841134406840990221377614267054898140569108497287814543160648641527598717743264874491113722341064967363666885572972056099137175948886023994290465396450078715819417887293398218840846309838408368780098833109180728896668773532957883118015782331689612182464123565122583375495487177855403584697694622564960206100105588426612353260543852939079556059834528043464097718467976438888169045170457492460593856437553808211689127462399458137248633809733377789631373024917463901813874592022496474339923439577698587601926655164138790398380825586211468333623396582277300162167434637255570397780217892470553258603685418816515784544808019006613486259066995556956644321250666326754469608054363533464018891855005906379084563350411654501195421249252697436866848378770951997953655126353038712552340541642570609552965417668809144832367980761965075899342006258753674254778517033780213964556730699086481575138089455891865829854622145145384466698606150955733787007766535948549821115274088540451933463308453786498038816516764344470823567595159063293056960330062773349205937344532289446209022846548669395462652521991877873668465907058105604208939003673338141818940653580648996751578445592108857869022354817709567451965454606644916482957148010721653832704440889872537683083300059880457492163043717488680433312520823631075725817084260419271021549135787166255630723740505986382090819352241569444699893996799317587488805663752463658859087746123731914786849984192320271435137612781870224894203522806935831928146673001491561362949825001389853738469494302391885387882247534152272187031496088430098321134217466945342574874517730914778195365625648355331563636387091973868651298887426258548999273163676861313405660165752016483906834711514961278483929885255489587774462816011974266032995935245780337531451738405829272785608504686084564784921216256817477831603459928254068447252836428706486579174655688993116913042946373916364081230795876740787901200246573961740696994057038201072469536242102787090549909526189754153492935300075519190475256372762797265568317082639592798007477341685522040794978668786570180111708917989145148059208757820143358565224290531600404294884898121032123429983081290682356491900700773235969009190890996307656859969755341615681860890243843395852644230018041499448610672600704667188016173952654435613689258970594700945137830779439990175760437059219645856659221643810620606899132298100021662912041430680013959688855608500373551013768363830148931068337925648225203443375670462162215079282553242695087055920032155586633517129306002484719619664588092424912513967868670831552186950749501774487165922211428940083358491994155138145024946422039393423474895064979764161563797887387083801677384675705873101032003902675892285914410358217358438395302698606867911460910543931535724967410719470136580949371688986291252346219845413708488225474069557246899771655555023312341612494735376304330638131363236904261350903852226490202978270836712434263407011082398222823664335087123950405023336815921278075495637713209833550541259836021912272338129557887225160349361677644562655477992059861646453085490798022218771658202221586157534228517959266459381253827789609196834108454834627626178477620464323472494513249471963760040393242857996193272411099136830219553788276876697551924614945666766480534672121005075351251455196703070528485174635566625339021173265133087345737659979604841924096564316200225078491883479972056958710609770635415320629307722379372615998758330372092523444613839614230788620598995157847565950661477851227695579960540685514284262179017799410779158137606980636802746747570895989652160611770238700302192752415444786767151841139878094632189306635056532638880111557446529322785316337127011788346092867825589363987190978987954868410335112333146429884786869030924546272671443282208449885551318834130649454183592399097513667846000828850611527920810565050805734960115855571387077597360721236988918500007200189361709498668406962500748594698580499910348201658202879112024004458196438439250866591861402942224343061777817289657514535442773817647431923832567803548679615450350286394719063160421043632603203369153943129996031091425411598023909547934621433347597340629428169583822363232558590327507294362895381459979189149781832951050357162816954754192059454380126630716114244439539179314121167432932071687678226281837190673757839408244068053123010193070208282310568748340094320202422714150907113080087986772506593402338204555012609542564617673332633639984249792698096542452885442507700710744234280821325527254607164869423521417646709477156372798126249831168905367519163394383035015504605625560501080299723435374989766220372387778804728163199163778878094077716763325349203185187193506244802190461434024633427951845026343184401013837273736101914302956688266891699254241128946870362879935821076476245457294750426769957068001064599889755121578507658885505514321321565078439410771167891605792129993194069123926133472080824660496040023508684774346767251590964169647433357063035928671331543408344209058762526398615970813853985775980748494915583133305350923202435816714734366263811013636438388603113751750114107099017407428950749278937877158083196955874437354333515154705740094194045980843330241971562849377141208633216762635657415759032389920182054088445216587921743064943943563348852578335057507217420231279202093951245576392478790775668559829131660980584850270385236942093811597564938572902597306181057200790289832406231688791885623931141430381226848069179220188257517767796143680308456934204130294761139441592869459651369451304366554651984903043059387184507883856908009986147531314427820148478757346333545760278560573747878826099553183039647760373764527535414257199913251831271105394197034921929422929939707584427213716845417086763385859517697929155283854160064967759976595160032290237764189366176583141750532086347160111232398838494188448251848094963147537117709562902027507317953052930110385515646083117135593791327602064969806686022326892897810952120791752710216028727636908540877206296776671897173501285507596081248819794319474777085248199019658142404134394571737026829234198950668254087140949033966351053544610036838266280765575003538496556881618276465214310677250726040656718383635825475782650991190583991931863304930750160335645132486856694022487343934699122810695708889260576447556423119168882426950513120102942935468460626440999173572275507090068693408471873822021593301539969473598593915810862705691033245646719471271351943365327262031170102729264113517596812330631362095284397331791226992468922677730847081178458164094822968545792889721877707364638590405001940510214789627021835320461182700808692628842919505262369667067548458991052926828369237972021576932508514627670146539803818163615194835320755779380324596043324472306803208256317959969631232605383683046268074866383919196887150202099609152404118345111258453931225831378353505282223273369211940915726567504380174616160466431482043713081623422466663249816377551768968933550441508129835624715209087590346332230399857555486536587537360956408148673581166704338458974709274541499420444021397289960133812564569216891734326668537938019482749398475800267627639380158341353159816070536366401498646254013102950240922921930313835426514894344483798942237081617361925667995377641774362356654568895634509618121924526995110443043812008136245295964337177493558421618250787135728776100573273650554792010890673654705333662449000806716435180123253937105807317071839129337033900023249683402787667129965262795497296731329305457754619612962046784628079290882090511995602361456235861975073463464884695050010139594579353744706131730880387694816095782942566797124170245510707642762622421350142419475836803204607441832333729532205167125362185081899566817230410871691633686888328441493154611514941519692500387269809103432483859847137335893681433475732857853316587767236784253328182632671073696822778901268725776320526227088588990992778509177155850416258197907375571840492732865550811275478117691643200336439844548900652186014769673812438683264082212491880938028375072415225769184756862614634280351892895992982555004747060251634807122515618611912193172059305472008162416286213254352014093714365923796133200953202071040886459297915220145906428276844707867839366960638502172818238598976659414083615610917335956067067675619480456867919928540919524538828431738541382085907538377210642697578072740271656159603455963030764270713294007359270259078209772575330962715231250263008260827101900745385228866859685894376580845529930634294384617100427871657254117487050824160451154116004759310334040837154821528502811583858908020919018031581924827561675670787167164306712922554456241643939531540819674714139123998214065860238636676028781851054279106378872251762972432098925361624748861704816466384568816516093177160630517467755215138562312133339606730185203838074197116755757881587164493996398119566985783966216969442581821688442716115534154618670735276146585207886281339285244820194454015905241014502636517137812375958188367347557088855753408170672691589379314593295106709222714169749747948283217556365263871533349913836985010672254881958248154683341804242590898922161662292265346959962506845673867349849221112788500612407854372673310259123316228186639168808330568619758617291065379802080230517284588603332459652605395792929635546328947105830870414997930909578081660746643728735535477899342375107262235368116541545091668212844199554513788102821333471998077787740234920623590280388621111456524186872915107104004650201595886850443924662300809577259173249243763473392832514925811372298165023438179135890655937402987982586014516153346786378863284685680466401982098930060302337160111696550844080332814309031678612896998996039020003241884630205420062217801459888181231179372338420469987537052321307429886468412794762097280146447760680816514354550670833184623535604207289330900822406676002968224139424686316587883482431143913117143703121015161483161665152531282913950766430959091019430326004653315903921335135163485679196718867690604925955364993219610658758377433291528253115171961064599160622836542728243100339995458928776121274991535813462220161733649240648404975665509914423522566832407009785595037227684498253122985161385419163548834709244665926633874503198487859186359208931645718777933312950950296776031393603154793709526827197714026607973067263672795310766551663660725960391001429125438638999957632633196434526513098599051605134739198219559263787631237409224507512656496330768169429800004134670765481814985070326983066214766036428790348924764041905385927989149336028237437201249733759726574790595165600029507802725650030380164336634214887026756111023319697602466690080019322071781002613079293260584991706389271770981098622635848493906990836208762882540298038358522684065522078729464748245634166138101486302159714547862002530549140220777224805115478477472912212749373234449476060502205485583032318899410069346108400487258422684506203427291181226095204396155997042706478937020959092943290731145885364040471531512004690824466286604535972562958402664606355463266254930936640501309187505151094235034600185162116949811053736441646087614266648537184338599190061325829410753301051537610727831046716899832904307973264272904621331611636971544170646449137201430413069279928608158787168466520108450993479655420458630420629878017237016436423789127358439098668625285369663807806284477505737232394879708947930854226816917710062987702605279845883512939628397380931240174595650209948074153796299894961809487030739521035181109199995786907047413106425944518052770636342598439232758513600720025834896335587720966961497976657976898345359960457072779339016862412026337208929111129684217055911327323072820039144662262312377373221130176886134059189633562388420004278668382099976061834614038320223249207906809710434811960626269723391333953431342245011308894959913395751543955746634071107131968968723777431811148366411256629928080515910808984859821640551723396664561412167791193410150076098265494901328394516837176047936141725560286037130160918283623020012563070321781950795087935747937277944846734375695833498827005725950793769389018601991259432695789128390820658104244936686280185433797416329399473464039105294459468286270728289604442869441966761960160561508738695699762954218631456299499016415828786580227424664265580754724929723324568182723269638517798691919595832663540326376353641874435841309247973455931180324009390500313383678397592867185076261805624660382098768678922561372489546700271098274111469528963628819361953827234377579831508604040546556456985786853261297107840144678066799559843965097118293021117713275232250900839480371041506634537448244364785791928124632501780107302494195237535707166290167461118534934480255197597863447989541315866373725584481761092740662543862679376106843622498622781345870164300448889198816096176646624903386581400452954154273017835644704723494545450262375623680006033254640455212151783943721914575288957705909278182443152352201138919123800198677394579612764301555439080603566227348952690847472147941320410243386150225649935915998772953967138928920287592307653115354891049910475974895539208999378455045765970711285529970129499219329956945067464069501612553568103483567051754683872879101448626811317965516297169210909815907757979930584521262593428314953519964772863427360183441717372235824282992466168749795493330493673046442160158045795175860432075048171832335480103570238728219340742823255351064319567263120546207849632150336228218208606979070552537036274709819772669996997499072582882137177169710665647800772252611794050035958154453163386921800133752204054084942457481295883512647849325875494983471162869802821211244957748088659706232445141243675519748363277443028660919001772237280356095233069757647358513532996908056446236015240365887519394089429743470005263265621469640694007393214866158648666395237132055244733763852534954891549661511024417164660408406954612192238747010321920689557214535311102106658197376310483068350026810924536278938835861569243502230254862936469649539932499116238029381690920085622161417200868387918625904284398002908154646105769037371453119538015815860828475536468505672270477775383084424021751817398410936580477970466410795724949067735765015437222525900796867891258451852358530076412966138851026856245424619884640473490805220853698066613415692767427127195585129779215318128345357304489179269980968792323391894232168566562755881737822771584873372980785808628153185750104864002699124034214442712068635242814547808256054340120321596083441957272256659772789545190958751271386352098301145802834918901510531753122422068303552203857894112961341785180026551881760390450530452559107673318161163162805403331357908799931075696120403162925610791127880016827506261347470407522004745765677512265020429839432494322123084131254483381759641654119325177371773896941504931076723357728446690589198766726840444998280037825145801840593153742960117811751040776768169843705110336611139012954936151593784084324701277081915739636760093949811507564382470411354418044112383495664958266162789261131152336815709972559337193942738053341206754144263658325679893782944588215213275705424593786338215582648415641335887206243442700112104509782402530850352231279723578997722932593600604715450900303392426342784676303460453344028903392451089818493587262493335860318650390334419512699017087243374314045971559226316827005437645922163287868944278812164936494012791247837549378568048152254974133531646234874108457023778959616705723451149777799668519498448323546631993205931501866160397293805571701784336125129935013486594652851332611721134511181953117734362018858927280236390073579309097628124554898022721133815505206006451114036748615270540185466500381162149309792077497705243169474458356005829097881023883939861506492180314084832458870371705084459594891334557504959925158707464815545034566589767860880117173141774508966744877359221059436234720118693668432607694060081591517217743650456149835133242460662051454610426366645442630937198777374632256108967944616951866530880209806944955018977661577777641238831912899443298392384117872767756171362970012631721325582896766632817908029070205302427161449246521200226463254328248235022846131669692767769995982320223402451537145061598471558706229668039287360910893968082208417544619852942483883393957748974164837229521879229039320011601254142561531503075827157826713653018462649487551986635270868429677935428713633202062051678095246339454651568299731886839035136397931887696036337858654600624338409086463619717262429972636234314923192319717216415243923759128184057660995986555010648872590814542542247689749376219625766502225467617949597147681839877882433022407115561700143768977624914439358319491071364720906151693143367091914162003738700699329595700727537661642167973635101833069165723922352005322616688560395787107711455660390740016523322214942548649964996096730287372431122361363743092924926694835014214340344904565780745156325525144857326070248264736678922835863037518631423603070172830113532422325763356511267555607606322075507350083060795203990337979989013337547305807504044770165554378469788066204635902290915823205292989174159794571462143640870234026827655651982174386119450125433604360062966493469895853703006102411795230665918752077349722205930800236794438491352341741869268631593936848327460463283084804473012090079468568317228590302299778821726689628201789810380297350449313907537728663901246095186023193923260301648817893240017022031503252259066946467823814726497791439800055353802812171380776303365777451940823242918198442596187381659310194421711672117679195867618388992589585939285059154326272290455076389002825071313549548535973438324612196799194185180118416564073944019307692043508273706635981478682657914312308377177431141251707232790620421445093422891523442420201567925938537283158759890139907820893344891303823648929447850720194312879071536082009344172128977972733827564104177477070464042246185829030791858642954997473371774313822452989606668330373471431490147649305636099220645906750170890900960088286234661108281893486659927564505617902071224739596920290856246691008231569278817847728165962540978599957864437544161904735385996579660386603745269636530266901772224162678112784151260505087643828718033366166834043098527810163715717970818613747513652045312102432037733138216092647475501911545260192543858685227533672057298701352940197903710282249954660674804291579087213725328998827772869848992977935251573461571502729939750135713981646502865760782547208977700912895738767593185067674046333857338070534113558706045912211081710517847045067549100212655010851156822934495539837020621216119308357937712417876107338944722611682282358130053692001224730743972566205963582458282807517745193160939961288940806670353546138839239959485193397732986828988156494498958281756186842277460437276516318791361350492966708574642643165382199630689579901023594351498751060133549657374277975792617237956134015894997127288059998723297786505402341218893945400644033076378639214034805850241207196848567366701012048575571163203833960306954228737818597095271067575548470139151809583194212537204552761657625975063122789332091051444145294039507989559324368638802879473086289796311508541189833537060951219439710254983996464919993706262618175801928018830860323494774230803934736510055803394626480900252313591102003118267605870918730812189677475286840776816304292480649263949780864680301925452490866677630207963620666450086967965179244985209883299048513730567847766520786394611579051258264104316424951786475670080057060945993613895534706648259523290320248554525678571371704911698164803523656487059275322709083443401094108879906924489980433061367370652903029509220058173849357128230561060735454717187421682202296116356381000944080671582912212551397905473046545834952724185895946085757297499086770314658279290419779600375063128981408480701178953542541307978642243133880807776650814227657634450179322640324545870611222546954729895481444014585766566485859671211762442763810150587186719582372066998938304969963928146813777724187937399296953634019737838929971213950522772512801532645640309368532719123747934388442625119064288863814478679772501053272256783642185183695029657071482590746889734058131706640552530568478055924249361638478457637002377561318710465652906215201292686721776449454513711388250853616192082417838451904587536240547236182884386121491508091376869038857491677719664071204678935950294062384141165001802030014949621966768337441051852559202655866842084007818265519916221513550213496992113928206105542739559981168633565322626918034769559181752460877314944723678344321924129790205426339464985118830516320890029297952726041133859800505940268693688743528511637065016148897643439900073191915137728870162069944566605742619869352718297175248545696192554899569159844872994078384243143630176105130841466908869667552626860691029461489069098259576740856215092415338229644576702797194822000703467155218858673589331281888281832295835488233027850974982332391549690709905329156549484436478088193681922599577179768686481018243734816699329912213120874426426571548134404451845990236922445890132082249127499563747601623385069724934102686857091913841682243561895338621485982824840869371000379726712122886824530158738184859772748796451737764869135642926345878911367472338305117652930346182128627025574896684381909323737850915854561652564464869312544271291223760889195549972466583119505125077590871512498644681624308565766483629688193168907109542217031088167166501936891521522463465563081251063573923361799417962546378657596517670007142506449430962822237506440864891418297878180892140905086042340604885518458201731608106722680115141680060538689045396218845423893623330135606385653578674804338505491179325727602412409112913502126450771545326694652730326189275075679077826000123521671440936751275179841817810054882777203891157278472102417442589360552074311504657128519141564175598924328312549008825625771432599887732043324142868373305324594712101712470417097486135286602466439457720642062772922993501254340513009987759766954154139216133000005810832184704227128735047229651431101491288986984582874716654454713827426961137288151492307555098718333070906426751005277153382750092653227920081419709760838964561747215153812499339458097151566602142164588140099464315422162480909855624259675591195670897696188250471991592146537650244331903251983052007453643165888721431967522524168595030647938915849108378018510282265042672201923116746030389647520223104065375049918230902889694588851356560259235953093912892433861835624203220294039821452747223197828826146441393784032586583457088806465365360947941970742487953673619034086480072914706628473520650691516513098473798407157083380394721927490969503950478912270345228401962847725460034595809714275717511592166662490210327436723980485413166466076804027029458543661185403386860140321107954919893790035315731018655332212390453572765760616583814992068359989282306907519663414614145299354968270595862466875818204940754311070459131657970515066548193166826538317652352656869504728677635175463030476650130122461527604543291449990290651971429543042007241754895653735853269054847685753453791988294994646945562367329943021289294803084282584885876963115204604443269356487126188603240707039096456294886267601312626037611913172428269997443951600379429129604559473691951892783966200256447258751582737880506267413659594709713419304323556713137582456559561855980100616958542876610193623177730245953733191223969203134891557676380997244039550296134642791027462064937036915289020016407001071306530957960847013998197894506678058733499488698213645836876790952711961362650773575168273801071448745135544555398513831275061678022218727958062260092509614942500927183204743291674525052031102406822342895153260499241524507245513435997608201948895719376161253149966442389702523526822165359781010122373999136058694152537417085948548786629794881014006408940062121946621538379313059060966537523566967505755359986378379564705085033749862335697337144268234980486021423670185033289608406896285686885553170408201086334814994577760569898192610690987679890979393690383357911654682693968380183524072799865672321776942837486814579875242723469219753147164682654607659168156450250177180396101437450238243077947779084763337191035802300494192587354647706569888082345679396693304333872224551856131340286436095358560403688646456626434086907953343812091819470709243913609280049700712447896840867086038852941075947720784042501750149561279880592455710642831141705996667643291345726323038221726800467723616067033325482628784053629662909769125265959160021546564991635820948353704908823842915970061095698531826878833841466220068888615112812488413082647805802371136697327871530211214042044575040510070268859546002670187111481993348966743342453045780203828403375777652818520952657348602262923021484569045254067279735276893175881010779570069654525918311883994715277050893662589725979256526338335365713579110207670480648330896540266315033356474759298694668671647544980239892716847294500179237867293427562684522822160570701161318891670739713292614949882196959029781830511210516014496379342553731130432354329689720927093509902172162958644067001054308645446124061488936133425374267878745026769981078416113620269392842345372292962348915792418198627506604903102419858960110015628266206646066816099083637081005243897729548744162795077600359808362149900344644787672941738044040356528450260748756793279544074546945225343307166398576245045449300016490414748225267152731266389496092089005797197571763947163475930679783475855797502496445179145132745240466809006407976792595996472926714995826339883500504348314039046156487818888135434235665788452629487909047201056445114114665003423937911421464452860881271730633264715791036621079070739445054946535031263780498756197993823820242990289740154840420352401931769791250141707220065613872916962148614065997457212776519917253080507354511554035900644168005296603690761780146745310843713028289428271866651683212343436168868466478866156423430699947896653525509989912267412310977618034699486819662566728076789955365843128521254247228031914361766188706288259317154980253095091803290199474385366464090828657313128701083525511310029184700174270268723865708423468954936381700561695191030684613307145710682338971044409114900792636798682749503587080391268422981233706504528948553057095305410285449680709406514427746823422600429271039504392997449904913691623862158520296785599744074141327975094309026404354202888852547048462356504726483797198008089527898123084697731598520249185482586335331903645778176691709157886894623232854632670605715764951005838565489643868247739570892094367473218452391084295838002365444940287423650678352109675267379947499763779404567783787829045329303800389182930056609803242016192951749756847485470840606942430190658629386653005853603202377972580103829073217739535158364020802228287163432347012808547882432234874949152178214623095035516639046698843897447265669454575211356804467550306722936017839123966356894918176357672824246546957532753527201636653306461357958413633585092732332943351731048854408461817767214677676196727424520367073838442149768960774962799071150830732713035438456217792211656574909909059350172037891066897081459619011936247634720543156054582511084792572071167973909998995474048027296004500947658852961763967741360912445538982276265700959338771057899896446706471045720959125682175198319883741423234847226120273248012762629316362891258185949098966095106351792974204648917696084921139047156874507061489179309816747311437414326428518888899484465165776928623008824737320589385796687556386472707367784210475911325475173077254481454360371498847707293864218806175621129340013125902971058134651914685777211550368348690836594080415760399567104062925858801150374194230568062339709714638607694517017199786364726501669586586569056601885042339932326567869310610877859816553636037149830514776151168315965085011885315732786685883618856373670621878325348119935064819338825921981735751534307598585451195259664756004128169421017368877224926777714885844113991622311896131537268636013280289490811547237346212946558687404669889807232543144288481077208894306594329095874994424212050449980137154969740422191817966845182266319059386210400595650849398758067160204022347668950962514595107772008525079915007540121083534190370587093033818970899493518405824274964787780237032391546785623243805342543545489880629342558518338663072773041072376340994546693135676712750120711769416135998791920511622961433549415435661523865352125944354959739396797097513413554618327667303289404967834005774143639185989889470411511266805870271783234044840758685053610172050030873279882224891782963854185046422772720488424355125037468657103544208177692220338475941024443656794335211483631464845783042236905380102214689270481743706023790066336366786596386821276057274019284767070824647367103009283940431219486254815412383552328599040892019051942907163999439152007731330419237575980566885532478797590889628363536195511891857550317354746735053091771733340578987427607501529890476472105890121901271785175466443022325596297111937055552888839565770576165739257977035244923284144642594353238483334939801009149080085478093977752886073366413790461909999925750215098708703080647156266016333776151201409275849884807103653276598163515377948019551992109711363680071362162107608107669781093361571210978836178261245943414610263667002400445710452920353484754275370280227594630467171138293258058620084423271633663896808645300913116368836802904526079028005320233339540066118398432851260271860493555238868141014129367807361386876005527366314740159635384016261117681570122231078571383683057644798804042701716913672675184516672970590930354178466973375703270076805386720738765531167485365339659874674139304899886240886741212207568136274420777663618895475801636978129664380511957267876444431302419608830599206243866873266556677969499542452693380852665546598946746005887835582836406554102792111006257863187827544043550036052684175331437500014387641812044007865204362597333400003450481424549244530909902076209014445418781736388027234820442693917794775668302618827422320652292190354336807938722208270190003628237815432790434274341672764652254208761230048227273552564148217157681006825285002772806942911378198641037635127895101709506543207009181853817387953201503229048187672273095147311179481442236837212445689409922591542362089094714028626277875613486799868921780904026540792178144453389728222858865278561806705135193650252866464164589991201319288946672765280759370168162261753513466043854834979057648330237553993062925635425266329743308044287385085296231155907781096755949939333524535894439864960770997957278924185050493488718253760899804503296009275264222870181481275969662311830087377139813147877822233105172218515825414227630377467323942505658341854647335738924159192632961690667374046267928678826163849622270698364004257265658595324957011574551823902633283222934090419171213926530018336328414179078235210547598603108628902849801821062618883210038965893818970284156196709957228644083231576987266953885934835633634170460212716688829954520709014802543173716283419536171089865807551138627906470858641837252110282424182238861475994453817018316969268397544988491548111251767801435186496002979398656269989260601944300272742657388594300128855599877489052263203343164847599534118862921127281355933279353829520081303142631753980900947919129584694927882863182804198519530075860389177379758980590843014005101800323430916973520930172951371284481684345799926081543698317772879408821987717611934308135674440149003470152907564987384521315832323952515856522738600333069423438048971454912090909228180195150456555163385203447767542276386656342053871430925049554393160766780763550382210911723015747543350246067227867528746645795604805918997611389527078370758904651345501318712889215507473599852082190539943508051945729922985179674089351740825926657108981670161701449601470509116730446873175340292337864088961674367733564169527425352199868890189662023693395107539582952931697452766002892420704921982181434850854834814933195318188559160540334888245495606945225472532982203749164325801546901663116448587645008147173291058684217226175543054244102196584583494586217882815890900772090404896936252921098713493626765752312080409747253274421253123385689048450109452982682532390892485037642945308552251698291514173842100349438243578156575266636523004967101082670326157628231514042273797680684920375777539043384414525091697058674468598981528554315223712591837119923615597749122870509126694121964660336356734080765304317114537937773750628793693167680912362957920008134693082787899009029330714199215163274851659236103253732936669695270315064806880329670742615814338155959830310060991205787757096185275439633587440511856562730938201083980421419153265776728565494463880567420934141026509271100052385797358399084934155563613720943642956566680931305998419995824148752462657732592642711911854600309611256395846217840395785886121526145173045797242786870823184109199769912439656066627276975389286356595137071991308838567598651510241456442358989453234790564585630896576796655643026337830038408511440779598577620860875799257273390008328954805557110970986993584631068503608705108390961646902771673196483189965288388184228120038130071643438521434315019868300519470513706127856203610930499869936541872708511598117857114494214254649342110529111238734824039736920859883368480123170943439113294048532248783483289364151864408999603448301282327084073137272007560391737799233826630526850009305938316706780761748588275412913971845547953558827272124119230674462780611191986646955893021403247442357686686799852820165736092220226196893326003619012352624332467906156429367712940952950974783643435426347188518948178887706080971639182062914798190042851452465674411607708954350465082043928282097428603873712540141334129041529549372351414774806285530099691531159892728126061545000219876823006245711370915566362387349495549326686274592759147864315513539641213745825305871739752234874822414436931895723226639304884342892395912314656059632271529818538440244681934301252587489684212384412259974746518384615443665553704333322420781785346601970423050117295147451261039764210277141465469535722841537224856148050526614909644595563181035407228060790343484798066004960192051212757656053249767641727870222661751441596775240731767603957769896282479183287629482134243741575632916322085253402504692197243470630798986020226892887570816937877317268303800309637494035559382093802328851664889908639209115133239266679661786052562424731039997793245739162394329411824812270892367923535696509219161639284197482019351620701902591549598219464380296631299004204149722948820212789736719394395699741361850506422670069205095414905300817016859522249440547444096138809692701076216450278157576623543318525954631337813884770493063109722100801571702470991496967145416093987296682751172766597451119525108011379935081657074652101222153699291344567671561250371135457575396431903498238197356801191212507854189770569677172518078861241154284097907107681143130556740857544177041965845464598346959904657493034465499685446607810494479677585999864985342291227677066421411417730510963752512274753825018358920703444263630990826377288533619885415869618249926188115876184606270696378012025242721831963637737442439637229973827127120302129187617221470976703535673994179690790616798186377030072826563159397770726442241556076073261059241553967960629551759238633873062679103205407474537101119643844256263499200063947951112868874798238058105275019447628167296268275781600796585003791617494558591864963601548155459182338796304920901109072101621739817136725497935527378267358473634383010279280918081892633811183855579362078800907190451711922666095959608528013105146661941081454121801690447495772156140307195782752322289685995266072563757646600482414528229119208526749207849145909977435540424092478864563812613376987964307341544850812008706204120756661515938224596889890959727103478517612669250142228801459104934440889972690839017454386062429742439464559489728293759954478469068962014460985730901094981985284498752848199825867202925444263053332840836032748041237985824163646618232455517028932884879930616941955818444362234260691288345202155556443493073981824235726491531382534632204143042828051434520578105905331162051655113536190993792752940039235743048506723745553503927022127581937931761396263868046885230701023741801360481026575846712350273417939818143268288680594681563618367030526433377345179268346177440985588570016582155992382096338071217806569194609980653928637750751690145404916614683738978848727350993858030296088503512255345726745816291548607972604413726990494374040333741510648162713379637198614200651421210007949881330006156451324995895509595589326292970471085122070687425220925457558687817743747940278873600253096898924239805405836001416681967940864403769397148896616812215066215642760972774471729652950433509346942949538948368324225030590372787386711160607688871201498664069691989337416969870492566624498552108962896329543573064237490985251750947830626828971532752265664091727390371753267517847841142127968549083586370920242367840735094355074592003840242754298200201110310185180229805829916535659717586517028393194548791096729645982002432163001924047848377982783415471084464957503223780072125999288601885242565852596810950986218827160873291200923538399171955183284713398215497825908157048325423527630351477939089452357514104825042551389543694138593525285495009868372695128259391290160557132681991997055185013934009286058592817343148767844179202402975198389265477902918945725358100158030082181779309085005601991388791952459068304101519450142077457296201488664707930332569046415425640593993167620322478843190900236057756124186576678874962747263842829309954643424348531087011527117906468800602006227658580335113036417270255030451149573954276757824798001645941818804110203205991048306353344806918592888291189028895294566623282600105856304388986887033170603844822456868561204269716023333820531386306248744960573604765361564629109359901972616387618365550565149452198734002727503111035016754045264817658899043863923335608797504081358867771529118420167009489635839670117736892256068571312168030081303563216282479285336125155778055757093566562510215799694025570708830716841894883967318685476673259507696828118346417124874752447308187991686686202354559253328175001179108595609582991293913172309716322095291644172190446099849235692215130582773881121750813922701225735146248349990996391466451519932217047346162909058270036715572304474378900762413207088328456557038578335669183623699607133273811503218095321479774087641133933260210798296790912148475540612855858810369821278177845003572189922744438120392139255468328625670351785727280363645772661264342040967189307537179441604852012629379073679968736654176831005296362595604131742626324792654724126359193848283270068839085726603689567015409978710222166882230873616129746251668044358063803469110980041612423088413394297672450357760645871681974430874559787691889326147106243845913704745734662205751130814933916817382655543089637793124696208946829928371795602041775029961342502480211558711630115732920722141661397500083560638462761798775406187694909214683586114827239206008329497028058854628307810734973643772659790961975122515761479404313742084307487263119888387818353211103106196458888720988527457394939847589686838640463110489942079868611171639802542364805632657445896442846084143384094027532362380857618371313854877865767247840290569281194608730230406912072808470848412241196334001380523494718106551279939921351319933415504416079423768158228998831093627836531577608453861670565868241390815018407891667905390237745668650674257209854494640553280403294440232769510452143792096462512456566066339375816030773092249336719117296234762102714634154327339102160565476962399076079014087861819958499511952974589100541229683862534760396800492933939567873646482270823372198874534696424826424882018504896573406453776197568249638364504284048382348392878252237891703453084485448731862364088361216223938985047056898257956905977688132966166173486091666839975429006534961993153459959881882635540128351209855161574171658474758140799353316613317472862115668075554569168806103758597426000046665550850574446596024297193215026710517122843552930092555873914687919358977560891820084352453118862740140268794623407057941284961259100916504603975588192611162878891092170417886901765333758780947529857963359845608231936012862397577780140405850629668001960083272835286194293391542273292627877896979478092638242512407966258100361166754297071662884766685086880552859997651470651266576719652726117846019628553967259290282099412534428045767620433499007732244897328669039104668533388486441643968057386533054824609968865584963961019148389178243955183291569748621401059364043660602741768412368201205482487605876708773526642856146621899940683019936708761563720705149600394444789036933453839985502236815858294017374669621910783627833365938063063201094746313588583911269564898367732204163791468993227026212159988907306673917552682851915470321283525909289000114327322870948931648980036319984454023124160371502698816599158602295283304432040963134492698490678338534908303168274237374478436809913835668185159587857920812385089976602442519763394253761551284716216297004888484422337259229275950777273451607017165808714146252904361664746551793742381317401261467538963197827976119662450684253957000429266182927983590815307821921871834689996716840706189525118482563748892619226457403150510706584574856846076011573098857920571103819454314711021593657022833938060154971168870647926503721735117471852950205662880389054945103393942499525554395312162046738825038146629719747206681213643272932944000926544012583973907955762755646278325010899718443745083374298445974853658190300721814644435040572585814172266450816579299971281757548981565704384778023552057435635094424270129573352837400920077163352931559721066289702944790634273709572433668375319047691949204383924748029120837205132626302980854053267616290117737089098188743785943657729933086149836124210414327069720710692342434968828683583276933921353082913167062064931023908831108488957274061677679605659586075003072245274944366786198743742291892185859359920301816434600466458102499605931853921326073659691415023138530879871456619738264566136716255793089815409205764181356917641603668621119798479044923187702101338777626211625211954905939169934157148936537533289082567336779112900167295519130856180060285142416425961631385344276105262947186914609863061952032438812804478040258220794187991192523696204936848708610324269960208488749182384447060562643068587867205928462839397322361615712936202673512368148700576762674433137324562291526758601604243007401674218372973229879754197147893509169618043638622497039561219448192897227516801111922713797843967121370266141579411712225678833199236081910672332347468097839797017361587100416613487213738625624110807384064