1684395276952635553271413356838559659482856652651441241815991185921324753538634257999963319342376679164663729415388872477966298128474128781433772632351133922236143492837956189481457316188768229737192888271343747849193178114193683822549176119155285236465129241917638577393614393474191951234656891224941868198676318171135816284197558572863118625569318832554352772231351735282528491442956488913651456187779199513998346361351411453397799156377835574478622522175528178128142413789473484264244135729645124617282167211726626146232827139825628211467358834651345314634493158724952219755882873257268196394455572232957347725741111736927341877776577721356832524858142174981973678925177275339392289454397552415682859279172898857557377911963212194657211729627258981935884437361879445543114287996138417369921825363842811663533897839624217938115664149363325738184434974127158529855774238432376811789934657815725566769273184287659775947832896271526175164899541332229637212855269523477739895717961526524794334629624236939443627629186184994511491961982215277326467182864393944838883629888478484789737651411798719389298811588946424178526911893743329925879925553822335923924943269357733355273148125679624331831443293928159731127689762825769117366885894319982335216632255845443998377917581875823443733474721851229323885756711628253527625256217355751952237255355938228319599819993113864343261567916113244647639645712181445495962557473958734379278299855137173247359113592112161378849536935699532624825562725957521577646495636162446928239223628154375554726824857595596784555119828115874469373489247563215553513342735353838675667985361528688397346559717258349333765153882832869942641828713941221843462219243494537467543729152342416457643523926644191495943523311991712854575992191324911959488571522846213491249835981736479848372761728418534523322625624791914686523167669794526648536724561611733361436592273643222121743253457533273366923235447957965265325435287228843439689754918881848657138352524752799693356399728899637263669614287495118268633129463788138322114544336534169688537528915949444239321929285944526291321823563351514774571344163595898117812276355943175346375162855427656759347911249295632734641962229452762791121395569364443961282337439653845267118434945345453844818414558992124364876314648322558254575761352542447194356191436546532641677578332162961693597596356361122911511668839588984163816263215981491663514269144424961575384468766672242638758677764142752743493434896452919982821489782638398714528175118313452382191563272151471126557948813966726567263688531569478181725348284156529143615543655234895783359922587652322532123932374136591134738576884761434918512253655242413752895679427893898254482252517826312831367745213597691876528553212298278333479717899478849592631266481969418865337421953495397455184765992316877436174719354953436845877823262719648632183128872648719466577876368339121387419225639464653694476777423319913933193212776723616977811492524356428834425971536494266433946451455257829517714142119519715861696838632854324877238143892532169353285557186164919236146469375435515974622615673871666148568197819216817428914797614313961527692321572442416523521552534967426852951983581575129932348893858514575959481186797927648914955714499443533117931764541225839892512968772164529438633553995232421866792372928743293882555292591276995278497499876325717952254296223218264476277462195339418717713364821111696152864912236289451732189135158795562726745873446865628629179115799833215585637299537312537363981124229213182145828754378154148183859981818229228728482146466924191929125218128258864775955978199221997425133572173543227322551889532132421344774347217635331279886948475924957876716172826617164274547585497427946164661675116712656285622176926229422727588114487573383378664574196467778953977751325291664732111812523811863755452543715323437794175133513264939265971354541575149215349149421988693548667835142385925947753978711514216383453122561315735844882719528594483832336323896519436846183463889362468269284677945394875583966839945452631752326422621466245121353766686214382914136334635514776242315647589929411141918383547359336327988215355676756561535772595491998724993386413864127931421212371696672585292383113393695993539124556735136984172412537829323332736586847524549649167337368854689481936573358244732652934231338675969638539834367479684439113615155126747912468114698271275235441844567781449728566232366568148727867874781527322695167841816669717886919999667232264223115656371294681648576866746853114768196413855875735597412193332138349111775864691472463264586571738138794273421881591725891468851762344519885715498742374682364318429238152423577137359394471131494263114245427229195733861583511411381717574692118567962118111429499498948112422661141377625937318151818844511827167899389574627983981175422728723119898846375844688892181196986582548743647837544746712181661845466258397511938415675641119363183288428632423132223345777271245221951886638321354952914637142149582354956448223185497349279395448926138922486954494245486294696354119954912484288169943565913783295992334328945872952324435331171527163735813698783547742631891828222682227661191592614228124134332736536724884929985731223578523667255184662985254879698616552413297657826947134437127886541674321746598815259181293368462529692931957314554519327218228421336811931369673748394475845935981751156837693982887467991996446172188174611374775939571575254237847135635888228457571622341742589512924631575924786758153521919415261794339274916233666391194182379833672794112652372331557224671978295355519335339219154949676357614797729832917687161957347458755389961818793988236913111611767835869429489316463262945785376926279379385342683128242966951758567121824198145111277669561891143159833385915844847736247378389467292521156852436464896625488614381392914831835782337438173578375841232161355191248275716327532389334538525674843555822295134119352126219315362143496886576399935523425512517822783471838934455199342633532723417478795172627534678684273173236711551242291545939468978631587616561254511745859658669163197392985646958983827827736444858857372111945885253297845849945985726864216486858122413192374891977225235927554221621694213156417789837942486645399266912243135331498983285588726452758549931552661678278416312663574411344329942136646262141518817736122922531276621934688219929833556139239247894198397963489352659345444218624219531613594853145267256318269153658148138565675218259468593661873533244341881837385665859761819127562157679531497139715168612585474674754881447529284875661254721314592792188452261961373591434689388389628512252715579994672785318328679999879915122269284495138681836157161871574429495542726747673944315259799789148965162623643864628825154572727857643331345242457824486478956191173256497976952985931791252829288654553134671742616396538942823123285336368612163115412881316198561286394454627651528362134467515329264995333871413722812189858448395813251445673259322581187231827568849258811815116243424386362256139348214191535983171328439296253893371486644479842749564267456971835622215994438841869775841841783559522732391226541932397617523673133415885587743318756441778495115746257848461852266122357485643363338488637155231164939857592785286262274324119747517129383289322948671284951973122391216793844453792871129844924726487117365551911149116287295944838579825437873921872941423493327972438711785417651347821766919382532495332384979224249232385655667521375978587983183997363355345834221244289452472418512494414165938621714595634861339678766339933145187935831447542218753463523372953565121928499412237925638693463911913249639527823448813859911369741341984389212856663449189647212248118384386975346365451454661926882131427421568693233147489326456198918859869573615811519736177882821662261847639394544732552169836162439525728249137523243585998472669483721977169981499426679312727246735364691245227639489992773194284879632527125318879322468812778679898848733439223875396634564883377364556112367253388324234719274561834781551234586271786884881254927242335369979471891666494661332469992459652598568382824716773187315335894442444366224792518211473725155588559942513333919537865867369981617253958528344631839189617379394153284264619621853959739488524793482135731475171341454861814632176178552194443178647333163615881656513428658716472821546982343111952283734796162736319619939436272683266652295148432996223887287427345167524226316638476283111651161351354111457437429451159688556168345275926314832176238614982146933588712417512332915858144871612165646678226993285619668342418488517656634292554328498229813518521515343149267273185594683473836853187173914688349281297252152929889659757879137577321613254561699238595471266825251678554841197686133525413861466585464122929212941723118871335885242146656532899913861137497533644571727277843588414687976969919993955291189976419944767411328433696842111679479379336973259683517489932253981357932282217462499721637229559782792489613619739428968928418861627293219933951317171526852126731969727691999927345566913671769718791958469867787114397361237273195244535679752688835754782859742856994191275958111398117761468896447733248673253145111228618254391236714838921582668167946618293324867297188381635717586996152297867612893713473925222193299752898589746212922317497268278423493943461954592914335149182779312792372873526498616154916368367268513574159171263443332772182785551451715675414161717298596555281638111951943717588327429383973649137916634348162721424984452735265319476622835821256142884166667915629535476566449921745795771321782422633967742925325483589266816379184742881273331247375573311725236514933185318184811149756385132423263933182142322712239799421642291895629626146384254866824313366624461512355888325244761391986476639978541787993269636918356794485114782472416586564519422182519715339732133661621294575122142589821558132396992236573349741169833784453636549942388138616764361195572672174381249731238844184111177741995922711429713894336288328499412632212312367754681623693718349571643715299781437981252369543371921554544622526921747843548244157512863468162212448193192383513769273478985725187895944781244175426758727243323439995525593595373367691627137364449941923586389628696125167196767733121297164253984425837134546419454555851973428474767576736347351125983387116256997194736516536145284356632213135947246563253368271843845167174148618753242816274957591635677352721994111416753731266894422273199431469244155922361187631799355345188341552746289228526196856127249542193642942791194896592547413954242144342165797356874459165841164667199238277375566181841363543267898368938151231769852332543628843547661724291393662423571549868974813987336968661659161611947544594221268259881335531355484126556918295312683757996553546244652161962671533243516973315467365513996234557224725846231657457321349256793592898423692232949156132928169198671485936176696764494523523923778944946957475516263186433318363594766811424949758745119587457815368681614152684739956452284899227325591215633134711929639731429766541488256324142838364669831218956257122272659595568175549725125361515712143993679713574954431885557185414893415929335649865128535546417154814721957467584665223435254562435721394213425454662383969549291677553186128732136395362638919892662117511144427125596799716213822341782464156761465651158798253554289932953322211267135981533617547737453552222976161857287678749836352636667134547811741298836552884698672615692698976927912496378566173666198583174774443744621982465681582944836874335981626332616725974825514772879418627965315856615557212146677929728662253988696211174749599772219595694155434458812535688228873369169626784273815248388741976264471127439643912588457413283452453582819374742239855473252699666912593171343647714522326335246432266665729387269618412852169397747146721217233424282254128522965423239545982511754819622967572125532137734232888983763331544488336685875854261559325966399422975765735136362545454127666341131294515993725418891149516121935364171744439666676417222146383354984989149137361474531688561282965539293486241225546333356675934899714515641561427679985174572594255395258427837146918555162399968994264794297427128874935734492961919192574429532828819767466433174872568883369985622745614988986262785935163193715475669359243637154653966316686931912526574288317253148244196197972233377977328313933923717675744442487982193651825782277375491811862976273481167436371211927458454736847945191986724438473521657895477862121929111512329199676581814921179817537645156725657798814757111214453894631634267286987411295473848684979656549427968399153278854735288243898722518553481365252931376889547614781816852979923477434157469138899781185146192732471139859323322274231198898719516532427575482948548614175772943739538355123213745141626483982971459959281654379224633151538334992495359364613952923477989988386176496444316619368429522417592328581795527941218272256981415122249342144671196537413865715867929937638747913781174482539148452783294415143815692523959641272349651251525761847142782483219572774817148895363839111249529956514581756563896287227254415195696139587358128273851922431123396322144567992118322456493819317377935859451745313455813117472766641118332426152338434844375395141731872259422165673269385149388782675574671497326988236614389657573694592733312862918281998415627349492236859387523352932221355916193642646154921429112593441917218328138922581444822836717664428771923312519326737231454112225735935921161461346421869694796172226761944366164457494972516628942726415729182257976226962746773851371584491831655496193128769946585955123396614873292584597651291569373672614645758762217749243371148169758717274863754294297638636782342496216114169246958775895838276965515159521842576211446692571366613876521491162421617149936482974321128634875373999983122832736335989146842137233776656386159251573235533629842147383876868598455691555143842141942683358883721457393741722399331448251333577271554853251371329974216857481645441165794768134912755948164987344483951146473486193198512397353374743967314729986242172587286963838937133255492535169377591219934375832651152731171411356959938726724293799129131344487173669696734496983675941326112369614347458268557877355628862353511226436234611141659777564983418487121617184779612874859296926975286454646492526975132534487342255184656556269896639933133126117933195758573644895241852362487987581224452578156944939665635687872381887298748655749582918277952454498553782314731427183393745425257455773678784988597234321226139613298186984229242871562881315437424557633398367888882878834143415265345889845731956473464175522145194276777542313691278218177546138853525219228728924956914781212522966265935639648757554683895743621972582921322792953498543741271554119259939347781448395771415552967131193464919538187257155951318117323726283215352338341346228219893268372622452864242374893148644724981432358484479277281687363715658975152416499132288473133718617344657181882467463415136394151944835743628417166627761158566271669712323154227653937621933831792685569166422887964474445489165124845211591787442458924918949644756997843142933557539779444538621726886256365643442892424827858214573849785558152511644322268854489686645731652678371134916171151447163792442822664193939131366395354378652922733742839318953333477712237385138122661116978313345738558643994183227695726279551367661157351928481947145497812526249319521365394916872246216478364185587441169849735391512542572696136866228679944221514839911348822162916116578485611458253117548458426298496672341428373695217674812122573161651772112688158389834299356927998136574617441899673939356255413611918387392711383724764671395715328245712994926285495437381784845121376154625865823427285441328825345151243457295124158566656529394434883332369642134395158215476646977239525374344375236221295691324769197934233952163951175644654956633664759424372872939719875263852216993798735958374878282979311124327833642465418796624469686149217343686739389494463124111118161395213591483782567891625212629995657145893445812539955573115334347826281843315493714891593419316564824696268562154396992879483815888812867452276717567682949176652915928536151693374153367559551557424295748243727127599297195887368464389143766414893461334644167755963373771332234614951496623522852759788279793466621223132687325229281298346143636794422312754712931246761464283591699433224256795881353711734458631687479315269461526142843319654818531617165522237245348753261113291792756214415444955117657614672374398512566713774835229283272321858216482981221223262298517115654546683555534332987774211251794622699225715546951814817449123557355342312973733177217928147618363525224685553445979513957318724783741542151963372944118927298366778313823372734767892656162228949699384868295828937649986219835592586533581686719168298155311159296475761513453532427195574333721551115969533721264122274648242229242155722425927822517247446519377177441619534215455267285441351492535661172882122547812232234632551182725132981946135351533566861716299959375598471611168628921536772324275121576451566137619432792572494444849199428833653635576447572816292592889137921875976411944585562744298984713553135784733262213511368627693973987325258565597861342895252729168921288853237137552677648441586594584557468761842336122715993567441332157387195526491366463595846976342531891817385611956446692136343228726871624369531114988528546531599615767121486369994641575326436133261665324437498753912191427911731299813585948526577849869335943587372525372387221342745854447895652248582746416533173297587231628875551365613282191713811386916189297992572498458639219732282513619831739413272987227423151475598844132562685383124258419447613121683291515997415118499219258453864159684821575573462198429518874639521778481122724924171653255133742895257296156515347426463734349362714181725184598236491152278465244839113331953687671294336623696256552667714713129721296634228763388393684775294977721361967245217325243862492462737776628751521127849212121343645148465583527344657327189484269515321324213146392248222495485559458739275129575295813965515843517713749921286161311422216869448251678562629142934211163533264453723716429235429643422267366511142743963946697296493853452385885851861567269258351692642414595841522478495372626389626195924982617161971726576395787553711554141285348629979673437266292638139136497165925331987343311756775713256535476514249313519567337524813176383759814387174434975164493966988426686611287971784988266121672386918794931839342999648951156162326424291113758527765335368296332361328298334392943635663199291439746453415998224448366957643333181433296629894426258723118119184122141889885388515573815113756892886239959788966692283169884117299875351641739532952431562874536937555638598862985228523293357539249812693192692433283865141516413789851163649421888921851527645111719117426663259461536311396325186553839462576885795471325959138221447621535559816138599586627183798262696112426583441633683683725379264852131835528834599935148441227122617147918746512974863641573147673127959867331133461899511851416786429653211871142562688152577613223974519855969533448974351658628758175941492514454423723295191354269198632561576624516145185378965636275724495188188678365947932114469889985439298112236442372287545365957861164672996484211589233452865726912365474628462542464211147234576859266997624723732322566434419692368242143481478571854421189913583681365127119621685867471521514177162688968961447285882671392241238633761325339238867621957861221765542932662935775375575431625478436677378132727537586141528127572515748977516112715259224957175768761143622142297526758971523946236681646441511383824289992222324156622181764286142221836715112686785177549996462248811226645788435287615763122649952157775254692494776711423511162139271445319672164655783627633256452132613136719491146132489693534647663242676915289939519314374295113117283899535626121716411282276482717145155114259148533747492916524924622662722454884923361319687675592752512314145478932311118588255134227944158251132486996973743227333312518359374113887248241889513292949874831867729533395868152642968714599513897729617312514782397324777829852523542865598522123234983233468951899717767442921465426588483199412224443875531936458293416296926474964637827933435826886472142174473313651832527788392568836994166516746483277981957661718258619515564542215875343498782896316242443425634359623823988393434932853695147696649127363155858788514265452581367642716414751625484987358577216872249817774756233156721614918937544267515886114287296691817496362262438336146423263553641859911662317217142462549839912317964231833532829421136167225359375579622438528567123544722642526426242348982311257148291819455159296187743924742386376775243424363162456218539611696832387594497269698415518731236148613381629872481611124621585119574532583593538363181812422773223315446194571681236715163248993629196252114633698857962222752233727469234496753424592112847153466731448247563847718464614133261863792192373479572162931382736962215481586586249847426442921429248717445662148953124321883338842895982541874125641626198425519247233253673572182797272319489615218433591571732724736335916253394361831514314248679122488495583847898257468375225842628674295355269835674258972123774219225769822848676214852148933349491632332863917697263851111814738498838764843311457927151721311792964194476944138464998716139516617844524744181858654415695825199463332323271983261454221253173343761298631188333619514981838563687753444581631795553914454172814643471373755266167372172719858218191124213526679665244297255925226964423532336938212769947623333878319314522885423968773766465147454474489289746834246996694494962344253616516328774393143393321672997927964826992374376488651218979543234828336495756888863339658421934581131365818693992781567717929134716715985656367414423259125352435664451131263722652164941447131492997575871725546857745651174911858576316482738754297216715214414526818552893622611362476428727763891222421617824573148282725684942791231352489913983278516461319317967437684144572118853764994759761916243294951443891747948743954216239235422117348442218115677585899318316652918812564913657299465889151524553916273322932512211659397216627694262869899873968126237857782948849876878487864791847592724236261635974674973931592927697919394392674474457256653256541519735899955118261639239789758386387698118294135886919329852548633984875622236843957714499316778336239822267241259939572814978121369664738843791722749531851497655196474391641417288921728354478788117826182616317438464998461244852412365243436575993585717144796953791328146946173347139541351146232542299264257198364631327526681144842481543231436894387885585939796123734271346588292891483799988559617543638974112161732539923133661496643296263578721519462778311962361831375458944373489733938591935481542184964132584369321521684141966143776886215291658842643345141479943346917396251858559234783623859161193935867387218799838384316221511426475759933381455895256364536168824582813921462429839562338515319417872736451524433523155711557715651991469419214852863917335691994225863634598931172116997715779228164363311133621664353993928122781625579911742974692729136616199391651498138129599215127945285943642476258784343572397855681129612215415287398153469222713331183561931166843562492645755264616237627725352429355517534669542937695624537353677577755378715324343578476988791111315556379157121883766796154726386935571352287579664392691319399396298231947443635934224411174741559493529961337137716347885562696293447748668522451448184234117114374485188233381424133965623667388483567394949463684416978487477222925491173935692734136661772951368925837165436286671974441796999792434528578622823751918169694233369483274839545434823232986523673983717218869748384493314617557541796884314767512165523647542753554388362833599339382414563153924331157665123112234332573852899258821382233445649191384228952497474933162525193735428769163695123111484111115348389978641424643686313273254391871984492845778772114691553983932513247813937979989427325871747978376927792386393929766288836416754261967654798377528139454181655916877684261698867799616431761677186733837977949621981736234441188651625241348763983781388511797837933667127587814393732921835544894641789957971773169446143755131944365121971258541186245251935344732125843352717749242772558235376338572166859146967634343444926442237462982992947766451116383714731448685393713356879526998959515622279532736283474168461429936715543311235885669688672825782648484498252715243532148196766387192523943852688632532817766299272816486613519189231561437167752839471268321987382752984631993834394945779839943493324316147399281976243754511526911257182664939671211624771358485455555662543347568512433977261523491232555935862794793146537269696378915413128575516669159361355965541257371994633317795353121944218785355778268382442422311664344219465418773814845811472315335945595199679477188316325628564885781498553579373246275592289157247699998487261231932536727884555162491987737451376429823144655577477763593715473837153593467929553731766676188578526365192235197755738752921195581747573479498647587732443614727416172436797846355262889876849771323837364311511954421274655199468448625698495569393952783498542629825917957448734989333697221767621988866644432382341183865984397777628467262435526821231551664331982442837895488844384469431422316111214448782674686515489911143335162838214891629285393798421426488131294773878222715962827688611155416173418478196678192257741564523143369453788992947862753841363218846932563382159438687884666928954147121429612963693143225617776439394622424537269493294969612122139333642688272784836121424446837987446485322861982595713496119397823821486714848848611623973463923338863564192669354472312933435395876939191417752551844278694566936133334423988877472281838894873754652646666842856159243782923179365188172934327467546916913615575992666396398494995993396224932368235327119216252215922261241295871636223513459686636734817383797959673319928622436838479492323143478343421842851144461358896574374334367929116143223898364847368661666159226518853581313641632889744252794521136656157151542878959412733685514418792667131577342513721728929167341631423411252974772547497449133153738284764887358575314749186419653149256122325972334245792258124341537332852548676957619798211852765433317455318392831825534551552959166233325183684485462866692488614217367915731846955483914317562819786599288668619857529535845268493837666678533585921386849625361333487334631333476432145621682975272762384274648967423179196174363142219419468855574221292765729347333496682753378465432195792943931656717833836614925663764879481192445522784921331237982236814966333722325745932985632381113691773959233428394915125172484422154927276985488295674331923589398759192238591213166193769897365474846551915356766191111348442488925591133377811594754933447561126376712612994525818514764161744156721826321418594741977268818652114446516594874381426726464165651339185139958261765455944359484952356442595135994179438354623586274337677626372414941715726596941425915532346579254195244529125145281665719851998485477522876341626295328642328145674684282864966365737929541546781399673867764586746496443324917743217983212977369853134377115458613975251354293546861881677911515349718329442413773394265347149933238569549329576163226736687599121276377559955773335393735745586584449837527124776775461544744496666724822533223766626529817168852962383391296978448496726855257966865813186325872356669941318287467537113432351317926339141898213312322649576185934719126499488128412116459526179394594731432792842435477252197646199165273952881196146955116487585465922494295524583668226482797281255859258747317237965815396453412157565182957524359459825355297249669227793121734281662523263134449257427577916354187553867412218279624156963688862731365816349768858587726972654962834782619633695529723533258885395745862748971422565455683289611139136486158317432568177246265996359994821161523745533236178737855821717113571789495465556343461242961865236211531762515377434811513991443511348697312695926796981339555624991129847766327113721427287398119112385821751472435713663981398782544833243661418197261485411374477152741951716892682238786541533971516424986193143161416195656817122122933454832333737422825355363652429235512931936584321199222997958593596258417929433174419331255991714138289367598948451174229478539512244612923785773391812479415111182348362314643371183513524839944197664342175471752279416236223532588883835497963288772537879139381927295887514219315444628524641252536338746325882791543346688395587777373574879755887419312152356251771342225371678158535539668115284468647729854953656615569547567633436355384371691856342242231531573246371589923274313623417181968314661328571798622374383179378523782596464318956964458468276535487131424219111795356238721595312885594324337226219619414248245576233179361465874977254757335338458315325198742583521241669489346332592496476498413425649473757873373866915924674586863882318998771983968794361613538823293167864633961489825579222153411746629969465156935819454229549487731392465882569991486562428658635331575166358233398957542565651329693415815886841915927115144991843119493446361432171741396264126189433544973894926143766728852931629524983165882932379977252415875297379392436152532177882476811734689852159721547475432677944368647396722234699813217498516411535172895994763638324494472962431353513829685991458356834128198927972567179883542622819521872426151622895255171527663194983959386197619188392459496838131119178251253552234845273823362844672873171827441825115671155918399326931217348342613942211321392893421558995211663719214656352914486451271284393944596595217596977871559871934843745557291511278164943667727415643217931814648675586694474927173153636764384932135219457816997768241129472416784617418927187993926429214571426374172111644671738271654393552872561652996994981566521629244824947744742123411229982333286962626391956364298581381916573914621666773915224952434312727271255627543321965293581796674613422584669936478511341233728381543143266455398745631529787659824447683823218179643226713632349377523424546437625374391722231464141456598977933185233954373799669911693852361528156957384661731653148264922874773112867591768311531233371174871757263984119857988499723245575989583428554969965642337552674424654479395191632738841159984557729963376376783487858924841381235833247163424347446813554757773747429573445572451474847468672722349819478741599887874427512719579871725617911169872847984252498153225453246857873911812841778714218482853443577367745498773958712161341946956142312518542822465527791385418557275454558538135933623629936845331549922734446255642435486655244736671831818322398731637529519294424586478257762969698657366886837536934865527572257856266437213353327431123311827464245556485915893964646557859142474468115684923872491442342436133521793859252557667614727932494717133179426893937913651283147376834322568978551387868116389747394265934249689916972918931344661788896372188457132258436645317999424949476692841577144635725329477143431172662454119886128915976736951848372744225639999143453273995918721897671118192299887367612492818156851185687741411631374246436272931348495361327125698184491827358598124884389587927599383991287162747419567171157152182645416758186594917248953735546625712753538293941736758425831625571596581547686155886743757476466883162849189256237731845884455616368341299319724756833781584622653731623947933328812373329297347726584385547758611931997621933511112689182225312252324942194498789737863942169479274359422412251961621983968123123851193345934921486831866791863699171496784963359629699618898397931189343855256733313374698754398279222225247227878724222735139157155552648476184188395253814565859191237221661191147483648827416271122873581269153835613342426645777187668345627927486441618559181231914636673929983328359519947713978538326587571711626846996683761127692846141541581719164461394793421431339338621822673152872228613813437959378297222729519993595193122173457672933691357392151272341328635637535324171691816245833463796351269529936159557634625758578589861426139667866583677112719547667133132917415765929837314372838142877373793653696225359476614913545686911516784861194233154334947281292425363955852719396573875547617998245155177158162983528825294262669267193598658275887811352358596262512125726491598367741848485271978998695432544877972233213748252631945129722441382333336758862527377922916912956512573649298433326294141981742162494684562282274364725232424729692415399699928167158667774151481829844241774136386177294929117163732858149765853936619223748377863946119889821868357764141841282154612938791599698161566325163894553134432294817832642845582445584122786738481768654244324211419117577987932866837552645139573863529266451464468616271632668168586563482166654868725586573841369519882764247164344375938156452642511134221316592952894346583594359557873139954194714747727495516721524592182369625235452569783397125696471479584687494966494882472214734869297124246795174633931418694224438746723141741232827254537555721925394294173472682353428462967382151785917763738863671661735941388333893155461614997415757627939243955854614335345588643285936491711543655399685259719852416947938217266984225917375499854562257258194157217892889865123881464934841413421722264344472943671247189194288838328199781747227746114185776793577135187723166118453111142325472119362322718937541398999259589981665486676434818465686559541998449554158464419882143537598449412557165463894956932925413144149151692232375639483114682732452715591673437745129962572188446724133158397425442264715331882155525238729231354582329948149262929239795361447248852512555972195358942931358833621656745723354164289962127758599666722386259529746683534145365178857485173595791574691139587639143448216734256391457333519621116916739734632162732889753428551494352332516129886356166299995131625595874736672851438314748568514128261457769889944577797663284218657213338681981399751999115389692529135342973785242249847599268281715721887352875947234989454362946923249242642577227511182915413436187167745367929375287324836898587196513178913143839154412369342312512254717227474976135527673117856782114541226923461331475498252915697214187125596925949362246499218286254952987436119312711226328184944664882251723622512179933142797984891429938513235137111514798824337396229979482926323197344914617299179948134688136464829314121173843975434254313484152982424291888176544883798979834746759843492716252534581558949312122414222295855213736115423198566647449624965281693495652935829211517732651937211847565883288329334491742989451448818816493653443333891441777669812472531912458941759891212368911457654495112233273821236499725846699219811276143532818126897845252611114262514917848334978561737783121371137556541766336174222938192226242325214321711479628183215935267118689461233213357918216623754421258353237689914249518538498824455573936348113928862191674623133876966278661313759431539562141365698118234954475461525826754442681342998738363163511526525327998278359526319542724995226473598319358431128266616421368785739162517224226531924349115587152433631352426228423549921629152338122232333358835529158499723493935447922687235869986561212885652553464612368881426872871165467287633349375557349722329563438383451125553866229133242451359785282785273847299818698921125754389781615183948969483156743344352861933773592393666942954314498465449284487349174886783778182434367639267213144434844349175141133372978475113258489848191786645919552535636958792721993652353139638222294761368246594118815657457665591583551147812379256332336697536519944591744343364115821164127713111253423888546898368192428591598898993647681745111913616288323523136922695429849231593311962539556913594459324877826878723861138394843916399258734572825743925564582458243423945444877122677887926575663165542124697937516778338828665761613971757248768327921981959227674798776217366726185743324157268112343955713389277922212254623553919397842275292125587547156542587224892941187226665613821766938578285413867213469111615395629547855938631559293858493589145384959524285752728558958566952966336254657511429672199377395487475428914575316661313128619883288261811431426644825148266328999458586657484191471743658919292427265799121187575325245879138647352256428332374196428988133345846566991919495239942716159872688611432112422292913916777278559495953665633663157112437416489858688562266327511174844536431561575991893659513596124754576666149796118594412881864834996737584374551678624747312469294487361449358259459446951754231381767183893267227594643493731748635514288811194631346821374623395136293559212656151862459247734817447697732549277714794898998811431154619352839743543616276176476722891983727636963612647787377812798517621512132461928711538714996398454587294574739423443624911116186866784755655542887923488891774534213777353621896764227269332974424962626826451463853189378744633475477898153787279739322617199639865956668629343893343993822461842641834251577811147792864726961758376177416416495119145357115255148433411949889255725217254392633527883245715718551926321815828769949215688289549716872345651595358282645319949429944655545846259612847541761884983371361321227157394385186183826484526531173441299766268143662194573345122473545561311845186943313942416373298417419311614117621217583414119551745836638117148492142928347133759869425216585188397224221747984842884595985538526516225739297817789991721318661526286742168496339559212851587911857789596144145663136361757867447481634272152572399252623939573272927913995193495328487958751754698379516522412257251263889187256225236872251956551761881223699789635697444832296922874989861718314158326689737618613793427541475789689963384568774149224913946429491368571652192824452443565814832945921921168482469161596678858178835917265172753781896811321166489699314488549323791681623547738172513825434551123454581832977726151483914797637795144241552312355171921544789799673753183682564364712344877967186445689514535392619833786237236111289246794593338649183312292518781438547383898211379973226154114319498834344913361736331217992786889627117314312567546291871763911591398998513711934649384571753455919743297317173267648549673186734531718395272619355464448185752912962822966168993485322439113859212227869341938283134243494821291741124121277413757527725897152395731717724898963356565842413193932698848188614167825366622211865794353659611943892562968267513721343283263354328167468548417984364773872536413322693468437828563474643973925432423876852996531998148739865679491368716953672313262942261721324347465418532425376324631214295886526761636382247279416732927952452749729894621277399617232515347316643437446453223396617189584984965899454425698138158123325472555771759242551223625255664985943132756897871866226192319745248963512512123948285816878523224993848469356646544278381733779128557816837787638847385194471125817494332878279799245921744317928841869147416566813468476829786943485466597354576173342372365979961683718899969436498349783322135851311783782616343424953174917651194411475498394727659289523771869859426265825613696453582811671948167578743147357639684297355232358221567994436124526882323891115612464966231367599379958446343148539614195131542648131852658355594124224252499139733198694912427455153656429654124328958498557428422576581588144381522124641745152896958867243547923141336624522654144923199383317776134874954371751733878469796637138898185473181915283721771712732314895418621553649236255532333773333372195785119881662836243778765767453727436573719116992582246875588216273595288687656466631928434865529182916634829776479385363651876125437493425237177265479842258462112287251346519168975384683465439612714324272918976153334148989677381444868994145667742352258259919113957633329642994481779621572214481333156879185856362937726641751294633645154412565565245295637429579165773368921715867332995987346492741319999142213468888679653335872543996472421259955684652449843728334444273855944583131691961445183983363148286924622167353813742386814256944939893545482677181528997711511539712778357199292173731126932325997664853459557823925671783616929736377663489371351124327645467423323279514149889983538166492325285633666213665689151512454717717773462651614724421551154217881311381763536449774362321212952312416241721791912511267263356188375777126425441272575875668593629256972989418312935885973377287359395832244652611189691318442474361595533625415811138554113689153731577297666394341983419125555716276971948258476294119431364786928597832546838284163279798279475785971135229312365812142221222151244584574177621391434635133419931825375293822325318819222642124366131719521138256247947129595946512332745389996937346439433123322894162263355868843955814261516799636795821822996112158221638567556137587745791493895448151354829689968717165769175814446335812921624969274876341862591194537156664917913262538454734676168145398985442323852449868587873681644187421474126814332417118855787327471276946234762379342664188932767915995628976319575562586762163495223119132767618216673256381911396872815848819791787312937695654334278894288626383531565521174374444169632887911995627776726339251139793448519874346275611263953981332556534113672812326313743166719154425199438222161652459296467393236127799379375869979313629358974825575612182611339148313486848485687825256139386417388453348393166574869962444738925924418562473362755324247284577355372931868449268383795731672179669186325382811164312229761799343814566999489131646195221489388868933584773588167272557827147323318163426921188247577852546788423598139234856639164713615453621599111835185472683282731171668776965692787327794649145365387812496112695473792174671612212415497154471213928821487133617172967434799558117358347295337931252591418564555839545631241416518761531512216218633564763258641666332637539981244111113897486191173338949481145927819475654643888361432168887983582128785824368326517835671527411664586249239221991587575953739438872327565656141382616694357653591617961929896558591654658736314356837748972685885467291719785836619738455358721866836295593324671433196278652176177963763427445299679926543717475364683258716225728516186286156195976276621671239941389132274476575523432696247724344323244558262452531185736587267183393235211797224375812758337217342451791369921161665622719127661191536379719517499121338926134272216315854938646323867532154216918125624762323245918861324193163278828214376289771143191956425141467656121694259313342992571949121973193195965155137528921158587672971191852841758215512764133672327954865885167386454361374271718539477511853283739934745663722472316752184731872211464355541373259387944386955871828281664339362795426598281764357833332225712232781355931448937253172462319111554334612856315215339315756178981222654313877119448211541855718349668364358846469922989358956427671951451547684762943689755165999316858318668916836612661866536738912117553923445115229311538517181537633822242555574177857312358271149328723875919554387515386879911252751221971679552261659132851362153551941851954391546996687117757777345466562554933877398477634822398994619492128298747377264559895245148534312669267914346683841697635743129372467136346276893699973284166391665165179211817425929613863482547795985559448888532691631788517578432553456332327985862694271654564585431229331553963886513355794314857446444668824229823739128777822492211147471145592335233677936891864179567815147249463449193996917755244564767626589724418542837224191937156426652558389299764397968359134218765369937816461873622885641984964698176146415133293197794363829417251848772775325764124761365536942713273735862515776863855677164141369639356156869981515817115178593418345422647394729522136332454333621995365799716613244984133849198769152732245521867445478323882651937746455653652856114581816738244572547545318976517718563186742433256171685446473417996639947168672115621619911687266464887798732613429696819789296771748127773732894436382241512615533122433892292647291256486985135462856138138362223153295393661645527124453392215557388574237965932889862694117773637987759248957271423112654423334384276558829821198493787275943748254833552513641349382422191838799355639648919714692321713122431789644144544856523962629959132395721524328117939368418686533369222376416637159723538841146359816294881965256338353824451834162133497866731611444866118589831132699597365122241285959876768369925164951225825123258168613911285845282485167185636762967595993446414962574911762579271474131316319225436112277926398172175365175412859448547667381227532265332595946994718682775285189268455916856196268949713127468673798119718216625228512559611449733237417775229142127255515215526211888262651177466926585815291254944194726428253199781582913325555694213489699583776118855219162236984416856353785446723829351139213946449572379979647883751362473357925838911341413885129221846885656444281178667686742174213471294994491368678836889359626555665988313715242513891461589123889349527712881346215339369174699753481931461488865288983823933699792126152532149647896321211378979124534826967951175569949843287421223654453858765132536631449324926259342845335742633624236984712147797141796773186935186945148522794644946912679564148176883442141464359222331469492393263561994776922774483162652222568953414111189262338272225986647679472183837182995799556473372454236739145658548527117172987726776596849648343768774469162844476583155198779783631675118791471275189494859891459984636957152214626337775621957541383334662168824754668613758824522419157637332599525117457113653427414954592454268248213483245975286196244491592475736993564521886311327737886412176587394228956792555239652694389732861323967924142262451577553593129666316716754453483715774692485763898939136727766415818296842246433316455292967944811416496543769898136666357831886222138843286563866132883148717154943161426232227558939653666953318467563485263639485183782659715984919295732475828372824419574671231612414372323357217778979943822955563914363958715548164533233632358374961616139834295376823612541312979325858951855243794248521574544195166348542557148998445371885334585867158724274741429232958722337831486398448516373111319294162794411552425444242224431217284362861234365534981416726537682864857356151524386517586748576273619939491792236655193553731732363325542127143665915693245311167455565232381977726923887159424257356391937965489756176159678932955757342324315992558134939127222763237997431187855294942115581142436611478473184356793634422815422915956727784256338529363857631587468855324999361928218479443348714712692674889418827836667383121343265718195786583253225395732531142392136351689551538281231792553673159682288639912474665259441932871493424975287326145858419191416942215769128175498681259293118972483565456773576429494551347363525664553869336339112259423144121214214165686588562225139457418963351535235448954514876354747199142363817399681474172942133217221655627961415585244333684221631898512795112882163533198626117781661251426113377124599753443669429374723343112977359599511688822341557174616315146481336297359745442255124176317651577233238392422612747824511788451534977576722178855326154767391831955536776624626636244493284361833499934326936911351494931143345122838362777872243673794533791477666834121223452436971553873482268213998587192837475352593579384373637524637514884332134253135963182579186479353943156779953598131736476162178435971274453994169482494684212532781917741151516847242967569987469441829887551566534428761297483723531373586865245383191558464689743584177243918314482858474922543685883247527563783354939253851992392559876659541191943976324522223991224647955272719552141826391857241454624282546993651592657935145131141437324258576863324598425335994878846333394149316467788719169916667294525856351974353893479194176633728498415836341815169419912511911816467619365786238632827885874929694671942164894457889119927616771676148754862326349614715433843272435865258792941471265521635367177933374254245757134575491524125352727486922227651812948381211529954698485826996727581422175121288567715223211862524511356371597763642892338429819567821223493565171921478161811592833521555218748787442125692198735524817793398787937786355226322133163725395741875159326919111266633998951537966855969435941919148121394532745556459364556595881543543494287551351923368518116637371232112353216218846463776561817214289422853459544558285991478995834471443315238265947732516157792518831231541273134191781594219322264158338352541327144353516274389941234354121821536464273168383196799497563276612792764461688516546964816391564974861139628476891775694469357759252874311235887794997221488711219291727766123831466185564886161789119851535666885183563623939227694447382868231544961452895439225924245521963114444746124981997363491924718192366275111544597255231912984439244365559427975986419692791759352975249529415516315253491851624496131737854851953938914358812236154564462697941441192665314595663989327814131141936142174478483647883515558516793479568235659779525431117533243231825178676935998547247542592793235988262614431735736528669839526633594777789698783672222576681813989611913861278183417331632994436625332345532618314716423346612213346339361434474151161291534667312829677371811896927232123497761691162542923616868731436174911682225731484456755412857773855141438451522892596537782137777825564497221283791975681469478568795591917155217327242558145395987174491932614387962162178393112265347162179611855973277611658112961555479532446591791711856644957424357578477126141323268351581343281594969189272374426572162347423572285683741494372394521619461231834997413658156866183323645652467821616199113827914663438931292798779472313128467375557845862392633564819868669459318561136115536391442212319962394719241355319268653671453297632138266713138817752563484767245645541996249841427448179994266478757323444636663428232318757293114838952181496766664183411954322319324633943372418897426789239567538414535873872793114415767746155267334453567271493699368973458633539497412792597195162815397466475244769577417566176133485655882173166556491116612649167834396145182588186393288216798463634971244963636127557981927254221628638877135772669124616716263437588279221212473885598681427482345167343573622414995231367855653756177863763326516593626386117977849156929929996726389245248381485623353955987995596315978237125611298431913258971285681916735379911952753396256332392862821993768238842938784218192882826673451944641467286748367763561187662782314219731469728213345321147221144367532437484955643276529649435477685348538486451695325294715179494846464826169124216781936944581555658577827586686278441945566626935532158352689395925646353937588427274423254363485266261956164171143362114356417299612565415941978859274832254628565552351573516842757847247578984829527211121674258873638837975448963324675196246882825625185579183612176117776141894545645111581958885332232845721849545156145869928695541981482632298647424572942861138913155744482543384846917492893175673872926114269723199398964845776891932743999117221365725841892357827281487155445125119234658643121452765374321842922143342938718349667894511812346893546532648563862261892196182335147511214516271168819935677259816227748264453441937156914428326111178132454951984837262372426195561328337475741134318815125769327557246985431589478812565323922382555475313935263192253829386414341283333528697899971695969596269261861953255657923372255495742378274359762262354643751882296758146272328345342594496929791149559771792524939764641723424721924129216251529859573519359984764313768937527365948927735881751836254522132977721533955725334821422931227192574631646913324843822593762713778339526166823728251196244225133445163125965981492588751574985347582281112149894764136293638459147237615293273319319474526879238622555564996554519818866668699794982489195726967947631512189452352677392362431563815623165655487529682825848375482238218612665218267623213627189478954491953935615518392836718755914347837381674432753215381485811361493285882252571189115331265644414671599231114515619967482713559742578934167197792145281118137296711837495514648769418249449543227993493822556447299237171984261551811365156695215644551549159821919852525367227419655291622192634885944938849795915142174986861754571556311773632865963845432556416536154845298374139231994371633497247315156577986657799795545426315161521294254616413285547293228282391955172435354924876497783849784289726834749159526684929212551897153718794799211391321222897736397872637223499622561187727126741419159823336334635854126632174982454216339213916577811733311127836994973546671831951964422388646341513445671464556954632311661564712733983751778267333961918885943829541573951818971559622364326185847283235144394778497956957133759358832657479479516152788481245979562216336953924523819652792264652454995462236915367148332173836525213978965185671152186257152245593585274634438329713712248575638272672559256965624694347762578111453152967831425787714156116925744723115348355375212231725239113742564751998292415466649297379659956687776475837518668519919196337854573413678615223182954535459931419665689319618712346655458938287332565464618344121642626892244236691761547319245199599295985814966153663241846444569346111989122194343893689424397276599254843143968959777211527199527464519281795145196492582193941815572272178213317621593381173495972375419651425615189152453989554624842166122678586657133685875293364768427142731522753274341657527531154154554389739671939884584819726742221758796371172682524195239227995256242435929169535156452965718726546484959695861541435351786866191775674244191937334231518416975529757117179642353499765931591616567167791195363112845525725145774548537989427821243125993432491367331511319253675714573647961221655767464334193197973271211445372238625326298157195911721837211265931939528216838911351881945125516393943448216783437633332776647972398128166333298933472415996513398865285919625611351525765432351575375665186752354357553915361638148479139667142321258511786218925392175441766731523734157366224366313769451932279233547397572795588325542756113911318427626919641539362288189444886861935715612387161714163625534426789333171529941379499732571295458112221217335582174328232799838275413511744114146817763384475224633642785248789437763985128831243864536578116956179618116156145679315488512141757838754822598114642591264143582349364213995381325543926481347343532977422624419121248198787431145868772542194895666236148694436496249487413364477119186896988189371374562218851221313428148945846133263616893162175353312518653389575589941362984139153237918631862376447496324911754597793977645414448425626213761351825445336191493629413215369729735164458611231912429444528584888171437544158823351674765979397842918527665148943491879194838319799177585446594513929283275425631687173481867577194536296852387877347533586448237647742211216859276319696954554856684764487212173738644365522549441598446796737169272441329384471465171918277342485397545123621315499918966343577543731936452649484448143543966137356398877535451433693914883272174959197593139563283653154398291367765776542627769919122552655387236892137833952265273261452893359559915821871813498163234694845776799913275458194921284545219214549792141139797961949565713596914556869659724818675535298694646268392922323986143551897711323535783865113111391193451684737427231641913926317182215135387256521845428977929235221555623432728678829514595166963496914483472545885783434572976948358516846929522684482722174238589255677175664211856612882741192587846731664942178181523927987376245294931718813792479598778824917179342931666327265822977953548178151844425831566465381389781719822484928663384236572461376927194994581793133219628896363559156374641526374933493551941385516151734533526297498165816857833729362975754724282751314632135411152279265386258495985885248114151411539526333944643594332457363773111685333243462273278968461511659265129489892373274727954591661363865653158955166775386955644781141674768866495297234937521794931512121116644437274556279936755819147819879323696762728613778825988327169583492118732519615175214248622816858161951891942592194886981131153194638164361223192285253885877829716359773459255967189398311457782124426951831388976823916413151212628711565822961234596622371552732927967244973125659355248832742326123818551813926164522981419872663741694895453192932926572772549725897849549185175472257938154569695234311916851916461583432257355947416665743787776724739237957245231865271253187163711545612997568523189813975377756225979916838259563446278588535613656946171287919631721323699854186644482292576697318281437738137125152724518185211484537123722725262437411437333578138687985929634763827258649686872242664442452278571126991632748932418127873749974575259222725942782637234589667696192725714455112345662633359493366499166894635289782343739955626612758991138113695711777948853691863925997414881223719366545668922274534424824565828813273255442871575841427251758663995492385358625738738375732129984277434646533198143375592222145619992161591463268452616416468688512399183431177912699186312635335252423419599126496376139963824334291462667964324316429239732953837146191926215726377366621195116398112572247822298776121178929888385877314791272436835474827655588615239194494195838869936643391518725188395655364727748728951884915614596761844726546266141719451486799421884768458599525612258895929227262933963396837531767256451739639461666481422336878677952433543562581157281212217738984291242138962299255512595915812963292214251381228254718439534467963176968832362239654246272289911822341125788124613335834367314445866497168532738889456952846461912834443327931889687293499422953668625764365926774416656736492115914464339555481929161625255285984792191817842376171335797731382319518286744718591629124545213735751414522268536629536715963565941756856117196949586268554519579778686462113161814285591956716374342935612667956171317191836261736477151789184538111726241332736935824124932166619369332674529125659673761136827112267191353222879149599998967269347779523916269389744125416677831498276924218136497676833172699716577463773791654653396624916317443513996513596697931936117894768181376558418735135236994467552864531698283495392425994789182186894414699338134761119983914359129496763121921458696757542422394945953699976945957552832969825719696153576336336975986532157171549534272181754529543353532931177344621472188394124827736476399279653173479734657677434961331542797238523396557934798413151539387144739623294992886777911734519139594983225776251827656877217771267658892549342863137337474621174364256542157492223285833353233151492568579284434757773436171196889236847541178871959732735346753932931985625339142833487157796362451631675842849286157943814812132633627495237836996635346526147334639529979775543181274955713748938691957864219926135821521844423935475184332379412753855991458575311364742731526819239218361657587749169294448419692326429276393556849246591286269319956567518771372841813617425518372118471384721799352273712324876677348387557793963174619373595164852795212168588463732763896371769192741711757253397421245471568163124144313341714888599126129748149844388743377238298373488892841939543236182482445928418833789241522851227114214511383219284665673188219426455617811321971795651387647656333366367538861514525192938773918121926644981638136573153616569958691483848198444242758664167587732463223534818688732819446324527378918763482452144951884187396252884428666121298415122829172782576358227852131668123362422269327494868819129516349432947448924425132813869664776697367451837259327971127619869344627239244823182323394796447268126477115521463911196633242865353887417794778289694234454633989532324593291595965698117838198739484841384441647992945131754284968932215268732875738525711786416715114592334522352916432882119538654499699738313296122571479892776351696851527494165676683435163168114535474887566728487322862752621456434812793168249333187354279221219415442888149337431422451132112244525552985777378935974321818163561312377519899571331888851212362692792448796665179334594329737128633733394943922847438367953858131619645433745945266484434411852791675683859843853463214752665366547277842753694245185711713654492779959775464629967592252182326453422311856788261178172113187292972851174293576977883148537926284723184965989287684312845465365795142292838544743849377339688911816736669526341366673136498463368397175859451828391628278478318617374689585445776221538242953697581337125737138859986667533332889355847515587534586579966891185934283481589852532294988826367225254613289182492343221279642991461672956635654314747725255743653333451855623723466473667547325544111297465254738324966138421825979612265618283414465712594182955921463925212125348434749173338838667531797723636329584132491783932226751629511526657282271121741655446328214417813253974835343858891319342322157239163238315583489152626315475774918191651923485339566847142934493216582417415246463941239892574223919219663195337458121383233171717159233168822375169577714246478699553574897975343163669132843641751623477282615686862736836959132497323822752568214942427845542293665859452355827175128253916711257693349657516529314686782712365541497191681684164114597317525169755957453496834761137167421176994616142375775124426923672541325949485845478754533611455114119735359375486966558753122956237994847817581251283332447625455532978699224711271253261487715144765549328535921451133172983119638968382219174365677542742275378345452629623776987365392273654154237295687354562612944774165712545765214114299375761161638571759863263769179551968826745119375124621299151818734242254446364586429165611694612853468551535522989768121155574475677931423565257655342433411623884567658134741516723145943868423144498699571144612448432884721655963161414758667553212223548318717583132569735865814332342595131274743916527117364514212262433435427247939648542399369656713982957523317768193198239321331919828486889566724897895585181162726867545252681594151369758987895366742483657496533291789351745283797971976883954279398839727544854151688627355111815612847228339963764127462446571471487215166618726298333836553826596537417463615323224957733155449556821141212729726399165189752331436155728539283313679637874572149581946174819913995579513988254795617518453124891814332265477923492144712578369536926787475397294967974751917455372861634512621813353561878558398941476439622435749524823473198739261223585689995576772427897125444769627228112821167924566312868358388535253322479775786959228791731451166992958363164746286648332756674154264752979174471692136873658725757284551382124647713769971447573922864132351491947597437429546645478533154336373583817888732541185664473863478723316663824724461391851547421641525258985621251898557468276731855147163431129842624553148649493826933262515462578244472586593874914419467234281273375939593686126171292146536457325164273751566314521194787443393191112842963911842418123384374381259285777255933814188294591927635216417681599119684984448252533554387198139323372171573671858581728871199331158139263497212156736714428351182939952522849922332857164771589823196822132495936545955195797292932763283392123929881242278266185717112622819868969911179923134621111116742831521563498492432878591166222222247839142253315641827737114536462417521783896893637912688469668511521641983489632999852164792634332123253482716694314414289756115633929667441152638326614199984759679762897845559886557148882158794726966577738715141854519472398824154633818337185771616945449861918876766159256318159876937375228393333414584761531373258243387387132555344251998268586347987259481293211426892287144347977941984255742942679875531429497883564144181422891224462443381838646521437182429655314571997863533343177893768725419662115542415286763322316661925434499821267222252291315969154483123457422181737883458358994663167416497981353557694616145244592726227979735933636875852136282917943159321747666782476712345973533481715465414517125217798383824419434122277722413452297274498672424368471315635239862351877676348312232782272911542824232679681658464722588984965342232544513469267945271926327434652316264217324793162883625474535989428923665321819184227379114269987281819366915131721683357778142122315654383452743355936467375713765383343774779317611992312714879514287768138573753949459775571981546263463746147378554328438138818321198138163372664591366629136446139718892922947427929681286575848149217383944431569828417257325618923931168379735538436775254853477179314515571697888913293465978381522273782263953629191667169629936914137682179375862632537165825212318955165612119226746545455119889542511982214697722544168974328568536725136925193644787599991513474584123229189543733543315316625473427481328413215812754783198347684628156377643319586421174551919294225162469789333163887395541142139265113269381828873683272925872983511542898163339833441824456275793389532984672446226788335566891687868244646111162875916311379255787491958545845398329119131385147518251743848174196229631844956339171492441613456527796798288188126544629318952331811921677853736217873246892333673125977734944722391121648686437964725961495713171141258669161734137374575394948968525722463993174416761773427216792437861629836371916243583878384373582239773241445485915922257799871496315571659993952882341594554445845649794279469619293159733741482292294834687217413146921195724757191166943313442588714295466876293961811671536231651215246211631924676616681372158612383746411227184537371124328275735784914234591919177523269516385869924829962368823613757276297227978269748449871287688365369284684524542364564193497938166221712726421746761223149987319414257971532886164269875227689224777635897527828694514365734545692432262698576518415755129883912215139234346831114977242572372554667514737569428771424174974966353151162821493361984157122453334865842326941577239949314835338694532522146493831891915479311943829811323546125513221513292169848852427788317481731915913415494912162617538221182842596524339458522256346152326147429461444139113352732462228487435218624472264896725811493589177467128218767574937745584221337883557541377774369237277435331958596932342159469521196618847566179612444899694292153398489468428467366325182722816735268291413329334276518298365999364154747279452514741962331554961911969424926323478727159514954923145284416321591523859126249378367122866545153893949662323519126862869538852324271812465522173229765476161726915235166347523331272314495369213164529347412954167248227244391328198152574841329519811737463132728951854681337144919174193114194299828952158543399528844248313532698172365273256418178678715192716427561351313217197889284562978666338731598211134821383726842317555734349973214293676478721773562164912314524676565792861525581687462459789643898921466848139592765778442296345384235677134184697527131538344137927884527221595829996285794124363933282194854127874593314588719246313651418874235699825542147563462161419363844853123518381684356739672965349995685264223511812238897433457122164684436664195435698639327392312285237584333192157924871837938539695382415961517613437644458124193622791148474714593495893771113463251645746291486984667796644142736155541114821398233194545195674746276783118223454128544935242342439136251634656773595576324444268693231892584848948351122674495522597418441317969963557348468731392499792558183218228163364452813799564929646899725762523529141218553174172527289418993142762914515525836167381893244718365326132115584998224554872881481392824854489371333259985576456699676815322553154484713376413433376599415965554959764172757627515655853435271198747438278426541172116513448411399628949597469784967979326134513133643494362791876782922694687242987299371392352413224933524118928413523942981218597133899922281756464594982273843181747334583245641969873668571767488565433447933944942868317458162174958444733472474451724332248678552561657953819333543326232884459192971872747995367912612358559231372427661239191143896325277416533315479263539531817291221421462144396699814144572446593563461523814231612321746183916756413362482462666577221778719126299515462822654973976457958445622989311737511812776157936711879162467782389835555228444554235523591675676526245112541572998554129897858467768797421526234313213549827258161962217492115635979831917439221865811563871161781221595433265794491594531668492839737476715771778254519844357879555677621342997367519561343612583994164344697633281428679426755782125392734811487123287243783349939672477791559834216635277191257965439446493189834185353847663525144876137471572739836493586299515861487466614636338495736174822835335262411624158749782814579711984961161924231663147335879137334766396166958959233894538865687154919745383458693451562252431216782437581122837431612872736818524377947939414974643831643492628918126159473771791473253921681313124423445231688482426162388164845115118434355838225744865541326613183918654281374921176245374313939848499876327774861239791611131775983917291631398818198753453434153255937719549743784174528684518842423166942232135224329163537425497395819413783595469922955154534674996295238578136358943728139242874744852651176383689547578381361945895862912874467291638622971526547737242135137326149779599315381672561961862874823169949514265388913251729193636787113722921331255896518714591562129494441621346915189548344339664427266524833822549351326761171576196272779698696327928435194257642312517223281912227655263854868264173328266527914337771327741471383451693123436919533813558757316123633259223769584339482881535894852568915843444631347441339765794626834399891422463222939797336643316198814165111312389363618245917534856325129344324369178242196422792543955283365742111224823924672966439246129145768447912473798827786784477919193937548112491435512613611172365427574277824769425435297972236636832157888919543649566199275137421553784769852338121469984345637981115678686573865537415153527912477391762194298171781558325143319597467626491173217427128811517221199254578251299169192771573763272336622711869234527389244665328154446497299636474632266987818342185338177731411345675798142344275143711362221376944216562433869615219685396447352216522961721253773544732694339385125886532378618131765372175757187172414279214468737773939375872336968438956347251547858812697248746493148833122928776483818226173324252852122425958965599683449219566418337126163733264813992746246771241872959129991719594238818747723711371185511232686563945444438216263127194818272796451584323797973715246569489151677552713393325957368844866754257155662949711654459628163578892636891675232851776626231796338552434435233118662437947752418373872378157697341134393961637161463722472794489363336197825918157629136765886558615348195269961922237445275584247238186743853338949732221873859241817757714357315563886461341824488636991237637114349931872127189276586652146364583695325873939235934248569114329121933133746572676849482484751945574994189284463461828144551559618334813224737765963622344978968191632317349122616833888664399969213282263213144735398261464414312894649512774138194713927936928992369291786459834852346472652478499824687493696719635623717963795345877543114536386858715849682553523377514922155566427949323444791291227922969384652554449264823794317977464522716257779193191737694221778817366999452337513581222538747949685487415436844612342299191368744832529953738897518391264316597669549179923536312687412958491266118431685147332222234325155738128319443598176945319766786119556955286183634423552615624937999514716214166316565569456248448727717685785421984813851313233542232511743836115379342176784464864893915484718928844586931683884269619632163847287469828839618111967911514916884721917519117284785681587844962925983222481142797865511944924463617497392246569136921983143336654173212481714788177541385646665644276925921855229239537889822586874617848737825545194425981815465143948772792239485433895353219991482897693582983822981461724226297115341876262493611422184246727257915264995614243592242615811855921758529921337383937398565647279849369966731736785638733468496383791781964357958484431277135542132883355787843618416138557991357482988375766227142322133113515755494389524723341774663486383326978286375767275898339885428961786129522334461178114322616124277236119581399597261291795522146574931637675192375331373598355116996787267216723812339521652693936161515434632487515252961624214613279571248112361916346575342625348119378818764316183611529873647685449634371752645184829832345176181638189272868546653581291655739813281448212562773975348995298688439697633383239984261856763864222775819899393847651493973223463193859121515432317224288489928949153866169238795348391431648169632571726166816624488427655941148427868548165933127491673267792334664649167993375499959945112418549345969242694294935118175454779296642852813615842566972226615224412621513626148623118359778347334239376922552922298655413688486297278698426739778182554817429137212624432975622147161197591698387938733419473292661122493926654895759819254624673214718145288595241155241195483524119394786944153344545921195653965394926925719711422333673499547413342493157442437138852338593374995245517548992951433682458741253725245355416691855113471567641258548261656958775664354127114124294137491664541499187143379436266588874376277823341954166985356223746724989239229829392118421139482996122654776981486445555522914633484219699592143568322287825181446214864129592998782262248548655449274188249557583792272316927813679255391741256946841627664128163923514519493121674771528674954323265818818114666498582465437197361366219344114852427462228114485844541981952792325877221284362115454385915197397972289242211356831942345297116812598555523633824548238374865212977288947453119385938424719617845891647149316135537674334134268341526357789591436474337357726812457758195792777957691155819699344538554455656486729746181921413751943983341766616965792241567377853138546592196481131525374235132475595574132577931839671492113397842153114255799254329635321581314949123896587482694719675492187558893229791234188299321293134925153231495659176144859438123375615768193993584712374553982751731287745317272169177347146857256523538553384887793425547345685874968493931832539167831961357897597948571212216286668427126558766455591961276719521342281849996754461391434445915754488288829399496719942248183194794375825673415656838394986179863657841475774116496681276329651217692254911755358884112851215364419971584383372372395285944552166935584244636141692665823991449425713681154245837519898361155918439385472388712539321152942794738787211226387327145784617414248778378149428995733929375912634488162387258729118735613679243533365716588354144671797735976764917145913914456454854311835978475391225223481956422876372673882759316677865388633262964225195718523553911999825712618327934362282248224814434771823758486248578884316931198451675116578261352973476823928521867881755852261849155412921968427236558648351425422198517761494772446148517686343538636191632923476123919144984576862487288139919498592621465599226527343999344178459584358249139446217482192723538935354974432521716812315556377437751646699296844273788813113686452417561177376425275297315765878224136645935852569986343548289792352218394394277457124846522787445473631644185141433773291865586583497834835247537145274475458946363352883582593289936199391758486742582548161527227494942897786197581756211238134279463482317855389691923388465967748158545729179936885462724989148263251348672678724741367352621868414886542517766691444375621641395881732727662982961645685346162184941211846818452661933467597118278945783523472856158576415111789747417629114429527287265315885397936483716457142993744763167422493676315436686312834977695612558767346141345977686997226858458914185215213683635547695365448113233168153116476732216163619238464299925527116575595439784463643571155682846645327281546247725944824352526995887727287756534426228891947555123259167895848163668226375233551647966551752417253994661151929232283112441943697165497645681896981684915128476189682625177885211342227422194158482931948742381661837665432853263297573247152253695132418479474735466456938947554477414219138428783374444949241916123831962394371548433943552271385314476925651617665514821267821525215167734354213347187282767316166838715835763928911235724247239126923421152913485677147263464891362848196211522676539728152154581567125333345971988628122575993697896453379242157343927331494464211236353223525893333867671833266673118421798783129293671925427716447214918732349829285436388413487334913429136974667981988912399732334122842131154676584967721642142754943811632228849861227115461923591429651985697533188941635526356571917868925497756235438439623442237797957188353549238531465299635654422481511892434124593912456547766635368448187956529919724431718371511682348227882234933331297641152187635566794297281931862925616985194774189382368757898912821783341958916997292395382879219727131324848623713993655877983952883354146726327482977542817831241361587891523256767155658597943832673924654339355964342248519134998943389239529545172366829572145449795272725314736724311713486831291155522572619461496149946867814221528944532515342278389861732215783351813666984694397717725275616683158119676251581594365743342112383239416557991234486815127425187829742617791544284111882137221232739166953557211312155614453218533218342518745946622576358144911714321644937353893153112285673287296962612491133622419392898346586157815199984941936713581838723313484598439664418436313962544649711442575184369543438877658115795749268433826182888934143568827236962465524497268285865227332244458757959522875853416349644385431434396214311266689485239225882659272191311888273175993299742291261129247977718445853295772293226695317179646631221786517714681986582226754182291224885476982197984374195918954733369321652921437764493212631214217338571254417637288517794233321124729945334631189115179212463599578149484936251375958315573226423446155142628221353147331724729165167434746335241531573791665416726863371652627425538965174638228832533161877182344523543947571375841192798617584541549855693676815121582457626682815232742361919347744965244412744452866291165356676638611181232994332517183619811252842645534493956444878365921539619921423499795715524913624127241399461654514836287341555833428549868164774913324819146618154632997428698826725274413946688665645515628982353915753191441568372986445971339522671713447312833155249555259329832164621155414797635615532376427753755178363419335246197312298199441726172314653814942246935866651856314485186556511312659255252975217742724552659958416818799295517633672162224662338336311441625651337968168114361433238483145496258456833181393176182776151447315672799786931616749245593459327174593981556543481262549133231931787372284314423396153953993677679435538282137748813438992742497888218168666497392247362238572514581695456144681321494654174389445798311659519931922848555465658183916616729272245467851637332841831863212535358524793231359421122751161291832495972339645392785516845424459643256733963863535119221247243158678361886819755736879286188513287685836783724392271927691924857735297926763188186341965483738473992329919177471681428725542774738772898764223446944411741692515688575582219474883999544475522224985951985347548967221773516713899135215161141651218617864681935631928166543876914851865332465291438223127932569393511649763784249575811617221675718139749132953857429199188517727121336433143373322274862214266197394795297525389167712191746439211785988168172565923263588345379912112694257635499652814671162253538713678338249739548514134461535224315269385947354763682365149573858448214642869349562947247253173627338945441842479889184413566886956434356459167213493611499991387223411554585342877546656289627959282899185282834524497238244514458693291292962862589148441354575761619985135854125468583199254312822881369695462123629543352842245414898226488155591482534968378355197336286632752436849749399637766812327168111239211388372283187652182797376896135947713779857171667241767197873442436351289823181463719695734833437678873645391343434836749921738325453996659563294888167135527538419886124322651441857527864569158128329242978613652521739662776876278532387179612917154999896452384848379513857914526895483335696898619649661122594298542645129182322194391263333621665362887555779393374445928783557332751394857124145618257965325718253779849997268633918845517546558882436288275431367257873788727941481168958618931885825814376321373111591654683171245431855275329595421263265736822532812332982962139837934484148432656565369699272121272895772126621769123791383619245651945433295914965893966921267471366868928379292421134153499271886868442916461355351145238472128226462939685483844961147528436639217695774399664428277153427443674436581345221863717898364472625632913764453847841157418634253667681943726512214274911398891342483554731172766271827294643713729376233255475572422873981133314363669257539967348249531745221681998917561113834797485452852646592211673822664258333744818111184828738269985155458576811573636724222516911344249415996453819925438939194754965648691166336563911812136336196225189497111525167589188213931455628415454182424126566125437673774487985162386311366422786135712855242621213497592448981165576991224654975328453761632669314842531249819213473457745419911193244459416798783618789847628612662899479374569163647637543231564662681473469545922343832154457345912867831297288125155248814591564952319897368224326875365453848819797556758659723518319664987487233724954488435747241421283537357765128462156357612117513111879548112569859264171134652579788321456637531612789849483114158651324549113195782284198686574116416993625393571146791751923779192219148685228263466527157288475864549343382825875979915533425187335398666549415533311766262241862811852686971524475643252351766112558971968143549849999469387384232388271578548248192175174684426166543156937144676576187727135651436731969729263568495417485856488947591862165413389781919528462487638889451921643616465637875585935136494679317672843538838375231581865396457198486923542871954649169921633741168955292125725153685365182364321824217594142153891852863649958756671835226555894294661658927166217848337284194367516789857467435692232114989354853425375424462446191788782632491752346321457154594135477818169274962721184553325259473534611534489721127391686374626264626227327714138193771928341367723742824237169736428762918218224383771524966583735117765642215222246615642424391886262568563451282142274222359124177268927459549661196876621342626659349421849182327178761398247456429278619541695827315734396819358279859853284194461474923975285829124546361255452744167915459319561573558636246798574327148292213326218444279152635435494531592855219275135279684487414655641897159711649513114419953138774447358643957524792139582981423362332136382661856684563321134551476957251731935138798392827342596776257613632111352842671794822123911673588352287115961552292294722435845834228598651893555148956547223878517734779177656187853211214944216582372667633588151771484134761618954798961944568322831551431246497191983719769658343413815987316762311719848911662827695725215346322312539745221218442482973252713146951983229435395131389377912191544643684844441934721376479584487166731812694995238133254429456718321716779679714611712564439848225713243888226595399171738218843928571221529657482769267946861269837999797538114369892815394784911314738917123268791717961615429394235393528232657328225212662635237845467717316495298628179956384623463271334126749625936353381264224732618822947522717364522984441755952664575445948393927461517393613182769178737425447113815983613496195179724263124597212632277421384899263982485819872796417947728521591189737388629283351424484843893281638915222457615741699151234665181696438872423395441945559673174813663385279786567852167797178699993888672981884959969355655981433539552143371417974516596311422676353738214945582222673794637186735231693618692875249434979656241374137721191234517176235186522798536591788226427694353442251835816725658581732231188724145252677324724585453335318278423324165878175475781682892486484781172775256114835967632855291344737424733484134551938969327778482921746861317141476237657521195944422732425175743324765956277775424552262784256365319297734811154699916942437871559628268378234544111276838576889298996667693816517175382184987182278351616765431927947218366523717754763796342622955556159791198683146422727299242655222222297615734929219746446832536717436425122153587371777124634141751998139718321469464213625125254214765294955257221367167613627535984123989689855426435231411475135735781123445613594284436955161327322344727563163111115527754114453912386934382551516246288216131556473139328379311374625492155149134846269479971223385769334821967142521756323286997265479422881433863938882823211995283874275947322879622679921596149575651469513137327136256925559811146132684571473758512639596113599558565255812395195671495393459965637829857569862546335658746333132244193193499636171549448858442466118351436663111157132249654211658882333316556873252841314522673985259562567976555439379422569546763242192617577149474441723943878495858496696453572619148669251731625396122147942874383351135386445613154588444134433519862649687171111329727677233745323626994215583727859668366392749581892622317766474841253463171314243723524128637176918274188141144613346319455761136232643113835732693742218849582369211155487436278564824416385877386148428241547684122679355326533761597283814317385312645919667591896852964298167354478892341155788698126199265726278368283488564218656859459929879689251777976249452698649732823312168552452412551252725855971491386415473296313682328138363997959124157669154292696933494418998153251849319121679685516713398986372983253264787715176298683149981833328983862171714191157981796387814284288524675967423474417725164133137961644668618965157279732499488296161335725194733625848195356819744742336364286565325413618291173832958366767218867925546495621132231545769452239815279685275691146467841232728929877138918349722231375658143695862364576535413769335412679643311328253883247431714479886661946425773389813434498619226153297295597329675644919697654112541823758689241855285647428198529422362879273158333461797971582532839943353179795167143237411532834428354684942669548432357779157836313176244988996155569427972442576687719961697283649692716842629244326485641813274283195692642948349566535686647582923336568638784754542397816691233265752145323447344316192817172535582658634463193233225425815926977876637155764975832344827769254444562689241476195189529757911854437128111365417357666922141195299276747488373898156936221548799148616914434449413765145486499138763112884675848247467964827414248662392318411236168496164723796834391463457613917115758717175453929891541531313268169643596766894152317763797146973379649579267527639124212458412767621664591114767721211225477182539245436816458622593773347592179291961554734213795855765479311857219336458231812753566511645691822398565765491768388624325221289455434662276575529733793725878454785296677492377572712348389879511239235373471288787987545111178892595721379586554918572371828739542273439291446934626655585212992266677794241535665472878221394626238249758684422115241858956623163566818897619278682324512574738652354678526439928157398757386876827954347153946146769238572775117774273764598311142237696129274448494891437967967842164373317142126712796187595513297983591755623197231663359617562636274282249572593778212979154162819131685198769366436569195228858894559963445869826192471831323223415324289868329481215873498582857345251141229241241964173132688181861811861535183386344998921774372936562336968494362164311581132174593536978185277332963975169455216817437719729596228316282665936232843335643717341652293348323182367288739184662749525692342415282357971966513422742567534613762255864227234281737746341641541913432265415242366221318738581717416228786443149534183211287161957579863289285525352457257375851963985283897672388632114222198286733784122331463116185217877375126246867342294887841923373656348767187375449443951254722794752127352881874827492176344398941212647488399441233891285986877617247635351468243512259244214347162711292669534128379129997969984321548765237791586396536296731866164642633544445226637683294144588421332984418722928435466635729991244986125866121961271594298646233381622435933183165429454812817853567457872334648164922381782846281374461116924358491614995684355662125972314348675274375697555953163582477223253179562712191358321317953764934621546253663771457917845432946724566978213138336787976175168352468788312711235562931284171163772293422912245824519244338646833515513287174613832857319287316248381669688367394321791215125515277947958492333122274586113236348793542185847761512873984739838683648995119219647451271597998978311739744432359682292172229287568646867217469117548339822857252743698531147255496359396433369369545155174625573252564433899617833826937218636397491915338559347768645555331115988228167438178712137935783985338664924634357984983367728596141168425163772451161696534739338338137141789113437595574199181285859828916981876263487929112337895536618414621636279274917332194273483167724362594547489157115852141591457821525199643177183371179538251711187146463632856283725558565126521912679924248983371536245968637115698419635181543619334787784835684343526646789761176262488436583429363121669164181191113764743718174213745445921553851286526299361368523747555636129426599358595732994814827433449552831458828142411433521549975921647723787325455253383758938954225398679569434956399211749978629863672138423496795427832435488754121195739574383413146896151871176536788421995577528659413653698123257653939924136132411551732864571524852223656423593499794244873393461276544813251476252872861962552843546388561821862797577564187899138174811459415145545889159867785723232786752145864246368759187768121829113445396629895995913982624825186842565741682322451774353344529178926915333436169543559633235678852299412397245831236312799582655894519211723475983171669956899677851744443819798117678686339586832921341989428353339213611649614584337661629476164991213219298678143954429273476893944192555535451282648769387985422364153924982863977746839899775924532534468432725435716221556833893431245716433488656222574429483219594957928257543519785172434922274839342461178447833875691911629671314322238299535292275227196515422773368416841964515512913936576375291956984126822784346917114456299768326649589693565519237767884243932183537437685764766274219311533697581664512774529591199181678281623991545392696596992442959138934555158353629318867679847863589461426523456526941394542668185715284917641342117239382143136657589266654173361586642767637449933936274149737272525477453376189575397166727916861227853265417634382595135155481359114382554844929654225226711517485535275885541133862868652854619639299319572331213818341946785459844365465676491679764377394227133653194537214679165796277571373916119684742135292334579491814931366271467415572111662389287194933459821535226484631248988712418268965183248141433134413944699539545121831296631369911735111646359825892752451982999741634888119374335369695351362432466612364794612818559449363171451153913255823198524996291186154412158237872881512195917525774272141118141869395734574157698873164251641428868343981985325831673549182914795218283959979619455696439567314192171577755954573442899679625922243345777978348566294762635627488131515842421711336385433336771372724918471631328757613613881279394542774749735272689139194858155858528442443825923521533423991855512432846669442494585529526959815949235291655963592875493196232845932657476218211555327156131961257944164842459635788448751986876344829157268996476824616639846444466929588724485856489755377237633439269175916348276164882388568665751741525619279711527156258869834658576826889944114931548641952866546629259125252316843127166423459475342777649418436589948186671978733353244217118961869166971728718731964646952123355227124947651858376324627975113115979223584611244227678456798122667818314111233473957568466842864483172266664452248275716678791557182384147245412666238442527633996332882642221569229284233856593573923789365855547181457364826965614823969379519426678185534861437412759696148681983192252663422393191348879413617254565872285449511788376729873192171918344958918626697639117978531839753739794156689741392549641816678174461178431718158592964712597346762426848644551923271967142913498413376988569543134555432274111231258598258853774431798859418315324384116251418536113178272531352595342483878426588658747549266749947417444481361492712868826594645236938442883768467783719676854411295774338194242138289348412712932347749636934541151771189592518538961969426963537426565943954256816193691843924326833217198664832794813219641417333827823818517581851728517716588616663377973435871719574551222889245496434366337555273467161767696589876372898825216319254573816324185269227362369986252541337688851547935492113788457429618257241343186231673277669568214368692242291162556622815333439363833676294191138127199425227819445371419493453556964369569235482138142979398455955465135866292429412749864496861894513163257624426166125851524848245977456313224638865396137462831567365259184735733132394911822993441971841241751687843617724331555299232866952254846116377375955322629684831121743553494723255884489871423935435819329419511712554739673832922321342321599485948846515533362354132994998653486566443568342967423178844291665298835341676781864391334342461211615974797483795779145376312111134365811714569242744944421336238335712129878294199326384838835516228313232871286186735216764187226658636351661395376874166578429242922443178283859588746911396891222384164247714234759783589832636348242252941778674327611443468555825599951423715913179299518612863196719783186698892559375862435255872373619127271639694856997347322415932538419921686126451335346363512566865247966131493432194855164885284613533813547558535539242619635321596998448286565397768871611821133662595961821589953922595156998799568121377957273827319428884253571378288158439565337998791317623441443434282982268317644331759573666264711372475621646838534211758655226872317285933672683972951931766854311977767369744517885217791175958525785338442268625288671742622851757376739413722868418254231581566312781813228846582123761854794117525944939266546418262356975912863468799452524329566839293769689313743128947747674246731298128465535736142895487917542375394285574642971943974347333922442517321496882652279777666551422157432646532891364921771933869245188136187837343771269471951148876482564111826551922482148522633374438744399762463387853468889311941227515449876249614264978429918148663368246129133711796197397376462439579859596311948167131261622191916586215315977353111869885621655136431241341582749964559355936543547311255838497149335593311147328955828384136165249881649798785473276637817316664611128135835448576471964111269742335556292663241322316854381897121425761295511178875537489531165661415122354795247229492187881263313732833157654253396487333435874822321971488273971876992867464229663473418255673449198988367276119864996295683855817197398242535687598233868169699663373133689541781641911973112547586226845383993577226746951957832674564743618347353628437141276175272723892971857168993933819232166935587672275395115693416171275433691746256314595554775714135367225429266622628683464648712795953273925256451992794132156571728287248719279913346433186232249551685854744491716172143926872877449588711168636491944146475147731346172845584954733541381446841324393953968138411112796636181898468615827271938415417374342615177817281886232647457276131973393316243112432611412934677146214296491122253392685438269165513457847762482295118126263433618334559393592952413191512669732564798292413426864482598683836181639293316384954128311228262488794553593678136852252966581612555123566863172612385787543649185982128472253776337993987675221272319583998878932269252825143884431289294364198994869925757435834816983962653462527115629951472414333343561538561274839239463878981149712677184557274466218328793345651846472883656369445196915336135665924446447861434239271553993259145324785927765749476468425766529991771686825521538438177472238914934447219178967743684511969633586247468134421841634135134649743514859583461848165979476927184462893288453697718127856264328355582797241183117596137557644777631738513526651889485617321935341381382134133174515942272698852859452457713518232769858624877273832324561549614541784284836665434425787532891745856859922338224929795739285552535416689729918413612561595225938969569441838212373329797313111176376261565662164745458921347939164127271261665231183325319177871621132266344595388454142867657396534322463124614545241137536749432917215961218263355562532249859143313555179286514223298324341167892196355474264449356273433137974497551551541398665574637571364657912252496166629293877491175171882527316846866194556326367656318527347619753247864167214422264214477758318911528395577381268134539213337291382132667695157268375437821671644661324162765928791411599123163535736274666573582886621135834325569878815773436242356124528614252611916169873626739172713237246334776128479284485252368674445623385715692989488939855791411822177488932634958569524331822928217675552638786654267758582738668178592416775312387166968471262477716424623967947968123393273416776143527528824866654186768647886192792312755166178314351823318633334793896418329736185719684244795945349351953127481268361357945125991923693794583942665753819168646779448264952996226671453622695748984341937494914226585861443522277341754118334317174243754778498726164939745371372525467585873342712239811469336217183589926848317257885445853182926454835178284164584658644335281684386326765865371494343998974533191997278532646714515587212431797922224966334566254695252492942673638531427943597953848236513521313625314553966686225497837667573455472295956131125697632175334393291323765212894421277155876223842977282944263138139716875555376737562217763874454631129341128145424596595537295261129888332272667855112225137723865917171246757549138637791726565749955146422991386176284713392214727824922735273564811872385457483517176146764195134188232581924785554899136823674391965998646653645987238722814418321262696134147277513123463411139827735258793861324724413654453452289574263581148123469179276695621131543393423294395252141224271858595747926878133355411253646515637686366244221652884293643551989481379836491947824113964568494484328431664219974425338317461221122978999215831526225585498871413588115143987632145783472795552878638979782443517844192383331363811442628552692138243477481186426756865995974113818926585592651451687612772511344613517542333962645158452277514669575312217941432225997278173437464789942697129171336324419214139959817465182337163678343178586264148151114738192157651525511956285121156777526388235571248554962638426442775316387752832647682812863687187419121977555417945563578115833348358227565718873287663626897137831417575788222272422238713491757691843149974943523884436418626637676675194557732686159341372986356557379637638943364235148354815196924719483383716895125996112141412974792629535618869125878616387266958682828711692216635597523872884478739111858719348941229266752635239561223293881694531939932194242848623734575971343526277715724194687865355236534771757246232695134914542111385534512535828416831854623777355922859291221712991449964632294814657965145253669965155945631183528934197969334867355218135862249693914166237977574497265366637647812569289893379335652388331925994236757318972323263349923225677243124452271556849793958782127844644366533136897523132517225134111614846332891574127694919511555736719222989633541248315761386738942928625876826524928542171273357962879314413579549878167698482536656949182392789549618432137991395116315868831229431626358219712358911731961813168499423329464941775559382229982497775371773655296557995945986327614932956972599725411272988534528551494276116447229292566198971585281185493932852532451851147931525164938759693918387669219958421744867681218734874293365524154926856543977341345632149122445137339111223653767456822625236334898144124337363255467636524714199844658719275877914977692662738492773227441849124197891446168138448642637613929159882161452636817425717884244589314978397218459485587616585331447181645467333191173523879498221815769985182873624952148536435433614251472247927643135242961784497331984338152517413954695725996316531449214447264891217968617589592477569362263572221484841492646733463735937869757269611438313972966338526377699574224221789638791458521499413926139983728527737248748115252391492866718572315448699873111583772363549443945881522241919279127453188453546927719463182819638932168366752496119775944851965965911452934689665163952262391739976662682836811828883977957984546722998224988962743814525148858421368448317898382469426575311136686116321439537763367923516756997235713758523329268627697544245187128941995238614288225594662513818598914479731771863936483912781697711245737729817164424123177115361928732819852955435835697978162543457399676427942451159961244933599874194837984329762177656139224619334184364875139748155347343287139455435171376618235555375746329443239695484566153425423624334175844683455179532847814939134345716934459886675895826151446562795346282622448895393771192158148631217217435129767129441161232995411849226671185184134567269481123236174599215128197235182311815676975258192478342242312322229894544727943793759974796691734824471119195885387379597131552328423916968668815675274152847334886749684521248176798655532845862331579828296255569458919184421136671624548572979385496246653647259232532644429286519333957988546772531488512982463164639876953159329446196176664418634171921281417784327363825634373959916637855176564994182752979224462356611916511424627869416621452287956722231592123217182654292451446536412679627519274887182521157739271546729746351911248115717724182425248158564152242426784344174111382726484567591345279565699184288917824362865177463728922617642789828285475356852233795613151379152974494354869479744832425524178155769666722733382933225488242388729871669941561466696959734249399745755837534574887525627834314175174347397161487672653539639145781471632555574847612426542538217899866762394348367964562532846653775216918524936691529637266517754973195445467222386421979686123265449479592819173514656159371499185533385779472258225954223467513963113352668484289148926998751613218654676486518778629371687744672122969341138847197655243137813887585725932939962847994156261445975823494664515845544918449244556361975525395765673312356658737427864461785125374365412528847466989553744552272231434257575564183146983126469322869126538951291418891383222851177669552853626697785291362596451858538923374998577279727285649732377652917164176912669917731533641552488364311576523344317233722119778852312174629747416527366663732795376634169512612353637949762548741489915357733963787344722163327214973982497597825469498322779318578439212266966462212664441436918357246376898191551412591459197695478336328875153187869447936944797152256241189227949666236769476161227674775197224877966115983116414914492966341774419412823942996889635238991114648327875931182568456949369591592847563544489348365338849233257228466527463429479199571927793598168814448222791512915412438251471992347548152983938194623623259314823837263318177121263129895241912165565475974942183569255657335187695388431312421226159896677711698411842291114247722126851215911856855892856445574233793147353973265237325382342151559138122339543761179797128473535652233863854121699971221481885419797193582335931796554693964246193762771541352322258869989268365832311473624551178963391293424627825167484246211362481261764434715427118376534368716251168746522524875429674574554492946939574644924441876538474866476937324425236654832572855548314491687787942893862812446143824133123462199252875916999319315544974669528239746151113898165686493488989979615731399734534528653721578356192222189923397274249358371855988826161654892847848717485496248645929217334916838347267772931586162385714861113258668414698289946567484726574437113452559666926845523322834268399622358774646995592512174368333745713433832632668824331184728376664995129684151937344732736331517421348617347913748233463668166821329123715982661266291819655216768534554363733338334761283974525822815732449341924347623879433518833227162432916139283392841529644711188233332512979588339375548641163391623777953651127292886636888549525427488525756848692452384192896993636335472168418258337972955446233489653376421971645185641783118466936314193676161126611244237345613832882413651498242996983629812887222131492284254266768357543182247132691342448938473777646161351823781425448777466877957658896131458773918916697235511514338622283527793329352561453116321576264749892543934329217692494754663284285535112116718676426812419647864345723736759192142989957615751111116876813731475532437592477569651925328252481521558423158713719438332319772438972447684151654921723548229848996271372863623441986115483544194253648311517128575753771245359678461135577262813478516371948831878814282173379141434885596163618144125623494283834166577277882451626257616418812212555895712685437435379233868435123849681882998192772271775417189541593472494764243317131931484451845672486589429186948186961816351151884141147976445256947513248574637129324598774179735879616559227243754278962393254895721242734932955742898931294612211969243479857295572937955591425919363599345133197246698288323853516291215363989558315744338384753138967928747522668678214519742661837273832253225647251557121245218729791186789294711937612275464688722478383927529359626146244415487547794539224961368334191724777177339878462468332186931837642223754563881484738949318537754454688622149179136788946326529574214445526188967257331852531478986376923358969354623554296298417516325255619151645346619713285181225686673671338916272666144451777735312316355873798264746761362521379367557221841216243794712696429925948346132854476916285111373821651482154913164969419525426531739447683624851837961255929456347275241842761417122673264358793415547732152291981487455213271845595689291279989332812438821281666965461118415944549398359196262422161895192483265114741634496644131622779585999215323874483725348174383283279832245751734852688753413362951327558573619452285188997819983726578168118796953525641289137416312162527571436173656392761413145795549434871178656939431237316322259937447156989866434127596464521451648878551399768113582746528839226954246113649624616111568555651164864635459872513679121828434765552248365714235676722211746418263127872593619261742155872118566539486882115433971766358567188326887972545279432741885275856419637322297854347665164435715525943421162236815481779293617523546822485331662331351378634691657246813969531987734664869314697656516529188721667477644679284375728797916978381283322152197636599569329119382498652739675499159528539138242434136414874254663769449946849976616668555119226912798216156869713493542953386293523699969863723513573712742119783151238554935911217628639862621469579734437168117927364171687421375437734242645897747618463854136264533898567551274766753581329538439124139244916445156528723322641123463329783314413134381347299864219287429879448226141248868766175779744499375511113124196944192281635535919424914454356877584435962986389956528723843212716417724945594823715119966293463745831755748437626725792621734872616328215656327644597138423723875187176859741413347936168158513737731594762464636765445884964751353992177922849781177693196982299828119437624827165515145817215832686631536119555656734419546381354555689326238722763857443929223125158825355222197735771236822879548416931181556674271925697536813544187444158169226729138372585932768849893198822969477755672773976582283656745425122154816925812814932817675159285814193376862847732124247697498345222522995991496453312658214197886912621333331583227365469639153631882641542825322736554926675991339222535345273356554546136769928396331331885677117525251192325796138576226384957281617645488678748539374765147878541834627817731711497139116921397454292885325979644321644741215426292773952713521118231275632191453723932411512611419435666433295899898973619665758447768486921884747557459714897663453711759374637972432392783662426217272432454262439293468252584616483659164532589777399388151639764883228829425574911833872649357529272238214522286599528775689737226346337659997649842561184981183743135889791611416694232976533128452167353223122371792566927941423764165989536842326895326352724334712741681111967145385684381281442798424164777867935972983981758547871259711629933586418263693121355287832843163733186956951956464133831552449431843422164697215158213658491532422423723517314867168657334882587783118482299266928232619636368971859562127152836317411751246211318995694115287364551871578435921863143934985391536435691711967668195648956486148138747676216577484718343446274733735124622279967384948461661275497486684269977459182373274839681197124139264258888747457265338237579468682593375386162455441379149929746689758829382663222983799683761366941284519841724864948513922988745447414633189581156829959252774731179747452318722348768837228231324859192657827174133273895591311186713782644296279184176985378651111372989954348321172144826568344429688924791925969466457953376641441236345572334235914791898772837486315292215341632853331568692272783331651796724394697429855828511922646668918526338659149781922632219449991555237397517221918522888687434393759714921396554653166566828167321469517648654382159269556562318555328524671916637761842238116235275218535413487938133445678631899121558792981763547692941131375274493549521512584713434119631815774457468839839174671561184513626568117728857355126724745189847621236563981949276914868448177761323119453435233975569211277438296674713346128752453444558175558144593834862263712131245434872951693944362636297337696712412688946328217721435254313912691277761639532818187646668918861184293991832291645713586644333433183282532861791825323143875962733232162137841233343976569767379266789853613882692134423568314321879421694852332263248344637463796742462333955153672994713469266456937958864172275534388361124762833415326333156216111822515843776125771927265484688955586955234742743333224315432243367742614981649295328695967813377537453285626566994492642522289813263535212977231732372475355816659824594621235961586372745587239688392978988684669354598519484868569524348817594783293699194954547596484725367461546484481935177986533294686185797844329157869782553587249587567395253917743327972524362714759669212559837851276643173876138562229473966151942217174717546643487648852745842792721244164744123262991495431319266768357992199316582471812495365271125931393361713972229857533254216199137148393296137744791153249156583737547342942531434897913528458573173682481693772356443476573332422933431488741717859888673766156493673136426121124352926243476758772793357513287213272241389954625676474817571331683862838243154563513262679893974293953439238776854715526183672284685248379492326864323924215871317653552234583916571553437151282356528115681891142958373522675714968628928164529771423512148828754359685812313783644677242373389338128469941465678745713151213913428761668359129865614343412434112283941464368392574262718618234629143973776929361814515821871426954985636389462474174497716337142231348413827896571721196522622732624573352651411697659435369439413192956311575254677583149755713516216771885813917967622269766917517857684433819279455963639359745671941947715367818632524731972286695225765872759154116891552925191446829391159691593735835571664288258514945631421652535656155293992826389876995254327211578224318351851796132212395127134123344844531861361317326246238271768451297513778723735266758117656428353733313794247948654513595479635462659677426212696356254111852195473728513882653683227472477862559956777446537931954535168591931472116595164319857475937381715418198782861915133619228248968298332123246364494454392366255716556637436414724288777323468699387957434976381257286879954488827266988876385578366621294248824768119181643642898229828235577313488599422555863423573294352418121518152439995416131379656452998513187472715334336599791316189264997748462934334911848324298125543385283444645732621918124494811142549524769656857826131838475586237531558363831695248479996166156344387368414565893239633497123787297511756465122933469427722173531564876739343889337635447842561816623516281681513647796643742576296411551236577611112689655454433939453821128899188166614666452583159629473268793488452296962312548513538354773483513759189228712342846649281647457226585462147444369815821489195953223587922315834133982192353258961147515819181123715279235419956413578356895136941122279396739451154463585353699413426721422997561197949113358262432412243949572844138663457448795963419466757884275482465314993155268343391968991655685329986445696789646982732792627328562628214397313969129446256995994153728571547275723931983923791297729182135623959337758135927628742972923686191246387373349122764378239533127681861142148355676421853458119883235218181323112587366454637279145441752241291666946116325858524344121641125366817821862363671761556237814234415411771394956894595271543171686329467113163878596727664464579655811153371645648174156712214544195931531586281429455242316326681651625437837327972294575933979589338252767236492692152728119763586717967381552679543421445814794886511922273583354828672872532571651113874219633552443165517996529189491744242424392175173383159653488245299772277859937822683727349111853318432513544726925776622877516462981242319286185629318499458914231324376316179688433536624754977121839366771826439662953471196437217156618527696254823654112248611482162971115349141963116111686942439459271615737987821717321124635273263487155112731789967266592636694591158713541173797522946718558921998195299315799725217635997313234726339975699943485795914924518498116254222453112936121384966992881148977479399531234967952687298188247337115995545358963465856652164619181124533824177799291427232211769616622486783832441323742443881248531294222684678555413891637698943753122744649693288233268221417446319415744732341837917829121227126511241441667756458183555951283126583955118183483895842266361975152467638973297321191847782841175658233421946749568517714169574748428741498365691732125318438298591946732199124242186589577537189142572612212834187142453747448232122153592657141759129548723347456734215737132648131291273457147261835823852218899235351535352691526749968483674268125366291573515588278137383216981162545387123116891668574679695878786192954919617792851534346342636996884457419292859245415178759256931476444917268899583497359624193914519178983696567787964892248665177182734216343862115272453328323787249148163285552928324362853251159535936513313287397542235683993953934721592593461756827853795321774768721221977582498853287721467393352221616497994391241445315245343214324447781778519495195242151297923861786625264989927313632537321965536842618615255974835375742798251716726159434351787125222716563883891183956951236991654482321111896333383661719153565531549384576834431394621142285642686544378614455441395987321149883325371514784752798429383664516657958216678287494932361228431918489135344894945441645435168271188471567437142256883337981319863179824447882963461443685461641775916566374715899258392792676539735897624726376115195329511167594279437153811622159632688979582877715835212341721567272266347416268883969973799124352399284277266971598433181142375437489253224126529993258822554179974898215827968226574584388797912211515147934515442993846866132818525693615327221578656352456144681452749153111895853747671347286621975941189244267366186326453168176564573763744334355329654253133758444794135334177118184117642537917773183975965214877825968194922727358129332324632859855215971386158189752916821612937762196152627717927493325821162456346647766936147993524273687984263457553251716312981298316498384315713431387269158154352283116156335142566547914193579827744594956471173643532766823773215215943221789113897369663772977934149479343755485486925567283285452846889137872635514755115446248685699862923535847943174617689678191938691113717417734945111631811111995741582453422178454292715338141215899782334944771782298977457782239633627638273114834419435855461474828564413931788516443611823971297365983948699213264182324953526314265241397994642597131955366449731164647371864552111457326264649787993747267319839215138215388933776715761648136194928759371585956514877454917311384776571159383663664686914914366879598155862798331229772259829284292864355794964918636663981363264134689883483621627184662289586618522595358152968762461658237679791354389979814422878863371534414852321829918689449592473489185385834338842652558486111347461747657247746838844931674419943288227589765621758419151233648976734395245129554354438564271349295921369761574654539831344352123366342223488695424189959913113563412133424313982268238412291258152222776263239234757989157413877252221863967947474774562473148461144916697577454311494642196362522823932696337349266942423161876384426513485944425664441946585466659613243131518337553872281945482512449262157438588151858213155687323481294126584282213827343389316997939458744498918621466932199515735192364575144795442437853192517742185959549594218364422942473649851951231724886524354133764616759955253133623783875177947859635286988864387465975429253717793422875237944776419166195321715585514111767163951271117376598276323222449845647958913514237811763196625844735736783527529678147952297142868518549356643746949341316939834516274827629263134221972994517341335372555819356742678873549599624688636684191192824762889889768397175623543554877437562533684517518158464791572874438421251214274766925586967671975271264826837249433114664545487664336761372327783682419388846173693367345393982297333687579594747274818242179215445138425899549524996464359259943123865898194798724394284386216153741411574462461755465461793169582512431897995954616152354445715592911982647649231236652267732128651725435515169371164141163511533678284258726593784848371785312258252622954893572824224582637579652923833181931173411736978471366175779866917424712238196379855135242173387968774573863689259174739944774257147568286966458742681651539213532387721655914685635379233466784882453112273613973634363594972766265435976181419176631828835122973191531764656279265329143127754118585675711161617463889649589584387734891524454484399738712918739379461196617836718915871192597566177572558719939756366628681689615115274663796493773728256386233319984128523361126252633943135142721766117595878625889312378784879915632853689113624317917341814222771446134363489597519382142927584966772126162441531524715531843286357872989161266883831954767468335153385256287772162829434787167353432831577626686922146828586332726491964276192574439176324636124622384911522341652846985928862768827248551519586692241734423597629361571345742281376446685566965422797844134917479133396878299132195361477757975911681825578448564721334953577612832586857911374862813278732483314481894133514597699865912145783621554896478874742177449335136928461282747796538993162591444923262322386219991473212433144156127912788436414686911836723946811288871715988627278946214365318435641159299845745968893128374172281863436749389145179812724251191544778414357161596412654983396256128124593867539776289518714939576421881227194598254627324892832895253334627395447342464721819972722218417839234646484311826776841427863233358237287912251993461782568832784762942672527569445225641735616225635432395889976835441314125519945716796675943292366428392556682439224322264386668525132895394923762419356623636378946783386186811949927337813229195227236439344116661334717256411986822712995426943126834114695646399481211788749839989262591185784962331158919618514341784535777121382544741421983235589422652697826721756317669351982949414117155511946123346712722543882735291626527549359682943241661563794497636766445129586898312254122511624835617531782619568711348196997561911545843781417851911648219593895486314925211557973577948688985971597914967193573683419382577693773595433325614688198514978414311475938792381751328641527172643957431698713621373273792963671493792211885133642557617634978298864577158913154193251624392263649847773164256354197238765277963699957391842943144278326844133283499566662126153112571737687276641178345545353722234691359359855254442294478994666488332348432974936213455412685291734199993559933762847514391178339938399784445297898684576179945757441847879162223952446892792238839914915687951765217135725612662927976361184233668757475255319764674575533846121358479155435362817932528944856338883597145123323589622513772717755738113751237512588188485128911643648713687573853412439258913511187899676171128162792529243886811293951773596373622656144518863842871956125331997739972533956979718165768661114344222422141498171461568652531522331634629345117659267927274347343129514297992244922931532224145239795121118723521353692299119195317337815315923369931929719777296864121515648229145386575121779861314239275323975849713855963237422492771555378658515814811272111395327481957942482911833274919892836166294236117733254333649266964266131143353918863829814164736964271731255353434533549961597641154755948738295344231588669923742768877348712382997123238512796377758658463233934397524272947785993111141923928852691997495323952223679443836699627337468925283388458521318259428765798535344398264142747267817311484341313664111785813563615566688954159532566492366857762265719241319849813913135291371546435399848811222133398394495135395168871534851191634444868284856217264341425271939268912461448138417371331222586215149137963814158357371481732462956959662119828364359469467324781549458652729498712539386847851666551286933299525161833593569738213287368514116498898155235469537171855621467362327619159511922113459414119486967514835985961411696965376758142231453911389766552214213617348468385228587887842727315337135347797136477594761131725797198891275485336243532186622419137729384291551367746344273541871497296487656581396153494971127456294523299882195146355354242857621961182348362684167389796221548219415416373563161341713694872557718639811991627624527659512221272122749822414343416299914626619463467436166571941952412839884468443846567274356823124573768131678254226119924576138391214388643959385917634417855655991852743111353617499219187259952156597711847167869674242261696229518791198232115513238756461528161495858694111544134428547188736432652367717457233886667513148526715312462884143146917936274754989265231882326311746339742521212257231953344568625835871851339318613141653751283241383567166363155714518121163816379629952427274651243196787621715559171198497228439912769259588681462684259645487169962763257177214959299279141426521264146785877372739676315437233315636954871163744131955822633666273747114615245144575147921399261443828821552475584293454891712912738513576542158493589261945692251786615261558326531361551343946946137419111686123921277668692247657653242996212851124176388612828271222142999644215997966221422223148138518468935612859737795927431442934918954118632111147432724185332528331769976419434191549119388246452164577155672758515941115493181351113825164756546249437374157554523281478642566989634659444134392654922763654526861484238841611951443983723389435161116559323643337117411389378161132247344621274288898283462132124528246937338574968417137296781647253735642247245456245327955284571472777352923147144951431259693596913937129298391889738636395179592845318122221116257789737474515997551994541769736126626394161526782591686871429219458543388185272615495523346466413234823882972936186317334865253123593994454887642952912665317517247916226174999614392425842392849289457852176785519971693631866438598472787875617234332969983628747852632625413265112812259267675844148287333851413352461964451812357658263286429242146472628832963318624821977971727262536244913426231141436868429299471522837651985714543874946287115379832836559359492343865322975735926955276614341986295995422235342513279559517327651568889694757566652317728155634369231421878756166991816682741122616327467656314436996231793237812873516538787659452958764761184834137212237887728932869826836666356954247161131859455145427451728853793916923812666729343266337374867344299224154772331996773743747629862929167229552259228817922958474238164445286138872492591986961823775342137119853921954666678379972733937522581948714618346711121131352847225446659831574319933148368145563729885845924399556388824625223282639353963337187924342352472476749444125564532699533335111739921556118319851951738784871397256425121686113496222993488357171739884682631744335794453887282779965591515757319659761186575244721561615111595924456425344966188725483225716837695321325299757484135158358178726168713232358173356776777486284518397566582795373869535924916893586973896471288138667432745544817567325646234884853333417272356527229796941926392318562588998326586199987967647761734151859816588318973183496884465915365658541824136437224671236111377918179415453521521638837144312543256113748969847716344525686235683635575243596449499312486854911296972967282393124973113184598548117864975917557272221841667345918168295881822783691418642453743318235327151699656316689115253142365464375127181388313246583344878326934716853624734575176831733814426862917428958139216227912848913653129256217476888531944937965249111629537499939942198971675968235298658991173214453498354945215921887734598456494731665589795323442251865549129275821468451438911675598438838318782632686696698275121661121622336854564916179319195276885133776747194225135264443644219356396759631728719268885223756687871937879947119554838291422313324657671235822495937767477934218278555277482164238372776459319411985912196143188757624215455531191654592446713173359688421316367471136994626223654679742564733299878396283785355951922124662217139689616929348487151395434991374744918925651669141362539961777158473548193299211122724782883765892738828252332436669611436355848437721328771542286339788358952614523173671481683412833963164193397634198588358287858197818651717295192248222813486296834198264522815677334919311411675397253151399852192972298522772764658876633391586867463759745786284811551394937251855385853624495241356626741127327125846776595274122162874252579327457254485125484636143551956891749152177369331237835994969517791347668559245672418245441859572149324826662893862169977642644542283335285513681296989212883143455728582829396289726547124136289929172872735375174381476944163695693227956552144844758987854812236679455333721952297942981872587428422772695146356645228289123712663127665851547872768756435187786123594664581785621787817343739596673539974681472391286417284634258129599281765229977269149667234246175478618249922329634919658255323955117616912291327886344315852198981789599885243512512395889931613997936544252934541437526497234333729183788917397842671916846491869269784213613466953385254315871436332316348462147785384965167317319149441735513542487672648373493867844682512497314471351727631756581453338524646263294985531732217299232618723489533861332433565628648822826839954121337224531428835317587931952457129278384185135485823124116633652138815614647669542421647442493247443825518256628157646928762217322847132765759869553738112436326449781698587763658422915775368316128864227998925657747377161952186466922436776427777278667227541422355538756166449443688273636722936265594244384555264456899755133518399218162135315999758733673849685181591965292946585893556156277188841119425925113531124291634927966544233456912956476617478654947275339381753746232861661319444435892931762893446838535389338171144346379389162396711598198641928415451823684488117627595426338971742686713441512117133172941932794537425159854298728763883979935685272798714196553417994926231783996281145314592882548146681131494825778593119318643199719432819559888476798744191522932163241457283361442967599129353899835391949767672547124126221888848116921552253426868699365563813364568535486648137676823436929497136673434368224353336181157546127492938343767824476527824719972921486277564632378775694519122773376392881926728544621713451994836485987483126584228239389451899661386423896991443821547573179233863518469872169112961258483323962619569676281582388361468344575213961112545247143782736229963445264351764251845658552154274161255746198983652821155147817572613514876589583867519743396466516127387236146599831225269642743251611856425854975734825235231131422296381238862975171711419544651399815263624897911121986131148271515977231555211368353215437868278587336321227337413134831938121833548687361345951737861319769894872453995965197246723718821979865152725855269378131381676234549178413732811213317997941717256618521859836466215818741313146276682329246867354737312225583341199818543895344416256961756481279938527397291372161452562365814619361991647618351742482954358172295749517614746571613637915565737444538296969828312684297919625752621745865366457834178359587264157626353655552979275947912752618584178384343472912142111928952557914745482196928574752443651583378741516576843172136927729622374525591693255826111119167242755217524681225121689392613158769159284784657659695278561232891611852928249893126744635117243333543473285572715619323837768233664491296762966977447152239225177578836181228231166964965968679627841492818347712449679438855722669294117335976945343121548456994189177814635632482667535656813338238291785578423391377114535765359385533323754589346886878126727831431375428772452812715829455141219864389277337734752759437912498256834125397678984117512615581288731734788253791325473716294866831599373629764915642675445531172244956624391451656988573687722475375191377772939792227225313742891445867482612698255938887261186116242134425551193244281979978996497333543883666117963843115799732274625276316279373623988428963787425125391516194341263553689743451134721533281573773336525573876583643563638636143692251793432427862556625652383267668868493336111791419292575699362862475127197427611389115153952938176931591645868144735944966249146545937214742454292988468866821642977912119233142876458888592743821728576991522664338323371142917558215184446488691915412222413745515358497995882356338467965713853847857693148746597689764298681754377241857261942672343848321271392413412119182719282924528469317887285895473276972145645731551625476542272739532859612419252216247113743387934289254686518145276262392621482239625514623778793812352774193128851643352772828771631945675563222847763627136435882116183893496631285722417122714328594752836847248411312581951586461789536374188958159931651565832148647299694894611521587994218186461498556224875756771437747582616545725226225762627596589256593472935678458776321144582562492577969121379685319285541443162282334138355398129888833135331346522532756991375177233174712183715743679921885894942129843495968931762153586395647339157225333756538498574232456852532231273983222265221826218163168963279813711257423119522483877221372131842888328122973817996456647881875626972274457391398417543458264435535743733116775281976578792231414134881515566791261328112594112522639614446428153895417898395759564725613666821188375355481991352884619221494471451257735482453561143871873582525768284719584447289513969339314566376123818379515562231668227582485869318265544931136597778435522987874589367774113739143846745719842426875153597856492958825949294321838653735751479662521255635971824161658426872667824457174211296376292537725233592965481398151831126117124439312333573417565454131449143696693473454688672474531341287119854429384244236152516395179978783728717683451293137841538787618255585862391899518768671324929428339561372747291889786226818722949534551424382217952154841661242288526338255629333576814766717511232317713466827523213336182567713515871513433119259139765943834221779841564468515294562581818174322372617239725422628345312382914137461863584332612648461841929417768458358359442228625486174922982134593842999181134689493892257994275713384812892914728331328998937841242855368638638453947382266426792628663263314836225945169132866615725739756268134444518234949383264413385648636818686262622344284835635351756467551149922294645151226517469914619893712617261792757868495192862898535526666468439129763573758757142129126138414672425335918116214744975935231447527396877711241866842444373826127728422459667517554474814563251243919316343822112133875495422712243646477787394866964166482757563314184149691225732336972276827572773697122515994888555718265271222944224476833781686511845246787111758798881615933614791938245352595791974268261558918623659796354293694823123727485146343454296534459217652765867777268468365379435568425743552572391239592821852213637367861785995139613587214172257171295982821742172184574675636942935727314111735466228549782162154352263286452622112717291744513965673934821882872791997382714313143399337254215682238658477556855183863174338877727235625628555851969158115147296244767575736978354319534244114967565673887711128151519738614613964234694114513241249957329138346771659516723833294916415379553968351284225768997242653338447928739489545172494984744683656754534213532546175753291921723368597672523947498777861523917599584656418694484693292722466653969342856149163448452534647679133629632936711553253588295232886961781663236533526495979283924234719287563434563578135432182411838179941341437731871676677936571943481442813172213293784129469444461388863973677926531194222768566363716465243521767798572877595164519269583768763925633135274881716856865528679767351144466468212155179532312811917586952874269836673322569284928926136675129186158827256929928687632597552543322515215679163195964617339923312913321563716629955247427557696524437629284776339439278226728473769851818311623671899254937446424854918712931977468231518416596144334463959622882443543127987822847384262753745532441956628366824588448745484958348464283781392713172353223254285316681855554447414853949849524136396325416731114276936597653772523456945695421533815973722556465672627795499551297782757897573389368123882778199764166442971695652266755298527675797793178891831635296461636242174845239935133544496633593254523421679143861395351252913794482971638583541189675991735111124978567239643921344542695362269635654333453212819257865453998792312741267942611953639147296475675122671837167494622812182355165157165888611649545914314342973438241931742465333236834571397874881828663224291662958926597898968141788635178228878614987971232392694747591315844981544929923383333273631829314551462457171318322422383168592693545744547553283564587352576862392266873297343774877627974961123793559459898186435858377716454873214461738183483112357378156932532185354887231171573355728141852561268337324745526788954698864815232866255134297921188772268912191991231295872663181622342773759324232493317698614643918537311735192514137631339622259876223185679961297454847144156818734391523158471341768772232581529481324716824765755226772135416935323291996324663685772929447489796524323318662751866387336946474935671832676152934923663647531238613254987263725591799423714179721687254186784295877332513616751744529661373686184527256598984223916211815297833317383547179826423378746973898361623963834933468342482332135421554176151267738446146448395637392781814618842424325692388857636493898813719817211117424549958572235891845996425271238315362829724139489981291515654325829429295668456594622953841941133423753538859671376927281319475378571774952528791863912129123493532133514822641545441612435345774731125994557212365372223415123474951613337956278212319865792155854947671755936898964626586161449645311232599336637782573738274391133428118486584881594669911814738779711122152994331514236674282328842359536633463994334626125149527419679173852697727886628367722239488518333135323725869144785117311913549715385973611135277643969938553275952538816457993138998968841587522656711542713323278628566161437264523556622714744455417485175553473925389511736463781931564245685748329988278566437945138246486196932457614892975992659732746416346112288524247285122851267385997343254669715515583792152167171155697129296515681327414591672567343932532619661573754124915131475817841325151988733187459932159248145366516463425465142652111834696556418965443563654599855846736168314546496838727623514159976142583227644723633983393621946928633868122618491794189275264832684124875267824641826939911522368156396366157214874332754369264941246751372377623645171543126127247731477866326493824543517493819123722285337672167629772266281584774178662794225754669189515229656711781354311217565667239926544493854391491982976391528562737448974633145153338234947468332526218916834896687551591563365237153299496536434195632745638587335563231118884894486122982622311223222391755515461771927145165579648459615838562598196324951669685611618181468117867597895572923343168752551266672788757864924995192917351987478551861779298412951351411772363589865338677779831826143152351173142534236789288975133485398518529435317177234314439937322889951377569383498875496911964832292333971147515826187194637941416225572176361456927565883584382282593231482589674615226851376933485727733897556685314312961612322193122245379329997256913221196867185318725433667556243396254671436935953183871911228128368248729662859779589824294752978536164285493458697128637439484792687316548588627286486553373695759983822253996315885316941343986377149989665889534736718948148671785334146788736242635335113453824772636994279577917154175636994933182565762356543327872543624972344419891367313354243143124572382751252559376219299219491495459797723796131987173296953562677442646715869561451988163219433348156124331257691818492838385354119964356264419878295662168327534215474322728118647385985658162152727798999869612453878433776139423335459777737721934841566642171835418337831422539944147182189732781554387875244326167735414865217196682735112819498896964721377445823245358345421123128416385541176332863492672532446326163655874314299135848174974843342853442931124658424678727747342713716335772395977418397624528353581684311137756539447687945434516819954862863115826531727253192464927541787564434314462847715883584281182121617522163298599491391455556113549759326164264164378447941124572428714532448741845648628766959245839854641381658554123484558599324782452525415474811981973217257235974568435956254314473846619277195675539731259667254154571571136261176921122518123188747368995492517468344267867373527942386792484771994977854276232577978753664945889913534491294487773262524477314451518217641475642122543497253684692558833758668223259946425953527633713223379631574292391936936473477838959992526349114945717646144196416868645715119412275589741287931352442537669296247873576821261111246986284921142434891546144474236394234853934771416759331125891479778979126714511483836472134186847368524866537774224818618187799337536135135867439247319221231889943248327446964784277444217829144737511473978221725519339158222561779431871689228693453884838185146793323423894431159748592337453852443512774351482434487967587553868553459631761915332689988781949776311931655618426133738159175343279646784126511934312875273457581214599329936978724895311133138485676221761461417339162455691179992826629442479112573824256954997918325826947437463612144517894298914645152467521119129986121225614482252285469546746733445933977388791473473359268197983314241334571122267491867399751112349586331138791578574371158759346322359838658998366126276641137124961935179524711159699232137798456555529132994125184246258383912181329674698588742243349282183357735656393543456151151164312451218896569629159778998813642944682338492395995623426866676844136731484338574116775969889932688772929316834895232285115743138647757116985336129137552835224416449465146822319874642766174936352316883357857764197272733115322414699767615593944556441265183891385385438364335187881816536314178491247228954746297651144324279617587419941969252471247727946678251258372561232763632669349968521251515811258485915373238432715431186937834337146927925471264828779959656914559933842415552369275342629853762284725244415577359726248155395135124581496394838424453887675354768362311948174762492426212186947452993834736194825929421475276653999324845451253115131159645249928551121391478572923777954667237478921652853885629289641896533243974571823987976679513362443499834212136661925494651983494348691123272777321758725963374882148382412111428651833797438132343948112334129295615277257361225182396569825281264751556718742172694379782928933826488824793898926265966647195229371766187569146421558955335778113771984139645124166254912493546913764652577769343184629346694242468171648612869117767719917725318545122254931161955474787498889123123628821694837334735296867267572481798294561252327315653432924864282363887623627947622443128973335917544194966831289855761878914235544955391816486172813171714511214418186358128438935449892356847465859829823127778358187385912552965698887942725511329154787165424197659591942719245342846581831173488711164963479674284418467217957236128826955261276124917138951837421582755727936857629576835786453927578982152559734688221845661121441939422491228526223814728697432527511657664111515189255713916528384652959558788425989876766874339548563311382174628359745521956171632911214918461695469186291971338784217415874456156894517642372111734632873623955345144152471619368961655525818956361847265177678718643774299143711317629139588232158351559567999285355144794463469437237362416921347324987348388182941164831149333354666557811655335747332547815416682655369433444657313117597174858286112849441621522788234238721844156423233671498288788491526376348274796283422554529792649848172155298661127751176847332468432467296821512581977178377995311428144216736655224447365614112239748615355818219815344764973819621751262124267138247393576526826566586467485177235273651627416132654664574253199629338934435854367747483757747998671682982285221914895316112511529633725712436536876218932699136753441197362851576572393783317121736964464976967224825313682951668922315925132195629327474746617167537455868764228871648853533293475932547551264435964729212566625795529769725423659869559562149725895269383993772996181132577414266473662933315487968716447588738911998357397145146182897784667431553212665481269436392532193475136118957994485598221717476883944467246758866795827188798915295128212221176614983924562362393145276934859644693333985832445839146647148771374742893649345368818993347253268537218613364854417996512528136549184141697645853291517554793187832527569582232395664794269261396135645167737926634965179243355522552122312185375942472363977512444161848451857624527929438925182514845126593747986383968448469841664958583348879473121993756231224744194568225289334659132388585413439897627519528122945462466855735779378357986257169517871499144519263538217243463543165965592368641631522225557626983132822438244523558241915954453892828142871818762236127353824322445965379155453549436441177178171512391993797632451369522733185942983243382646158429818162924372947727229467517919923619442238442538953154176124635921357981621471882112317483691278173311222899678296445285996995523245843291638175349685933314475941621111451154575225422564855384641559546649674826381883649915412577237234192522227234726636158213311395474376277283117349912554785629827116546266675155446144986455515746173181495476354435588915231181391589326163858458292772565473273474167553547198152463839762492875315547828194961684654176943961445611176946738334637576226996563913426561663547497232822711411369554759246693358696726245181547494175312952956859911841174241591815391453441342312375452724933251138766263362499812771444475512288632771224517183991427832865854881253841267815471683119483935471832191192891922156224487426299849758311792664376542159332389959236763372421482474353234744519333183487162214816655232214848925148164461634481726137468739747962617385849721247262369173227268223377124115748518875393251874463799232845487222428281164753417144418284297272346116878116963963172416424211243559556118372297314317921665577488471589458838913687762611291233632624998125359964883841814552366231523728624257253925948126416164141751357912415912669764221245458359178111474715555623632465631427481857543135171335912425553421199414828393235441361115342146582452834932121229593534126946546286822769175646549236745897374829914149728792138866768466399313137662998847213686896922279982487269734384892432558871125172158594312692324364181198362274319412733389173471558812112986561128721232217125436653333863342334582912642757265535394511786135692842971348552138122671371751662194744992364754238467376159784555453932827339454641736844369238542156886231332338258249769266654692562971216225561829445756416454435925698466439818261162818197597181828564532659264461336362345427456911314238792783216347728531822412942917349163477211285222892795937124677231288239852264286847245715242933425944156163119732716654775131761196781812251498944365122984751556752761484425497948456556243764753261364748434159432261144955375769855959542855389393897139447926195937516291863767385159388551861417194477736424643393743755238813342591888132994449511256473864367383416275236348188697941475251542681315999969127557539373273372489261255251834719428487446813891242158211813949353338251969188461543578328746153665923538413976815559537875226259412655246496323394927328887423466659623161699826236853497211984132917998217192311287616678742323816546819384111991779721877143964316553747392386544682538581999198656253161612925445929866665494315781117674339612124459315114861359435991716361317546288251324638149996582215413921562633658766889635448614884642159843121159928152116845317735623579216665962479167289214512693844659354139837869644235236162562162597937532686667151976822153515439181614491617353386123289658138784872323636111413354366253371898628123412421363943256218326342516759562312569843915432266525739716364293925512522614793815414143756563487757463211514149622555649777643783675946161659182673911556761556428245449427732889257537144365372778796961885657832462338529614378113329932646969119935768779377686149582989877924324372112556785846954379922473413533445498243745355235263779156339319952188236992318665145626275862758663222719654317113124454283571458327843441491986133818227965671121179948116832566711671351667613476526249483936416934959884345232214832199554917327656947213413221815676919888918212981235552346172612862349291213712883597714429212526178848953559239234331883123286122313619253611716286513679125452451654531637857387573496362784923241957126244442633228635536816261125984545299635151273658817962652942454892297913148537831981297324678183117987856354139167143821863393948457616724447696597212523967173319824635774874869439877234696427424757222645455722891851142367789355696434325697657986734217962746687747774589285964225261562288969913941381827199754236812914723626973333919322286942643287862956236127972875752338933825234684639425624573547337224187225773214149149197119866261119942249284159199272196963187166362137198968184145815635136685341211417291274263767119735822434763847971391976523216949475394114681681732141549184249357736251311233128573847982542426956328223794627779614275647652769391442833953285444994458743537793191335199154455243421722124994728899365887621393143126329444874855967477367883891661929674782865979199313768292435892453539141251972395279615665992767341241785587997292765889256895614617326892211895971375642928319116588139243986326561758626291421117983293752838482213467185682367156177762191813791389989462462779448899375211599736177172117221884174216133174321289221941653556246943939514477511421277165944384712351849233692431171481864611122571929523824687963512826655933181741214849678514566381719966284179452612241364162215228167311183492917313649415739771847487164461663331119758132311892764989521475338636998429566212146251478766418927271994888675978138223234542113732892484857653421613999354412712535281926878262816564835657159234856141359183147234322534564858188429237375225359161538353485578314776691614942853667554222756875254834981522551842488459219568655947521372496966134126272693955284389474172854131229124497732631653511679283458968199566621754972742266332548312637926473338836913922848598715222771131294622544266129754254929422448123115817149251779489813194146127258616766776767272373592256229234694878911619887692462355211413141892134474715374161456426935469859349484456826978518621267471322552128373129131461142539554265694556268433232376248264328674225817913838982721699614275611695888137255231661623491456181295359471854117529417122139447787357958212243882439943643318552468951141374369316437426917944226772256874167966243469527394493929348312849198479332655534955338368639841581425743751993341177958196659214161586281167473975341153215679382376366158447278183456868346343343193283935555641443174398318452129437642361782844631562124572231998146597859317179315242539227249771776823389558586735345134416174267193351655568351155538235662948121171884696528763591294772631942379897861641191712144281696247759967349443265131778774289134326585954613533723735473615576179247539741761119995814218142172247396892534781529911193381527883163985486867435182247516684422847856117222937143269827195671588845357928181291318247463724993152877433947478432968833266269651151551292968496145291254562775123438771385912123331312837334596663432874183245215329933123179557123962369212291311922897154282962453439396437228155334447529216346156793213548663639317358968435516218295868712567399652578574718913482355443326454839236481127587657558153886663881575477174756163848528764955842695228748828439618777535984652622622371874631863236986284144369934336955123988197952252679538437931253267198328477742953611752936395533489566938823861152573762433884375681642335729329264148619821293741442171153695958855979985581876348519742175589242894142863151451622112151961296552731974826713531412692669123249324216831166646182944154813877949586862723376743658167451957799449882221531975144152574132325224999414733351227464329753233223191386441972464188766352131994284615255734122326182321223567636752469845261764622726492142782893641692987944486819479396335756736396674532599221424522337133743612662622699984783132593351145292164935823189379318544483872137859825675635419515167342551369416843491944399273159964219533462892237783773249596423582246986454415351955388815312564768126583577823874166897498284167334473578258455864425153684294827277127183925213522369435217964141627247318764482246339549625934242537814731282423525815524617814876371144652214748886462749686121868814589716614327555265927232518629992873735853157191787968817727432574794566173656334659653296698469428329335228265554854288867416625451841763213621771659817786356257931799926916328294525699841258191616734418231371893269344854364825199118426492716389544265495916313748952756475342639147958324511553794187882712416637618619196978342922559669496934434857138961515499341391856513334289862265536132662229715742498439235753455694845741972476724281813413773281291794165813114176545528198127485113832842641823471782837933943466769723343123217587499262529644286121447113725654212792534616916547972783934478122755455835167926188534496516288553838927638945827499978889642696493244312163664571737599465688363131262415144232886167566349698331714943125119714749248222675832253817311284258982946149289984764856594238695811851352544754592622728529864597425174433818899153823161941774863418267589734726278154585749578385685232561938468474899548511756333731749424237176442786164147212171346899134285158493591991384339342248724998181185367415955258871361165752278369641145794356617563865995536347198864766842332217964624498133421572898651486388823663381942844575318674413559732939912957474968199324652124798315867648989439273318812399565361787197213825753885695773731911225698423435548577885894751698411221919339785427584559869528391276349318123968797725312685544313516499793334341528385684144423553114783919951626248977852411116535871775275625266954556725622916291358684837444492947813373438916727514447583174255926126923996298668463493292952932463841591647397616639354481696432928516136123588465166273871926619179486311596411957419923554116465445296381762211911516312778442865345967452177619496257219554321841299625939747837198374851246977186266259118141919635768487326236187892462373948642295711469591688627422327475758637744543623249182357233353242215222585312647416287623612495482978397841352968468415431515657951651747994391854972145874515122864242483113578878394936156531832222558122912839394215832164952547927753967737176141644453157435694959329427842811466551715455795968379855417167582486116477261672371269461496991561131521117781612623762776286719264322411297894127317977258864315312341234366144532346842465664545273338352452591119847562953183659723146128543289564263927521529951129834885975175539764746134196447236193133277617962797478514585844731712783298243492315566241381819276585142989494521326272641275523444274271468159897661565487471582434328578184217184768985342361677164982959674391233142143871898377255993243835137548998412511721684355826964778229854529942372427199297685355952662778388693312172177124977863951348842435754941265241349421527595959276146885167835333786834982317983246661576128724847664228286898954345187259395469925355834712637217931534436373453724132332361999753731382367493263534922115112384223245857854831751622949877437328567799565519246325397726432632318439669549443238444595368986597281662493699373232418495632478325722988477232137697848562144928363852421342394182532534425245396626782731661676954752259962458813115447642997177194733696187264289642293237347172694248916791978851687429238536221675585975863929351641421475351672499332433319241866944642684384758522445939131755111217863261497627967632662997537641314371818417178333153417374853851125591879987126449351683327473359288239577347635581955591419532537253628856311755418636218683136691217371773343792918167222242536235218765837373657667321978611233283843185441241253628392849392932355221218583971941327316144917829962269141484972337787216875481893167279366384889485842782728161383341819816736146856935339333472573266243251396951489124248386453441945665191877143121131811766677311792538365326417671999244713279696714416872764986845146572935942376561387156427654797687297817232242546869649828353729488649618251458996382174211727243357726344557162189894895578768651887516913489416311221867365599264345591598975855481942413252199864542419956462942863789654285624398116112994143268251656541154624342228714878156999585737746148929593191212969765581488613215359375491673538192748381438782127521827696177449124626988667311273416359471124916354641623341798971396493544439925157443346518198115812792265414373543263817676232453591931996242816434215149912477663421493185337794723162721517361685271535823127687418881244642546661666113321221425142142287936818351483946662722264337163232391523311168171528944893191179272587992436868756654786323688284861175296387494579514639576618714496888423754927558354593528923682692281481496651181192425825469425758845649691444229169746425767164459689217191477349329419837241961393591298883697418435943447793328612798499193127433223465384371144512323618871612866965128752397328412692667468186364594484243177257645656316315135893772321894454937486381829511485971834342814245631888388949873242394195648415617287373121461115265788129956787453742326464288292681995822826597651632486239983622937979235273747147951849752141337969744186634956444232874333419534255615488685417419254996683583161368515584433754618816422332262963448225318519758484522949376116661352536729272613643729472259953751517263117839859558868431782441828963897349214731595548756431628363624642441137924783555776623125743379394489343375794217663233589686297926891132417162142416215248788433694975399383636411583815578764124221213954973142749589953132411383484977239448362184941567888221574456596978392726735656262317721181392782223138824776565552651986244663118782134526166184977251883261315212885752123464452329558393757227215942596772334419661556481744125686128723984532971528548352475982529499746181279779839783924927965544893411736563146612558464646426741484193795235247489432255882458441258758918986897295285331923747832838998974284268241823755141162495722973238257141822475934194616686579832775942129419845497325992821384982468151175929519581936822659521941618537243915615933924163747822763224794366566952594437171529434816539549751861464627953172573461566851778747458133498161679233252975512974213653425319246768647289184644366399199121116647326319489141593139245944113211643128599583448692413347671283724421287939738668717963657925229751644348432335638276473235651263585797913993964188395698474957777864536464352351616311184314139716457719944274517993993172355471149614129215485816461272198875473176564527426114852662676189184957121983163793827413939387312789346455651611794461674745778659551939457363245358274584431572717369859266574343782459597884457347781415596211182792961824997689892667175445849787435468127971465293693314232185424119344915292326448869667238982177317744479826544424274729457813941454291191153699633945624648434482829274164237164752113928968979898668317624358397345332159434868334882461728363415182435843146334915586544481643849553772268446462937526931945373678525953311984891354161812218725734971589719832927187257488314166744678141122522645955785395279694142289922152449938646278991671141179684981145955197218366668839135599811463189259296343391663177549445867235965154379224831416227719549496432772423697149185854261921712139338921717353417377816342172222255152326951531191247122535139444179316387499585665213576323239186324524254666847763351679212341913572847525879928192642587463986335744895194315741652223761538594321211728695553649411766468132334541438211454486445686155557422181974775281772495361652837769632376158789312465855936285392286325343458189541986684894125364189531343929156946591442161799966132565335394787651198395333717466434266971525758645669956673525915383559568724667888232977548569876815527436581599618283884712651682961128243185918899543219633654184751625884249579225691736688663493215634147623573626844885637461458881446311831218142698765745541961335193344235549564135233531997466997718932189828485752243732813794325649256723816867378426746151221475352723768526565478348397739289599477837244258237164393553791172448659656795541953679141824333161664449866429354875556746997481217394267339455751394184349649428964956428787723282678675771747437732458887675825888554924139641972943415852838438135911746562196587255528145782399988553786525615415939262459216915537932431551811592554124659789522341945989919755943252759797137231255333517228813987279217212111632884788862143881316576693453223417544986677541862678718692788226736888384914784322241494387667183311996134441112671367498775467265948588123664141334933525167926675633775469412671384186575213689848993138136381147243185151426966528255483936457618443277644716972618569528535649845551466665613885612697569337235487517781127396845116111177846698864693423616839635639366988792948193261196918546289321485963394788556749171299145945924894326431925917632373955631626112647941436819822268547156297534712455854644748383879636322631578259348874496761959952467643973137134959714788263977322529945743352245954685631252872256116488242659262415967938355842726534858799182736298516475834771931229256186976214377275482419115518633377396384744423273634535115466673559528855827539226299694259941482665148841963627936744456731217723968558226346375251571461289229294536441963652328322359553731268364666486585531648779635833436639423972589294979343791128743867112965523812483241274344754689224878166418298649297792218426387384835378815235934386821338343362666281895369314276734127654499882242917416392894218615243629826941438618871556742835179229489575424454798979215977731147113614287519131862529933588661225291896832335957317212554874147485137428292827531453562542875352178459583811463925615216848991428995196123591142761758518545371292549495873226563947235297629641391261747662589149541816528494423471345528251765189268645713258422549172357332641557482177343591454671933714829412193394845522326569356957113446383294523441673732367436695682871825569738578362549787978697233776579436135119392213997919245779825392775951416479331548986978113596542281893172147139628714235594528568771567822874542787765351514242128347613271842562612764995886428624734347351962559434361826521458662893252446393234944114471221455187388162173363616398463673477337458323627262339319921944533134279915737265973694921819548551652513427981541314722648489699446837819278488593259153954597531376256153934212823628539611197771523997752738311451223834116968485416271742959482221827918477871189558318455342126717727122417368856861287228291211922297441566267368345766714681979639918643265615459239857212363399832766926596745245322113611536536125765646978885416847956536396338236985318774922759684636855255353884933474452631131833487645314685872972238775414531842144333815592886232242473795274412279729152927822855562164529911429315414334622161382483214788419849212162598283746399123765847126749253358723784777714261873913795292515179526347153945944121354596186119231453432595265924388145688313512927856867254741262762936614426629519213151622848434211432656243692939198625141842347898652613125844562359341795495637737633325839973631569514929439148547917782326389623664685995165995664871318446453796248947871623443222349173183427963395411336327288925123432724912137579463893456317438683641581551617596928113684521876411668112986189572657464357831138717364114466649944524779518915571992435992731955125324433347171127823954944115326167414341917559564227477523415541581327311565334858489815339148222826763864569462582551667131727288645984316695612912995944214798622257283241772574191682164834453233161631625249376837671977339921192127891532588995243756119419762321219815669996965882118244538566949121318521735352164416216564531736157881296489576516754523155678958517912535481223233125946823681833359119732797386579987159581924411934427483967828344323817125589137243496639771294267151655732655945821324112734634114211253584526561131587254592425639454127627374611961158387293234237149616443133681178317349526264519555177313945982884379279637557524195933348637476968599849162688879389236599972265646363854587661266119298583312621344416378371797124852768766968846732324413481826979946643139986872757245856625981768391572398545652243992333442821215687134551583737291164198854855655779928953625369638417442376189543752554249478192953157633192849164832232355942324634151262223642688375155562339128346348261417582851299696366926112175519238898465483412519133422414172972598472263384773342711792217349611696237948647618667339238289482327626178653717827127616251466652849342387197213257183471128638751716522856627678632367561136148466964282332495491615881832548787677457371629277545155917219411991893535252292169118721363821199996792357453312624811469158649345115416241819583965728336347749182828265643261753435477766152574799514221464933171457449226833782515238567122265222323757773557333954559316651765573532641118132353975217616617285122313728739482282754444739884422663863638478136512973676851517549222952499722858597324884628335513615243355671257798493913459836524417531892997596442666324768526194211282943822118893221245397733411296497659442991218824224445171795151573794144598519177462512955171431481927126728361764232285826336695744947769452615833377451427598773558697462571627411851331831323114158185972546813657791532666154244138336864825183912796393675196215869984745431693358447626516434361644887333421796427486456329722196535277931881155555321224141314772187228723192966673872491431984936218163143482647867548223594495564431814414832662828788169315846563189699269437999922176936265847839156272772757522691379262454514253769726753913849238577447352392828532821731617371262747795663967337939226653145199639965574673479466118764558322875545635963519631627922716798256376322188525191245481153129551262157912266423219681511566222718814558596553667168431199829924153399217415386136874594388598833436165143791742575231519352575452451932249534587884138167459955451236939582547363776698111926745776178823916325262475767122192536649671132163682361181219986995272643586471661825651439525446728898231713697425327867711728768174822854611142561653424857796114412147837214624814995213617452584519929436434113551841754244552641157712525172165768434898713514753622842281216741625287641562393486717424933117383625125129748821829821643434254227455797473418339226816432469924592551594216712559739462198216857381679365914284922613335414147214428567777279492816857394591476858842659711551237469811992346251113295319197611282875986661142226971276492378864668736749999637751723897215345625749584345941143913254941496725398157193396472138353364117442148373287718341532815674549124466882192625452998697375347593319944577655119534384874437166395155824912415651545682442591868862889432377222752618235257444319116754748642336956675258424852854568645728492481859159812331616892768754175928941893911664444921295135118948997284146728496717423771221588651238912964414459397855931765413185711918625629443693554799915556641814215666732912232575993149857884288555652211912742226357133629327618448644864838353239851438657439188613158461777779424768892163652881869466295728562448867334565127882187838375521813691389798798227554223423586395395513245217576966858292958147537383265691544629427998925995683219669361142826151466413336662912613223188188649366161236338425991269443481469556685145582441472733366542315753466928895625492378152741867745917141591739498111979682428511212998275667834189331292384136765321615127596791577396665231736885469335517274412166973661756618655672644354568567152872652678564778878172123117143179711713479214358228836976617322597214299758559714489528935978681444142329375854364322844629642228891165844766918781374155331786264883997538653877829423143163185111938333897179738458651274567595298546493234598924765155339224766716167158511596945911281562546268465798435213579944549738557844632427987662913135435874169724965326133168911271438237318877734131693861941588986638681679349861889924868426162111495711561738646361772253137927157631623725546887912959419932774292242584545156634699441231234414988765481483246836986572949513533312785588171871327671752842693531454134294695793479915463418273824952899233172132323978723248298545828991728635626235279397428555464212423294354585191639348186938359375829857246965631955942115934992657835347264447486542934258255722415484124136139119823996566519686914383656588155748353121837244594163766317926762531128225667332949423773946375439941637783113553756561974836814361277469247763972161642635176726222559947621232816868312813619119445785425239335253795674378466779995422577741355773148975927191383145381735744987466887824532121122968613834578968833472157847185321347788839898276391848943667579614162681337785155761146785469125727233243627731619125328221975489351612312936392282192539593586625485515514756174238245122777919635125693949586923688716182513912278174276468864887642552484494681649599698183537536219925125636866749119967927114229737258921719883347149187455888685336429727452976812266995593954556125526617996629527493621952563523325218199181418925968377481195185755837752724884191283693313155338974423639513399694566736754881486684749199833752795467339841596494296861758782396435421834491372283442661122846386318237124327264692728461121524918975874449687583526311878411752639796592571618159822416253474719842812443848991492329162294919384467221762219212981975769371543246896715591445276385668577132264898972819358221241641551423195382952624327599848813771338719671952934883911167812841181781145683828512862786294654316578328643887297514528611153893826249564646375411123198799314447358521241717635938693594563859164566851192387825353745945892334328852626548693172389834213413584324424326271893958856533639157233895434261798568293418649394478596965424218944564463153149769358582524626382578959424691732145787983541295342621439649329278168434176863454447173594482897714637162367273615658532479338863378845489565432291371483285241352414114459839758438578891217323666572895151589663461876974383331512129392596278685855497351127381519593917641241261421595946417483158978958476961845713773478213585449928728731461953267932751815156328116913156238145464722178641379877371899646149964981869174374183873221193594333285154365171465289779299289281476693539696772951139299869965711471771973459642553164326417139364519322188653736225556428773864347621218345527494785149884555723518192447589488948582685381872329461325347559179274941888116861533571876483299444822119718987294211467333693135712876445531961131632371744779395424939997247127193916315649916339647868827663113624123485279761325154453787133592336788824832419329611738625855412171836571482226158621759554734391497735516414318652731117924384229149769119322968226439836187851683439756854429534816657911945664252781462592585712959676815825623791424334216794731562564186145369372335462623316329215594934467537448913287863987328238671626655794533945656225668324621729626394215811794233515914824792711394125583522548554328485877949235122729232725474696136262686388198797727453923471864345798786477577615216591514311742741669616936637727177295313179997926535912739372685631321743512869889269328314978564411593928925429438195316436332353334361228984981152626139266785993264429227968457843691961992821467199893123157499666879681191515522176299368285323228779171425143625462314254978572862676377157841198247468326572575738753535797159693292694862115342843321511585522262825295192161233889919254726731159613323761516333979419264811764762765632333827924275254353317464166385894629426433232163748421584536996132722716389192611221971125451488349146998443434433251685589522992148285441643176857188513573478788671995776868168257895294261438173895261218322978118368537424559957172652781559768364245115893435837185946781317761931424381751945173524564332447784287149156264684827558859164619263563781846961544423738126311188672768742311348269589766857525667518395272491614219767495536548251786625478929434623578244149157177919145471745453712455527829855688814131214816227243923993714387583842115993846481767431329358345284678148282269289234474925712857185321946459941287881863543546282197338558524263546854122358588469354855634968433987768556122182481254792981945224772183852571599735968628862278519954561319849113767139436723944159434367764788399155732129744152277225367644485254664488866343913125417429578166517412481655197275579496641418627586568572929723617361944193537738321929111952161686394892912315247624988715124374575711446918218734566982457968878854436692222518214341312144981565976523213163363512561444228988793743512478267296299928492534722228654362119127613336484471948689111216868669995478476559171627256643231742188821439554733113835751326439746429178955986759636368926978125965775644248412266638672789341772968195749958223767215323463241599586435411116361639296165199953643351376588777664249756961968678285111134149147224442624426335147833292178353619174668981824124847821288811775418651339536865168137643135234442198931535621617474545365592926656213454934446889741131315369351757834641356612251214678554768116948919732682511425323169422852951629814543511184397441756246754571927581676818815352653758126311568432361187111252175759312712325646982278767862944644853487463321283191814281132536844294878471644353798287123795711746924929137654619334897888342319768491124259616396316652685754547485225664349331354169312434949943322373194719382922388884374524483636476877111953289521333148234469137615735651591943542759573757624836869224382221646661574691818917135562532734146285399582295849162174617811989157175987966242833331678336717876139836221333613319544848345599633289581217586517639257371725157583496117825475748964742396413422512637758643998737422965138617161967617942228966591493975992339266551631537341521734534858173846793148324944188222372847354628626622989165336449152283153832624281465536583792964124337714852263798585497151384646789924373529465338187679226279537246265563439358175939631766759233782343655583272984932136149685666631242855668587925724616115466128761695276286738157199613994849625657587485752698538367512175712476122141835853675241629488577834241769444783346841242241636927375781621295976556723287693826298533816751593551121148643963435623319357765871474384817418673952844229281728147282848189286937587844526392378289467872832178723559711325956163467555298465162893924956585272952624268722678984918528511523325733374367641416183287251355531776373866627523281556576593478125196826437589645848267521576667243514654819193489916131173839426271155144231885912347397329561728358796542219117161393663322913695262729293851175211353921232952786596867119552389532998379941433979196228192758567676933179617138153461829774488633647658968172398838175231912434643568499237991788279773151158921291352679941232285655577928927162689974489613928517828567826388417251423543265318248571385442563627888614414934239354978494511635512211499926167568213838498987115847498232671147492342962568265317444989893661611456695329765177434636376715312513213471842517825779463364594446998252694247238286334716473813366416524391853926437591288166952161178229312776939853778449516336714665441815734423179524697452183586212399496996987532133464416914878899956568815415176472351821663239521925921599251131964843414242614821181152626566182293983422722759942999595848925883837267711457532518349642152925794263489224716569696884212249314862147715693687196334954874974723344537565225479212753422974921947267847538212688595361338193911329772732887172319346857762365533523189569962822241533794786141768227929432323382865193211533469895349437473639743966121652196535937351366118788449235863643975157323265124366444882419429411253589394637935485787666788226946421383728315267651871185181531598562472197697666337638133249269726233256713352945688595552945921713825596934733398839439171246577164213448984128454339214315292415156239515218596788343865864992833213565881599443841463891489453121969962161928835886625737927367947743534465967986127574372266628157132695126243511393513861222566795214262626585231244218847228949557527664817327181519386841911372289188127636263486274242262593818522378234875712349231859845538462622786547112284293724513954635686142245358395831542147245879512161914965187289359631411585821683735942439982726839816417574469941534388391366717829426361761146444637631844592833438729948935911346119574657513671869933722145758227626731878989878654637363947557783247139615973143642739523741597574821853894473528718584686244193723836181652121316691896513545256772783622773241811153382295568733636633617487623518653739856237194332533475511434947527297937221472416634743134346757319853428546944937691957324351644147644523614652142667157351521267254912425292374755331782792256258672195911268221557259371228673361357874969244952519784931453768264357251182264642315612355356351981683612318389721211295462577462799611794153994355929736275391161143311675147756657353939661158329577753642332624849295729323287471431622664833222515844256253128645724431799264878143961966514375424764336288623261633244529245528993352151479457529694547119987163379511249315763292822826629874131678167312217453989781721275518747593991519731164976736393815929761511222255366364422429675891617153413776268854282198682636413982343944233859767331991462715711584933127618255349954114627938363341536321915811395313811729467123447612485941838854913116353189628953165224971185941638464443124942611724521418336921157259438319283631599265236762154638757314622735558747198174213444814441578695387611942145698614244568116592794965787559295753849393518244161512614298573988744188866122459765126875726814245919797843345346415664228312838335679163683424365372768332363772399445567519894585917579382355512798814329445679579618948575158146473382593727286462257714829699319426724551894242273795225517675974328913363821731176231417597735532762225436425465819294728995231661512596779277912746433994775384253812726821548729911485492843339948684417238631927425796332617724346474843168551381299149198345419341693283195862352663588554577377389768619898563866794851173516815984219889236338771635645224353619695294586313126161117454987593334931997437293221278952973853184318239241452919732738491399328828626487681355851391356626951112937586564757626767825289579669216674745439755215414134194662911934687749983127546179789566954527123718318524265836194569326382179561392686711632764687212574142428919762975828648331736848918374567378999669312998785919538911341381227923549714342152967889874148311866772549859253435718524591485494772865411484691256178216453953279597414232968428979198338729128267596759476816652663878177686733127655974756536948569531286625752852419688964738617421488231367296362743548552764229296744875177317264783279297358931187429346113532214132871163218222317269769177955178582271399663659951345517482353814647538728764129155586584445476732678783581165321555521452966515279221926324413685787643769938141564578359865247678113684639763456592594411372829136361292312871912156154981198393393766187562129464471675628381614626179586445678669882863819257174514584559415919118122499523945443462588982235399884529615467171211199519877321844497993364592578193939837169395452315634158975317186599173322826326648747212386441216151169628743779599187444348989944446382148188694439325291474382347732512424978755651458194135211157212759131648652455421849234512666416613836758138265759282896982171181149168232942827456855673574753867997314615539115656895422713941454146632491837453622661883733586959256352595537248463592525968313522347755282499926236148791731334212228624477239498631937243227655598268472852244881732321358558314482778555837723667583812346763232753432587878766219472866384542683929916641753445264487183667622667113484431327537472327843139688356183276852538253112422429852877762335189259265223974761926274521893371624432878696585548161875946613256322263114546569868415596463824444817393941723162434474787825176474779651865428526434728941114187153764441362857455737422371946876186121588316859885492373116792221384345183369315378421293435594713428466666548584394181827941288849773193497583397392313742654713511695618421564295131765337263244571286221663583247646247798266395917449794848637377577292812839642271156555637265293156165885135843145571452857775172511212742952413962424591878453127976962243148554168565599148127542844186353779792921414652572436512256551193177965523357255347974926779126434174842399697472423312561729481289467363756282763484361434646227434555132236791326114677464974218564411823738791693514975524768546329819537886436955243694428165265321221841144886721385229251433121431226797358432323252397937545622826694868192398132522786185253113532539134215575582296491423337951716567194453339188388219559297141215735121226528638925537961627272913454326374955666295158973557637299577562225338561474681515478426378843926237166327411192797872324487164265188942265215113227618518251221415511947125943177185625955246472951939523357773595623325482921217571193199616978928673561545929723937785712339713481563945866244513685113188411953643911194413149856779537734148722691373826735898221342366182727356799512471665938113962298743793173894384218654225755758266831337529896569222146337419543937564852295687949913428541995288498736389765474395516395759968434461129452921399446511614184446242943299755861136576993491181359276838798317489944622434482161311882869637618316173233521912849298143584796918633979612365865672639461852277753726414885818711972344512231687119846316947332121762573923534396946685156554727655995949196924793142495794492168547532418888125933772298481176671456462214488822165273741673488347123995783249228227469349288488122794697635378877374627362129339358316442791223764978891687256232681572983931456616562686625756116528587241913228368941621312686251351952414959234556873824472261527815246531954712622253763199978696195638881717278525696671959237198896944141841251354343454219413456951289863997575422416171295352217945574645628282772647394574361535677471733868893827173934675983612618834528955686177493964671669298552437959785946421414263665349926125773265192512866974371477529331411836991441281293426154654831541241385841583613827233375674222761179925954845537438552115221922465627947693131428221213248884622866194322639389288989479193393261561328155339116399227623486556143845564229418773399929794298541132883622679624799955578492412315583424781185966647552125652296868253852681581195742437221861779232722873887579946422953828186318859636153322268233829414385682552442117716491239932489969251873348811649338993729773923467526213188484878979392421675392832166834275525135166229212918581886343531421962461666537842634363287997958429668273955698872182415185618775693384673277676469852245426713814924677621948578414674192126911256443835358278696921437627875139267688995224837264691339913952815824145398121116357497849875416931963435626881757896653144762864495359351393375514233946187943759765314653846481444878618945138765816294448662214532858162234475549911664224943638867267185816179326793587517719898984351261965347594381136289318466534812424844575586694487317633624333736767933822457451143637412544821392736975629264222887912871472215569145271269444211522371217217759944952823515915338973822263651455327478531585838114955559445693684651966452888988612819676131259336338877495944962889316853421935668437451982828634289531163916377581413898291938514189651492443692866337947624641658423191411485519983686265239226964238446771177987856631949723513115988733366997251924572444226596839818442898933235879892114326777568418524352469413336582517226883734977841687819757314655888123488742856412175751123532139823297649526548762136615325669731621951312215967853938118486998121828223486314726156131795323249915351711686462583271899825889656668533533251781345656813962941582766931241234518933476388424115377723462366175265232755646633933311553832448134164442922464211741828525824484363891622823594177227977619193193426753877936469191359785672432346743657816582283983721593495279366363742284247524712371249221127187785538437148697472542395181256591615139389818234257425186824565389982236987324671732153458452886894753346924331938432798124298293981545556769371145887297731424893253241434616488564655969897474681412717555871375398457858334139736842813282155241926792361958181115312731592415661932556375676158267454946615335747573361539228513158728259257246311145952834589439397832849313677424763175418459348412247471479756663171595238823145659184434599292817229754445622227157574484981651528391555351992789614248648396237817288533971861949351326875762843725779644572548315789885356337146653647691796534184137312625662653196368113516484412556429162486395728858794736246753298593269222644434845726227221284766632447982424388718992747538341519934182276793493497893347952135115536799533875231499363189319349119555829613586531412214626251139411278268339136156538272484993499582754176711935391235721972423485292129674744956625554475233216724457246646282723366327563972973144449183656954924494967271857781544586498635762842612711583225229754399511868422727922467432874615827773391142394599393599168328359633531184911456568381418297872281221377412341489246185475941387896126579732512417775227429736883448873833217477322499649854442461371118994885923435451428731181141788342232333834212161295745332666268695215616271623613968291161974649812288331213926261433433124168111544694654766223351112735812454753186992584539673541117595757815539896754614298639497962152929133755217934186425968949453134577639984249825336461464399488794654131847929226218986798124223359924159588458983782868714371254738677915841176836275333188364262356196465249638393341687747619279153618273214156212357137844549525335961991221193563234383661615547337316173519141455223652234866384158844521397394289193129882863637517116713983491655798919115359984949912496532871548614541412698771657556136932848886861184447572261651858174323271683862813922659217474168662821972872377636672565961893554153244655527686722528713621215571478222595311532422731778359393753693343217917388855749113979168798673936345554758271229622131121113566463184769491729586284161336921699257149422959531299374481492527253795135897183766431787931118175113131312635863127914293755278698192883734552245644749923459898426915139874219232574857664922952175926322529352334148715438755474116745626557325769756158191519643562448722118176782671761811431274366377164848876885834923683916133553293875454637757762144853615791571114561723232342437847635118856124424187634239291319968317493918531518717367298983811649218869729795397896593739697975952352672956489569992135738781898572766526965532635429699331683688753356874236171313741916956588678327821757599178211134676526914477127553981435945571821165859687361489615444278652721519356774584428945122875682743634812179812987292689822487126694913551465333545794795136119265324978226264551872325979296149615812827923156833576735745791689291786371479168946246432871423345691749841724784683273446981892321345217784588563264524258683617391793725578831911487589559489594254778618257727436186264834482593199641135567549556118265671661265984721653579758536334682243275958777972742314848172612333893179445254145843333385449133526636723894443653776642864731653243454652746627763336532747957848912229546893294924984946888623528754137319219196825345621841953469324793579179816866329759144145196496268356177565722732183785176229876713148912482723763361155517824213296632346241542391627114635486771947438648269795311971977258565567442282128636432319317811211196241653242191442762413673475843812782461779345365288569669641454752584529611195697633987354743691115537736736149717287553673462328368589753928831869631797356426154215973813282663816158527127333494365619425534116226646584162971783511894311792579536695712147798218973716231312541246576264494892835615819263295384558627124524656528492196771385782685317438132867468712868551284857951519259311948855111786811568157326475429167934954441582491778497552454447971287394137875266816643493515938269461682249843567482269232373152862867828356683833271984887475645882333549425683947897644521319272178165182125418321343572443359863379265313121394276148432651177429471759199112535171392232255913417173584222747612652127241624657597586161748953238925481263794144221561962573759827453592733328922612312379179377493343136883477833636637977177844279662426296118591234123477389715673753863537527611421752191457683741527633695585376659895794897727996695186955619742319592413832324813354267612983379641132847782389965793493444999366176732943161738778912328694836919566336495623148766423695178125487636642458757249647648593517575211567745823992139815627788189323989234832636239244479424431359112449385976516318145812353473673726573148379933675553915634346591719223778453119453567786524498685388525558513552376674633365768344113237257517421527911415298616192118524325381355255847393771297956588515551211673271912245357847598259387374642314882811453427765854124222399644694795636996242531668466754399355284575935634319772315686292427245192148535148743224191182417351928273263393748253185423162133114827985532154419436872578453389534426224963212269821977368227587924237186285114512164691239623972651613673547737653845946144391477179219941566562693682822272448528959181922572544397122894882534422934843832973127939591254791516632376124716439843228269296194369563169567431858743356832399516317311753128477246444398356319962982459569119274712393257442489538447553891824637961515597726638221453811563356375131727741682151478254799223985113629331469274814714257511984192486835251236529263691544348683572263355919214477396861617926795629345142618519738515346125171125927247168125922776817959761529141751533522637614343696168821173684682288331825988759682141538678646752278413932243196154478219662678915812129411634533263654599653522743791436866264152289214978892791271534869394123448616148272344297423951913764272342833133526313962225831562569931114573241598243345655413321125715958573713817577479312623911343455697291297986866331821855495827163515276857788682884117284186234732957525419286679187749342517649527789333395279383568839851798264275938833216475529982869363933458893844353543182833485149333447417222226111649444353888264793872447563746953632696515559471611164639684522213867651943249397654255381721897318361121574739929685114828133857861413578473179969255913412393962455677849344668122451396228175923739984862167566272193777495338911946893692749838775527351368677764359688347425532599733517372345562695242493645665956619833352654319649215262438596783454669341594153514931952292619269637789135763824392878179914518334998466559572296235639455719855917186848271788987218242176783279869194948447626793928158693696517621268336267146158136526214312319873646975936661689824185236334359946948141533116628379671557218748664812718637416958575156354983897788769287465848111953377737215323868727352964535119582631283938175844565358435782532489829136763844931586223448288225197795671185588623113657512676737516427468633327523341345986314537991393858838357321392758386436886635864939672445443185491158943518539854923422174314537628868596678142847891866438559415866438132387257196651327441775372982775598451834312682334979473432762296127385185484152456934349175397479384413163212864861612245334198564379746653337581373345186562416474949173474689359392712542365851133364342164356939833688946962194846843683219795788576664294894259669855394118344828559815928975217785654395762816443434131184132429917572992656388857982563112592255453761484397541642338694678241132788762822557748799384998143577337853325541353164488861488114718543337537864269965311487377952114391366613511139371283315452437917251523216245891967455912339886123612543262851516659537341783257651884255286119266283516853354931615613412897323745931148677737155376734291825525446161252692739967917513141125361977482598246126944694647656975656327867719936967332727879945253387736346667577499563327932673777614298824335124987574964461796625861761857227421128523712345677898771934595738141144149755891932166267119315576169581512822611788898561139647256186837212265413813116751364781484959178239677367518686475743216614173645131476313198236978576456237642534366455849797833552182646776146161743122387782291864958769768752486285183728822893118243455121988372535756986331128791964536949521444383198468454495784567667321172246656766651758244134378199923571859516241712376132876874414417645911388355392957562493845771524868327685985571386989163677257591385395383888322898757392589725125777795923224574659839168455226713424362444274391586696919474833692162295129424358317283245697284185585285236833473657867678641321239731833553754559139483574734585854591533499333543558246434357712455677253124369654615232368714341562917974239346797362286778354744953388279766285481295534833628643711325462489972793323131861674743137212262646347148393283583423717916134337275958977884882523769152758413354987361455915485813451283448598419792671853926331363876847149244272622295875849614573979327263144449243222692842974484218572252523149443686552134645667487327729662217414597843126912754692796999134478135426393685187632939733367515785661967623269959221673974426823864337191439645772738722233411359372721387853481914275566518629635583586947895449684614589469496767379138295142866528668693586728547576312755216543826185615753124583284949256754726721168321691712634388543317255211735479939995297995547665864716268157736771771517324812484393242529557455472253281539951688479525585781541527648697846592572215869788338916723348447833315831311212683453247592794718399863926681949948963821966174483235947232741983921837325425863314814523633563953153719781821968477627634178993574128783761499499252637844277771647237887925111172974533492479192562341374231177177188578342517555673362877265238466357963583938174446445345249658789597973912869586525285829761121189691948147718237613216712427888175221913582734211263259932152581438712736775156459761859285416424325555558477547892527482737887399691159618132165729337251274657255645942849794675553621916791231643115278221892271983947249892761875848221217217376633751927594663144422322373616685937276943138338161976216412665644432557129691935388665985968421582169516242622292957393845152899293654435227469555258936391412567726978454978495468218118753698613689259636655964536166342642834881936391327532152342739114317593665514229691117842234925769335492151798842833349724619173157411891823447182621868572617964433312764239177564449715793934867455153114713867427331827273562949567575254283484911481266688992693455715176872616333953542221892553586426152168464788214962848524327579235613856881156598734793247882838981926617841835926492623875266168444298114358735685715929334511376217874682811423117182129593948616772542288423341936991787919866284194965232235849628317572727825111714162783156199617388197599919681327467212365944871216931569598482481628463217678912312799964453545248275673594256123987635322688675156385541742294431354966382366695232116877153916494815863473197335436793178564797292153453764894564186321831478326895913143532229333887223448278631477734189288278486699531649469242765237772268432834615621322341958394514328644394997625451334873955571438932365325632953438278612687245774578164669194152994747264226424525344735323213261987159396723259421885919824298576487593734713933149915927188862484411794349662991397653821387966773765119326565143764842171435375282336214138729672172745797224326299653421438911453869491912842654241643394837391492849474236239821239172361663392261781614956694325387268424943516444521675216149839144799822455754351491877737667523937587375828214657487485941466934189347644862633273157736235478626881538178126422354325616571198586698975426747977618994351157718815886694196735115132891857561595487917712216394187497766148121138473438941966766814824557648738652123636352191247168545922164711556569652457239685899741278848555999465139649758669366948933226933359745294282328948566329835612452834265267541468775335892695592218762765249244156259338182262429778697281379885134276436758299736846944623799423232386233522474552138392547641465472656459935713471573881187466742225986136358774523247922151326389468151544434521525457353169458476325127376467446797142881616142113567775167788924312635852233417357364121635482353955975842497892887916772462235731172775831487257136924937515135873686775123484552829183879411995644323711648543633321667322626386224348677517215326211177672834276365767525455759538138683884193971299148529616438422134287834531772495111935389945769393327913911931393775463772868241978294726457544539754653287812843436111652333114236824374866262632862488414451864653493231434315113574926375373612672293633822342364896152936442538458281821825638632118252371853165989512111914275333439721951517574895883812552839237624672758237143698234864931992715147845274623844576232419242528323783117267565681282158972878225217872322563189685934443352186459599426517344268355659464326566575927893781559157527873513262611191958352113444785971627566545954719394326798473636563132677743412691463882799626544295469588345346745223422321746173119336192453973974299626521767946552696366183723625376276241367744274778112472796714466594545949358122894455263885316661335733363883429375147757336423114493332126662316928584988523991434598282355156993511211132746451632234688449983129742335668735126975146475521484514296512318997759955364216185525943117698431488924568771525479862523526362521391584456754911734712897224441392128344593925118661133864885495192547567925872526127723714476877273178991218142552991132267892942652118635526874233873596894835353241922832151964499861637393688618611592917333491471528415394931469576466918147445377572429588212421164291288522728311594626481675113291545441169924643254684714456261786419226228392111262778947394535489528667735154614299995274986988555132355298896758678951691922341936642398451756629523445263642412795642344623141494889729785466815129376487896378927155712751621729247414275685646272977918592284119716218887656299126848151697234392538272925476784912381233387748218373167144147696826216531194694721471356241555411814251431798374937216519249366221842622631927892161721871346482726417874521888264185933515369612785681245275712443317158141328663411197732483754223964961348424381429571334838739375318123566482728163389581867832853167878864395436769451812138182771498197531289529127381613553649683477466814493299614244922399252638814814723824132276721881172373321911675264995417353399661253682149964642436758484739675472686961362656131694857995374466695311264263598321841392861673726775671526422237823354357163675515991343818946135344969568187158783316898181919163989575136291389191555526538177919632924743655982117522365284193334419218245375741215923816838156542515322392285166731983835754635343614192998363447351541694946925744282252552967518916129872552763178979833885643755588344421668224555379115466798381639394688238951886842461433432654364715225615917617264664687597184328238545227323283231726665117364536716727814455187821781355461677717711733285324486149114898646359724927148556334494911153959171531768375498167886581659541451292773945428836669565194144422595523971961992787164939331444496433173176831293469487139125471112948755294967735346799177627389444419328793122989111588337525464841565383421296474686616278514512167743527354286957542774814317537991662794811213445574967826629222331652729171617516517831463325588662383658937377939766924746194161895938584623443238891736274313127214477931166553785291328752296549481683661349461948393116847985354321981524368371496373477577894583399838152896953246447612456537724711574949968447899232132716316545118189716361347235444216355313215717335928274477646799226157557384335729945939895397222727539457779357353796531592492593439355246419654725933665467934222349397578617194628135314118413951388467191382323446287866663798369621542373169139681362988549967818462177659229112255121624921783593186227873681391723514827798516664736328952765734711379641999176581355994834676155646969766623524623942578173922627969592276945433395278264111881791526721193212364436913777111597511218634637529672811981131598462336915767119153925252757579644195713437421946615536755888416454827138318332237417661374356959181999572484386593938291647582519943798857342128441835971126213239174465736291375974733684474392738246843316114676214376911789436692477766241216242312911413781545947789117413187984415653392887452197635122461162385579448732446261736879368413765179918
3992437452279835754258897922325863127169729632116391226328527487884359813927384234544472698226337551419965517263283495164369467313513538131144815159217511554317518174354668239296117442213827428395757747599722158534154581223115688326245692776821688697962777316355699288939174857147259788717729532942674573434114857514755764666565584669454391818329185343134519812427431132594196142184873566413672742764751553296299992952194123335661785794931486986455162555714964854667571323911314691272472143884342937978569862954831531477215361587868839423141417128474593418722624186987973869188691629598119438163813741343954156472474433594716937293718996715495127548883611747851365155555894923294115364181286968141391565869331848812284685453671174725647675668268715277311936737551487443171658167358212248963653527382517681136225243433623438794629832399119443916485257254357214945668248573915258567526211816448751752544385411945188151568682646293321258762746325993558285192169157324198387864625545353964456871321142999664487551379378453685836944473767719421452191367987198658586493985359944939535471978325749559514587136874471174992236561435754627589195913139733289828848144297925323778685295184293714197746255364798732694486658623422954791915663633689649282745631371511195638198541975178661589783958795536684283456994485814756936568293119649194725851392587732652921314724664318623213472639326413711275242516247484576323712139294256154442645643722119392451671864653356875343963553654971867254731879891774658265727134696973279771345147666211311384423853566679122946992157671361618642264551141715229449175136917971637842975811535766771764355693564311612213198424767731773656957668874498657614872412623291197776186471556313181198228666952332321982446121582644776239366561322753868973232184215777187974841115898658547964797864916928892351615128745864984778833488912953251249632942916839893411539143444136622263845442838184893419752931514118989992812184236259144485715483655214332978299233934694112564576485213671742494595765545479521272782562359728423327545211328891578575837739414311244995261544369718187658622994742255961349712326722632447247316652436524659932898725628186666437265564529461913927935753115773714871425519992575514557938548345334943125871263226342179716754278169416566569458435152142258554119449514598886576767125815228632884628768399222657944338283431682845437345822885162628361326172684326194171723857116214788843363573291237874759537595958834425611684599823376876934828356852329133219277172334528119477123533597535822523369745571616361739995871711959379736928218641614341372661729798483197481324499229291362814768994492147968281167147994752816371376522348271264477299325189984292323161521877394166736321757972627283432517164345526169599561477553579416619596399777989783129295715391723581378523679398438989491182862836639388456945363564429975922345574446412256569392845617353346138273432652396972243618437361453455531924142159346986115114356765427937192156618272136461397327797516636769485932274125221229882525746353518239345765696656784326534359467282595574469726822464385363641431138235845327372893323344722115556891475783889682338572754214192198712145261859481138394778286121728224693411473235978757238276545647245573663233929185325583452422111416328718523968581774621798734162133694554621398483635634568772853126464727612375256957526231786847436152513545373329389272142228926966386897762355873562481654651926451815154259611585664362956792558124456629775979132966433379788918376257581151618965421219514175748791399163282514642613438677193743512358431875399382576573476976557387983341398424613668359738341344735897516167822683262247312194139218123198915432648317427849435247334838661412245747984496928567262781837261531727512563363837987816644481592613695274163615334233714618949478524252782214269469866288747854493251878457951929791653715143528641126678344527978767926324515384749461552597769296395951729981899971893821295681244732217323399514462542297853124675166749183452321453538996959412936582761748278359233374786237843145766452229347881648384479527933718698491447341259571662125115284787896473427361883927837139552947995523212922344637165485723331572453142969727754625166197333629675742232919195696745596843465278313991652329332953343571675692189541244377283116577934541286411612418427914368599179946937232899984877791159116897742621374412661228295788322743287589737419948795431944121213243219689599942885867131938212546452342742726538376525326241128717294326236297346271341329465621565395419581341121297419113564492599764444911697926396445411219977417194136638324851535538494125133524197416699532457424135875594462427258819412155116221142144652678418493437421684912213417637964139132515717198466928166533292625978993981544145721187853754281347858623686823937892624445237467796122114394775838113179935548575328547574394696369474819846121829195197641397283294162761351365217111911246533832613453431521137596369861137858764898414276857964178352431749652484285725125418939114657277185545424167226197792546499149688279582624426685416559663893329873135112153854351667879283516439749898825751618428623224728274219338847899591515571268446894722424278352261487156114341964892528798212111774734681139178712364979249259121595314468475619424224233335635531795163879566367919253823138785567265164233356139342383593439838656354394963562163126522713134183347888846843491134937857994269348768967157717119133419782355234888398353763579154382253945365815118342695855182285769324823139684121396285918673268499592158688594626835193472833385265213758533529446342517369387226199945539576953822149385674764529828636757994319463236785492716524627929841483358887783945132493292715418514476989665234681462935612738232347713881149198736516966687593652171436338845796134436139596819268195141216415271935694941223989752497593514649816171629935757353918792665732249183394118913233335656945642683234176152911453163224934764735971141299368619893198626754148223891829588453477561955561726581195942456454316229668631135586613838521264671355799943118343955522711373679998566984475129299671246835775717731383377567934299662725418398337917365297299912589643268979666787869913751959813294635814446384257133786458451998772146912926427835736213377678276997152967986927987486212636745813726524988279212124962971619518696568365348752117525965252897814269655219494522618927522479846322284255323634313825115165654212181137514534798582183893111296376427179741229366795134169481334582359831331262691782127169598722172515696171383758385971559958794414617233199792812292523811873354464225221317652944224825614179796824175989721567533991246251819678362715343518592829329953396322631621292257864725522493448964816418375599411535877311715521762196877898172459626835548386256217921461377375869584979291235617392612729343383472118991151885592557355952813896252622146724765626199816862368877266181474271366697763218745446358744862343178556719665193359164712326545431928743284452287449861535489214518987965497244248858191138476619665527641475792675418297461772886213263212849344714121922315447846887983195934914682774957652954448924267746535326769113427319583521874266214637195876597183371836494392852394311772235292724198348167241539233122515156279332419581399746355971931437115269381396691361643585938622756454613192999931141942623764354292271318562694621773931314393843852846812738625991347422571828252662898827367819817998491841651416322491781649848225238389112758231518511834981571975384153182232127787282983119185434572423529516424712543823458273918325335491247433727518885734961724627752531363696588875541127915926359381849245922731997865479726737446313532479719384777895924188319479248176279975452156535889234164686412323247423295682253181425449841838426535183768722752764439951734666728725914188182252791945237617456724942219941496311712515242588395293857991589376682462931278371464491391828846182128725166425825643594352779591256432296117977321185752468738563357416521941685599771519382142221527185514449141143123675187757383199289964492481744311922222997253627346937746825593323785431691153885916257635453145487118227757175341913572193427831495511611148147255559383872786273324837565655419944141354392328676256946183691857169815732489471751593944213261348119222512543493616567182792483231478787794169453654518191537238163193192813542874898468622837563651324686767532274152918653519118366289592348263121814416788518354725355888745985384482392192333776677479423183377299559598126643788972553535381358645996387236319433868352824723417796764936691569175961887648832667392978473318326864388821259164535734254965221994989512921593168719182114485546712592276146673764719693254464564981757674952398744433818956945182711471322223313263455474931593714851426693936145589296184431563529393262649253733225828896122154212986732259262861246589657161842961814732871557957299549817916873462846184983195934733345628855783184772342134746476989323399589291212676365917362213369492329343437865898919797266733614587242521487724527926382529312824431598985477761868778945867846625439788556167384825118297828561671185291916324789622712194122126226376879479629597131157214412199292643395211637382355766937637253391838326679884388252126474854128374745179243367495837348361421958574288323864916261671322437857836396411271385233995995217552181686371426297121336916954716473662342975559493863315674861153728642375231421935244619593367374651117445446869232892135244683464554349522256247475591621912831157322496752841163992215126412979469522334861127214389628754121337367915297385712829881567457163572113778754243115169963322752569256986813236844912258482288771124152925615824597737162441712844345219342535728154975859273732638944215577666713137683387594964747264967985127482369154728376767579141613243261524968728558475471439716681212139154774823981276763236163687651742595656651542134656844414224343791221354621322662616642497875645188499281761439158192925891367391441438852444573115266367631984144333435988455279118451599753361431618144986811955883918485999629733648771967656212353365737629489845548716146135677922848751729764674657438276234166142479414778526997928451577267253681211868668544134138633234888473947166529633518811878533799153258246137542882983527925655832638372671449569564271134429776295498145543153748734821917186899457462669662394735821899119168952223236218755693556322338137399647962492559167535481375812891262236471767721698515369613436527443427657692399577289871752561714816732242296351419177217738669139495512921117412973888613946158922494847164595686325192333717919111583371997627397539644714292494786766196919675324134114991887999576351612911534148427756931225364462915819521911832393215949616913265862984432453633843523674113444314322278762811439513352435628813176972344195673891435596698915933483441751995242436322322315641853112436131586451397633564146538782695136618736714829592653284342447397731396812857182987961339267525376448314282657382355242785576926179275445763569475864632692515154434194572884212856558338223421392649596937579782329527324949683167554541233726149532287912762912896349343582555341778434246394484299574154339766159258852762663153983781659497211754388422851962425396342494363597292341258638562481385364532939133614878763744439519546934432629363665991289286873332358852597175278813892924773777852438672669837368849314144595524354621268336851848215777334618315741646955293217814129365331722612897987548548651439348871693278325994141879271861817377252996652955354551742449555718571975661387831443459453993144659438287642819528269142547724567196751171249131549946543127141633834374294879684619871734111294823268158127693655436434984459999351895646571944661997285715136548964283288666431214323359872156894482588264515289245764335425814136939194174623938412268391384557869384391176593417296392193438948414369181592537728343596993713132887261296994316757336127532972948518273524857578646978519989551985845221691293956511541182286383873254946482623359668321738784682252438724742496577274165898154817759537322872513518647852827314329249767919399713855175138138171215472525227683549234239497753912958646844968748322193526333499377626271425628661737715846159512656342331446193111456511426138835571581214622851234357779582371742843198383177261357437813791951298628172979395723125526352932762695792956365567926589612498169586144931778653263718396543846914994478747958238832282545528755861313995476132145456481354638918948288425297485281686367489215574978158461432229316969112845127775319833366168851648734113117755819296737843978226814285593339268951225362114967926162876183912524443715644944677223685241255735139822315456897658885579499293795299128293377424782799962183196829381342965553137639426282196793483297339246511388763144788122932716922642855522237754861244663329247814524713248298487449221274248557559414413472463259632452446249612871196419327832937115917266119296644283581317366262337738576555245547948642497325369642512363559448917891718544472885822443886711838269775262519861446488991399267338313156996613655211651372148531571168428496322458127281719763589953937531934926435391322356181525976254973831916192499348244274196363124759868957848585438867571247627945522952182953233537819146845218667815456121236717453117561468445369438337266283281182567417123665325572284996487389312239541736321363583231515935179376518969284374746464371813448552172332846931893785591958475999621142111214419635113918974956315492343957881339814259331749331924662125658673524913658564427711693978942191826998183122564419728117654162958272416882648621246133987173118141413444125556627292321658571333152931498978551189389969874178236631365962494893569841522578543722533931339237256494599148256843661782627553646614164397447175453656966453135985945299923122637812317142996775452882273126657497646255538392244311433296965914292495133427211297243794348279421814895354564326523893996325835713745952776534614395761215878713849822958518494322428195723384233834962448423165614874311418823988512789253679644244441642882585855412248143588621176514698741831248546932696684591818895495489798141275196384647712547379758169662159246639781898756598397263278439651615481838656112588888318747174993153121543837371524236664667666835845865897337117271427626182213551923156311554953423573141969986169643421448922283726285531289941275172814235832432488771912167352655599347136295258799145368452349872295535299612911748458911913238335262587347131625535146646656859766273131764843754944266591681959576318389382663898255399292415281176761275298516543554411515147295732224175946924413423117949314464213229143792495266378871467414147332187294346981347342245155841736742121487149736175622186938715198474388479751586867939278441561281542832434296959579492859493654384248239989369646154586757544927922827272325126419419697164148214324145536985222784323547933497673483178792532582737311294664539577551436938269329436246133121222618945773129427658176235481419579156198422146118516824418796287733864749623859976371421425275457585699573613286771133371485799563635883136735114712587764273787728158283623555266319913733749737268587177125276327396142386877951133128217958552453167353926961532233261642758413511224177511217414515912584625679378641783468279756344224676373814825644829797924596638912338363216824845668411776283455259347118425183938366568928984691278322184646549499643717231688228537928874754783186796117857478415326469434928621939885546893523335658183561537138242942924819875952194713849868331368149961746432473785794944513582654441198992446779543647629214579458293549593155761311743223847289722628184435718335984299469158736949211567268185341267975396117948224162115989671678243486588356394174786411994232522394754387841296289521197128786261629511384526287364844126868533118314764919125723323742571354353722695746847476266617492381137443398875882742625579492151242747925742419675845781714135544952565578729281524561916594766245759192727425493749456778246478256295364574224274942613379617622516579519938452154651422937462896376341299988256269762169857644879143249474593348388732514539423653644915461237382743256585738544991275552938458378371625165974386227885312959426296565412471182139781122572897496353548167248443385796154834243551717315565922418878817221443938535184258415417838263291824347823993189587887942647724994528476235238832955135432613214527526395311612773154551172814453121492564273843842187119715239653293867531168548231197328223897113291586635438779217225252824312123349437448231643857759573322591115273478781219734782358313882354844523134455188938788254862199777987952764993615912236593774293822696434928815585831893111838446163448647461217299343281662351862672734112182324267992844533424666973691936389957692166883248545861318912192369794526362756826587154398357575721558626517711744286139314494379728193185477361961123255386491563624263533658579977396458248326552252352636214514813272366344144624294717689944871914198652438256449675413494926526748277656279644453426626533766743118695449852385258327486675143246765731642699798292772141751827869224824822394549645851674873587853535977313461133243518331688647213726349343396755494779556223954451369723133416886212931197969227148145542156749741378394244424676133654512226356349425591518382865135526111887533687851781392771619221321733141344113511117966532219141476878651512911679837211917295526127927234355912391817538841852474254792688586895577419261574583664378459851711915998189718394791362226429214249498451669427266125536246476916435818144914863344339388454424671297128576494371267585774981134545347718111588773497478362862613641286288873623719892538571494912276957631518484953449795421666192362196843491159169131131892544335723256256482121587646918766437666729258896633454974124479148482253831435439135641339452915358394234398849457312546472646979234268811532636497361128366165971445249141624132787724928693472937669871161899784871285368594942323971816925942753647141471621135853257893825133326215722154441749946255489819373351723129514739952766248121124786863711347762619541129399862123422725133451512393673235718381689119938365882262992152514614143232956144342764366424726653338524292429754644286194281645171998696148946756551571845815486441887519462484593735199943771774564876289442457331992154482125688566587524191545651245562291895174912856429449449828263292145358973942574329355485376648917961953675751462133395266212823278579624571656642661885411583774169181113593566548316997388994522192466151117316558862634475283861834194534334865183683726861456737847327119329858523431942572191182333271157172682468976639321317752536336457831623331726434895427148163274212468638378517732684398435674364916231761589786453221723251626863751377331592583922736747546516459816737785513995923369661848566111142831948583973558687133311475648416741452416431668276917145566233355172217147975931235718733932253472118859691587711396623451994317612318321181594322792886751599515241718176526341944235995281896423451391458372622858752859324657313571113618358768421721315142652529322836717243779828511154779395183136715916171223774846555479384695411742432369977565862429735194417564661242239443698373979296229592156918113828495922732125927315313384418321147119617213693878969568349326481228349834764124263435151262655172434269193969692489916142637589936213851236454171584917695127438697327715193556264638815926951455353237741474989258372266336364361155278943558383383686225817438193412237494692823542883249833946947651913256989593252348655963917296811626118646446894834111118918843841619559664276279977144669891655662729158525998356275779472151364873845517447374697159249535364284139544276119816366378732516976169152741553381522853234455414221735176747289496869816688519317592883438618478885617639635789971839773159162226548822636621516583669643154947374937936721295376717473923934731314436676271314254131595552571715313116216216738251944293352796561848911556343393782423812825794723593226766339469734349713296734849233977183215662923622971696824164813962633549732253821383346995932372471122629711572122324537473141967333338473255676443171147896711915561973278273863657195321954851625121791314798986453359987994454574555364446666456415119799692571271145989826839912684667743619572659478835817479617713534191388532975544293285211695349327316349116359565493883598786648472441632161673437785124159363163346843891755851441732123873823674161355519549351125674587227155954534349289151432183532685561821127485934336762775338198977988736272993962551538279317397624647255255593859331495963799541674182982414571367816154514413928884383387366962364359427734114882182425587278837564975992245749827522928733217537828925234347813671851216341475969285865791788429613211191727654582511113653966466314676558211715122227112694222433577277217514125777958643614247693664754363775142995637643348785446891469448442351172865385279892532516184966671374568721317786399262662397627413823536911772378333567575928331971956798343928859337155471446959439994688829326253342156785252312211259923625473866275622319362594453966126572423722149128888251365822326192564329872923634222359412838486792396289619379811516285742691145116257814233738648917278712526374443931151415687974215626975818243698497686299176943557173697134853518613385369186442515428927413981368694189696264847158326992968143198154376982665725843564828455659899527625146972222391219341535724284427286889225537256163237175773955253732668238222534364459395487964619742275832293595946956224116236457522839678242629623463225391949187912222492642915656426979173188197356816128935118119592834948724834671891556213793738578748919312212479778146557237243824111845963795722219927339614298533216628241511439639371689239717122693845566673331437112899827562811372715253559853211569542227834735675555742144929561615626985673688268925144659419269923659435215126163733989815325246598986228792739295375827134765232345446173451597747127511956677928285477826725382369627235254758763929479823325294763736621287817268325768355759619979562657616726583912237461665247881958329113895761649379682213547182171459267651516572929246537421432511772552115332465661553333275371581787585343628223288475995348476776318751318852682672459517796139256371996146766856762795764848499362927417693387624752517267373836825856475322561156898244674952366917927373269345189931891183891417429924673593562246156166749575699158717125529387753122857242999361965872777324572753738443535948438252916828613639172664842922941519178571197343972738585159165311992358332287712434474594457116184639345736212129236721577352566598665923164615213765464634446679552112574369662589953239219699418237586751637995438285251513151342575366765278435654152667938844485328852773196557385284932371948539776733292918897844232223992157932688549727562763972732148362593654436369827367682432999874787414791473651181974339523533292279294168154352628579742739362136354175383983162493582328594228426368649451652798188955375755872415977565764295245435376196427415368951125719692983699486685715416641922335673385165248963742593353167341158259563934184268235922829135292783868545831624769239674815487981294841842536913525471963943542547251733798764743915913421791995789612157815573778557162467243564517724765492943983438729237984443733767181291469922425739329481158366924823631487545145329375172249614686271158521638153561142993853949252627867529998131483677654989293726762418927767232826432441963253719524768391724593521617349281795647287772493124363657779157652477537992983568464713931316429864667546743935465514568732689548489619371882868644241556649366881127294677276355262328686713764228541547122643916459968279239612326185833233476472436945751486627497914216626795818113175736527143938266715821991336149952662358335493718681282811348676753765821575733863113616882328571216427786397263897387862933997483518517457174393137573266334714373387665445852743626756349524426377127356219934484164593489229532766581621831139272273196465423882981191767237664212664271372913772449415231288137175799446387764841267385632299337338942183215283396414826693616625614554199493651628792968847216437777526776856456563587892132191338214224674121539872235847284387769413227855872711623968591757463892972835399314416144634822387734565663474925421816891432697975473463773132922174178581493451482597257355654376724241546617732842683138884129147166538863739787563531833153325646615253628133133376413443954376785663614696364984721374851351766435981892124699129269365296182867384871625178994489254411348642567653969219956233537821333951513329397437148941789982312466597253388592164639696332571953633787158862885625786497155138429355894216176642958812142229959457143994193292241256326791221763147245287495126358836128959744921367467259958753288448214151338663181634742754211272114947173435924858645934232555548188737476314965428144377626235445453459212565772958284933428695292123437981852975586754699797119837723362442353218472177363211866396924166791172386434338141136379847368372582323648795481351693213991235623382332274361131438296199838498783452353713184292737211425543235469858292359422249669397839731284848357469822321957861163221521292447325995892559826443437389145141523753577625761913782368778429552882916848841524475353478286867635569232813153336275329773979351288253383485234694988261255226147921461233272422881254654518489415938972638625371653486925198728167493283594537764855278346178224162213653231854533277288767846677966163491495939548792475791224128144693667985627386644269534675547869655999256691397384958477487231891146556932546314148572453766756334675188693884821562674936355237944723782555474318848193687662332378425129249929524233441491776765188941983895388287968394479763122593295162545198399771415123961477934563245185284942377984421268717416384674624995817492368884157565665774817615992183758278435274177626315135323534661285822548969661533146479764366368816915975764325318386766793146273446395825884228611184442666431237792542529643611416162364423937722119568775869831136991142251665875584315712941927583716841492177589586611948857998285586348712587356417967211788544947359941682718127744761577191265522228212844134835867255518333517784439143417215615582279759523839724588181192547928337611543146811363914792928793642935147279718327158661836327943763326984521442636893576293212131537729222413725856725314997454367797262963424925688532314821937149367796734132222517568388459174918327617977249136394851689979171265661666918171531616514335347967146634741466244952118958623135497425549535415999341953556121782911714538239477295186861389343628432678276212252666357396486247323848364781835529475929115672558892794651768535758626122719782888239694557366261354226246946536546847859178569324128944311749326215229941474284953257192857424924653885239181424667287626983475517232612185139134696853952917221179958567485867345791444495981327128166517991698366357976433373693715437723124912452675583416146317628586152412371619123727392535644678449231423139651981167285872526824181523617757339397558638863842995259991925139695366128785836949336887274232266818845247376267177979861523126287526553732125251757276562633518986892743641591652572646737148798523356541194133645729921269252665197498756347641625919927994378118752351729481276971654492294425365566264922768541336145252987767169395263571355122535839892863413813276741731376287935385461195511548172542611249317713151144978728644346323178311737423774647393767824733161594674112573886965813538788991575385795235725884584115926462218767343638535131519298625623228427847221422134336224155564444517674938756646892981631558628573987866145884856468797337415292515845941913792296132445526137634879745265814147281139221629273217625145636933864444689777383468334915698537428168784846916517715841869726599829632231589435265441141613287596847796354328316554783685983265235821147234214282745221468177345363325567916699747158697162954443884464638141829859193979742282198576983956216569666111468136347811831438198736139276732681556428194356331987983943912835182686345169222379195441477837113112494492541268556318589246541553729438472625229279782528891997429672427299893923446976469341246233642681143314146992436714362131651624366661221649628273992586336583192469134978113713862369722744242767713294177579753861571597471869291237718614518896225967134698714622189533149228232735587985843313429165463799291226316121813477642741538592581138558696113742286872249499529167915782621729924286247662878338413383467952675334955541174717668641162222881748145741817262242174865857586353591287264773224549533332461981598228241153492138265241957176429846244526233912891715493159449999157992125129948423776526933596296148982265966651346216741971993394951679458941362692561592425949483289492181776484938344392848283887852938788471139419388736968942297688736845517337747378518669184174124791565913132656427776472215446746637951263546245921751738354839159151176987369217295426672592398868262464338841945287259313424459543376818811383254564126445912734495158684449847845635922782362898958879956758856896892522861641481722824756759584649553936236656292654515954136166436822322928225947124144586845769437662647792328597712116471968729876162454978666691712436557458718933181716922273326749276552248134484336211155932459135651391843381562198678251116927143936995575792773973157812522732916368191287427893232294959458887524176723421371539166382269824518121995142683975555428566488817712741139883526518499281337535153165385239714646812573322887917196274111346952843372813711325142416166758977845728552149583767479269968662868426479997568962112237766556871737452256325512291645961565621675126292841273254346785167377843133646556251951917426667993796341672941722723241652496141793282738621168561615313311286514524733451658192837897472454651692342837914444678244676979787262761149832959529126546725414638744359929883418652374812212227679955318266837157153485346257452642741844327289614274221317125476946138375849554945541491653713668416317449923763925569157467967829257144949826894553519439897452333422265931289244159452238144465126954914163192994349129363128536643554822241237141162553568547738474212575426718981697715994447112143242174281852227735122121365836529927684226818682317487662973226354369517274666122643365996124343481534695972273554228245798994273174356226223411442249454199556851736937412143714958291947349626637618297725871157225823368587264882748112637356512972116992667272676216621366996333955494749633326647319445936515594647247273196771811122171733411737473431263669493516764767771821498915218529446823964786898691174538588814473777813222916648565865975395751946921989978328272861994683731397442917812169199328146569437569274276481424142721134668551538781868523447321841333793174764282938523867867935267939665296338281939837156267714615258898391131593349537751657642126463424454682232914122265422825133816371226443361599843821484168451489258243918853177458564459923794224821916376144221728255793987613697655481261716519944166486327134791897617247796133344351974967827619769482959571571565698975327196935748618388522693959685891244264576985649687137918563997794734412532563777971539661281241823598316129732824956923222133386667754851921457488329735881158273783228542353191148356986223949388395671546229956821367571179758867515465779453486314664663242772659176719512557464831693365524154244878188889327281373361561755145746281986982616857243862314272259725187387813224554494319292557453427269532582564145986612431224773878126417945493592361536463912854544328448615848632347841388233928123825789129846143869471285289395595563249246455777217936951183381826264293823116356341211658467173661772149958363332838411197894895784214975752514673557427744644316642794633396572761381455166955155323392226786697766991226627353391646943344912631839317956282394465313126666825112518165684417115473723311784317238581736136858449125181163863219541885216856146293571518559225129449136911587452713822343639581686183545217285291434919229648179383781242694484123478924535487859354361479477592791255852247465927327556292126897241376213865357276295671987386352574425388669251842148116757312233655154711871177464751997283842772821223458995278292127848443216471713328795525134757151117939154561995513252819862558683856889481477236771461577232515592892211922524657279317764331528638718713922586657932746397221148891376929671525417233917253344574929194436696776878863276973371738195752332812594394973755288275159171941549266971334984264886793187544672226552296537996628877795995369654333275276886549894627876445133623464862736449579171476882875972824846464259287154575129588771157224224931187525842528238532554313898423335321434292773465757623876716166662413317425121274237418417778793676215926319951585164575994847733468872255976227254189317552871581638647439994562743354365917331946232784885632664511597462632865288333813391775394567464856246195749143729367471729634323486433199756153452822395473664254612382263288163261132268565126236459333721124437621738447358993473886215377944241824259792191712442146688391359933877634934576324771236317127737741515715233432679153818972895669712728828578782853614441493443594713722995224344541949897476879574419969682247831826535655349543457542938332931168772573999439331673814783294862317131464394881742614332625836747731895347224833567675251882211646155271398177686589597325952996397548334665311437851373146422823636134879497882742756189261949371391771914551951886195674195547191367765761522126366439479368469955889942699441833531645337835232481175291394247832669623442349435316614189271322122178928436895624481643473562479611373317726124462974232755199217361777619389587553961147955616324611287599123169984896269256748969291813155671157118948925973235394311232797393719853495884432927311561876758473393384677617677247474216734139645847172376137444723293912341635177955262231957476195113963428687261253191528158753673147883648123682894189188968581214894131614618459666592358876111818495288961469997213664648665327745255477318277864579826972213519839671347624743682622232362671991556411515259592586212347868613394562579334655383619185149172668322344819396716378642371576869326576631159989511168819945424386371331471991874272729882558544296478271665743115168268187431428243489466187668372348892513933844368241738473321568429171193622185466425314166527722318567668132157197534662434727884296185196184173294285687419191834623326987341188253788179812954522718745697848424656322255156212158284794242556799879234456274556154448537546573841195621711412832464982864733585398482593558153214829775835133191347232434586721419665363119742312973922739364591513316572754526146257996661873555774393183787445964421867581525654754288937229248926323697867829755185668813793632585484861222421124146475654975843727255651845965188956349356189586989495932294255518972539621213391688564941411853168895224292544626632276424517453917514698534953194255574741548765261369762936149228961512287621168612534341266334347843183848535951221148556644467565531643565231665995285626121285815149343433432291277674637366222873948834631156925393153381763927437848529135399531364246141952332255717186974219455539159242934743384798524881268787279134289589219414892179273813136465127546642595119933872632165929614934854726751829283984956612696514977351673931628271283392564231931754297858851259611424873423219322254948276142621277282658292947939317122488939692487436734678964729843663151141351319194182445473146522865684587227586947882371117154769728481841742434294571543273241291211435689612928282441947513725559619468565992785999718827163124914251162783619498843732269874745921139324325723178118519735817983552815752367376179978282551249341217223791727346961628391144631531129233223641953941196345147987236884743988431537112365923575721993348622871255199529174652465295883898852868133374327948883489429888221377425895144916663747756744226761741714577263328358716246926835973573726888555276749479389916373753189612835981385585924363293221178682886928256123717333392618446716434392955829649631163782291819217434395499426918157771789276435429526622433554133876843221748324666623866231566615849844112169342215288286878819832211741322799374581643471459739778829491557842747367755119479948328753594934848614911231628412759577548446442544997698149313732614434776171231717845424113154368195516925439564647576988618899659775326592451541443137346758193559731733247531493515372416495377518524735971296154384387135562769133594121257824227236356654952621158476485343214272199188265743567667873814723728321741179442638258632688946478186924379719687869925442992129269879262482343226823939242878216432837497385846959547698346331714565534788659259456698522441555149444868932787618653331371365586814813245389119154224825345154314278673797831528329815858827937694798814929689973828727854313898297538384677849762357677514447454445922222297447141853938536339752739533888851457751958163219916263939336961288577192713631579952316964939243318271132894674576834234918297199281467451368245164583335888653378756471174951111485134678543255784328645916971941622474626763596731689381112478372997356512419257121164843457642959714224993883661934613943224123767518158741338132298243946247141163379322397158135155298473689748238216316786828993341419966412557113572671255118213913586392692416638385353716275684249573896338556113464462966753169732762228593913851175368264242436118443734226479793528884292997431528887872654264254728165158522447739456553917213118887358776235463897315281982548368271767585244715712952462495786531297939843329532329428142958594671316582192355116488361289343548799822662148455768484311473232526681598455918462589758496251874958928374698442912881898539294933566153827646456979199546392575384414837774982521437193684168598422682688472628484565979564395224167296979642269982912197861293374845836496394768541446749641822241197841272626863815685356544676736256157136957736454395544259988887925314714944463564364363328312163764587572885235359422714896368345346345672124148448211973266153296226969543595461322574521577626794694342139191524778243833573929554496582928626637483459724383937764856399676594186364256613454451637259195896344253533883638299714834356851293991773541135692425674967955629261595741146367421587978434641636126883321724373511817125316223952586225332152294795813372625364779657495761566762343436385692817636526242361285122584886941328448589773656558433859537614352497471217748532779613475738826617811548776753859999823331398865929471451614826996863244291431959672489513915964957438881931564188551296961859446523656818992343799756368325232462533253922591578147886812682839689225343784372284283937512195729831355198794639323477168137196458833523687353359584585783347221487195853594966468638411296719511385316491657131447317763569158386257725265784915441119429682371984273837463428533312572288559837196712285688746447493639719834353829685283832319161596845238883366545793379286833643716617422683579142738924697984779911653652319575581646487545254259383417198365412927321758752863732781357716118728945916825261421475483536481257836256455133165989276635724495145724947682984655161431715387732874111668237561517458796366129225424283288785148515517587182891137571533718986152556974316235262737592754922299921137219173239928688393548863129238737122171733556825967548723393865826248777246372162795435228222516328159821519157521355735145532211114379495299123218359599141724742331634581635939931241211688855792464352976673757463684596417685863221411932763552445343129864863635316411712115799378224385171813242452178762122885654669127149789435992112328656594325235625489858288787544674632577759198114161261231815664668985532928217696425884966347315473366827831524961876935693718539115752188191348846124839931796826992571592389963858542245748117443746294925981367532819579521828335924136132238553834591997852565224179575461274983975794814963582246795138532531113268973372419613319323656245179276412615157234129142492877455446152226177765586312357836358221962169921498894221889869931283254598243658269196885319352644823352423522834893231822375362645369178944298718778225157155874219676387189661566381396635457479453553965435543344133591789738213823666232144851561426911616363273452417617151276825362975364357246472248645317754188236315122344686114934374187887991443665218277818418627295744422368211132952446564167846169876213451968988664656125338124919559298929863157591216189382244773113794455919971288539128712312949943524188464668687945422412326287297671299498968965271741291663923625452267241595873411384843236265935864942323326233124826647678429861784189939944529742426147598887442921968276499946716595666337294288272321996212324277794395945169629351291391668473491423362879933637345211219637198392287772658425213254356367191732212643553195896276267928615694573226776289321113423816219552498779117268919618179134716956361385618314543375441419564467881333216634232274134921345375554629144658763545358176616399553397435489633763994692235155781561119438168534944777823422545477553997258482111434686938139586594958692331148591642265547632345148245875479947159383129225235498734582115111373671869914853837831253771271784488996353521624543925256831113562543428536328567921393322316856762253815272773577851335939831826765954258856582839565287785837358939111862793349123152225565511364435529852155291443646498551795175366814621512121235994615117221475351713983317672918459884882754643966413714119438963733229196737775146496819735326149796345362842592547937267251541644186373764335232273831244313566959693124483953128442282927693585653836622554719139343721262751941568277983464939522444699115423844483938698516454314917611657723634334125571661573787213667593242829968328253665394123356331623593352213243241183784399571452399433477669836447685861892682159659171281172275511436914398911656192845417428635276633352696718766259295983522153614327159298314167894117913619639739163447893277546493778221263268179471193396444867485724674894722342812629856838237171854329383682661742599357151284132736412433824813527865531277769452894691652147287863829735422933237685269452159677982443676329224565658313321143751157314583234368261317745951635669425686393344663427218238161987375685816436842558751159161111582249335314884771875231233338327731232171771158251322436473278215242854412361123733189173461683515335316585427577976475249428586772192323282431159163622272765637687886741262473461747461335913416454736788149729484889511628365953439741454561698691519135921683966113355779787216231915878337323372524574353646832512156922115371638241116144277754914424495796544476688766957363292124529758553915252472755868577643197452897615194892898852411251275749969951588796492735253937399538186414665119898719959522358151249853159338367849175984371352616353653899383439445834338312369215175673523395784285691463628436851762151863561489974815299114969176745876791359126641253832948317477854555652384645518793978984469262243628932344213381818641345416547145459794978795488181489365451268725656688328461322163796921372387597793523866411634351847562472696533395432942794268427363147259551981135375582499944581825674996563133581948826529657211351855115182293519989936619398983917347482112127511595334261714736454582356446931192644822457696794847741663783614651171428614314271565481731858244526891254359961817348393355436283877331943245824788737953113962251753591448157676968657214326339228375293431761313521566811212541148517387411131245679396997542312412675522524812376495156387378263149756289962753697825695147913429848136374914458429331935849836952279435278692328718771213478941531779155231769237575422487395723818772763845751915764877163145486188251332494652158275845578244527325957727783463625972372674136226986938853159225764418734893487196175255663396168988842515165962227566142219829988393243634496413953654497756777199579861537331799539529146852624457544847682344291878445335684937994478633273931752565115586314911749218819266638224767481257292951929418829234548525566387546363412616555191483239232591241852631511924348977323156399659733431777512565597941188882581356226287747239313471834817586142894633351694387758525979247719426369119825739175899893431113159915866398824481516995644122992829982899278312217242327457486669859933882884925715463999337467733138914485974231569835512371845933538561246988459976716255456395448481913941732735231417921569241215365429731224212834753448181415224229572282136141362238762652296169172172897916683454893872831296452413851474739311817131764381864167275664916763886173389424428977532188773414773559954756562931792754144991298481372469491435847419391376447326475176512444637795758426682559921952128411914786281217967142791135462744945651753432716558232234956632627259377743163683262491256523738288446528171724521134978674697937512574451213591213223987419155813319117814962391559335712666411884548415634187566767722883915937852832348596454752144355733934694228194537387956216916232515569575378298831764462264798921397984714267749178252135628825561686314889487255969123747372666259757599613219179871286435135337115242683933248657485167735774699142543662865421318178865351782513839595775963643664239565338123339213527956761781629312449583541944533911717229889537172879184197216773354292875298437127363793321862319447924558963252439158499781333118266282219482753638847318227275624699689834751285597728499594224837661957958689498872963194989316367811855132177615522743745583992428743369434636928467521336875472249377952377483489321198292266588197336776888461185948972494225283535448821891984927619287265239419467698341129558163225489232517366311151871273599586789729941769978629371593335641279131773375417329618579943746586436617128469437651414854793868351428147954892758292198151697565119485616947163248656715599722513757742261898629163461884227436111712553552377515917764382722985415631356137956876183235398265646574442949836821376784692789681584358363924137741181229325795796187235848261123739764344734845683211879571266765976724937185413983122647514752911452695673357568516334574496516364141758436741877162112524143681922151533799246952625926852553284711937921948341531387374342761289999537251335135281237297579114971357918653624191679547615929387548782564285123819316215681588244815629242447916558298124933567185512334147997554877644281853571367984557161896282969162959655331249125857953462574845921311518746939318172668154689916699136378691465637915229497133942916469112584433987281372466574386879644222293437865599371921853825147662893544232883188832626993521832839129965868128976663439527842521448613864635293255223853755782758593178586595152931933855242457811928887773517262736115341449612473369738544943392414412615384253469188579189841559944549567773324868911538371332297952148481223145254111962662638227919833234398916791276258334455137367472466694368979321892642171642376515179522519994912369146182946886774861771813195474674159997187385869995317222173138116467292372749312113163624953673958952775997859731849395766277745953785467223962757965588484125319741327976484193129513958883521313262933312397731857866824153882469979199631954456836532344373364184248564281298434676357213144263295628813941966786528627434761528917325519519715831911343716626654118276816547441323841443474379434973887163432219525124879519674292756472132812648244589875134997752662492478912128822213892264128121754737612441648485278337252631622933249265944152719816328428761939159393836195177318898847632829389193436243545291986776516765437292361155463568846668688843323767235733938952112356522298618467656251851214623396372564548334233579251166956273256745568461698365557133443129339167312152682137997934652734553117383971292494798882679266353263349591991971165865513552156425395252953494538582658218772995973346616245392747868392369964811519485721337914138321374151957721117531511925211478315484633398314883595852825682815827276357681137753872159251534839553963539395132966128137598887494448874287914563776853617142328117153121932423799858145489751739167757161148945162546661285753983675696164711799497386353517712188233529237284272971116455268758552652447861689449319593699473232541182213167166232611162671712779224372549879721328281139794411532243421463585175413277869694672533595929332657878676497668834895148413562894824643619257411338333845446445117662676718483114719732988344737993463654863228629721839751611392138272558471631642138662589331694623413146263927615693891938755426523964311177783529511832489296383878153148234983792123228351661653885554281449748631155149575545283865339519272388413255999384272713437477448551728345695973592875186142695461241765611359989532171894188464267612762551756647749557363399545933663841775153444459874194496117173539652867128454222442382332587162468492823915579993699258946452523855484474891744237989146723166325886829938695327919554744857954756515723186923279912796621674487669963186232698454485874817423215171198575571596629984861539948847525371427631866924635983244344764343716274374864739813714394895548144684684961817534114995462747161181276487144988282685911173898527422564785738834624295635366457294665311514427571878639877844911941115534733332523877353523689569719758121269997697176119691259786266534152641332697888865743869681954788517194471865523631867549413712786464264933176779863427891835454347636619673748641246617745348399694364197789179293154448111863368235855122263377618756454267411281824451159677176394462583915236175459766573556427896526237221421616149538848363117832471288468699342419261161835145222739746324242748232958726183364228397125771771413174527546682857127379536268664848494145995816244181663227388641126255611371361637833767167554854776137131573566729278327286331684783774928811538713227857158235432672659293486318643857176136773525376851162625919119238573726228263733676846929435385187549194931432321935817792796973135441536294611254977753187328563844375711216235458694791129472227243453129259263583133721235543819145962126699621411444177672163591599423851638372258159314314638442445672561855517379886755396788822141627993765254677248535435617933252164918181825121681495746631335757873339344895456762457575664246382122961118585919366775612653392129667355125391333695327655181732116627728677974873942877618691697282234611512867648356443341899669235182429251924889518919752561772127823713239535229968774151796633537234781619692948713498211671534959458179741275187422241648782267646114549248229817263621896913896854637298427379629949977834491521711297527312811448128843621893931752238392828584226581657116213277126682126311133213851319119318929144192857387485234733925373477827953268669139877895896896542339536624478967128795387254158673945415247114725613984422934159429671779748234753213164685725851285819321632166862346111471279146913242689414411469173399279419329615363637219569332948491846478413634677828259391851135427897314276657679591628611569949424489419477616263146396832523156182748185477837312127893184944718166137741635242628411693717636381851773252686589239258236232421365727724588322681782495711364486841261444234685963286956525531463843771669572682874133438295144127934388873417668572563671262521566947641249246352271524323529392478593967523267696289671954357145269758126323814565855322584137333234122959522665972642591594441846827184312855352596744448699645215144638663421564377149934188812423551261416316315533269582964636237998936368731314846463753422288493864354259941996912245777265555226824887536763577549772415441652277422944938894591834918274935454412669233588726933445279344633593743774173525829687755195398485526961519671795977847172116171916146577629924582992525215117998525572125368469497175881334193291642852829645741966175473336818665369913283238376575722572422734723829477699791458223681812325852699517599289995723777487439744448295617151794889113116398331444236938577174967457242125825142184523246571395862637625571155946798762854992198218511681629756814835725321131285389991846521816367178413267999813752521251551134433266669334491947763854126639611248364556285654743684478126763715575328227434937193618229629712231161488829156718142113144293512728561524271112773238169324533129191191333211685545553768658312942753856915825123218689746667695426145762288425823358658368496744373534143397771614464214821197586357719849675517181854817917953312713766251316289986439382927953949643182236817351489233558722935963285538997912417552189415124372842141384873834219439983178442331623815471391616373226129861896673491972688325354493295359443149551788483718652733316634279485157722245763837445496237721454641734124866244271675272287538272459655233987213916352923392975462568858885735711793574356127521255436537572385751317933433632549388571877238291554822964671829555999453612314494656366418177786273376447471655862912821865388356177324452171489371347963551848284397531131422558992774432467392758352384413448958485892286865685144727254314785561142246124825126341444895673151856469341981779285252654581977235188813142222615854332796632334751935222135625362879322496819194246985463149865354795462325231168854656946494335665146357285825487354112649194275171229918784836492618987674645671846123324218272653243844299721625736445212852418268179675278293385374935222785428222554914338631547377126815138589987439151951421771796645811485142789257121591485652951726426732572965359138647323492245766547955345749161911744636948794111774825124435226655495985262211435243174823352645641448483161129175381668413741461457355413672832769122233452634517454225572573929476569483229859642733548462132665638694563268447575326716148936866447821152594747712891381267795847358481657957882112176733279812183618266119336181199255539165299631329527261617827613292322224777632115184722317259768296212167376173333328963844391542287631372584815427535238312113399751241185395636944692817993184977429245582591587974781325811275896853146763226882771225592275385181359455422746774677788932332272826788819352985355814937815841982423819222396475328515978648681666174164879252666662643865251775765782961588927815143962259926499636323744367643134573671847796668291569224441156288781728594749929333396735344312785329218185762161696524218743582587689726157687531865318737319488831756384951631271483473717436248493429619118868445341749939242865177498225428814247497264886718866751112484156731916472914293628734749614427531465473649734281547359522971737686482422129247314144441456373319721638813444843575848191156317845727463839693811228631755192214784311218345838332813212832415421363594498682567423838929127868397227999161218989218193676991717474641462294554516837378857151357922545611677764714194473812988189568283814243431632345273331979426459218435286422754111128978753914724419255738121853517429333868546212948235232366669819514713599132155779141375962736613473679191421866855384887289573132123865364256216265763988854865768843136184374876631891927789976495984865562835942439499999161252635615983156981871926725277946594569884734523812238829546536841412327316375271438858755237282578485842294861488467543369153184766968773832421448681443627385475125936866842498959734352862186661439721882956942731612876573637521599285732961375129333391825168194392164924832538446599732155779944424225574299912323428195115422642711716385195492993752671254618615251827945394931374363486296229311772838227668546928118836888934112597645959326174124625983421812573689811865222177485881182511672511282442733633848568473627321661978459887139528283258938187248571161542715458991577194853315161253321355314545213139661753178143977893726359164133961568951512721315783961215388263592823125566552886394935126875383125295162949838442658183213565665165263191783861648317366325528822466559818365119715652165457413711952833125721314739128662745187338766925921969735588946288523563659469484215151564727533826474479163113572993737654742732157275322761682962389634761424571312874414942825157423443182498237943681759264918923261332599144877611394535143651617252136458367378314435828913175432973777145584438521783781491724333361375244473455792576622217936745224461916931955553661733294326713621438532249362711454297437956143752553484377193453271119577875447664431887248591442628566323144629415697392957886591189624132186137184657539648157245357776311435762963372933516387493864856547266447153655311312679444268441882843611243984477136584646552124225399185775772954219299536711382196183657451454716683529789595519519347934547112242593792351941453885481867979877181984671544819425916771223642524334166923313161253954228333832383237252399957632335679748442327527842161128293133831973798789293344425593486932728566375756369929466925448634924194616796645679467526274156836911277759152763332559181778942531861798435437854958763957567564448441945355288432995119566452834759655479966778867895524613477472935387141982899154626267396645177743257326149281414618182657898839249828718416672647924324282436971423753728731197473439322112912582763136865416472525748367671192446765543758947195663234364842576712351265963946337875359632637134575419932412843124152526325445435691558245279546241882265128747665697261939584191538272826265735612724829676759979111234933953325326949521471733313424422319117885642249244331782511859376511577662475524293444354774131571589762673585344184472496712829614453699466115671411212394828999159997524196113857335534123429916539158741499785719245583828899917373247539981232515647555512938762321784368342627657183879636936887524651756536893123939763597619842147212889571436996926897496748599593222491495867326717274421256826743614295429518195644584489819874746746579186791529361364772313325155613876538545924684781374914293275683797459677111963595788897712423442638532669844978758147966555799497632248215885831478334553916425211796113714716138747339432989843983772929581659619578462652916585292943297775463723721484881392539341837823145394845591727399234964971262482835441455241139474251671621163116316621596987254953343972478297711781497339716936197967565642341986733121964622256316484793177282276745862346937414962498148918292489747323683465179333525265164982614315767683215581332164544873843628383627373792518944818586147569216768987277147611612825427788971444281593539593111198641872939352972742986952462961664524932216233669811521313456917854128443837498323541574868484661226394482254879256468435834743227169517714838814419427174518764311374241231391466468521642812991659174636881685939214898687147319111693352353816916136166262674347728811163738275556875661351237153353992546362942251221981947676513584913561821735578584265245317316628348359488463369255158269944181765221153213534359432168323421618248499761124241124371929216698397177997159576591524151124433385122145398853797484143155283858781194933785243449458524398899472442922694916112135796862737153535439969648955221293848796276886132292241632222353938297363585635499115688328152454986619867357169678683755433647829642239175272983181826641339135832389953331363752169584922556911321519133727971828616674983797345161827167824374484153112468748249659193517771377558287397696885928499722361423255613387383714154974887919788434726642434446374431931723853672418924312982673267545188671146524217596491295263785481368725599712818394667671947471657466467379133795524874597739636654469811428714787814421643194853318168265648154912212428312335521794179511394158341229232939782429964343229546515295791719967368266387225956924653712393973433758843937813845783232925992796176732119681836855813112261647821267363252149799985224774545842457559636822716273913587186898576394525146363827668615118194668816425135873861539269274953957829251557513139748944155591489249367512464982921194726535822531352232141935283985739614256129589266493291357118378492567981174917456497419129967912147442933919657593333469684781662162154558976518265195829381148436548466835786341693598776833684883622298997582681194964178743534244822517165333894136636624672717992694153751645154717342783425754151353564992673931937991524924233215553616448116283599672122877472215758393595235331747512278158323624923341718419648653317293112319742172636564892958333186333346236956954129256485274467555285867552274686472483835121488245774861649944228715817641369136535523488936519812627586579863329391851754219835328649321592784391615575279222156359836963558135374978714936412635952148896381939739532875912412349491526494764583675112546914433828644815138375758448797115147771883233262871662564374472843472784562577977886889949724885158139483233589352685657784163431697691928325198124665661912111536224953776156256683176974967477514741615313863642889894248868818547723778368998661671435671433661868145212186922137875733916611153557482816643999952985846115986819937826315134818234349674142164672826587221161429811626735386383889178164566895293327676774813558621378255445945981735623681861366971841894285558551898727711873847185592182799425869623397119984131852334921563693294995928949759846848348219144443353266977747469341365656641192246338654863618486467522913733416543811775343999736793823619282734938292337281787294257465834463793586588256826872533694123518529588453196319746535386379361713219362268517516368144241445873393465972965551423552336139253131411538625726772334458729526113273851371573723355346264224192212531846439776219691513676714226542166732946245395235162361842657152827468984863618771159543354392128414541555571838625551948533934926347243585445164183323133786118249233586129413228476269999741149643345351211493527365725197629324476972885437767927859321446828723523369311719475939476211745628524364272616681718235448715713629935669398521814545384582596972397624851948882911922627111533249395344815176131313893653493327493323345817438958371534242192693961857292351317168613638763872266264719849418446333268486335142121481454884835856299333793958368441631467321842721282624342444664113891897376615175111248782957532949729774427724194421671933317947156118443959929433796449947993333111844895736941811512442175841191145722196736916142857965164986835445776127261256335984593675466367532725731569992159333711514887171785361372571922812894722491823145242113747372137975723532292442554991614731752567745189923411689115547775838642677386245894233482119915427882374182155654158138492537774876858912467573558137238911743717187995694824273126924971573146294372428594615252174335167889976496322877143773314843622167888143234711644484635994241759447471276455246715259416424457422252271751156658366766761191398478514687822334379259568396543968118361212283116532819741388962835993923625181646289968482812325583866612751264689322925115227387934398215395892452285515238876764887229344116235219173349931283622579974644687514918472925721245335262178477955489759941974915445333234122482516496146556585254556798439879855428448327723348489356281554635485161133549468753312845879412221486643675965662176796721689244961369275494694373843162931859154239685585317534887129738181297828498284951963772725883117244184992871284126657564373948492415653757855981928256544719724848496521537617253423377413346348816282546755171411365993585297565796541313238734536742233483583929178257775375243469353242876428176547422165398715348574635386823892389456344476333388733993475225169297473274858219338972963233184699646645162433584988522634876398683894824639166529558313563654941246517223216312283943384948169455256285751284458312198256923926315451212922714797772774371932239959115553771188245188851145794154253736795534422833242632123425264171865275324254162112488313279255627881625124385844738114126164977719197649413919919763217262176623918732491623714543351152873478846578767819251135432673391531515486451217632172746433443613724748253951519963496259433264226876137329982712121677288869652663749934977635249144392287892117325753511173475485142453368658446369622251112343474465382126365521186379755294993952122251768418313877368414159722246593393977778218823688554597462421674748355218494522134374393787347941441797139476268971872354316594835316567181425157485156459316516234342645437497665472876552366628125813982243447439426241558985553233563779541122828393559644714617191745262856857181615837967517321185381346453253275782467328519159596971268121833338346229975294191718361916544469867933145923216131927317481345775532556553316895469541965752791264663613397221551464685826631514784135957376336919598939231212434231465215445738944223315416346549822227571834168364953439668878463811551181291284423118241287148583997217668168397776719271426216296523539163457396139541779436646817666747356783686248268712121954614483269186951362681493125269649618375191426991812158639286754754533231839394545879613975775696265721758323366726673698396375914313714317687769329214547534879456277821294321763199143948766661137821277716272598396239682321271583214967745421975145167438426726942589397243817416829353233999625662543884813881331859291832558964122672343821515548388754662125732331363274121932426447912825824343646314195851936899496145112779462675646816833322668951559733333834946757125694979792539126312535534183473862341141136827737676722839397483315531742914571941717791212593333984753456531912461711354512493889854943949925521397493995488363719914728121729526828545851851374337513274585243731893999117914924886477964587285693129233554431278748451291224991775117841526147936536875566283668115864465588356129612485872575642799582225352863586477835274746843254771326289315575144594288421479515379387632719484423697787391816493748566658855549721571294229363141914428845619664733982297431543573597281794316557512668134852157851641976599258944812275363534867885141148971386862929981984254648641479259955866337698326859142564431152375425868619583863352541545583418562954722842162942313453819681711734123443917683373687739399985222181336736244919323578554299976672822589653791259419438252733449561744278368462439696792544171673739234343252568133385445564993433997177358551561637811559122795929727393828353726186612325982874547624122644576498631499161242418922135316821741814546985161672212722126373118733783491352218191963263585133718884655224284744294227866473585295316829461397798444783551257298371317792168582429152369415928529516856331431367186743947434611423459198278855975768925415533688227866981157598669919214547225758339716149339463971555849958436335424763441719224911317256478575972715752978697288921529174154278358486953431532273593432383524185611712623315744119369211857996755311889912612989433247329636252426847245717661667498314174952866518962983232838995125584512562681194424272592928366482429589547329488267242944848131987891982375286796782574693544742519693337165922418939666517544388895565511562221189344419397573237311785674917399345129955444634812934178413897383768529591993511182511712914387875166245919312151681128855188632373191925855647199419233227245678145671825364277886799581454313824149829498855557238951214492688555974856732827366891661596884745211257244845363416732144716617642487631156448111272117152566671763354519465782372464473165433956727546933714179399286167549238931693633257925782413795831276374848797834859379231553479784261628199376226161484483559648596187621682694385314914495375523637384351738828389887846196932888722356811336375662813633578122766516162282122658921141646974713246517827882714897268952132935271959546378496566374781427974242568324434443112612632932324965663395351119871194698712787969184361982234523485421212132339272216529798156221766619964733357237293736651362692417857825526614974244668229742859486327244134377338291311324455238429822171586472131659396548984332535787226485924769933257368217443892411313215522985962221387631177339265867858441113284528933815931773742898256323326423359344352829471295891713795978627364783139127288779973138419621964893632949221672277361338637558175859255162722711937951316211362511877654512885219752273356276238799745666344391381155211248738613825826482973374451922433994374945544994951158175383844762562385448324917288613895616314519963267361851331698917225347265358315978164535118133848663614891755813525476852525854723944765745289719751518136391581373419159735218272771152939224176242847827819371943942992323276248242563448281818152275292822751149999661191519262854939198295221583388898236387673488768336433625121431649424616112585632466343162873751566224627228295246114756856143176223145728126449186474314413891386193225243923493727623852963471126769676298845614499357791145244598371428826997858436227198122822567139529882314666526278983748711245751122342549433948451854961735541677758524831611813887439252213182416399539274124617722456579893956326865983536124955153496881656263855733626512349411329812747282963889119161344839566916284695555838174498232988422531132362615968661381396938326362642513612153673472867173821687969734612698439211396221111944522321359643874175247744799499988364399614992122688897153215267152597155114425627444516354669171718241937971382464918868796493646735315699622173296834239763992377325738427643765543127685229372728121169317232248932494925236431772255954627926786796364652613837962641561141269824838983326252829711728752716353283582159315127475394922213318885389623921154512539762263867142211153891484471439758242389976931438954193239189299647399828618188594129949515774888549666917117723666522417483812117115199531426456656662988169487113675637781873357373857575265566396512858121192112767471663455696135947239775776727238117579845676866786829351334733534489563683884629522666525315423724228891454771713342868682971174532816635818274611424547538131368796769211953511885769261837629678826341325654744994925145365839919932254449916277419783752714143689614461312476896778516264329773493755728312495497947918788483281464814955249418121722997758247291749311587551677511788625244958656514334832267287858919439113848361627345973291611712199696891695675656957384645413855944686754151821432611813266483844932519275679867761291622364511863996417327444556736869731682583923268278146641146889415326271359521273224868666358145324552816645922731814773364781594566494933311946662432297263496473112512516435949445946857321689741329574589466464877378851967761641524415234757155141567959519895787266116213876241874679151918543946316449298129867893285651392762444456266823132783842531249949848961129392661635363335972214862691926898485853918532559778862776526743139484359825345954333818887995298772691477653554988964918465652126587516674798446176223343839626468632436282181493368313138993152824155786854273891291749617115249214155573266535475634377778237915894114966761426718245325732726925463895782128791279174566421813313145349829987648956669462713135147326616864813272682827321934796627368229196941793115954531446295945233769811814979591774349233189776211258712146332373426975929895955187436657981916929143391566865641495646825244291544833326699154525411636222936933421811169647314588276933689989855862137656686351543424117579636425235658572436748715268358121154131442487447364194535536536366652289513573955527952692856157415236223343424966171543542432985743744742347672596772862331585836217225755297254491448331463114825355236275138631621838428895746491266361156326246472255327917154837431731216875255391633177822681241652165218966534871486242334314587534675282987185321741631273745385991521523439913922917848231352462794176974214266781767549878589126614446769181754413942828436785175518715934177925461399676715585345198635928398243577261671255432494889398334141288217115594913729267165492427511445915364862173125245543239121454588159754111428265297719344761745147736694841763226325576168861847226977188821324923515169364825126451631839643683485989325421433737618881513319415926742661375477129372227421624751534817326474171482299788922774523259218915863557271926292198325126318399219669968264362911577326717941861454464757582871193129591498578556722483946397513599378352441882615442539343326274692457697775187234183285746367139326171617643143671451569267177715667323737415134977227193392913748748289842944448348787579189733266417936999655776386526928564551594745458535112246444453615237132242963784429746936744194527944625425134231512684163643287476923345438443171767614416952357612461296224533119828843857749624473671863912478241349169584273691193837946252739474447531485829812949546945533131332381244458343327267943219577617144454241362628411592925477854162482744263438613316256427799571686812452777176146456295388276592529648728741337244483371124118186696111554516634343397656282125618752375979739122456574527897536761611657416176563247696268725289193516687424247175539527978931691442239857177116129355492598961128442228143995913286917732941638423919955543181913722385444814149664316522817919138751475435175193286514863727371424835271816724494359456428851233237691259855911226819418963814861173646715187919342267965611335226296821669111264742331175222755188296878429178834388539662712618631868823825348846888752391273161118315449815358369925126897358513354683717358253314946431458236113615314347629386159931971422655527775391523968135475553515121525756368479114717291759944719353141234467375148496727924415166684217132923889779548437574318367146753573439283543315689815221132732789855446986988243637262916952757494819317275189474586895236761738345215335399787423613239638494282737733769794628198195328343239413998486753361575866983628957918511922988222327529134492177196987591115195559185587134494695467992115156926574422674178671992968265433368644419849522422235563363928543412633285186846378271443711361768645119534313271166473496443464459163355263622619638733195656429499648283713827146224757876441335446123932217526596521696743716125945745375534872557279575334832466375114999444442291487241194875429431568649116438412988558352953414753141165911253731163742891595762771562613452858513994487274541648531137265457946521754251357911693845138595325337272154846129438358976768147296351438446725151453123313494227756977413219449882634972765163326523996968863371519368678323997316781172637425956823419246385475295116685551387413763248712927432854493328286213168837226762267682732487883997458321782471331776261348128674943561441989594591528343882269873264982724979233748529424234479836346685618237251415856177915772572566528693216137132928231632515643461497414484221466438779323556294777129653715469331437396455142432672231671443437313995724627147246457115619477582255732327182935366563186365444549924957174928424868768492537621491433518175173314184441936986674482576483636719329231952545327364782683738229931793717487662524788783497479377511585495391387669672586658175682172456533144552824725179641152349627525962216555429933358435854639143471786189877181348251289175528793716378535494159821477731516364461112339372286247356489718369665112845476723132191622296223776974289421167614858615236623583265522221586247883773461839841692869318997499218772933722595874633724499152581651262536677227951997856625513261654319246526355876322953229644473815118222124492783742318823515694518189721147653345938951625323641993133953991424362893838183618145396627964514157483998571859512263711144194965863173644531239547855731363811714394358421665351215955139615594286399515731319543832122631547161272254143715693748549741572862529482116272255242162682894486854845557853855812413389135423158597872671925311292259787387561342994714158528339855318655173438279327855523273589716415732617653625131885443335517723213175173584452218944722735177779157273461266189333122466333177985947258522437757768125397262114723521764568191217951776797767991141135552221637419921376757666997143665448686562815354189276488492536252732976869454629384965957799655179946637895886217679275924337312548355546559547361111575753754817479337377677127929188922499673771885314293551733623456845784946314924436322313888916652947881846981112524159632833617217722824656448138125855213291352344841425462211491637386544157664698649749345681766196396699196444469312147269171752997643396562697915453863341894867754863789629131984217562727281244436523955265474511585414294867999698112414225926396949931328235821348714294276125473614675818457131193519647784685774537465295778276916693361894275494133927935549677813563141136398219764532278851934413972389919988896571411699439165993339439514313492948491742797679562349667139731312688351816282145572891842412436721535265691149652882754564331446397262579662213234673533626351873821432727486874364321141915183164757687613879814511162348725683698545262525914168184173671613583763261564188718646133632193336641257227867991341391379389239861785828948564249414518443739557643361132138334948449428448651745731985388433486876844243639688558868848437324227719577988274313397124546478776942547416535645625613969123772432835996681877333589415492312573953471223633868943981529288939775887525412565445538961455876392616231897616233474993221317154536551946664611694314399637553297358665943312266755518716824542973122145243375214459682763457474187814699474284179424944925822125425877635421494535331272334337912837341861921614678944517824983744717525738625233622881333855368857915656812983138359467546855966566369945433226268699629241534493655537284676277988949533818757996889875278782325833737359322476296341342353936617216543726792213161289885177761573164326475893451319847363732963878382786152449628177947799235124613194129317661825959471876547867685114748848722217151524247496772133342243519529198333489919723951158364236661815355534956772427479573414462973912373268162382331722455243718967851674938864137363832919665525484148272157348921949344855227588357642316266651876832522736248333669641986574583515912157681361281536195523251377955233856711141692624922647954217299926558164513244694592513313453353444328382715379868521444929751766364379574731591323588723259135214397767143529588287134235262153911568287445531491814429557293777354148897584114321451492995513674499335281175756351147642424117623952984371617157322385562612231584781387349544575381862467571243644353529211963751628377755152496459582789612888335833833692151576176239551457182119182618534271997945538339437922247292169471835394256671324914699965486661431779352192167826188214954721144818265532375354312612452456582262555169919336416553586889111815137223386626275495181464617876699728525517626965127219571413929451883118222537874349169511812278165521297622812415832686949732279389799964298616446329561778595897612628616818272371986784676743761854139543226233143266615627814166251758419492326623345213155231784865457376473788416665454393739647198424183129333389499126791872188637853219362915146312384349876261429264791912416415971366145929637848158195119633293826397921633426311276266151639198596114478934554618627926362935791249167255166857191823824736526653349866429396287522718754949666827888384396925334414427491673274151929646294489671816718492911777725611985189839888762635761933293752542417921537623584754532693224757117545314521942148652257131325245658259678466745864165317868333648561848335493295873564943539527323174445144942894674153435476887128364177483223178378711354241518149857971624625936737585446938135611324176372994471396926681289661732158253967112226651182335138776792772139131397151579213713728245282588778769429617178347544236291113747126911565376149651355641873286111248399125688186744467276947331922339127353267794713319263562854422146676736626311351555754416786482498331978913722831547683958464361695686134472693651257686736931369596553735997153634367962186634713325266725897442561826358235513434794657665732463168336699827879473752346921663637249236138423982857323447587681137686428111244845541292823559376988537531447389361724152512128763666758463793512274599163291316242224519366746954544954262461258265138949184533311719167493443584724675457787843143998283725954776916612896929378653426237282813715145921856445356255991928544297682861238411994975381969414246652364253146375812347874318945915736831917717798555251526763274481786544632499138128454566725163672523676537965354318179175493958897166236892676756196264568569322544563423659335823623229125847665538866439496939567227359282271491319842956917724934189882713939237326446366851769387717464611735365588218575578423331276955383327956511188594956672431756682236375454515853771133242594589131928863456947226579772173214594482219816286356673921344637937268781645568389183456254379142136199224181981992319416752438494211837681374985179551385653315297733846991771118691696926526299292835545391182823535542478832563817964926443366658196323186423316793291312624189426433436755684664829273713956843446421731554453677362653636928261964264217745925194211772431342482376545211269757175519511932969464673234392681999582344489742114213643811191956233314684196395598924959127665466121321279341132982349682886114918755164358619252446715129118721536128973211294892174943466911751663385114867193264672448776717518349147284644995375228667452994923698854823945317527447245212988485812566974353213971278637955185956329398164545869893374941318427896885275751338981287916412547773686346475242442856854917298773494869842841618562951997721676127131744232592762688196787939325639175315416974336298373798521181271581679378238344826291785557799653122396641826276618323167376853912721233142862453942819611567622169437917367558629616997126632829915426735445935792179343275339942467275774775326313547459424679158717129657865678185896312183358276782216164656842832367161524485891333452386937296278784456446123567789637362147284149657526988725979352249149183112237812289188943936969221614649184291641912826581142444481553645214749134681469767552274158523827751527393167248125647895895535262916879853447771219522655767161553975768766423738697267992533877629624446137815676938731686922849113395737969821222492496216862675428386731363538247894831169499153471685393418795715238664348475699514568317951932731213234267493216577822577536962491567783238217363836219516469335862656635478714168565441293412442468398369683237498876453512912663782425893269222561563683278588719868312679324437211138362992674993914786674628555123718569976311591248882786422839217199167381697171816427172495498123686781422989451366996429867251826337246182135415321376315984886377154982948986517174397955511545699316999455734354452189848998813937942476133714284675936717829426749348582189278122954932159585142683881759571466962526457737757371836346276245151764516485948275429291368278536322314241535216777995952512161531452294251121199867332163475181211281143637659418719717132432525237214433539274473122352455152348821156242147744655152362218466761517281158113931447839847653146336724852944143553146125478216318437587122813649976319856536275736577523922157154893212714168653831638216985166182377766243437942753264336114324161599126337193921675119147157933933636439187923775547313292574281162771963187284919859852142231236175146395414832321863596872441987149195767244819858258279397966127912183834552844833941162698154785747629243329557432831878418888473918151992194957138358265434335875729781484267929283277684155551532314141974611253235744174262316238123157236242147651415311453153315335173672135582696473372161278333942192142918237783926929996297792287417387834983683212491521939751421693387851955179413276711157966121483654575635884157557225924554531731659611763961634689591271834199874783846136377147271864936272898296822854233267145143217835171181697389635626758126283631587945343648754819438587351762665621395294992722486352198176712381723838912685115528426357377652541641425689314175269475563672499125186757387739716628611892475113478832216977633745532428418572871818283192832826663685647424724148498976776689364596843662131916362248149775238326283558241135532257934616685585595223449319619287246316822729323129555793986236927169262683271551692618951519294975882286542962561847989776495998244937362644737373596623687276742846246112813834699175441863339826951831222144795146331233479129723953222598491518316643429687237812264157565792156128992849427711552388253341325415751299617313355788196744545683629582928496919626127333892165713795494233216288433176185658487224113756359716279191531554184376316759453512927614722546727418884177284573245552631141527683343884186199242779137911777499916352466841984927379266745512671667856449537948869925282455117841225211188498913213551846573692312672957723442522725718727439426219133251225495525678427863422145238829434413411713295647731793323324323452846268982467814978527238628625467354914112474766423172695562323534121547254951553912698457553165863881355544676327743184829971382352588519378442769358953815649185872314111627158755331116463837463377374753312347421989222278399519278514813451957431981575681162993454455884485337998139713293527688192646525367122277961231379244416531471911156476224661724119643439936849692461153279783719781941782653197723627318398425286119666824685312891644343127779795213815266577884814216839933582978526128515212349932211966154586223324485437968953584988876953247332248613699996141278311169263454499879938652711633689354953282325132848181748265926225131622812639231364299656411399561429718293652332242145953311441626376783829652815882821367683621768161985299825679111622717283521941234922144523852641379164137475451476436621413412951565147617196312952153472754762194622132991569226165216197317729246192334163187526494326239514894599992118151567433959349746496394318659114335577135442576656383399597444782536593534213838249141488243727428857154169367759245251823381199484491126845485232486686146837393748254793242975517131119229641392613111983981955959534585654173315565493119191357859197157393836186427454178253956642356795348951963726189695282275416336664133162896283514898918192274243989183171672547394775638146159924159223926335787283397732551656873746467189551489623625252148485611818876454891816935611438625126126822372991715913173989469486976435254762481263475889479633294244371773699763645835127892279839123485136856526544149412629625584222336324486563742279292585564753714533977716623889344197849392168871231498143144662478474944298472958361244662772339573227881772946282481399621549833482124388676432362413997137896449186366335963122693215734417322967658984298831122242667461371853785615778785793791611236919893155264392515654534931451834454475733133424954768913722213929679518428115813116768719255725952695891787737167119585229595549639362748618332179447735462481861325126563199221622478987212295661149462357676186127531173537767339851598663637415524697772471382346764626466339357162398216575584335347174819924697248684197665451145265744613646781543249864161891856131212734923533691125677434678359721177239147331283523373413128914223473931868867468178516778212278339823179565582792879815825557795912974297373739153422116836434287622741537713811193394978741977741296461676151922384827162721281571846923932848659672452286654379234559522922224372779119477373329179249528375315697412483295117234495275712844115213249217214367373365127861439831161184516898325411914145112558842875921312179454356291474818832717574625498132411176675442919351376743334538219397213999741364497252155631971113295943524218831333138457582949445616275139517517116786864115558811526695434462836564977361222536991795413951291166348353248337934939866823638134927248711225333347741812195233175561921893534171125386343774813214788755861382398441247654813182359437584269931858122987576944272554533172271881978183596894665113819355325166685741365684828318589853416757138243517312487939585156621313148698825614292577448376845614122649276746424735411277999287464253362571536835357229438356374425731212457737223899133488357354651863587846366945868311271263419934814392486565237478154132828163687521531392159976843314784676478631752561156382426169674773893336273419241456326541477617446432757759616139258435357481178372723417361653313316476424294926369494392756246973695113454753338393215614922536478972851835622114225119444595521118281466649941889385471348546879212888535951452899411795945556437894259524828833965184121443941653126829535199535589771216189185175952645173588139175964394432338413827576984486949615296226165775717513951641219411221195534853325346137258222582862392384461392239776533278196825261872999475471438632325251923832443554743957629153552762958111611213817125478741823948213748947866495487691726326439351651888465921471418312316323245362342436527178622845618662482237896928614774688734954734263291548825178774614549852186199569911693688842243711643778952547325939787563389261555315393617738256283113749899995151564351733395518839982886495168393959655163883264372715476544263389529555528915913645241175911827976473545454752334164543811828113256377317339145138777438512769922639672965371712945729875273823375958222878226966237839153515133122713188591342857823135667485656421164872576414289313619856248766597894936264513985253791526194281779645334863471991947551928118419283971157523955474938414743122768189131115531382533384589592696584255761252913822774332127658717932642171192674357725639122714646827693624476928184144372861619334956957759273156719756523593229519179765829775127495556964637819952622279494282343187276656135759231328437352595429349229418721589524124172553873172473292944646247189227953613269531354274812647738463552728957529498442366738285957154495278582691793967624561293782493173612143996961821951591163237165837329335626937595372967292132622299159938246148543681448543453561445438342717578796762219161549271877448392819752815459513653194755737695222146342518134655763598633242564952779382118661677951811834595222277419113284742654254632267377668511749618424354686822957343213249865227937464144564768812844357649165548618236731271398969498228827234682229842423841275784252631647623737252428283791795529629283425926347786516525558747762967526144481971625571662828668538411379147374574682723555959239413832258466812249827633234837931743155486261452242299816378736291311929727943523943834415481594614141931866677523879882864137178877254158983884327823459217715424727571654227111246666619316917527635537414659897661779795349481611162513372519448366152778184738346328344331425195686313124467625374129512246721657547451827831279827856374272943364673577421258546866676888282188181394228265117437258997516915155929754122185751589743924768374799198818798268182474143514244992871921638863828949955823477444276444673474183317735599897125522232863363869946887214194141919276643514256643239628284838516354242233451433981772843355117789776726245676275879725835321276631246393715229836255111119683352277941173396726288225939274282486353925361361348512394837434799949645772333266269826195767232357993828983858585841199238615688933825119621418418716325837482864854983971827989599479958123918147312884193911843685614638543329442851719152331346797649585175184283927238784152744434232477339821723428873887472423143384486129243318561833812744627218749716199752743968273933642847365619171284768354633615195693329254771359125887225328691728844918986898186632316314882165341125472689924863384491476618276143141387683862233218835391962358755318393929574136333889455793664319714571531873669894766691746438264939671238543182587412379214152798312992254839747752293269933963461132112414486169668125774759193161275158749653845554646829239518963256729652255292337973338784714369349171449318829141178718771318179436278738929483396998843624846548522777144137496192297753938858114966444618212875199934544145636141593547538274279311286715797863323544431845152287341136238679629238355159484155318472999445122336721231971353357711227394144553511838497328247554217749864644785935365916671346611334725574482819761592144816846425671175353269551219922449945971982721736854926632685647649548649543188164989841695615124265421468244889631771664217353446741372447498963255376662639331734366924685922727738389567942123231298653778862114117483558232529835914635649587753824241646743194831282656957417336398132476396634288865715643851983617756582514917317223493474969622883568343352842529522833448756972954634729948686686862965392169984163375793296314777176164854972655187578875725827593685994812954588778487417419758536975597629611836857239985557342343492436152145234682143187726889847224828721582252488149564442963578892349318954492554725876693112538284762287536816174917191452453532915127984513429716262412299175397523719185712331916764598535581183484934985541736698136815659581112155243119756331115972648787871825134449313165365422984773147549226261211542586312852544273559726556326959969882476936523544424948569521635551822585334319489382534698114649115628513391781575226973553968454218426656344414815337461333745852982281816164111779388146164687872196521816121669682769959759622641622618652938248791348576678194548191846889456942582457684824496733244374146657473368364376832887883345791346444456312266757962319995526271566699236626162871191696925768563418776547315252193859445752623923614148111633595243515218285453642934422525987357157834298867934267467636639895969399558858196515822489311671823647739281932332799155445562559928723387324977962854311565931257647469284255652182393129363259397514877242422713246472152683542736795552665352317583878461262973942491941684339824617433772271649231573669389141774486671755752414379885233271378131615742819314311136963775297121712531274785617377333777338386884474146972549636736342588279563626425986135753416714731963878285814923535894512467353298967165483446364681614282662219741625746679323286141552661265367277296183396937536592975673823453277932557629816769385526134338221859349712417585893791229382412546161197891464463569627685436445263832999852118618148783859825368375376316965751714852295555951312476281214648698382972929585887729865442895895291533523372596998131928437984966282432589868418556782877966281651281593874116247339133129982372939245326972574421183635136935828798488325448177622442219478595146718224354242133838347665568741887323626777282258652137576842361515535151275673121369891965331254543871721893649281913169183631791221779462346254834887248579555796793921289189255545158167786186752187858335323553254412473915313928888414189434718496916297814555154214545245337147347322442243443622458789618467792213624177781373136238726899466719333133822223447742212122952631241376993913897855266223176751389682762142995858922812796168727156361433218162558489977798494285531317148592265123827392753375753928446644288769643558417613587311649868849533413792974229584542664474346343883778821129848828374118386229732543419771481799842556629949537181428984831646385677233421826981814434921386935791576525852636531277844114684599331523675459866641266156827528971224933958381318139271915174146713518183237578422349644466173765123876822214224138568478419482482795654717265573439852315362465364681362115191561367623745178755536785736377577664979317357542227761616595726479145274944519568831434979336617356332982373193274498487672821891693335393253613898374712351241613754179855986681883188698599978472885927579915743368612649162973324131326233226645456923693236287523513636675253124438335676145921924623872172233661836628351655228144129452976384813764559712341645312767953838223982575387396236458266647398988882378145221996688631552815853429287585415732195351892659746448948825982486897668324493881668819157175432845939975364665665669585122538447984899452739343447527135164818389921148794594185143329281785425267159773378657969622498114922449955418144312285222951779646664746174811935334593666123873942833993399375199624879761881767837659278621221176566161432984912811149499771465638868378222939733468552696469562264978534884722486337444523882184257859552612449248466452183353975771246514917241456518812817425122599452513827118477153494432394793193722158286584678567883842354122467444923912794456995216468522542748722153428191978683539944684949626625171623658335379354296912444171436775461579277473591297784719954458841212545673371341936336325532476192267291252162236845648195291882386835723443113922247114624744213436291275198941878122964766239282453114616912233465687422183439465136329914472157575681176455476147621394669198613576978772264135194461741694772247159637814919575595944957791336147244393229726353454449543689178485455527974396893454988441714419685947375741231666387312331972238948648419125821111562159391291466415243183823829277384934232415274364342823295135366452341541163121447228738261932542142196432278342712275839839215544633234283574515443663214842541849818364522212522262451516298526213244885242651141959285382562335715866293751814263778134344241953774192769223998838262932818414438379784523462466831361965435968744526591385627516643428133245322131327238113425164777655747121237992727464222487177516428154373775921763513222358732163726259124866339374642514929817279848283615433695162137531139855664541951434631413394184646461917272599556862398897857674992412911529846982824876639713341322697565743488473615393699885822757295559811949519596134811533191397443431582446577597273278358814532591897448754492218385891871273798393123865215469125538518824465673448523148867812952166354611444247284112627269211271582845593262421657291252762377755266678671964917223638819961596165618423925728683972341131269693963356922854618515671889473956558589283352438914212916411148538918846427853436233635635734346822262387624813622729517946264645293116757795112195595912824241321857895643758898655989861623781618379951482633133332578738831629179885577895286114528512275414418341971426527968455431824676786448399966143485192696433929769962331924627918938715738845376924372118635939757545413166925629717825463486541197826629569733662785657274765194997519395378429311696393986333784753111699116526386154176711411478512415557841943623712533663199462938983477635291536482182995295141667468281365317671758233217175382141637129131789711719224178933245642715315814545718973347947145743211961162626753147877628241356356446597442491233332522457716771182368958259977414887564444562479843849992781519438281123946684296626847144917219342167599279458548712989862495323656765293171245745453934356248786153778865623552377419417611368729334335289982971359865351596772361634641163939142538414941322949168723467571426724715455134918794125692933712338543329156849732679545213278432139573915958435578638554584768758365324917989325974962624776491366351691245589635937327359494387784446197356883175519318234989317414223457382133117442551289182272573552584273325925328479522392789654398717395139114475546225228121956641412924633634832871359454753183175324238582484933481485588694138815213226297969267117153881448933663722334298436644183923559238281393679276796617623897546496777752651966578271357166572678331656128912487922432456687855429389336177865143891245563214545224136693343512989162725497135297289142341942115116556894161641535791337876623458476718681223628184427216239569482658117828759274853637389915675325448256942414493326874465282861759553169546262322129673458567597497736349665671186872318148717812592141958331621314621632436141475799198171575125811339237978117435254271914823656232192741135722244524575723757533532421343941519953935931473111111784828121737142272239362369635931766314318785674162497362372757641566672192631423625141731988622735467125584437194699326439464432652851843919196619156982394585287196125316644165621631462291994672924419571131282953178572983926512162467489535386575813191224392112461931841758467939632432169832959734247752426921487675542436158161748687857854345747225341331542584346427979495144244322785362784182243164745528116234936951843151828246842667947899791319797394426544162129362155112371431851745287281546228757837485726953927448321917596345344817955544715511529959131833593552653758637727492792544561679839319412341331661882378977524259558398622983631433158193338456939449913539866464848136791212189558512629198336293589213755164133349761193772732389413175776961248729284969651194165917853111972416361326619555124154334242342976173355335697888526224734145148797729921548232211185754222988827545717121544497327389947378165161515869755677174733375889512854217476378432749128636578339541241659868569224711583687542197923151153145786897382934549591142886842451966139693828979413672168911215132465415855455789227831363789618348349953532165999957299429379445556993568519111419259823987696129236897342583129227977113748857417123851857934521114956376498911253893261723349817335315314418156569432143399339582263128127762346236486245414823742196644126451451395558598371453647557747535949423313917626424743251676489652342465885998175647939638358835544611986141376968998314519975129478537733593776129896596976238133469777394216484965985551321635283731797891142891728832281469227386692697761583397179467833966211678429179355912213164813474983653167574325463634139692687396667993198196732132327918532175825949792743828726156747161875936695235987242293847319586934249878325875735729524318672612232241125838828276583415563565428311161318637849111619474893866569311814567114126961812856519514341262622985231377439875342666833293779246572844397351185122299857677638617584934929411373159822766378775382674191932854879753839414214329153497655537925475359979538811193983378796991136159288651119194342284134333659148628311365313535118217829679616575854383564964271377621747994662524985426562773788395725488687617856926693568813157732874324623434512418973562133711863774713158726435579714771373553822372948354323373929571167658593136765456267417241534882452757378899971769237914589882571843227396197712628175924868485292781256845324718721271135478884942351113863757661358262397677483972849138866423923736335854819943684798365942298815127362653165954253823963781744475931995476264162784458482864559122358136481276182252449278922643887518111955884323711319449329894241571228498288379553685764111826524532132132511749963168731492899992918927483566792592616533548334244253279476713483956224228265489415858376652187599935311433284957765282455559659335229814653144299568753551792388951212591472235862943714147963576119624539177349819257111988347257911812429569422311161225323982352327526963343928454454396484646626613466254553591847324961711655333254217733683881213694392215666642236783499455564717316137787925437522214166585691147417588849976517876787982722951988467171512832236174968319316379827266545421343133536667772554554126646286356271556417644739948928466945239274152289626472546493332744246239373584174224167812917138482174536937564845731817991334655546525871586727559314486177759512873582153154136626823296883212927758682333551383728144759253615842197498143948941958834617741654812594612458516924638568637277366891764927335197326418674353444653517359884951327827295349996419196492191433379196791393226521962559252291653295668228636655691477853238161532267379624447468255291141475588321688857216563493695447925912197617649865333632681554171825513289439621596821733671523337292196388633756878689435399728112428795223114519158569682374177692169832686299965628111398197224498521363882984824818866991465123187194752655726531187286911984973139693347732198774139744252886846125193892769628249244625181458974834345189917721712336123647365625573747523316516974694542652139732568271832821974686356983431173962176114419438873162237651941442274661487135619558683119959487179786228899515625173215721321876367669634191173448538356339783371221766863136282514681616751178232424295989682212668235429299634293238823827642588454162221127763733397969454721671358145614265561191419521576843723899165846221795743772459345397349214111439429591225612424831184646916737997556484412278868396765348263228439814384161379745351174213827945193672287651317331791638788651259656932141885293133864213446735383951447452937267716921247631916117384631696178545859214932184385192155262888492774267758934754462137452629936674894597121346959839348595456635153697321614467193359561533767971447956736423225636519343556572946666765748638873381683676633994971862319315622998466482578422745629559361359525831491514242939538583248471534474731367588644446526182723711482938135367148994558619366288551361443861264167965438837426856257249437963491714422712661314365146565656796281151271443169272771366185453226659712711416224671657723791567522518353386934783738746615514525437951262286364472319842897587124921621831592369552263916186214168119767921589371135529811618851147212355423222696733658219234435934562282523956229195168689471145179969191177491357741787622217372684496977721631222139877781862296755979459811971571255314923175191177383737732877581444333347523268959133869715688444496511697262187896175635434529648622527719727388946329316216289142326652144333232912138232844458512154928674566339171164131123435692326752769349968761134891264252545525399842546818182357337831661299388845237295366739687218738417413878781384624854826574742117335345833191383125339344528771187627771298744292431485437735483512566478841587515389328794964531763746735634151556771122522383164346383364844474949342534858322831587972154921988843423322421197431735235139148239855466833736356587969549443433231213162223655433923159445413568136266583157887734646874767171335163513445629884129627155599831451114583336165127766717874733345664722568172962729636298476669868332123783868368157983778119312614315825363136911385796274661232744462826945696324383736914129854725716541632866369112482378293831313955735419393376355535331941293266787776538718359223614722528596413477294817685477517991614469819644331916796427846436932333631642974732815228933468831637447761341975571936551974741593558538689511771894159792832363481214152189584489567385241881931113252167394476367395691747552998952511538631185223358581721592142661644154652114549699331169211449197443534878269266539173969193759665744714742641956149133955172812471484324251156424253776952475868228862955561398456339734189364681131437187113457265256412333133823757827889425521926826413142825994931287819181742194713125163984546998793687743623354927931582557182347851311475735582311797422583426647483424954362619227389597816443897515114459237227931829862669754149456135266736374913551698183615755476573897315361261259737993661161628396764881335484898742956796281462579964291547677894136452346491721847227769551474662259977959947716275142934867614597337164368759286467621993333852131765987591554551565975342246978455552422215691867474623593693171994157444918436955137617162281249126892291373162153294944532835112987386543244962162355711395825385536282367785261859173912633451764484392346316211989962488867255717179651691688445432847598176721731464267477647585147916849545694578118837334359714786811589484347529481632154934443871415846835381877517939173548659737617862854635435147355656913326735696635251436765723152936671441866431117964241468717682471364762123442457748424586295384673676844254411238649695971972175417128118412463191889165158241275211226547449234855122522825514959187767671613813681449586851975267191257135996631822413546262479195911653218387184788352327849844826785767929139821176954339385959722516993631326728987239569643397688542816295955499853258529386929474593477167813193914235246663832124348945791594527714755635576143269112532978538642832478214581276159844574948449595778239944518413787649391289864564682353668572234364354441522392654786225794654634711792417966658242343961485768857552268657142732765212789741391584461324166713475821313359957911498356938117953358636576329962672977162296118359398383511226241746331465337471742288188742178981527277984642688855928763911241146755813986255597423486622335954718878734463693451547428336299223217638783588657589984349271489928684929811148917958158661235727776329698275615412198413587118461995359818693489567839915365641474418918223964432458227675425172898895758142639948211372173735113631355887961225291421326741964442683151367522345518823146167536853917144948158632135533344581376794884536847313143828257743876287667946456589738275244172654537688492877984188383171515361847346124321726918826635173188314745625278673375618931345799529544146866567896889996435899664593469634437681382347123388765859546695189111948172347994295678822657597792857997193692445441315542528822823341565419831227655564855555358723546695592384996297923235922146145397353245876294666694839532993394174536624355436323631393935736234456858883626633361171326411927762782373323161885734467565344778815635135312725992637512786493357375955619372254222238863618271429132325814994611493613174299129842475811935317481225421151586613439855754878522526521865389878573295386325616292331926278314389121389224984787814732765829234345611183368966492926337562811477781673154283329145758612325424213917553177978881224413887956432764255124217466955319741352287379744931945952653983694646471468113217744385192892691671924732946193642611119785636998537565488472386699775653374313351956721239253843562214653168342832816323664464729574122185612754269515623313178138395297315845234623155178289719963911225783897927385965717136629271545631645338835561214225439382282624214922234731226825293291322161188248624933327731676631135336415244335918432877838839768789424494256594799236642623398286713352815431418419621589346148737732514153577783324842375181888752188191142134123158343843248863798141555559491996293938183428111518443373659635928414314178643229384312317317547137322148443639622546767774595268457638773229556261674575594129193977521943127173232388642977845441641463387513116612164942594426532522516863274532224259975328248527948169618636843283211811932566663497714298763323426439899569999389585995413421867933436232845273748122882339383589784441242394439398765891255223154125736415356213327577339564673157262122677759812222912367959218162722219898443643588332745649791736639777443316588592223557214267824642992896253992177745119641413925342217655419829367727795332642267488794812838455897226333152464388452276366225514254444699661991965254123739771168754379386266168355427697137886142346227577922423232313479678331153361552127372376257791236422969897183421123922328171325387943363232176529872962111138442134327844937612674356438373872923773433439978352278347174573472772559953228341285748888564498424875343572223261996624294567161498938335394379765513875359665579963636983533183264258516584837958323648348841381817175946673622861741133493976967416436356853826112494477223652613821546979913294487655775258547441242714959148859511428972721668753158811662888321695146385748288589565863823239719976662912516383214479233151483297326725262755778776121279428898645759546444465637388749437484768446363254223216642829298299841692482568712747718878484188298591985291829566863743466624225472864498432115918618878462421326821863728519635133969888376945357683636163912543347913468369929276165433833277223393384939247968983523882737561754795887767618348353217276654274721677941377862525242662593133548978251896526692532128634193744347894682161169527597964724867238917678788598641594417735531475918429396176215956779831914682739184955838863462114924487914585145157717715346214315292349898747725324611567425492272229635568229185464287234252246935239482661793673562194653483827778142849138427445119134728226749535923216496285187116641673237127998358864424224276251437432245252226532112313139661122634156725979198141651416621953195913121674914538672375839461452928521778515193531344593995638191485258934893914455148638325879869845597571493347742522527871179841484929649793843364665142123823991271264662366755117868127262674997775984823721461816811642595171299884752966656312616884698134254854826126834865519534451736874464979538127558329196382166542134519762485681675547254698519621458263353173635741672916132338684387634184113564263176692321731843913724117121438615377586251469446779541326472842752586767142952771912837157222796811915461681578751784882413244947737111131227186632394933231821157776351982621633117524158482688291859777914539788635316288878242517264428819233267461477789898653539514184866212837947827261367565341238481112578891184834941675377777843795216395996127944571612543448499343481127521344475926274722213223895726432558863447636954298965916112327916494581229735336539799643528856594474551813474669194617129928879424197364842381245165143521311591437291236117844231835695118819744896195245512456245733612516391115216923646553317161936495212595518461463635132336412679551644445547524949635223268388392536954224122425831659855218191589278414774617978518135474561426894316111453238827511176192822346126895135646239895551937421391654689971435357242133594492669499821466221868534229553843917431111893878924535489616193811612785448669429257357825293478354899517164643573962352713133226144818228413618893738542419278658163391583681259138274919548812685638349261637638139558335654617336754953828728449566648747182455823533241141157355252546815129935651281866867325532334858935165465796968644796716639348392532631532647199816993639641749946634284776984254667276678256283692376176886589448916166958915532218424415448221333344618454941546455737825916142516694432626116715196393461121479538879458932447823592488916622744959784359641544864316641312272139532349215244154475217483423894634512624369423531746267123567744815353721446938982434811428357219179141837177567253876245263615428443583611477642423432353129977254382747113339279872626891672864641667962785328877335228667374382373923979644495922525263692656191698711636834664927975336233559631393146927876546539714225311417289258111337996997815195168717199131263661383121654511389411311992149529217682542941249665885392153319397169524153785468598371546426916118682389478983772468412255369531745134714873133755631246841258373855569882913882227429424392667459445967828643165496695486498839167639264442358278336635146844884714122479515817553849495852932538275486715233237732867471127212582394485316126547122114689393878821794634297861466892859567429651286451518228553262519856426655441244486773158748253671977999752164789351976579641842785234317329659284911956658189695146941991996947382235491131819764762334176914726518836999716724833956821732415563535467789541596559816336411458222822155539262672948714234417275385166414739237445538745124388852953727779716748192113193587683845335655111265438321392611735775277243128565124392916742234361268756213551876612636735765695916846312799637475637537672134281342679121545923943132227657569955363255279397581271934197273241144844394861363641124596539183671165489735188343418748749732738989732417179315423345144323711823824154147891288579473594692321911937888531358295283439123899125529557377117179224123382585246629317711566113137637262437475264227641432535985774791261532221351858926821323586111322754495295823447522625614691125856164135738278872814544482143311881496622977799132387335151154865447746321845868576831239396263944363847828161225316378212554316485483647514155346316987628745929936838525646852995223345948872459639234121889437131182214721148885311245813224347436917996752172223923919963393389473137425543757576673274568389793925339551722494584923457646723115288739999378856967786955186918938451693816554223162175518233767744444466768556281457481618649161378698821313185955352552832499626991358215368481515633494515987112743671835857371292272673491685662484114216683157313587514249745175819289634463116145993775585312117572845889236856158922644772111174462438739994271755876312272914341711812695529643591171619121649374333862627811764691522624523396184181537167115179852196419355649382312695436281435413466857139177387546273337222161239112615259196933191537851422736139582184125443193552898972536336946819113642937819813475268594665989245131289441115456754239113632183429629318682723344355211539875787878294143165126977551593756583884369431753845514482418865886947112564392278812916532924779278593723557578745888729123549375478372416219678639732593961895117662776697914719272742454515732161125799564794519374483116173783947665994386644536321551323892559652562927315431675326662881947122558748687841353569425336763273244467662851962978681755395297379122154498786829629412255662793172475737854765218111737565274885928858981892145757169238294798751186693745437533436247642698128149536221245736219788232112245275765112973653965189472511752117484297519367748157226721531426127677581544934477268226684526283557847564655951383227961511872377254879649347689964383338787369336666356931472961566147316943421444578616984613665763249997426117291679258642391123647246515291434265298745136268882885121949323594936176419635642495448315187439617291121195554388317469738443687134381327494653831252171473614433653982996839681351927532438771816117794367114583555686233937362192953813169621519147751922218292242513266943277791712531668225724545652895475569564332983956182665547887168325227748774759291975923112474928721227483147671856353965334784467365733737829965128475923663691384316415837237658538719465624576666256921265351377275842334274465817187853251664655992819212736824916339742252473527928938344225956384111242547345253297935793529967592929258495211753361573893426422577933487756154639939643331738314312563673592131688424652638451931289967483897657881289279862599935379721218315378972128381136128487479738339719656251925341869925446841864681926413513583447215778513455729692431614392872698238514193142813793597546787744216894443826862227894649262279313126493926343699516422412154134119368459474467651436334966492168442978211591436163316142358714711243254724982134125415223327564298848883133681974516482277816949955372211326123716417769699877849615693363716211335587533819234284121371959561153576687745583515512471178817468125364651379287514272337654791899966323124598371947954315427187837154889331198579222566128198491969165951423677355183221234984664346662136532623746586696728577589229195388984155715227617546915622547675622362443752767197948426771416775755549126497221281968235781524387628351637573821511632748411273747673778796977321852626879122951443168417629864632133775511873292674872818589266987874265437229786472341649587576717975311965341715542154239412296941615723437578173141332724522948791923174326898343896227389786513913129939535461785261242821151688525341268299729451756941948748278666514232557878672692433124955178625339879549392756943621541186657812867212781391268123894234545139653613615265397583913465834146513445588216828473547239792671593866867625968687688698144647119115355369271974748315345844552914413247636282527489822184333553314454251739397688649947474839291136123113127947713854274257263277211361452728284519794329531517437329616416614636842295875952942672348354811315547188883317495798118958287949936242159492726459131546352199369516665956199988634343234636287868491271552845472933896472152463572138215136818344646152339612494261371741513523533955637772618387764484669277154526514526764741342627862529329189786274621346965917648477339216795189788181244954884389934281372625635663498763379765586535728114477513226947144296528455846253442621236267172327229558894888863927889391895425228845375182293895184953249236424578122239284878498387877881284544275139487975339647445516538378337881211495319211633513516371265521192455316294118112186512714197828976624963916566559584367814392328412586531719864423297148356512815317242947284121636434671311199239593677496614111725164946726263227642394166525971791964324822164389911373122264544792417965349894883132683851612376687162376831556582537278163849539551434241473213177421287971762554333755664272475244358323181324829939875148911247849169357447893565431911333898217491984315441132943261739319483918346931179649577147566334825364292917233826611131919939578427232216572764776627791228726617756479263861452465152853316688354862149651542473519941418485889113119134571963971453535542372612492552232348889151614477378275767236657262416552654427845478695813743829212342732354653487491824366481611633523494165123445123661862796541224717728699698765864249636421424914735618899629111364234396362735484634346315973119215426927428737959421113931434668534957615963317328146869491683277782136411312721949187627455432927752623984521558476899813924472636342193554574877858967359863476645695492513928425684476234659926171564836926742864118353613888347728216885376479466993927558684816182116428559698351246912935942946695234493337914125944169278113634245827141728441875995692847891564243655231234749134282393951336144987433481368776249689129433934175523975868253875477167243924395141137174146372289892976249721246362645871415521115313167254221888191921434576546713481855692645734592966788881598374653945996869945349171341319252797636923732187825825363741457776655981338864871971324251732489526277192362826461189385183934176885377939946934251257967121432176646269794766322141585553367853781725196775681294876898112134664527991137229514283512252859894535813246692616863477188633729849433826694824773677222299722138293192171443795675665429644983283151566283488869734593936323683183597337976982835686523767189993447639643748449684492326429341242414136329768272537719485431328938173116965174538557499773792542972524154348451798467923354231358874628345656992853224366128311644356756191866643141628891642284797733412631582517676532694583598987184225861745365433968838275141192521942313429118324942291273129413888488527755834515124922691945657496597931332247156671658622287231564199543979237252523991678613341622646639333421578345514412298381673671227699128563236219546197413365617612481383192526121329698457539917119137833295649754592762221433928133433999863236598841127489474458117693648523449389322122414866241833843935316993713686259411868733452221453694818387919258129256146811931151555156515487343168885137434519817376622541612881396322719581262361297787521371813295324538424619373732824161137766187584319617413829298195881582348512117323224735749429983661492744767531868682981975991119764642643226715851836473185329824922433961341262176247286171129431877237118442492115577362123915751465392516943327599727472824442735886499272424762335782669692661545396963286539315988882265551432698416116166253522697619711819177637661299326266485312138256695885732868216213369261248156451415447777215217745269755276969749437656537436391915569186355278489774528995958895181553756953667165869547581346185724716426162183118796771466698139219131394898546829953696974548332411711824479344149741448399462652414859117779545195227195912325471285336918853224169248947591352412196525558714172661266918163826417357567817951686386745185616869263486635535218122859884322693513791557586279179196346481522351118231678231429999467166986669442896891118884713313812971179614139799786235888719184911844524715573873248278666776157251414838284544766422195834795488156415367117133675781219113395365882562441892671168326385889555131595752686286376383661929328812294432443662528955777163887282391526281284185236443691268537927544562944864481398715616895541851391671357657578491856661768268291231223988656391395527429265262521566171816589888136937567427267541469965561131451733114887518343155973213125687686977911892926833824877318556563125476728899474463727224925691649461651673591676175587449154235529853789247984667859568755795548812472969971548254223254849343537359783541169391743992486155844866196198522499768997193238322182125399477544547738918345465322584273724836683797791656825731937775475576114224116213761517595939649335662266812185939357776523525622252788425917868621418734417691878372828564376313694759677316727965394141671451775837545841988759811579162597914642286534763125853685181492541548899296817539739428659777344778891675688637527471191725892358883864221524171361399644433224956282415347721529161127886959853764899469462351828451982516921496944518281382941171338828341365824531315678238149588128175621655581968128986112159324689587552766715594258761776736197619397431716174319739764742528256299996528431376529413595593365516115577736266591299515442841596571377225642922747415144455933496459215482875385573168572972739398848636155441589788293454381556327282372952568817122273957521756993133783682215479492778964252886755556752149949183778164945659192226591244721532559985662953854653619438594528443874449937423748255137221696952556166234652382328485274939252235383766262356553934797562945891114671758111471941839855777419631132146173562564864343326568913427491922185115482784391811721589112959487754667614316279996312322758832345771516124398347546442473386321417854923262346288492658433592712672651957339546512922292732712273465158691371294141122884656376463796447549841527126717274237914373342152248371771796796535775697716967128396752385292636688545533453895353341537232187633748184246253147977331934417341536488752395474359767521396492635723242785981552114535892255415783753721888995758536337929998283949856998134935463247254141544972821629587881546675245127386556946112962951327254121263779745158124993424494653377316972614658344836963418185781143345662251367687118325947677571834525841779533183116678856747373251353695527716354372114744622478565338228313258277242324315235378155141313329132534673437834614919439468451594324747658458369215948943651573972755651995289298972321451374943932174511945132777672855177133965629716695711642186282848525523348219938235426853632416576217688637749423734811389511737661423772233455946491663497141399384455784431423124133485843281537614122162769361658682532778914713586146225823121347926514149986519568364474244828567936968316327876329239439549627243128823695115562929665782553282861467173193128625823261295329343631646385415229212882893745313593935469725399673269539354225513255915818454793212331243243838373347572498351219898634855983321644151324825297984373116745516735968139191455413279888873586997422393695145169359279961496363326957566653622616837212425217494869552238372463271738125791653139913777698718345262527465682264219975454549565733963329745319631761486941577237624762997916948537515565934313351848689499851464767224661591643388341948334333758711136186673658419966427798275293624827599984718173721344312199545135384522654585631326892447461388952262528886347648633763695834944432374619963279751647837932637746891388828139314743656613494478959562512894146964998719292983589653357987236112563664479627928825569963636984325533244494217581761183361221991472253476586724182885581892434921147358767891598213311823757556668584544117582569646575863534738597351735577145577781877413463321129955821818255837185191515254176617329969459218944267621661639533472321753442767925936848658372378558166414861882359622125442718569848752666589432646836621313182598784671845284167551176759523784629383186548774531266359864768466353767325513146823442892511239312371931985686849444157954663547515487535851365975727184133414526646151288228794316513781658343221178794144517436735853327131597569419111134414579668672291553317526691511532595648989366914544944218832167191768636159335226323575617496933852459751964434128216135528274659843368238773979512383315486117961984121445325363221394235375388394611525564875777741833738597234967135824694893836565728661852889775526752234368292622171639362219242757365183685567498244819541581192974948184927821233298363362314193646588833984815553815964448956647317449217513537741459299668914269889746454293815664282348137868246938363963233118234588392213294155175136443586347125536594267427928344639721313861876671521944547822535458274745619148546449887233442694877865257214733389985437773525378119349322592259579241295912539482639983523857681863733237713679326494688218846544479524472729815158243856345883957889382248271224453598157821962593864683417254539267836525134988993344157914752225623122748138727235939219335254633276833194145987732863854753418214291895137914241193276247797442142687693337824187594115516238784146599799164698872779151729834147263726491411556961677491865472357156419836261485191538352921368374291499845837389343131456381338294492331913897811333916339387996819127217676278244229485357897443849658323876231596141139258616183274749634967846661757751811361336969464372138233831559123538566579161513979144331674922498565553673342316267137935441286364414388431837735467593664976194752917397674849491159415322138526878296621113748316625971277227853433546462199591149184673471253215683935853449759191553941678895575161889632733194257946198711846383898943994576935128773921212334711856526939228522971688157435436574822328496416926411893223146523844574135731994346872587489279123953663161112553559243375477536381684452923673323314716557164962513778786338181385315392488687288786451717168729375579558421423456744424413471663445628173537346764312276174617193638572129473828397999499499283273557515515284992143354771221129425541585983874571531841492382338118378412548735587745282763926663913343579259997734985386211368629755389149787232592766941528211923686253285452941891349651793125389529644665492412865492171357639632671765734859127332154155298123166697259644384127335695754332959214339337353954132752598174741673516981697635986243923912192565362516527146328663281951161363511657272512753321663694556522481843957349156719566292662259841164847527688611847372391444993629131342195124622755631713748424123568752125218585682369776715226561756324418571531735738835221355223561455891511633765618891523143288229292352768173651894858333458538121499816352771221873171769111846222236131898385441687875935939274268412974199318529511843362828525683512258166697724774896532514394446315815513569745567548829113455525594265565932868992456485579686251645318216219169642149721255671112311383484412628227645492319968429853186645369583281372314588812145199112771656825712116544776451731394644898733312266174237427757936923998281563789955591412364517936553557936572561522644523442699772923552328129293231764356797113731339638685912393411183454572528258584258512233985555469326519319968746674933994838837445254638833413551216138193248867883228816198714252426194589695167642953385755333629584691871366637157365668519619523669297527142144483943165769117223524924452193521341383912123443747636623492444498756643427411496346319352332229145863711155233984411699354728267742862221294379242311644727499232234568731563271254497546328321617439727496688735769394189767861762321283166822859815173683585492892865685581869418337528372951519736217143122164271233981134838129751876974931579918683217266157582588493552214593865498527998542553695533341514699574338934164251436245653735649959683384522414556395322125547733325941226619856719679414913125922737156676469131782128531813615696525323764972749222469354266428395732824515168551921958192172159169619369435715289152643714161771361964185827964446376945654261359543846782899384367332282149312746669165149689256126812847123558258891811329397954128996874336511561211454221351464178779129568272869621444355948227482556196666993352856199293611651893132993378931169167371213378621797613497485641645111273788842524219724759572684532845591225275629726195192951386615243137583529645484645868423848597148596223373311647584115222665181464132249569738443415692682985935776266157296313894136719313745421452576374425149361341861263565237744521433684716377774182351367696286469432795553889591314636167953832133134247889149239836318532162115316371979522216873164251848834544279796629171695614341641779745285628555182222865534137648726345571111739833223152264152946635638568613113954833993183423684322954814639923865843573587837782919927925199172986991797296241611712328691244326868261683189392445757113212266994328446547295689556488167961873579395324841594121247732933935222524421749898931429794637629536197233732133765425766944855549846338954797559923311793728562526795576822823359256722953299999824216162944317312951522943892974972259428943182833682652275897211712775224247249525984653192224658768147631475256776158313477734416565831443886263146829537926584182152741983214411431471969693491432118885844889228778519323253132754714869747759727956285416215633828593555131859268516765429921422145658521664932373158966799587149433417949381377436852658692828659465268919781617753637214983931919352542117646592299287144142534874876329571252534285617272144851115213697183169751636916914378958382218732565739877353715682833596253331975958436237258353963732311973686282679527914311134368836454341848884182214984489129319547691394427774634466952578469588658524452913112157963512135854675135349657277761824629238963554125381854285317299826653229225814881263512376151953959965313114547129135879444197158522725239314517262896964981634326679172712981472845916213964934887581191131247345579258581417151899229795657484769158832419625532975925183831763132142338612584174332143786227279257151582751721199199241296629159127181757993857367158367369347368752192779987496855588136799431335369765884465449781722931664818184225768391374214789186811968854552186157217125181515668568621863381434391558713248712925299313535721731348135746268579554454686734522123493172965723326999683684963736432585492511516675664142412749919567427683622868724323753364437677179553167451328425212463299133332695377532397887972853424328929713489658927124675335612911838563157579117189471862264385776497621238131724996576336761718125693424823625246816129823758734454149392466166635242119236882497129811776415369322875235426138944494546623266723947851249538668541633599947468366415279252456527164336332159575356853284786945587344586976556969642411264178233722941655139674621328589394317782512826343951937162262163449223246733623959968268648328316233996166182412371449527863147319331631252597744373136741865127655269734481827337428462693938834162273292939982156559151896741682639779419721474144349977425694191664923238922625146447462914799618474241258454981848715617332151823894869466858494247691974489431964547228689972256255534578956692841883857716715925868631732111356493238756925481463262142812158812374477227115237826552839363394765854222948162921983738691383958295122738477553972583985799188856999533939739449615371888237225721897147485645469552799363233428738911235564641213582131199628541479631959464384854215232841763133643673322181251125752553519415257919713153535622187127824553588994255696953785434594135847366135172993112349947712422518261388815638241152811977769199548942746867652935331195436495997531492214341455285886984839722311123183944594647863561236569215272715953577727545417849964553966925534531139942119595216238113773719338484287397436237348274253895136896784241829922915378763939329137591446477396951972999736929881193539347428172256659643442993539376881691631351885987553997914461832967554195494184171497619642319592863538159844151682152118166147787761417214447578681411551754223937532646785286275794817128826783379942232465536928694397844386572972474124487121162321291899751343587172228374451296383293798914628536968415513742277242193254435252512528685428469957429487633338887447425732516654581521184156199228791973156861417653297411927591453522648175998674462715471489224447895194767432626545397951234535133266547115556725554326493413223272144353637112361987444282383184499667775222923298924911889674916378632234949921218627886341756555857622615791777471884256534249145241613248414166532382848339882521684363573383545246233555985529561341387712542425142267379915487113772467779776229256794614757575948685323734799428573973582734429664277128919853819826318258118663223822646826842619661497952591716594252832637742167685415689133914553684269622858464344597571714411111841439416263212357163163976219933622462567263459156585327153934971976512924563816399413871858995151533354759647227785958364368232981538778664931874556266833271174761754137788213962476278533185342366829711563395431447484538994918971529526246125321541623485686662235814177956248242943656941249594231278342168177327198897798786854199273874311242169951735139293723529989992359876887379182649524145421294533332829565317596446663928881197155721233746863476233127663343579682127621631625336566371141164277627187179582811723412185287284547661371874324347669338649485166859744771259771215737351212517537716862553569841875574781454219223231452362252391325959727923732879192167778272249348422612619234123437539327575549592179576336572813162913667692144255532838694135136225899296742212396821152427325224678871545433823684483139756142571482324231826417599935229816761224737598245288256929747392362255899288356362534918129477217681242185449854714214334822835613341612182977112262484145156246341289173224713161514351669446266688771695336553941213296733834988472736743161573315133946697218359691619471941872149317878329981646755231646651784428244291455674547292384917522659234744644538121622867248221246877173465138554911219792928152977813817115474359775188229341942717691585712716155196312178157982817271389593722444965518577365523366141927695591918436449334897318229139327273134986634963665193511282426974111861544362989264119984494342689177856141864413914887277439135967812225928956482421614947116257418548271788341642164342836586271412769347171488411421462852783261474915652179639947356231532433869569457396113365387319362176546115235955732634864232758316358634269838667589623132152927272666416841348738155334455352845758281181415883977569437562746775419458999732912619527588599241443764552932185585769149173233845137599537913389184913172861785862647551611886215336336339784487245829268248216845293224629568853329664942941387938174739821259259882575389177623782219443473327688553513672135744264288946963843628265387232272364515122453753241786275573762456383334956218938538543338657431166878839814261378379535981669154173579742243634752937795873198337645693255342912412445768594437451788821398381387221373222395486169256674542682585534816917929725651235927689378996491197274632322358796359462847247345982875135893315954732598248584769516167158626659829635112462163814979942378665978225815529971581231463245577627314792452819929874932516238515313963217331747216968613671154518913651372648687914734228623871386428192173692837516992365681538357629198654618725287211945244266534261918537891183727566282992371692532845665398414696611884921532219775342211536558181146828352821487125971266151988993171561116224335593534279392664596581577261173268766947162183721947168924497844585985662862285471227588266164119147882428531486488275858979345724522644758915165582894693167834541897158914415443785422563554357428131241553322287454282231315936457716557672344648674957862732521661414251655486142314385351453539345925868643638344578276973837378584768866149657264241697245738882646638145791398111786352213121233675113546685371721197931615572869482782256291992165318774612913414419324292234738148159683227793593874283781728646525883874536673182572271267488133188196257399121638248623149116549564823267964824543329185913648451383576811278726972219929829491111525716283741249216985121543926774447321553857934912162336589583934485321423687937988649952813334737719652616429977362822814382463682575913543253514799161885724122439744692461629115527546752748311327257145592225631424315343612838738358565712586344574214281868522756143941743434441647947759261971149226934277482485956154539819434972424464729764787523275946691978569769615344122343974317598383464533433454873477852912477431974134844945666843334723883915824119743225827511192871493336784643458585984542917777231134715719819263658374927876719745847233386318377423325321215298119472598519262318519668821565129182134171542843182676583159743954114111544939146421212756291347378534797236521512133568847717964814846419135147446229335862388723663239161241742842462268123844334942971644923176598165911996895284895888852164582338736279259862481917769142465963515943565627224532271993489251591865763493842643256169726135386998215154171751822552947176518241372343311849329589639426274315853929721579112772962228948961791398748133791115466991991624583137982271392497491634161263215654185754389132114524353154367579414584768919787816497424379116371392254971353414588285192281211193231387783267741387177581327327256639794476251675322541944412759294195265193182345449385386888329275194283385815574796263471618957657685211295777489621313859514591143283971223578494518677985155999739743174319327749748722868998698415893946895851386441376183428644125142382184625735799842451127315616121221711389175726652796354958399897119121284922666917745461222791243774829319957418513262369421727613134794253878269218523781493212214349737731419924999539485878719632573521381136471842932344641911828283389338614957626193741536346496162751162643319397428794838313539213142198952684486455797369271574965274569767235398721516125789186495596591593918549572384318264928949396771241379963277468654752783135692457547524253494634657323225639329313417631899194687955115653684735989828322251582636615474422841317711937143432443216312129841591831517528155736613163166824562236142237246152939186272937385491942321422641244311147711749657226294626956941868372129866184374649321483522449366432751983664918276625923629841529285933315224685314325829116383525699998523249854829344928642918674377381342642171759672276547342128217974688396975213257717142974482163533457321932568744621226651713627612691864843428288134147716121874831828514417926513459351551311492373583514468588142148865333154359788412149921365646143995395163134342885985114976292877637111261376457613533272755442996688967338497389689967166521548863149236361887859742629334217356323749592668687433446948227543598795192569352259239312278231739775789755599789562679687254622215174597962875823439927442538186717493541997311954177741631357274267113217129532475282692843672812711581962922778552598317758644832744313856367746233644571693263482611442254465121772227246362745137678295257356839749171923146494152734239195826627867698439775932637786126399697972819515894563349762996651244631965628921381816464254456914862485329623425862989485314251783935877473651491871615578591854212596774298317532334617581111316127156857882654343478219325227615243682943597361593113137638389418761268234973815349911618843879395223239725355936115456528914886166611558798611856954142235448465655466115798483691933853145465743469764654752623748124714487577265498196116216143648984784344244221927124931414411774228915694285439415193215942117691786989154378143584596827174691338731786348524152373676316311144153475918441412434391412567294916313456337214978131779148178845718295122243715949631975223998851276227877591514436768959143285341799132766143951637767755352266312425427871924622555788381652322946485517915531355883745712712141973269237193253983753849961133671535216429199862692785732455561382722976468311774755732578726779539693673372946119585354461351798111134257145299585992791989188137527446485783128513391748316132193956713642994565835927561515652322115937478329574345636628315696116716745668646177761213699856366345364825331882668392547252979972762889451573913414926333238129666511628453671137757368952362882344941347233984331272658413644241239375784357433521875325246669563346439872223599229661765438488196585371163486751337599971598618788128132585745668938317951549559477243268212559568397851667989541994145878267265652731839299548734566533315921392462694446315989317984925339571714238499326698227551699117556744321779519199926113242362726356181959943126297878425869835149189424274162146354235724867144112832451541835582988624149265756487742756314383621427915915487981769295152997483573212482878354515216533161112461362464256447265214536314836712784288656655215914893389321348221736694269196213456475231216537422354313183547143949326842518227499518364155846221445685222314658769821671263295736419671244932148168657848615131792728814464764463316542124595127361681928498331456333437547367236277231849713746631883162285334643385117626944491126982875957834462573596176428325439671711639766733127856741548328554518195925487265558652899111822149524771224738157739334656248333871479391227593936897617372744288434594959272685638853973626159892864212322154234617119298412782594333124767879382841314924643663411993352235631865253322343962212352767516174737899598515566773132885725379975539226671932674852851889913915292216826756145886581737971763681195313169361717458228614672517789864165796841867651294724211445138555278924539535134663544581957182354622392541946989859229752637991268965828983461321799853711583576923638514773876155147336664355289165786891577266751375325122653581714228552991243729893787397522811825995844354821399333444484255984516975188676927464266248618951924884914416763928676422546821665132762676233226352122499538561176197644397921747812647883137651913583649468623172279486367599543227721335731589742353155295487343432884174362842664483625794555858619129128812922161262339534494676632353676528597425539736441486194593754371893516374444137856676141113446211732737378289591322352393338788816443761777988738721964693559795369257249619244743562598244342579334214441511289116978671154671116665561263882995379461795754648661118972464573751495959359995114992268163262664344337872243234256553549461451152353544134834446143888662915656474531823198465215318868878842195711324142382778582897595226947667947716351989484114581599496695437731836494982469674694184547128949295125535354436547549688698216199918922434792541628433184741235722429735471938545679459921455456577448593586852319653655933114226669918522625217299427961852378112971791953927239556535156319519199624789578167461111853542154831936387993792523474767556111659454343322752891592682627349424935825421893177195133627118655779427861178467212329878773228322843313495413482735942244328181576228168759567828339971898172979578356319164518131581933886385693559345186258722226258189731271555227855313251363758827631279972368264122437123941653298246578158456478153434548161437572732171319174452971778473383135158745519779145228982599238428342975979646327277196356271293162366391513928115247232254913256419338737249387772783865164315547831752892146524459159665658426936921779451923119421579133861522114337795725418472249686956157566453732623899377836299785923471318895282368238867977661741743211222157828157868811622999354697617581967562439489522849121165796829468991583745775293458963623688137524283719127129176183778775428781856552577367998784547139326651929983266691558121225727792625121525645868332381447355456629691958185634184481516562182856373535729187448495269378349976621275114289251647765994969112193888338775542289194955636546313996919295827266142112971512246728348821792525761141193752621161657375886622937283892714834191252354865584274484899427566523415315173881655744437477254123431785767146694648819146317722549838267925616716137188154239813128113346113345644557515527671275955358274635343461361727828576259488961117992235629173152475559416365142338499698559465213637641151212125899255635232811549453629639175398926453922171929532754585289273886586685393297963811451342571851646279187285764187981293926875698263238983933514211873726639468761324239766692125426667863392362581811536666217589679445432358225413584265375522617784912287124848562441156978953771123581592211886416449424952936727966831838762723743153342814434425256151557938916929917368141311616663181235776941659765535761118445323186376532658782275546142324258788337617799456892263124211331562664814266842733659984298174366251853194689985422294983848325989251113186361564616242282628132382572548213698368719821972395997483133476461184414873217354866743223493967944277579871944571379974739735864238433734479733118421399693423526317973259747648124359128326322674448343466495625189612325566683668158915328328859265124693328194445722389721647539394612493971869171251328451232362895176191599514569322373123958219549898351597599137193939911269269383558217789171621365623317338246314296443328433362463299218336561723846466756953536924659576341817285861545586569429678545224161431945995183293851582595543517178331236666397911638672144813152745562347326124367152865686328141335964785855593642376265415998975173225528375278561471447618751444577262373144579883443134437241252676383561771939227186553721685663472449282682265517296957432362163283982184835762354195813671647452535371584951571861996357264351487123617182396943613419495144627284585418733859611313815142123318833343944436278686254261771184774222297529114244827915131284712758515544837241766774599135171646746455453413221312162164156385553829672116115135111875947285427657174417246665324546327346423959392774261516493931359551957619217652489291494278462574195361162843377971554114942272532457946137436953767766484831787168976254736147116881537253142258942179368335285315745965281774591978538788512231812847485175214439671648445951264725986974881177821744323759724314449597253318481125383388335527287674151497893149395922629916426247472671573271129811753162243842786553216152781163868429894683946438564291256422272196157666472769653413136144738126315945372248343693929363536317793117677724595396538794752664973436839541184898563651968245366993213473277253937165119129773456718227476348362542629213192881239429125386296146913211464888941433953619598617998264996328895962477795421553441652822484693868972254595231372719746988549971361636668752482427141142824353567783956236914217371389162889643282615192918312856358693273196722165689224319116151169764581659634896126322218349946914466659691494247879267187143664271267169261169672366214781983241437582851879381547498261912512214459491899211788586889431225316611389568868353464379355586283242162172438667751377892615221815746135468292528744999416943387257383668664154254328391177952554921882517395739276476484451717189558176181691655831523285986175426545849943169911667339114419741798649414631235796725633895293995773545117366559416729943639552768481519297354671275485927295299793651487176684752693965921612414199157449997348617226259889655214798596156564146925333117118279391728827373983797466916214258179836418813133242213336837947729633219758193223884796498671713492521928122217787245982674612931534122585569558389889169153384552661198792231632979358298896433316417278489323339616284335974584754455548493211867275247124748665387114487435428676298482586287978774186634662966121363571411938513411159598717642835259833872713952881289477737964141593344239756562863113253684522397539626114433943531156261993284554717715328861736762639468333426758554391291358534681197713589674133594896433923271433151751552413518613842855251527642421511643624335581244256535413648424293246366882444656217884568878412356543714794851558141242154199194793473293872376127222593844363332675495451342273327773168678475589989959472691894224685516293511628656855912566117955751772142453873635382381175424656278834141295271536691638522571184233146914631859273428145667221382383313129743611925895464347133631485132911618928991674736948758191814281662614637129136947469251631691321421842791528533797717856715995423717962244291757651654241791486311761455297198118525273735253443724347898654923899745241791339971144932465657583449617885939685154741632227624278334111567359266763837111372411632511784594935387411961896869545314684381142333541553644175845445584956413729983593956134749558897249363678451478493598455119654194442351688646944876649322318225565786454398872384113266672553297324469169446771488518241136528313818689455259457721924861139787729733828466312346649152968772363923574633322339723988442172333471813218168263635476991269319682737583418935139996745524525432468129112682642221267917778881253824257322354243967669315466376234457714525995137958432425236212439919249492998777838973515591749378721963783531662223856532924122183367228823417919136938476977443971652784173713584839634974772216847289793854491241925672121161155756519115332266543464771533266114449196957717558798497479752223232633691723732776437734839548377683266223316799599221771376449561926765773389827161259672975328897954527321219333919919454656611732415523356722261117115258268281954931264219552373699124824514922436123671466335668533147554864876186641966337917396167614833574457353794198221684383724695375432233538233888131538522746512256868761446683565126559374986124259289234116957984112168839335886673532367332316184589187659651928499141297174267349876179573534813125764537653456444222615969221855139199532132714988942784481676272397521682439783892864113993741457163488522976558182835888186174749116121972395265319142519777316364566175457535135719219272431533169963583748351973311952474922551855898547227573221394965659173176981682342564519113721365332522746982771446972561639446738844962383544369527756487143143322291562561351529938273955923716541943115512616638374957298967328928971959577515569844148741169643851229239554725967941763375951491348561645432371982782358221476726943425868188691242285479768812234856756775876961527742971594753849732967129353514246649764454487444571351678599249921443947193423992511577587799191575122722461727733219722427656387228124241314459358497434731346414648764546825512432982681644794164941712886928816258654914755763922349975198412639264827833787648321951836154395721842372254145192373223351381268664979756182781219792173122484398771762126933219464259344414179941693552351653613133695146326677562583128136844124295195368145725683867744793467914286515738149928765535192979435312142158215334727833926577484328247473861224518933562273629347572497319168981111955223387665175485843569311646838477752949751474565844833296599849685965928432747913339436841644436158115966163358553348465391461493929964679525484131338614249675529515885226625477457672123996619781231576738544151795137316442374616135736151514946255711517694134196356558536646288276936148115134547527233974323811692957642958134551823653815121342412584784261192267523933316874572873373156921251942756115675677721579335898229441672145738625561879535786498166344952997814337822161848598666463377255341526348726667872247442246831989882474918989516274521883484157663735234184653154431656526586673342853327319344191919387346424311882424735528212473388745881682284729953815854539989746712832246279164984537616266311275813162981331229576637747648848342513174289375962464919185689132983149419633556111118513768859652443798245762752585326569641347178533133988377326291127453218664566298161238214262532369631397878851764118553281421994114698879247245468335914555831338641376418656814487432435893519629229351718667556979586796132917614312584175917468112376322381671531147111991595638224758711737549937638926619267644126161459292896523547673776571214289533128345729898737543311137482945619358247218217911665793394666469887978235822921879193495858146992677543199711833665762719293611164217388212668251665746648134278531376361469834443722917947626576337451442875852771557926918966639634745755144965598825367385297411862716273167865172855845767887522834138158216294438499511922717437668317962619412363616142549543312833192678179459699629684157871271476217135138861733399652141761915545722642276497163625211431354181824211669657715575797747613539913647477661573338227862226684156111986152743166166634741237647978275949423811472513776112216368324732683194347675218474696111996358948874571235241119185443917559724864949812123692672272191157612271348862274631742862232136588526488495933555316693169241185548349189341959689551388397229336242795376572675628244816327262168951282983574237242882224743896775896579157227154417377594966915667771341185187282638971662127952132484622847284786848912114922812335219737168164696688352883458356469848118676279715818361788686271683275917154361659161655915585297428423295237129478268274882837362721232174612226825169347922543685624364619493835677156465292121116282932137867624145267225473159983159124411994515791537615156235112313935943612589768378129819679118514384131662192847122119466367546349566533592173439318645234347913331339395324121441494778927729147329339421941472589122812621754893242488739679335557646648559711964815112175114841393428749471528969988265586415754943448927866391473325644812511998242347126138536438784533862342757579861628698326228412848675993237692971197225637661631124922967544851128158293741422472463413913561224713268267156171232561572671471111173527293363726466241291661399286147573581428659951896562315392814489621441432699423311422918647487517294298213828828392294897863159614271599186242553612813754949521684445767394767558957923423571897763586475542954897658829663329426924643359673128265855617179918889249792761826432987597384329347931544157731837579398142332741455928888941222343556743262254921926642753329369366456296322375277451147739713526461959488392766375186611396317611232366999794335379744793418661242637512762671329546248535714422462692729387582665698416773296753456667995789211161495933639188584327417511126963438431274125591247611913236941269263396646147377893556647781735793237948734498973531264446421928549737479454112745392111246152364966963663963477639194448771255979913546412134623527222256319575993857123689868422386483967839939764118664818531717534385269744237642681646449421273486993144817628813576443323612712633997882939341629814336831526741412367497822325974144446565415251274134918699433312165366379112934581951213898168337987765793648654935835785192541779563136585846746128231558578648394468627485882238987774922375659479346918483324848678762661426215474153739383837716588281432177658465137992848952323912912286537532229262896324573578678876286189514179719782232442817666411633364327136117624583239349885385635413945423818267587343465286682791432274782683918839796965974959646415862751232836585192952921633247372819574227899592557315527776843624745761873832369116744962284899545639797333483986165864631386211966349385245336564829733518195471295799895783367414555478746872959553597719792719157218964986979519412997589983561479949946185192314934954944928643752546265597864662931562215453525459566857621422127313916576894915961973317334798365826677156979294144875941813974113219436932919477338271193719658232236729722454917735782899188644683382949353547277877855674438223817961849652948389611181911396178727127486333677136213873353536283232621693916544161328865763354365493784477484667567278527571522349687926351561484118483277229152851423871636637234134855946515138356328526951992636824516813466337251323888572819561818962856621195952629761292528182469654586386863967158378454791478373165285933768137131649597382867563935412572347858833997974533728479574399398399557676498353552857644514619321231545311226253515781448848567714632553269125478363118447362371813437998876422918295869976455852585261246143514352918329239428798377823466119817529233523617389661157542227384577226317433937679182672514999826326375288516428442914261427913266656229627813142573188512667831847651547366185598777722166435898354963194439113832798977139181759426383216661854797279736363579135736598171416365913634671326745316911452932821211151919582319458382381819269466472927512776873874429152935341555242526153956462715662619492732319196595894219944987145563828163539297422597149395423813266827251113258422939629874777291799431638811253367912534968172249959193993232358593697688448111617393787972642659172546244659454272573134547117728623854276926173922713398213914875824656757386129451168358325486665445934183889741159463465677916346338219743319699629319645566962183511568563214252684965615331473168145273352973514467397646653255837834215261365958345136311819956354584617335465212788762649826343933699841294261265814725542513859545898782196786792356213161484151482456319557929658298685537428764735174734155417848259293949412537222863389522449132533822424441373487416836355235936951848315591726834563514396934752648453656931883999126919461123299866227489964572932144597619555455697955341432331819337234194423766195441775143923262317658549815811288674566798772255177854619896653411973581936847816753634218323573674768343963448241757892761871175736573897645652393717636186915442496632673251599913285336135425679526772891233666225879926636336727731864446511583865542752549741596878955837325953894446117145442318411652356263933128312921625333535573258291382717873956382264517641191413431372322944218358466598942748514486465974111191719855428746719915466971179832891232944866826349456415512583198213664726552186457925286892955637148918721222455722355339124888377472576952249125121684431954149893719245441954695631994948167974322854297857176643954836589887241476215821664825464432493639394517983581472589835245995244246512844295451386319674152274832932866725656235381387622633781951425816764117498269626911527357296819924978453467243744223358838684847674235636298124989914424547349472281714327414348394616988734347826667393136373337368872123692338783981453689238324897237793268675273136946881695813695584617413779911391589692621529736382119928951238369636362349796194385449319436314672911941519713122344647211149327616463324935586986276644635421991125138536436541725357772228769249299631995591956183455139183712228936659276111214494528251495361888492119494945435746615717894249975878476158119388733778892184743239113735418212415249143376559658461323979531642386399872437229313425455855692789585719735763975463868626477784511296726778439457837257555163341554569827372717128335425914677563995456332349331569421756894657416323274616523734284864754637145557994169912344114137148484964677758846419544375713311559924139956793112959174277282718532632311569259789648328816387334632938429732134427824312942331461794349734339955941258157595275831323811354972376791575826988683643151642417774444176411274283272946269193122856635843329223117396658418625644984693133723749524421112584139811523617526219443886474631289311267137212563759776948632315763393891114159485129322623343162826357338781947898961312116855463532336837448344926253675634154669723482841934373922284912478317817852424695727692136772795472132236615759485977871658975722719878672386438151369114275247888333769371751372495899577239896576282774436456693462121152816986587298772567871345865384828676511434142391765557945913112122622363113428871173762818896713694477566857341496948675393977166268146946889689843984375329754666447354984631298223687341351686852328835548548391349114273145497664949731757945458632227654993325984536188463692944463674895847313723649825414946592245743361655819121494144579983435663843532725182319921638439148695268318774532251381478264459418874997518578444749139645349645952794163613856661144175986214326169363957434853918255213432651634338559739682913764393914225964213469828237936534616385673989218132864332311624876684443236658372451673259436638413869593941372196139562679595973875687794442875259493723932217816599419158939333117893135476233431818761663684151139342363934339285883892998915866314316451342522123945477221521154425928751691942547918939322723533278677771862679863584924189955451939457159486417475482569427246113531268698777349246481663975698726224123622914971717561194491454941952367834356417679122665438581126935191436556885314846648371512714936227164565528679991772425195169325799226797627822133965454487711158759321158821811182956172947874682335278998353181791941963936869211727132137362753771879527556498845812472225425859636464932717359618355632713266146897391127352536118253524563124661214194671644767724594414676528756483296552172275169715833477317195628417519791661385228316347399212448122323356568517664513697314185752655552129278225312143544188565154668334555659234415152956314492112367477531423834972465892737482574489282711316544395389117218415186161787259296236434418651519466547892217538897897925589699489476451674813457325161174248528135245815413899372989242828466852416298542337448511312187298286521729772465959617474532152533196557566465592279322976865715514391669844158173456659816231544526828851363674656519164445154138856896471372439768146537359762425385221632184316111758741598665381637826884482928386535359917774414311177662116372597743854437699223192411741294717146116278115767988784157242559626662963181348746392318873628589545614228457838519218395627468713428272372816118442831426772937985713595168592634487635935662966448544955586765264542439784199364963963542217361993822795464391573589795164441226221834337229786676561763752149435559252132978117495622314298926747237481386468149664655244671265174465526327273624815597728965273128664598386988317132561343152337171821796134317825242525468581694244951441929665388344622392263114943425878236697916959693797232569489288134441146339521259312915935142513937478251129394888835126197259344213399641428416589215513714321888496417464121678574545646728919242135366535212662975212443218924491793711876413473947126828272533161314748383328978345145854322223892113553595883527377277131763972477678121468766545543822463495973281467245113926222186935269951541241234982448138531573871968662333839116461638958778265883928159223431363934221399438915929224473673275496355648156583139322383446138364384336744497564518181388244228771933813919147334837847883234618737467613498821675317341153141467261135422675383393956247565381569459421853944282173145556577489125731323344325597624719825832575414998678526838153213189213239281464172453641771351733672987954272917274924926147486249723427144773744229657844995391832465442433455183875584445182161636218999511154364636424532347246441338533519252641318297748313279336678697548351482467153766962341259312683615545712162926659137848163381171873379524945226561377252915134796773329439568352436216639457326981328539746832232487571858476263564715856889126452247419346327599424389815117385277134774714163515384158815731264634725224535228157658548782812752634667622114775896365682288897451837111322184467481188564893761872957732218743865819883962379537693449733457427717442523326769811243725866629385979621916656237646611641312538571122727721871949521814531658296468197287235637888338972357466932446794161842759622818163455537692746314837469574874338271662625253257164714833365884239442942283952577245124654786548252972263118194632626873241631218339575165343639634671842164971229181686415122446197594952357798242958879456699712833134454672225195971681454632467163131969781312882547357232133255494681788542869313112514466978425467459941371357197963973463852847268297992493262316519171221158637132595258977337185765338858944329799734846141811912846152518447646244287353433386344966143881935782548555433181224678527923676148239391731145711544425938812883798224135694446772239549915838461123763494921934977184337454265757485827277828922967946781726767647859939637894444554512666183924512764247968411221271143876711418974976374795479851437242553695652849144724392833647994491637227965631941486112311717582231839753515417512564567153917535276322673537241554632699957471584387876596115538411696544143834524383425353687474615153296456755127243838741444177173547899117231791216341259258246972291814376769472715666869711288721697538215571726293653147346793795217882578459423554145714492225261541195375497535754141824246567915154632751878152437834393912771743526171464912732938856165384652912936666638468675563933492632349679262264375557942384749653851415511335136432539333423232794717195841674848895768138383165615921687784426454155856628748668671514411493833761524868656741438616854392223158812337643711974836559667268359388446715496881153851751466946261375482673513224836889886747889698272842258166726291115544799112754442131471325254154873391566935333958492924811377253536717554811582962534398393568932136369261552353975541697271718161763636817914464774313924494487656676613613427222275221993764879219182783974674225166342437421422182644857921875784472863828665582524472776522455777277334421999151463521115226125415335495711695382949975922277327258691793934517488163596341373653676471138135739854238467299251553231516274582432837537816973193156661924261744416585912792294774499361264216935214639982652774684172333243118777425375732581435363371917328399245716184897552194553673282544431525748596451188171895794794645554665247373726116991546478978346754253992612851725757916412822615864436836873812743732121795346875712795652214596141314472761241295777772119966413143486494563711662162279258218253226688927185612534847771591883573783826581132128199715244692661524581382222362366935376443473412829615945375961723392564161623661267414423397617775769153826755715374661251772357831366161814285118415863582131712578542391256614751277484651756463984116946559582314983942438821718833372341671763587623396624444263483179511521755146351996127725139724237813588116267994423881877538649186255187959634517735151154689911918578152771681477792984121121269758296213613683378269625432553538577223395871217765574732819963458145142891955243338424225893465834328586858821919499718754852653145316227331272388881385536572946681147614795233291739612239219526465739144872537873927282836788718749243886295478563711525255212897224967319963251639113577669939789926427986271954985785485517344297353636489394843299169891234447411344672161493186127453324155178727579644259252414166356443424635363651672576262463217987513643898234826147324831635951111854193946727486547253174256468396353969322558398728474155651273941842874266462775457632851915186648664764621716853224565914341825784541977714843771481715186197942698654698694296663727329665442173127945643792962836796747675767124462961253448158164679291379369875224171217842949341692218911636329773194932671533683588136788376448794665958783647966235212796684648553797348655564395226285444633954847512736955729257827222994549777651614261328147614299869388224181154945168686458733341453856211424246588673386576517178767163489793434417162851279454192115975551581694286375659377589149132997234494137421437624766588212552679177536293486433813568882614634726795198821584315341142267933738734127317344626315937183729716877629953221241162136975141655518686273391541193367269951942831675141141742219613847195365758284164562937479122317896665164681687879428441152916111238315699165229363611111341747978162251276245345985161278264893552945971927791555146763854837615592167369992126217545926826435968647978626312496857515897753211596126461817234198574647538941371597354679466532894462336399981797911585755721465169819456867775357732956924864729554233957955456224664975133995229185133132822834912419686579475828687867762531511691792121465478822476796592672538381624648889235149713523592522543262387188563392582357884432116634958364649261378834695875582197588196268437354525183686152815385235714721341527548248985411418895781956114169557855872475212851978331811664162325723494571261132814916144474213361188236186456512212231483157324137383556638391997238441854976226937461351322274632948343737183448353574568739643615835118513712293177168692895699264597477342836597134373994287555915554292314468272646176622193232927434886577189738166221386424925491134493517894221697135421733417771248932122354925216138562814726443632215163932559435547254196666897585355392174677419989754377461136645251686487246215522198959514729484465938248752941482518227718641136771996794324534818447493699291946784838126478285814558877823214338765143442947187895377415179145144688377812733484161332417714446721935231353856184194833747662482383797966213121436965675673368512925617258818714676194661538925471647469776787724141265176873686966815788218477634232429617841634129967242133448723156624361831223322333421538238673182657569175366179171994638267194266474711636225745421832356256164271428428611848861945294329664992532311589746346133497382279811753691213152353569674918365136773718485297758387469519829539675433312827629743882382436413713888379436913384873872669332289628568622754234722744257177822134152175585428358791479678752554827755215289563965317377937567949232655515888485534152968658117547862443623237784527395649353717971687848626752124224249882254679725319479511138127429147575617567155919476125231399135283554612359827332854457369135951527793814966263285922147773311963112255535914163943279211116167774836932218923684771112458133544665721238994981458312124384926851267322615791621766523579573293364366984741691285211384217583588335939413861842815179635254546694632134117664257421968274939123644618672256338514581213343227453113614526594958524395239717296695986826187367123644819671132859691721862295242293435458396925453921519321688723763538268217479915734234765713475186547438344548515594413472534825394337224151585956114884977968832549359353436825897672124234644631195455973324442212731892224378127433265746167578281145621621351161669414337813227476627262151315784883995632278197916458253533883221859541925546236448967546838724312721913399187154331542252694663194154127787145415963118159149357658855134866675936181941232987968285843111163863522864198526389922384735516746778559572895262465591223135614896544164639646257794796373289662827156833119985591695918213538435523358474419454849781896749732194295278487813366669268563199885685257518137174684243621287592468796934374822818369438813247718436581667754449542119982613693493688833894418784154685699212479345986248723882571721189265542336938968435213954523721577734188512149136349275663475227244492182585232368261361993771352775387388185512561683231369984256267514964827974785317235345995991149697312648766521364496423231472726339569658793239394211463712534811685532883235324547918871297465199497966847644219467268351138352672341836927236635172972666299717524729482459373288184468542236549489519433551492536217955737252352751167185582267859868333598836879116374348321183146154845135951327623934338671875526892953556413924813922342158496596624897421363593581697886257818282412522269441741843675196353963652221255997184435415136937336221937327619192825189424864453717975227915422279616661115815156518698585126849137821949484161539273113687487396627213879236231151678436211984451653985362164671186147114629391123779436166698961619914143647298647132392526345551197232149961228249212137352817852873922462573643928235257323639272563212717982114332359293957387749363431321121745314799859898975191452935218848123971147891914247971481246366337469329372186692245585261839129777576722914749381557489739972457947112493168566824124521885321186629245932989653528647239735792247198786416183327811689264424481879173957697265357646613493928379177893152445411915316338397367144931516386416261114785323965928587433161732779811322846981669585597919419465824295675569384416633192654843438544267553729418123794752232457968714219413151873646698735993327882711953657562852927718789234622411848773359328891349759482347446839773618787198538991694123892379756817928846955183613354618155313438626475287877451468666424854945253929586823138398391118312423336599148685765837768868436125912725996628143197571729617736994368396861447978269761267349172639268972924173613133674147686818393519289132925142722689191646613549598294127913963276295957452863732434922436998482531442279726475921162872659122333259436119949571181712731947977265241567333911358324645129191195759941673613182255568616525287214445996672546784355129691737942331795962226157511216544716656683796524164563512725487791949722976217684182654181638195699287136919511497711635779687182685954598467596184253245118396932912895379417732236225454713232515376447977523393161976814222364671671175929893777168448555358115523617535429639785982598923733197938413115626427744738248514118784237385476423229944323374656987328833751878957867852246155751731391171447961915655125942714936778898128442247294491875556149995588726797413616674279842834714164546843463369359484143395671761551999175537932498238523967194848365388683914146172879323378459153586374218692846675818952798794562525272223396895798821593833168147176279232651698881491927719312873626978976621797787799341272128852923952632691118438435246256731665216488551923922698986367618818679558967422839629374266225942174755955256648449273655393694227222187385212632913618452587532613666959175367571394944663815483738959281175785834645411758997575244514792368916741391269621879694698233333199247666654173171271561616268919342296328357233477369888515646639329412196473241338292369664332443831213656249498624345159878635183787974261274146458621498889232637497896823384354195214298325199523323722828867333774528642932766671928721638264571522558428757661128461161726614317528863114366335878372552945377865563632191498989627498483728723897785968429971111134667144289129881627465592346813255154832753498571611978878583436711837696562796854382455153133237646714431619222481767963925314791793566268855966945217273419791752221884634116697615982646543393413874594749464161879625255854676178647315565667141529746976743938833897251159527846613476118246127174566341258428259612964252221817538872251377869539324876573263674555368353776313566144849857831731361388848912319489774631339135869566722655759551826233833217434986294559298487325924586473596697629132928164697997257164776573235651364156736458264685324696713952259364433693963473164962622712912767929618923752314399792574845371962891171963745969376182156157116469317413393696734687681714435438135778996913717771324114531297922579345738349379675292171714661794314765193658416592141641492613267596383486416215173447832216835364739572524419876333465849622932664312487612949924641168362659436696428523974988392842826369795112141726634995477795364311898792311125576363434888246558699695438459891443471139483111256399371919583829696673338477126149124563193759774998657317577765115621841332127322384648829159933311616891963537799472922146316534662718372193232711186632742425295179242961347959825677924834846245892167271646965336793974751384223994758598152672123196421786346186554746543486817517871327224942839596817759284841822632451967456683459867937669129399389944971652113188356133931168214216588713321649918281586466177423746745954216443184951558781925268196936622524766695376782356524173364616589157521229256369795982435527142494438121914191725211891322825983998142576922252119955115945138892184341267179666897763461632337132987333318628664573695289588834871247792248872917172149988512235344822671973741149572381759288528246442832917821113828542713824716531442776695281727494278118249869928234484975427347953139553856386233385218854193565384526833616622819391668259344677636381418817781547646445613233818479697738229916146558569529114774854354161785188857496653963636643332573432264975334288267739573446212131786612876659846758975435254951285293185448321113587652824692282683623447738816423565328882853336942465786432873559969945524659649588318917347154145277162287758676174224433116145337756194955979595277271524419732269425877415545762378512714578926863931739372598636771917149246167962645954741926433777633355358142724296735916936243622323682839329337619852136724664855691535121669813845286992899211627114255475116641326629978588381542271166519616489626492477929524952129778675542215232731445339815143111276332232252411634835921767433971561553763182893396591396632747213691529656527341928557188292654821198649239337524472929367869475598411177565891558966341466762155165372924682523615114391785256271378862763838433318348388347436952284872749754352475228448333888759529613167662195239964555199864576798534584281812832774931781622745161159356266973239929589261228638229542488564177585657655533281239659541163315126323376534614192731386747574428525299715299932133934691312126512448192642645911965954122894232196511381317691117863969711661865437567436953617442441315773312582236142167214141325713583336758977154673751579525633463432692495172362741323184768943923161584349812812434922159448211839764489642469429787338491447894813733162173337219262444263141334964958138866321593152374563259866324517462897123595394214292441362696778379836156624362617545464685274386615299416141575548946737831793288968211916727226342212762157142323674132795856341846271222135151232769344965816351291693212845417466337752976817781919822672961758721543947816139381173915818444439251262312475755971221868362235586811394138556452229761274973325735833963697593841861217921373521254593498335237525259562773436874187974163287556143547213851116719348498149698212443457192736696393362592629763934289762791241358719639296252464681114415424554616642664344959488966595399375396622229655825657344139793429538638463585951283381265212118184388891159253136643869819333663888649756432817254341256153824463357158878629141696429234452413629975796119511598155324874274871677598856195733567439691597859664172964956827982649437712986331875163318531792891553876379594169966254348843112658478569321873867484988161583134911183243935715596654923818126543975475813819412588713648193522932124331212556337939412972564352532763133493857747343971326894643151349313838386239412285958211759771212263665225596242372257359214819587411347543561438658386399425348467591952845886795526661471241784891255235547928822233653481129394474998274415122499231966214137266428181978537617951175186251117114541822342532965929495688381571373232685131564226978796654171866598773877496774128143121218257731885327943188493259268551576614447339877142216918723394971422148488343313739974951541865581162825281656852224382818779222652244212327635246225973667146319352613446455167183754331635358953267577173419113752449424446197971777738336449617545635757131731733175117921925265292311792176145323732146459669241618181485844564733156494716481199317698299643543361187522251938196351461345325619349676326385341977223853112443845541441388536582264364185211263686796641136282768973978453988119251873311933161781152564493399551626921821349747873325242264241646568231523821746533611486558637454855912574851344944912586811777957389672829148231394116555176734988955616136338991156272264168116219515372191463558489548781947474481161286819923875393251727863659159249314642764521464223919375121437166514385942757367161456818698945115184267677494628383814144438996512255343853338545147743887234316122377792221221657749541627745743967329858335572595968271874885316341822123528793378752999283177862978674895272546772869713796223167658459293632138251783817498539525415576134123333421495763748563196921872357461241789524774847817361945326626957639528372733656879915442958762623538651521891441966388523873391246958354648196355833456725978425652368454233614565924127262853711585769238795725275419379921968596975175587582415487676532828175474995744286641871525216782848811263771125599147622923159266162171859527227361461287927213266433281451794659397197693996675392854394272717327942253947223671622287715143343791326188696345922842763433252473121498932111521988594437781967518242479792692435974184956419737641555919794324862318555699286799986241975826879458168317218411392189985262846163993652142994416876798869152391718514181474561927225142584833898724399143297298198685943345586845757579954674451916223319786325242553235146236619436283453944122931577144341794852113161334555213323352623374187777489676373343923553351338541655748311984964173243422668219222663917983166234382523318816779749433593295729573232743296899775562719959568147531322158138246393112282361637538541538927635541399838987111114388919933835861999213253872931234263855283214334396641558721192316554324891878721288834231578355724649463859125323563843392112519499221596823529551278642998687523391223334955167862223457663812384246616782887328562494672714253376583512744413637185979119185378518145259845573283836681939646367211734896721553396642553563534389747285914542265521867294113581553523613193195158325154323699186268114326317431148919333962331388553777637941783541916944441379297153421439444692434528129778913718113659552181224483435258886788821492131286942474449443159279629426182951527117653647674582371833213419662515878922192362743738836125528475534712448451255885533744631986221422881624597767475328295691474877423938531881661133294131218344593414849898542737354892292261368263147265435156786152934421743198938892998385838296198629713736883283726274811388115215328177933673831397525794555521799334955118854987721639115348525454642246382217269344266562262921188498355643382174833967517314838448351844572771493929852568314956398937779486468451377258755224671877232273964232486931691672944519738364443649515866849355911277838111883313721355493885769546762226168133118628631359551836973944953974483323256248545316996931331459557214552951767738849427967962177763324257214226891422349622256351817883146463741945177433389545599379415191549518922386385346256215937153778719654721435151987795959384161927535976217167687657719125754458461225944287776415859864918148563668343238194625932457539617738192975166987998384736598828221167263336126841341398794212316351577714335516617623462249827656258453997565813282374432195448827345468679647874379285112497841558211449211418125189412588817999871234925195974296982699556644525275722656363795212319116331537489543392937373357312128435294715114515343166596242728758127253226342661355999358138262167895433546571931821722325634711775835754826592799211419711513195357356721786768684826134362954769645826363774713374488577926616432815527114228417645593567513123759874738858465231451238435919128477171935618998743313171763341241255163197641792211212848462576145921278351653354514839499293412221378681536794143463125585462789164422112491137548557635269719485194211281425927954459375448723641331586139773438845245443439124679523528571124537393781352453531641475736588475932183366778446738125626956547915456399566968539676573113411183286766319861791795395517862517489258666154928343257343485581174953377844479515239575629249197434647133733491835687729156121821855359981131925912326235682124349776115672715146173638274841446186118385427887591434497456164384583258478566354555176955369296153938477441951464789233642786953485214717654876925863796661282887545844153924898327632317168978254976631269421544289162516447283173575227171933315413241585884216459332279584854661552724629126662988163651561147746393318712791219585559555594591569369534181636577239921177173447679569252828945764794792695178597846996734743735747272648647866848376633416243281923989969611547179863884956117345898162559464431675772561456272755296252975953734465477233519111264986644119736462779258517244713916133742311144782569118357343241164854498633896795921475736376615979456131514874139974972955492952842717388794126619961968924268575649275286174336248624864253996342111548962193686961262186957121889614378431436869268392948672542394975149554218387346834334936864946163685465123424171167748673761372137412487162283413424265618472119597861768612717776448732695653863181664854214122977586331148964483535235841182446316236985678418466218454534453811319648545652292663974377331452928284639286882448422973246734539144185299132292295922878219471949381967571441283654789123214556838519753843517249935179752719914752432499319884778527392518591533157491674228611732337884259854853366268459154277368987514971964212777464175964291688522336439925217822153751323145983685454258832242217471735226579956649297419111375848237655896172192466389357289239941928943254917733337135976137224495255244717178171296516865726594153418483221241192177545842568827974847299728241314986536388797289628416626984961612293521241748969871264195445588263197443466145763599672888337813626215168738683488831153921982985525286816814472484724198241928144785448437554943182815887795245866131847758762233532485185275763814568246777297244643836844319877569739561458117751439216352822486752443265625134929372336756892282659581462992157895596725478927221295131383113241271377719869121283738691448451592292981369625121973987299578718528665334261581491775284137168542828829536246225537961551383567146953559685532853698538914276621679568633533129816313767677744217377923246688719448826177887369341829697189996678657376869114171122287919359523429486491754153582287953995148342517167418953193274383444412548236746429182351397885489429354847482934114554136432637344562223327463619466249262611941655231324112452143253126264882148249516528393152172134993896471123813152533691661116266988578357357893882921741485634567628959272984564293685236393634948866483352471119779981811225242264934118377376118966329358446451953269212877568693116423738884883839612124117785975834516368988436879362675749811278134675743842619342376232676314898741219662842285598712652551342277761155791692342872167466823888782656259723695746973212725542459916493436566462139714455733142236432392449119253399232233346376245492641668831539493376128632576821625627445347797363618623372686176535777826822275623437533952911549455136849261152753756748266684764386355573664325129883625296768166913397539156592139393785385289433216279621418536929845968283868124135674835621213387954121238142518696154434871631818771774664393973222598252226118226113279435341478738984899552148744367135169183637457533669731552565726419588311325258237987228222117152584156173654766256846599845311965437442991227878288426474968635879761681614218289565583446864277738928962575433563324781864542417377928559172886253592688211425583158223392885521745214798553834622563475976193721497468758125591516228176166676973987539294429472653531676885378742491657811899756538825188951368576983724419629497832337456669223569693781858519144752632476613778432554751155484817335262737568784736338216222319629521616927873298441622234874562396746879864495642344374823417952246591194779425476887246669974424876695989992663156551731925564454422656583721669576526339832395185562195152125963438641271157363639949315913825129675983214194919536225644874423511278878914984233129447539398382437247911541421628785979889179241132973194322424641763324646262192488678437175264878744799432882784557114294791376795624864351829542314887894985895768143866927417675316119233483338399541696621651632596426275165775486653176514353317648944611775415675422446914278772936616958782549548732295681825719721569953827636267948355766836648519395877449811771368773547127183466264645212215232767455697134862864857288657113755633743478132467261232558964968476179662221529499812398138254465711121293442583847446616394646182319412876753746154444952616498811898461193245322844781587752659794936621281273192425316156827893334869846559233757166489973165354337393161191436255796212199727162636574873429663234667842483159321382495748778463469583394549375754773574238947251479262775815978557651321572292813863946838235229298225811346653919133478968757562788311345441261849421167111313711725751366111196175321554833116934164713646312353278287228294158577961735618968883625411381559838615862264613693237428348655533868929181921671714335229318143527734718427751574214813142636366352972972181725186659124293325397527258993365969245218814939597234471833911441162584912879767841952271516372244567816451585483344948279122875151271282589141248722449176285562325597994128656214833173528447879627941236722273353169582694828256325653742191334388411192141792275645563596337795682926161539387932699378817972543943896733735777243128115658352411375676196232621551398133239397125522178884486979384152349899288255837153248549844226576929261838688375362291813553941489222135329835272865555759746921999449354257281221769456772792751553767417931496647695174973176159194968483617237822581385214956186345782218362683526179139457295337722988463397461728561978798186495418453327362791229896984124566562382683437567548745147596642539741783314547171665859189626337396461481485788866428957453724263461763842191338572133755671429793233127893351733342948423593787797499554225128445135214369599583285195753915421743144725145394198244555861496498932345512816114871665713923535451822414455892581435752282637973567695229551434826881988457758959579242818723854988572893995124553167322649544824124912968652639443143732829972219922463654558829131769839633846547363641286814148856813738252886625597234534121447292132778823795974225358383432894881954254283639131347181211911838311591725276439462318299968137275959563559425729134516519723183549441654141967185389957899458663118575276795582136375491122268692331631521222366738541772364778594784759481332616983931577724398226996311117735813251773776795452945194649815431814482612911295679748136849384739689773716326614186137265821819521522322137686972346383125386725323159759731177858473313176911263162775189191187742791656647222252227941395479148922693751286212821986718637588771534747837365242323685753331149876529893839247513111685135863496273625179763173758959632669244382399661251369361744274742621146367118531539882458827172383188913744151612273779247161647625474314363843183724246889624134811372114531154535668127672454839233377753469268738871777661243513151969914948569439595531221587493514462295349917433934736469932726216265851294652677931819229326596962932398356826542364464183544325241278768879599716254991499582615689467664755646356782793519928661776389613798716375267881194823929471879342726237222925292622247392142818223454773599712132841183442784482845318547381184337265317725221361181393786663264132369131398886889832357848149796296465763598619863672947858736667126213979118157283452933163411514545114914344662418623644942993718657573499156771594558666991797439818481168396226984246436747474155781378426784218835453467894866573284921911428746195257637417731154326674829485986389438276975183692176863496422358519154435313644173387177284859179398597392678345458239962233952685134216339483842373297581561268449837587415218753314994822122849941195121722887638283627222455139712888372959942371541156812168742592285295121591119514682575861496284958356858636792552297534932584259161857659395155741836224595441945548465119296715442716738848831342424261913399192812154682559518688492238863461487775315239351316772137482361385267294145352492315258811374544713882225831836686376835483671782132264479255385573796813944921323385562539638631331639263962817216579543185231559366743742616795343975182392723393289353874514876141879245425989775982533242314515186375838828138272186741943143951484441679615931551856651643473944224954525541548143778874248417157244754644454794319339922598177786676646195359162412515732967172973844979815446853627488687374537423764698996853712329881339476324122331536149329686515186811932284489433821891543183317284553811596182433858581353112997381591493683591485251236643481464966614815527169695879613311145332845293322598788956924577115868539265634726617464682953691364552818483617689448984596745524143144272556287524843639117246622143463374276375988996821839354637565653665125298876375147992821631698389129457944818553256915486547981992442613491524476731411111336527337718728313569969479277959341696819557248571472126854275724919441411525122729158774512227586718133195692376881794913175937783512156666472535556293865512967763918235448769364781334224928731291732227631553882782367592194831343751465412419179441896735697189296243757681388224589387315612242758945418815396915217166737431651249284713878661767495422727145277495562744948899588147623118189326976612931216546662164849636199971542827381344426268677287876859492913656173854712163783222453189639142776329672936587693197999618615294421984273546547516292148147844944952219645633131874693441589446284628596484224823429696257382943566399973362117949126236439296914575587529637732695921131589941611139724327243348345249968563446468861191399317999787489611725541745335351483996525119658378593828334635549468517127635328543727464949536469113169192927551138272225322766463532991432876312727656189524211313437884323137324185428266162192647312966461912491417316432868812114526852254698758539488332566479742172489562816736987261388968555749426146133834599386111374353694573541342337144214583749612256564249156164487313845645491937255211445817858329457631568814798426647624285815122553375215213836751123458798781789895437732117749567522161147273432859635831152348865342477422315972551332776172832534278393139755719262592469254369916722348896498136871463715977815313736533662494196636272444199776364364854474484314638115494118757256343568375791125972267748372433311252238335796747446826514591556772582726629173116812121281799573716226947873847391428951244437636575772678254822473361476379148223423154168687181611962573796188852864584172938373333941241274867995668565792748957972239599381265622185751834978261451623824621432293313968473416711997314361333361613125743941119599358651187817686449469421152214997237678183398758118753539925772749557361516392426457595892333968154141518449855482466398663732481718573355398866515466869483793296543545347757759279198329116522948834634478432577898463242413856917217957187611723662464463313342388493658359623236981648161385346465734241883733828821152298121911293273748189616246513226626815189874342226867138857728553887383547726359718154422691113738211322565265226546126724386681667662956769838859666169987613954848882739176692432582627858774937686113731133499779494295467841553242246516146437489187112228513964688376126827956931195264346322417816714224963433441384539394689179753758765133627622621826721834467126279939266136147727612434819358815964368739569589611738639915118919747542711295769634551828695496199982166449854532121835149621836645312989232638119354436561879996127418842125784449443177186945595593559755867735972713611713651226145214477828719371568145776767445117475927725168748573763948524637117877566161768471267961557198183475429585258359629485656844752332633783354397587852146619725791631499133136653691631163387241251516114941158384754147819734593454688638673772199313333633268277354865138485249458975471527319653257827448177311337125983595846547681996419428258876547937232248192674947633521717258349461155443481699137431116924569843872391313516983673943825143552258876355488583252373354589621647691986151418122971215158643239491458518452468918183364661926233991893829868866337793929895396989774712176285181663116576774866346789889768366416676342957115774189355954775336869158564413751613651216679667127473215867988514539714172166792962597338794983331372568427166462581511882797837481947495117342387632885233983183656892917585534315365975551878889773669674716342435239836339491147678514142496152929257363695837985152196932322696338762592741232633279878141928218914448577993688866765514983712868183882893418646592771472548395422532431813863787224815331879498761461811298517871684228134841612655353632332979156539151774835268642171761328426768735686424657223761916125262435572844645258641661267971279544443263965749533917295164427719279981597833143951847256966321447837125452762673148349783827523662396658285381431398967783866815925321592836819625171414134931174257535463152231524545824713157133899315957539437711775119173729621877541498636891318171569918495687937529532255242791475222245393291721895285584359941824711189585754197227357948438632379242814265695249414941985451995885488946264816582691318635637771689147271226188815858231372253686473312549848195973229842853354131532584242527322848118324179587125586986631854678689327232547648545645537235449263392426536376996847125513911821231249289413391239455683995124142748398675763482233239767256545632118438392668861189494641477125374625551371826837622872118847624319597654268695426665475269856872123232348782851663694844777977738598393195165242252251211443487161343185347825529648559131954172896844295338299956885913394417917457431433635282161372249251859832931565257428634714227359186541244342347642187443731551481555938776489594372416688725639423644427969956767268548924511566451536748689818355175442142413493694145854887671682735339537857612953524735149551677563211595254376521777575855119262429478144347787332119285247185565626483855949395675786916846779399126378149113393813819199647256732668589153247537883924398192212319412645247
5676832728131471218539311388264422786542586384767743477133519572816674666566919491434345917579614231683639347789572277541326766442988767822577687781669644577544651676282524329678565858491696648132959626861165896473258659337219372158884778885976863933338897567263337766333798251522451749952375334276616331622791176796881671841753143131318519434999594275788972584758893968877614534637839955426333298951531643819297248323445535789968485851218222561833794178889582933785613836691797186446626388614987152686842929165557268524457288726783558634519766962125938823467128344712825179943574492756477624557268223685911493298215644331634378161485564536742959163732853821732249734471962298634518654646573521567983325148514646769841953374545386929395886398995964169257821265922357988724762455344341765232684342655459593799759131262347655733745497449473769745679781139474363574523923712358525378216245463354586328314568696222837937416525543564847323837635866236788822314925327858576126669443517889588141115951866126694921188999465538689358436445659925699779558459852491593415386514138413323314219529746448368894786957353317698161752573338598956515975848683556625841872197566273167133968444219972348439677699558716881326613338486347723818372548537999632528962363527457538636476558566943494923526333526397914616342741196542919453284559427995846788188657932761871231813633667422497556633296243636955822871252959665912718775797667215989812823932577346575699931988146468947722813189599571399888667432626732189742463539232135726799685471284475786938149677324265729631548267599487492111647941399379445993698579752224566527643897997284469162691243382669962557964587649564632598698497687439879458234731966796635143739191718755697556861289879987522488489744894645499184832553413188889933611765748523491466181951779484927812169625735336337884938743469555899365456545672758888887179766478441627773966645618779845494589696286627177886776166951175945268247529414578988824495138564195181525438695559357811257823784941461379757165379723874749431415682812517652659659866665435648254374367429351688224582574655652614859953828215516575124394771985237336465139839781577824378173888574514223296613585769656546752677715445226576662546815452949968519221975774998798382999798172787633561663693618418781833235859891564716718785211876141224761113227242874275535396337631384518647825789887953967359957581725751513534143346999217585734247127351649759428647941958819126387395273712976287364177924719738886926649846634967422933896358543831661869324196779697393759916684495673188397169469242529757927743557935761961416276372353627982264674421816854684446881926867283569315996713788523341299989776994413777129195994517788191577544884485221579577688493286125884318136617658714347933941294442957266211228556258949292984532236254229979723617334391854857828367681291583725291713287837139613654538793329161976926869712975693477415782758292751625848195214794773368474118364936179693193925759389873455926572699718521738731364249972894698993756327335841935653211584996463563223994749548217586898545925479669594695862282749711978525154744818727983421362421153949923985716172498293553865274175886535614335677823394458554156739269712394344535769376184482333197658631444173111677289734585769116569464876957544657426481549446785228272796786699787142155275918653212965745771656219898261535355916117112654498317719869681684765459515324365485194611137276995168633528663153631267897339847644469934773448422571222347495159247756367694264646566784993788972856645438727367894619143541447663736473429595423962341841678242324574496699684194816152769296377524834666775871824517389115838728712225395768656879486425858429294228686793342897311963516755378576529385469883455413336442413377254483798186539863217239471979716191178658432379918329282396993446386577983979992681779711669617249714311163384357495829948667783671381659698168544817242663765716628164191164695348771986777734868782418148578134477293533168234496282161782336957912499546693988268546991885322881195766449694573234716341516183395776529788742968357894415732394519933981316574675994185339477431821377726994669379176564287465879925111878888688816163848981214339396457429482682972556587419615325358338434293218999341489472589724149127536492754591162995917438766498778927822374915393496875992548982876168191252114277276917868512317635427696582281834989667897966218147536331568864973861793363212394949879475575248748679643642923456545142629294658485346153545325818361982417532893579541953989996322377428419287678764976163145611977686832893883122363891987827874483464988923264422597272316139219927592375869861219427272812978149276736746677158565679683458491438134719812666641667112232319141499547651553896525663159136623495411747398492489482257244758995131816275176874595767558629792245517942324116195569298667837289733485851262226466475783256956458589768767749944463489955139639929749976256537586887652296896642969254561739593217814129919129475163485385423315455486794634777189171857153299155626454941963184364119289491994385165563188978546539428944852963363448148995448857785995814166478764284129996378881263546813511812951969748717813297798839638387337642392596693123682839135883877369911781735442989865791154976143668965812644883962285313844952341129877319962442761685726449213522295768377499223479798875566651512914866659597624967711866639971557694885249274482829731968135824294167358422389232832647691618764929293369424286672221151777623995435877839849818619632941348391334238491389451561292242249559693684537521276411947756754274843599984727838884956787846579442266766393254373673754167973846711966287482146866128156125912416927236494854611913748294246218187288678741788894762232248353823338886361395354162812926351475496187767731652485556441282792533381814528964111799351993742879177551183665514281676239439296977355355297211698586189157856981514899721651392677873271519585248156371396121715389444249137889467928865668554317524148371961916373658512919567914699194559998573648629181841898353915218823424499863456127294268811849831561183966895315848124654549217691656993894669634669129811316781672883661294551534863214242175738454859655837889191951398642927139439552468767916952457832865241725625623657316684757979448718167159283641794438776536317774398423192232836651743633578382914855264958719884155489239557596538518859958875138327188748267869274935729257645786384659369334799863754795631377679966749592162275954424565644417438616253637721265878737691622169548367532899978626284339284137669423574543683134433379169598671619986787964788543197957167414674579613317815359294568175542688231546147438563921679238348352585259631861113714181978159798782174732284221164129185648851824535289191674842483448165626824793943644276573588879631498665756858856232961758236688111679377654521695112761863555286567244273651581865629486818482192378889315328754684966827378769735984259382571889813873174136348411427122387915538913251721458783463427434775779536192452948153766898871613497673245464484515967989619276458964993848493714575268799817782792194378488478387283478192978533776874467616898336414961756659962176359166731951992727936659753958955851328276688486682652241213157588894583677467562776546878795464386445913772127695744574161475729449556499549714344373655595469161924963247458546792812361897547481741319636969573734737961236268132422787384795759597833861916899891681383573344928257638755411233183912665785751864188467614945889389617597198827174469349649499916554362977645465527697828987598558248249317277794787952775654369537334368568955428952714187141125594928828517365953455841654952854751269172361515689818549697458773273811693673999651687627598117561315388269748122881244795528357348216479941617241856315572838267384524543943627395367676949788812548649487275925712656346787899777382886382735769645558345868728577867963331722557545573952367858783281647126283447428446455556317598738888131411129372741176439436133854322367677397786639397238329163565897657698433895438893764476852398147921548944333866245289375635565849565232512597727738312319154765154433151715374484539569179928575534553642517796279896896936153868337766636696197163717792314148291297557273662993669698934168766964326477755141433435354332321581981568916653474951797794894848478472825978652794562121862816796727234982283841582741818385473411881712744789846495121859593841893181445836192374919475641871269354692694215854422259582194483351667594943264794131789927861612729349237154294989964998968468567596259878434279997145386974256648275841646659856215754297871834551235734486962836973598581475578553764557862496746337138779294678763493556951239724995416855596855961971846184354114749537812439619368698489655284688293737258575981817296571528626349265388169522519711225496483287748174597525595879972461796136916449474275993743688514322236585539947874651874413148388516337851541873275528579937155413724997292667334456969514788739871771221862418685175186555681763152284719967147695227987616684695232781562465438142698543135756144794259299985494116334792517626655416487247314855598113589525192656926611871768912625486594954864973221577154427831996348829683319647936992978464772494683375282938589116766347261442455298845677279995661823561979175982734491668289661477992796899148465871174335336683618434699872491174328611495542641873441623371528785376519745445869363265558789783942139677292792557495874377917892388918735466883969518576531498781426322686416283239745575894975695552969173956835815662597986677852687388936154269683484357264794322136966892481854825733565686349788855994856645596169541653453598579849341628794519175259534966599597461666859791242672559312298197976779472385717961477797198962253381246111296283969522948153328388113898438498473361694399599677754955771681795958417238354467732265815921463694656641249332313369273941493429884414126841126664377236675972467639784558838971173832459437851512285131787329378294529297597574442683781169181298667336444118636816966763248782781467537841912495574744986998678434659692258956632435932429119948919671996646768174924478164737884979226276995263683123747869887369436449665239788147512713115247411958497766747616396787458567628759482978321423211261656175328585623749538965824767959189384768776139893635666965497698728643874322157462673927821225571169268211882844578926669589461347436254353318866449344692849129576696319232483139576698876389733182197759854961159119452593636876366268893247849831891821947524927774822892447531597532439851629964928897755581468148367954177431555647253728996494587549838469544598514366985933437848792955639972992577961967618469553933123592153152128769428793255549377685188481233528936885486459489985745381642918378562337584932986958865112773565449985769716395228729625936936283515376622216997256645562968739215898348841716364891587984546157162872511579757471843254989522998838871722751269637995812491977589451949212791365929836625127823928714783898563881623655152159267666734224672289863993689837166488884386354111897489461112637347863962357232212378337456246233817884758181422422224372541673397654469571367581971998178617926966581687249974297764428595125223234662756178583488533547788933857272542236673929993971917627799751854777979933775816849936816899772815546327831568351673339894367382568664397797918859474448287982492735143616237923513994233718626522494694186458856565989394317495456852514798171638618817812571886654955617977389847345898289747587992222469375884928692127896183357195834435553751439438336285283176691946656244332767327884444519486366164261567323291139551275789882953467638452387227976361799394622531595379629274482191329715359367627971752371973319794154176783535611985859785637252656833566182876772646189624666876842792421647612344738768988812687839596267773643716491968174954535956114945129993814929653815944549825755181948541345621159694876726548696654541171919861898873878255266114736491937865492966972653495844723535161288991716832376386329649938338471513734765554174324454192473391955956678751759929594465831325981774615237598497787999189889951837229291354342149562389363728659738291251583353849881968171682933821427552994628452944261545286181333825587655991519144677631531378165848155121558185845671663491258771156926116815662841356474599713271154423143462986885666664397531123933878888493779528693617328421554984179728956594256469478218746972586642319351521658347856729151989767975713994247772185961649523312983762665665466493915262243587268311796953847232874526333664248528481432944793266224855436975489284891848864444724953958157422111446829761626255473421735953651996718316611971913697984498789966567583964864298611287568387173447433294281119557268152771712671142938852865282966483174447783997963758466327981382917945888939863255183336846117588966472483978361978616396299712229795983763539843757664854435777882542919873746177212655839326237998947592964744441295645539784612614226988118358574534583619981677484899193224593863782517327131488386646548632336656368451681249594133685929178111494396139173738918689939818834866338694971954922348629964781336544797757138324254345517723718251281841497928495778873195428834864447326786661388741199571546216352767155863464617923992931391446169664729884756152673998556191669831527388548335476993534128529723576654975866666248815449644651286573654961984915972853698349554471746233274572513468346717636679796636729541194718596877461916389942875793328769164792758332572921582393628338714852373619661378362656585367955823687995195493618455646643482537345116558321871799751516235244937747429824498478538411472527728479914763538516563885592113248554955296116354416986639742659653632488823985394583712748175618911371286718585287235537865992286931544473967731928676228542442341363962225984498433774581677527566536998269313479663613815489275248558875131511628537385467244169631954151145632467193878583392955912415965533647491947292492491452926481867597193729228972288592662272555661212389966755656996467377238584115282412749923195529752584527647647692918617818132895135743731238899332231191928529988441618155968423185868262877782634333522954544811255762149931482654691821714981317151137848795314112466977658782959978911316818313385392423116319265481158275729783893442923385797299476124773342992669285959887444442634433162138192295916818283186628717992668685343251673814338527337998992489791285411845391488862523433984878993594387121814836769777759652291177692488676649926118653464646979371374628664934711221772695456258585371459984437485724763152951348777752533514642411789969452272835895335984397553722156772719344281292215996774458889478564932648236122742236632936392436463972889395949611464233397865695647697377455199688191629928721331654315481235524483952246215912425424455629751533891493134835948467499919617428593972438969479989968465799145947596845229199532442568253179538147762989289626993277337165155944692664679458678221385427461527714816424315719595323694648282843158218423965642298763542189337991984288834832572894818584477488493448148186434924866359386947341998887318116633395327569696891547699452148618267893283139844157954762471757758786913243175968319361954782165312589855945193215927197519255351788381557735481543972673746812934575278995598239367331946922927384351817781388479826746589738868938381882983281981385959576684977374119761267486633346647754144344972374623259921226277973134216922279599249486899946355692838583619633196888936792763341791867246263911988111787828933397928641795515511956631271764667171472161289487783919348689364279566962835862989657418644266126998157587275766877451715729832962416346536347111463473791646324121873177599636522151914414699963285363689929321959836896285386996489298573283579679123892788177653661919913717129616816648557612517781755742721312423311873488838642297196279877867729891886731999699834372221821542853724677838777168972826975678632444336886391982385183434369154587174254837739331935274312297965979544437639513942852337492821197932193726881413792677951782992863171756628788771334675656144215595353522699971285536492163217971487599453359574822429639232157917343324146154332935162989911728649125446861669468716361246723891973442969167951964874444723626115755345497331674139322692192781884366933583982942193718831851181979826889113461389199991918865591749121789669914456299672781369371253563871856572843796426537289199772236145627281348337558374138348143762247678377287456526655587546841492619978563339158211492541752246755514289723724871877523579338454627178338755872494349391562431847621113681996252616548927964679171198736825745368727387445994919418773333422294651767826163921215464518538242385843633934954441566171758136272824788236447952654297576448136289182696372585727637274976727846973971498974991433562561478244143679984916867844311356211456349217384115718868461119397388768825134552578884415245764846732637618829819768198697264119795936839279512448826891595856556779645798384266662961641326956122323633722877984424635126864886561287821169878727557686651368184849569341676396987746791884348492332295141239113211866921793677533252135345491383951677355284477346982398384177831394886978185778151563516328128481227631471181491718527196568717956979912996774459182738517863136139726167526969741395919938816342385387527278738746944543874967697482117244329453244118741947214391683687361899213592923686514961715537965452561644596638251962729153688573749173431898482977463783238119175411345631657844487316853786398844277553413256782544284417847226971698374145375782693476116711969923181669287241665772134319862476859477169241788891669972568375274123379476192965688281173249639731473271455121268532748314776535885788461931666831667228573132791216239316176543293489541339267456416458872389537696136138915981521878943618119938436312999657266882463214811358465254523668514427977184197654578151729162432968618274347717123455617592556124623615395554245118778615275676274382578317351342696998487325148957299679213345447323335349352597711493111241377188617284992127467697787517759596572176764753295446383692778552865358981863193943754376681111346918211683919352578793811913295644624772883595911813449685926666459726592594443839154869597649687836683118367993524426175714421864414457998394444881513683934741972747369354697767112939135257429694947398864461559864851978283782448174163822226399777291952575668973681735277893261719796239245113469592883432563358858397997417247846642891699338528992233138983166474962894343688446365648469621932372986714671234489337845196573679445921394987892763446533983827249846142296757951595845874655127729863213991399427625114883846882669315386875722641751875713899276675817868192157933589422945577748553639973463174723299947731355518471673683181512118318146821262448792468373488586178579891479512221441551651968433824795634345299587733886142789736845658513668258966295392722926439923587184872818428857183457898967195568564779434946254416174873418156366633561547553539116968242793899188192978892964899947156652588732529117144116827537475999588488168147348629555845471386568739152764536483963319964817997878488495913766973747666333957643437158326611847383573329145583952184717388278543492816329861988519539765483751643315452119567187583664394692642822459569886296784384442719871957548834387369595787129829193322476662593645832617799226954133274486391354216713498178687148719645212479248682749845552381943713262352639759383922798747444732132392753744817128792235281536239659411795957592396574933741671764411511754797118728528943264494512354588688884731638153773958973188488467779996483584284466187996232645411694771156933174789392673363976872388495731376322948513378681997849446765284235717185871868855358988651666795879392476997176472287149376687341936958853532366946865389937431534138562873996183648839389687847757184365644949948971433898761898939979325218693168665569988657419431519733436977456916369716952828373171567861755822431681411942478237182998313782555322848529776499568977949953862127964258246993668971376919289734167348492893347426475493911969543745383742128988497148337494146174759477196473938816434932897847355755682579263878878382955979663531449956732431915831472695944741681342434315196196311131279849418996449144987669891439758587741492388938588811282265491168867255833916424919772265773134919561575243269893487738112198177492592889762778282182182286157622532648958478554851329733795978511772861317343961727894121916769239817515881144899984948562981651187718239497885891569547687443259435483847525694314492743959593362714521571278434778187192154967794986869511786875653578576756951389674321977739178683941559442158846928225873937766635877587422912438994232168497417811666975985757377118897269267453791561457493593833877718318278276958927611532666251924742326545955939233131568191921383172341857724281155711161775477113641296689989852861974393536745496277527223752922217929395998711533164594548518584339726198765293486437717725936883652386295986474475145288154499748567954329352833183894852719669397675629219265414153137959793128345716625268424353693995985931954452752861156889936485386365399979484398181913683159251279997556871747149276849547838358733925659862282562619789594122317463649849486976553474252184976811746375545475664266196694111568655142855856952514928671131368942494798282872267493861651731288849261658573446327629613248781669765886831352916488897493213781239661767116826678446468674287495795396673198183233426396933372881817419924438461959668858691555958646433556832196873926518693482236125399844721127395195527432687111354168779215493369726965963916661923683242256898955575917252158734789267188136989869998855989756129666781417957935555358198451179123677892884512438833187793417519451123779212313646473773992997295558591416747148888356238355187726829836287861466571439496456487988622581513549985491666864153747991893267581959482861588543976638644191572531597983115267851911959117582524392369226364265267239921217898998455582879695867536494691869654589689576443449779385681472373456936666249254448951718491756376189332768161298232569427725365727485549415498429738421853299334423164322491846165118928677769866981699439278471254737768345578897878891885483496159363485762935985197288559351124965774531469476236698633839739642477931384362493551924554563721458588265275375336564638495655237637763358199568832791873929547993968945514282564747763316358439554673961534418482527465327895989365458434195724637571898918777662852919698766643956719697786167934254217588156641971871322593415837929731448146836286674551224691917718647555817679453842662426286471652318463652394736654159942241928743517436439958659231368129253824258165275797718426136586358231879474818393827169686373516254578969166411517769978985598561226739971358558897831739731763125263422238765392919551426828444484634797966712111224215969236311969981966433847321299299968991844157266157639974686562527524587665876649625689739493595722428625688438912927926338313863426775512525678216299686445422938127479781639793195355592579561656897513993174392343571615849358235544519398329662494864412947594853273269475199518966591772619745641974886923288544516545731452277226754464548449985922376958849241782843546226354676268816186781683976796649991712747764214987942289868859723965481683117949983438239836171295486769897316155937982599544631245517789211736156546973571116176586219735642259441545864758355979823561358461574912269794214622668846244231744672541186862596243221528543767419533866646552167411748357994374763157835756437896716682957176346883324981638928882975898783866823384529973971652812499121339983996228388893344216839576663763731267216538969791588228951354192147795845586595227423328456756452537827359869825211519198627712845643234189753913476782554972726329677557735347744652345319656896617828677548227716744681663387338815383941633852991385742288863969583281688564899937557535926272161735446137637913549849278436212996592418866848991771198388176476187592178829814684763558484253956654993755375918524124586488115212152359779551943259913438426135828514533438956783848233533514372987286282369941199997243162286831141575354694991472882779955558568157674623292938584421645734191617357323857254182819836729397672942388945955956246155832822432614795726298652554697176737178499835923333184661498321692513335119624463432529278115463199993847348937546216513541523586636634265328791869667287426254737481964816871535287913849969315229174793673998961687159818641815846368633429176813748799553723547654489791861328123558745891534838818141869939186697821294797732684428237232642135739872911219585676856861436524915338872516265218286986821319831839968259958667143877499333323883538226526497841342276969161383852756536274739386186498427519488655618668464428668872299753318922776799271469692615942715513315731896783764771641353258133996867217986742876581552128241312248968776664343136474236874119919884516449187776917818894893493729774473561415989314164539831963154215893741668284815768554427672462891333475241592429646272115836694616643193534865762481885494379849964545833761341177988446762118275747576258312838118821191857785543695263697739836788745181288825848875356197486183455114651173878966754979195661845972572534992531271843451572849469118839414548863553791515784964394861379126179665721817812566131139525865937724817948699896218736998373728822825656993244193882464744574465397776652322236857688463599459967932318827917641656952982137878997295288595458482663954987349746334455311523939675882767883776888738969128964922529891923925373957545974356425941748956347742668348948148849471521757785689139494895399166511881399798329726735526381778588581639183476657656786486799699926625533972385856916694613444999237456671734328454461735719926713734896381826259454354287757258595419178338945358282882412857719268315391323384733819186749146937928243787235813358973317226652984586749685412769698165594788316251438534949484295626513499396623447389437172193147798652786822773617851748448962221283623616178848881473595928869739959974622184525764233694756881288229518863726959644462834257725731573453422286233725321967929133881618133756834245286952691784997428832867845623888951379794993997196944856935879854624889187662786654999665835972912366627459268884268325597865156433615369656356778885778334784276776691341139474281333447512812548294893368413513394284582992916892166546476229987357754353298688852663411977585473816199369995997623224879965991357386192498751884571144669371283219366964344651776411725136758685974581991228215892994966714666169586635648799774527156721328712388161876322838388187454268443859159912453577848155653981695965748373387526818676716844192998179566556655866719415897336827368136856461589789383849653618493154267322146643457761868721458988185732315473391551667736485359191961332587985637217426285728949878968624613578684464511472771281564546674427984799182553221387363618355741342282252359851757518239514959379623858581354344967457748874284251389265397577932955822383757996668193436445246897386621947268884648675268486942576398353288247175957843568346829494329886244734943381672181592112855364393959373548579934445227662228983894475813948141719872123996211495386391617915184695753731137968285359987454344117165674796769817837684998625989685648945537647225583773414741774562186378573799259283532751157569733772623535733793691339799848648746216878821164451987342675167689261326684969845726355961534312257226761663887617867769835579272553499933918518249355648451323765312669139737228596745896653681342446946853447779186422794233981832781629174532156824851913966868677931516985475334854596743251484716333721987261395122977925441675118961116278362244372647182822247634318787476481954393778544692311596651931412879353669724686651777412249628294159256132871923243617172323836593343465248269173172997898384176949744998528739194492244262457478268461969488877573981351692347443788799659453494916992294157939176728241816775557234884679716927377576173371737459573637138637577844438721937739124121794758758477958328687516269798354979847553778188277493411638577258913929532167877345851875836843484457573647463317494767959341762819998531941464168741527389831586924215664766744517815666723136769469954179868431424358277267476745567475397358969913283451426663994524744687871418346275554823186624437471554364827159196287858664641632385486983635736731739779799567325137447534896792648467348529911338635518497361747884723565539733811716161869847582853686885581241224223313728997697537927333743719969548584258854534465716324989977326634797232498686269886124823626593196789588398397346469188999151543456762329663723489287386743551468947757789882119612758682569319925455237393789647226263622771981917358745929883195367538363363944115186876975857265462932671524411698978151119169168476748674763772632736271575924422529268442952953784853827569795372513516259525568982711927657131341781548432747529462691933953254613649656857333317591368741243637332679266376361895492517453771759752953764643139629186276273635664638523292137897159581863591896619931398232918573224823695628919888797386473444743848176855677885591655913195251758959917449273415326161226425717927791756125892979357738689267664522318237234219222648288891926361841712543986235496852926218166463756251974633819922622949388571641119762741581855768393896338624362741825497364466125722927834879174655529569868666915437899874148781666561689853945764372741935699258765675671192177542714847869886778382864917665368735955995238247824924888289247814675719597695529898158499647361929257916116123246778416845386994723233298679577898554132926345216333566617766466678751151975866836799181291489929119116582635179787356863429132483172591342874996292654662726485625286757688777583343711847226999918915481165378175266149857322987585783227654789211391283745485468676196216393458175546498228329868481222375583883251465472736788223996686383411488951724196561256788125547134891696839746597132312293257362724912621439673387322682698834918736193878887472941119831461183189465438498565881828537421357949987186449424222128748525956499818284276212813686386867577768561499787995559119759617751689876625578918156832739978976372214884381318627941314189357261961399964392715815885648664826876692552714277773273748595766658751392735673417659351663895837699154939529877428483262422844519915213288734247295439992358566595942485988559694586324997617173766719614337136399289948784365994685592251634377445582889292754678997611689371621813241936483379451759524231562748232276292668164971762451864293719353924221793755558255769691753556761547842182763547368943387477351792213533229699319761849939397755499982735761346698725163685363773247729749339313767477752386984933245639698539864426464992565956947854855126549631939953378654757287587384122418446172878196985138551419537664294798686367556671293825848485353314625425576675957556657928331986572616275124384319691982896585231554499744653698151937612458264563599488333211825847463827931625578991817885156225928671269824711836446198197795846777182384299729161137213852152457369766268534665249624199379122752959459498921499512819269654214578113295741536968339367675215183741269726217732863744883475847275585294918897858658586257978875446688864967563856176676316382686475759592565581529622149861665592385393538788989767527598195714578612885615327249593269264159685974954893337775992692162536763837238467921115536988756448179661993965672897565245118918187567998385484827728464273184598986878741363873443699967312871876175729292516426879313419929441229899565963297951164789174187993199294635891578747361988267829794568973619466972536611117478187481583965362621817725563188559276997774814135451395438542346639517312833632435396794624233293398353215353963686768474495462546577933186126453433613574984977151729594694839764719553593524452933824645615559453483548792596983489716918713119196869325414464888587314766558322234532754945184265677391327349489285184893269722218847569262658574696485812523285899159333454371197399526891881966178257895272154271974296147922594321924372952758856528171455977727297986293142629475929868666775325295525878922736891846579435948715958239363345688414846777717395998488562288348238588589518518232346994687157731577498689892938756695322885715937884694523966462668267774567972859981875267342395787235342337553114731943841794917253254132286763315256688992127599966856991594671523229169433579354385467393968425182664143333527279923512677417753612584697221222873236884954822253831179235243468926157274854514485416248214547632526417648317366113518886532385759245255727912381511845848916184983221812917427875785968547398732854546292115299791527252754959115321634887262922549154178172862652238795533561662577531371485186388138483688596991749763285541334276772985316179691562381631377714625481528811227379557971265662789187528172847624892774657329129316194149896965763473584328979199621447377894195461992999326652792429572418962736951419638262393912545943954661994943278297437821597737751452835216765847613579781115155478751159485784223563675318252469556933964725997379398747669486377719475489847139527167976946438844138817949639516196515352974546799348274951363387247729629711463951756823329418336376787648667285315359652716519221948262887248258833364819567868814988233799829166926748688786712826944393946919269371947147244533185847546132299592435788263779834654591827882683537371166119413539593224894481486281185787752473275179832259125617518366495874313964685711171955871919177118416866781344538912282497361755555478918187994346728761287295911354888291289322499928321871644697167735832383787396718188862221588844113529683989288532712392827559895787613614171943758946219338154616684571691981798523839352159631418872189775722136739764839591866942894485567291555396485529296471967155779596742559195319859781948853836464385254283522494296648548867679795996974883556415894467828959661589188471879826819773756747823197963735256312645422528554559852778384889163623473855744637969832487143719247464131738345923668648761242533991163697141858742979497134832863517935188166818147624535498838487885686316634982374231578951593175556867223387728552285367871676377291221918259557329129537931368267159648358855869993769775739913729227734978198295223748112279819577515953296972712613967665711683278997823486632163576946916596213869872923575825975364229766594654161536655555667119662448613825633452772774396993887544868423853856388491766448818828797343228338485394993254552839122488299867477994249341851698138513261622991336862356382197428482378921629284365629127421698693941921736824519812699598376257671744567331148235995274415759311224885445313751554639432935146771886218218959323646695555195919969517674838654989547598194493349276462116779455164757932963462571682581663571827775475427742138626571361634482487697239134979778542587887258764963645476782655398868626499622394115382887457976633144154639152625657136688194974539923881744311952816598453719679159839812955665564984667957583923379949234179453686889828811386589971897689956358697462621237359417895185994868486328623328288465442951454397545935257679915584897889386818691842693398775689183748367381981654827448964364846133678881981565793677237472281785384577886757425958465111179428796398493914711158628694797566335811636239355889676567362658448155115976524854244192254449255855631916634848556591548674568593272645896651356767713625353225138993961899431873942742727387559693847821158888435189491667818661725976224626643277885855698953943756445258163565692217491974726628261819989614724335522642235278675338192618181355311365785568851693993756362137881123654858832688834679151164737819513719144576796798731312129837494512914474243433186683969663227425483265549153498213515198458235625897837877826167293571789335744213218759245231487657539599849554448576588825783647625122273334388549764154526475644566685938761777973327735449812456318458252254727616251558273174284724153978589588581772319718119985137523617295471393134942411636639379912152214356158628834948525892694683129153812945355253458852471663235513949993186626766615828877248778219917663375946824373236722237764718144635328946719912754318563511781798599775997777893952137734544926736465149832616297143929746162768235791887717749898867395199917787235771368894197495878275882569316624141969463862189337892941531478461827717264986424243974562999942324235767999192937995866712378397944281138685835152214954778798413678858879873727333774746237894588399238551898855214233545249297235267193728356398293813841329538548787891487384449784161341579837949652671826356934625696315132569667574337324445496645118878955751273469369941858275457261243487111626976572249466879614666172298791325267287179788152939752714826841975218397273324264548267892253887476413168163179971167976988533238946152648153726816897873193169859112167595228995138681754692371544871865391742581956545463817925445975816197375467494879719975366166974646219586892638157513366752295454554994948214545713718762794197328128646712781979166352475726543234362227842243769711136949788314387941722756835359422933444222757595852917622437742681465389487661366726627969579268458853769267591589557589956468529885778117492969525513279598254397531115439432247175294551597299949831328545579556166891138569534537781879242667948744494348844783539168273871852533178616289961737396431495933992482266617398762485528891255827426267574451518726568423139559686835511324571677948261916955368458557672762757723661455433963118747445938734169745936365797183692852824917957764214634951131435966862191661731448426931897117388656189547477976134474578658138955938637489155271129241376832455748717989629553112973826753824515691261221924762485341657338497238629187927843977123234457775767497371276525851331199147124876166284523614589437679569878282989929216711859658872483255518832484287259391291265155926941669254368519635971128866273938442589229765936947751849837324356388685663743419579211433223442664753182551832918919838923768167521875244564467426249115396577911292536876243756725997941154618113175674298711165972131489923676561894393895811933995899713736188935687397865354684971149932643737917498176629711256666685738723219976123543147575445555295947969482398643139939618576947758929231357624369215855282591724973978518314241197437574188685459254627775317685786642992241334354485834434956598373922284994869947932357769834788526643871665295687296636716499247899292456396598929787977455435495529526315187783553669867187314176158657689919184214295115611888335555988832869315669637481821785256556542164659272131163657729569721412715263393955753978333132316977399825938862423732374171139991184736466717342729284867656339386249553489626877751492183198396289916198544136444758836443295359988523171954965681464923712129569816935522766226513746899961217989575861355176961936544126165722862954871537164496257454113175711151964812164564435992237152643415398696143888987567222791683984683151915948756249977683356965943634479749187695821849177353722281237658568677412945265349421257871676219781365895828147984187745381982419289662277134387336771978841789135682549786266724214463295128358197536491436176254371116273645794926488125128956418287751178362545168673822536227863131178848328527195288328655783395141138989742277969186555644751544275938173393284418788333538792167274626271714523812243822537296269945992827811565672975762896929797477616679686941221321462992599872392539634912145934784212587938712655773684533199739536946976888268599971613793469894237683449978577955482557313477446619275176966164249828371462956515964299491569289684242314348944641599233583827531793129793893367882789334395456669987931213925998216664948561325269183688343826431997894536266879353237314397767559829472131299814967894847789331528886123785769639578717649399379461931995894584694446554461124486176451864891286164968818675563866428767194696181432914668659977677574676485187376395482158666782135326595559616959296934498374218941793149448519722955283382318992629537822288885579842873699755577388425156834919724863443783655968487665628625825624938874397942574484267742148724616935693342961983614369731253945785514323869615828266389118399994713713982786584632925179186959429691354479617568378893825457235837553745138176669276558488344691763471599167715544187356748993936662834769731489811293786298633871486261131274474256513511948888658242793186886642694718127138869891532849178449962314779592996488995348539267481728525977219619365569746696387365748564697999583932489655267913376833941437899489591464914685689227292829911619311398134123731779662659166733124383776319295315253186456939464818889125494894978891972111845891682892537333267911464447358527626868238782922225317974663414166288588754859959716998588449873856598617513758912838715886994994555123726987293624165496236174447966449565985145421783728171858959533342295537262755767875999968449523787468649387487383979958819254739216665646991746735565746767879517459266724779668462965319227739237957157752979144295768981529151895491745742291691923194539562181741179156891918293687778489543911978925932225698855345997762391886414367347899762167215186721366228944996227423419181533251312458721448966719223788352335377166342899899467754683165797769775641944569684622184541688799418832642639363678194628792981587299818315317933622499693167311476925361219386116437938818139189148473779869697163762672277571857775212681448737173714622987155491318143915764411675488986263696338797958187226557369798737552368995597274699161399142196315716871684397935278957121651283619979272591741397971913717224534416486435644336386759443434422557665753419726786721392467298429118831414674798717143214581597293813822988535219779616691391537466543523837782276491261452197656699261646775461438187965625682597658259897959325314488645384845352611917995577998881164719466837667586574152165612849975724317761514792289815876721138626872723738885251594248687454337936993291116289984847135275921726595849362248982913547955824137755542591973941277345279478729731727613318286988956857949222228818883552878214571698444114255844916436847795357247982828688152772618789152871697231183522772659485156152254254754258783716393923587895422573718997326965139451787426374443249931972216415145449161554764742326484831838178763571317336844764438731913819492391891535816577475889737668526491519751958596912473289716963516647356772683919674198512638496413674723765928926651629776918661527372642842899123576646828223884682113592715886432399436738213166551789872583186398469186633879681717795143352422665834374179154513877816617462834338184962785328722969469369433961393589781928645268513959274414627862236344732336172399315382835582983468516577431617716689815888653421881969128258922255932915562724616145661314741146251285921313781424895559586566126258754894727898925496733196915494187342814193421133794448357758628185948589465131174784386372366566442677485885187639497142917688968741617941133185126892741935747326411932553126359724575487722765927666424372226613735192293465922574225328242934891652871297655354917372173883461811531729934396619677999775817184222141614878638864788784746769843842689397654816235177759465455547184263776847989534797492412244388837533251898882361661584671881359394393181111244228244582727115917984646111517281755614657762922756744968573484994479829939288528737498942739163831183917467483597845238729389479451876299157888858389384892155946366787171998137824655849521678478244169281199834856925155913742117197989767399125831621987856619769975235735442464878636165333524566727777143144757645342469326787456963961435528737599959276979519941489452863593244256689111138649467488352591485342478299565551677952989989848989347241938854654978469386186472869224915956933445378584385325984168854576196618314423812887282527352287572493656219392146414933875673143798845674133879597337311832529713649493919295311296848787967692365858923164962526182822265566786899918524223667993753288279546994282898719749939361576837926748414754212291746568565386716297834241662959822917478165987839754855476492845469326817216652847977121376166743135151733329823387776515732764577264644458141279961348645135718677239468794626214412936787759897833275463776763149365875726131699384573149352643753974696175617166196252387454326775497326574796219923884293261598861256763545313829751599664429386186914589582891598627136176112869157478372559232497293299784645677576557957678285357867663359625778672865129163775271577378776737764132181512758185148764768826672589382966831916158245721293361462259652281314357746793452824728936783522277546119633442232193976957777931352912336873358789519894387993989395758945889914976363972999143969771442173473756557872351983385177672593989591717672568438346477433612772718376878984618273725994335326715599245281961661889365991427998966462363417947392595998788999889612145795389466812545657649822388913769414456866774233795514539788572633535512892884922817611622561797172377247234861367917917997935839355519131812986479116115527612769762516679617313417278163892889959751744936885673849675635982916798352493194528437879791284814884391567393388627548256636712284972639836828559439955885198627368677731549222232471328767438991752675682219651743529547745575227339897556941432593517426996661778783161383198397323178637376743893889968664351944126412884927881239912556441228952143686749167347377875988911163725846695671612759914665677768675573953647315869183711347286821158897175397677981838776449714218627421863336964858984546799639366181871223373161371963756989145519966373374371236395795937216626961118466163172962774311967969472526261747363545932518351377497252776697512942568993521927398334222366955888472685635536979859865936269329386242914194673443223137877685976571626466337918866919895355462417378463847935955355849737992148911824153973376616586147925959584655589262747178415616742876382815548368111226976673312548234682257562848589968461563457263297798288187382585278654343419953134524931994416239171965764553357468811574722166527978298178323556974735359753289166638786225938974229938476961685465286951718299766468348492796329856465426725918931665237586388497452189378415716141389932795446157491965983777762624531229459549493865153146896983894584326526896827216374166886793892374279782569354459567225166477899942198879663741725389279863623639282437525975651949227281667891269872639332127839957746699671978971693271974628339624146182457314768617639233365361641827184619665138576764775934289166452848683748924338757592844923756615732253284383477274825514522498467948448625152328724492675528743867158415951971147811899891986329739372784831575673379451698439943584679397851332374536395331558982632775687611486379216358493586857181159413299591171624621561652926199563773734661965639188833331527555649817458825395762225831779492187136771269226997928594726911345761527397922255927648535948859955363768352436814958917945486519854718616666675677842535778675228691136927863543147174447772696485294296219819982995127361151262611213216843278969668857318687171971168637496412266536532353364333135627121167952494913737783331198129142544693646588274697917483374416693692884791764485996898437761796755966151122689268265869818579611329876797494616951699511675675862531943876832571389451814862852142233388398365541955559979541392186241884697337498583927485164712582262178959185936659731267473711589368221877528811763919325585744919795982918384419935475429496523791475555793776775646386435742224815378123747762817646915359557976889739495853179554482953519345772189149233198752446863655755365515678517575449671776147832986673788244476687729294691566625795711397494941244174755242996417448244938254679859339884727325138726745699857324998577886171224932156996815223415849626376582937188513727945677259631733695742869994788587154563148956254884427665478557373637616688676184485219811329931128487867672626996434155684562336855389699273247432561681518645531277547178219836225766359986292894977762485644181321753627273751547666383171167991449828749767927969852993157283468436513678735894773793579398728566862925457282137515282998762286695325549113519111693172939462797268839932811845364889911478879439565255847898196221363327984213347937479444688271972594725888941948875394175781777599992659444455571552791369446642652774794965442911414233966429697978496618371125769287128168272796469796446862582493639995937997368915999387488659754668711741661638356459979779267929354985124857196518885179185496347592845671676745923992575497271695978966866536499479235552166568599563631713487175626238178897723968292128359597464472148739865734518364262726785822722873732837734785967547914667872823616567518515659551754672832569382364719969141885961986539169647864567485721678158727858995765732686623781485124641322967769893682826615186499331143861325984838382831489633242286699538946228648952578353458681365186262882876679217393766332132388298441941263382359132441992719861656778635755227258539541279289445133241218929719671947515586954913913859794832817972948938457746149499487945292238386995824762594778496846172369112156952438849237437854156487451853649347674298721675266932515812539564914371669546898489481732134186292189226955477967437451445124239563868762969174562965866117526482841361262992452493986128366348418542793481574279999198212263647444628569983974581325591175214124562192323628728487736977297811857286938625465467834182682195263656351375878743161419332418269779955257436891272791761428885832578628881183628987415816179379247764959973951228985142674526746274981828545827335368157435951734654473979752445525913765149546868151631777646632436519998325834694629691853497345919281553897674899817582628157131942894261334254421959537925439848436499875324463947754861814463788193666954489237149462175464247469966471979477435184379655329445142859537638826155862821663464964447962859721872224442783528398768485636434888779787881287454389379977299132754257572258335396852699698589145993616263718359423539916531147955574219485372951168653896874795496941975566997766913782726542488529768648198154622466385594865121994473926222377233157279675849644872277856971455433549622785653491441955266694284275168853935212993168257431675866516387997936989952221875194324381895511928832428349648831893883339673757652843662821895242478423845562913865977676662628827959663618755832195592581655754474366316941337876394126536764553373455833773947744269956851492485975777469181668993292396832548487213227263611998687542195643418117398913294696461236899441477138644288673625342665959527349276879877298587871463678448332482346223276783494642291295541653486913151713685758335689247579941413339925889885365798475541521974672589522455649166475246215929923718698568559997567498736354578416382357592867633342794862814583522557378375355872359738679474291712918621337971627245465169295372526265121876932273369221693147769365844765413275299854595654821288646697618931271779689188328616771656474934975995151335191158698482995772144793879791166977594198887399838372792392369383189657148241762932798544945188269697629689939647186526977475573232443362883436621792957137571621881534889856947769585627235746436987265648332759754348319368735213161784255553141745415349483716887337312365482759139776864585763941827618646686172399992378714946898644461215522845995332517254183292776794949716291775996686736648528676563471745436575793734882588168743358174576359765297389653759866925767383377183525315492639511451384473842899646257451734448495351292184473974468957219226411796675715743978177399413144259832632181616749559343574435645263419369685712513221777691961267757339751643219814285931587122588825742937591915811198127777911858378895645179287141991383312418492668197236497178675437193444842887399528886925152837164396295389827727689725323519684452691566391996896267135868833645929152791319544165184547491269994866514277474777156651985135771625245877225366239913639785777898273844784978252682979893384276193477231877661699352922323156891135391417256433437813546592745234197824186568222141845366288393723493626853816469787572855698196183848188245769479273899652434383548129127241719528693646864883959122373599699726963154399917171443816312915979723914595583643668945587983797638815883753933177134148594587888811893577396389894478492894673859589595717566492626324164672752916639161518983683962525696718619219179752891979859887859211763386133773622944575128494967239273488792851991262518782493491275758284953574264622276958299753894946659194986771252569668129816789185576753549429319138932673629755956299339963535877532885587154676455411162852855837327512292752286144134622975486527633234347652528285166638876427935984228866619125468841523461458355967842752999314389782519578579311848861578666567958827884187198741398514217667244358259319183153216712372456822389891992916548793748518554275243383377733346473193662999328337963629193828921432463844562453129615441924517798225773149845829419981934646363789891927518926221848647728815591859492982918612848667859796271259887922476419395466999962867758773639347527512538249821431756139865511664418636854471281592514478192581727559816582488831981776659887936662773277396971389539195441679524229869277219574778898812947824679779689389392655831285696461212339136555284664777174987897632851369566927153257185667865987442728877881922923651324562368897259147667775567955524782514828576686899133639641147317696752798574636989223816467612464775155169319411996362636638991266545113726225166863849688376254818644849218177417317487142237777164476539157736556996757628917868135687844254533122493395196399422535341429416355919238838882222753614314441239844734876477284988693926421495319533348753356392179938897723247529413776689977939896647419121866417927714319747921892279663861888579717545697877966357315749443723257862492225243698721189331857385568584498348851474764479969472546455264498579446326735268352911737761751231744614666192852495559311669275554865416632197719826695674857953546267657134479463952473988792956329596551122389984638674685938669987557789229721358669778793558269592588964712948489739674351987494634194964949349888878387914268621693126341168637765779279491526265387138775893973934886456722292634915584594645676217987711416975851974396646155296276582929867616758567659921166974856494895117443176329161237596826864375693782199673929442197546443971665283863891638819725731482511447224389629443754496421716496686656132265723228361878824236399668843467382399776311892237534953112781224158449853542561141346494459724756944986551589477668366442799591782311551438167738152589193544274781674662128843285777453752935451931193952418462271234652218595256375453733624148658632253696313763887795563923746767863477158691385299393879678874284668886269726234596743948758493284794617485326568898158322584972783846765866715661721559238967671454445524968254888195747716567758557636389644778271111363177298586993547524884911223359255217539149867587416141651431412199617145868827164654945338583778888796814176352411654668376623149939578636251286949699169292322384638623138932126213813156848398389496992316768619579166793839825622937295451975342741836272688342853639462636496579153514896464846838599419971853928857863219482882398978896828223918728698427418475334637669855712471686778861524569882497799117436859179617642592547668142388443916746551158437555285584871989574982668542688198584566237446426931317638427286139316125829573791736922462911535189618112632714841335794872322553535852473729261151714835896666955426129989819427875477785622683645285227575986614368245688386541193365916539789874615125591496764261182433296763783829656329394752328938785675457536512625954831175876911152483242444344995543372116883553927713689738359394989981872857549235294377696967716818994488155374478957633699462695556496619357285259721472786218658893813919973354278417224515412124661512581318472565348487297996839472538982656883278356847875318948379169191418872614164868519989398376268354674488688539795119996746278395594525839674951679575623457885496439676545412132174682862125477822364889977591915381374811791611831597614887385686181238997635476812895511735993485696136928393438521577962678951627887898129773437253798599255999257325752645277777546277634133282766381572423718973865272885998492853764723925379357334952343641537393342321456454919778543682719929178268247842267813528568449961665221649883189283389746658832945836678995846779737274411723145364798267772455612198692417617786721847771637518699821463273661371638335925399888687635244443716759131591757816211864846388245553974479357154416694674931424756729281673945926882248758655173774229532747486575689789799892995187624356165817796698658392123424215356954377685686358817433248578854788944545281685529582812194936279538751562867833688198247697746781197911131455349939868363116681668986851269946939279157585681297274613472877725765564247154447753494428396225317454668767387829835214958278883531893569675413529827727723676372917356491829891488597846921534231138869269986926886465889242884535732763222665842877219475895867545695211459144519945137638478756362986986954721487244634535799487871893794263816982687456984884839195883725522727721784316397984655379361866543553384298895314315177313774991828437337185983372283265447899857223136757493851221557156948759785832526475769636521471755436184677974245526799941613773196737968727681798888312621451194591839117726936846298314457533381223717375927212326479549793719452878918621769243245595623689271236119318733561543295356959353466516397854487828545112169174814224689187412576955546415994382648552912483538169319155842978364537684154848587128954889972927294295385227864899488335772586742725834538785721948846936992181682617332235557997574617483978694977189481548857243856565415247944621856133895837813675937136788572899983299735256316498383689844594184686797665811652494796112414285535668375853412794358764269549518321696564173817917134845746827298473669255914638327167473964148579216464912132345546891864199517476127687855978419665194798386594739158162478614173193549511536998776599478869443888841472458522459725229779734532688327724685539348928643897652521465635688639471755238213862255859175449775299885289632287186993511438759433527776752983128371685643139397577835755436314332184665118546887536133554285558377453293255161574871342536683658596658394495986968277121639257269776616399494833466363854579174493791193348499182955611796917148568338655339348442566394278823821728768657571272986233732937989833888753566595412878595132189623645865924594741723756447569348985963188676791435755192348454527361216734129282734316447478819373848332421985165417311161152347533262288276813789542865351326752411928851514995772554936977543142887733764954426484199682446995377989996418773274468658562435515361771641866881794272826618318978752186859877612724577392538968379857339228785361839977243491765439352866168638757463483777363447896751593644489471128736328359285556144495662824869823461486741934845299799526138747132713859958611247386867333286949582919326757272173669878765148763643164813439824915586742883875468598637856882354355922911997462263783186479632735141796498449119968636868244964214666391241636979848774996596754198886774149283491869592329883723922134895997563945913198265687986336133541413819411689356693936984432644656256845283477567782715361822472254957496352533664618876473913883757285916617628743964989287345754197783472844153735379549449846315563721688714924317452466238136775764291242177573449365391635523916196461549745651167981565675597918541982366395632552745767215958779381198562886339134663731587886958378717143111869369826568499315179428975361373294828279943813484116174748938366451383773453636993198393547386227257745326432259265394688448927264783644387752686971413993373378512559122163993854184341596463313448827686143566547628935197695471467594143372732365935859638788837188677824317671294596758859472573954213768489887921489741376433344648739521117543825948457739367419619775864269249368425852797685811578528733211472382294882164832377288721585192116757214192497839617521336797183347751937594915844661811544874498928759661187664475674825876457379643149466129958746179185869435225563377625511342261984318417252519898269322739156966515255317597239155977135178159915555973564411989383688522768839599898494588382519556255345462532846257864813714546995429287582285966999153381832816499998112521219644856187622217616362311326768854874282811968328435824195279887673846697853314418865517112221883911414396464981938221646763421947283518939649267985774523116211727153229537636792984899919575856935822146148521838772441379153589742834149331829811814548212822477221319938554969842966343442623638557338581747164385338366893584141637337866477855359635165618216126792191242966776847574319986221222537848687568866673571739982643499182237485626527549311697634197459952379497581255323893891851332748592644525713249552669811758575918688613235292194967233629398635237666478314635818238412373557261417239346645751363961588756864425737674385188161256252472118379697124878156711763422895814431651821134916335891843297831834178467297114819837988637227826764142344448791233916196722799854682367682816715958155776866941668753757376471479313349632857961277783259134851679937277195197634916943264571247295399263188486638734451487384997276875675169317838711734839641431564528131913469234196187283749916299468536682183664833637939569349659678468727818875812381797379818216965431297735556817221696254549124589968974312183612239979786549448243521477515629553677176441323597993698967234596635654841253711358175319558288253139699254743994197995146358555721544881469158115289128938698729949158423994613784277433343712656664823187299448719782659652287573992556176744273876748353694619676347769985543526666197662975314733283167656659963482754789681435515854523199157938584851887573318969972956258254566297696867132815258411547988145381779175525924989976562898447498388523646936286975186229833687224742353694783835832573761975884256856366864792585428764399611772389488575486687812353169276127754337385527573969125474559432126521877878783979184886354355564315825595395854321392456357797644524874341654617938952966633382561881518867565538999519281674827236568825989424531884579911151497563624877672278733892886744255415514585858997519671451998363752398211262875337735463238793455559974947273451453868577863536552425976596956741271738325946613855749443881367648837417841978572358189847124856527736492121598417362993188129133674779646653388749959962985783993448949746159341616331517788546671349249299553157633821436954841819595791834618956166732214586692196216519214186223962386289948769252583831964186757346482437186745313834578727372227971464467677595239495336164598374929525579515488144129918339584183853627957129984987825652416872874688687775417781717154246748747547593173682976335184358398682775791316266367188733639299858935612363775426136579331813172934174327481821162427982588792439646917359741446374382873484617388334989143468159634191769442291984878825978292192117398517459922474871343738857519584859731818931616447242777639596168242587644479681274375786646631623198531832433436344289172879789483431757831829223646326127822835452623644963515566831434715547377767376294255629863487837122698979538194875695568262341265843397657926362144764771315261114469169639645742432364375347162925757895189835162181814984632271122332524962425431357938534499696116579733854658617539786514644311494752168678776854859552811318137898564923856919181783766614857472667446148733478785486686526876964246678757888459599838544928227112232937696879529952738584829587784888951813378984296661892167567943138744462723874256243197942285316416397284764539435297575393681177298664643869477518119122651736957248333914583983222739546811496872211389218251399468555448241955975266727265879597112333161158969367432487715895883925927513749868251846624556724213111814554457941741783236192857595466328651286148396921529792238532356725284449244367187376754795773865154224462877655581797484514231499899681793634685368854618863298452451712673242474364982392942492197579927444341724894523228149195847159866777938244892656166111761931856694951657951561272167176915476244834371226652931472296479672962967695775485967964378861434382276662827585555927231285217536745222831284489631883251679575533395134641285518669167931188396314483217397662885482943827656118833274942832873335378483736529559334253322693966899267833691159593238677189286664261724539385614683542722568141631413371336662173721696582988335516138215655897976618975847444898881898999259299893435957344792484174747357924822531736556552756553523432991516512679295512652495994287154141445389468991573245867452643457434395363926392886767949549985823425482985763697726979455389285346954753684541523493799582666494677849786972979786469658876734654711975156826955765317557297686968755344422588629752561656816586323841669234141293881714318148988356648696989778543829988826518442159875995176567573979734585411764436161526583578577177949194635465287889123861762489657754677535914589357667778843744849266318416382984814939545693227985556272645246358878652521381614238635378775796712424662127152189292561549396799553616697312861183963152967968921585552131137151166927711847829184741692582957937499164448285535499314257128317544862542686644979649847963787668327941789495388678553314755249183516597671835791564797219293883976195976584392969363373295253167858234939356466897258591399192974628239569353976182377458486198742866215155164667192429677572331438773119698583253875269785742777928977565217857842398298489938359174635515484168817935968763859889776776733567322349658961238559686581719495166266477256121556934216485163725174649766331625361527399218965288198338572653746989331213234838134858777757548347385436416417851848757932446849974764454696826627618399479152878512319278198795134424644317729117571395763784263898426871833343755877988185816575457386713964581174366545376867718129661947634637777333985711885416576857181648886299347973319175659857716973575699884416812466738766775941168529147612767384858828981584535279252887439256986651291171618752681976974634897171619196916912766197565437882831169829919945781945888394728842852832282834162614588993353838131338596337193997246537612179642667966743882721252247742427235769243765416825947354555496712781772976619961659689492415138149789313367633963622391786775845832298897474784433557123933494588545866785229331997337241612746149936673144278376766178794237271374573471394867636125718654651237785285963595195928799365869337756815271396492359691764663346946834593569946355721693742554146594782485725881674126263636256114157995534219747642942761997811912526227596259359186339372842927393472416813426488439562776352515985492879547988419573399983125466777595153556924938679672227284337239476638288374342798596624559785293829121685325756139473942726788962685541359975592843999669351645377627449726485281726173819648676951377298862877299765495493336364226941556642479423597591429671957245986524669941975332767937149841375887717553757876136682357769847545546783356365597274511767365871189166196329444155268649954784666532143573532244681449164958494239912615124594841615713233923851827127382925632316817561761121627553885742251625775636627271138317328959813316362767772844567655646997725154815822859347965991354128278799565965696374662437491651299784799478226523659989845118643667676731276977676217193422512753437878193398112413443955113127117334469563355914777748126216698548735573522172726969595226443811785626176988881166897933132159498649212199867663419647844585496972417838825313359486647285132615265135779596691811166875517156593762325683892616139476475243664637526753796965533674863776339912756282445116129498672289881372114416119557996851744258976167474893952555669461985496677821921682842239419915539257698562251682719253528854599593969655994464349711258956875398443786797475194742313787558563899514944233539585177429819665727555299357917149915915317563532815563948278219595339391183335736776979665859342335631812576663947686787918923212135312618862351927397865696664593818993498465974313965226292416419811894314462678998916725539999757813688354151745549387133426723425526398595986637872157794151513555236281958335124632361227768841941673166488711684416933872213835632834491315744453743243426672543823454795834125451719316885769172453718837899423373489288774727627671569984333782182598817629459557246942644981914935689528985312167786631929589666966818379432219148582392692921599627463236522459519791482298957248357655593521687929261785946719464522188153261743688176218546178968832649837299425821918936195846634713587395355547351337684889479132169857521811172163915428255515265685846599934986298825411396743678282855453935875798693168979638199899791596617558459951411492296426732495466829244746918523882957577567556152628378993571665243282739862391653435883346968841276145563995679581896499999928767987262546968984392699585682885878624884183927994956876428537888953643765619969753218223966717254599921929489333894763738657457914183874575545677943881722157286121973391199625213152489164747512791943871955513977233453561119646951579816728645314352937924138716397837469898566454221455761897497197215848678298779291843542738759999886683499778236475538226436176661816733462813369637539616959697755292958883352378774129989566722164179527188535897739258813964921553947788249148736537268486782291142626933869676716426339683927988598648579373465454381467359949745786454971395753222139968296184882839257556777252781542985828964864651763138243654343378868177859156365559618997876216475753924444255896196741679197972585475318696968953346842797363565935736817396973377359198891794357432573369733235527848496176763835163632634522873173896377287279215557375313856162467851624967924286856696169191374876869668192345539954431132666793554993197185426545636872552231841895792725722658897653872473448539831535558351478975279554223886751233288775899288371288332614399671293568916619691136673825378422788568433199196133787752642219214294349261992239489411469247978391376169995339589232582738211757331573994841739914799653366663857465552789996898826778536556658942624239197264245385579385435485233387664232274465743687518517852588594193982124147951543795666945529826545473717778543778459245276391954269523357677654888257235156225987416323521138771978795165938387994442898818986572431339625169892656661825664544928335191411336226456214574723826352177946389299142129323544785715861445944625794362193593745273374343373611917464582981938142961491355518417335854269587731243712862799572897994766657329389961918324999382828364983739117274997468137793693884526159613391698961729942821272127458571689199358667179984655569956684856268337871277184546437146675929326774778322895983786759998751656398253176482397312729518619177393876873361244915721734741153349163979192476712231859731481997955658356434232662727362787543318895694458439446692351271932936941989112119813351237442259596869269571373359564544471122198782631235884838456884762996841426272735358156487171438857393925817636799228736527967959133781585136395926659668411991166311953817183783457868682478754337671217459145361479544419549391217654589471668259335481728549493595446195859519233912357994426468733732625997783987469362786684994967365449247531631879164637976299771722787913916986172681896479723118717863212381328942479628565317968482182369589593596289556894273231582878542279576967543395398696915774153477971241729983711566714152837847112911535819334947564273713973264447442733113778391378115561441624387766464827886446893479968828277829955444996612359914262386954517434589461356558459549913346553581683999795649687759293278237852768233634338457896362943223631655176994155561153599441735375463487648417265693733882392868967885983585836941453157947328192192639699394738565888238286765192989487915173985423428748476168888766396234863495817188159927635672744738378671928414999266597237182828494722992389718326638495189922945996851517347621752934941139848284842615734769814492736251882963652941832252875777769324611156545426737819359439443559794482499635863495978665574294769459523668879928476857423439184392817398361739475841747415984255211224454197971853376688325237648521698831639258444655377881291467538488947556362391286365794923373195578267799378676244857146639748967141518617972963991471322427747496697491354253273134178863795763175485461749416695863148562359576643727596174799749194689456416439619714755712463392593999811823467265637177845718555914991313462519962726588521841384981138765398835263932843167915542625966333911482622148598714238138789481558869775449322331316394533867233277882733661323233384153733246992394575596351782819338243856129551292368636646282839968519389783626765261587774889958857453216559466765545826437245839276973274123142557411938256725178984739782877241951684359325153313269299614397788215698441687861279953179839615984131828868937767386134712543978356144534515269138565567988711964356821666933973487736578945175384747833764126966721499217993974688816331814211344323753141941861393849813386534845413484476795975289496565976746784755658934539877989265417715334433186484563982829967382575472138656835156326525356898259233821142697183184112515722788845243995891997819578636319142797619483742225561566567221878278973341317797589622887776194593139143732269962421979464286699277159194635271193193498529391221172729616769191585665377873131634581999522294397763628245666359282912267258873749779824631666792846924665166419176673291933894358354745978244611677882594343298687989779224282947251414982976272851195793587998841297619418531774799111691747874288164467224195725917649739565148497219653175844539767197375283239666843935766814349556131748786682492533991631192933196595495615833591889475916535967356981777868869686741191835341218127896946658949763912479255678799585395469158116784373791392549875553147966822669885446767564974499485687392765921584446568959784777239361894212822411216674926464536329967923962551862437669457261147855922997338468546872392526179664331526675156988356689719327739542173369248753166965964815726139724896878173939485593927838362196872471918431752239479652577984668126167792631759125569667126678879752263314746252726181927321995742978921995235922716445989296453159256661966774711949491893341635386187343912616225199971799877357115549946479256435991569118594244612667948795471929985619161914229542956416716734579426219363765513853838165836458372664351133483937645928912565671278911644993747518384611241951546396161417478824884353791117435715161532532241744285499521887851168146276455739816539747879287245577647683253667665871378421473783159535784488318396988239247367781575548916515356699687346853559265952733652899258123989691596135767858888551946764751735767589895684571596182925135846857382971953111938319294928322214658681516843865158324263318235297158225957818365689156366535155543912943244182239531129689738456463932799547245791145562557578845197457456948926554665177219754273492596752345115921144539896785514469957972522382153658791345468291719648923941493932536833375944461339815599738319222251227583186582922996844181428368565659838177443418854413685992146296819769459465531992249631738592965722195766234675695158317571257688773889594219943231273218499444119358552814246371283334198586589569785953585976117772939294174364617977641526986559129217732668883984862956554186413576258184979792865646848475459948792441656671325317392447946625126696584249926671165984457823285144511718845333631941926717455877415533433918996125421699944538583898512399135122954892713984416632851239542991478531899413171559547279461742227689567169955588244661587751955897565623293371173218432518917797812816949858691274286139798963555519517852717678837766318882299862966564684731554651741831166281978833178882374829971292635687471384244327232764564812167147269958966399282719462746615972431474522147654824561894449822844295461983582546316323288239629859469181835479753898878911333259292573182885566363255574837561717179193981418345838941199644726976868948651145297996486441485999133553357835352848857136566413783955927991689246836457698488881628859391436391811176929918629564896399653734752566194975874596373139662365221857621277143258354861928167537912751475645644623161267154398715113167778876166775126421673365276386461788747659197563443933431187517883727682577956598864952339148558629794347757885221239687669229297941471913526328714577539184573549831828672296947166181679841818876947554523313384939169719262812489795749785982334786272358918462447789426734927529756765797757888147735343365688272964211772418417665242961642817674527372833369584386555874539235552917818469849686537933813689461674481192537514626268856117555778127836554817456136144464337996292865952618714218634759852267317286497252988626813191393649188158665632631231229759857877988898643622899948854527178928497983229375794787548953931327454429769811879734652547649392476299629632961986966428752837159756466613529888619129192125479625268874852967846125488868236876671872767648319189674249629183739237138167642787247732861173361292722859418253399679942686172596793441234897898871568791134716689467255939722458192347665298691791571986321249285633166237761625183612895217638571459596988891151796617838151149429255445498744282392385585982269227279757239446397697522557275264237461524669719146656447492768217495516359394834747984262541556762249149419159698623586933871622885515144271117698573865159595491891558284389666555974572315893572173489882687956387191843292184862769676877698758371691632326693453613589333655459758626458997463732499615897199528174773475818936636876385897374148555554269562358396783484285192592491892819398353572887279536217316958938796768416485286164532664339958834677946571218757189241274492274963619578532576575178247773684856374473691648514556637224791873867512622522142481493944289586858959588742969694864364173661898432738218967888376313775916272825426673365137552499298488613851864994289382861968883711776811251866295973121341496394898291958596881724298398887746734597524677813474274513241574944152717793726477542911319533993255499428259691662524455496295846584771358139735964239877984447336184497842979577331679133635358174894752567377184899948268415555411192423858448585836253228261194144137569372839594671255264145467697653299541126913919834164887473418885451568181854955635949675987659255437293894385589492368674588356884626694897771542914255721194277959361481497259537965387492929199273892387332381629716686336763179798747326643315979892314756919749754344355769993197796299195585514256271746348145997291434324573764627596151946671476285153752557364679349838649323296782588479661864862228687658664652432713479514583189989491861181581981956246938626543134274461561557511597773741838942398925498988714318841115145192648318925272544177473916961539787218249875552339358538376968187214859777827738674188895893581372994298919698539962773975519798768732997294962821698687148821197515952731848695999671738492215122256778926171243263955599878877252757156153662168669888994463181391485779352545864983669644133522813247758454492296181683956298472657883943596339618297744478887799847196158138288888538311741532955827499585787384979584634946776392156425749868938568123995973691396615887778324911244358786428213694232278542793156981864599518357265342853125384536215551715935375399655425346236158441774846489686779857215886133647712378817564875419514866534492187257776464533974689489488292855425889389458556523997297764596669726759348866363986695448877715158846744667566463197729644985116518299861663772638357793659211712493751556559119957719743153724561555439952495384151369498818148773845181234556167966719993764791864765696664258971172882734564124961821314689122599985349724371476488385417136375676496555685484583794682519438519257589648535241127695418531277815948592111532566539986311249252531456469222183895264355745988586945174677978379256987467362968915328364975495538126114796673655937113833923911451361169945451586381441682139925556379879175466565539736882926921931889464536595615489517687941694482757564234727658625356395437676687249131571894126894522641484443412381293189457513535185154484531921217952255838155946971198348381359916987886833575854513477776641923668732877888271487952813985193817568969599719648263433958231585674611121749842855811553678195695284726673833845736274772531835223933928155757473896255553387594535176851424429743934837943727875673223736151686592816143113876726561979335586759645485583274558671463842629245981976736783433699464473298284818112529464449239795674992798872949713912411431995577196184572452831894143561119367416547112745767663985263378589489644623878675397657336123533419198559322922591911441562314887122718518983131447458978855813481158424133796329184994478665158943871846214172797548513149979133114454247172869585485757863112837167242845849994736483369575524113122544976417653965994428937759462524958818893854694761889188773657837898159575214429428419919925914538626722694985237727636996697936683479691788512656661985795217362393198991122878657866432936735755378565161821636197963354859486523219576623444226871449917649955944891544571233481469565546694489625853774496357958465388464296169126464175979453345297643483681636828799255578447647682372899494432673451567535755962989367778276865878752583934695773393341859373297345744588158649851881664687519792738983483782343541413288492438332775676339412297786989726389576739361273615762261232337562754611972796722874688843276549564565111175564229785775955225226697219789513713599716631493445785682724682283493474551486369598572814248177874556575985494587858119734317489931147361245489766592684113871984156197221368933787967575442184671938735613375755974234378551813497181726682252516137684184475142891819963999989988598894297752415638416847729228993896888614523328469732593777931814446626393737774647711737195978761639934434456836838529793686925233753921188219784254525594377479241746937217845629244821417393648577987151128721389969235393957242267894216884744651838757892938624577516794277984427349518547496992669967629193166378368499968868684381531618247764655513144211838346538493742882757533922643678977372293488128154364686226119749546947485747589823331772983216219787875875729965164635775644214228353974793647826935651433339612475114419693598492131571816719791672692896513614486636895326179872677138458892875216476686817986766697212887549965664138437532648297132785896638877417394256321777768898657917833997944884476212733626774918382479699933594854399219499581765299754175722982765597871163377846918649444899144544243775129972113935598951566523739181586518447946487946417778918896234445615854464633964789568412514758954517599678888626441378194398866699538851951173573742134727263155869375623255887153479838973498414596789929214311963151883447154419797786624413815537123185477614577118853447678465154799143217298977848272152274884227717243481392523298436146825339453591186872967664918867143143826494212954123278628972666866517922863994161872863665243671729924594856789873868153125857147458185356624834984588243614471527774537987743466282588723552336658835631165441727462389148618882972736547594433328747157764872838451256155362539434745191115557865115972977147712756771394337835684759177181545257946225168944781531998113542154276863913466352659328155333411426596519987652588772976323355749299453113431793796496997775888479888217174882172951524977368468493536245296936182374254215954438639988513364789277799296925965231758387949141549867972636889178246561744339956523942763733577977743241491593861682415956459682196974699999361894798335698561712411466272751365657631831875114662969119968594884436458913272779213984548861164626824859735434794567722216644272536965142279819647159356275929658945123414681141277527451879792792311449966443468744181265984974615756714746734638649182423677832313216518342246673912886352219935168692469379989998255853381884173535865683986783795386975199836112371699625565654596712471898182821285682518912293751421469676937763769332715584169265984635645422712554494137123877867171954846288753621233325322976842764723436957372273732375134759579971718998779371915248295183269894617687891753937758577844769482992692215373684511645781535119748546244276189698342528365179797354139598798737561785359285627564871675959979659229356823859823611851281374828854672885398314428368846285371434635882689924794914143177639138161487794963157983859261339477558429713579711391923991664342792458144742663985447991337147664446466691557794486124384833697393248948839471812452673738418383613169473437458879148288465834622831576229557381176277438418127879439979688947963619765254457444279676222365846736596591686466524558272735336279478844381374441744528553926538557987589411194285826777573886543446111693724481347446999269412885954865558755533819776727542412266376733175222798119173692744541719353595682556632363469331697337924717374646397178399481235346329338266577538695246833642866534644955674648827567362554718713427196513374616374371252378782426813436958472566941878224716991757593818664115934358174565111988593763986171723798815157485532657958476939854174479115247913598712929512986917827595888157187534119797386362417961834487888211645346463556423143212324888665393275785571856633624399636428846192943973343832194346829818745343849967938898874596319851848699794326174971896818812949157377327684375811863699168435335381697476912585669615826379616719563245891753988986428295461571459616727761595281544984126138349611157864224623726898897762984849881238699492211982135539829746393751623267797744232517526788133464472569413935678112827284566648831432689799467157397469484328556951277435998114112216577395237138339186431787756148573646457744878188834919998845541688556615678892174173127265969949244441554277435724142285342857836641177865559789572798761668142231897747423899137824726663347111549397795945665729197136348882219718317649728529985378774257993795476295799586961169399997374965169155683431779337436998429616197123494372523327998192292939941778681879596783975569677968914425637629233641989222713463832651476841885389577476699724967852113387617863899692916523238955594965389977213473477744387983211383793543281273166839134877839397219335449235982254191288161427232379641956696449332572463634153941599398754993158856425935813839499112479481188425437777496957811974334173859714769668995619545459286965545335748811384428617981694319754926619893988598144711924399822847659922364583184488986179575234749667182333698741321423618478737888456877643586385549129675346965419762127221298171744864823989876446619972856799978915339775568691344279824636616683139272472664328362564559921888245199712288756121299743992298263555195365573165547866668993354946385981333173886812945273187699938513955173934848859199775938168391585753571913521386133912812842944384914864554461525367871956472953239639369353885642526636594541762282685235765463557973511233526762863387912762677472843483722516844971585626879891389195289385546224921177879916867556996732165834664242588165984366867458295835289951125389965632231939432525817236693342731912542639685869778836932893793659318434872878227714194978627692824727987664558114394391585814619556972515941111791436119863625452143743132823951737516678147294492576743416494567333743476182679814446156641859588674151915235628599269727756194971359263688916658574727293497989467593834686993911969758616195977781878295827295435214747751163654366556156964815773862421497563623252789758321936333123481945346644519531984937677527762337431632276617791561446214296815146895989483657555498876877616928416148119653579141513749481799861714771875643744165383849749387862348669915649852638869991742231823383686315143734958549769656262174896998678916673364666855571753512794643558617489377159958585263567118418889599799651269178587541594862446477224999943795467394937132499393558798513926949831698166984689931485863368644554458937788982181612691177112281389366498632771847889669151891887994964574161142788475387741122753938119269769563694555213236127481639628481571927184744269379791229648424311396465881211479519643829862148641687764128981535461686234767172262154816275449484121118176338875389193269638979825586738469784467662638674962597395385524583762131179377684174446541692373252393149719499589751293649165657911286942453677223674645962419949193197246523535753263241586817118496215479689919552562163782587881469548943862135428339444813299959739833376839487258328321327136983173762831975575611777749155529726876135155768561351619835985825552748783434467458168939478274758817284629774725846499192293575473391775731769124462794284894995944911631546198643285728446415753282585947789688338287474833186887648719148596521695593584221189368998448444638417659497733414835949362615576335221825723711366345552849756886626725467895356755243798494445797668316886724921448916461791794898786864185795628212861293629655346954948828231985155735284266949445879699524862653329466699834696666645426879759588645786792282623849912929753781797155947973398892776735478811899653551254326649689692474619916594394387593152926747983783119126554316452433818951264198811752292415882745568168692497798893353634774673257538166522554122799351722543775751647347918865566328795268828522722512749385776175358456166263319351786257341518714869869997314579517726868452977875723855365875658745928696166179162334242367276391313478895113435842468536697935374383988416419382715241981948599157298469186964359317457645949588167893132447876828848475395363599319952212352955365255213126763195336779897669239359697639225765872686588165714379383154157385132575486787699185857439785488543368874142757364631537554685867745533153458872795868447896762547163382425188412779427249919679897951598138962467669468114553211586238188663819538785298247628582755329677415136578632168514113475342166168286889448477357276631968673144534648387163377239365744363488989391524677642482579662697753679992978631733121579993117539262259453815296459377346375225967694588566533522929427154237526929564818961122171489195661454446491883588544587575818866516642561334442766366669421125954365716458831875788625883692222618248624854852591786389447419914261987255177921768416374253245582859783379478755158859235897958164691998699224192314871886165466863539884886186722922319826468744998496864576189145456357158561182642436559359298865179467576286641238655726586915664717223863529576492269219719348257651757992853893136519751182972544698249584852361656615221146254296718791162435459283535188855855916871622825236783952838684249434966778649268146189463918624567654467543558338122658994883918381712518787648339999931345798137385773597741877493321679727929656812181857128525475336541657321337167749796957456829884343423726866379885213429925775329432551188949645483863737428513669517116789276339546379785353826692827663549526723536976584926869331241819511436433486463867196329268777944251948823814831782345431421791869746741779256628339973794877434882729927614568949784427292784973528245386644819315721678215542686339193637279434965911219869577847923185328541422778845991553478187269548156881416387797258642637838399985859185778719416885486495845549664684111825114245712629636546916746289642259519554168346518328883968577884234327869115442592481868368565514238294474984867283733314594963288954748735928699759845553983647145895386916577192754867342241182728761559896248916336799354934686274542312383192878466227931997241336997773717374444862191367198922868925167219714252356355772229539542581447284878949161134864295581944171171912376176694325483692479244617242939287132265884622949231397931516652259174779164491171254424459413287476997858284992199563646244494555486658988415122173661643385571511895289252819478411945348262713468797736763145213121266799647919518147569161115281613179629218447888688126489758865178962664445274437653578353718275378639332469743368868836464592499841883338513415797819861118357329394136637322962462378956752888314569234876552933459948155293886334665499711345438619474394429464849936996137319449374955478796191759945454953924663444933794121141944698635173768715156459233191532936792452318469978372283937215855463674171526592376725979546166159975393515139668638335689131989614249552422743828495885256744764466584669984598571117736711397761186481177835884844649572888934639888239552648974436532977972115782637922236854731378532855594814143127826465555681372961841645361417854472628489615617416737786512992924836899692999952674945164719148726438481357487494863583561932562685142957643535975353569176156489435694384831468971899943759225695495921698586639728915445186898494173664993676894942747215725554248647672746288164567283841955843787271274932233665972897753571537251413996513974978896942654659635489897554364711723349273134616253463189747527489913322884343795987527912545332699478569316417834348858446475892155647454863627994191475459638123859975165691865495362186374751568787646237765525581754518876549988719388267463138464795658895896662929157882975265186772872215559376655234969872165199121667219781849499248725193966219261832294955766397589383296964758918424193934795132167991882811357231688619889794444219844998143475624455363388929478873525494655918598293368254199129157631167454633478922592246498767456282724998763927272399355694998999853984842177641879489671761714887865947732652355241877745971817188386866586271528679254697865986893123664334555128595991851169318656596671943479612357641127867885926164476174153963775126558272536359753448473856787182254459716179999658566245637698489571618394634798784888129529491487785227877394633965676163595113926345273617881618428838461348859985481795665732322593636819318968224344169743899254188682165348664399544251624652245354348183753815679616428943429974462647948667673415765552551277826696819378689411541977459593535892126388148995912154166424231556718775814794729911753429142656693288716329791595955542333861755896421974954262557136674865277346894395155758126647193269554153861921983895545363456138883928126847738888786647915786828138565494354529229588782623576932554598683668816866919487696655749961234318589232676567749762549347914344973376432969879349211571248297538145874635718988839828138673868645695747152856611371828445684439188743747947812951346976543724196745146383683856379846298667645287854289529518227124672424969787361514778167734541539446366859859317929927755639862895693139242876646964259428727562556658367332968481795716717656673279247435519151349713782843285518516267899317775954477869977975449284449158529499123297774328173594983187392758743933469837844377916392921937465525169923891298371983588411558466129526475921885786678379397788218557777185238714973685177244867361348924274268335187273227538641599445913176593621464958444948597639516235183486941496545895988649749571414916478613143887334385178556794283674654115999261227481237929158374994839457446934629112184582115867381115898181598668284263399457494848846463519918642255977635596461874779664766927587414763688431537269215374939616484715294455955388432132729387196488711562658693537918456742924214553122887765533723221955626195117958483888471156192538917822697477159923185417734459994858913387299489164396891264842313662247126857538989498593643787882743372122887514266768498523348899265923916159714848527837436458974455138141644767834619793797877256153816486847863821295637715354419447945624875274218144747164371589526211583617347997637628784591953196965895914525161412164187324662594367519716436226973643691728532957234449374749588148568513877215539441562444117397164474834778512529598399929988556954251462196832772573591257655984789295431743252563716549155245519834229253637696755848649687859784662996473938627258943683969538576832224865385529638673267917518464972638333223434423567978163856369937983291762226299237238891456389362955167584674794592673459586584445375695847358583762348196683236855797415518786383899357671284953668484169995385398485673832757616668325324977256264658237768549856788855756259427267195779464915349787419841748357576817628773597693856649738772293947475439677667232589889897339275348198616131887536577754717637937457395772487157693639653469378565945596765372281357739764882455492188474673189265911242939929687437385468748558764572889153345482545863219823627818769582914893979675634825299412641538283779858831763275663416177464465128519693718638637578514558731991637388882352398884351835882323429134379874229729882414672619878263874897364371812485374525736895457648581887781391985277445764999389651394264253888666562743448559945861135215385439539638454896857293795415268364772127477435786258738558998552388457281864946111185218195621449767366526288998529797861132741498997156128889998893976554643296332796381591435633418566267747567152191278977627776198614974416754874841484218568936724741394978964565759876969352959667215127997841113747777396576865284613853618363167619863617764637368685459455735299825672419415416415925939973397223774197747872189927115688373282271477131342879834733561635289529355566746857385849535955885176649324938296564344155591499597386732223993232237626892219768154234658675549729551489181976272999317811566312736157519653347576221888896947829475813331728591779164947673123554419382519779987892473195326937788172957887113386433414464594483532828415472147776582869526944849839398317579575935853469244331596594964159831368684988651655675757545996152841694193341232161774782745364581626388711281795419313569643887385352276299943689883288668434299671815418467376993955893327519213886537215824153463698488162935577529762693837363436414852518629765776875264163346979134266644781729818674362367157237569618882675178287319545331427432357248268158626652723362896759156911979866184293983941848457599772342996142869396869537231557867798884649768437446933179375415128473369691664611741196169732168687397552143565894416835851866699793256931815161933581718358746438919381437379552392979186493416652148823784829497276188151198937269547179229388554821534781322877293452835994174342642578792295589921431484824923593882914726968587599399443763942149365885815854948855419194398171837329964926341399565987673846511489515944464967481424219463416992231389831767793391633213732152489197188858427256895743594597115842185163233688479373719956113953468118312342274142151664172772696929924934917391234228794564949661467139328533197447324525938953629167425672868154492465885152875691156225558517435249581577768477389126138148679479623211418656237485823331117534621277354969163581457583992398978817436113791743682154549277755856367726663363474883419861695641452724829665927977417135858311699933266773936852714551519136567215198748877687682725882826563772321359162858547836361656771775879697989852253658998692347682659217548214583298729818684536646859964433756648189257654655117891874886516776658248376624489212155298789749713215199114333493371949267582266789533879736429684114486672949273748583287585693753313768756997433752771462865485618781646693876253351274178559242459654435541222615879594912294687539299189525335859876976882363753138415594416312467144549999924128134135889825523957854324935379115537915328175141966345771992483658168532262813781889426552792374383772789431327795772814538926598859445863958695526163383514754166399697298621692288356925222212446816285177571859591198669794122793177996347266757779128521569322147374887694849133953478113466723571526932638597591177174138571712789832856658256263821454923555877168454292613588381499469145459532431631341892646365268897695233499648559246586949874156891564281518242973186623572235459617721878429491463222453473572818288416312844989449718941657276856484487375657694991527937314518618777482485582218598789377229291796523354179876744938245491168859727461172819991616638241592197199128576528511644165653853199992549482844736131217934869875646248816151728869846453647387852578476187787192777588453743829743667694434449153538875752433179993375666597735757321224852218599449448518487748169181653373253946211247744123228615142817176296862778242945974875183642812119278455232863512157517758295193949914461251893236526512822811377299943931576412699361351742872394259887335389444759522942176693551351476545717665749469756581796791444326919448652797658499515644381916973442775795892161816466365972648595123885457169895978365664989283656763888718554598426779693486781995128269952623689312967866523917481928197929273698125111356822614449926116976656129297961793416514749244812943137523399666352288984436883349777183494616199753555533357825942942161717513182217676224115244637318667598764949652451953716989774766743866479727993932647164834688137433312438528454543652868322862426277869639471399285517888763728435346661395875169371657459995714549492374568571773265579766585914916872313249578291316869561447983711165939416116334256128947334711596951769863177567392845816965322146883486856326622223292246256316912356696199356135241949319697967887289431348324196177818411932586699998922526695363317197575234547343791669747335668397946831758587197668269621185578676877977727486967243778545414958383924667878921271529559789823578243481728288873461375891891231985862477834684571252816752165867745526859522188253596972394351813251549355157343547715889638169374428192663313476978581955941539994453245237835518578646461753875691174835246232714734713784616882853297468857455497411671793995771986841336898767691495434137324947367479924963957561453952573569947628154564879769834782369949142996126728934954474199927892982916164196846564158768675389313995728173627577358849987579458191446546335579199285711383274134924749886871122157459346929926742256782458523636696394279587532589838229863867213424237575133642668214448968424911248153165254329598592935629427529411119981426486164418868561824693657618539926593273233855492439977122345338718566798194675661328725662262911162993157733539645578951795313972579147195789618854372894759377597995133951758855417879786739539378943975274426574765845169378448329696747832347956544175339619117494191967536671433679758741257633224881972313918469887148767487564756331951775545415145749741188321853292664242656338563867959562266278666177734817954231671375125666441849234258735232541292894669611632559654586845416341723349267595391844245272487734388976185557931764497963644631618225391258646543595941281325857379325484143151897957459746233526634462266819234886392374697284499786814626332554183889373793486456188658237591534887311868536742566993373714283949292992462789257371314298919711335297291681213286758258398764524449564259256915633318428991431642784631961875423349641625333331829737478953653569478892286967665865273541541575286917766265777547337713815793617365614942489297934756143226188526989885157711391929986164661148849684849799683443671895396579686711442271589112823385111666377599962581759458363158151543363857656487949856569684999645523825194993924159149486421742138859646646772899682677356918454146678983439426315695986136877677718747839864511571824985619229549623768778636885414395821187319351517897642356535896493352821551362264725497959842248927155867148725743557865826759489985899298584717382633618591685675539742459291421914716566398286247448832867872876897183932975766612787397947495481783251634132324132847765624875546614586169169423328376737732612387184197597117677383848129248612933571455885372555763593979357831333448792438821511747411946554564659628667538433194931988677675796954581559687857411887111338422772577479798192828469988375673994272175836789631741645486759185828453899457617883229293283673976735833457632924768653665889953522616846982389282556718131497173381577998513756799464192732192895299714576362932976874863924381637454311445989733973586813517468872282576589988767631883539786443576921293533486859339891491912613967518642588683862211743526654855896861299843216411694646647987139524283188776158968835768417912279878181228153129874167977419341628981674812988967581717547539774958191667434962981767898563984575817743663475425529817425617357397883967736694741549983339362895831994362414378353996689137241799562792311528764916729767551959469219978325138196856636559358143757975567474521828669821818353366986352765749335117859789753461388567639887858465259494324838919356249375247556384916389961236124346972263753985151173818719945478688426678342873819449396987815257553493243258338628516765671393218261349882719798858437497658167752199516121686377327224467866163877488281518947981727579474535315875528166899932854262444966616798128357939779618244883972348368872195285975559618169144299977456443136217451191866476491975283783373438893199399145813613583158882315295185388272186823666717493445937476818496258996416799849811259539664484888359768363455162389635715755427273274479254952377863284938286486485922332981953244255135929526726147877629927498759944548114937138399598885621289625349817861345496794117735465266677998782617731367668264322181463333862226321799345496515679654788784174174612926986917728767417881935737916221381889119294682328351949747681925182475888776774671164998435111287656639778295421337153946363292325216787777521691239972526441269257174479322428795565496391618549725958875895975144961625254641849216892485914162339538188796229655893285646384929644166265987666438986461563466415689961389549566794937496721624887821459789979362811495362439319963719892185857196758337855811288523218385716897542288786865892283691455571157956136935818999382496725929467884154279253288126822263669188938928761547947894744841585721465253495928696763931151767736655175521393198788837112967177337972184891698499557447484132633979468688917691778891798277719765757985629832213151437497419384452822497914551466957576684912882931987377525683343578731913729836613917977283237235544816532553586332478687534758638392476437824561256671417676996884818262143684494638751667665879561741334968832974772284239764618584863532817165964644767912771179329694392255832947844666998914195287953288333978552471221583521127493577828579314972756415882518613338529994776683541315152871347895555619585252797891833942439287249696544195733976863884129889154251826193518598746195411562718956553366284836482746565887845551631375732458718189328492323659571724533984632367754795374411132534723395868719779155842497471591868447556244391918714976993655639599921691915556233689722979563485916135999114549964998283388238229314751194835629169188241823369435568767748314486294589956344675572336758134428883669524211188298176645228733781943851699982637667641643752326772313594676226257794737649673689269636838569721712751574399686278633193599348743828935588646167112922896769664518161625524775719279351247824389942188985679517117625523733979487396254257116342543318163973684164746736133722829666611689649734114126422621943978428877636955937318995485295511334866162166346313677274999388684647549195283945519884251314124523815483712728853678822719399341798521824961443966997828967235627931118748796487398355371126257494991958644416691685397877881831252936117971631661924797779691513745865362661874336739846721577226273475617689493251874537615277563877834972956666185268352566935259654794424769324167383784117336791836849846937888423893792736167234964939744691151832882928759921178518965466287415694192219687154213976788181355458999634936282383245961665947765772238544927932769664617149189355517383547783948591434599522865842786456591539581313433853841765115995834986589786454372414259286586413589947787994628185442415389636778493178481573442291475596166771331742759333615665838657798934919864898497521177442795987928761357433173459952863374791566351957118948591662828873843244555466856896533198485787234436947919927381932784491376361641599897478475948198966456858413972216176872628165824989397266569238433471186931171183335795367744886442821196762399799476341445238438914336983619435447962179967875666927353193319687799455993325564526724492627171195266883415686371698153964895942272198645491899424543386568887265316382698347434296828526345348764385321963594837425568437935176266733452796971941196787394491791124342374631864786986191296741774683748748253389352758893815759769749724686393427716532584786368467445132137783717567535418853471841164326725668754989715166476362275676379159788684447543218262411549947263946149828979398645753754996675664583742761574928317333651262619642322236327927743891976492982946576911876748621428234325572338345763873265228293716294165583231455745371956542484339153984621144216496839158649714843537798749955565685113782651533498524366992831532967116414941741135126364188431947882156852438542374741631485359917349417184783765472673815424429666797234345798893982951262973751461536574826576386839998386545958817378392229447613469172449979271117425579569612546572225512589477264781917584832364468715911926448875549144498743274197138895553759938948659686867347657881989987419283981629217447469631417488176993641823899278857575674591431357351578914244724817347785679125467487765321787277872767334254624637779567356581338881799359995816786858442266485143797927336759287833387818728842889317428423998174412367972858731173455249584751474896788928957552455349534667626164997266183339135785398399862413218597635249325231667958184759951143444371851589912479454916582374691586598984314941126216716735133788632622568454426671491848834483966651143869281797631825882927363918896182733537543962291922862886189864515216457935998266444585269973491997783641624588631625555121148819326673451537155596276342988622638354822632762291883538989673447882496777931795675498224887681718472842876634974275497725379794634599622165132917587841156469774882689369321326959513969555461788988593134644322529223945979768657221446554116817449517983554583987387775164975569925847988976663945258927967586264284477828795467175752314448341674352976886679126949535551998252737567783322554198288716419751546435614928836252466411813362855348874662348548645897967567759581261828954999681457981751888846978715964559557599781593984845661343216172853944126591896673767886345818612886598492881152387323479993183263311194918112934178517199517237732269847985797918467247565836462996368173742682423132229968424425114623557471755897896395494941456889641378911984149618514888358262668289958855828131281438128534515556744313555969311632792731262914136778291588735281885675897141771721313344296964544616881143734925162838489252218946969831652777843692679796436184697635258754856246629599964517392241562863741761754898322431167834894745787396259841712897643595431414753714626284858699779534353652554519969125866479889875152818978218467568796279921676582751323859111726755426831542886172686245514842839759226159453836716872135435591651649531788759827148898915265218554366378379967149146763865452288793941837651512744345925769861656719831756548781135453986254987248916519569271631881198378346856362927122683659782595828276166937747325588869447533782111836885168239668775858383257832967426782688991649866793229975353369833863278937281691578969598365781688394667651955834988433456386651745627747635857832928614955565466366147626675194344617573358437924364484337187566652879925763993615869561795362392873798449833828125927618769918785646552694653113898543728986715328673125637221449243798376454815842698144156286134966828376873634458621214575293729375586776384492882988392132414481555696391171761393636984478577692833478191644168469987246926496145979929317352351133844127435836167189349677597612884443454822559576825375331881413469558766992745871283541332847235471552617352917556686789148858745397948761975498119346116614727374335792786898285919792146274535813846196353328732617147843522783546469734695643176324341656958736633933495878478613281165414663724773968535559999946379173576883288238286154222926337994158796385995669772159647847148839551274999688256477381176999545985383586184995751365766933459183554989785728875782193459975483989295396844911338738599743353813495643387182715313727665599129834881713585216969821653283147574439923225494597818348199578894377136518355536281943566681118292167825659273243468556287162942416248115363424819377963241993814657787354441655774531475894733836592968772378749978666613399486619846368113488379336292211768654292399893772764676141569716147496762149472571783871249886224889561427994342546398779992414735966162871588762733694992219931678162377174679597878813636114152674413485416621748295849895948629127794896655469454631465729994856421538294735651119889256385923846764689467815133784284984442477687658559269149811768355767547622861321537248111576764848684245195388238713365748932353868127358645267779958866736453817429936378177288834515989533422167745466716467812753381877818168893885484836794178282229984696215952236863159593547677857992669963231986826422555563715988816214719997449968364216757978444755388538292926859953869219144759778561358163581192867862183965151878333638151416812165634869275932735988488496539161663297899951981412573431897898186747474372143737978741976996922536686498315345967551285383165439916956737888779269769865583467823199825697826741486437575156366324771947935688357119965223772949252168264684754784929612984989441135474493373585972637599522141986629634129439197893858576766646985714491354884663673368192719129815864459594399293213285277173632847465675913279386437741451191771646456247625358499428893772457524364734562161287374365169514978883917198565543272558498644455577769957244413384521994612781266456963693612524999268694267587728984693591867552249379734245784968274436594865288477398279789353936616898916874834926764587549739995426215342961614965322141341296556487461983231587673313198619124631857619582636917974121587185417859685859987351574671112686326955549897142288747629269931978538534353991328685448418874252948917852931332918726512577462276513317179493937443973441739384848995684835459892699248261997865547651957432898817159213289434441549388799263468182996197626761173738647972434812563652313982248366568321121549319223776665591381133687525322243348687823953672781335362896342495977655343543567176859518319453827885196436716679256591415556792444566114788653848124668465766547566423348838751856222481878842954495588994348339276425966769738822824953461893382166852513866575337844471763918241663651675237428122232686159799741786385767476165168348942525947244394256867981813268164235838333923542199578636669855493658537718553445379477942662916422939416965628849922155721938155262146566697938149829774695288371886425838516139392958415274762493313763716698625525543538136317697456325631687331264258413879143911776835988497178891385116741314845754879188694561373889483369493254638469317555877773189586172478846389628714956882739632984997668432257695764459756812289845546187945155418766586316416985169663349368879115651887439648975294665814465854711976191764252676657384984296596793186133385563187339679662482717566323675625289739597493462792119479267651492151393289284452929515658769649135147844154267589117394461349296345467794999459111163286419561616113192124946264979827137824723123655673868867951769964645651153858245355511897737455781655529439828577734295728949778697454432667168552829877741373893217771371694579679216737269556438158948286741874243432193541596694948455684193738492638873144675876198111953353152324885217426329715743154332952534486818478257592918745557315368855161646535381911664837264753482217888698458662937979788984942239386458296581961199875579328464492465692758884669718657179771615723949275271891646318677462292716357272767727711988472276254414822324277959996968218433598238957913958643851898247668783644248271474861625338118553926617389796856965933958967766711592278124344931647893657439265291737477954952551358598898471968543627716791327571855122559445293462164835318979886635967686656722451354742693584187244654413859922613474921897998418532957358664583174517569462977215821976875187727573826751271813976688456318799498871732755835438486617814425947858122358975788382491177393966815558897114812972837471629265586971869499253246912638948759519965882174742896751979938126169412843485792453874326759357499861898756992995831977594231466679813328962449754873282548296948629179967397489856149211545638799172789185677757397413735671396841299971254346723435174654582149387115489328857519133281916532861853641378591145813687473678913671288965532622657952822747765148976849979396332578674848694352222129867231192996364177798965568919473197829353639447492295849282612676534818659843825194217788388849831253259966315313649136532831991417842944397159371697166613429269552956133652488234941749478746395666582975429815525131278462336958299966821991637286394958142254158594761292843353829766739895994429893457884647179588565785778838672655956666958962712687292814542347664996122694363339436954496688193279696283113394537153595873732192987335422557632933415972385147654385154981514973311569835946134746621179869263229148119683811892636146192615842368582725872366114346787472979284523713269467375952469229389935555167781557257816861478882824592923927457836817922836551894159172989217152285578946397229425744661814386452357299649997765871445618577522952726312491887295777698496198517263182789618523691923556862675895543235114149753674353378617993574734648497252367778985983776585565928571492158138991495546665349981511867788465345526718647253792772457735989948635125544391228241441836184152464555236966933116122771366819798889461788618114436451687993478258578649348872897979659676389669831821575162265138188217231986787533129376984898364513477998717458868681966138952733236346946376223974535864938763531781285172189251567887787934994764272586846876255364297195958768582674546664617398386769862825416184533159554937569475196486437658959391475843559422749762575283871689549316423753669122178939756952325892656845939573343649373458236744645948629718344846142685598775583929629559236859192919427277599674893637298265822513344718468979458149393971821724115631135595314522171965626724667579321183991892931228485936515159857763622214161542783321742924872314147637337618365528613115686116148184688536673593413898358894836438679847989142841174267982917165222515293252571814523159946529361474388382289974367114738518325949334779166291714496475769513417877532978816123118352439215826182671389384949235128831825838997489645795458764952424683972872975351891861627839732643739214787139914144526854134521146243531176539148155226346999479629825292214216968952851559628287219977996447868896956596629179311979468175115953766689951661319196561167787513422695595272435852589958824861888762974888814295364658471246772571694473719639158143199428535458162463388918883435336688247911697163594435696684841393784129721543723889518114595848474555364587268997559619548984713741565179354796444459648747832874381528798584418829392486554541682459548946779584839277775622799686814498675772464348672138133731851294471447129359616713513321878176165786919718349817947797543494222591271646645136687128835113963999554329158817997475378145344249734162493388799146565153459817983177189963954362867352591119238446769898818253896658298749588874582488645759636992143568374275858514124283349481438135273638481797842718591937353621835413966258249829663961154882353168743816721468853588299551892489683941995511654816418177728677882296691992538463893719967785437931562979265455577435132989722263729342263244427772296642983925429634383679675654188262982453479912193238993819198935935924811777851249911825415672543672928697798955518923764229646768946995938422146572486923253483959631931325843195228988865646831495248998341811413781861487362699676554154216815737454489426174149323271131471695525568237558186284533818796253444683242593316762726418292925697442434117713433983658566961648875688311229943529635677158385475145884321467859798764623672748975745552691273544438777738792428893565136583516423946935245438833412359551453197266341598952258856498376596389734418943577121187815881833985363654488684148338566976964413833541415622444765715217489952625338778841114496769166689854182149281519653454871723686434738369979572491367164935888298781813468825598831255865938683896983733438975823858455759534297839623552423963174868681244732767548847417377891391991856361965527376737571472355785882655646937394757535387933644963485758535357584797215672499266278357195947914947743162445513961921628458193921791997729573269642314472451266479498156917775962792678164899461787687827233923557417358313533165188993431481996418849592768271465433531224719563554693859792858246455389437649123776774744966385834437711692236391392533748527983632956946515839855859556111999551895335497855881597968177718343995574925222115734116135596279998884197929961988268727524118879963861953655884824199965177819896318972353797682179824976957648485984279983415556424188183662678517953174539822764594191133859681513782228549691632199495879343391382482328777266874847984351837266375777381883411351665162392497184696219756616379866133945642976244773869589484692566154641746134941545712781157521267798381398738813994634588382823497784246546378174837719563149726456767689346723479325969373639755945925345991729978645597286332396286551938738391994378944146727851213321793734833762995135145142956716886511144662374697457996978717276544225469564399226974837326383492575786522794478318624182643119246773357365985541171745262789759641411298978129844141594768544782327119487825336913637885726231524916885455223133496864124359522799536442959677463689275348467368712432728749781183543462479412626855625286322619592459759127266934981577992726786945242397868738279756324323483364554285484295312589644574211238146397449632431359415883613652785244124811332794339776136862933629872665198933655666839915114999966216741742331985573549131712845152611758917686215886772533778785383459689387398953343343185579916433288394498378618273543852111869938875873631579484573515495925754886566981926234691675928918173622271759259949326718593559765992665172275596673837862927833399585478237111925564856938724812385948798483789254256777451594978463678791766342397268157334861376588545692847464295598388262826672688136992128133929412546574892785851473883877894637132594926617497272928315423415843199159162742279779284455739349541623813279355853375789668575654168287226923684798843334925284983463535719953125457524835455183156294247568649923614248738541122461663528524276188149255924931996859529359393396757597548173255915753962872182439159946985996773255593414311251178947786242429984576567842827777686756199458134436942199259262123925797139758839756996762274555346994825921334545294225458475915976438268756796986296588158888138455843167987695317674627892499821566122869284144687549452947824515954621566626869132347829588328977159955518961825145437836761661834977917699727458894926719471946176947989555945875937236731811997911988119652784654125193552377577266369599188886381596958693842149151259989738963399681169655818259232256954495791313825154518581377543923518258924526389339737292491919478293222639356575355189676787526579945444734256314157643639743392112844825885234232851594868853741916695526613619386833416938735599193675531629352721473378355396619272133631986992637874225817639354266847458968177235664853456261184354826377315323782699647221137696999428828746489559498211413589292369368682351783816856383567157124631497489393258498445263136728321674411357883454327669488494534476881817684155192524253955375416837794473942495248199646413153566374358138728675246692496175737171136757535865428339852977657168246389381651412373665958814135743857576526975469956995456622273874984833791859549361638459464348123431829471227978393944955173967135312118365738532479555495472864556392173882668962899932353477276677254613645858597488166391438995659548884783822883295421352635548237464698991896989872888464285426724839762538124749393844799536244394887981252795576248729513671887359792799715827711758483453537737716732862178895666518136938945179126183473956127965559513489119347544596888845172741535993519718942864563395757843463626975961598582472854346651145726563957657966365431867598149272987584681617111337238237589475661921444738844969772241124277775744238676779431693245942947976525538328438473489587458533838616373898749396257483775772586738686776592684144857676688356936539844255255363643847761212674184919751788898838386731372654223742244386925692559969615437758275284223743878115144544157135696628948172718378348582551134165149887124337297159417736235532562369128682881464897785325592898582263946919715934189514841279135838137735875553644291884387811152851811452667878534473871961651968752782825637893983272112721323899518611247496563266328562399599749139623245495357491833144581575672811772449994659241549276131756478135798391936473531756564477117754465742474679635874753135821325556328576449818628541616879385317438729453192468579299592632897157515171967254299182395465147168718833671751388428464667536612994115418724183471373741753838493668247691757967571287596365266677677617755995585538984665124217773946444831995677871355385575443329667562374175347786479977654484647469612216143916798378968965833314557647447783881385288477772397987817753453736118273765363689493942457999891924425233161748934578763747896919692598492278178859737854828177771639293739999717928768713727462621925649743257139861761335347468131954882158768581811477573494881825981793931769484328276878816765755816529526684881889658746964478417974765647788755832188469776276758497633654924867868762423399637246424377941431179782369656886918498292932867771692153137339887574739793228686733436419547182865826148118394758245812474414859259124292789966719797446364572575679796379698931936159889487595697122185919742547672817864982391588553498782172799712626341597762931654287874598844429441269788499382111222349182672462313646527449991526118659917995414192864984617543437567468653916989319173978158852548971777169945598593273726178821215215968752152443743419679554714312899748958335247194497843841938853818916218351184917448564678193625717736444955657843819558829611781637699744127722495856284339486487519198197915538599234485431347997782177623347486211134859665724575753924993589497873648283296318733291919661875842656379229678914262118845217828784567141226538599765252112452554626148937492939635578436398233327733995988843431831724466962269578875267752497139365674768755121339666727281499844242878784147485478433998311233578743386422316247223592361929257463418269719623496593236189664991819455131167511562386839261813239359565377356792181316944763416749925847431345337579389886996445743656799956621885673992848155235953477819582464761893188669147967839719322324249789122719728625463961328335177941188539184189169138287899699947919821562633373511348591263759444662791451962724154798776289551178658412271757726348797141479948188349869448436186394918635578926577978183276375413857396288294788173727943288653841454165492596299529562789566941731514199778429361564318466584361839959168228877892283928185192377849738685442673574198459231859583286566244614954126791641925452412439231795677377532214719757725596957696677769386159485919767237263554762723896644561112585522998822518799955936184457898514551545966431452955232426585212236865288286383978138993743715268412761197337771472682431488792249217527239873333836267755513135941573367897492726272236536871873617417231611174617838221679871744797567839982686293718757665451677537228988954876669917722758271143377164314849947166891595817863482216411438555557328696611689536974691619748199762351816593326172873659862352646369396476421568962796736588155577254176362359763765627922296585733963373539172877358788887534948943933942538989752729769434884645925136253433344222262153167547464822637297464521548715557956683589266283119134724336924881158615463547691488483126296199298539327487855868364165761918725958665745824696541544978873359927561523532163572261423629784659714787298982177623185494621466138917449756124435725568812863794336614917483237652114247658866773754663868214199579523377797586889974272922327289681596529688197429235175697875363627498365567423933288396725755994847529894584425237477385262141254767458655666345471939963891171334726997114984471348856986895244286627712796877614339944869667429476946751395364254378724174787473116364198523194883867438757333143391474897565178635384354248946395393219647315679565918815582925265888849176519523922798964111889235196368592698424239791473576927749182315823738775877247221724739422991115914617686822124142437944729816639679969684246463866148598922245997247218796798543648249472314176748595592664291371416912828179338976179738528231255348613644781975434764142817375388384881949925985728968351354651545185775884592963583859454444953492851918127858484353545553978586766454615423473149898215243114812539784832774919737648269964375724178885779499348347474993821747923718877563154766862671353572194686568129856173698964711558517564919567918857122119822378472786898374387782161278435244937815859183584597888411893268298895249768891744169384118334397993523889596265399778556719445496969763889954357992752864919594118536679845761857276573195184638318125946184358852422659968749954467559148649352264378612519143592692174116431984692376478944187329529159596645674111562599734996576565399328631867328592164659295587724748337597295188978773965747927971253226226277697979352766881444395387423447179132991944112483397167241835849838117246249131832399692171816962844743977998973778188345589161573874166381695637857335771349564455866873175236283664844245625934897966654651776965853783742541738829291942425659461919843579418839455942438262154588683277838615651697158265695259736598814462133597551782593999767187445463636875248532369929341652566344255957912489226548595696736488748411564382551555851586923611532513611779339363692351283182989162961862443975129294861542935791872189678862972378586877423979376397929119568322626799969897824168434547913786567147433411655986349342855884568949124745824938362293788833267723765194488179261834259718518276345443442795263845699993878185453945996563646777186437177485326873952999573383238726786569891275955918981374475162322491869465868138535351986383148262558975138353874415464841529746689524635625185945388311398313134259229488478471913427984937774785718325591891433999768867186293911738186953124843179799974614168378317799168885794718719437171274523559977266978285932476728799526858468199276582362963681572984315163377467979434368728894675181723723741475361954375421292343459987387782659994495887198349627187373461814638794757929464366148684471197227794313335879789585999825544479357238618748484199697527931115554741695678348225683738816656786794686636422194719738183468155359291728941238377351973846423617883496928382166714737498179416461948818485635189353559881554836642344353369924363358348874928813474643133491352876426962863226972466124745811794764993467494572768954868642216398349296998532617967348792859995291193279529781785888938237869475995511569698596188626111598673289911742499989556151983943775168236911611151977245342413497776273998426855925974787255989228774364641981924377158548411824634369871627854435975455152181269758695562964351457985322841573993416116772364599293975299761936211188457811999321577264653925482962776818643361689224438442496111348722384456793975628888136542527727823846391186351249211827994917252674454598657229458659728473895696551867566253177434741152671368568461645376516712314769677721499376586184857386282771598486997874714217383524923948383356296955229471462642973415718612567756181188647165312129226126771527423226467186962224639718331157641582517915613581137241219763793843885838512295467621879291927315135223319678185395291993532969119432843615283988172714918698174145664975618492634148226212294538681761664423263517674628867793889115695699737337277927728371754382275466715111958694918181675313463717655188747989554565479292417684388423254478596356844997966569198492568655969448695348165499491865274982176236225929399469834313456111678661613494883984495865457719662489388696481162499459945262992291623448989956741475791314347598318714897617954632652983179338636553974723272489259797997961798673635181785465725348525957143253566853692413268117566396415532698855947833751927486984487259248575912578748898399395847344837814177594479979797831466342193196337467788976743736176668331427288417814567536429635454296668722418224663656866844622953466179392116667139495742852399867238629592483467525873487564348641862861728734956599886974922296963773587581848469811798696373887579757398691641912587922266597856846433567696567171866916176737854474176383935986657375516688231779188592428385875829362977545814487249199513457632891393234894282441934878811485514422666236445884429898986215421729175179296151193558572618812446379972629223878675385841976245484867831199195655812487999287896997377798867397528815985119469793687977551837893914332965826691725366467254186982843245255495456846848657153983386444834489495542892155254986744287832154643146676864469467933721752624911423825649593984579756187816366472382176795388112161543974682437259446884999537586893951883288995682375654666211217756388994387918858879576197567492258524264729442579957431318959686576631197931459899887977953789386199727587241529569522425643989896448149341229869828857721876469127387863948774965655664416598937634884798152177274773258591121499544589687566717123132598348483929867717544995516682626877241371159977954336238981398929169245876562988967351354117477613589863838598987934285426132841677553755998343341875929794983235967116438561953699521362319439784321787863135267682612226215721432743849831978828347482488855169413479426974443988931893796855195833889175729136694717168125636826461525894427379178456827964997227274991983569917868242335737383621552931762778716962985921874223844896663386994793669416528865992677574642549776275377115269532327278397812317465256475111995892185613513739277227251262131728693348271818223415238225366363519357336496588144141115359799219975299722116645992169612714428778352921332373448553548214792944649647822412626982372166191798381788741497573286545911339852532673292247192957772766124187747245577184596846711661525715721726914251175159776818467884184659757557947952216678831929478188722878859298941677268399393417671854748472826492795965138758185741139634826833932872395585712467935298849978137564173117322959518494767641345496317811197369225153751995469576935172855789116698147324163292854313198827568615358487475669625715352778783553394389488732174659315419755497317447441635732844481949219145173875142158893928178266477889339673918387162641347453422813527726898931399889725924156423553799478856273446269457991986518426871969723465928948132477841346215371966731979554945422377873475158722615844523641159571596382169237825871719648696972768749774615298599744856994128264382934699456119573873456391488695671887496721692566491767234933139452314848254518357848419391917719357214827164286911455644529364697834547957849193555355672192413583229751926295427514419571294749633923438145965499578395445756379327899595139899683363544358846621544253369868756685631823492165197171874349583468286998244393129831283715537527984567631927121619947614721172883344823571787486175474975625436931219631295682585743581611981811537289835389921496589466729348823984182513965352265476887698751797741178357159997493978823583293444332959897687928172838919192982168149397891455346571149913925954419466319449996225961165747145322197918389331579894837882288921979422866382829828137372768533695888831585724932399657662155865698958118674231134778127631912784493993195546737162323264858917923766598658293824939147513666529775182953583661684294599882265958965425291235611269958544841876454971627148111368849985379686183992566835253946744482815154466263593872845267196559975555363136854777848881998273999878795177225347289417223384588931256937741868739914831661666756321514899675288259798562133928399474566412795112937162796996248753711329865835223198999814928261836668418531464711181751972877689541858194567136866935683152365545356936966964267122331454967569991922558597548196713276356676474856358477793637367448961113471369675751212335549768559819533657266822745335921959612146866757459395379657862822971158391715854614375894615674229983679286773347246134527147988661162217563811893455839145749788754975817424774713413626338847369894238196115864741763324168261833552959659425866543717311482481552583699373643447595178816313399596931293871989723482262588858949318666429313216932933189737261181475849338437681399893923845351543493855882543155593777145861685587584381869599364816664137282367879579328899265187356661213514498281696745635484665799214133873589719714582284447865172518749343814168957941787383963886546893747344825319368733817473995857486828486199432854342698725989389272611829256165978444584175253748589939812458911878713122925193914431965472667724539896695812965277858866686227778977724785891915274938398152216136751932161282938182634127835736721464511454426128543966881926964295472161444924523144994574285978679897612888489619681179795749413932191883394334259297277982714226985212115154923785973189393139267748816878924968629967129112859137512485768697233566799793717181425674941165891373574679771838834837554384793746425451225147875394446681636996594948916757499384269631144197822934198368742926633487266946651435829282395945218158425426866395696287478476463558895831781952576754246616877653186369589668791182731662868411377671119915871185115782377854972968735278152828737519284868472234487921843971324539763967896988548146763193641491376589141219231339891437973328149925748216399353188854418216872678287281814891235271389475742989785681129495988635425396455221689414791386468676858479442851372784512647618921725155922894166892429638296472257527376222437577959523217164257212599958293498579431916485496953883899318215533216829325327172739456289354265252899676671762891923215879337732397618552954674736441438526312262969956199818532638268994646273182686985642421937953631834641148953375399167119613556436818376986785786481698498726913653615818419874176169876457447941911525188817723781647821299719797691811984372857533877177694548215964758749957278491178435155689927243371894665476738724657597279294859394976897463379324643155969919569116659353524451972538551835266782974541929557478983922821976659733696974652464431254194814676442678645469724811821412924961464486436329712735988482697622513769211921931878675388829882457676798515329339191212974467577329759695856461657447931229378155197853975781411471895967792735568282171839255612241467676763364489196666251395857791513184795836798975865738188332343372495543767342453983732317757816445649279265668256862916365737865624775485556335478399853895364848917229329561564141479342676748151884598817157589873469969329971584549843959175559495814184136631991883794664493293476696612965988671591329921523733398171534388179293484188351232625463239542953595759969952629742477739397619693965988848891622441819814898994257426328811819682163623668242165938921165623559658423429937561396964558178161521551684799233179158573296642431654764472327576482515863181218299715277935355739419848654536762949471258979843719837576688294981566841511289932637491641387193682329368463255745947281869989522938191685318599955645893789994476491456412322886431993939114527132669429464173973933695635513162898963945558182292665339527936567378731348311293249543759767719873312722598794695285975943575226769339939231587934152525552667811616575777633113368659767924868398624745829318718232252637792148158855156176947742816465193429711367142571859263771675537926632168262715492877797133198972853218442152554683239312761345558527549135575363566755999313383286258736585121978756719852374423588867948481995618148521564555762615463882551138682821749156981177279674797285481455857633383662822999859344952528543443169935681623978554819628451388281718318187311274564779633868215724337159229277682698678398969649959893771127168923988456728354614951229678357838553934775177311161873343759212391147552269224557394634467691276994683874554353337262522668915784793975224395499352549367437598827854473556958446463445744683157945795524282898529664833931553384158536239459365692225429973987989242724647276238756313978168989327686539263798572958878284129851754816122656242954376683439953956753249869545313712194816899738765862641587996528858867383296695355784912677464668872433177176756345654238135887922623383722841436492734133126781784232664922687149361747126344356293375717799896614745187541167377494454674753592276246912377712315986565343819429725742942416361979634733821871771134174159911643828746197943889831616572586557649599275734911899236997896259179995559717699598783455576458779386212727976916153952551658835342266734778815236632473733151574895849229618299131845729468256888714895633968927375549421797262215747368748136244553191786449878611994645398547286246717275422448299136847575835153191174141578446726219372877623885395533724828524278692596365746377292289582588287581248267239415376294472944948563865883476515888769487691935372136844248778896773565433544448988246987932372998952986944616846975118123814626486193467796695212391867318126742829575158999175661255715873425232596511532363111878812838499553199784282762794235815532515922868537267689917716862472488119899445151942498275376917761366616752237654353387632387281917318419371598695522366865249162884485677548577929619575918556425825776732474171444258459421443979967689941662319383514524279524265477221668521867884936638486294316282494327372573696495543163545773685669966266637784868596414382548236649865741767489578687426487854765718494551566948161393292689512822185383953832986642279647393976275541456427243656793745598982928884993966523894779519346385357227859721972564581568439824235499695555856389984835799522181798154896939554716848492943493164261888478371332753878298596696499847687235695281268588174493667494279469123185725542591458991336527263546797695981919312789222295658549229966995917464982453889991354592271237621259663777885617742429987168571528766775557817581263693929416677712937516353535684385675988617591636355222862592248592736545567432562961527988799546169859418293228357857199265222198956288448624566452372618396965645432275781299478988691258481355542425751481966221853361194814511933834457979665714543619953976267161728538949491657358268125927539531878185654678982452145597388395534766587369929218457639817296959995228277188112277628817938175888756469694525858239614496897597317483227867757988666137529897316527424691872841729244628114648948687189586211688388997385521313223236433227818377237878232958574368779694766389318932742882865497593991384186222968732252483125258898548839961449749652888136474787459556733829729762371722261326817582717846665893314472251987925155647186523278744985975992398577786169421332596215895617218986914932155332229487867857879379793243514582983782523391422641568233562979635787378833491466977544871944141948538573945794933918495915285969214121523797114853241485914786938997393443846533443998273514945813354365664328183516829446114835658556926585985737193438895596473256482698415693137685423168869519978438674847614959874964764847813517579687296321214949875871319772628976896276578912848661378559653947261664893629916799779118861496438744878785671613387418619339193366317133698958812542481977761989272545774888667188862347268835858468938848998792886157268589137293619488677646318681288438794948765143749334572379263819615824799564757369667179526548479187923815136398156933536728865924263314816866815483854692287629185432686962274164288688353994523349819878718782582238143675429515632761854466245182841893667815913262983977854582899852639859992572293661472897664444896442967631218481313213275478643794958518553473623969381223196287985379836184275345533197155655181632175348479985691323869582128274184469648772695964254535978191686534856515539181479199881898569869776276283188747284396731437278295591349585525668888912498278865499245955326878158176738697219137173643262116133548726444713431481579843439771152354988467386343264573367993679746639269341472491989554797323214998735216411934972461691321844439923424299216419651261448174413248943465798847163736382811719186847654529921545187699844762598446579247946532391917382984364421888359949294725682217539784172176632428344699193446899394589372986236836218145788989562261522819769249946296525194477645646419672985778945214518261193164246958136687118131966836782931193845964745961122676659358418342363645498838112331567144148245683579945991925179576244377381738961298778594675245934644779688287362657775285791654216977469926416258749185555347524684348527556744253932711681746171686564129277658114814561281555896824779398994383286166521575231764981892716179112726331194256797364382547975121861677919657378319918331534583487854852732585889851881554986127341212866976947762246424333528827969883294442536925692757558139359881647999691756259741798178751193361864847568689778676389378923297178918916599944473661756866253784231688891585164852368618359259537579945388759866361198896776182844585447521356181784461718383135656712451947981554926685952124895846143823916366764758761517141847762788869329272984961589635955327763683351663484279375968187357578351526438787266889453694914658589289518168676223555798661515891936892387768367818964612425443994299177687617685999456632562474777754188318821138697745375622775978196178158785747473476494851342621183433518423878972827277575866717793345359456657882897653671753938896957675926694984514484665298973193126594955647959536729483615737996794417457939524684667746498843414986239476437442859639849447635344168734548486983555948266592132874842486639266925332985578247284717825772581112444179841644651218169573894385554986751943929289199558342865728286368796158511848581994379334232754593931117738772544158239883179129641965392533797857836298321875587115931674691162577163846477272466895121148283676189231199822323473649938297229966812167996182423888815514656492482343117619325221985671786773477555141861272959598752678781967321834261913916571629574844192382853995877595956745769837345747411547385475654583638977526774428929791288896727221742532493494345471812726333588165758645592539534859959986613998868189359326466574787957998954611558898882755639348426945499679612955887954512243178637167828686754626466414986171429632285315941365926458241874919415351917168574473738283698988184448316391965723794541163574925673749913291824114793325486199497945336742457277659845864173455159114323835292667253264823282599917465927157663773856271852474651347633873928417611723286411482657341787885458521392897877588987548829867942465957676753184458869485871865522311428897494517238557717855341313896388262913933519269645613435247113498227876769934495442826122168238291472676682184645154343612914435979745537814828983248529567781982257315956939833896881453361661333252421456732785638388282573924835297778724556542891876617468465724129412268196527176594862651669698884785563553836179494135856816298232518335858621427487125911642336324814463649989599214335442246534792857856599724127428259899288498252862449945182941472494181886537968458325299438679266759746573869531183456467485559317487989916974811356244544139944132675121917956646148639144889542735656265884785144931716683859395995958162655196415486477667695164768416575398378746816174972233763874743899879912662431691268849239862513675549839377957668513919455496799382272512184516829615623449437128117555523562846652416536662295827422959233269354524834832755847726991613729785761152719354523816954931492864484197265311898831252772542237999243813483973224583247818689817722369544925194455989952881785614874912976947286436764785558181573976648669837612116182634864288412573815832737527427227415447135444291589772681587116767141763257932167173349116958812525677944451637343333378771469474168126945425462444544839382929279987232797854378975838668856235388774996722692879225698539826374795886215742826668683119546737857871311129653978217232448577511297938371528995367965632198657799963939254136777257299954474258176945486518769551866493252113397156985583626161583959213926926698293168394523585741873215534268997719526739449579584357658392866568198845887973598939419858859866822559658568188525858712752686291293827729549182838228365647589657368876372316686819638475995746752839117646665271997869768772617989645938391495612726126488582389566974774588475793517928447855423781971325342313945454117192389833437889338842768651427424799896255357538827379527131213988697356697845564387544664729338563725992359439382617918637137664372528196431921549672848841575635815519275234865944189164591795333726422444244886963387727994631313786137924573845574277944933454296152638256797165581885923569984445997878889795924987268851447449438877351818962382387169127688288542325494591145689623795293683392216871274887684524443357792255418658289553765639582597792396841975966153683661543713985215687242152156827544189572996238596156864863266837284998343125844198279615567589929282312779937838665957951689932531731784566975418346739863393819945353696233555467889744455563684929972584995696764874984991243824299543986773612929171485742139454729485331259547472164968582581897521261768813657618181695661327847243665881879714996867859785777887321572892921716379127974725296911998649414399565638994161387997519867526766349333845734129914798561328586494429618113382947145631492214597566246413618321677386473287884993172848827517257983135756158416397553953917939418288821369122211687519836628419919732843728663259685391661754395737349537828672387551986719615745869694477815688352888148596447764124319185574344472827798584626692837143982373352398319587649291651266135675899954683681138779775183784493874639796344975934464311978357323577783684836734834766466814341687856868857246854166619649116413841529376586973684986856413694432897585224752462842716918539686763988559423147484763897462657384484542992451233686767966919237589681838939614423513313115789454789812634397592394986637772464716684788698828655657119928295266673829138328981489185134998995548859384724761473378379586279259191246717497353855893989939738796711178612265143238643167171664741312545396168568877717657114893196381832783762561776455368185692675239582281451239747412762157266468726518776596529378335181981563217839376536726484855773567792754926613528198117293868676889517145443444938115996694526717836837547789498354912335299729778878743954871744426299569283126192995687196726678723158889844944286282299465142847363645897266654479471368612643374416432853118785455812647353617783318824942111781468668354325676116335179282714251415416336299842836831253483224942466614916726341622167125391299878551667887929827276267822594252846728614857232488492775138954787915627585671428273396268733948326436659293411936398762282654155178632575416394412666618278991723744912392976798574317716612762162571436175329139971622649422879571969327126311275985219991665257798335248657375464311856177554722623146813193995127843138573556461523593254659974491583918963927774267949119739654985383277987878345282174415793853963562885144629986151359189394332583921796873948898481915171493145583491429779596654778469199662666338818919522836182736777641963521853763889494721844732952924174519656858147148671656721647739266896469212568579113119554258956874442134615224937875458795872926943784349127738443362867993695982156143545896198356528752649874682797554686862613972679358454268253565297856994785624799787887493483817982972987354768514862984526439457158375622213188124657484692848358576452734829835683588887544436236449748324419427764926499448721168584625677765268883638125854783411325744651237562627925291199849584873915757518929245984963678938491965147274772598957522679975499429367113947457499446185343445965615217514773327439538723771889562248869659612468336296176973668686757758716533494529255494579918751659795111471338435922247285262841711792845914583733188772737714328944818264573962126219522589528355836987884937177892742289469597682125894572725999592179482812327716488367138581596375884888849377844937221829875147163363924647647516352246325324245824864911899221563777733662493423629671614325187276516587877631926781864873492784798659445749346469528944526559287247715369628334687819763825996757933532545977827679193563473958998159949981482274384958885381694697134563256548827868976927549712585671618886616984814633722283916649954428895536639141419159222924223283484797672494817918538976285562681664593767471543572488247549216327474595642731949446286551284418289785927415475318971539961355244152462882999465337783926853521463918119288625874571666663329571842999767743441711251547765625535399348578939765318598733432377883679932944761274584486593975497282646525656652883356149317241873162699234354964593346369753272488517434681982489513391667982698338594986598171175993871916373483561572455455767747113489225686229759683195594314133433957696564977456534655387349897552858363822393574977749194193875171356518975711882494657171673862878262932535286469147914279397426333714358549515479571981887948714277569325898821834211198259755587619879862795649555689965331961345173696877256434366521282892592462192324726969289612129183383811417219497842763287947428429541694475383529491368572286668256637612481979995252691327815839855155259877563711697911612648163833688275935296618741351494914775972937566351489698351651292378725546135372528352793227679361537916786444849732314529798579876196327281518679577299914625398533883238217465485656465673548347251866778544412561396884888616516878611894895532341512717316429638367591691387349257129199671244478939861765776764596693549831614726777969112398993713668315378589528713765892892126278741649617332722981922123139998332681942986511928276575964537385725446661899249443124796735272953865745148154226216844166199177774737591644693868219942412866284955886885169487388168752118946186318498886742528784643848952291758173731367371827128199699534246657327884681486183325896513789312163799472715665523793562588843245949336233143923588276611445475179949876938858851249469695184757891116584318162584921346719199228896656292136163917411767539971971773183918138379829239452258571356227759291227735822361423437643465984263993365192481473624177688942297438675713569214967566759475663174656458441639884811662293148925873899474127426674859766741855165394649616312878523287918968512186474278191949911734775442347169883528656676378831648367823892434419831189375432259678211862776798953226421697527665867686893682643726167492848977312952631535859755195623769187897714599992339158424764752593924478769578481799877695633862328768827783556349163954318372333426686544964913445747761492168959474299852476462858318457548715525815657751682395687228774635913478959919979511419477889968122657486431893633136116379835786224255491995983365344989198613338714535123115747926826939725951939197334174734924997938795935541164866549524159458812426981292613161958232662844448253155935118846841533847699876995781191989519898752827974334765418999134767276369651729898764698464842533228643136689767129479227294178853168478532315839579234698243945351269246865376248564877866541771684332535938313423766896254888342696912424835945629464947123788171929755446329172825712882158661249924383185945179964731523399112192832496779679831913139946674378683981586798167762133337774778274881291533512946179653254644343783855879953448192825273517791488249589454489154587993292478229631346148785843834187646871573988338453879394155639838827394895421694893771183294689244437953154986586981361594657876531727235566658911932592859145897195731514539113983733556484841471246331846718422549484796955416284875366216851369442535391686398945878223567573581261478345788672926628163616395671721318437364333472794778764145155297493823584251362869415716733416114737953118376245976699459873954841781367649768641978954136919427613863366688716719835237752465186451883796597451315228996934383999442315558845129962525248169986785556277788871655982836424333445957831831986357233339258854932785285871244956996266688721163194944963647434583332337915228568492417363421917157451543994536836549999775986211911112594181924299385515921454215871554859326815349841481599986573497223515496978489765476184582255249174951319883243785547931775445321228171587633936372312927388153139697626461119945419338734669751339386277175711412416277613341732682589698134447988538317416416662436927656495918192164313657574219366327858959639877697548465836913638569958876921119324338514829723148672674367752836283683444283556851354225231243995754499522649389176547123975836416521428627155914379291384377827593133587914373895295596848187346584531797112846121415726488113324578541265244579259976562526296541588827816612275752353144269721214971751249142869525117386477151211963657487188962431342557478362396993647423168379145261233674616429272267235848351994373574275582291298982937639874747935695181674558341394777792229551796495157712981646617471376836373981816911447759415295295982373354594936212876915977748515575365812292628139378152621694583558652612813431117464184873897668877151561866444147998495835584685999646297395658541198659763293582747694238477433766171975554562947583328696794268373832727678467842575444427413857779378717769417662522496893739382657865999218657969258536355911818536625836699729882125999288919465951921559162165939978411386918999363545493276685228246188728391328394756516915589963817726769514451415844559657755982566418357881567516775274852964341622144949913595617248252256812941987244366652979289395968372664827876638787794426912646849118674491832585216747367741464395887297853887917279831911858697979436934545863814629291932682185611168727691748528926346669177389395644279188343493925715585452598795918987168827955261714735552213119235251347348532949778983164967889541559584876476879679326463822496368518855313182999278622231325511653855355572817596766434495535188675522439765886645196411667848498389441721671551785841396792396381116592882514458787452742858896824958634425224974791767628369974563116593526925236339763973267185875814619579724661892718812993312328684842181963938378752356998223565264851949714337287182785688761416745599413747572227877851385882411294457967698397738371869735866532944849179431959515926946977194698336833859653124427838245618873651713781691231639282512117638395833826718864255415711984693277815399368515917327842654841798995257541514728769595726536224248859384614987573674849136918459427398548924292899674586678588562172236555415449779233734168654547683861489853572478314926583381848257325935335282769871587441464588989453375316713863152953677137896961882939584179776716948512368473856779213699962867231127579573111976128764691599487788783514529944181757751538877484562939319699545684144868479786431956933684719525748156571892482739462655262129229342615546958778792214716168185982528839935591146663383283937768253887978146758662438398656563754539927783637334529731466467141828122455851645995966998786523252489116274794386957812259616317328877599731579687699376424478542826465262455472919298198242498799936498735763469699593657763925979738837476633393989649582643165683877468911163185586382645437275168472887643788333321657428689487725916417898624598332379538181391417466491798475919193191445499936714697714945686832619672772969876417431123831885113298781162177678667896914789466717267597894853955772693311578915785855976442883963177649665723991281994837683489592443393653278196818336746925614417483611163223441167395515678768818327119352491268983317629522841788965841365478551551645663269747876516274762265186974897947875725394656834833363268597578185784888366883131757392598397384424223465574662255783474549165842496228999872793912758877993838865656398995626278337669619564852691678135885451288162697292193742833641469588825141563696398192571826629284629875845846879315415371872765676116488814276549351483956578688823792547452851726752883696172787111991199677774269484283664348132666666439883284998183717899967482269979314316937633274778423822277768264245857333444162286118151688789777619536747243448734657769353166798575523232227931159575985795167811842434829711679559894128181344477476355372339963574651135611156782891818869297825869631727573689875511586356645624951997391586431759968563642773281931358924671241768192726269716369756797586686485349323251337459722964496942398124284366599728157567675649738246314526762734626892168764474862765128495834589835989244224292142911694355478394445163888766798365899765279718649213469977777157918642247955536838929259378684371666523728519187178967291528766785838798189762279686333971544883729568482979273945491378178341957677449351413219423482969977385714739431216533494264446275788541982725765693144596388754574764172597858628137367838355614348649744525953574164267654428665598629272764871297239782394638581369544978958612153276939195547363526938177537898744555644793468873622147421499769862982483351725135583746251149266978396829358315897957793861597199349791613392849746368163731812914947758215117274689663594648577267318133769365411531698181832993765789662912955229163669168934975269248468193517549943275813661718668974695677624483878329359416587811332494766731284367352931271337748732546399126561873859725929685823249889264571789194923993285835555831379933628696742618978541551627713973784192496653486584939567626415631998943726459169229595869843336295666348649382262198238393222698726717695363197882533798798327942628559254998183869672954764177559561672914563919126647737747698617866151439224676169637461818576939443544868866138594348431399846232367858327888974629996483891971449887357678724261871641669946617926634152945147929436111891139951887821998832952523184917931789961545697156895727327741365633987185189898191723639569839274471856827494177158174744961156674545175125876792917512854536725465419955621782137643329952653873784512915682867916999368586887593431558971649977964916271848494731112329719796668969484444435662275989285532825655517288736321864366488715386187686923417786626195133952639244726394978242848244188766356494194885839611297749773379579577966969372775314576775161996289931411319999349423579174563993521863775648118839183738568426894874881496841581859394499672624997995592717365178731235591156878795426796911495478763712361369989585921154869376626412598842636488421847552356413361191757921134577522562967143556934894977715595974363154647579142636678911728963599239172785243621771998857883972215987481417889141994717629959779212245881923215966687791993984133157645648261877647775129852389432456331564147768921251897995958516339428758892482394533965619713924976885825435759423171891336485399811551858247934178566234133225978719544477997299474145954834637696968429269339676273339458437826699851331191837729743941525974566894364897873224321731976469519834953236973737638611384411883358693535792452354592397187946593413395379315241918842984895138611618612842969989761782328878564835418121278664975599124924285654691449534129795988939479212698775145941395735843612679159284695581372753835979524652258269585931557573821361677434753124393159589655255873857475629781269253888843987425871992991381796717273343241455492266734854784447799898665576448915626449459129895198267248134448274792838893418544483932998785548643376553115976374999142336788236617914444167981175994239737773861695189426639979172899843871886696371954889864665321747329172733349737339915895883932454744341538948283456853242726735222651927921487665498961779439287449425751728593494389863891625814419245155199112866474885717617818563324663533846239273478992382843983725457575866822449316863764888614395699432826883846852911673357956962296894469257815469561612721547811251223486462681846153637431742322625388171599248724799988979354718695476177879598957883441224462651298726512821186831752742969462318669424337379829827128828799827978495174231765291973499775738826344541366271897766652443698984368269545172198873636953172492266718157812394932537985434262986857877816876857247247576477165725265834166612235372765432697916788631575368697352311486766815884828743525214172958644356948731846918911994292561674218727939211861486712664553611865418729759661362247975762874847741758343664894621693816638475163723226986897336674497873697315263776536793674321744749777821556833358241133392884636725969696164481116574567713655275199975423817994429598813812471479916956481692166387887454495719985563132381214159596626317592117886759541592721537763477816196237556846145339223225977319467198468593812185278829624489453257347586732586625145568789893721883135196643521737937861776693724489571827481863453864256453838132435511519447769885844571582648282123126922479984647911196958496758625876138356849393768471473363419485247911217958393368275999599223776326526134384337958325964435119829936473779446426125588879555816471239818641278142243657211222245152699287133766753448793764455651966754148261296866898618566458497873167889469868444856584821463285379899928397971714657421564997224977232279697539217397474387388843277163616658122241956381454735964768739991562138129481847434554133495912769812784969198422375752863288821357371891498748343795444951446898564457568552976414466334792464953811345315656938693497299976792889877116744225834832971662683761427149765113124399736328594992793253574944124167872526437951721739783555225519575978237799279544373837939915159116796976579983348413965576616792469926996633581958971767528224761555117555347275864461628498162977313161614813873266535731421456835267357488258858163394879999255846899766948698886466463118995297172955411141936742915628128648598785688172725215558246761691415729838899558887872533875467868921166677479148934479743465171378758743892249138983342758219465795273972425867773883647182424166847884171597397818633874538737442437882492698258448893221224379975246886812718719929674362892984851838254443459134157226965294621673172348843186795672113738156815324957142588135279579814255148168825571521549278869475192475764969351554265767718514413229677214675966353181358558528216462515985213654147684759765732635725893544525769614779858312235417142194241679673776151361389228453982757659931346936893181653741544232376195276171451529697267972435762779689768156425629748391523816442394315623544343357957594523218265244179867611595227839633168336882323979789334925428489983743845546919697994516963366165876298372551279541979482715837976415455421914148399499936473169139379771835318297896245337432167349446923928898921644636377375414259983467844749718238945553616323432326923276428854951943674746163249368942338876123874947869364962756293158163753351645135171151979448755728459255382947999714965566382781567865941747894693691465317152629644149276236978268586232137463937247255925511685737578599955798734342472273442147166969956914797917388568824689587877518247235635216985735996864827789186798628418342898768271113914588846967555589396376712991429647511831814519859225373477895469518274991663621461748584526156749358116955297257517683938849493182635171366438159983962522934489176164683829412237571324282126916348526729169839437622194154136758494283414972913531938814348984651954477881764841898675122413599796855145648622757699473872738344593762624951991871559142118928882916289481394272828234611743728826952773271168359717328259889244554734168525997686188494597684793661842867677756686987229226488645679894441579921366763458693623738813668179166987627341455657358247474958329399664116422133869353748595479523832793889912549918952268749152475811885515384153769477371474759891324141963866137859583418373336197136699787552386871499985876789973119553874114329684329397926183695791113191924194347541555184887164123368747381956786193263871628968162967521576725948535814761563678885975521648835885884518166892643849229132678177734728688717118728993962499539739361758199967828285318977533696223723497739529676972868875794166977261696757414975327518232732993739988522751359289739257285632773626689376599458931212738998533273374688668893191426758726915184942452331793298857719738863441132499948431263581125457737442176694785414881569959412975321737691462889572334953256417433793586887955187879129988226193428937424242795536288334637319278548727349341729888295596363611614321252172288242633858842143639672151684926825838956457674799696561937346869195227336347924841874565225146571324469665316413733385152674436787259968889383824231867985835754536588943794278226372823512712994994232168791279171696799263271112397424192789643967375148469731654513175236747829176639279577672875583892485158252533698122431154463827191236171332696137391363979179764437988413357391999771766253751695681278433855728364966799882434454548378582199245516555536352147826323628933269189936977787974533977472469815839279538556227173738153721499913915329786853224134453246847649499643935495413412993712282753332631347111588968758969749121764842445232827798519133542257634864769491761692997824639614675613821332967881787778944999689398183992295652813876361983636463674261572125561986781199529848871795747817363896244922974339429336343447728364762731129269539835653651922923939651599446216569663871862748951885191877896919165992823754282162598588121772292839414715791745177324835579677127999643876364618574833953483379536696641126667826659486539918573895471317325682255769622116187791957193512646888886218671364672599692225524418414931317466658132395336558115428279439248715196513163474119999479853725959259659592264295159715371274339622371594884168339973291267466843629582141624175561465226259178661314278927166161791613254623534531898886593844698468637367467363199227274984782694278746663138715337987679985182668989165513389167962947759756719852938668916118199168817711744184971824834554994431747645963789966594791269169788882573399377174494436345176323196998986557857327542966138398894924125624263311671359491667295643982475368427197731782659975867181574265678458893677758464459439474166761667438232338268681355338248871746249868236984949393158759659484298819669926194127887481811273498618837276849913537933771289729654462979791695244522978598256388794297151567924917174558367483695927765178634791442542975454923162589958733295832976734943563459311379357182399962399579868927918664391817497649927534688782138994665235637841569447921164288741984576662643193686296495153748779835514459388173429379932787522479359294933796767379289146954672658349523978453892332326363936815896756536327527865729331623794117645586832129419687291483298844937751142495469768816426732868342696973396913543979851371641924327625481557577143327322315274684857638157466459772885339781429895939572215921557938412626959812784371758835387518389693859696761686757625937864418218823525982931534944646263673744537369461454983882754783985674983658829198417482891198659528363299396699483342322154489596352534914117173938762129283662498491992816151819423584861396422189945664362415334823751738445342246654453174488919816194996393477391261296286656829652188562719995219531317237945813386715931897157459363429971695319543528368223886133795735854586869259627217848999659144674679278492619898136112212456581575475699559799273723838757145436428379395589423216424611679955467733491314817584874874751739991358434566223989397866392313561422542917923537399295585158487679939277638135485464274354518375378745727166214946512762293758654249764725457259959736877142981997458612752576413844667986855912672637266467475832194354279798922913839739169889978412496751684766123147934623571898791321476945342229648988729985547384282621679214544153653666322843947462592864174481952812661695352783414229569352895634461938959166732455987332592928332459744565992289618333134924475717488762483152384419162285998854687548591682847355122623921281726765651156155854863583887867894974291686397132624683646566483857486988939189246986369449126796747399713873582732691671636975417139782652674185511469847742192466436314645533998316853721125659937187139857543789261837977914245935789523441847512373411651376738956164948449432972956631997789731979488734249887146923822617218654835891553114567968317649952723614921458561525222111467575999157959382291724853583785451473768872363767479631416228765924693878179966994558183687953478659683717374591625177848752863919142867121757713578869855721298375149989415261918477745819939621753219915499734577933944452791367421173659692411748559732677887486438835289235339318419494528995862491834554275241185452863459892597291633499965518499427749526225567669269747269649799674375243765681249949358315218225894999987457452853875754262116867513858297661366529828478888471551417325129876486474128762772418598677222639251478458726284333714262418852322495723176151784192939138719581345139865166381422425117555158453197777174875668337971619179356157276122752864872435175544398368942867953517871271869922256498721417498994416984259839169989959338439365899878294549888667325942992989568247831997539984169483739998428214949287812213619937828597927959758163816927658862272371772761993288194589718958313622865388587833121789932973367646197121882576557916267142832221961625417657928644248786834595495755196764655951531394799168714896431478625764788186937648748351987493599711811342244691273161511135574358776778594431442133683943156684953367645499131966855374693731339513186514559461927226713784423439224667449578732546647313637898636858644659636829771179266689842193988799437385995214424257326644268592357255619987112548584958559662888312946534426842359974597957855259713889318564624295532664844977291282869258559173821772655659795556488111148676795237835558885149832759414312592377499884671624318425913195515133299999623351226265961859452734968459765783126636498883423794471579761546976417872382114742945365884774712644149672555187682945593697852673992269147767751417164392546442739879559579567466567181781617867952678951673891224793418924958525333566765829327161987667882195112886724454637884912582352616719942373347798575255766683472426689352138951753227221817841991113962976564355396256183262334279857858434383955783118914237321583711648289817271138311348851365826297718433739148983914831447998938285653917329679462365429144691443122674454649286362777296319578414671612929478792143843926459828914911451292322199651837686927471917389483944259457485834822694297686739878962161943817167977629116961371879876533138237528282552369145742685276859688118124867243415896893791959299957157887489472263576761931852388545988695673622127293887657876461876468862776466353796195161629414888817124927372896796653127848428484928455556341448832799567993585151788694397239319246438274747888757921361179787539131536957315677366636251585417264841118255646177639936873571227477881559154896473128898286583473747345776876213327489333656987259385524176984634922748485159376374731568161512373497539471577797753949344732983572162863788388922867775967136696619357745936148933279323898399476424548745753673438725992145165439193967243786594233457749429351558536831317658651518949665685672177154839169663161515446179538735328216368318174242163999991792594994135788559484727974242239344318919622258157155319471667155922783154279829755725595652253791927748464277388519892469785685975799766312427567535663279796811647768923656356169989163471653211776268535274581661856289153996577553688387431947181113389516923499345247244268261768589881754283795744878834849786839794653664289512535882842951339489383396585317448292471419327738438273442937781796344114591615178222534635363477621737144414911658489644123692927266596447576284834775685887778423985687742781835779353471779513867581875569236743387878646584999313532529924491591958958597856463591579448477586274328321717844983694359661594656393516249126493956538671985339789289664158934398746487826477415662498655198382938924175996985432961515859892494458942158991673285518834292499631497433339177439584381349445217842578884328678732555584399484918879963143231786662235494866811366435795778391472952161188656211973969345967483412831777612619688618282265146933385413183698465567487542329939979927484726584145289218246927637143594733564641637913278445976145632749394739474191548518269992546699366573521258817158255978992923361625641578743572855694159691264534364675851713815875572236611387114322588443995152447424479788556823137715613418294286228948773685937515386423482421329451431493632577727318319181942766266347197999374793891884781259836594424535939682683181769494688359228775692235961363333463717184476587691176466826235725696614284193653289312698354728942878142785335576213639131276838997743597337969166997852923784896268334229279864818982354818378898287484859573748416173816113343684823317861683472781352547553674638988567535595193812432345614485791868158873667892967863373535263698886936598748393578868199193799623629692666455868925486196791977545154321112531929398548771912978837457394916911422559941548625752441691692943254856758181941563923664766515211454214158317698487386619725287841718772195826531669326896751671984787342343956864562759781833228986525922456978666838881443716726793231155188321699722172585396833421225533836379875873192121259177815128916269274888646658885364687883267334958759477956232852128934181776257381512383949835742877894147294282234929839954148235131733185739635664848455448713768995325919139187271863654719862541381447637461469985987664177839892624621393113933954196715699238792385886619399531363663167724452699992799139734244967729785936751516662761958854313418761768584296239135142426687522811426666348859486158378865941876722996896922738967945689936371925124918842653933489839384761358645728978383299273456978648399919518663429832395672876359235576398748631184655194578497912911575839738353939666452981479473588942754821992536371377793414646318872358888714197974328114776646262459183232823561527256957456977565694474512593512718658696537234452995998294553589153681385424915951472392789546923327551986128898455354174581214426382754443588759494184559836586184997228875225621517748623171752697155716242787622412756338931229959612857619716941898928967966445914815718189469374895177951986241896378936248586149323453714188771563376611257472376962269999748786523124455499173724514636983458186496351397298462852239118346532516295399863341643181694584641135133925536877582941781812873971414222163162874245479851716277934643199998176888263777738694558688531388911768574775194764963125988147398236825336815781146331656618636427512342352565891439984343482853787995288843517614576441527759267591271748165617985264433529619547911628833398653157781612596475766595269798275391768495872883366661959164849379994147816154875795762663641486862851394854596944977759767921874511412591427644519696957931954774843277295951599871139457418683926847951829631897597326594798117645533566523279357634364842657291674886856217756976583775285713379243536688124896472669138218637127255949885416849178134881621553755515267184847712781596969626323354333141524329643824259637927816754547217778679395139166344523386569773754965687448425151345698481883891838619237651822394893332547535677981868154753791854737427932383567994139155781583862465728268877737893689469223275264857753927468184318833975964518383553351912423979227455586695988898794896221117695827144818688789461692529981548969116132491657777358641168537384991183545785154985814159233381435241632685396795466895665745484996625343795633455792366755368324566991965921724247968932687664883495925392386836857893628425287546468516773844981624466635572893913475727368579977659644191187412878245717698648773352634199841463323422284886499923718876549623874619417137571974245561396578463441887464986973694731898263211584768862783612717643112949993489219151336294769386388513962698484235723372277499479893266174928631686613651176573171711667443998893491676966248475545628884938393646338868736454338958684398754295199828795395555266377172112466887423661748172336825311541156849656781562548886288843852356232415613436771869486975789298829836117897481441431885796325561683952199987777287257778888846187832866324813857128811617932558196559648971958123296681646296796384286869576689769851458149639745899214128722454485925991564853695571976641365142631135673592666828474626439634432198134658789968436657982562918689362475711748594856978484579482765324814493164423178855875898318556488514141299882736135247715685378943622165687447946184774869124163986196237496733956885769334259176759779326252642262633665467269744691311765912745863276743515286829832796886142764152578468699894237128335158358475724469842597648692942372118983912448812275648429854696884934743168551774428249728474476463138266993545494829379247346823961139197744581341963388891399628471695938862273835999559523645929897463396355587172259888369277468961566948732852574467614418965395727929347925583586576538761298847516816186979772674632862976754375452898835291595942365996419913911895463843754369948426847819993364796842237594956715526825871625187684174669513668834516378886472283857919524248114937538945793851534698431976737391497832492167981968831577341754659976451782244786344227365648714574975848367482135969656774526263895957495279438257294649338688932532831381916413499524416891552725836963163883528296542453362886743764345649829778376887944819911229264288154552865283764164429635672387426517792315633843145688131998857782691682579746212812111773599487328832681383786934654782466878241594136394462761314716843266926541545278959881732119284859658456582929314823869136564786733419141672116366988794545767993855965267514727331985237959788569597922346237362162323794319821891567546613784289989236321545747916661944361829999181344126566852338728621123434411786788797714733665214862281261644481227446584913132957659695873143994634693712326768613651722383885658255584125659643337839736363933256676922386193759984266827423773856479619695662526444677381222771682786558953353825983948745933547582415979647882969654987697639813134666538412634994621126519733185952932995185334316395432875227351618889573698485964388655913177121163165812375626441541643381584641624467242544264861547789724232591878292382247536377311292548167158396269495632969349156891521952776712127719174899589376948245774981536659486698799155323167139323597315225595956634144988593926133835346623695533666736414519247377366645786394282525633969574491286635673959731382518476761115568775127749796139335333542169588399944142194548717844376868188915384418638598929477755629984875946876627945655559498598328671129545876972358564618627477947697638679117427339491994618365938648686882823836961711569761156676379431376989428869152538262223463472569533541436583314259367372956928965938167345385951159445969991985157635868123135589345284515319382679775264682798372388288621155121675398828259749712868315944972649128973597946117194784983661822623259925611682481732619659125748439587538935238664997742888712318984745682645937696562893754429266279679627624125572788677564564555423839234269529565252796343164812445436856617634633884721384212147139223385458497723893239976977913165546651924547723251867753391151516448119468154527762679185159986388836956787982962186499373434569561531993823499421558393432528965428772559649477985712524824344833769976365981163847956198531297916551578538168959361767566797544767471318346425351647452383972599863369264237867444151714958969466382954627779632278192525288662442365428197143713952479411978938168576944353315373882715343939891336949884868164579188334395297629545531732259189272516241658667675811158517612472856622188359149248799969671156257659874619249837113141897985724763861173241887325618817987593734478667148849795515879959638568924618251697435974427994325593454355935375632386386288276259334745359526426158968763284477435565447733853386317939948919282772839745234377294124888267398823518954224991468928194646591383244344673681575227137121558522992548155273718181218964216285279132386939542377862132423375872226937172362421728661699995328543313255169739483664955518938683872723443142454949657715863749993288369615181586892665293639197828942344171826235195761835597638782492462973729356674893294474274413166856693845625546268464692549281171294174618632925887931386176496596174571797387611747424384831194682121678822484532379494981388345393352148769698297459258858893479591111872988346398153125991277648888141662328762235466152973812745833537115345147524946699465527386256889428951976384297423551819291742939799945246726639661977172912851944571887196373224774899981598656454473986833827663439732184557376236428464152526157694569278777851274195336474564588326973629318725797234549946713575143449263665866963351445524131847592695889141831152431689963318952575481992984548485187182653294648221391959659161164798754714223971433721981295738865514196843381359228747869945593334225721858983258725854182499634436671558711849519479245737177331692685317324549485591386547393729368795514473191537715199799648249214214891394368762773677994876991185965815292679583524776928474533422212413436538966979549911168826274687781948557559656252699685299985578324527969817144743481899319447976538234869549424253671551369953321566661437215496746586317382572379454336376293621471337499492972783683586612335859421395589479342732984962296925548659898725511793988436412853942631264648459176798481882979452662373756624199285654982517749468126973378571817649525498881694511858678617493834846717584441897415456791214963217834993398153451485776378438344745271519975916164431682567179128875224385862352166889893526343493213136745613211788188123995515136633441738338297711587976528742788245192868598471719171922119938758365946662685659328749191241658151878495677431456137525182866955243276996993272847182335848235989183878168991565435132764462543786271392846761785659128694365612867242715679427242913981968354467493476142136449665653761438472123692693168213618929562492158915867989941297239557966296613957143747878667664982791589439785825149477993158184534312836843818656697316921268743872922421274851278497418616942711547995386632393954841151467592741721197268548214667949567373149931632364794166656461417459413141413289314418973551625218853875348758797559128763412694746939415924823685994225157125398284871487948842977576389811937287847142473253653133689382894437328583749874647927599638792886666523368789682871342173294952781656844842684499687745187476536542729462138436264228778389417884152349477678218354765634837113777299332793918389752821664389624973391288543558169948871387225111935647622688342836557979588567584592438851936792866586282547881397667587968257953157489579656957222632335171343121921153248715548169189864927798372374588511274648585412377287348721978885798383584534199143945995298259487666771114227148687614436895879993636687129261729753734187823381998421963515266321934878894341323427171864777784827489156697753886494448765695957485388176179616931166276336598671946933751559695991884999648754521993713745212111623455644985818591565648268972867359293466231845567773113615797237857928626563141562189358479312924256735135568257525441917758561967571343335467978535689184647897855483427167586436626956936792272937323976547198396861275835818854132798928881155292994365783415491889173235258833534715679778724912966279386979495862288337546399452614259236418532968296538895772673679648599657592249875347375758766524533985146266118159973355393348942367658616582874854478314369222998588196852249746911862311232378571138992238273277947797195496477822728481931458276988856391676694958595325196272671236843259742312967214359772966594839556339537743827295924463622646333754755183425558291128542333816277187838775571752546832495442496732729488164644982231445825971612962567634871167488129289483934356667331676547917187253774761296239271789848775738817887491922237251476763136814779183549291512673242438588925956826953569769776313846419443132325767557713975797771233852567237541275545491283259117596342168536515921889261176659945743862365675632921497587688984283254996644769931932328978355358319967483185434642142829527525861273973312248493639474763862713115244767288276636896815497768533639929579865795482878987457384222167163511765217863496242483537158761696841384673655518928692318138655325685951251531142726843529455231159889914676411663512511315719996377438258994569153227116847993669871435198947494263133467784376241428867777989968738499297145194585556657746825682839138422131178685297514476199453794564644881512923411986128732977784668757696651434346379835998721845833729424395153856776118138626267466169917393928985528661181725489473245437646732213185764679528998381463987864675529763538758696988621681748195396371196777388738752844744777837842231575839841539888286147854186135143755446835278752481677123857736183437942144598369984798473552226239932116846434665988273541171738386864145284869855295987382771918923893199511212514857486845818819336358711431974957163175259281749928461221974859832893778347634469182659978137233513668871271876152666553859156331574983759491962835171247285675976893231986364334249198628234948995726335984889427891189915622785152261317795981855716515816142127643835339195663619758285537218318556386693918327996646126322599458139228758142542748516798247256584936176596395167253872434288273172693749727486974923382899762845987383315154144146673991188562787274989891238166277485967955718368652465671744867463216167132874618997991878657275418152188767797171252317281676914849966738366775591797468477316715238346152466688447941642334797614574862964192156324491541597536368912839921151195685958569278485757424456998295454189393711642642163825514873583166584361682518384295967669245868134566818318836144128552512749617546414243898116682934982797656822181752131655915649583789873391359871546665288715597131251581243539736876862419546452115648316736488913958866164949849787468611765676966469788589948555316128966929257687685368163978225298538787824781853262765739957326793511169988372324745383659735949796878153923573395426652492298994219171693381266914183694615563959813682572847954757735182928958821811288275472248183754567719386397321956252536496267511211134754814689512559933912639884192196855284699452498762557912533195395879425215261754153231624235356694616558219815571275625675686373512555295649791291486444415447168832874869643137492679737937363547251333744759876724614184555696852659665432375281338742653617668696876618595898164448635178636986566493189121827291762124888315525966261781543211998399284636851347523368711179483259728768475554789766163263911446613775739355162528565969938823346669589533286364922669497298684576259314346141973713874846343957681556685658719162933393773749425986386737486886612237993538225947931673953758352812987246743999579847213271896561459443632858687157465794156471618391796843814739245566492722679782713981872197315648664294246364462872399475743883893583129894966712936513996693656457211615578559999518966722699657767956633169958671356123436839222652918495327534559978984885941643732314583846818772898345113632362129754657543323362752414273721285394214978791686933584819716676563974542777739163868889377631667939168737582369877883176455239668933951834473575119985978336858814626514557923288519943248637547422988716649655599122221421695577614665851677475538937699358781623369198924764622488761936594756572838223673724985378852863175197768499911476994548332523745795978247548687234183257757539227331271463211869858749153929697964152732894381114122811715955666615259345864525797145642636964383711349331962355863119474954171414888452877415286194273796619382138382511394965959157194855557986984199333331198965185369273454812286543677933965222678245114618922127927649472598744527173699594626568724384988745849646184187641668773579838967447798761527496893387188827492739933817252566574591733177317829991739284454839798622983933435478953883878714987945955957292211791883728617564861826469347168388645835462622175716788162519814128642138225133595346549352558555585286193567461885659656941288156555439975268764745924979561366565865478819964766846311976813525851631896583581576273933228199496383342646366721352478698155325665632485553737616547686261747731756321711782175188922854861894658267615173668872483416423726887288991645371793493443119617149722974285731729768412653881917288234736199223379186474659795843229387987797988532471744921565731168189564242145948691369513354689379842989914698112879459477898232469728325474643448188578325535262167567127884967785412126355192842711824698984451475166888328788481721973981594764157676159811893253511949289899956168892844289277969718718552547121165972727662922118647786573782117666833743284419952567942536156188849672541563559872816945921983325692875984146319699971791661425834314816627934164685317659822623262414444896167849827865766553938492598627195871825954389793293499455986963746511579449198233678597798216914917356975521165249885948393721436927826397629987993975155399186385125821827954219515187113854133937727774864887764819574362444383437134926384665881628178523738929964751113422659878543218962797532843141287267272386415877844567924195613739635153916363817317217719499658576865336764345717783629215178646627229666764458174787751853477539689922997194667931955261288678374748244859656959347193442554613868697538857836928347749759375675867355272545821776466745681924117795387121349683391788144382311851436259863481459767237389767696559988593734391298458911425616963259649654799616983871872819876697995314748756967688588265412542771483475129649554813188568829244612938646598642822766711491785918396641862248552717625225353167932731712625965388733145385123186856218976954586145118416941372781977169531383361684442622835599968569882738487568232349452857898579947355993867216163747632368494331866854954638939467594887476228589481225746721884988322562532427243366669867941667494516875532941134464476647896135854121557992677654848644893233195185751986266778779899398966664261879784646652234229441487476177871228628664786493432785382758292689195191883249785374731418744988722375293385587311355257686174613332962919397499394769873724342289152183169546329959892699532932486842891731543284696845547793154886956178565759296372336659449534844952453493555934778899569776235985465246421875982715787712568436271122253113255465698473889977826112348272198397323716541423688696844547643366199165492565169765936135295973139632818765257915294482483422896535613942891512132294739584886511846427448579717665737824875151587685966197977631975749843919285622214667887267849486597612617928856157784658477965839773147533215277831473262867958377471697581614822356455332121588123935457666726724959354567771185124525467661134259948986399585171987532277544495293169895986865756812464359743912269695853171747629452863786172334359334222128834173436694453474471244813687747691949429717964119644954781774949651485736978359416874469611625662216598886132689935923783889459994143986983739676186275961514196787261885679481838313192642918818381896171431759592464898361682274538168517636137457184272485768389287995265217818112581165317925799911866661261977148878582254796968943323339692855641153862367285477558716934275183982852873255629176119168796481769444924787794271898471151816476229551394886365559683878463515313517685989879592723977459633949399128741594798216163658415158513254464263899417199878778599994989457339411724773466994567349155428295864114736829856672373612878451165689767265257619737651588943251158558763465392265674889521322774511823915442538439585819455359964433387751592828393346561922759559675861991857693139124878154999922461659921864621458664384197376815334186386385856484595563191276741388578514323811191523796288761534664171823737529834637971689926971628841591768625742429343862927355498123739744535825952842353876965489759748167836456626232152137371927531462697949497619586919486192377698463583762888214391358714235862692439695238549255154998475829642173519391374817527211419215931441382962798984624416578183619485254766648866365355236479638197344659465391293455628552876396122247692777266666397754892196227438687481962825416624247977588873456829753566111737792179435733552936495182474557278618685623991166788246948522514855434665592382531642397569563924855161242785589499348696844561813854173229276895673811599717132697859621993177883798977682729444979835939114336191941337765785385367613121927781582995848514752444922223186344156988759926751275152513623849422416692278973878853658719655259397784675814594432584757194944638981335123851267582993697729882246428851418663778649374926744937948729936553787199739344217764268387388724835454899322947495192934221496451733717192327615365643682258546564979792459855982786727687948379968646277985722994397324558595196383167689657982258129718983658826134398489338154988993453563937834763577214937929136958859218943197135173673474655655715462766148118353189941347384691844919635398684169511679884758847158186318557228842353625688135596886854986534511665421778894352914696151714598925718988149671363298625128724368813514186834964574944769479811839599378733549779357992396935929789159788495124146198336893611459864831269312561387542125722723472461349615173893523464879969841878686484963661686415119459298538446242675153377397222686116991785173832496881826484565532995466583155691187172492996747151662857924687858688693868861557682541953255472933739685381931478215989388922616999493125692199656963188217752475483287491382114295714164964354157735622426793854838373666796534689238874846326247154138522761873731982824527936739696399127734535157798353891129915985633153465358742475879785826199732222744211729539154568691312718216697177424358766288117929693813482133749236453664469759856297783243345539811537159349119949389881671948693311882465333499354798732159592484947237238644727899169428111932488864866678613681662136683738731444386995322694434877593817651767786978232583467998762335433853796185321873682818835569336738697876277495945655335232574381158728274167762194147116947858995796759282973692936651322816411993837177943594849999167945453329596937636127214887992581571499957191666355547875269457657332798823875479245624819313713973638531927328551417828284632953192472186571355989752377294512648133496465631719287973116653414453721274556435237672143666276366464474858332279942128565536311731876631347442973261586875248768188945818855659968147567571295923659553786788794451499985821761832847941447786598716591361454946498885629497565145945542248545761381915536579775665668333827763189381516411143985593143438759545463517678763961738279551379677917629967337769677828897721748127238268697677874773213382834363463282429564755734487262872175393136785995948763854717678162495818299638195967274699681189188898357997997458344668866482791716387352633434916189397634357137945861372285994915897617198957139768599287581759421576966273855881236562795971573731246467523999881995185618235457838966555616269331669459115194741295414216814269465894441344396496854422742875992516219169551486639553424956953519659279268671195939494223114475716142339743566447221737499721216592243262183174533256818472265931576891319219662681129348222969457385384637676174627944429187565153371333899171177673842815684658855663885587643313518411675318719947534431175279423944423873895587971161928238826982798761818827569838635452684242627464721479549188458979792683179737964214916314855586579987961995179214192962679643145459714799122545888715842717832636277861718456321854536897712214363554777685791271387373379293821875733685369339286124972571723178724165
