26192251948952706588702836107410331087448351640742640885216712602796892335682403420748241273676128710546144470201892673020993667043224618979397492511110321991233116367293149999048270344011316354148424261212758126525212644171004011252573850289913035461249092308555004552121312202035225634395228033253871475730171149416247139229247685543851172695240078274201371617131944760628404960890441236703406236136133235727156994772345721190780403485530399612975826879424712660869680585837916855921991562746543974915589304977360950567938898502507711390594888996729110318092117829290241022761324280725344921746061182834606008885297891789184657823361480782645925854075574749824972005275964762762663710333108884667105160647330664164177729920951596250067313921533470577062230171328586642539663715957249640226993414074016510717976657525787120687945122054295189194082897418373550956594854405067819357002827262479012714613645021477187709848123549099476915764806473290564983257376715985737934771895453430562419355783184850343789793432992488230137274748690385584786986697530989212889103175229121845729508056046024848242435425587585477691692274104475792350032613298832745080881028534432562943066088960467136083748219985956982123938547104586875545330280909590467584423197958396331384649489586819986078249693465528178737675765786269093594573370725951558009819869130629821912380625959854744176832219357864338533184267285692416677083380942255438808944996729618486444128448077731611428473143719459612904263102804798420644790350037523728566080558041033761910321556183204917397609135920983533451908122381016908984350623546649859940454841712827333168355319053915177159743062415505358281533300792229213539672398405224976650346465519970877802946398223680371782918432145639018226453499968185894676836000149123477898864647359872131644571796530091252471036212100757822280832570644699782257422548562824195453284487083836227664146248212453150551915349248774901311271555303246464566758866226994380069272071061308146208080000397936332415084922423423616705877085727796491560815454310744497614876065271960346066555808366005005380876453194579908190074085879741352472211379916520777435518249434539607576960614808192433827362008097626812658872482828780746670069784115950905916991032005347821354029530120623462972801976824818429631966913932034040760384985690062841371110767416609100381376108678696900125444368321707138331076075917080299982297184187137727490873871052633692769638773251198156398607425246191309268190001505891468055574214193854556245228740396807049290955588836651729078554154380214830536239673347182282064815388844957013461328066428376756532913997418054736682262077671267654994104787299571920678497666438483270792496420306047977436876369633484449538798420216174642716437387792927495855500261840637488158845012543873713702168610066695810772081496937359745105288537905607464736667504012330874932588069815378872490631755903218612897899163897251278021190930739531691903980037148615374126766066781164203939720998738687773680511166629441067871886744847586520122064741798614268623729267851808058216813457325649368722526143997744147567766183705553550053857513984813803547521941807480365800860968212958267228927705345131064445843622959470812345874285557317227827820103338418789086283400507158974813423783613969870067394034068850176676441493473882812778999811812796435657843920735310269408938047337215152565080986095035926379041556010881274770249251299762866409801562726543478800386007477545972201183626101513299413999736676643429788391928559338898758802787709819130038731071671071041919252718013883312498900267126493330985278708937403492398162115930928428063421706877878956890866423946288683561488464044380566937829597077559931901380980588597480790866106826689681201903709842884635852296017900032582779030592972865447909815887221242934047240688546663349912768533113775851113806259560868538971100514661700715326522132174626142821007290712004505101515499981488886109893945654911189350220930616536385500875810293000656258418806153848914656843989875519255753055327786165763406644553457833620702256366718908555456424831321696833347739798659771355455090609509222360392798315630889167343873662585098279205704121048418380381294212764628948481860310257203702829292541391089342775742805772203079815719119612273205115061536349062280536192603758020617757945411280814288775396450313629707999815341846038732837282589226556984621023260018201150786910486829987899805568271845041764668146534806966884258482309586370144808560588560290508201413722388125030063489778191053472187395796175144556538240845526161967768144392704862724356777372474193927577150025588160535568038471127236600626533360662780258871140776316478475552892833949050087517238918129744867951508159827006216421736719375726065630815369483743168837901597890732082740427768535517712676517270373382323193851854163062492620035495937133228542187056092746484937029205016571565523896262291950956672882051194108881379707846141794256008406585852604160756852865296303193404080788663349248968494613832972480302427953409840783840297238480055197017745827479258259201440148940942057476644970455402101390003704907283210748637044219878610435217450162574752921161009492532878392386953105481552791715928912745501747900044810482745571084345094553031115526782396601334168746828653789338503102218381604495168288476554418711890524891596149509102274792236146446208690591088872377433871046874169128830057631883897689178757531471073956913275708960387505558387685413054851957275080422960594728363627898763445523721202374584225866445203643877164933181272154678852697847886078547999984479268642949098985944655170557892897691385481089869433797549336428904719154710198106974687672669912649538366176598620953192834581604240299765055363560807526666437336842430735912617055019629524703324299740896630116729784117280267755644913168176569509878812122464987868117470083083633759908898589482528589853723309260300180000360630225869179417303223466132591952936167265553299786760545124103571634918830936244941552909208843956549892294554227391509122880336324205423977452029113189978429301249417661116048237246403057869356456950106386057883357729617669613628815836372209922186669787289761158141847047854626016598325598019549685926723136711376393117111650143691721010634563047697727001222644363939050982628819527194429620392407433646654615992310678503904358863321207394260970029439844612516587499273749059902238814084812091230357753460706002362677962885236322458945110465762991257465705544366812716309578614950853910023379771633316546202235836110086338431513020476994881939406231755577750254517142584125868426459013616391485275224525318539086066063207217201219917082137508446349474726610056427606742754452187884291626063127649969949711299642930829407188432954774368160274121857109691908701718452572778415498594471999276719401293183285602102933158810301142394387739131372069703911836215912689156426475273562219581527467213239645596197840802054990621540238781287136301413934638692187134547342623237422691187993140348427476608133596770545708213531841370375143060865718382238790211584979417836982445882965865206223932211329283683877452754205520903091132578152020808969756014837524953385751631314290860446111636294947953169711130455765489008232071989795815906881067282516568322804258719083064936545625560915669627953833294920394125640029016616727950872708618321078687108605503834842798240261384652072671417662336442935575641669099980891302554218416675575724208926845979430471612639352011445494843113391557018853269314308926397879044898059051821282755078682963481743314490128058402387741007495875537454847772140211057487914682846599986403251274689496849833899939486959851441437565459983437384864693003480635287016672469437596630790207650515948797434244217291096517459327078670492429301665082034116488177807498573399737322241500804160059923577478128958410209058257940125459783862189592961923629237879701313128781206881333612501609154707027473005493880727803825852867858816566129488416736067008363703886901414536011384624561322890161778880254778136044657978778698663283765788453284214869498543144881113913091520389224368282615543712856385880497155285079562178823523338428702434847718764964401351858612335680071361530412718798717846948344461240046236337429325750530975553706567129863080059760438504505974377164598886559930359591223558556927422042461318842081061615405802506442457995958258589456189533353535950060151121009144853599179992270114092881006957343136097130266809088654173034545473446217767994296672896202491895030288325070609261083040166241332127001278547191861437773488904895353475467534998660378269336380997495899690460581147934425447836895458031029781771118995641590378846821357929855937445025216356690464682607199740969777454045256053566669803269395956040577587066956691440039347104114572503823663792807897774205693370384784593736234776902903916293427758603860563985982365139479426132908845441367470653110832553829645855717118021402882622144548298389669846144639648847362003923803455478459599537144548892159787776128332531593948615531066514819514485159978563229161876558399699733102421192692368452446390904068522356324865783091518631171473331151977633971800145203486250753573089825370124634834175540656563376785019271229434679098673702955990048905854513349605632842723822294433929502094629823048296318093673345976390768066955106161530958679855487253385893207184638028829727648170804760700977846682843195739517680032468014919138628738798356992103157328460277309345762989442777012775538037724911625939445853509417154660620118364716619657485885360543995667586557115541482650677293959283818286114993008558901440687014524578301134039038180349906135101997174600675335326715451052987023965268723615257809076950452316588660300218681718992628205869083188746152655786266272727972017440403543897283312689343818509333957389320207931202752511022449125432568175119417503247981962102772376966052174469524225827730793087708818941258302416206781554547786569135261512060743076574686785660705774718103093678188138995924602127104586115014355511182358859322906245299669069012971140594880837638115292228804606870920052265071794865321052827372364018032816669782673232514038334380606044085898113299313441092740749159447181264920171745053142760747678590552208335829688744374642132907663635253889361798678102171734128970454581527635882834848359830031030989802421472439933331882623804909940518137869495002512755214847295773286221837444851287399902983628261442235473669191863296123992513924309059188660774416067240111813266504534170653306343028413618550729309076898888752860303029985487104561177622587714512687074653586600007570035186742781152822782398203003895476475288995829850512981880038954766714182211672787946005062577558209005558463620562085630011314205255733238680697249717079670688751833827647816643154411045786785779717257178738524528259133795567991412482555704065859835064748299758743332024547540162783489087059010163965997875811907493035252141498619289435187004166915627847310360748002463191787933077329015045521277076385844699163202760056532023502281447970211851126684612324657064114762827712882812748374723125931331940477503211604061275483092874012768658704026666438818584144162499838275901443733697163641223593148121616409456176364465644066377839048544432431163893962362054206942333084746037247843087586300030415916812109703648720290700375066359802124794804327413249816597843924530512546409532679282369506070308977429258993654816119964126160563547694580317835430804619713895830460631697268748142113048699821908767347889716850491099269085376433927088886379653693418187858367483039300965669040416997010035128789519123077023693284774040583651691918845398075017459349155497719875146116716541367838110728176276115729803872631909832498290909880316075500429147204113687667818756469856540106463095408170597245753593118016222419415257226325594896793370259871550162749873555999435309559987178223308061127365627885362453720487342099601683662464978489029832931659345588159197062984815266481673796521587574973811496414129978909617244672083523888791690285411947480193899736760886300981669332183587436088835830484116736986372792339058863501121021992822008589175827466147663763612941288062850017748562566670713660311833902976736021090327814692463446355364530129465973713591183742945596239905059750313402968160342527711827531351683804386487160523347308805656280927024022782558179877511911092304614130608286626832931837707138316473954582796436847367845141899055842863432173757463606209600891732153666468580658205435872470264074465589573319204537584045241652178236273703463849150492369753425496006827626880408967027240709002793380712647959617124315053593304430362892086038390079092370129822314930176695169921382839221331474073948395677911367322124755250715148980233054659840775578378753593645238505283885355401633715940729774307186371174677134442264715534003166472023988837908826219055176711123727218189706242052458048643435214745304755687338567810084950385580336784775609795678127282143153608630142694865534890970194503259440734740843377480848817577234373879909782727252670331134394655178614075130700078420348494103413776234009703909211912062076605198081225222065482311979102959113643341125946887381678306857004794178870831537797782042514515974917311860476961924829083997896088879935230935862449959911103337576480441454450456394700959953923340862774628771044416371997710318669590525130587196195694877461004199416626767921973477188366165024091385310138425260277319000114191536311303748283724870205801206733533602383763245497745998909668759845172297902668691828701772238026334061490656088481978639330524950413222468705737413556828638708530781439216490417031543601195069528750543325186714950023088649780159380536584884174445654066336989927293493095650901404130349165094642577454612186357191994139332567124568126652588471137665147635311647066609501065439317444391883930990308605092734539513004286496619225465843667641684931143156873263022634939128921120430991773443294216021314226248718914525938638337436763582741752512615482508118090565893133505610810197496886989297370855614587133815666639864951938106056418549767576133177574921252938794306353838075319799744844264002582331893796532147608476771585835669926582543735776608607527780678811687488458881284470932433263824985648877592975194726815454933709788625046151062838806464386401626134286488964047863191048629726020434696931015441550915799116379535206213467517801927296171582383554381180245903465316089124583077766711163371746721103421856596560461254407896428241206597789241349963348499731185411406088616234317961084523652503382261625352444917972265681649618141388346945292304824471938305537455985499381622252910844101109155994080106434898873116353195483226882814542255172006850806791381493366764126435426388657480325923917457002420400841778883509603018799126890144472965032278337015985415397764182491880626656998173987232000918000561385571216885098853075777223492873540150299534279805917451734850900785190590908388263432628577079183285515205108502434956649836061764097891698870212721755268136151406341253424494352954172876156224193515478438880514255067174059294557147255557084711495448320967228118438401143327949115181474115960746318773407444297966303907898549926560462144593952663755884022577873102458033322954667284103181045221060999979620879678453897868774945952754590338710555414255547069805349338648564411289344733212741504439024343070595344097360825950338206381908515471393182739888667488382227993180822598733337913266654457922592740209404287010534295300724804746045379818342584666466468137887286684939149748145351595745058945727670972500325981011827891210617276745140334948549975544063079177357644483497200519062742488965490749020367869486177735870556771452010647547458492108548447645874574694833876796659866786228621616931222314880346684128605470140607022126978143027501409396703415070674404816632599030834509671294375673320834832401106624077815730693958475124312605923521807702492630307468978472372494152875734705385353519972405159270047971846548443582169662619103574947608496597962144327218834898705249097519910441422954997165236162888726518593801489615537257087503513921482631917081368351034878438480365880413148454587437093845020049205664207127000795613261376293997280368733323471267499564013403410564564262414534177322717705217255602977437563744435259038066157832711411410549455034224154978468789261499964616650402486524254276019024033478526616162569772451061344569686473931692572963566799894820724573023728097186602362464143246711824448774819484351569516629515043411492566581606025523912525727008416086663164738186668207474957850194535718490025854605614267628485092060096678357795531027354594782212056713620821984732987484330722374227768203049361787921933323817776813189690587181326793998839695413380341974360590311243411006719828720089131434493765809143653484316341428775076986551494836468491287241029844486170494588057364063478258772843106777572757615724100095291660611754874677878772028170424703178570323972580802296807399374851885909630914138084483980384984279966284845887014063154025888482819231526093418250325368697234024762820279248354623845491992229120826053538239042314697902813833234496746631214470793291953299422719795884697445378048310578253207061256675047104241667771771698499203533857507270080507399468690495294635333836470514588417283125796905373752869447190383376935361804656064003356015420080369076572374484875786339146195091177940872847795122132101717014509473568145518967638954844859648417208985415807328476160826896594746745902699474412886483361863444344337285960806249646246945662748100355709513733167776339154795900976296438815655327552949158599391514362518038248527355859188359110772373999138582183840429468998428042991138638548998950553219767330215506729157316707349113384369699334424682998627143554945724509039368770670226407301294778060913404748360329214659493829345052179596111348178020831190271638431880919145465743174078328391483550995260198871110808547674101687644818185834138822335664756344158572571595339748169620149387717269324540087510807955600287358953182178702979607109990773687944741582155900913769893548376113972416310345501953028000204535515535428707592589435267523986905021704820063274549987941407509365536241881152689696616629974320595321302813054954276934773263240519118134395388205401036855968239496464030150273394165971386648730966331482849920793586920589656077003624112894491649965658533809609763766832049102420374097500689406073776711597887798516054593075733138936821669302219253634524162378444838666687972784247320773212992517967980573244401568139124496123428306485776638239421093129987932489699248824845928483591777494945886761654339483834237960815152762455480333797398497845286350996684112216641419822675166572541255154923193553428388722773389042161083218758154611216236165315167817417761342887799548912089064612706085875315516345160689393642693557164662516354890129623827669427327463848392028867655211922667552239519467968554666344242090137397464373987602796665705451565043118840361088428861034717371674122681753721844700773210546632669564180828307282925680006042710107806794600414304333533380691711265331583839519574121215392152896061144761288951410013161550825420964614368343469179254248025634113515668141097036925404202035974725464432248266619772655500866951421142624858305348911513394630055121107755862255693034606270551203369574403533807905182656937542872411280814979933309305197069055101839766946325284468464708342383656534948110713626682760686097190662293356526746304639883554390550340475405979070846772101058586463108471413580861875156465842964242236343527848015967003998101456458597892041917658016510828604995697676113025187196341010225027149179386857273684144147591841817008228428009454201437197309339358618677829615363459464805498409979989004365107418688390962268933970098535479030385779016998215366950030532358346094551870872736153087334804040963662994845851279413145420973144874581799908911894329304145631760357002037582575550886430044362248137291527954001385234557642959103419436244796693266328380015497046518154658594622644046897253637350302362498968574956090197083199252077178673823989244535374877791240827077784178256478802186698668460673355422370797328235817475474578666655465599292213139642831669090856307721916630591527639215622286377222312556641713228593867114738861356371795077380633714859961719143674408147225690606473026206728813083083401954397715341635189704062164056555862277142670633016579868587475766622254574774133335281343225452473922424076899021658227217480077146690454468077565013476578803557172226163435941624315610761586701082503790155922899309342946448620111380474042157031987215526181194005918631397927219254269416526776189454063826921773700532491072400115934132524611968344749553021198466883189245808539929534601280285297714815547923257180553076626160541826369535171260603786273270149106940173021288333576604844797550578596193393339898414874283894121437259153541325095330283514515718274193936746559166926235884165438776587030883494929596189071846136401340570637294690498685689304763599487450179740041616349628940041968971710601907996705084868441938955822146504125220140398772658590346942434714656600468185671054411751874084293426077016091383136063855315685644145274376382637566625007806974856275125230826166893465727189771141736008106485875788736885645754057599727250431597671546277237106048844175582472404719892939078610382179057754221915622513706061618259906026353574892261323304954534599315879873710931449052965110432926451916505542398216138132657149366960574903902604163166309884644112520128794389394535407992489450937304448244379613954574914440276140918439000459540640559541212537831362941553630859095849684967799121746832296896131533009106188568568322640850072247790829645130750910465537035621203936497087570152819181354878078535498007998056574768296901541818151381494328435454979603912377134513237729516260768225729827662695242650822269218190661160779852674818213164349074220385342413683084469198756850180130382297810172516386230461719156980835123068116471626675085050642190671607904345168407700760193736881065723701892832566247949669805900101401745927533892713095044136816591239055554687428457731271271014546825371759880005436255807149548944869298536955470079098792957580253725882192295870481187733973403749796898324179287504390254463572020028345103319390926504215263880923006432564580608996468844483066601124129761720889508985910522190769487729551714639057746059102358070604736052199789866774912183923330102051949232621403579804547149952857916078345758732945706927110413997385321456860170612116204019037144992570540525929442573148974241238668700550379160133529479438232828738963727117903159572969596282578426157890261405480311713848702143566451849646167217050218206537419733022649470334731847198829500008449195907849882401953666425830507000577465687553156943909396690279194447560330254894798957549272068843085569533747491165517039395050095786275219399638381300189376651092713505438403450945565707224713990695762117493382345367549766905143163344157302038982567169521794967032150489493717407486787362150518415537544606714946758949542942144832727354655229363189543010906301966482582916503169893248814310697981909226920217688752165567434695102194371185167879257584469345654794085989005375865814614762233464222628209850644105545832581881827857786116019810686312305180408312556174462995676802213840638575075460087164149843667360160999579087864016427994322949004259725516368506926806073499495842098261041690841492262422797304920068891371771143571659586979795321407949456497054349407927199395909000696957139128913882820800285663606736632732539543484102542915535101363053384141813081905162092874586165008635857362714280719349719494741241111553735878504993460925588985967207868984090026890540123603454752986095793375503402665823687174985489517661975034425181027795035150525821493582362837676174329496166606602238306466735787625338231417564097839713159821558636127909032109440322524367907560037179082729182684779744869476054440820158041971318767344604137943195440293786602508420295023537662247130227233727925144254974922492612301994023385551424046875129270956904052899178828550117679123798037576910706752061891954212973530845618496355473457211645182987495517854370402230295192908434448387312874416329446811003682942646205273132794313079120277990132682015328191201860593733611626659874079884947807261088123925685157370635098351688958864462633692067718893984123656837161892118861807374415994138273000608613155189807882681068133071694530040856288056276818658586721997803945854561853027356010660880310275301689634246686784061542559747426447277196787563323861405633989676938465229442106953724559815443609432980119471089954023241022230878843981686649709533262505750136734278825741321423857979393326512613932052374211703053458716609624104673316706762035019465152245910379275109326795313484985955013499059730171188569548874433909484912877534790043639259362100652201007212809774200012315528979460073980531915098878686920745211175042008936590620732732745357600196250272152266519757649029477475162356144050069602088560715652410270382762221594794900181311644840654466623218155443252530488087576649599216408965729715360014033649174590158029806454252499875327887742046948136742680918681160210448957647419679738210790815762732931144354233232671450265357648228316806220520405437738302410271146093134454064077009951368130588762127329146035802119224915190668105172821884554699050232911715341945880912451017060493851269080162980766228645126943227528893652991291056488170913973020427025621138732537008245137562193149717339837129284852672639419449013986113698584755719023173010929779182113129955681305765922856534981833272089390676864682645957301874233411457851856299150653663688341403666650180786472260277289405911560250851903437653578326488719802261547903724964737780482663163677631376848945386280013902608725571788612325586747518895577344442519963158267683103612306393941922857729089002184114041205858067878957550422655097613327841200160202567042781596867922687684571954716442184562269650118913782295440153747191861821514301663348016928904325196724374855178610338535346392219779561597387229098055619995150941942265193661806036982302854030332527376529310938599172343369060237367477818421834661207663147522855665239554995259084471199086676623867023845885107097164553501138317465751461487448571047360974439618082791577438492652540942068307918807331732164542347056815617028560607643683147432630448703883293076728301446637559355089823684154049577727694405706867354810417076306199593470011154982216953427863398916393748470814352028898121987246737705049503469373048077355294064951597012567557253175213057876237296382984663332535693033507701862867275377843514269409399004245112744203034919125776279468467176910073783014488323134798980721545984486285856060315246543044722006598359463852155245582581965066029679291474128834259874706904793447238783314338975864932742316696120578576018905139787469101096858979204239242272225696825211592071301136173255983249166125550932114682146079884556744171831134616743028116780764367927590066161427914144423102899727168147137614160957464255497230253546566616425002989166626946564771088981481707645464242702377495608493121359974633780516952911937991954117199626310229900995108610358842603102961898354412269842213438831907044143012950521984390968464386001906474139621024738054999193866878825187920001090623727540924169827797677848514143380661307095281832560816926142824368462268671514580316347914005420646232571979003485833900403118554488992607002650389482269682274027498633253580475604274855835573502515581123775347651941390661525554421929511718054938957104582488156143122521965415855455270566065044438110348267620558993670724892878756456461101521529491484129819793684730064492663339607401446718583365240495522800498278300292087039939748658445810712380894696207189137220226229981435899500752090772597608581366952844582885823294747660575381649107534381752630601387857855196166370404611138149733796706098540052202406863839135824188347783945040978880112400300865538913066289287266484597117580946495847377106326953548208397883320424400507744781396874111037772673079892076064092972584029915450523630064106809621355729564937875080524159087787849753533672793453686381233121807712387347720259207995611304589666004409723688778644037494742421958792306054617566608589723060406456436264518613266977042583628628377444256212435600767050017913984475979016003127528936893910775349670351725439779963857509863233619647811314528425720572630021794601080562194085097485486840650088312597137669127585301584889100713825456521954001761105815652867522870116512000867729675551492584293604573257186677394887460640084572707066075388966903829228470415168113884516296866495500809014866477698795421819894395434692994841219267785788072687382572344269605959077488825418561356253813574273177855671423181291393443052732005284436583853986168454097151792179552433842160152078178577950152140004476484124434860087309796626853135460050593515159658745502872451641658373150369163055842533388863688261053605492816804776341310432117249367926817975566290215894043894203599437719830883585563793513905756818348462473666382668985738982289689820931435685436995849206129599520755978065143471989047337815190696529092110809366315470198240213372948769375043298670926385747903871953369219990934485937236860514705074321540801697536782415398486727852717109690048516963144804734218590720309234788248840080117409816602815045507622577143305632447800292339926722603501792961244268292251690333372216984021222150945324773441083146491165940031862642046861738638853473028981438929399374967948079894960006895458809288611244924806605477360317589572758273024652828110226352138274426903118446274421033786315982436853990600815347738060190377186618875585464075756360796321744097884150018113669058477260374304705283685986402288990360986874983529794745796814553655954180726762478667864294925642559199801346381538521950572810870995371116623819681804928902219978901528190008191493409774449698957753052330595709738102692023268075147710276156328849025824028744743875875580637233115287972837310152744977873108885480585047034902853462244481161319872620038175881358754571201555175072453142042916741217169885969402266634593788114658158968817716111211924349414633816704254205236860620323153481005765559619813487251003965906322101623539109940790908905368880041064653430136744842413446429291471064545795272268056783621659379692993845776104183580002793102924529661802629179314368991426977926060326417409543200760149411798453540966767845405991354316358189696762677216090443126618388710678252859568968021546019895789109890908812222073405426167401889022563346502086198767753608872497126406877538762981097496642053146955473903401725859047937007811356057204421666031136888105982256448594901036145234769440111621473090386346271766962201696334022663735012823636141741339281438460217781040343032001888451750662679370665654717465165139988246516255657615006214297314740160760497946461715109582945892260947896700917759336924253500656409164518186670423313998649452643494568329225208475554743495451975650063016102669390234672584145161950918296736011402981836998190527301735108171677373955305404848381794727586370854307024765295707986110695384800885841244100185065349997042732780279272881682697176127749334223419005320568970335807552706080390950350401951939093919673740539946739338467150267515196664777022230333080516039045585327140621094575085352684995634363889799409683665319007289626513802687839121811101488226875809264186626258987858536798334045241852125578955753894345578229958059775043540347730986214657907280001839040276725218210644607384662384343222076516286867756537955554494534662177517417100812213075639355683389148544051355684044405666931243594146720374557373977905015717891417819833361771389351476827762906763015923924102559097867119650812133350980502638046512502967245298350392260485766373420940262869437961234297146479766485593945612561072964464949102779586523364414984519430475397565078118854977870812528898080113765388726403313212840213604512518024990674977609449196085773000577021023273108480086197812631309872549299713203761987505693790080410421497596013101753701102312675200020050203208811648804700738242810384831199460047695121441004741717777524679348817725761991051761451956531102583185211669546308547138962260527648152279818595579140310342613781898448787760254775573059109871344045866991340854578693084146924731967443338121092213915714902361141478858760365360136471084123764587666880297020117045838265219363589264397729054014612894494655808718916257883392211238979882364460878526183407085418218375056874372682253364063060443284868256687706316931347290460442529833651089171622090284000678123685866793289322744896964634716362408176158867992944023886731734293612968066196863539190714360288290302012700205988079789316042007057701669631057659449557488347161746882508971110401227237717379887408331004211626116287532536282214458778341720321619528637564753406482677699123370883904881817642486128681432174133266826907339531465323821774034096863108232051705124094038755279573183112440315907020060360691955995702976485696687713956865435065439986676580367126346946683986279212942178243045940322435211372126399739733648630273168032771601981803064633858312341807838729278679797275902611964575955565234835357520152179741629818666405439991651440355256284664632809346028259188215364264417117386869061799930893083776863506671654176930361294612119931571411761911041391797135322307669623264381652953898444006923804658917149028764626297406264826571743177919609645887033631899822162934652614002702354369747018951789297844052538866061454684090576440738901375506496423365603400622911283770378523271235065682318316042883814992759681254691968224215846132323720365494004538010169371025750843786487480054319704388679604402029857508270015433104090437091978691867218976667805487342666156164731836675914848647130723357022314562748956829436774079781819944443818500885976369262151314005629036731492748108800074464472039477191877886016434871506603266443525004486798218762025358792304960024486968888510341187487442770078025286183689620606043363623195335170518690243877097713123361277187028064436187923321611141207410765086474013488022919537900704012173517001302411445912483139498771542079470844201732602367950079726989209963510249539589794887131653733086454413352547077589570907624339500735391077087675610127493272077180837066141999956417341652009942592734606260320698773259059857896569358211519101195561897906778899951069899673469796101144539217850406851967631487460547377258828531762701149200698482966633924248925735274239560954943717966824575983044426521752896307298080810894517385933079141134392545931189523784018229950169283726903447750250672975287828734712662733667827280261923073883793453485474301145909841256783777573783825504293138901956439018644817073079336033639106116014571791279041546654010498829972027044303205977489151724163795294639139380995426673980996044717289891195624867445573571635312659325207339910038982941005555741564800566481927073980690212686740491270193950436609038744161483604744453373178524491448166751394621144513705686801850441843440719254847015989660851026099807368539511510604910624094650922365195012809059514665994801301573895395756477427568157303772913712864306968293675310866367126858432507403252982823703324240784529259729271536455683906584012727175729902000107717261562732909795476441791397499555619155276823250332718638089993231462634122959523726775904988530033550771187727705761561748090969581033591892085608859706014154801260278922557699225632314353710521985831428259305224853983459559582632754161914828071339969742248579956107936079247844450192100058035210098326883021301703262551958176283706706453483604528821593400553851631059795266043892563086043415103703779937871108278633726728605818189754074704006135116348811103177272230310372495816615644296268860904847629915326867510660275583183076526549725485632494839113889324476189456564278667033611769166889167422150963121208864032690987797409889903001663024197519670510381998515633788006564965948675537717560709268660153297897244790739908772672205300791322981386306195292916246837256464489707167598421454232204635936595302885630082213231969029369987880823232278366040635580211846578889715972930832391495949401226119021563074466959778870718011135325019804578184836670736473903470832234661302361909287668840969240917657439906302019916747553413958471712331447526290458491481508114581138248463877036216563949137919224674859486761692951138861057818294613750065226446352515109859732209593840018337511475308855568039118632256747143802239622107945291074708842499635298112659801630305562043628423749178394900302249988076569214856733328854478439610141974725794862473871180650517904895743299373131250920940304656247949092014433806661162851407523864057176509520193670089873974254159971427938188805164334349844772542875668170137506523494014587187651651164972978298220562533563742785040926290547270759173309511070789123991134811363359520329753427161748945976547370030661944214270953929395078237251794006051512398726371962481830010965213481148846223097258643191734283663252627393801087982115505949017427837490452958583834794059398392388705082488205407222870926227480694055212245343321274326656493149588101298701610111070071019683317398953035541795443605629181475395781941270989701570216301576845639840441895311332166164560882611075319566138771402907222433112723726348928211201922204057655743830255553620073431468681351345114104908629097516397655408298858398846896815523342851400867461264959635888791354493330058392530041154746357686501272088483132749637346877146537129001502672232466007916867844779815306892693331886697701669184055465002386377412635014279305712153794974985047468114206801728332724915915631277690303557804877227985019421910204090087099548870895629643643533191666544587567274884783118464213472723162420017624566431457798781840726015736465551188610958484257261585368279945986020846467272455769544874961825592754345573884123628002126500564646747501245388163554880450507695229939682342882341146052765367197046415671483251241674889647390003333068110027731117659724954639638804651560836717390198579816581995505415943311095742118742050603625779147819602479621549767221734624374647440021174395025686408096267756932091398720468110845244249012159448346165181170440589100052251474642143146953587412619484175556716462091284367720688458053054539778408410822628225173835377111898126955461530272879094551989986588395144196995466731920504017840688224272227989688537774988033378832459378961367493713741708325651189709355024846553865059029313970996892393554720927971174954314301948540328996366504750469400630865316875591097730834066918160396623071073979948510248695620772138964466869659659087587450912265044257267032084236434128262787178596467356578931010986244542335764033046273867154203729941091018328485544829271825876221806185432766882205827727707497486002265223304040729291470003419144515559953951209546802237704158756781622468814877655243833838003583760956883464663231463334347875410444890587335932093512835522196826234135534590860637996755358558006852512301390269470161893717809371947061705680760907083608869084347528512441163808394764628834463877711499252568072315718913869404225048107254740599420042118108273417625130146940609192874474914124612504931424805328520404750051437825945827433014943114151383158393913606826628456535592705296772331766848946065575872244168368268574393486304663537408995406184377129583246182011719559428026272545602424202632671190393019632175356312086693501635760277913824317206030425164610055458229622728886234545076394817672563980198516696419270558070001120117612350577920474128403601038290335535829938186061023465619054076758031289148088457911217038815056942459266641310341188867046701241410465292131755671094365404482615368849340592781714942890930246603890454778569704421347239668148561246962361402461071559853427015827002436790492881925087792645110874611661987837838227271568613393647239135146738068922678200364938187467080069261803314804970055396409489905378908601815554286359001358348040602191981821495423648047727280641294350943268861186148628798659987542482502149856593979423423596494429485177009092676451358053328268799217742199918999198431894092792532662120239522083770917035304630387625690028388335548457973169019160757215997840880946645754270512587212679615534019417741951056040041907637503031910592781991509536316485766494626056037401291853875791697180588957393448412069003933440761736851776466219589149677129059396410316274843728639167915919346368383206556740604773172217488397853111172833535782093468037977993476438649493030991797889368504743469517657701341414971865100371467015731976098750587128209127466224346418482683762365251596945180759808629851311891018788308906851341101545995415099882177390729770916117813537683731963934734337987462320371397046177269723746871005759558782123946268744394866266233781198738424772653141949444886170529865799939150343899612171940811537780428172403832395143981843100938559858402280842106758765484985620718722315879721730520295862826857626406460007037580635885117439382749552362178754413002032317100066892908209430033856713050229848716211765807341570355503372900316000826899115419342469275074606885975666569498294197049692755469196522965187865383184389771218739657452715871792426882859176299750826598142124368101334451029672216133198669088399863591686771088926164540799065490024999142267128309174277183656296728104629327237741860077266418293163691920139219770881241628075868201520698925786464744447105074307469536208007758440692609496086992998789883931639310868993550458019874031069191375616732940631248842252638980935798397160759802088502464464039864797739071130077139107170155688786303452130016384688039133024147538698366597278267262293325531246255305455602735011214146626946268198320306464853228053194795289935479536177212566857903865154555679033449729694484262111770559838445358396823230600603513774500150320759783114901807853273617263849835293130901486951619289126944097051036880444810739831438221171145229105755064913964973279841536775038720935242848260071390260675322442917983475121546167838025908721305612000877840785626233770544421135785179463416762374407856507043001878847730124382022488899740881824705246474728981685120994903562783946269585128844179709214912265596934160518278014842583640484094911144261441219894392961902258914941506995530422903549477132220079339343352541813153870564658417531594689157721236033258853462068074791770820988084187594449404884357896152655213278634514358387093652108961880323714990174562257410737993923584369286254250721577864201077304925049483706944574108020800868427932928742847072415224964587274472733245188974068306330179012134137745992775117334836690206363867647536981005406561175348211980192167486645704991998143815486272181787335610169168993466808632625127747330541749569160812966482602062587464450987842346817795019862127303692268500515290535732582186943101441931431621499978191392498843069749435837777501828988517945880467457975264275460484829169489617584072802980565140385139194201079976705144289303419457942914859526087700143425821640283192103784919770259273826835302967927674952029248141138698352260227992296002745021946811850702596083931106716492434498575261097894985711612895323035426380228949513088330680351359758116758707990245002297367548188257359978318510393087361016530286994107920674333980700282575893010446660911535709930017002171302334513198417000765226998082554741814837552484544719559366527373045387037821714799281791224951172808700761122996119528999279735579699970917446340942487092778223042141941394478261928555729772967228006510269138619682530888458066189069787784048132219509269729921128433961245518831657900740305154489276414961378764885054218874661461804849517891498316388805308201295345972884779073319089249579116810916862143634166411268341830595296367275043421930199841230446637244094954104681923498430442427032189017614411646968023496072327369318132296994164883707419045960771402902734280844604487600774564642355087687294539873995423853754525374875368614739319132166717381392750924196938941948385905295707516324267010349337789643433693437337352910933614476335377664727882672134462438956284605812267986604653836764887104067928704922247924101693018587606136630255285427371618223025424155129596826810786167278250371718210040382630517556373793033247755528293156292579536112992238177683910552011955544567490070384011157666994280782006669581379094448158301348843422513489608046554434443124072617906890984720681819377780519371038097405968359947682226756567282246354795472779920524716020536196395192059418013342363668797394414003451476021232007239558896142345505560875772544937277261075392676690857178647237975512419009915485255493885752383956752620447356746627394665953558235341055111182908396125341595076204339497258354318819035480673567395605279306038453871147729534900178177733696041479253696397491724534423679702585174340608577028812950481490232122877203211382119914166346115049708507253983400344800015980658625007554860620206592337554122730926039197304612014731675247758600592352776196599701212690187763054959502081664658791495277864669403160550469513204195075750501222077274585407989346294896951514396463071130066814323730730110191907910928157699848946931793471510308660902449380580514365347940004860454473741620407285699911300843126144895069246116966580216129300019903574906582166088201777227131617433163948191316186082029635307984176965781600372040083817305126341864867604846706066851571966027373755183951597648865982774278063064996561351525692216419284637579502305902824747170682156914843612966377560192571945343425528326262231607017848482064157805117430479596358826320611546451589516167787871471391428057800715446969523964865920933626017671992112359973224683491341535039998502600550177480077081396634516406058753874048471212096637889077593997369696291806801125743487347955095675838389955570771051960834548572000434744032149293586773601743782344717521399533134243263953819742171074979007954986133664465105803438318509622975279137172619224158801667490654543410820129336647336293977561577295446358633393534127688699738734068796461568962603170475829792868381447312248900780678247197929351217972547208712636616823669616904113158568409647100045601229118463630555862191478185255752201004060597107737598727725159988186024094667758202098159235510980530387020843362240452276315737793674184665969877750893350845239138124796839304232656811864883001055428855357319210993798044822845500868924245477474670052860637251769375152331230201612176539206519023010657614523490432418725962778068615100764158136744279227670707264054157390218101031451268867031432464282948234205984798144234645956093006717149059788129793588495343853974852110809680199328530162137660530187279500351474389754529094699189215962364376031666370886952541240965259905441228183797550740356130369381805088357380287635231163533891421318446255458420585104843583759196943048689273780193601021804033995531732082968734579065241014413079686341404170584145958297073146015508087602117298210742899158563449910924673076461544219684526413757518579454663747593100382673776934931164270589914253624087049561196608371091228418631757134327248754471190894712425159657970315318326354092459135772949528815378014517827781200089851019644284477603534677026899150570901806947254773029358465820233887704056155440927020687978472271465977669076378948813864461713467000204272532598733608486297517345447610067320882457810991635349735290504791052151865662973314848657328495633198336027709327857228598993078331883585895655749613920079698355124556840495309768376291510412468681474042541889804727780409089753985698762471675675217001449242073972642758507425355136171410462989407165630496909807183186423794076580691059654669762509995318925736659290764829711592422054132528042994419441004099835953855866350044024811490543146046158406586496010589279731749004889094370218062673698912318199218926792265861924056039268745471748298067500317308198642561635879027273615836838980049703555496696297920457650426070956608165709367809104484894519354559856474918016626292066041110772345758648376549758933709600044187222005568185533908447108315050687499088884107225082929116936873302174402366268838882148092774089756567205411913900609790670793890880245530765557961781418730917523947502170770293813175051136066339984252268447876577092696254281591017215991959825646447264593464823969838474579361847564357634972320314519738824926530836646783458354017656831580608213659306336509995487212747219966819302695568955116402421169646213113495520360765049961202122889790164047586414174420494132343189906803985125848968251076666987251283362742082543746861349949991080929045747140152094889941301982882514923880203940277683974127615983867473137221403456637922359010597418775780515457857185343206679177990899526426337818465832583718699201360146356950302007610288706948367984897352470883940526085810117190423847582868300053170748187025106149561939330447490567744662426203567375555262035931626497295382431061449040900872439997323812994475963048836272206728227322774819693310206552554226669813042069157687188536818711406527106093330729424921327406519905515679945240098085811066864858468126571577265320145092011415540033547257027205045683304268257230920148330995985703760005633940017117754236409828184364284655142196002059715859631319563635360877083993460630519138833012436205925107612649049881570973077652455810104533401165064196334768443126385584765958508153518816104053115723027741731655727945563125949830452288661964377597712730580251313378021504320320733945472253122322759360733327892168000917740746172829870927249136375560553564204353682092000987291874943806104112919149190784337121797092404305756659106499790853452696064557578359261078971930061850026334739002454595761070780558663254648132374293443678000108771793467759557068181241692882601515810506944685262864272173008682508137033297374601283450591950838267620808764593364491734867717990137578240415694752845688265416376496627190703247973648780035193866096062908893842627981636070379831554427135122269484426999094192036339342056384087162005048607155803757206021393481164604863958149790635301819351958018056963990773123218993903229045682060823490797412626410221683171782267428838102415205463977768439702681741239629276321650567531792004023091650039716973276483512555880138668262924365520868563456014447417417788829568229684274072786714526427997613914313811268506427224882876916480925610168077233295815621685520875620703375534585577296389158801177055249926718064432008899415933545293837897929041433261049482611294769855089809759943744581312886793034559865581396954812889806892065615503495624417277172793052224749216313230971070618893241777262190556998194706325015792552951876866746557760011024307310163106520882832220230045136201307814107512860779905685301370391075444710413773857651913770282883471074666640423853354603915976866717636017765361521920037723456853113709160778412478687240821793779399862500629990147081583688004211184167918519707271287572801738454116138488392362624658108071572128531757444920102726371148377896496733639117353134761312550134222751199678407255196064501569665775388406942545734490771333225437529269182285596165036747660509337198367645497451751509501103541887920679980530190345676517967693750578060215624312183141555791493812481251479581021983801479620619998759692421459475257475363874248028195847872994000200807566446626333426412133346225001250113537715285610634839437389904062341963564307361752861429486005859827285188728434874298506570653206763476473579463330625614918528341156355918294954623646297985396259075531858538544613811276522068298170108234940112608453456079764583675979758508543857739541498528683348715184926361722805530969920916139725564455358883813873820386487986181994404174504441797576581649659406467741922976842276815514084437910614963935950394792352517997476129283662969261436669288633659687736700806545950054622994530643353019427307429384615729006406837533012575626753615374783052637522177801363504644724362061860686619945977909826740394322570949884881289618012733991369715157230115463606108235120533264319698261127099845427065576616404170424399974726553045777532608819453008983060302843165763554992205141116377115641965828095404197337521511136805659066978267284742646848829886305043885222844239807584983308971326642763124826061127264841800537375402498626474731855914823723720696579445149533109387191934743924407890431887800075646241701243191167097081432692754421728591610181389562622366037038769993482888416801680245763472170374604304469778095086415578724020643899609108336194281080841953145523242227519093416162400303835875736666735458391905108558103662604011954425974764226559662076644388652186156850346515044414957603560773038407500193475743519043450386005988414400100691718518289106379580350151435136640545762652803841639947357943978938243668659124605218188197395436190121287379713618056907137650240589487640978591212799869481564648191655900759301269476330614204832712254012743464820475921564075990497650483601499504984211729102853528203792627311623633687260559106093429899218623652406061561792824886937267682753983923276386981273806868635025614747706122380181641717092473124373329173572681443008027930214628565391177453955602326676584267644083278450665632261844594536453892938067622197977478275610314150928444111703423265091505594669543188679085006947502481831486432815043825607683410701618271822536743956424392360280778019005847907838512130810723187114291113197120922300229347850962662331040568171752002505407493148771435066075819506628431713868909416481317932491450956759264007614591997369738084758221523236862125625211535053520925357678786785322026837776358258450294239920086389455428914252436938597702859813556926005320211630093177964063372561609262430659410864443153844560946940469018204668407291167047687408572392417268228418889357272538526928388086224489207601146565767059269846280694505675988536892342581322874440338208234119330262749126878035245828545491921527138667260923390243349263186428096374199610886770654877669723945625486488572909891482576415570389528594943665119161542833556355347143659720563966232954950245279738137323142125092390489550174565164235752513253000026234692813775335788252196255505442113038109345102582635007288351219773163660228921713231009292482475066513550682525963496994754895181182246932653440807882618042873261646615597060467670287911663440984260982500539000067478016758741622686377291557453854972800114452115916312258209349667758764073302730239441699060926395315995123279218830706697485073084471250715772145146063624638800349990738236662748039740005450602006248009723118873463565375721447640175788952837043443693041016921057486381964027440325704048571212974577665677625990514095204484626584377873990552807512138520632439193182635618796868988364976211187389472206889397312882082983913884406208388616954340035273595981138314274095979112644855421557799605202094808654953248130094890665525557780753905575372090305783399694870373465967033635095645350280542084369572269180792576858749676974214953074043564327403440698970638850638843635929543772224201739379047065060718627929747165276967489870481168191840576558623451835957880943611211188550318587379089861949133003200193546176489094139680517356003448775599961565077882960721523351824274892490447861403693424714907921547351560161224858545027343902371454316538318768383896214705800580671089634468521858186811742726881185076979546635710463663480939314891514462688242679719664967346396271075286745920209090111180952167363211958730437982747891773793489500208089018277937365624506723635750309922342329573100601691473040241566714952541221232126185021947012564585419546713707580416118283589677789527143433730938916776842931739226954950820575217470738592803225969677846888459703643051401679624204470687110404350217077242270872727042780236745244293985176134661044751807009967551975573578461570130297491433078913611585960518991041382618398317783956125311975527027164267936749959856365089022546575219180695598887970962104203579740615168923701521708868817444189337329508555305605858313313809327998628971206553823789306511843562418325763484288575321961829627681172383040111476914562703410383070219932383915781343592467989642006131481731940638740475104647032842429114573391996863666419711995125729605781043292986454587531805646731333810884648681984738666610041660703883839289421920812095413229574983359801517346861633076197169010987861169640364994895609038254871875283651146511544063022783014817632725001847013879364855109349202842013878243256198386551287613552913420291639368163799728872378818806090504952879932216335655961416089496482080496210238157931492028437763437169444410405677850318068513864277867057334549905736433506294662421920600757669635806431725176560788856299766724728419693974948534467403561718070865398387015653071016055460300260613296001364334133167699466576946758001418751871682671884196276353239544967336817788119800803310744207563958793608156609970183523121189870679307202714562305775408331674661952760042351536519053988170780043401252752962678110373534304301241915605158596556355761163633088292796656031153020203710976335601610731080653001915252073417049214812879687277615523091996048453438459119356776891991210557456605920176426578494589206394291820288283207946413679887698215711021580139852977987778921801523399392954460164508365517929736498526511503495354464579365054357194548299113986114111914578655898103325450696817239423199334589634478051140009577573340161711743333697185558417854130724281588087424389798189132070499502168858615662908969113153554874622154814950142537303981412949734510146269496079208976550604425135641785220471611825396705589040742445899980212952325966268108148202896128372876379434541352132251133716385129345736264681013113141408061263752775660855535512134566333592755526477414558817276640197387072765249222726903659107317541946084547622102289658892231917951886622571221966392816514327653392826740539281312225413702846506903500474298141270601552403683078273219964214840340361576255428284152334734494209921939892765977867568144734917818314954159741323139747491632987502352345421811433092608635571320219054223171094146925678503966858769681105640156644300449114100190232775396715584009477089158772955191528535520868773926404852825493910671675272588578437325567607971579961118201106948307241157297710335149004680782978570595776986778469275474416747541723811577908787650880140420015233674547971744713246302767913483896997092269090551458924530072131967359583306099443105885153207594545384098135022113261464812885198295750472478707172595820656279115039963470741006454678613624773839537163934449116328819490395583535621533368098780438572878580050622603000318928599893450269892299241761280527750277714940865461592319240731264268059239867090778801645945802903304595325062698345261961360148664157235515651986681494782833922644167229387023898264853205568725644559438025837502010763120142087270657632987693950458229266797928913798309774285384011498079520166031992165857636936316858278717496722976683651816616552026384960004449323789432260049401025630812081540268461107186828755288037899314640104894985345041344494681348922478528880865613258902036500151135936058907618018875256101021268632925462803795309107834595796214494538992718849578509798376715576499800274829586649344008359563452500439482181942783103577027638511354132385154834489124576680402409832448332746110057059090705468620334620367174736245932998833889985266777841563258022872959311033065832803011730028936216524631364564448150040737954067615720845457956920263775636339540531611685859337975586802416610236061488202257297065380672026198098406804942078201795205261862387163127959112535806483597445973741632166869380486518198058434731331633518068874707668717046218958235734950264740768954917877963391675249121518391806066740263971174533482135116331960330862777688133710408801878593332088664255381493068741232070691476280091285500510012196260243880047476400504718540918962714292626909643653034897735682955155705050973076486181740938779001067675978143545404728863165552447503153503204196876384500784963496396599430160631947370053049505151779435853881360327427573083488730449012768453956342019102891779509688141777359203906634057047805068061610998644173895339310857314985821402633693959533202139164622145472331348456500585942039360018674061222285919234362586132490682403636313497355211511040611313009190612885610037635370202499562100803757709166577327718893016382418416903724157904580728621383181963881538065271318882983196829520806305474703769530380012447344904963531823259252385784696568815617888095477956702019375448028842715810331939210720088815761485203443861554084589896753444793065414586201569555048286016621869909690823174125169713619972255607405073271753654054854236471669220587068204909784054811784610265546301606799037693676753341369872332143314758905947925285644520453554430712893692115839279916484002131503239497101895767029112945887534074312111398999534800504393375928454312002813044311463715233699846258482869541736657727987965303792746734345983235532923270490673519117718421832874107983489204607256365589370658063235224003636695514174221774164266507142188891835139735565142995003084986175482266337321722286577230225070983361005422046152463607563582298734021581073935221531318074066176235397325009795405351366519167642088870611844666871642775814926293260457695336093023447680682343040856852490731611177144702854722842265303002027000644355890550385806926745020088169375458427305148582768819543772816637136292092230002711709193415356647391733535811631501338680372956996549342862325759311578259059618072610773567885438592654963665243686610153280291024351245302530043533370677222881772084292805026130277765799186355344492149835506487423474838430540349897794582307477639613979779655355011017996450029098830702480439151768871957211710626531908751384601348196819109847908740640281191645795543350035266541523457245942836017526718245936533522176133424546712706793453064033688448622193981030953035777266331287699632948943205539386091705312256024577608417039293204805509037632080666886075513954251431242795115350862036945469578590955818652511053121171020604002905991224236256489650853782561802216429031304709807632734211548123260511880974605946782774760238720345918037197521932206650155510221991499944640191989961116085402672595370360132798823085608812970072927557289380157735185800731431725687528285029724870042469098175278233850706792036318973607076865409167264658433854913585159358203229294489432563952199451764632133664738675340244640681216054792888801017920766494883931273541814320330740848292158144179170597365443870425475949991643405917509871787809156937176381078825373498185981411595419055067086922984592745292686313457711352617339220546798140532838897850876959618166389914446299055060021997085715223640245496595481284829061926490332640131224246919255549705841226986657233570853886783679289146441633469180495998898069213292468985351010776320916826829357513640793156063646215536671715667401348820647714451127942949492010282379815946171153570647538015350231119016978449548479664268433688902361940618601626295508714420736663848818238888613554248660196226519218761003465054712164847094265313727344573313658392800920824234845304233841521198300147778657912171844891456462549989677053078863900259926591169652918018356712589399691649637778020816549609588361464935344701597744329765920918773322451803456858680227722630922266698368438397143968143469716923780152890416324868649592430253297094092915703702113414007118830411379500708392405180778273788940409631654079678509244871927490533702539242609291737721180100281526544587734425806490951499818869650810706928494299839178779831322142523688678350069400841459113887024646995967854044599935089067646912258470935829241573614491066955922579828550175853155470908376494188353816951975287324939246268139503757625883389212120216584564786858069678015365787172938089746070486772089155776821978510356499066845404514672719496942697999567766481662552066440978567380370933378526911719200161738709508148057320404008214454235214684870278140881501765821675722682892461424200632376383540112730679637682059512068284347030617170201864028810559847937070868826341290717543023749497307376006103597887750316526647579794979552458353282321150053188574607041449242252800176244624424961180804185948379868316197089045530906202976800221522348254604083804308683720236980512432962408940081998690075110958294922124409448252801450567943306939743419200731432744874217100509966028963303857671819666031104744622810172597599804132636649096122315240575409348910946865160003615059390895901919985233781298087402576311318446206157860855353381754695687734469696685296950079082818180096312068593437782451384429694463883243124401218785255600523381381050601057048727738964462415553208653559401042200357016142467467242926043126189085564385615083163935236221588408189411988914708392399828725691724685105354717810974461401540689600843465463141308512810609619818192899603561131608015691262142217556379355716164567926529077400745775594320553723933609677004395665294816582993663160435777222436337046575014991177682985267334593133119893401915686051641649231963694761287274544939252472634290521696171998157745519417702416322416593666444753131409293298158628573998073572903548799392106305014122323262150334329288094379871000212965586910610731845397256818687045912544080599863138784132297941483691387432446932032412292368507365555659865843531482020497169463186154941686720130698744559478724365214394990724971384721331578620149874750146976296487318240321413522668036611822636052501525296412314848894043903605748970868472043820431566499608690335844188875246141032894952849343663678561449712889835459374512541240838729901952044301089412030526172541207618969767916731260616208800678237021184178988305558228372633538391870843064490045269503356995857324441711331751868144078923371779758090924992016103567509631392946216552247647683242972545912337567209265470291214493149314356569661324835360324906002404584813066902239034745333893268448126155431969023905443459112212334063083347590495690409466071098661631831951175449514220908754693499966351427422449885806444473622464925974704315232433952760027206575700089029413720642932894250185244515709986528292409960261639732954656904540623567194624637157008673622447570707229937424241294845864526330086366809094489934254600764689209738222013704770365644214491676257397149857172230430711268294744022519696880155632039694892792183789546773721438770966221722197151723814861558929133329886292925963826601442063803602624304202461365064766688358966825336769743282290363212398914761038031662748192363835934617571128093922597783156786162157965738778700502427364138579318685496398233457932516404271986518703255675117720779121743090745322533065974760640327500769846049101542126814332428586467300625989004650555382509212636910956318615405677157419294202618440581605580963735865159739360895961807885554071930495864006761882917610351799717353865133930043170585863097096120892942984462423030819235030600132668166819225747524182429110455183329146102900784114804789759702149198949444268058379365692423605658489761656162383761760218210302837365633201360407707662412319129720979035152722247229318283453125730829323563643377996212528869788970642480688631468216193842867985687326528599965784045028024889990120567609159811249979715118353444729889931801292152931838064891426806679739261039500506345747644891662648473530970687915761859732466032038977330171595889655454275365202236335079688107981154649786487637272747418249672447025308528382088978505032617249472679878405985768814125843306061510535033961860111190586015973972527383746511656767708456793009576752932752252616593668892297651962815834945163108320586829639899406004367651974148303515831874529825016837777364944918071797058549542448144490476912870296539408247972620741445775369853012913277057536960269173049596284563089060809529277154839567852410037178930529274288314255621346345939795389517454486438134804132731985410318319904693787771011572381746992544774642335607597260000135795808900294764460309117630490939301880932284534497197423281417743815400328834707612130544897450609166987538510377503730686686648178161441947514995168556465096473780015877337448349139352661517323403549187948879845441497186345878251026993776934606391992950235142345800406044432683541899444128686959116255188374076446486177607498339643741018060415942235529127860859817574646299985677389876640045648034069217054382968418089694980395195611143790857581377571553972010392530005017931336087091045175044653448459508830050499949440843987659370361876550510029973142148851523005894814751284302141370690599153536901760699281133167520314422703703664845798472792803825916807013888651323718730423604807474616162618650673149114746170176059799109478896025906996032517190540028416829255472642674429398845483254341373555162826768849964339375915605539416475284767875331080989788415393888540713904586806248389798278244555085730652182123976163770439701710770075867281551364773275522653249400668664115986331815796037474500009318444321348383389891558077253722609204578905172298370474781246102072580604139597386278683810618821713797865168645993136037011254725977655780700126186860977438941835398471456233726693891360166204193232783368839280084217085718903167158907181124276789884872351214244061755087441764826762930011669219598998195057885049168004578361838702104900125711332587901434913963252841644244671004392060061629475594351839088183962615747985800771512292014322607780489148376905314711625075927627772337397025334693835494779094758661953468601221630488857310405793671610294973459692495472062194047912978678885871782008838867543760085531420461541493115840039020243210825063651382869014143053331693234983591413234922640733815416289360075726881882774031611803428753413946117829435891553603756687359093426507040658933374972201632075581264761314851231413337503215477210230200251132382691084440394270661673644433980242684285129215821763965629754011722237231019215552185241287798755940458144702413551267916770774780316863972558265179263887546045818629171627360103897159414153157775721353842218932725637975065306280730710361115959698066377614298443277934974243727723237636118228999798755314781009038016700639695718581739035144218220616302592705820380406054291588809306723794164288594834805453910774578065195747828720067305567292270740681057922788246949323125185945482955471983336327829084813962317761358108395947316261698084494374789215267452241113367796951905522713207069607260772418193204838812419770755751311610738385602172045398363220412014793397302304696728499995855481017793661578851360935749692009111167735036915756755714166509245800432449340171051810617592224568805133087246834596486190704248674692049455148276330314037431691038356608438127098873010346757701068660118921243478444028088669012483878402829031475854018710384553940634908046758268953154858930947925354907358012961601231778877774002467395140772309906117075802953913091024655609318987311428685249734275619983939051862484137889249507036835927949215126386232797317762909466183063375832062333930609257432241365426900341886380068326671779625188779642163941180576590995300055956723129091188894228430056123364720975223879955611885386190924937242089914781605528556993789943086129788599756810836865491840463603025649584979765299752095005195858112696157117941201423184576502432710057991882538267326989104061309908023827084942096547887061946047522517910812668599395405890072478554722548130304757740510304198873887488817292358382911456188691172092456495055472005833860585357941392081105393961203671210133935008801453146561298937769178573618199424364749283582699449780362093316577444002324910419694625176066381416221125239127413216103588117670195965380702612163792625879909496269403446964316717334388963089532073866897924181414398787669695264239957605134625446750562345118534283946953303773093728779134499086178400882296474769879676293275935014733657723167660926227445701482521390164652208345804522577096278157943481252310265833980951259291811551810073978110529500188282238401101881994233684360498814585920158776266252372591258158532945319373292356356035654823837352259379760270919172504553962209458703405972500496431274250269219606662648776272035748599134158641314146289608462436481581995440505686774640079137440350405257645776216957907756572704526530682460327606553266620053404281322083294591012612724613470735750970355435827533092296364061147292766848721918744378026144947745475667411690709817951332583488452908490977063049793138922151333816349400983628020399566344596609767801738454500867365307805902267107441919236929220004991958279830071112050059591719967311824073982970431809564279148539453061441912227209752915815111988258625361721245096182613567245583985546691657537583267023701245460013907536540299552230196462574142809383942584104902465395074832489345134368384173508379064845648120297387882211231034481218227626677911032985237741065500038500583339553393638275290553393613945772578003711005641753572246579302247406129319774780448911754147796000726352400988409760185255467298285704502371886964737654575972793023529018373442907687721273755783434614935022081214584489794502921630153087447596997073094315567448552146101594602256130001804215947413817852991140969956678339474755487998246257862933992311431752942532659835569912170019091003004316151298444396754654689512093803711837747537460845154620603693827504340685877690457490255685384665583577350998771702434171498480742242166810777384492375712537682882284235380552606193253321656762400159773798470826790358646647493795937361197090097194158274108764858381116660565310804626191899015470252483208270236850149264248398166039036929607635646942761386626375924734245882290655717883764226508683834691661813548458309742082896707843149536927266384617839894882746791123049933094516390458925446975807015731955266744209297536354029647031079534141248059650106712519113650387496223619388763106442236940653629635646348878726210392760046851821877236378830996645236552665845449197805695724837773388999056605972451019313675997053162322527686432989471536026517602584843953545401367111691417903695200092383262665328146829289634447572538092383629071664482765643268083170661425048672397592842063092080313930569683829257765890577368366808030355041122887796324206940136673956582292991845725363133957015376244718739830596036396334157124787475248304719790760852898133136948602149760154207629195569189900606389413781019013758443884977427264382162927259236611679815559894799827724518861604030894313623568358502479866104884031363370454834089598218675026675593343704212060706338318951133425070122866205969103275301472844129676057588666270150020429590668576190047182998202341252303640525944949621395606451684575741064719301232758756393596269023823037977972236531556297984570688161402783674838395015881148273655748379656108011996721355814883196061546172209523315994466645125703021652904662033940332214216771818987266157105849477905373816662110213772177649382653457509675726368903904993197209688800296638962169020549257781643770588382318559415597061124646339539745147940211835565584496503235242577688915051227414570013927019001503549872915677792232041077385705761338461957624181139825002717317741330344785225291511748047269847769072133409642287164120853674281089935289087779465562092884485553442910662207328736846023321866332994750647216941547310436349904982004148731918448529193853363205815853044548449706560368845746992011178751393068921430407719560922634564209560821680281090064963667871338806432819402853369611010796239121592483195715285694628330185449484702258652364560099307625929017671220901692258242585834983192174087913165923612683017416611156039644251534389669850267097403848483541255798906306405963845792523640411220222411908263823031976951904474078912807518905242919670051394732680680743922865679977417925942985187785980442096050826910340118116447371650772034756629930955278226761072101158043511046704096582657868298542387525609762118151443962899233270798837255798999232054373013665398853515953454951145044867643747815123433868125501713089460597493608477528740121529943861975067846357322494374206506042883526073016668159105571300191145486139941425241115173758854480546181508365559602735829559434220520736162056237707438771347717415459277955869823899535201572399212082259721137485631215043148210221717195060994913091803241361630352498162133559929425088757885495741185278589845885316202684929261820541676992698033993208625066263288370717140779932134461950896490486820128277809625080451054414438950226913234660022349352668132063775741252520703088117333806289656940910386547058146779494486331710174987332510090662089109381614473864530672102318066876412766252689558016007083683913244084841214935075109479682494141413987987053598337674844423605015990841289782283056460941261663691195074592284170590953946221001596998541676871647346076718390636908913991809065531047141208905675177415788794064465324976944244053892183860353488885601611971584992096920771120797702541928132288295402418611158861772155610418805960953957523589465832493661695255833648020766452527688036474036358053504332160087531995688295531749314497968997848183481417023464299257146236728996353586918461958855747566902510202056053261520117046473226523657612009471888030006609426973929241064108543530458138636873294856253081615794690933984875440185846376992287380684756175316436298026138398992699460035830869058451201358888491079354974825575005557398983502453668333890027351094507970626187927618562549435626294155500358160423270590995845822366156670611517979838386240398411885367616152267077839375666613508297551014564060055090559375871464906717981552285354607994442179059951356976220308052433264350619381062569537102746610620291163752643718141371092545571586211541320828318800988438561714612968327209714865660778399382508618478494563775733396896217504811314424337000882862050264135015281664770768016865270001137988908696746447053801395183602674231163181994575644966183696965591820783827514172869482362674790130046759247482230796790729010087933323483242423235892246859789306009467636625500002591849517480561650716631774689953648929666780500914055779230813508781755645954501168237110707249687774218776482807778083347077789332579042702948360586837023095037736272927709192777782644052925861789261723416979552361301441632595475398117390725234130199247093801923333138953347959449144133856220444284998258643145725292335155357276818903513281273900039942901104650753733531168646247686596010955106761433622957463303796895802657493037267771853511393418934287755036566507150576481324764014894692625657444698076964353894129271788339814716277799060507577050212911489690860192015772200730789557790573042688490236979202193608675020957152151817519121149736861019410033300896935549212778407920467557098367291800003454214852597126361182397689448217194803800956120012295221563690777216363847135328505299960626434958574692257917440781276689903110521669272418481848151866200465441335128800952659553964259987916744046021933562488702402084933466596572648260078938855228895007686250314592418144056143718801993868663499158874642528072685364508557927341790930052111734767504717461038269383359514746596466815587977740550944261263415067375754828649287876530478636762086275676178897148709295062364780225004716255904638928016425889878382132903332873442547859094642643705841263166775549307949638513544674313961261620958240647390703976391707023334576932552519954727218462964176274439677231049556481351632911882436184730092914210855743306791166825244540376591025178245554908878727232337426681402446175984981377821168630940569303354791646308865319497721668891111898158589581752967052137207913445848062178644094214202024900551264698946727608738238019826306015768223128550452402591340495968893368742040183892366320315969462333529298525097778745361107994428961860793947599608744214831136848712045320192485621701928337943628964041172098890116166703574011863187477422071241506623905599952448515442531837078861299120900581591698863073407571696272263866216203648841397042166450325032819280461218926654321490457701676000206234940957633727816547419364654584945765593022624918603107709490355099542220789782515429279965572890603589668712034224511703491495103071522088458313068228680231118821105725583839595469631678458691644751988861987380974735400923892172939364647446614943403739598540545911766685403680254571078697779648533619565777956940543093879822806862635514093040645385005984205076059748967359370735261979045265922941461138833641106679181512360831765882709470389768950976489241083008494684668267974667313665457169139714690217926313507702304953772607253615382447926750773979750003993804504424704772001476702526453814764715422200419174496442431079387043688379249759729272420810594606188185829324443021280474009891857822935718374239406833276824270328746700117698176656394320278040110482696390882635150791845104064064980699253944030525873302119716776188372280946899672318609575171865407316832313865656834399184301470548499758075689770179147626362612802483154201317709807550763191706896034612762760968583369605927004830221690229263075279580860035395810210795504944225008171232678358461530876603559648963011975125690765561828916140301254639539883101805145726319089040015059399296073955881344724143836619947234825611985607608432895468479435004468352679726563879788461023364689766767953746001300886337268582758222186972727548800417265420913687045907286040874027801755242831712573735009899313073686356688522624445253525693466168922640378751782017548518439148982458452540456185991961633994424781068499488210436093250687811468735421432427865797125247111688181358499237104142512967771006405810616675626286440432390712343909051112610232979228391881938138783474816945521432492490127557485611651462514633528700835448628429852734910152938211084567272721141687989809983437736877900525597713694852918078907667691722082340230290094070956567897230692256632723704178512945102687630041296971793495512122360335748934203598444695550787841273078328620919691940302094661099456495979057252542274455794363190697206498074045488906362161663402508055891884860818297151768878722884148287078026184545990203424099202390052667881242162880096449823294249882713705014289938804276138007712997388130135587872141714918961336465962001545729727566283331708158057523892374123401322855331154931329143288136263608966816986441863233250358334822362438472162252036328642240876863205163064520233640807271047303045302009243568126343754775428390499074144135854500200986854182346974699578499242387753062095942313355263991514221421962924800409300780015705280007230306613618073871853641577218345435071652845352907153506673295090415576880364101183575657295244682585461052075612784625085404690608890551912895372956386443950806938180006330958529365735868682627509937739141505521475156322160008645623537041431850516741761580734307913076681099613190709255352098706754117561150134082981325950445088261565893409359483063572351877210071949797524868729166040350525740589327609605262166592639863018094641262493900696669626173655186223782515908849196847659390246731015505054804441028705467627112715049845180277397309466739738718441660894468913646796323881606759404821714931153686895364061965262899824346806142143455188073430172490248852294234770956162386108087724505188529886837020135473629810155016532782571625215310749701002553677192584622660418972096797008970108491087645138519484706144412065350972894053094883848472686034836465167982507067076014094001025513896836164959884460498827276608955229835904435091946896147241876110603382409129820905127529579676992921404071075287392285613669821643833006074569356173584268573417355447810565698229377570425686003373221353194504685091841691319254174578143404694815758752653250060446632105085221779689823968753311562859866099342418011688502717654154655967686368704260482100292455520029763090457426721156817323926185160115349002316540270483731781745464288151726383190419876871550970415930703246872106088304148322672913137969970813259424959114620901148294856111359413666094562686769420457342297810621791591259956773174073036467657273756378655863682060750024338696147197751716141321614717414966604102332252727325066217137153260171740921432819930148619659507450763949098208967835462133076398105488120396401301840487607214952944402764059168549250446671681297369954470977107362153974061600375609368196122060355230694965942527967926142467231580761301477533846410292171718554615807126668973515570791856039521179617720266064874767293259626394357521233025744899147220367405865323927749406146443434615086099328708334560752209052009091128462887487644800158605776994390766908307537547764587788586677828331487503677202530004573097122679992965910242549326855453148480304720153363970453668539586607170889471403398154181613533497935876343440261524920547867661125901929669787199405658745775456010114423545436901127776029441460760954130984631134269010616552967052915991198684046162289546406218870249878850857772982876754167064677488166521426247110937932434554540284667148612398966436009599205750126655132074285851499058702926665616846324387353521872056700244078551315412931485685117738935680329396881150765484302923195382609721027607021731029635980855688525760382275769044545962377638936802594535433673291612582511241601673143605506621871706657125131853814053278849449171657983186141323331148030019576515519633620303713189404455873156723174113112746306578043204167172667481055059834818964890138467455489866932872602574416831720313899289370301343878556846834774186752451356950672117003691156825198131994252845984044402862659344050439856467210691990337834443898222272825781618236731497649115248232415904917822395643801905250362467409081444048364532866058790662621766609414258662440629289863079190114375877530421366791834681681351042295019875529104103459363071133572222291664183192740797042148413641627484523015443875617879801514692829956847971484207410340546939620170564521740566562693911677201165830346488908909482370864332408721792075890020170248454981199266414168947850015546778251787760801589856048422093290272487728408693004376339807233121741677211233101219482044903766031773510292089075888201045051276706514453520482356085658794003276397825827551403227545667454733374121318994532767508584857782120752917228463651877756948992534956588419998253186273833800434606024348558170026609194116013217189611134131917844741473204705384879624912888269974475601859240379609468584687072931175074155623178065352902328491188390129055001795006207629334364808942367092178440831690105048785559312471708839083245709880409163036054426498640645557343707765435406072002052843286117585095053576825179985686660770049692616914856301275344396685663017945104624763518289458398832482888392679886925762978827911918018983864290195470436749748606683900022907987270287147553824172559316586878127659419299477567922808167224598846548350256936898321346324441001836066980188226227605657789107266864479754097215575693873055664672856145955713893912819957731476573646402250943581157315870806488285228769257343054006465552731705447976263797526769675316074893263496996012880039554805850849091109602087818702784349009957451140562521446687875807139722018436519925219487696854626085531675389680309417056258075618311833650258885265958027589440768892414318725993243144737450921064748126597801033044510644210355016643498809715345591592561199187339156131689386492599857595114848943453657180031000314764104856864702662716231673427431472268184693665466484447824307576716624753264059402360479975481662787119696514940447764578767497775086555775895047532049727524494060705152625046085067350878838065840406330693542746335071411819956865183108841255443871075690111454998851470983534840748691364502880722178944981484462469278274637586760665352336504735264261830524513284804346174986074883041517811194588404423953295500623844318814741987992025429176930043737806373511275372996314752842774645374003836612554137942382926256999568252031605134822274735080687244469714487966945231765172305412081624539889887163283054060607076093385665726085469798301865323326188130370083759473023973396529945883757848534819545270822665760185119929996921486867510417619857756771646944377433195744582284209910127662014196474346751321355495539055360374449491642327314661553042570515186341995674631425268331646343933259110910220732155113604940755116749059749395164679438764603215336347544315503764292678477022028205724419254687936423351322762496869911746786827709473184584047060713751007236444568219890295446388557880778523955186046738751258056918192089411853544641289179149966029473632763362740584033336978888189628603771308898173997062162423977196111816333774898677674516017907569721911714133611037261970359718162409790810932658831769090527179159453756371700612397643090248118926871111774801798333099616816957502037289876307045384327044232631461997667815659668739444484040705945832462195407164599639448058924557212288771993088896257360056081422568425773239221423375043373074617074206122870998174866399035464409675565782883982088757229583513682615874822550888845113643301912697119964680461060854560797862631363865332948775526351010305337339537279400672886085606439877175478297913571095992826148599491620737761419338329152712294938032380713761256308260090083599997043091051038801011255525501865964196860029229671706851841545918605467613189996907133256214360944011597987263593107870673453398716152128244111457235402833845871880906797332342563496134333948959625876306329589532441497101771403121261675778788715206216614052283926429672658580671662978395026580226142782038236130459345806112698462530311364210225815972992062167588654563024796586570127970616477617471627916171641069797380627350883717013737923083043235159033460156034677157597309947558692703620950179624284993422117034405432064616278912363978012172806618613180337867657345978206602495979744785402136284381530065764308608666201463082598993072820632590603555372244002096036716206271715512304829775098162068120456538562875271327107307908415704655260597525766292627810979147575064038649141371720341030639525316102944511501355171090693491041676998165778302922701553161141666127135429858675429319879394099304964069750841962313786636549674908753312456078201987356889579397539190817471426838974195888238177941123848793633342765403059983652519128593922995507268152838381973996399644038722701273440275464445033212798517693027501602833286362376869728376673015316865973695411579218586974707898982983641749827515240219928582724168218916364307609730144588730725116782271444001659348523885067865593815682919316888282139812449511166422849528372819351182564314495521124316810680032794730179467069391812119169286342444503293645303261480150843051957130917086829489649374213198973049238706893579325431036997032391489539465100823567324631434403586802095950895685325237654106910757142028540434613203934699665282417240157406575872147313978826733939830894553243831851175067564674906162622271085517290804708868637380884974198874341349392873271647716466084503157120876273360830488165680661969870947562157669205931011896611952760131741427610288241142609443910013464089206073609296503416842512106431791554122225231697056404464519386522995843302151825069604675913854250751558380603676707297318105464566125558978744216022620537666767004317087927287134816246833804756967642843430633375211957288138993860431324527810428328492035664286517014405383956164006877734387698463291439418421749150063114184880049054231322378491355907824704314335043533261473396050352324716933455874978696199057459749956733193239578407994144226433056117509217009450263032800088026971927150333660388833277014711385415869578466866901380206953814810367305924902463805940817152304760912213346207662333388756774592395391062691661638555054671460309217986513275362493466484900596188530286097732359529490165071592228699892280267732641728293951630135739520063552341313659033163525117158411694484887882209296588059716074216862028060754109652753632750647190925811125315511051637243054231957677621576864131994379493809485984055403392019040252838706760266759780782315522704796001350010440843331247917865547478141951853850384862649089240177672765269978377811140635728309904707329142227776822351595325188812276887971076127157287250485652840316800208724181091869556018512085461245116034560837880093566653466964605917960046566038107685215362768308702006815976922514967448005150836690950318136406964719943215194717535385121250627629955537562127666407894985351341125375521033480476279382007876335258747091305563067219818106906726787227545556599690781214729719633664130319081237387348954630763183618388951341193360447115598776224989894252425423709485510022480279665969784360141616809016649420492318067062402560341446615166947163453545978565661022575165802386806436767445501480813269978472130340550733414461030738021617137548767550445134491620633094068163439471529963970336892653828658020610269614617729347183590054735772278707284686950082991192257471624255440710927635566222227305428957311406858814689668978261788688385373154031712536772169839720903740020470360966844891028336785047298965184201343148756796055555487818031303217784641033842061933413102729748652524923859758875560900322935108915720523792743164147093444963760250558817065236514739884080393048890341066543115479684036530067267032463023362816496317854883796124698478676166788156124942248333798657637304654088702530807271532448991255264585043908318899160079623135288467688996415437346805264436162662836796636928703470493052610536228779173799066978729196210835722583035138390871433369587212704537186774396398227408687408550895359399347358088721019748847412470247690115614401804401372410886289023555231348023858695660977780365053355470689709466016141941515197549595218068719804452007849525042350724439676029145376695473051845167778075140117583155765745578235933014285474134507385201486433995413251834669893597675157913379566404210284257169700710228827702606482840629383705060430010204554907386223832897494363115380169954694568571590645272508769886072000212763925396902736943575047057040460013578620743917521123889458760114638371918198430174084820683393278497261470220968820855264872884900056776420578825148043298117963866683028303682807983944594630021429400364560821585563583760692801144671779743813737636685984804253560395758073482146234671821869329608748957461807425371114181839712166045578021901646940554637559233303486327025599919471417317291425896166328059949630661694578154924548366508278938933578880330101775657407385232638381032374525590423761290940915117638603171682361986413137491057079887190465382799786027092614501642761531725962032571132123356923001493881536672515025721344613121150102317511976382750928013391410136676294660273366755026729078199338253911207359783213380928041311971913761291539325286046094904659903480403693615787506765553689862951892031925822330699127417766496488869945467343661792238702529021844647128568783937608849833964929876763613380925736226331648357815775115573218637561244337454969999736928560222569165077402689004276332736429717997265704022605964180364882531051868520524965570036293108775614333494015419960027974135859996996909662765630023546156968474644622616876081408616238805832289931557809427102450418458481435763779859203429326808719344215555913454800066449410576369262843145593647218379139879994930006395065789939904284704261774603141432015677523713015119392993514201925889599997026981667715268704447409057316608850887013607001365434748086379551999290396576946245364858719355518424640072290808717048121925540386470065496772824130816616156109650344615632804242490784026224907769134012607630247221538679126518290610681530089676604272176551304008203707619625635409057779243495381742353960014962913445576002361456686999227514088417948060823333388016444352022634166031765345044834921995420577570186777027542778746066862561821441277687240503264866178727890898312256190405502659270385244859576943456618728966157973653474648971381200089470345710659266738933397806108867151664193812698220677430185312823584102019694454797427585443191745933690075093827258277054846159160517593642246079946903389478655358181007299099845596764546262459633648913641257124144016470288540821402346082819945335160143975055710232126209778113267120157471799476628848093919921925917983270485890434925229293777536609587495357367023268253166473344612558112004835648159672326312535307570236231821122749645944913031756074564383595147373134216279890736697718233410517458320588240235006506998002588101166835788127477133469421491544315934337437619920074453434264176574868386285639666189356630877517181073840149569589617888065458174226592974358714378902079533086453017817246569996655268747428298918769093802764108132083219100012635138781986262759368209044531459708029432100259863033051516263319617536996773829263959884095824057647445366128265486891894062860708610161730223577704808308168780675526319964102883717690587581012892581683661044305727398756384541932840021881563612915178653108103257419309655982062793012588394790754271820015096650721523785187070102487559136402574345318906701561766692784157667862627377238108520105188945784293018490172970871262744274590206695032543504044879089813277156527471569378759343097423739092730663640273411706208770388818159901444300578813317065606502097570104362491542064897113936803723776771087871324471413651743410701649432269327230828176007096097615646858553253770760418970065934370247863140409717674058074524176380697770098855972534889204362993745952502275292596615576479297466663610937231348508476065215189713108238687952450255262010473131491695210164793131336229135107328998025099560274676386680718140859286674246048602738336177717492524875870423526876525473651200673707413658929105002823897048500318554964160540683384560315725312475557929467692201056828905649981143222545254265470145872087496895531771066266516602411945877213991747871638183049923039666279590784830905913603385425560703547627623085006542224268549554610431665274728525696081081264897227050105672763238610658377756290867496287874115408487642379057485699136161741472669089475453578548612056527075023831953304518944460930229361923713392595498155587471102009082473548292047804814873496503380214758669814405794310160282616089650685229344071959670180275103049980229815869107773403770468153808036444599725589181981458086184631058311797600642431281962158763695860509452265044986094848119944567522681256796768201648527867642162225337894591595580397964530933214285350015075522638932369641317836456690147530386405551545261793425781877727125457147384249565536676605246833887261679051450727015509142667931294804467129326067632171342044355066141415741720980426536966690268779643092852458043461079262412683731668940381270640806034907154395986992974417694495345255090579495861970576001750159819301796907674618002078583224873130112409183549974632444947188680676849146135587273135471225037738149967070320256495279146467963171717509579305793938600737905412166139758566046570861798735524375402150599210448228223247001183514459274576941013450809846715439281763357408179260678862203676197674031315606958232366919615391424768705356709893947012208245472008624247627279600165548362406152011360864387731524775233869514496638065612388601953848488751086923903124875256834410668076056969150570543510124198373915440170095552514836142348225747996780615677855426517298492009584365043245440164804008693767835703442799785662236941628549031938105920469152737202093994757263554312392985798265771345564294973490950003078844788914239261569565167027017628656471785764552269434279347719769919058457910627971324654306396248796295096787676970178164937822775823028920232976634675974651169949832441778256896683650264738179891970283933362469823894487570639420830805860708518992107739726028796914497400520927517748274961437720818402935893933830048940095195500717787424046363977696395031801889182401560622054082722220733874102674985424879355893385545321202335632174931849641387839909857204874336542293930129089252078048060509484460474811761787777949879180128890340950682942346938863887393485648341362031279106785877214532607086231675369089796813536312455446135570268243257828233833275391783682530416716683715139170522958970008567988856087738911250116177794742263477064773849970178252499225262218196030248040222237059651510902323323607196915639582785092377467255050757271864606488555164443875812548404231197998714641024181708447336677679829439901916489808135981353230256991092763657057488827845874288456530554506627716281322982143651153594297388616337716574308790513993103412386811928263934344506352454626121078571091081010521293791330869347119691204175751641255435450830458904367299627110444412447103742815213185372494248744285804824834016820525651927916443565123090352673069420724918813348009375782150490286477458797375180218192176688114970135744910520057173488725447803886469003950880532930660691051051713552836612407398737554048820868424791641445016959759355457295372862935749708344923516303716189114310580558497899608052524465718034254127840285245951284136096787127659272502559054499968159464757061590556535249094378024828833319110539879905484805889468149612599902479630985565198127356655856908003359794308996617297752767093333925454439592020776064831872951837921724975344165296585457627147179033411034408586848294287497604616509621447517812805221863224667942050455507033299816744757381943851621396106342000397053939254787782585111615920401403683051702811393099588556274693041265686029095079595627211106664062250984531267146645327341312204597744504206942318551473209196312981206626644340706106760608509115147585894402783635079539811894293095492717263516008451834250872293889388546163381330062270136287501309958707390475442168630227908924159058232327044272066302917233440588777468072283686697998015452892032174549862697286273197629008169646531800975396015714097086282489306588044459880122137215570138001783174656113579691183240896144717143560779699015511744912832053442622881927842255213485666530913320168285735929541455088508000347000905755591800168608882771358743323955339225902420103080969222145930609268163149094346598370627756166030141141331306728487806554758719553347611480782051786544207544180823844609934915743607860382056956942081882708343444301292083247001964671313262220831803839199636642038674070667569316725067639178353743382107189439881219400728653825728092304736267530135666795258591086964363316926501702406878110147864388985395080784824099004582265689785961391528661931344942802601003816168722599193112198711291378796678003843220089599147710967230490746417807723993610813064758185295010752197073501631954040479372046913541747287542848264410675512506393205669178069544384414196096837999735368006963180627766800972981766231150401442528159713342854272734330819858039232760328271370820385975188374216035232400563604625782776422748813108076597010914298007136663434859478412327749711679605356886937240131574297116225121374340555918474707983073478667041755894303854741885529108787407492971810820721332622292962739948084852376124314886367779279562266954630974977919900726781183201230310783503693833509650372547270185505584642200893382149469556375518700442945879791830585349065506940397147282508306363506822817072656277713574583252833655870824989644043321824533511253056135592958829393151922927033181231547391943526432619998677654250174058246114288327619419489924242427540496511684566006503135198895666986172927051106746666692877116153088398733506683059075134962975433470022760587558199489186027310061121798091735762238095785119940977814147905942741867844956985920304054864544189823553707271865417675542136577564329244264616832048043338755780147004827971515997457196632185181613033508922133023052527930439057680643894223824315197453007629712003851389854887077650944480256805999429479957525558909913445809263774618552408374033333240121004496094794522364139420164811845819247612164695365006084774372277304991385216946263842897896189490151812398517661054956832888031786934406348515722750240096127431321896236599404514222681418641867366215486491009561424970145725095210454159273734082465750549801037593021422884031629350519950588552335482014451341059900394305843930050827888884786584266053112364573733401004354448515399692368518297159685432621164196984798593193447276783343286580331382110405319472308744147424797138094209206935029256802348518598516112279538367360480059377721231571885596669734901424817601753116306750577029454895933994126033656951473744464905326779520940836929520102525884704324335317548148525952945924419602972125493733991523243600603930598514683747931327027743493761271012532254005119604291072342874996663298158914651620875668913146739820361047672292284954724660844928204924829825282531587359687540200556281014672941519500410964280803387232808968471628901153343813833293645205956693460000536925675782503950574763904437922273339216267802076351840114670916502382209696442548775176963613526822178697710547007745011569396243182026658042469597414216605735230577838608317247114839742035665734694346332754148401784727024628063025957423904798203968279336405993906959713192189371925551078067260927604626441393571959946914019805671322163577616830741281962884135558300125623038260603765239805918730230760398685502891764676316051898766188676294282818161969369524319541778927044026461212468949246773548494823415436366110208551449226411907220267668331967533778016015690067320184611699617582383851200876614432180914380359832619134821935507776358913620775361743279296546905164937395073485041398665567860409856594777471275382537195827055070053848062300906955040840182865705885837628054246016541420338837072379796516733337506347839534445865917812683776786763168147516941991475534646378059760165405845405166568793739403079443443698820796339095252642060656918554885103302930598001941544544929467684645453902426375957685214473506013499328189126750168784644914669764567661389481982467073187795290330691302090724299795187544013662583314409482780237255716766300741633044301573850408813664908887059165009830655027070073335495872789321708937820689397329930913162202273328922903396608679654487537961077727573967122172334195729019390781731563453686689142152140598405494393115076767296419272325908229331258833731717600113617853666062111918418178988914695183956066159473896671353682574856800352200345382935930903272556167445836317292750002549688980800736783679245638137409309294614385902292777832727785876987779002519823674024874512716189836959348293229330804903018460139133665670878668165982410050438493317488920695478513673068110740740596527243725535317352184101948130911493323623706810026370875635236218695431406232096899895597599756283156871863309316772420851508418048534499847294557245920267398959556721126866109233942407951958386663241305059868795742546909758963156280741937374547321569789786020006734038785703223981860089847623101294888324030791950379340588541756976241453109016213351890322406849237796096413024619224151706268713146143193494622760755234207607681584745731130761215199776504815442063095181454127790035109044059271155972051345255724882836818233325132803822601653551243820241288586224053738112085071757271232884167308979298681094839431180996720687180210724667176335254249303025022933060862203229125701453406269969607573601419468947721323552395473986125812360422427633179852044277147984032420971095957581432349603525795666474511671742562708881920568470026567828212150823390538635379719382568385132667474180008922251086715736056788863064066881461556280995078203750332088371599764697464519566325581172270209200180973551077710943391489800539864249641535137926427632029499329539720840497028298923983345891915876943625363395909007298150835149675473176164093985298231111092690775424411003743356916389551669575278492928675093883185010012968087354227581807283409978802676157210346694781240741112744510491820941591789740944977704622853053143588384869327329099281193771272878751979225957419865839388075124952930931585137341011358529705193727942838558907177625679568591321637598014479943615116935994805356675138419404806603057921907118355582426812054270311942689741993251870175256202217567985229035051459433008119560396328501495793166262897685352659191375954582678735894225954832262349547849521273720063006245922573526377533048262249180006100291115115359133525551580878450204528963536768212459348739041485287338714836789128511967340965409639642244559525655438036157801795022729357116096560400549197976549017459625561219800971526932872937625511184865918779811056726382595422043781597434320153809416163591939473476405657998713242317328041542248771338658300419728723248899908333616097579079738818811063171190501762017501745902379164023196644087843862676254958905860483147426834016057701799581867860372081697120666796974204297185264542672456431604242217564507682611730868052546473802244837770819305388423714739270455225956117392354579217261661795489936957462502212343270766322745589452616598751598074778112373137878488731595753468497733062436463685399556623278190950470515347966875649687012649220243966660679547196838890667688177279084997731713387527186753727317259205102330478629559739390515513608470753458968667930656604725868205381948527408291051755655311827325401834323314561425172566670104547376362422072166985800166877575742831231936028557155324665901755174213432422298327175690034350498094733314382369377538650717184420020226460843276154821873670387641206565150101949762281163865937448099030501195856015767825374769472896937062554925539198463157354470516861175964833989670975844324568655955494332126305430431717634093101680747198890532723109867043292323385558819908926242873388910866404171218464083075356336571086913986333961511780378409157124099228782510653229301345714944417669920640293806261319995387923387950395739871473010498297821817279122811806000921012055601041876163097356720137461392218797660569176003328980359571242473691947348951322504032542198600709758529666775444429966549327151387610802812846992081889442989865015494938457049400558707705328714220934961764940246037366475207382851279491597974511589977310774740713542787599214391615287965750149595798762695766718039722672077858425755280903712577670429494188236814346248411719232318824577739848858547068189401341238420904820935605249291833433165235187789290402389412859535930013815536912426318931547815324894009856920439416651910738369150206366331880808496750900566729848169449648666572087826341596590459742266488378178185197715051357148073659682218758051807577555831095207511926026578749622331885434519521522709529141945576267337302611710490613198164267215065583491418525065255721835515076671586358953594632722376412188564311770614881524597586690012724832193990385800006672620484937230616727381981787267006890011814122083625157307129950098372932876785037126672035689791534167944508917887744958490435930837591080478161311664806643058391901410493014951678487523402758546677020335618330536473803920096215840239218152316426490139860127863195603783533930032183322434981440380321058488270950809577445251937185441475623570429688425795666390390174699035188775467441061893126535324884910248464022851533565683477336096493829574097317339332485049741243793719051878320690890646443518067879268864489627774808513790008593916843524172329311715794968083091268193884824044927639641068287030268655405744401632979692749747361467501856220790629442755532741120699666213976335588416595259442404691102292230570264346199417900455023135370562012262679462771347050991596259899482220631890195472650934087575059983041700715127941161301953886223481255823180067888429304551351917436615240495379214421856155345278422696246407962133378227103390307954532712105859501570929231095062963029260214253608208362839738312956151807067781166925976821648366584693741187520297695391208158400588449033288300148989088342451665772296293725415723569580925589862979295761766629392601683368316598077439112489567554523011385194895243809421197715559646538527402035295672984966901014993864963542039219846708592186590865026962141535804069771772916264068617987866346460601377412496313979938603568736019912408062963688368872344330536782057915820733103134940430444016813633712507950096026524430453625759786894140940149495467084484919773931198173888039229036588986480321048616013655535339949231078417949012402706930107074352094511786413641058044555882822646226533659695367715390395783499706060613037116391473493364714928977656782321820248327580726627057018567278488137953699485663554468190152410833970646590131848561409629988116319188995374048888505476770757473861350299763091587806029784806859582672722080657046614829771838640053835283738933261057925717370795988975067644850431017526063411365092931652412522234443218629962945535005737252425758382215559202317647611732129029999884057032040980407298294284566434315784050116077542127216834822965755292101328511222951030464374856729856107317321370196306037750280972972866273693921420224150978095896204707029309577716358446512268894451944387313906619907672245510420164866845379396551671053751703293299073417459356118396152890340556257783324283829543682058849645718015238258723677539690712614250173919693588297985953182434990546943909844607092019986214767778193143966298540455306160897863856362194990862237997119939546905829096233391710376139880622161746972021955542670741011285399494719885979259057238970072155512011132164562158101801812817707251954237085181090736119275260756079693773362568712075481374169552546575774791663452753482344979927085978674586742660061661313611121635958886987519320542928582210178367555457069432845525509147409049184196516151869402454963570813607885266881855974411498482140708897001124297726054087195833373827469159841088191973602026670477415312688777517793248206774440272983150150034542893649362979187600021648098180417675081450984250257936878743892774889192726213818303499040305334196760224688248120088762858908909414845888982764566762815387446657382454930111472525961330967743261185480278629156598772349531806566939241002748522703595849084713678336127238965235440165006389462766536445658017417183072463830477788636754430177189267211162397079224064473962795125693629795988416508357609532045445299681980065652676668175354782390707906031335805150427746712147307754103895582419873935215066701864454251292247101868080866657820659002168150438208412071616544564250567310976642153544562384130799676471272860656547655595147880251902397023184749092861174447254680664222425708635494597963553127854918787669032696545671778075253566265995999793006893557411192845432967545596499870998850069706930403034308151827723178096148266596071760086340056732034044033774601590909967216312510208200157419481712887406552212737972980185005203111723250910709015302968420575367400464830278397936783701409211354298558206681995685220968547708925643694923883722328255942479528071363502695753045025519007142466529923160875291669669143452255912868617738095709967084398779873824168012957799777064095989630802465489020021604257540165755978255681936365079482560394279164962030436164643941020554803207597922510046767771386794373651732478830329636400143422689621419639937936427328011315390991937237789028615946374266746736073414783281486420402995855510328879274681142537231290357240505172120818672711704818915184189711006721673136593352273104226973142571596358301343461044182084380284238401146264923396966006588296393727392921196725114973340598271404676847393680547999716099293427923968823906424501209655580943704529996073289719138154195263183856430625477567320062908386996861441989315252842065211730286557655252184520244710016788951966329249125067788624929290370865451551940575197579632069022313827838582169691049367036140471374990550371429283124891620935024699891099331256994271258237023113315190913771684977664484618213053802487339898755767863980268581241538052371164002364022104637055277194475221481275666977323439617425080365722024101080672065340777005594234943112403605505963933549878228608232921511016610941613206213022779825198848914103614033455227740042186838721998354149130387466487482911343474746287351216874031702572424334069322020778388467759857010830394576069191069711237512226504389872407972466015640065650251866278362660973230715738979275474708463110603557162636842194762467597653332554598835480886134739781705541513395870997957066068562737054275684350729186473080589679162748172878291180913868407638338835024157869830032235453474500409025772228097081432098908302413750842194905318266925939978371786549650386209452407811610441884038437525714837715838208248422457634320174816589491204207505151800457566262120345777120523388506433271196665695692437067643634352650453059740979601258164558020501755439546422496711549718373997558415306501537904630166778147938926888369705594752573645030966268058543852904622246116691671543609438392541513098470407563128525934675234197447177873370169742896547640728594033435769023136234372182944202720131403003748331872484351068617472151525326675292433400490992352546586304103061723314151727025120371251711062824350182305541489885897551200322214239741038193568771525870206998802581309388247184961517822356888546636223305082481374314446020741992554592361834675261295402855967351170780594380084201450464124716108414660699741617503043158063337283210697567698725529993212315867759583219489841114529603164636146136552050317384519416813044442302554847353930066630535530504099440786088176078541200528220633570276422916931058164109718815939938320801614233841061597577069553228973434571259167470863806095722250274788758313011005368644054677631182352216022487215999802920559325442233747427413603884991508598958158975185473059736503991424551309163983750263894972596679935264425595412335952457621870915705097727257810034705109071998113726705805006903833020566755256081955617365120186074212586753758287989737417254265258483324080709778816158368887485474737687680354795430045209035761094410538486511595513999597197459638451301781016611733765524243029929217569941288423991467418770985552006069993909012772745886409281556572542598339205887188526352485996755091137521705558326815067911283238154515020289319420887058739128378815222701788848222937620986584547337167147694917592530292051254048872166460401364461122736039333528814151118515357313966702326717200885714062923127946558081073391262458264148869708430471705330621010912865209209646071294900752061591895645076621374057840050319717375702075606208580463019630391413285298618375517876777024256524730779056979649890530342434953089547788761998146698514020535997941505110660568747908550825359164033209019291485742618229701337817836043909416808588991370851593563432687943840051882840661627953624956859281117181058496984376721313894439956883301577463951464778939456565701977860211060181053639490790715671168346576172288775749345996962129601614615418996309105407137311280688618339184900278433005558992021535706094449099569529663147920581916267014800457723013505893059585653086848144021290231808449062903355908134935849244862289827264059740608363191735179502537529803962005110504488612566626177525251217859496656419679774561113228550964966021603101081021320666158111547085029551390405627204008515788283477889675653823402594870381014468726216301513342719310731399964316335492591493740472995291497343120787421858245205862325994643285685605750124181160469845726470016380563552791671452434462150092517833757149691003883117029222710286063471941883752591207209223764308239983507320528027569798238546027941533324785253063510914269011456727519924778300543889849453201864673604934422461730537198032530974883371360396735079434108274825114128119744999095884590233737538901340486726921451870719248789069506909424760795839179780757594972266725106256944575693457879259021227141183468911447912643459070826340799023818896738942540869424972829508628425083788009284682896241886637613506939755031604628267739544783953416265960106842273261263363637352604343360880404024206015508184295186525486255081999705457326717990283560598627675073823382688240430704631588236281366772099477926481287941049123815282390225048715415117875468815952352200361328953461664511231642203803394024116445480457794109098476232222450463111130706873008044675553436068822322857057032967704065511274716629397244831165734680352919431713912642333278315817216918226273373613871540827316306519396023183384543858207993521224152720879136955042909661788167626498002486000983059759311111862986921413914371649056339919366608900048857884712104793018945503666266872095033301493456404594126313265226041662057500566011664031304209940118868654992106852424251922892020471875090775458262048337766910207141538318875751954202366436506680256763112287847832848202367048452157000945841061407071247376734668976907246876093142889478737454673893773490720135646344996343321163193948783270796780997306779484783542132823779241452354101952542216919199926366273194387339671635081112687482198823473507471294556064743629326500585534646435131359324832770712640189260461204547381748572673649681959754678869958256000649698164047357800137611352732240316766366271615296543630125105835431559917776945598284559158271510423280349915999067463902126207620823767686214481447962290810330939009018440890324359601682084914315803667402207229561316967445673389793167168755857608072110022323875027527280757679651675646457339314393253276353215794970278156945004228519505123430101550348673439613977095665737290508149965057953945177432799730174919048512008778196244021257074826509699441125934058735875465852852619115868182020608705555995224818877597367444903074352791863522508223405288016358228125760175205678647135920192117594969895139058472948201266504800067621893895492920157744570374132825975349696480919116117533479827170075448657030292877455294053812000264476830706716675905354653971440413745279338272769846948075800101915297159581887532253831864731980053765056268652826057350757566098945456968928518262087886850795139523990476160307803828775444142944692540392103119425901029554852778494233160838230329987932619009018569630156168847318927198874185945415868511842009086847386766028537990605560357092308959863710188365279028611007194089137461620977166468863224647410059539572971459563779750450761954743568940220982975078079826151426976924750050120396423559823519655374908377705812604894195568923880023595405675364170776047391165921616395475364706613878927940001087584646902417125836659281294955436813326826330046970516502086430114510076838143436465556597651242845748637537116725865539432380714281465811979846942466374110833334352274421988750871623332668545615125875653975489763946824307128412282591069296692769496679307121400084689830788964041884638594638074046731993904332865051489594937013676625110667375218978461176189562939823867456385840788882236589170903335089093283591461708241842016903428340943177763695713287199726565222219662034019349458607301411682441312744299026201058285894383030097103573267885065123614382607706902514343473268090707255088239805965401846792058039668980764497045247300736596630636420206303127768560994944439505837746702881451330341726397701945465666813944986228842107432917701605402410638240164308162081528568899190020751719854127191638267769155232646981117323185667598109892017724838401939726026709702589088241847292898782331840046800342592680633917415559322624837555143426174889913445953532904643258052731890961594898689590013439954808284036278086358037794233167533972405297984743516997296834363716094503053193087780239774823981890689842648803228316780806357034708481416593565145123025061920936238224577739686164781258589433032361342435860719448831503808079505139078593483713874005774951747695282941600941882931574667364299905673982062866239623233556131221120219015328997450244091042796657570208853110443709520054345872844140909700300331162711187137620112995894356083218731391094728404725625631280781031015926432578928482758852076032411943360244594167351070032340456912389847733739334237675180351100901606318657881352958739750436564946783212305088754087186518057128087531717656215032524725716855395357086733468494931001571482868251555569225339440428719113064259483754232870510338567613697882286006031754551459643051441474678108670939350626874014496893100317504221386111856748850889485339245666477235441990441442174036833889515926178359830586559920258339814846231697762717150796758157578904528327176471460228362159958926341961360826829815319986064718685985464930391914336995797919167394288734564632978727154174242583182505988416239932320821679661366145297629541009042770895278886551913255410154374624588315605401228375659720790305021258646433041829998555032183335036418446066556594890243318635925340973385698410529959297240698132578071525345692825292169119321098374907105230528579989392180533029983351086957008250967939682088561199164358724945478732032095180233813120413420519656941155944368998869175209300662272952452421940849971287912499597553891314857313971474681759756807641441246038321808697900626162480032471557525998126998347388791261218090617854396901743342670660837209900121634758540064717162439954348712119308575702873164042253388519842657663899980943593035410595693477558101226015553415769672678632555718746655868318988113115978460906359910172190929489713590405794829180160026107457190801916673132299983587993157087553089412637189118316169715607735472749502725622697695055096124717179699683439138864159072837292294739631749710966879946834706750745948257428791491387889744808420336548823835106341262051534142694959725114358189502066911037617866541369351669061781958261509260089783046183796916457494002319704759556081852903908838570044209134703151369348554562690487493936474715512889728010229306872583522204833180959844563833372435969705320059304028995361762975707223781966184301481357613988951655959002437448443969346646089368265115259667005446962194673378353616318581473048249140769498575334841091426682632228198740658304336436205272247001116047815214731573163068991489563288267791820702265533706996339350748482747237772162716230170934017642726472274629411805538646988581436332578923824988818072016877187697392151965402484977505726433286308184987219773817872032934106483422693852084543747094142483738091207313807729916361513565745356032329312877168083424461440569664171398994986328635097255589891450995925879953043337148496145216354204153432971222116353609952478383419335996299779442825206859281921022509258080710226657723930350395657449470714918017626349044544907011785862703852062026347469404077683113442452868990283231905379885886610086295978623183330161617300943782476500847787661350905225962657794315216485984423128430083090884776270989856776957830786921771471319285101713860253042688071470592476192598249271920186410412225085948618631008400193117280853283267117116137690257528341716248768929601485287330746177715034491616739178114447097917706196145642280270665703766121562041399549710035362332863480365516819617483502551713775106471615958875102489613625527720218098760603561040002243692331325785773858900245945403684955891243997642438085837854047774767546390278701387091351181985134842922551035515139334834854995349097817544881477221750429229049411740558577981921508492062506801817372582519024438444801140724577218494601435235181147041952458733246464891657236654729519876808431311082207998613663165175714883874164556160966793688168216837177210166102618858769451199988683283036792409979936703333730907491495528134796033748610415890404239699223166589219245834674467212176807881989526553481484838806267651687644141935098745418284823391249883966194902533728729296230568377174646361034700166455394005711419782583857590083600738946950151662189084671654177634483125239220415424727015733207360223441633457338190612543311097150896890456672598990453339814538753739282610682057020073111030818547800197519348925791812487565781933343283889242395073379635163815534258795664005573955066543805589961043522074930997384592555492251320714020198944074447117127110867387833307812967118516313593677607594865153133672413532608128013744928974758814208108800619202283277985468523481241909254208962708480718307555615415842217434780754160197450533071034354199213787967965790581505053467484588608104099177258097709820357058661221697785679300083157065011287376802468182474625678007112117862925087597902675209751974910810087224373153409429195730176478034066287702824239554900359570962339549264414341654763717963203259154979560183006429218167225218982853991831335256165973767450010425539729252740905974277082887164863256937967462643213580582847323710413086896871126409330423728766207863745649937011255665359678842809527087205078101228648564221239481327662594117408224530844866750736044615861102964370845870476433988892543259045236748366153610240016397677031835917993448469949298883541321431372628372766665902142457848694222184631886446680643461028447856651559877321569377518117729046258834560877103766905242115216535235553057550430012315807926475770436330823189860520313098184493189169640882003453661029507232541193843392357882645943419421322111912264560153445308646846310413682003742623537689122415162020738785103179348648576745753276841538485139835022570252182472688491445851340964248466938500346865673536561332375400761939612553028020301836158854440937063601899493764840790518744499745826683595407982231357605133532604245535958349690101997948224612574282648287329779235343663973515034398058099579151512801643652479308175271995246622514416145230890028463976156964462531239559592172680474771369208979998578986212881103044892197152926849267049055710463667380473855960694028896499388079924581883738023812152144023030972675274474527613163469587848015922934754923358774439300758134089122353891310925753571809764195830298358960533302822237181053537134483444220238700074026363484848099475533386385101979998626991104196548557294000992171205759085865791323277073082470934981996006997050739628832138911318705622100901253015155233884048967194200323129041378700563513519665673822751301442745391913442376291057828981950923477520451929711756479495113160087439497407047402571153629181024579965469624934224663852440879931384793557318276597781481976398667239972165334239844274337889254083004032593348463703870585855266933008227335469499686377745567265663419992299549212249137336319813529462062823585359920310150398320267880201561509170674874478980652564083493809968291340664737530941287692186453074292673122504612756787384799018122153880731978240121757296450125368799055956265611934670909702821063868661678797634835711864208300405495373798851238029419914454279780792656639921295348512148993582417465395909397836469759618663485247271316274291162183526932815254516269497627076838905540190534363854516647649924048567694823808578522605269347318067144341196831255799684075276783642765736950539904150700333915747462372524035450292332397979034982111372414671851282430696137551195918766968063268073477576544579170852755537721213645733843424333029139792081672878219146488307956012724478747172574974625537184430609614600241294156363745137976502263333820732589510223203102302333651486847009650318078794735659118606989256173205271792642687887780947669423509325387564752572860125080122595419511407685759677138879261354228425348695181609411696272423660982584698583740415338732298291632846902188665323219948789852136777634365567934670528975061369815931917805693474624041979632295896587137175503446789388207767835626523716821292428995818577660170480786030108909369051133696196732427545344356952384289054648431019077132534894740631223057927682107042182762857193797341250318042596901794213275194121243998210828141958327702272018387055321874602286162617072840482394184134638426508278498406342244621422993542294781764472081010046227288943950749354436020971130033128904407555759694288919734952234547948051351079054387557553032126046651565976329114866095021000231457813765666207729305158174151226796352650884883852080283743022769083956421419456132511267342486051924490328750950135934602801424979702630942389564058149041229710684838229509938647487572346935658919253954409902152948821913326925389506457337317714145909879192184778008850799109198580405517975898498877420727430050461321165971701007768523119728338053904829250961847495282927861516331412270060431664525056957985790510518505340987162911329045568454431046380384605845991486152768838116921604174012321426108022336625966044238762057253916869650734355756282708206865017677313781741987968323052013562453264698938057727836727274438078777326943043128918482044790781710155238896851973919489523447177007576831679563500323644524237384249791043621779259399098476070857082417307313255959336186866306519476476348204855857335015837349412697824588556676937672320707062312864354060658768070413558371176328514545974277088549802628273399389961061218143987978040942838659981137751673625552958549977987388349665434772658149742748262863246022501718735352617555140425051862445313219753661104288870275364616154794708656675979146247145814089306369981251427898830657111309899541021154668705827555496376380347927472020184776503631132763520501453733674974138845498605045466162565032233613838512732346151306140140213788990933023364966720428378026373982004438243365749105517122086682014124182546153075051932733801988888444417869213803792360439542540224548046216732161119247578490721158575472736464598998513878712094565341760062569288042089325087777993188969157106493105226794612897597452731336071003295804780838866569779614915596349996650662730488910424026724800458359854486437545231043252158516553899261669081460315995379711919987935444316482403367640611223710505524139218655227942828577455937245773763061454939757208916322416479889468725505988379239057729279323423821806701252491661757580753913763032354798942601684341159614988663826737508146238151314289682735307900006911891768953849771895289605251311362199862018046750243545304237040564035693013432308720843304908285392230461155052146220090492314959308619149514221134970439361196444060536283568677529913243126888892694331919339989216273671499244572375522567209302717366859245211931409353659429721738512270160689539880173218616547728006078966601712973532229168385722881751826890004379240324586723493812000897931047625957292278896112608352477066825997260785529665709503092047314423726441856732926035516020698159801986181600201394357583229855114860600583194710045014658409534063094686044996798847496566298308431388983925412697364982504692849062660602786620834051506707228329250216456236335549928545916486446124470923083354492170347957594965979878482654206134657718913657251530264402694485488931015796312753638616085475427871985294029211879319090434283878684960623108081476271015001903478065381405327452307377292595669646582625725584171123395251938038933169754786594389484639817109968890488912535099136284706988427407887984122254161580488750674376368023775051608494376792694385183593818266347538085887682719521937536725820560895279788098365823840403091495327098815408893931435741124528856728066794992720581305173831360990754758804953158461513436818231449053983275332772655689572791971227297875739482926500178120567821968808676500991956275389090568164592451485795777676193998311431100850667267034283873332932919998625183199103411783851546408717854915293146179887794126322041380681204383195747708559117980476698591730883391862992558926764526762841482710554972343214500893146245757968360698639133962824981915135368697928048894607158574671693009062170229166864434181150183029302283222836878114840114765095566603334683351490289228520992451575875718959018982128012658632455735733408082745798429628741885241876623705621767197920818165636700113778690995658017450565615635905662995436390704557255126269633030592330083738258426349481274872948837132052522939952130987626913862952067637286500142842322238134401543929310295874657378642480919477080757310859898427430311817851896246078915406750027483347387927623497284680007493325457013020011034486167641991660354811453363528950396129790201615070805354643888361782681561205666597157419142788959540242167043977477573479376897584945217692656366612657184300637039591415761189147304220758169116231361300804933945128502875362022541342618869013183472886108249757986656814663272754347957817872081019045792190602107289120114393357211997125621908713123291280664046031910158896244278222186396015905215928890459513442846005162076017295105530831333436201200105427485337581216079383836861278082343440049515622878562431392697545014979984613502408167254139110524108791266378595053543553421281989859948374070248450660643753630373227917651003954031131031446932562308543664592579613061396398797240266472009279728308450164823444353762554512211537818936323378113143605140224728252261279751728626917521967421652692088416178724586930586088965930192439189158047965802659455691945801725468227551852789418123720247961804780603712058648895604723338466040492112739566223350928798257655257781585565135037939047261560520714353389698647400909744960128331139450440156556298977906244823309567789984939679016667066297575572517254852796111375836260802972048611480337390962811674153193689251828828712252980197379271500541858550341466134618182998243165746671679683951712157648717945373002715754118643191011257521583534941990764865207482260418238612976547650463245804714105128112554513347989106575968056557364461569839892242818647835118285492599285739518382176194419185699153587615894272654009278070017674350187094675839191464833922965827906243928850332759625208093405494915637257539303394716838598957774582987818489962980161070420324213353512651723927482420084001848793874485632307544896394019769435634774765029138900364603169087044209641765538052272457742218754734755330348430250851914662068086518118380569626746570356661892056256562013416969022462154279612260338873126213078313709339324204675743700054433605337934040908539577619888326745897113543264009858501500775515263344559797529306654221453988385267335442661852409552940469683171040850816994783884902803226143764132685608209535658154914523073730231401418199913588604494611212759631035103016307245557924507958937147539899627508261813624087994450935757347983168990671130969590723514298879478219257825726546585899138733441538713441664425155724558455572837697553913907783145747288065548268644201078840075885892069452297482265853056239410339951577610637169634850827206086178528202174356602175236866372901593292222064294929595126303931409851678268958118393123968923942725471366212924444017148460921815119897378768427316697271599023007235102591562626915445776485038233739404896663276329318499645882610981466278588078761528048535014921634986654824789063083498778630572534242433970474910375576520049629805951354020095287556654737822291978223426570260729557858579971919809787027639286826975684321754073923909422266312133719126268641257303398870031704985112183226124985909250746972362370595920329553439433698136035641021413386667920396801712423206370851837456541560738812170540018802142980476881612672449925844903715182155421624647675158217699144530956015519272268281922348503651301016194603242231571900515677951437905204809631861462234545380490145949862450976100848038074604991577347994033058601829060401207355025841466301374099106461656591181641193130886043505075272417571843127973939678092253464339394161837321025966254447547145558809735644564509302165751774305375703643161378260554890656625443612517781914688319607353625490764551562744032261262094589877282556654565565174757759618870303071553818416574674163425870666548914712823815714801064064706768702154896694181225168847538096224324510550033384881770461306790690022268034450340750725269585453446525674466749185910964358112978229350163397355724323564684128357671467201996897970905105196356538071204277707270839990397715668124241125417026231520424074323941835158279063789899533063723291909577060453123486247806015845636167617416474541244396514629090425830433863458895661017036830483551052871694728226557909183398103282642453071034643309311406615768347271099184430750012993849610753445002398170195370454403662599930208009769401192631803470958278448496951581187000445927878760054992595743670740541912412354954483163442635217362050811196790877178404950307354106426614523943657416637131231556945512678998376368467963609502001677430103762068837737770689948681371470341808049957990932673209804322891394728168965794067105819384842135552120454672271703581785951685293571528564288106755567432690062944157134689282539662849555860497819238759971813351449785244016216607533669002363839102306117789125636440031235932873301506497291933769872129154539123396585092601520559732719337490994375431332636271234130412970407054440617601057458168332606816128576041043104555721239722309773299866987183388064345414126010365746595622280092637507587916046857858674576415780112465218758386855983486326997672499775296416942351408370759663861904783286691854887404164656482249674029046815601042603694413002326608686627162495210286640199090050597050922220899830943629126003205486227551670088860362186543928213027765097525339080287380241270243826342353237903046795749139237000470187884458839772881265601924493024585774670371908233915695640501304393714835075464095939385735004985767128451152741147799840966666356830245291940312970934633283385756614671042081489751137937370561025085992406845923717443205141191108858443864040589874374968507322825044242114861122598838270163024449778150245822846360527928447741060839762360409483771072111117531078574894549793096058881963387854814711648117070777427340528100986640614865937680697833415634077068660264037577354815189884692803999685723014719664351282586413451046372296252900420253766203059900622965841346306072961527953796918752087321138812942993916385471850900769115026863266467880548461959916524792049792342704874262669079915789188798904812140032471818622625979048251195970576602048918151499003911103440152033011947713692181676079874932157507396813542164130066506434437222495434491175355475758942230466485833587772185490350154530781972937957232379793564530082651138772276717461726230948985538841587555175200334588710876047349495363003613742671202328738512398345835624908568833106383872094571945831873179656009291552921050551889686666315764321363929159110244426765717021540696995088328632274116121910859702051998328124922110513311687902774611980628918614308906096889071455663498351080990438524189676484586241645057018383554345223503780953599358496338495356951595846198675625598597618785919818116107224263423429933992365469571291895601790308574517249153845129926907836414206760082828198262487288958282611058440494845206840608164152061215813243206615914567372737932675975768597221136199020386800141887104498964072655051471278956643176263579799524091866865416721051970960471541001127434337343094108618205412075977937467183437857501059753958030042584212286432926299073936871970571626597552180414762040416627015408186856869386467744447158451325038072112423718494919799097955565931644431664827221955452515368696951564591275616979848333650875751659481916164619100708265524823735618593420980247961173332712847643143492677188499581042939597744304700240078548930113669926088473752018925525418084722538697920977874271568663435396803165125363444594716229714852523259852997354546323412065880970366419467488198030271344835002548011602518414144210950624632036022174125290448638012444905868864628181622261122137833929481729439645481215375537106861845960211367565853602773365720069845020150162925403491273784809939466718850529847977052150285972519768830199017968622327399287666093861660534515592289180665130209420182613072490341499672572765210656068136303652108264769556011516512540365424971859316906576033627699369408622064791954754203314891787300639280074352955643004440671238068607872984259999782514175790053360371084912217088871279998164029928971287030514047041164014743371949108652661871328851750434503274752046700639352195802009062952831899646391636417728952764358249669170265265659870453025544711122606680074348515479354310260307267459291051431783875815334673449891646712714565827670410607274707322920039656923220460013030376058730504989469272530946476220755284613404866875677851612313010350522839466999078189386144169796546368172092192979999620937236563664313364673587135181671541116051074667373642485229179206888606330996238681101503079770675208163811097602221592239409225408574997336438079415373797922467828253307388824881563339618764328031799357309928429827949496294098409170419198524529868018809990829958941170784464216180305804950292659057160904535601046141376398625452520713317824683342214376311387529652911774733686950074188140442306026436702250796062280439303341558019361649787080497210151927394077967678284134050134920539536992533181498631503473916512545458964209203387895245136565828132028559326616233959223429476016787746095502580362546760540640784734827339694431591280845047154154836702506107825064173044028282884025677261374418043290192656281990660623176511573103407790275875373749910745563871854538817134306360523416638803825743174101536306015138390833044093656897944079822906975047604874251470474192477083522903278068727202278173672207677126511423049911264976054075644620931284131165179219724388382558317300854663061702097834317108831002247654126110552095222346404994175683287950667311021138795450540564462144444459747351772852844230781054283051051372935853949094642032466037727987564733586194714347930280336470494713485046478382262544046518854553445595865672026815125636339926924961078248128497987988842597964703534313596481832685445049336012216945323702865714601150753759234886076729392788119014323212532468690882865530336273917608084933731835513547895098650485297607989863626789521938736656792502923798829854778625686569030111264115417243406003566479316393905659079875502860188305548030879463321808173051183720909058801054203715152567629966226723624947737600586047967613658785085758652459440370287110487885088356173047597990686460771547129859743535664662885348757277159782419415785772239039858797659232666626470220736581220605768491812488220923428163540065974645427993509826336932853141050798915044127463520999205105683851267677942012253265770576175226056260714352910518936923266033738254911480661153614008892109918371171279844379865966139021449164553448254142292944695599035727583538546195789371490225418579761507045094395807750384204163824751954766618637723698982798476379872959628585488187528617464903670390504003134625948191767882694843335870272827754754296319523638266199574326062623992306260875789093590090329116963002122498529629811322815832542827073274231915292840234809112924339677889004168169898685254737179572339045176712961680637240273007049082002677149900151133310704477285757481211247236520860136108792236165262731895314476112101718099231038476061287366071551584470087987750409945115750610809710004892568658709288420812843150915398174464523059326808411560920818931255706427174870693338223388465515740265516701265052036359780265164938664857085640799123501445981350875421949903664721265215799621270297269077937728393130167878621440324557079590020428467667895424882138750850306381484922195827798984505268668289578129011840686137885689553391349389649165193674486737475502403792767661559191023546655119903701582486426763811107632211622652922962620605613907699309929365366928247308664852428951670930513712232967733965705034705216310773836355675621880430841683813336877301636291826390894987930058133291863031608028445780298150690293915836712883226475834914821857761365433289933570637884286723820798792737078751673300142480303977677554923542338082963091174861604258868567988253152698635644531118698624206560171890605915516627575668191120463044192548515227982371037075475573692673678848488760952486239141754216272399593018657292495728113455698961119485958275995104037771140396439553767133749923811809286609492209909843595232495809754425066331428729956410611833625948968324621344391121324297849706367183154224888140458413075062202923781024739375704704400887978075865840293196190187120106433833984378678116786752589063714011873577697792682313357205837872506330486064816358925294614431799248108726106944535259367271999082901281395003503054002599932644534036513121903258711362058450488372047809216374221330944596468069377913713933069815416929808167652995514472761734466156485211720181338121772507369687541998080811069112423390364071666054256909838292466571162616374387718808783441418175556826788777281257486801533732000027064545536042393308322795537282400567261390120592161849285237910790752037832053424017289878348215866850896289521217721715286724668944585167324348862760442900027080812694839316310999095471623869581237315792757117085760413717291561914854091939119814062140423397489095226180188139816200252573117627649186076857317258004393999830038334224350751091353406146994579617002779469870518348251621592986130007647207631739602273653870162384378931372110086868888382508265472358078469287583748659842774324639519207268782522814508175096891926073061815888380872457844413828746516631716533897517895902195394230440685264716996984817444669259765033043422830457252434722909644643295240683735915775793749398264068051146756075315983113637998948793156144729871147640449717772769070656395655692264254947206923384739155903048642013951988359270382164636334310687307230849169005624704754188990881102948075551461824467022288453014861025634805720640144908285592801996860648790767178581239829662202234682601260712212501470657995351332738322962725890892535651038370162439942820149643452985175091095051518714350134152164341824816519021986704949550399013422060083936743617820657885375394508418021760978659895138872806552894026599225822765783547082188918099922114567178899837934611502599519386118068196566353517407550711080186855970733826321041085948562830949205036533975756853244997534041324700317600135807423525378062800172930495113588267627255159867902704435742844335021265960782443683159308036072928262744069113302993714268825607981274756192411293088583300044233452657278542469809801163882189700744895480938806363467596878676963022016660724456724151697738651783446269861291682144474514769193412671831972206861005720046796705125853942893385434007974572765848673234492431086479085004672967213036434703016335058779001498720144807186253873614313219970224808336184019307312318816418143160561646977133039259844918432488515400488830151753626967979382407401654830158891375049091296401246031094752523906867745658907017802577870930295573156819331366165932152768947953567315898491317654028749077869443225005438143632472740648147285666921016241042059195102110539637833746493940363856404287442761947432719539228794326949801607062166922364590135773443690569673736227849686224210137204089954051832376573503372750108861944260545701804159109931379410736481634815219420993873581566515739985688888002987799475346413650151319733908846039537357949372571212146061110190247265338048240803900099074739477569696283415682471746935690647927132519444504101831923114577810210309144308139364902128786114377035004458935214288851825009535552729219245758121515390830024706200447831073392557385891445054656200895519294962619141676381331873069779211322311659064786271044835672356189363903674628058554154808651040565640081812275916049821781584543812168637787117426979834411896085996243945465378212606281081639679549495893991083712726150422891500479387224322594217695172563601091319369479844688908933418035262534879022927031386580749342028554201210916113035747467074329031930856809942232921457083003187279054585505055826738160031277356561486554237672749391025604480592580063811098026132211628147511251585251971432079533898168596678865809669179518228520615788651082373875385903609161082011574885728935460253940093989713707680518049929824767389682969777771208708463153739506453229835981935464285818953058241628514439697719046486599137945779004626963351604878306321120965290877356661740746689056510295034110640877489584223077193409234702794973113067274666097916227493662632871798862047385929361648648619241039912460125644206607561610786615201281112252374145862741257740751638943863581018875714264316277158498683935021874372073673426634682439780170727159997748759291098412796102091722591874291805082839446652522296262426519194681913917759277706302248013615150140788683856983705160550334448971306898418954376705731274666613357309008606853007941513928268729441518893872127130329704136162809333530583098689979226467264614564920980471542779997594702030904399574829056474228902275454234162506550802290159014921426343933869636078304706575544625592028746570478421599983668139712714747877168535718412689797475520758768796933037825600286993490095353411644249599007710592573095179094315763481974706374001560831312025820450398573619840057347597121294881458985677419772292996146383980954658420901999999366887312173668191789265340733595762846685865971679137333169618292850540512297721919931578725137462945036624443563460755657291948438753638790336238683229242426560540344222070162672898228496532045980564004844623042435296382614228830971067280152269555891461898307827838624335176609228538291660030031133026868830301017548331384454760149173747300266599500265760909335776556595716664228551715192215636023683007939984170519947213156475331084172142903443968691954538655350198366395757530916313396173845426311425619911819957918558806578655721901720211479593156677089719791872582729340657015710925919259600100110250656379106262900730864402667186581827134979196886710538984265700279994545495348585622245491320549430388527137274869934399153124277856769546527578345247471749538179975537882581451418008715774997477531228996948524894053719776368080282645573619895099449236116822222170469133405491597175275374521453489707418493481687186323167718060882201965120583796542891396350039977240131195643329129275527497534513098197661354046712569475740634976388815126016280290917063140297448523093474312057588561638920293035025551764731998594841889453465095711157582767461655033004140448628039482622051458004659762692998068537810421198739606230305390279091172937672784061564207869876738095374701985467698466274371422720145308910901613071211323172717732637984497151473728427770029482169232130556992293300030171241064440060757534389506670603033304598972663428733930055616089735528753718748493945721621305032389844747540520967391070453331062641371036639439671307265847052070192186253004378272739361759533155828497623258313959115556247102585064886615573611042953040245469516455088789837287743754464980403188484220566178139680132108900907816768111682003524014019808211923910495760627976537017462628929581936905003425527977304405906936947419481214372147030743354099047067026310998456424344583245778400600707539904855394103966635424954908509026099148810799042323791039679172316554582091205280129626150465362995722918082593893371469016718945630955273510275746790634772880803328399831922331394193432151083234276468048620119007575976089353757459923870167757648447706516135987672544286330311335063669916433993319486968673178772663909893427089598944876142593543746601951601029614225877992922467406767402085029154963933368959892758374557547522559161255287361154274948229898891671846192807420071934217819040605658136550523519719367107287453929557547920963978073632854663476331715517930159067651067841791806825598255114997785710571050711260670585924138436088370692674375177955048380497862946078675367974725185924360391237190631881596030418407856463732480278746808238053388418809906531070703348876940068896358234749754359383031024423209446206871602760943609290855406977471463130283390066680226931679742533302609736943927905216606825363839825059200516786515731551125940029587746559096870930305411396556085908390530742108071364403499901821978563494211811775428676504521359888215793310951192017000086226196723505146044609877582539578442395039745732757325209472865958394623796559522668828443897782036527284515530137605738274666263878720098305972280384426889786487779473148580528032384049759193927912796239250463970119201242004046754710061189820063745157150742979803303365302389185579412609252444538265719663909112210779580956265971234525512305162264109852654163141408727645390341583431194875683312842892549411579197533938018053906872731162877556692593337240140089885556127357118341536085664634990055672640072099098579130930517414892083558269396626741823552209287671404644933123232374694140362594115811084303289980718891430217058991842489575446993608504066872669224921717256075763842276875246765295881443705618251548794342470837652167479239057200615687661386970439788706513701559733336817542529138738795515031370467964059561929365679251960729524033783554597104399683351226350071393251017498142830493354062293182708950577554028840427160384349329030555120547161594281942521190764415168591668897435541519324814594598836174124384217332155315527055163583104078801963905302984968732016324878549720580137627904072698939348028931533386512710025416508585805658156286587968357804237301400195317499095049342261670275163550081762786984382169120602441207453833735424282034203551566791322736636104043164273879874599725015873978618159171480856227302754403134311070660174120423834539257110840995014819456165979424710086744403301115732854956939337516153570519029114028950556068829800781679649273755904342194643530819464440964782944463225665505995895536108661964386656804649093416731308541857021738407466104551006136440658129260331509600037110170172166822653975617757134390654102762244264485200521972283419335571104926227436782045778699757290316012053514180076659675210456747300978796741916836519614506864229473035806972321052717951526525500606566964577760086380259683049328713667740499489516763432448201133418756085274088271075015548784268011097231068668346409907132133960324875588307895081730195011031279662390653055916510859125161630749061833293406752500419053604663445038793697633230932826714536233626463123358144319294309250673467791865187693896637132061174260648412111502728081661273909036827055995419957125973265581963310333321434230086351276444675309611499345240582809357736719716480848985635728661533048192772887407924377841386489995677745749520354931206329980743975422297611666913016368326755217971079731811779324044177455277522042901246712915782558933123593135883919643262782941836943190689766335233915536138407936080350835203843408546125043493762800815379324074253427147210303316247678060325985884340667639237809061997799542357773656396971060392769778809957551909233923954995395957532707268082043869854609197093543560550309768916140932629632139135437722096376651861982847592320543867076474450616777891470201669064112377983123367254796041619316461190058417647367686685434468007370977387370471323875520197042200600346017687826757552069363569595044238810576586371920166024654995312252111246276129736373844350608933586686906434883454122481901999329402660368839081811927733065005990526765189175004310752632045243428360177436531345802604905086453166841943727616646230711649946938700861477378526127410234028129333458202460564705054806213501125363831899113728910701086364845047590415347254808149611064762438371549579005098294971496127213752948008070385745765919372862391040893055454706044643253688171007193526384986697903725138782242699083513606225880744565999534141113141965362252427984840563204541254045499828714108773902575812211122425486080915271861656503991595584574963494149186631420798913801475645058763291926404752349963352999819852899042899656924972015446081668080513049539677070925290670784718878906816263626849195362043246820453291188545349559335353445020583990779448299173087246106775858674133411834458928112460621996194463820226991963763897738856085705076492092108335313703922699029985423712855769335625931950769225768196730967469248853996233470491213453445126542208175008281859730486233048964864622529453621282891483137869333601667249695392906563622356044789678293765822956647618465297295966071877902806215498029169988733323971877743535418288737844254375240018903631269928579791867603382751388045885451447753005437394491340951113452936087638632690536608828384721994957094911825968393436912268503641354537727297501216098998105780997615985902512462226425003112355827866681717895290458427449891504518438638670230518957205213922423927379828877905191123711063362086582325393080883494812974264794840641915056120781653255402683980293748608128901027505543863488535219671826548045384641736855827273470859097449476066307796817368148466735573483891553038310271063037962825166487320418505256854408390272483153138112005754809953556034400854665151388464455669935533384822166188898560996890761791603643862995194919037037644221029220334243408739614797196868327902503509190472283140633356614037001069611506302624587707869403407926042465411846509069275815802099694313714143354240193290248608643342773005110012759685744697435483761939854000201661971048575629701763625244156823107842642164398160837009294727300101004011588972207635536120901769496055617325760928349192318246866987646926772514712095684487150888746744725283050431669972121284222745141634193236319121324472668097930673108704007479181658972497703454509350131905143296513766433111512623584196645720622999386333121522870934601615938695592189489345672799265498029571998486112724274923592015544559282989405425057953104997372356652541596806052010183946185368490303445072699311411794604028262866699284569680810030303885259050982524560723789264330052139965401307282789777663991161992022389040525228308545479341675413537116233469534704431699013042666286844483705553022507029401896664711144142158292606017029209292207560347896365350816342145225555733018392980893683703772489356958856639391135854360837494044143438932894441961098345173481326960306575712675498988354189833502414693994314871203540371034910679267930164780701401797371008062144877517528462606613879131954235457321887623142141249522205339574832400649159578216462786315565726045029696189785602273229059072386488117199854898736571658571905930389275691330700601039088713207607889690334526570610649455317759214962205738619587630588241724176089125705282084275378970211420729638361895891286809149752016138590768792569544976640598312480383487366493908885145592605202531595749708222108181196778901971336846560281311468332814922117502777157623699565459631625448579823312131941346579129111314946676202943600532574961342026752865555438673086766372416130513183567233150047850160025925545539958795779338074955407461579639704589232707485792859833110264223956826410484629602793252429849488329515543004480625550686569619257791198428312627301550046803536125976973345097112400723041851945166332765816976202147201846446430000113998704212968295229412343774611200133586677879722344224728106583982184603874894663953921536556866249199340886755512719422706537462883179094404755095875234484821934883497340942330182464972210349017902033077097715102756477950868766123824275636971541662124422763824651090039307583152252149116945711514090031051365539326166918760964545353131625488869014155212659033503685056307773725273895828309419704690620330581772924006736873927683591505215615002401517218843537179250562035446914523191791862584633893818270470850912167408454775462145975854662604917698553239350265504767290608677526535959555241574708781417861696618947737255604584023532976484312164941900299940644468150298985804337814372544552235130636067000636742231038307369720824020997415553173008853875743158839299012649372765669820540473856234716305061791650740262111746506434637306284507898437900786594857490426062002693062644491780814801067105264193016928649171909562991149969010749388871318718515387078657335619789299472826549924267974639214995603503082177417312849280461022611156204744694722883257969872930319246289307231460215992834497605688180163198178602407351325291191883450421372284187915928334181162209054965172750607787801904946030697981383395352103652050493962850894313329128525943124659363863812803194979977089280774518590420287480777407856572753501745479859002947681034533994627154783891047565409730545430638870661246965468859294646479662063437078595722834152404192128014354443721391763622041477214768480389699797859831247886607366626181213734283724428082294681863312638114070454664429993186063199736443470386511628111361969230960587698890944838242946784550068146468706188734118988522037887015408851343856208370395533276724314480870759926851542487545645355499105123664771634094959980049473185063074335812668204374480972402905360521387450583752250696778916929338201229679203877724095690272504476939830530662122861866422527453176755822798139902230438567603983393860721513950542073769984932018195109801747390137380749034660786138183466158650130560167536501013325729569015204269298159713960371871886154465125313814694877748007034243059230361561957809337531247962968755035668391531324509190399853395515526297101393312925940135992632515488349864129460389058592946162309796475327743574074128935377824866230806376507659980238426699075587029248272392260569894639475355974892760806833669170949546277049142144104629636983416572250755839193642738582476453930578888564859786171393545010842443251517136010227721999106884983408375454225173964724604365511656032627940398828620300354720128618594793004130675041059594979989018019281982779105514777792279068310835573548566491032156391657721488024637763028875886113956694002062409319398961434898153527463403929220089372273395436856083776758034928329021399051346610150203426894331494396998587944195195432738891718872729921415759802522841949945287336896892339306388953357303442034167196416670312364605320569915159712167291191708608349694640869418804355035310109519562436725014383264356464082712058329051184546930038256990948555896024078479618493728626201308354890575659710959485575216631779275795263465632748452596636877306896699947396343064905759494098060438518039709748024195844338996653542073965762658040148859755880607113548742271765346472633952180963638187953409332611469463676949882967972439403263054426525074160327510105199799446064264126568742735527512759660779810162354614650310019123162006980252936560073119024605304899174089788143991350133717922995286341002375370710455318359654695534968817941354926742388198656238854170110358292198040333292300307202882474525150574507101167985953028184021182468657828600863840547056086962872200759238274798496743138169749711431348511920382299250011270150708188155459197671314692701365441912659320443071521128849013706900567236080440986071833775386525699195480065223408887789157801343595409636335973206242572067017328864299074062094114540605355416733960010923881623597745283965712713447701544251310799456265578933400383290881252240137881844079760118312964025200321149302773952616121895884690043985163208901818349550064951649764102264248011204488239138999801322924970353698491182266503708099835114932487233884798585899232327476677882413313071469009894265320093304099659283548519958247006797791570972495031264718898509785354812738462802691989310570940558832039968505512931459619200182868556180813567017509435104332490372823050039770086176875124802514969177216055613070069729975934999929320152163986615606565840834322685326924663870972588417047463079931484984107722589195869161709178144936080516520132674317160559446188955031278109394109954439227226073718476490980437225019583556761592227651966511777011678291564884719312935910040904583169378284415237453547757201176873019305251791683990070240507711223896121992251074154027108666467508530377306969196843538476354172693828820692693140492561481900580162111808372750500324273228472653180112330047282365470306555675191255193373134655365261969925946223963994938073940055341526255263527621904448881258391292213578214615647815622284747135200627082117310513766470316631825144345993426728420969443019840169785314015320113472747060971346341628560093858815772485709798997933232330238175666604254004212601832311200772264013218143964756445944894302946760933478673173525469300755253789182624067333596953725353826430779409148226310968030982276467126279454556057115040813961702609183024110237401516785616695599504259899445403785247380551924520091506691365203645137640369377049760114742991275268856538178623661289979856318189773769962711115288166164545833700182469440819215422298043118028809087167903508918822334559236828284417653445278876227684070411950773209311368840752486740849407906248043178128485520192701877371817934115050016111831154882801781859377466811249618946843994767648719577327679864844927917820053779776868588034465747530755748978592675721359811921745367823787723901634814670853111931632542536932460439635375359049072246989837073206153868369921989459397699737661000834941040652780851601653285516729237208587960425471521088810304000111894843911343911615935485178914269913145236586330523389905507901182175386995231568001144320547302394936148072854040217368842380043376129296286477606491848566431765061844498352988567231731173374993777608012525648624937988338746647913868273571912414345807130206908157407404270842753979008049382859050226271956425054148647256939959486085053861800125978539169473113524136875292811685749267592508106475660817880351355288580036027544972619805082859528800394393620158899826268057791552395907006864253089237020143124883887444018712797413145144591818303751156440735597329083211613705655477986575728843473959965774425890403364968649121107283894938692271522395347422108210400282136651303348475273893391670332262272136595909860449567045966772006522600780437434823408782409930908117309675267363923980649022470680473808484155821796676847571264560858532792631250553647713055351659604244389874892480771859167260827798522140175817304290364388081002599514581722285957865672240604831357392358016589018908324957814209197993019073411121941239128589300583783195155295592295717115142779636352188897529580439700925413414203093971523595186956805070675311105118713020955054715320293595274610514929143419312808358992007424856500066960464379223356916247882931711685052446452330558634080325660817423966036565296358736787345012493728556914293923621987055653351064576524195221134969262550003847357316855307380831386820482685598056029147040757605365850283941579692812605079418950212217063528940689699535376739571036124319092559470478833815812287274701883944797830347548389798536664408621714549188583070024578557905316336549392151902564668430896025002577402155221803076277137908597032474505291937434635480376463904043202276157924890651011346519313290325680287007579800979255684135075027306123980745802694166749806048694236770730760511408377144649934884322729079396035501857477504310015594132742031684584358109815871558164230074913612722361893045451014275217091215684186548848611259432736777647172187291397139573588169572911080616172709991911938247590244804104205979543010921529437095042689156163935162663066025500633847250864836352693256404572869571588004166494888290834595256072085447851787731582703544292798206975918574457333793198102599946177113273271566086743819950621923980804489243500468359374125026060879229973537983899541838538368245203479017163230970366016187190598279604821752550306953239138358625396674479026007424670217954661560559175531125677478015022269767960552633384676109954057368780674447834015038892947728556598874879426085169517877631310613350732731634675842952610631407572474497584461748770818483262999904333628690623552360673095690733697931528188832876259189188675731531369799403295580883353013551164256550488599311167177707433729810285850573964604704025723167442999656506405621486357656644987608577450168869968777224956526379822483929302982725312227301671835024720087957031503737279910254864735035384010710500355715070240410094574080065811347633795485979559602294343164765831477674101537416384221915048224488581894220120884340375202521447732023153485639298043068652964094203301463499710821505916774708769778181802532158170803308541674824434123637158964505875850219911387285597808120133067756528023793244726896776737468197977889294908921295131942960210396647137050066991825697990977707370503849735829679406727742694473791936777810020609954925849871510280717469010544013153396262311849348835292262562088576834530352154564502751824465113920183816973327146380257369449646479612695747009093017965494516411994341903097364068274183802061833902624787185078515509664401717403212629520352148735834315146840369451984102086679467932821111211076066570529549788653283781914556976394312621835092645971351149047059692359358223663804207318679975099754833327849494571320015779253176693462974534267975113586005129641595711634270540693727846343573835656235238620943723332924730814839065357347091142632681750931370089731530554482898518217046069484298000505999433825468740184932657874088789095466430775544865122535571108378076013515905863097223794185949338567875569530929030901558842155225785763029025275570249780828259570265017819313880083023664995733202432040155746524222640984214786069767581127389658364795045656167725668560813584564672244149899453037309986586584243927091075153944964305668987869858567792923307683065891135795335843372149697849224915733634158329898116100022718030054862389215723271806482893018702304063681228934969974824058511303537667934568228207682297986937040199937606912329320103784071547744711146377068558515631385881972808582471769804881725598532284852848919134316714667836986090382983171837438292045168639178948406110683139289064171540472502116553158096035422796934816360472501939405413776281495778382072582038538448005895399499601815655567170382630464286811311953554272591299838022838198299074568769302764570315101174420725546608325258840219739459266067232765351510443527784806667733372624548825611956184681139919437705476008939770087677391933101836198371872348738319870191782299629667070528090402763590229600674434597164526806096136433706980849720231380903901083644314849701412379776143523772371740584001848624015293307104890847669523188324859095860265158370457700294649269266558407358281118830061874666681237909958152690339182573952593071872013121472001211086252188485947502209992845138773551055569171267760301241760915755764821346689778766786359719802819728630234526621019748040533632360374108096832913492256723436767845134322519005808426844796974957483621992656055629127392129363730450805967340233264941049455277629575920172377875308542420013809752748649695260385246424425108097399079504183475203846351633003420871415970107497381462418653439297383061804347629284256858854496056517444523540350598004493877751693749701087694914195970109173667659400644355147069261743580382929998616181447541988539389929014528329712092537373717837970788070024420521658415337515425976208646487104656973387970621182980787773719746252586090931245125625323679590690164633962149443543567575498683027355969437870513914340842388500744433710969833388723341665713156048092491377016073970290009401608111536833309076908120347182290798421407382718914551390081172956439454971707461434319509459038091713287983061203539442285486324343686231145552585392054522972781490469137336715931926704499403365309740140614027173607779713848133119315196684941242310393007984842331665782057155146138896823096091718733142204410679443104905342299976153371850141011466816602225392323161594837063806472842778928505382887907365479661281947976130294243417997396535607685888975657006173784741768489481254193252073066487669304318551076685046004285398833448671558095307764690318078752467476441069617060200454545609171991222969149816206167396417928110943721497251635410312704271240085322476874250313964290455029143029028889955151992223137393695846361269843626082493266278898680919138332880060439720364452486472281295321920664122342551298644574657900456027033566596842202809938583256216708351920015090149656256281176292726363900757003663154449436633621730087590527308730854737863920139912987862339243085599720075453212780031803187938419449303226412372452106315836541475379261257681065738016404559005082778015991108388794067200187764757170036900476887844889087450203700763346368195247813771518837612179897631071246590008063138073955015852784955904610706748176437028576616500736855910531870847741736065563711768286914006180577188489418630896587850287581545870708975089980828614871711987740874005610631452605155161204161982505518550307244757248141282576347275046815565965640480404091622280399157107543426767052473925252525821764815995610027957855250894763384371092564344796891553955830865151600170223900075846287119950305982686069618660926350472234943436032920104579331799714457919777002709101419177315277873020016919473237476697543743630363286940024638887890907628496349503681682600415044034550749207896972292429620080534848581922662340124372603225874480352404258537132357074280569312345659718115890848952486348871052645701052559440227080715406581869736237519127378677434243017624293425520653929872640843190555959653365337076737935455799501526490072917123060205748878081968644734245606853720287083520757820105474012159807418492928981122139318483214380386181300368312658388271875978578504598702761269992277313373651273586050034316530472065081823240052981855319898828651816070220574528687023547908164307987567830043968577244196225255611560749774510116406959181862931637081489496949289469997283926754220640896380011921043364285376231940041041418384779039785739131148007299691735076224731852757728655949710780505285118638456547715072960725035071740217069713056607104804096794833830432697621417676634894517012979490230836661119665526948664426975948792483883498778397397310203535908627291203840330497105932971462201097609192575081136227518870669907762921818638280737982352115935573045255762805745908485669786230480398028895331375298711868420100116913452079091670207316274443481165440520515126567326414819237008775982029262940249423196204686251509741199431124657272439292046790020298615211261126879765880274009124966204656984606273443983060578329846024147972215618146656763411837777225449265360215004104557118938419663654680600796785563506362583857915491920132107808162695076623036047148333902294708635628270548783562123926997599111082480996013759669742907256069248217341786408855525901072635308595270699196897563880364306247368386871893583724180015461202750257493997754681039138435111374839475003442263689046328991009306338308976197741079290211755944544776371671004802851171857412992492402276136462838174203241261740938545451730175197052372950892150727701755653521642740092613910363852565010732612956593353403844070710132270759241242669950858098512793789810817284097160937532444567876006777475310248196487321280702581535380897446875851591417434238958126750833435515334120199884299517163421811498440645843808020359161893255061507674184859454127452526225190728502767147199807089809019308900826764053016137328296016593087667911031169390803027098096600387811704499697580460645850966962544704484109697847780958166468136862734852651227701495949584318947921532392068908051029674515401471906020515512393752368027802822158275270677014916974224785864941723711205494043284764543212694782740038715390648490084491210509244609429573298080417323459165540228714939371845080399726827685183543008410640087291074441811277735929435806988450586202298409035609551320704737998133778400215461255864713731067763066027174737918221068466094914955068504110475387302998999563262799909100186332307361024376207418381239822199740458456826111973388971336374281608555162106280891651893754394927714756229514045982975179996010675109882721450871498469166996401046129384136784863668108692878966965748257277440430191804129734698202484051806838468643374136201220530002711833561477121475844398932244214502453614328735421976886855656670604440899256402234613041014649642558274436679159195733539641554997984247440454181671314904909988644717635958503542853354800875339999979094470419749891642335863568169495737554829190522810143546036037840685338156168837426159524302086890193605907293990107120295429103855880556747866124854345931879700077945755706300170264121175691811054492643136791991896417942507952080306853792130845766819798263844000000454056950845269973192751350987385736600742860711412295241796527743491822411275381221118782344157168132753565640860791829868097689274719666678560242841235635138028840887132756853933508951078853826676276805252036897644275341942189814827782388470568220885224308532522907890817795556916823044149705981805243832686238358780739933761724138365364343868625002971392127763440115190526250596178584657485236148506305975786161803201597651091109562684453982495648054018436383350898323563659965474994827397354195926557610423135150302952686047319210393943304996165859783821326031483249599993694488401751931355602976830382627943946969505484783259774071069008667352309564928595245021110378846797461325009414958763144752349391168162879686661909013523941416940263486695377536390740774878543017860100053077436087206766665118146976688270378229375582212737820318501265738692930574294728622480050961719338952969080162113325048335353219063916531941339110222770660646525296319846240492876667556970669549082472295082490281393632729544324997298177986884382620855320184601984904638314488709696021296739038276677006341283922651100972951673679103846981672001424154496963370966208571276480796483706856660934690723041523105586974642056611115600211424892535697316377750897432900125159861730357542563865111713112945066032435053480681566980935968757262423772224683502416065860037511955138842554973684780614469970797733923066867322757288608031295118553083476509007802457999650647171297077134223020058905634134209830505161069045778562001117441079483317046184364087580117346862203802219253302895015133017500045679026568462038195518022677638332391293567545463054490702599213737322915167586614662227101701350126964741815451632231946071126094602030416143960219444281855428429307688869405433259066739322361153703071412251524550114826122944858809876790712377990844879507487821527516104473223630551040180257570046469287283776356627468128566547102726642875669292346173203176485085511942011777766625861729111441153544978828848511265802264737609214884713387068091194426144212386171334912562543335572481958410357670482178622478225513054468541351887374707735631500956459231858085209311975615936641373116610816281001883747295650181955954364343853738404395851059454120404517107547917541667582357415780259216966006727959862847820966378825183197789608992013815949476634846521512773664179512806472499086095558895217092479241237257750593467316776442583822036690943735271323396952339327960679402684213749657593947474928549426585938736380821340560075377677475554044319460893292098573395260253231326225956657531648198111192198063890222619277254133877534176796392110542392765817568333812741382781333683237226531348914272340561153115012328785528402459979057200139782077914478040605516234548983155433230559764818705758701753754211100872213779488036410483332457145230011261782561309906145099439364907856071160764886197090387021552166542982229399891841083690814780693507558353786151293043891810647456444568517000757626264848983826364554260056257556846585754234212458298471549112623198817552646949059861227509991890292424025973641017725539729968705591879521982121119119390191450688507379347711151220485911264133358411917018462961194942417571375793996686101520485591549293611785277542507348971294327389017648028901893804356213369966302046228155429810331542127383886086596609441742386146678071627092854228887847914251525229211074998721678474408599874936974763381652317376755524677857070726746568598479034276623128896301577920283113933178910526287472969987239775713372544222252769662027260984169489308924030153316704010929921566275721568505366923246502384044783580481043935545626402745220380839904321623230305731518966096848742842798100051044488641913998307429239046296744967790429687097300900703675410592212532305681851702204486723907599104698489428115549940079360610750650716054545750642202894786480202538770152935832729638199674752236074281922343883864490464036971876618682102013721911198503350231347614389271350810855394615067353264282081578082715659500200692175979219668364009007797333560243222324800366125779200542600286840374304186460522562822596106900596227150401247633103725502951022403673691335006474842727461039919717662514518111697350736514246763352891344827964531230578156852191061852757937506698539524783262561907205439892146610134315614460022944720278290452238438578956138376410444449490716627969742585266317820695726323248750159104307441055471233122629600871936280268550436300550788790323218281572954814959852384988444409670200792078212003890521162913874143155429015658019065599911761112186724600183720877575689666039452115623230578514219064027496781050445291645186183231614757565656705503088570249049158842591415223293603460652106831051081953747067004062868039627246326938122979328949505318148865597856892596670177710775172613661069740450198665994706652976603725451068299005152651207894172575562596606673993043242413607289800261746159974012282053459652629401386916196154967105116206925454084194567983055346120797267781954441014899781334766939065748365538967785226196876341938045072747396403490925685312455075706762439831651750364102156934892741160276068473434786401376727718290033065131731289686963843313496807171881322312119647591826162957757085621190552438565539546707975150524696852159951238744304790397413837871090092460811685552057601356925865105348253111388616905869007085127135026919736307531002481912807732064907353377200621737191792655042046662001479054428348401870161844948387728499920222692106494737619502080059191480689648801819124009927505550046133364298023731698031933460132281636001237129460674714211350410032258297077093870807929952770379861034783749670411707359677234705457422400109810019818162882133931274600776157008479850760360680810322502867492124137268589791717152816404390872949767541181495760468030655859952575615785212112535237676266978662196298287001974326299537988892604620120190961069855077739427683425586418967437373929929268966808081421923736754199254280294765060726979218278735455364336422814101932393619058487303900456796300988905309367911163904610994104077753989868653807286764501893382185316715719612569150456515289342143124827885975752612710540123212579459533063221240918573931588066324729483395307891501210888556941556544395800161173395850895418160798177812312332117050121032134818088255784837850017118789292432668147796346351893336700305533160469765361491516437225337231763613797507111021826287172628811573950043655038837154599745654612249974144182479289810035243148270672671132973889846658313290949810255326478473090851661231815013931832892793637359919671233106954560802549281697567406387261228341748744950708115697689018083589760762504003667401387759126141562328934185273593297972703024810738993421386770729307292935952926790111411672825979786288050952975233827341166868417278257534987910989328912875079796119608955549369013343502337089830113267920680763807188305778730347758843822806544221676329680755802021555075912295519578562737739352092888404621921563115540283052259198482808304167603420310017345019996697775731318022977133065059405539251159053537199319552057218774930878198939738225699277366108031161342441682578037574470886742194977154469685138877116986166864100933399382728572202508044905626175467133338872442408641563876302917741729139167292630038297815799377897602221910943313191932701912752110259785152844079157693141756457518621596017686288538500898478195284286420515925717700361644605677696606748285691233180894730901543580858399497006892455265771239840737331054520845782377443542187956379238856090586850828832918486792538181678214143738407050272674978774672190239910428528227256218644201393320957393779412090087262449671901873439966357031170468395341088753956723045431072039204346658221120015581089527333431918408927142777097297789956374026534622585533288691601142617563274504200318056173365216977375112514459714182479672746108275165274672637247682766695173750794361240151220663804450594934117619661418522929983148038341673105588189260401609755406642137680762251820617631533126954250018980993443312232576262350770072152531854378848799191851928713121394938802149410296453418480739864580366973821406298125103268443441581022353968034546307529680500634437738684325781329295421013675583409121886554402675734933513428772458154589685465057683642969314335017263212487786533224746070220167458907476345896833923501575995485226987759000952659798626989043168798773566700012209364087441355670933003336392454101405248952014713457342511708617916891948081478356000435548528839405635939463405455723432832923889144704472519881574620696410627998611361230621847086905500396586858598402894270530102524664996702099173496626727814314765079978959519357837564814767021550530399552620048261385628783962958961801406666316432606634976210152332963111510760342532874198031673216635938232109201936132170597714282604193032337026304186801150230058897307410068545792815330039643812022843754644785911584574311810316574677277528970914506250355106208532106843353348137029403383556823089914545958124592628619211175220646347199651692114712018379190740862857865888112047576016963428876070893332884500854507251951878323982031758474724022732758078989265213655959244456983127220952124309839862705625622075383807726091685866676921732982275696289505750767920233642685342410208067326927113983633614163010618474502802246420583207089020584410625741693969721831483872415099007828833452332683783426757614446257242587749459382030257271543437330586398519710779041331034648453250534026829951527436833349832236425238269503729779074618013706066838173079502412564797603704388164753799440954162351342334538317839167247995387137229445297515890875133404103606214750049324421906240587379514061846364881636431281970833143793072331414769030654279236374895004506423364079570903536355706315078294551390106171048590300992097566163280640076338633147650071914731694681713363466299023746238772706818043101572372373499687351815924085262755789753512029112921882643396284889232358854202487165040192463532858921733369539776289008770821039600014712082608412987621512626628141633244478942049057053195487731975447379327212569562713999824224604175629004441828425235134654563901786120501954154292655831729462422811172437321222707621023893893958072621205630159178312515867461031612381186372645621992507272193684713780994914819732331502512855281222032940042814597962827599617596772499901729415218631856677464480279994780341489556824638313126965163535862367773401756862480098152229095396348765042371745731595788143990940015080351597431534984344692494333540284554591230770383174626106278430520137635725105639204330329498464560923288066421178658792420415339556324404518381128010124845018293532638663478218290041252923385119842399255752622158628351107404926202761379942544407228872001004080083928902853459640276602421135257528568229585881511179001788528543266992306708189670078354247734057089567155593199545842521889704070863218248613740087554243592963507586890431351376479509149834720153228971180883710982998831775886186931089147740720036685665948170742253125543197430914956916631742067224913493838442500095443980825060377153494511434963217474241227987623404400896342852298999086902904309771201845262741035432652024136453278761461139736173547011181903011339470904589047069891140939855002101459816457056354463257890582016633221179449772271523852863270290729217342328013688060706206794513922627040240438302215139044341908094331007793998454952696673777336546621227933867740341477214616214516730593206727387654395443075973127493265804273799809555294848583942727085866906462467461523531595996720398246520387317754321843864384154215484468407098578189402254243648250076418928066706829370199964871869819570558743627002842832927125211594154477805986061323725855346496455980547228854072567614384177672703842834925315968918071576142499770392252090304577610280707433137553010232186382499838882680093388169427653026331523917283672790767769085327955933200370985738122778809845207503838163711343772843212548140005469288274973503962305224046753882254712972872536930126596951064461875925038813194180514800218248205633518527754305941685201732540868822503910836584792195454174549639873734976039314095572772357189176272271280884681184790686406520338777310319792700845126491449751054578194717320163429151195465908775803412422293419894510963948766646013555491012037376415583327153405882591139242355354735625388279440263747256350283200116238683385920480703349888495780890048522627861690990297685517771508902829487227238616116332060287619464867264426776752129098498467757179965613873518061062551548589455388021131327964229922494478640646712878565419541668193205432165826006698346250275256728349049276536699997699197435427593549338777742345476419054233964242430469478481547899193029386955932564238770174373484595139347403747231679848871098199093797539713148281947632164098048795557428384787053667414216380665526789015923650296466133177224637440128702476242369745535838997615178532465422645909254746355357220019058921397438664577159349609925706026721413008454602367817000904008967891991785645419363935448773174737361809331222557454888123397003948586524256455701845456618271425236213529248642082891348607674068272741485501952948742697398846087886696632145327414835185591189728227079653165414541145481607954127676922458088319574902089067289383510124478731222731615837587961751539288184797785048603647172184138517994622427637967714317845752541277098948015839273577090007868782007913701810241468830704866571689918061912637465471186359853190676217789916745578907973090366342500335912669036927023044997360863567037455921182453911304875964984729040284455749295188703962499871921080158796436527887995558041181109662524002713810316072011673353530324611083849838899259685757042859813813122545898434408012975801055935153925058736435255896853251363253809783159048265207835118343007752758505681126860139698896584454106842581436319661489843637195265638236599023753446759929314854683273152809958123620928646558163188116237153410239663269178615125154922194051045713906058233112927675838855788942781090620732660660131378121753533222338495777241980405253284458854710929563054624116095863815192054132067342490525291467335075505893334814482931647712846984175496966449377373486865623384553747129735808366270194711434934769965143015436680722443957473966020991938920720385932684131078752824223839336627784163105636523882474184793221031534660011061208355855216318848636657559322466467341578438656103950082108221327684402010591486664323465281490185821416400943493159423555351702994746219935959189198315100639113992890557467928599987142911362087365055562538744343075655180158017025284814818854194131210557517663782694461594915439497618968910469031123823288958411181808854217756875607250209768465778327923177739852876174348229740689816599481407384094299315975312655791094539671845957581528309528154588513907214577218378887616214622039487949526245028504039719150282108460177135507994705640074521879086256694230983899162859791484596447469064669035340822760601889554082217028094012646509164946873908623557672770915902631771210978023747679756184393262957378483187893760329084269085180059856887590561905085172615799613160161257808152475595629242697045998288567355612022953217446427406191339908057569806334100404947648108458330292869118791309485647173681089452309575548384141554102919308772851027667707716107946721311710278823223934801809156680823905322804306724950809710141339764211119893462609087827548591751180647454318724090103899295827648319602574330725803384052029537076333310759804391616243315321299880956646879662054053796635191546864589466847058562744183937559263651422748510941803349027011227010932572644224727642342935689666000835697205114791531239164934181159960621760812889895456827974824551348688212673591320747874772235312719322212609993801168219873667315886863431114473895348188067950446088390496019340532359953690983574889667131080463834232720940065922290170387173660273052763443884583750120949501736304062430421573963582895946846014066461174220381327060399020638339762465977780077799554171870673169104098599978318565389512595620058291513565760720200643167624967658986297654393900552186129554112670782895070223484305377658984010549398923004653241304825302720216109418533872001858345957811715877937640392754612543134238154613524318006626527802760878314115300615384747790114325902806710082898842980311069120758257774100204534697302111536101850530253799283878743680798107230856323913221626805970803116734602225277027136355758689048746375020471494849093141667264722895029891218995098960195566270140078296921860015160231366342975756822989964252542007887282047234687385749803723284781767144268101227564237467010105526631361675717217536046405715128350953423297848863997733294584400946499229061584060841523559665823016944318173637513988500171388708730594546895395723570396253972981040316482905640992741422279296002617956153497366588354138027643228369671958342924410295154017232140056568904510534076821757145574556525005615620650922915103459382312082202229421519396860731178535035641573305109152482281867511319788400158783132967683566320848949749353353824729046384437255475995595510811020457858721924202611180801785035686602125675952477215832336882963607990006411198320521508806342522341551868609950519275812398407040472559481067907487782623816119868072144549010337200787786411377542070556027107784794671126763469558065700751149046980704429184585808896151058734958613786002867824554491974162101216154929573059385045959321303739897645911988580949792010612791832184064425066783458236394519637922348842553701391481414283033457271608565968637177667880237056586941265853255829423135760979790459279314096127242000166045742171803650859499010816513186413469551525424750087549771984486292865095683744805927395053966580686864030203585868853345703890521602412277063016338195592798218361596202242961432155422461481188293458696684599182524244690770152444535144961587702702131992362680161264634241261859381828206916816317070356224453013348917491920273843358529667544573032838775144769745808647706696360812735046622312038763950401195126233657861466953179660595780502887636345944057641205885417880551297418174789081875964130776330417556520963301367170335345866143030961133610792472595113343242246406406943949090253023678634231881917785189848932154915493884620349279807217162956115932165895461259687925668645213290771061149426552635137040425817718764246380299126819668651248934695977582051914801412736352000221248868402875240384364023420436852678694606620977683590507126901714366802095654998831212090066675221197796724945022255446015180359934698687220199174070362538709323004260941026480392974736702988564183463402495553758072489492223857528584817660613691862324070458058921835436677425232586485390403246430949668803484221787557833257643091501468096455911026978545389171661766168946494940840482993333176983591660667194026514597891673552769093360452003286329968162510139644294405579081309498394739470629176123781663625568263331738333563650125482633754077735217504939230325262558521865852016781759497213968895781636084114276910800086585190045085918664150838424593005118470379842889629753955190780739753080948614246541114008407748092016921783942077156419095075370757079628027781426915472913021487100960677450528351668361578175002685709735391410507700842284169284241248869977653964214477731927693104230408270154477051731021301542106272982781429973227003315107330088436991531028064740734646827234878377858361141969913082280253253299898781236955384771739965076327886216554157773014640455859765624133496263984921991182732924879052765139706951638440318023029824759796673412016337497438913333449000181126013250947335250377390311476474885175413071370767357952822806728124226611414900676670430542284597627805847471135132460021120711156611264763609636928469088092891819406855336863206051449944208228859797550066872911607937817551366175903352276427221721759761806061353691420162880264025689299752007219673868612224869816024925657373038269548762009549751738033688175185325925533488476238793119197734355233336118039332510380024248374285750891777013260821405136273467156053317535088354640677978764349206920689816044913874102795893531516151525106013042507997637648309428582783657423489989511190066681685049299441464746571328080032561962418739724267273929094118436115331051410648611259108899694023654791844274844360834974010049653925717478069392613964273036642381154599324499504449355122119790478903264336685994615028999735300871816874668215127663655500827475896383992978296252291412668371985098439325718167739858006435344108201846413681167846842065416179862195890785009611835425208787900970746261664640005185216523381458368684830117078545855389476651017748600174788997457261868594745920008860277693260922898752789858011932561670206576102374633268336082860080437673087970462524151825943650070989496620051065180401157446102438654165641350813988678312336097875905521689702391796276613180730552299749348500553314084143025290781308563169805962934355413933145564681361625852476144388041226922153143700511286709258453398077713246335861345598136216267638943773014965064935955946539575782513202989864313714501950915614477950016315191807856630382235483334898098135830260337533915521173533138383910367396841768196908814718761849397381665574826037452725656802696026479406355176075434223171272589372994013561706108581903368901957135682830829233405602120242218248506931449613312672530267356707672389705920911191727532812756498553289618353351170737846410159566582188104587864689254810959875200990865187877565362821507640462669105137782234338111512727300412053081604533223769664257351709273379510579742685694524585083099102811239540335509225369664180684947935920665301363015575415647166881491657109828887944718499819473033209920194725700711100813834568751000213746807915508886036756426542880639232711027001391689313391862911126203133199307121038221702487635030175322857032725241785479030521265151660637319917283049036701596564062060847580763501993975186836646753800777274618934222064048937720657745801570134510203191293300486600242052771846386688428788514045660160794567929008461049547836852178866683296958921787006812933348044995890821308116183227572871818066608975229711693371003526086947850906171820368288460148623533075032725177009061296623935122018665196119508647466213168500527447177471486822291512614993427600464407614305956081791151123763569745205343259751248979634470884937004575159664064360859136240806803986644199217917828890595608058164773890060256480474869976201030325007890511527199001758941767079303368194104015442902835613500499869057845447627103620699805021193830450539795786667287470840073447621126400150208909943115248529638179835212286899234980545586638079030453348466759456921118520187543044084852519728732624946387376728826234924612935260514741588588525320418357806378986388043059422843400984391595730337414642485641090689842976879797669178558509424506358342327932722906303850049960272543159237624451689812410072029504651737976985693568266548338112691283230448066396283405074568806099392546194623454024056234097161018794286637400308589140704777558801301049677866269984739338504409939025825532438670751472139098690505440729220759076822990697867217602588235977173942179582765814152650226609370190793548532031119939375809429741090860894591452315965298778542663225429864644482995250648989827118773200178490937822046316741221565155235893006478406383716923437285085083622397902022348103278277590085757219378804065974454668250973397343137622910080029309579434812527703319379311608499958047203172330179158903129114727440287059648957322017306855112789780851530633571774792477612370416135817729347277615429091933808886879189290410569813155265687344575764374787597790197453679126685022954350682813387234730827549460612002211448118110099418651004382209316183700097916398915081820890421924511688842079219689812230464679824359258535576632821357898283363138368889278454353894444767640892874011559459674096907333783971650972847637411539837224464218742892995582971546852851313460594076801540231006581514144967556208921275703000152399451550773786422527857461816654390556964905873082311855055913999672396546759849790036570506846902972557339828612743942457433051535951558988341165372831499329007225534848294621874273238218317774521437018966390717270074734222103898418605174952485712586356042717655184428624847826152556973423496760010321067587772036850045043176363935755598579870160098662244516814552789905686593467196890345900577382023928621387991169232946639549032007220895119915884743802936876289495555540164835815136120059446474293959083373109392550390890788005955475814174158148067734428606511587593329623999270878063891923388064245039692778969920130757196394156754369357291200770614136540015677987719586918598376215355831580138323417054677496313100242095120647392203938234463040021297839275502068646875794917687259475286687498354190235731758152215581511849781089097498718558379308116358632928593124818119243617540852823061486957291082172738217870569213053936308501993688922040641743368735243650100062258579810698084956613479353364066171845525293952306499670093869693596719833112007532076047306443144727484387815309213661185556591560182544042706774366399113781517716693037056969045348356010681204290683227653123852064531180994307687497685166847281209181303925647115674866737799932781248306529541173119169956616315335200633477364734244349462432917819250788388939582769819636612262803961343558755563075213453659284712330039560328419448992601440720842850746144044188135099987646384998882715065783476204133359103743048574241211148467840422022868647123947752911748221826080058925199342141302327036259300108759920996205448642974704730672340837907951732316930240885325838297528143331362824248841017529957552694207073085565956055416422770547828891458975975820443494804839535416478355110461388893367382991020283170498821970129885484992158425663808206669830931635201549921937489454051568995374036386419002128692556178859605842287212066281308812467155693087454156611313184931995159334394821553501160696570048890068478838528022346366689591811903337239865407539852247417781132316475485525554056361042153761608755747780211757834604676093096214768504575168337185301272237853161452471106013617226241822683238810720803101689213646065034646612323678900138063475915978034472651975360820067705110296141846274745030481112938542639355770656959967043644144606250276464189552871267780655241887580991998590755401927829290827089641855443103930076173794151088303367910326986809428629289674553259530857934232446604551730154511994208162104386340521278260305964372001166940721514475775932395592571173474816452955035331069553602742318081047312534803746944594521037879144902138509309978493887114092972798961434958353713026831246874207712156824989944098160534896412583805750276713849299466123512264843028252123014154291269410657306504941058385746167385998600804230280827412269193292388093019749101647590470439560692775101926499829608895936932281159641015346103192388966302514341456438247599734221136920602901735632630914766620972761053324153440804440537809670615205363056011058816918694111784966335021678168999029229056345064427585105980343655460979594883602158340568250403555391610208861555120058265518328699465877192948073900824796203614576467751874094454927257533274998697795217153172487588070078146105046597164070983429510811016774705827616639486482612985067464761301544276146982139544474414062327913325976020470549636964258776862090596494982172691640577048108030715860959333412393500872996033571737107062478149750057930081853271183598776303855379230298147539087113937041106812650461306834964523533930173669215546084859833055223843338103036420250775137185311636337148030969001368033855594903758605360374733266577083160794023111257426928021022140652458545300266216199818875459545681277917548516043838218297111355729442389176921930553577780853781028318825466299651955154129128611710597081797773186595243364705122704280148846351367390502556039456671285339779179646029252112696315709264737675971775406567911797497302798036715122918529762216478926311409988194762516857432905400948617210112001763107042745286566611389658711902424625233504357886334644972464560964369344043092282849832199898960157053514073180578017068369432499436336102297736665881955099537517206055831644164291344378417427722660767706489872158047624477467619549227422201323988350903355796782794284134488322525747420843028524582041332130844607768561891164233443976141872894499271111922588921341663383029172924670860768379261024612820793339468614100272445461746198349227234330039216914197922485308237074527283314488434167648876798882055669948918214558470824715655810480164998697878523145408736208201928516654414726915743498313099949501268367999805654127902289047111754880163716596899669973479978369949615575602263584160646829642209177322891982955831205306485334319862863224103990027670493592681934709204113254679879258951572917577710892117420430999277708977629623688463760784442916610728567267428452243237281098155662593203830314243727555831994604526954342724221984490988110001863664032176253576585417156711437987174281701729276586406098830355288664608298618014907423147749469346715365686878163806250494032131865966367476403068090450674850287730917993941130765966206029657001599907354353779144384638101323991797099847053818534106927876786063133475414310808393414387196947348017328278114807759719562396759654193703308840833773796291286786453500283302770789471005371076663357641657003708032434693743074673875213723505244551276198194188783680592458247055277997326989880437461552914479155347908562702977312573889138089735353309310222205881689876136025131651297518276820504653539530992806029767769013066350492001521586830229370938660723739316429723869449219772688102508495875668766865026850425119059470062246373781548113420340896986226815574217709491160427506953698681851070869162332821479160205738449186360680771422383602163491287752040109862707252869571081969816415857426155362044331596881971262558905252760407489520310977730194587920588021486681275434475974584753652698078226940640040036690022047569582110009905958877882140965299985062276058201197821480492292256613688812850532191583825655469959138424708924219833947673176462813433593752065875787667073749356869727127473372135670039802859758093125108208158767859861901705200470751128322084400075738620204455079858549265548266840326425693297433060082644528189592200577984196674051540083760879747906331695137891039402951880444989112275862809050468188086707521425781989556741544144808067036759093674994293204241879752548298766276541202321808031739396263663463761377930089778387329576889687899650867968389077014156545249745727631702433193104937114776414768218538347999459996043420791704942638263965015565596794008408205241814766680813264960978766404526222012708027030855678104830010921820126991573737651982427762140011997001524831051108246762230259317430805263055852625714388549460185070519786177320152423759082475472336051892956320001531445773584967095558140825692006959122638929409213011514129240400767776766517983626671719245916570052582926337107268163233990937297474204673038583208756447830288329308914863163962026264558763815349713943909381039222691758172218890730339524042497224237475565918951240012440611955689723265609929726358614946904488461348547334588729640142137151755389410639783304685366785272674062948824596538087327914514284171162975097158456511827593665768046075004925043570154555850404350998896038206715621510744497462236395093026926742725202811742047139595458616891309899747721465073683542152455357502851978528624998361836384409293660200805779241459505970037920074433756302271137006001840512911068768777861741438811235739185947580740602736757987795463670574701690347414420816728392003207538306623712039683424154339323909421010259985216623950667959114533755327546521670805774305773819122745786151336153569874789694683431473891153389365335317436526620335573545704250890030476275512324572469182851286674105905466562849354573182947712805380850347614656334509645012863515014103920655722421562026286090251684738891252004056250081180098145136786545036757045031707973245810209200670892290824574864576176251811432998432581083353158532230746555703325986746405472344485335658710326622408132152635576087899643699427588196272117457104340203512943427820438185406458229721588132466553049080419183291969139960627736295576710458314472491213959047965026464276300061881888556347872056711780427249605770367759004131816638928680576214386132732184788491023591979561441872265414345438829650637708088100697503947273955379884094630269471531764401875113475039007894590797207075635517643188779217123368637241595112111930466791359448664213168120926984650425314011025736425304232251235923934487340668990461137484667978570095256425450240148977341114580854353092398264348486534149167674217001129994504901862420552941473059537193097055573304110860727390522410485603415060611182557129908000397958708453190584066699443321667457213282917369432264732649425116108393385191345521666771665745939775204297747652209277087279488918459776070649778946180470221278269281346083861390910588822007972081371109761177466057736833684359965521365701790962797436042274398849599057101189284666876109754628476465466118045238498836208907714750567439971722032133029283856358534201533845889085851866195087545033977868758955177068187865906783226889661482762688498012828176821149374387251654811897948636701913059173147868698382757221232832688830318278169757616054756025886373488096079816960224915248239046061909573558118687242388953739621187540949202146586729266770182907108667178282326790868445259495400809428611030931887924107291149984503773876739886585654245036858990621712754217821059973142527681854726285936151305627050340858401977961847750118164583140982647629196887581990469047326431586560915932883426007211229501821243327357045897603835028134577395221598605217626341340825144917340493587369231986154542266496945992494620033902890785648493343796459370653091402666411688881688305928767256955795443408019476358311341543261075968660731331183875516398849770334550958253880629134151716451009027104675026040762045373746925748771483916856320649955496577706395909986591239281446529340737059998938392702569961039494743830970243468250683035565077824108724627789308433909514572030127405428432999804735315490890094441449054537761597338512875418849508985845594719047869130406109998310087751774143708287737620905759955030510284553521736650464017783789489363008165630135719227046192381536615473349255451776689548537140750452080918767734154660712506408629074304332563486487774759768156129785511099983666272884313880697569263356687581727362768829114851603141869736680492566879982402214980811777019271088594247305572854463622141557769102275884662050081873718730179689972309454092911337530467309244690042465843617816119367736286201533514680920538875950228923468954557370572166120539295440455003348388735315540012474460706373289455671349592109277913853157249123322713014335901491247633157985309095816829811937046189682780289132262737835009195228913347667951820685694705949124457568217702872989734076029885392872217749029241871131412391271485426555096101301525277923838755663310113173244307901371271791179487390013863889006545275681136165993646894339966499157900170298340410984962008958883364438319821149465840343724332792857210941556873686782257301210845300660290525146669083328129485741886311899807225723248202150290367352859723536966869147208112378994326025646850708410959541776944929816331246630627613017045751627168989749678727266682500612123279564231826746724139370540981322020044919767829327909371656831430636733474592772375127213683429734590533220612575554172280938301504179978001198896775224738274097142978938311245139237546940179645688109786422143314182116495440830748907946355848406250601603884439396425417820585565449191756070395033273565921752395222914510121107280669089908334295959729258491914348719460028862544476381274333146926494742558630658083842066076692591795803607841677873748664928113111720875974859831961350977921979990102447542677573440843199725994602570541440875201896681442310957277487463077394368811629545466757160696181352121482667635929938068496439990416798486405751947647246081118221600879765216145378435621579110326614478608012269880187379471084270892669707634079794631730810391276771510539184653333927385381575332217618393054741879541877448190820341828657835849945480119885017667556421446185371366166763697617953312606924086375407630902867375852895353104296429135898410187172323261658404537284502607279319257980127727178633217819537108077125868862094896987843462407526440992580197737644597480223284273274095783738066765357896941375192952513944127715503362951428616238221184192135520996062831309985483102668547977079204393849467178185543179125424804671490931838813190595683796652569577660878366597029907041378710105557072631906096946098991012141992753968142174504498752740735954351231857752965627544142659579668646626327164564140974738756054690632608589428482764243520537622949177884448803076546351076330697976256936323292859280597134606132538395094018930507832639089524051490514370664393825112236223074039426402131903083712368010631610472374296602638247768832677775712176042310967572210470011263162603983011830621203924066166431948478354816363965406960327625358222045856161687955515369994565789835871186094385397382508523886332204660911155090763129613197916064478482657146622719698698095753452764598133223905819897547691772084688438149477249243620733643784406400455896161573758515322887205159911357912921292084083253250054381837666622843699024967253062378168983372929456214579819119945961432063544395673316163284106340621671747128313010231599667712956274504895240208346320556430025605283357112008588590719280022033566652944811663660364289679337191087084226735258321427441824577697606416560002993136623161259040416025554808816830012686412309912351197077114406928246701440157129796029164495573311501328042660075949425855297235856226328207250442704274743190768565508025589420539468729072741416921092015384414210024354634680640825882890783291887665676493746931845122324827580105232832175003027938875486461151547385148373436993060044796257650905520043737134534061995076220784610656185700819513200666258188474620469524258477658812854884335791919656528172661255311844725085598644577994116266027238089692491440637897516276772937491159102632622296005516183800396957234591267084279258605917415976156296954570548665653565026523948427206016972593061192986644932464564196332803376934967462377215239804802313580571795879370619036606052480952147104669564065297118434547956518052990989342227847357807997498266835758724712957436503024399111226278438206693451750228280004373903524433989011968950502094343175139061267482605007469748184791628558603856642730270370622667442244558919738575710685594397272899559599386330999928518514306888708295609129120234946141658317282303801161160104568075247407937676011658279372847393113334225591002717458799185221820325190748266807426124470140499051035794569637630569191822866791721420268154397411143784944151597567554168764023124632540554382801863286214558695992464211123289411953728155220761434072238613981466184749477050029663570630426960214644382354387002637802998186419989095672748736764975096054809658304203748973351451149613697833079296831114566487405741204777480668271174200690242851007338733704701338899599720508196691430751988679131856627594154856465955555385025349225317809225948353314219608874126894445540928534650601854645186750286411624214530084408829265354842705111257745835927484422550669224261918294559044594438345114350225523595389967676289119108196869739158031873178629895807447900468542331577866307549705742830189587413678080760130691278296395704628714381424165638127746865457798523916269623687294258270353046807515184675458642931592307303873562799777792825958203837261174633024494484646268487801130754670370373194692843944305775943313854511774624292350453338183442413393293472122216800869200304545549920659487755628584075086825151060838410949795442656873101454246163381112896578219781194201432216568696633583893306333310808883113811699398952496735620212298600220782720559648689278781278488842639428467329312744520619310770084889879552343820607456647363511702150450110828797425869937462756575575640589144518603236560148566593012714153997749317966409496099136443199731636459542038395954480937964640675777766295169522508128275468469488082406876948816332302403035545393356269436942801379320035847504008929260580818124374833426559883279936489335584614038081798775499010104280015764761241609546222673109962600391488995559616222990344975040212961459487471551433387692151398257348972556249420904780552730031820376062726603641179394793936219339751207472749461946476365466525489668621863311504384386445322703262636489574282320573563371963389130559751090540423913138562449466690500139921077044194814862610661437839974710520318369160020271969306932097417505740609125279676185063793562874124768837226860580965632036465513271777529471619224535419956223956865210016321501541719083610337848115792589007562834544603380538337116091639481108176904335169672375935751176164803029560864769093459413086055183625611852345902493993941556119083102393836689739421239292870224907002059398536028312657935520251891561820179858630239580762470789479968153863541904144611615118596045667486208014370218794466533114725216525801247750430535525632357813862468213234266754797111124139489294681309389324476827124649309245882062916949773447346716058389149309963215167343050090797253569853412766965299716097253129051326627250723564128150971005300866278154792431161416900662464063797470040842696635837765264626852201416829043890460095609708228006186636456032365601835659211445829938640129322113781455158376265197567558455102353632709942978697312004787629369614726586252722550816066765477346030294585243972588701751606129982157168033201777580138150790858219593472556858832167024987573541873663947003492466952939485704651402035950540614273259969150610537355574892905143262677412777603784940047645098707381918589663701160335910464169246289121302663451465333397577029169422726389992671950834030586000165499107521191334776319133453595599007218558596167330935271526289646166723790961459654464527123740566184474953291314609341934942047172516587301920482434348793997641464977487457464812385883796288095212102858704968918924493916311243499686782141361573542858899045676404943694146178200255881669049922559455654372087236131492783102724749898184747070887884812228528193558497446968354577797121984175587432471662239463704342859746821821870517020213366749906209315687994875785718289621679703115703384586940839728010080077125371998878878442452161134250275584997716320701649369952840727592181054544874488374401794404975485227054681572452519935238689503319312355811160932699665410487087231608163216686684821987188027319142058030430512140540123258950653337576922896522212867429971180025733841470812294520104987760564994889864248864052020746378024713709609437434416810997448556888113005905288782206602852336965601367419126076263867580468748335309797471178131576277133262737182857857302863437530124373181654438779057586243850024604412173467553844757139564380131345369484710109810692969710666006783740435214342389996622256729360616713499135193577341409168972547353934046292616294739199845463924662336518673993612571927285923096180955809749017790986580470200420222069049861012099590566646829775717124374326877992918658917150849481896618434959565964931845383539471252901990891707507810301839236264028181264240713563059023775072455656828026709495738565567567152039820254274517103948471184028742127895090300335421073684601480862940181788396326696460683715503899564921990811740332185418841749497519259664338079370143874903153027473139918091671243331719641773269241382787301159725920548697735280619222357606962483203116590344610864132797330470431752032910558804930295991856491079112308994107948721400151522110870407369160243369766445489496620276930366598812342567551731987237700632000640309684066648948005306218384442006594442117752870164567201997777566921901315531074046094247881917948891963198165249932296041679895077287625077200371210274744550474157739817556981391335380317137135256085516175262217967014805428000132582570790046556477939130543145681900740857796544116554221984982029560359186236245126098828439579489940517054669744894597328747448073823800785160855189984486073054205946499424740626221887559638914794709019317717481588619374451174403848229716608857401281707184171377910459730708303450442167127840119390295822452639236548592562186892566059161301676982903481584087149239079421177605176191162426182568433857098559431593834683830455348492018219704519591141797781422016138500593242564866262502836244488036943076561504988538416509237968476413483444801738270108137939639344310825873342935653601258674083364899520558705815569113468993653179557722852696289221607258030109086211750937485926466005064697553550745210172719808894783150821363932993687398361506444870810126891056952024872752487843703354447972570473198092556136403830456802064428593279000073788795847375069157882901187312993001101467226994879952882384604365195275614537990387343582775816242239486076320329316203512173675478205733073032951517364656559888431956246900275324748703122653763017446860964472902224285808225006568938547769647734758412282970203625578195643934865743816210278801083645561976632344083902724017652199437576600490674727013980991048186247984328428017916406351153475659538197589004510925857743583651607183368974505501844925946516397914662315626498993461041392842154041337868998568963931915185759039512050073442865811853265927533634687564816215745460842551330251575219323018320469644080093450977518053503817051572632599364767192823321747121202861303700204963349173955438897103901545282879644922883211360896476056985893997837000370541546373331245887045430245819241419918853564370567003732358293630413987003779883303861202939680658207449401516441857377544107923033086071497238329994775243888988683626610519269015513733323460005548493997751318988875626076020770718738046762741456856751547093981553235322043144208788268184300008938082634665744857964862027640085614165241930275566880568311436199209646223027389648457646209276071365798608295083221209417657036535074780438262398847936789820371058950662584914702724233657145860476984457674580510614465550474460726623867093936517031926506717230345808605353023524167408108267888097261392233913563400792766458346093891208325912408449796914696356741059442786290508617768954650527559050870588404533309274139429062777314142750589437391629794240329978010546965778134732857533336438055554004554663982918284721168263313708932914716074283877759817803371173594809351955047665863057907991832766312921274632712367542868166733392778584379466252984937543230451183487846951437922307454651003852410704206630035064892700135917803615336379431286427945185886651225282193436071193533530775608848508864034662154997494216882783715702005488394203114996564595020931306192175496299965459296004282383038491186847383058047952764044626078895631029534913738223685927591193001260711249431404529448746969164476378074141470835861723655754497784560552727331944926295173557037874734056693676941406745284098655499452346329992826799416092258999358975658236012944966027869763985287507735428242582185918883468078240354026356471102340007960477059558425331761486183402518190734656344376875716803653537599501328525302550278094673661428156888850071339674893580316109721072346175393561092708964051150745134440901985711006132898701465837265765370127865716420319622637217029350147194738440655911738915374829911532712175638687134805539412277852674163537380571561036128264531482368500535030275233884713171711729408913376097897524583467596437894772612070340843203626901989719162701027885382629558804674046862049688304852732858696780706886355245703575243002261844972846083824232477979819339423856981576023242804090308666830222694490180040733348533684922478921369164993827308961529836362595752146999334946438430120034899550965399054966394354363851255691670099463749776118405204809671003648351924565462216668132400905627774536980460884678302219949324063076985365095206116858179481435313327426314040436013998510159847973485084704007564393469778942072339571164263337723212516392610109495867190820295805863517937955757956003516536722451839192365823020204475121254988578525855719754857898947190407097602276619818783215271315281459889413441063584152849457309470347027777424202618613134822274008740963279514284514658907396537336022441823861650021215837236197705891704574422875163212224730612153189480877103974338976423697849790723240398158746565935106111402833429260645802636993212159013022441814236382118436688253013559624621691136804692223537659271040747593492374806410405654613057388881277613526871826333565867589255603467852221003322773430351730848820914783496693358412480779895580972759825842584699372021230772080666740226227217746451914009096536774162489831665982401650904109186164589658861106998792137602433382206701825594462846777149643886260120787354440707789927793647884484180437147031826297600954267753438105790718696215106015078718598051089727918360528598041874267506140490402841850431590922423922325541162090692470588566335024518355051255477886931780891191482719970339747939627094099407975465716890280103085019640877756749118552421334923600386116979208064050108892738324023276454812097907774485263588042276512765202102376048688039011523362123965198466074701182709354854214633719850080208581962254501476056001675050904184252830311707419708840562139528585653181347870776869033401068857946625057196006812732291256844101392526524359160977756737039808285364473257852849938130098341953860706774829554623287281093728494588478322947544132559973571647037056393125652440481164589819821841202053065625372399933734488340024366063932714878665244578126297052145267363840991293190921244053852462723417335412490458584755329166093483163810604517272976506408871868514537106075170715726077746512235641879566076109567629468566027344369857389262700622065830679605685352737026883228867279217442026084713187500119326514622369142277808577507457683241222536966768899140158026976436206335493263582679384111318847556121290565810210230911415399392961296191618330351172682614977750035074178616229379471850440152147564713751399932675458037130018353738704809900301502850827022847859521040884764108053615861345659101646760916252576009244337658573711551014952099963923891173824609835383921551973003105126890981541512566936953539422399722317641939512483388988993626901328655396699986701222813544714547379768285790549214752450300019791745186499162746588057580991546072275017755255912127382445861294377064090897690925423451309853262634402296794385248413401332716155146074370596372754550553517585953707648980201746315486519180026237818301242528936252515023113328243580779859927642487048681373257247424920409408594019887936051837451639612286975250954477102535587455850576083676990377549341802153486986462913223653939759209434706947167852986064741675668234193353530694323710006142304767219794999635793746772168031428332686151711044350675926524874994836931692406124315044618223725831350078737433522675163439143955573027700932700774871008082692776147061756657477915534281538583090767175505802429173373839215001077598511160689289542074709129421503276168547020935129748844077476911636212662002193258963865575090554778357344513484679085110978497849223867215966424403452778110317421784744589949718688928123193375639533317772531660613082944858894829816091743196465127190466367692094084183412664411832259269924489716646504692531699679435426335447029072682263928500290783077069351840155027076006943551495032085580279441254740053198961630129036278210311560473766235078673757453846016328516912737860406078119812736991933889995696251654156634651391292672688724803609922215049503909990162579998790015319630570548961948419939964728884240624310003931491916084827899991660121608264871249690005655285187311577532874033550236647474244852538082617929296820065494387295637418267546381941550553817224586432474487039946956070306583040867958824742806741814921215724337737685817657144544621719879141321934619530725765065838410794631070210402898071725301946822572901783039152137626937506139120405003530747334032509440542474642041694766154645191519111028239251058426904210134719867968240463744481367902109733948264637163337256413332602002538270611395663974015670763248101285624655257055513960325761002869854189497948685770784537994678124990935644814139302272746257479869448646613092642224250732334567217553423240728432409202349842709036762219994577900725179929397121377877392371334437790937914542870983824074902801415871424220350879320253539454840963918424872463154423964102421327361630910250568957572892391035247367818782570012648756038626125629849883573709238162815921362437508820962670587092473228787737341313867410800748185025959688113194814137529239946449777486285596453466045907748201731034663246103254962948144421987409468923096743604369989712868546007681773389276494100225262801297843743069913240871089269535838310193350520334266597460449227761333470620054468746553066491121033425953327332639398292292559321216333746621671589846790669999058757265768312182007537162085013032916962529265175758649995298379530151175365783967597230178520984127176877893730055213151131794297955294113154570578349408144440485897625101961337178796986779876875783725613710458753895639025274218754222209783053173717284481296619325065998476065794830677159627267176400232923072204406838327634628450315067224746822315787055554136999588550174627591280415516543119304518886105565437359386869086644930100508156709070173763761248211180014973140172022171687535342381924752783333190303809475795219244613933138207304731314835822280557786152117570703126525316967239964296131467509191909531584664483276699869252072545156954846642249467350299343801226439883375168488179967674165932778303321425035546276196251784915199014062389400643425800550657812799366834277022260138210557392738882612326086385539389332058583711458229433379948799157743427688732069247309538545795109515369102525480414682261471319194648362284130855340524489946847832000253075944865939089851346668928160670018441823804677067535939545988862203520606724282513861395099205033605408879434288780222682556032919697689687646738211473361055784142635142822418646722913876646804585680285169348669949493914436422187816609119910528770652411966516119547862987283419144516710984835245724973215034335009455699746877259792992335648500058281567515355738133804981487633279376182730249708374311376812363884632786692996838351501296448032083932101634060098681865974094038462827107594599451760499569797780950172892878744461747650737705734196813978143449155667383353317198689355480164582030086131813535469972477606566836882998665289931045501132294427903684220920133219251738231471079303607299648756677144048284601232557026326538027602398912551251078422010056511370553614277237528348535385644482731825100530630015735363393719957766397855194826264949381662859019050859896505551549641226953017007725111444427523722937450215429471128700446910601326008518877784375155992317302049943220566706684687588801062268339495348383959113938182088432985257478677486107962674201362637430158402932083395413073421869480660119348106814396487215749458119521044876372878214516408135726281004453904689075729928710275689181921205115634150148067199403556180080419498841166808004149295893043244547802876517646313699873727289478148072397600418180016317249270682389035522376767107272030456571747324731839262255052868893955558079059827804103297502687401106315274891963487502818984650937148028047034477134735302976065309346708519233752829697362391561924804095772661052726212357349049536503359654522181263069309892065331127974830088488546479471731023712345523753068460480074925908930959828866752213431405873475999658718871454054680011709866380982160209074612395087280059469490688384515014907331639773335608763240903910647783587722600275079290648441482725736469734514539640381478935507490227593125855779979974434657823446332600929134703915307867532723372979484839314190946221173930330331561022152808743805555557924257307235382148480901940024568325644057999184169233666559497659137582205002295851902076440822477274743633410703128910056546054118670336408464009937437684828292340562012650036830959076357500067045031601688450733753406268037671108673524171050098001445661014304710450352872052855518242838289462090901072781570030163507187416341920611454912224786498894386063640802172022524064779695452879509172824753721090038203140808898021342599405088364011949589802797392773199026281382525477895757376531010531248106989354724773378192810090082364949569339952678973860216409438803760585399425883670399729478952861539872032031100963645279845605712909417531746736554418061265837873649244247508326731294419650708931128179649005461315480922662614020459501046987108833446077670430529728147854495167570499837459692619370495797442455832329882678507126029024454542064347946019781826844176242006397207851487886093395883627949456060239246374392880613714063551307141484489390012431954954642908744258080727276943589577501801570225731962276594539132348987559230682931459735333741518726894306292022498115124719876707273030272200841203615012927697244183928059682477917442217551050761124105960527775766161447877694798001222111919946186591380946561491982948531688414868316398821500166127209127056961144579125958684299124430829159092221132391419706088955410787365191564345928061748247614006116498060719008028084888003687645083023228785930626275438773818857038140883355650880001282435614597908088879586315678204063283066566662578606203472012485561720799173095499856860814017132026827484755590877001742833837385654651769414894022700005031054643898216788166163134297233900071016677037090393726851993885669990331310191683177662706275464123134306781084228355148832671532780316314581464068534215655093500772425736964944174703280437952960973807511034482963875147840041326221387327139741388277182681436589472659541587234075559191159408979360699602943518341869005632404991800334803627240875500709466881627324357836531373660156360353052739876780947606368096652829407503205062396756749754799642898967396871984820175482395569782474082066415142524787235120026360102460593864873160962644570221232618430618402846068713577843742214196141407022803652842784552117182396969451415294656009881657312027158629775673724789721212599554381588699131906747578625500844812910021301992228572051272042720736684370657189180670248809749904853285957871841105958434006106101829487550572818990346414035312685218788514898399778662622679454788257197002380973381264194179338941775653900682942876649424746181344557384337320862122046895575830861670007724170396247933101925878076684111590165672999436760372002621830357679604280928324304273695675543870979202311122963008116301704948517378290377560441250493778356923402773437824503899861757827956452372509028224422496520047058119656853977636237750587047191919571576194807355494785979532920931047686733912220187958833533187300678391550679983987909789687699068176409119279952489965912193294067278532255154410498809982132674630566352772004381596033610774587599750210203096691281363287017623962003307193549535279492617555823854442217763443624773932882689243194891143667910274715072376335276952329390171545635941031325877752554136005805617257633668725744117733166191055369917184458115992870307539242140448398181446287450102746596295985457711330127694985700675884121963014535141492368470318206116016395567567849066138302017984304878542972872321753541268076022452747186259664646386721455794995121605934254015276734108938750235698374981290230477395958968139029808874395160099287384456267115140787005412956829931660001833626207402915075347484995722201410968600282966658566862587178151264937751578880300401171207518936866906821858704125598609486767796233308831905673003961281389273632929419402828799039063756344722699949463585378264937727025710452939660343441115304257484444931798080453329879793332053732909713811648361595345127481256983470525913192995508816160414156890731962322802061510404964001929580954632990663411220170529610230894680441503778408986933197734413794909029715127042656402634118121938334981126129197006333136720981613490302136966854174331282518146576141228487538799811011137459243348148737339721940724182260520578061309122954327224376617235349154990297763918987706442014979526450064282772930945570940795483578705302224190482009236020961678155949006230524742517159635752362271591319162362420641700616139038191460454195375389771357292217317677132299013680866253002234531583664975965853041983145335326140042566869064216706484676368159668107101700548826386244079534119015790032234811997274933580072064163985116494122075957245844838014661400521624061185297458605920947687808460037887407221955712179572641106012045165158869906917958220262261828829510008730361215011560121626367133979091858985790709708849936485233460751712046396874116634085649712948488304091459080325083118928268837576555885832768639962409225947472101968576037724497686604539618827198820239076727080982222301560293375396405554228667922938409954944799434419083307317451384594998419637750155570190149184269109471186219907447912032149945859373165811337356400707197184818626794797097986061153865951900895499908709576608367473287957134024615421824572665512575425610588015679379010400587070918096836304205517096376802113255008320559570139458591062551132185891832530566026065575674990430172786243469151870381107143651423258526484180332195594533441970174734654973911511115836677241797289951372117390418286085480129142433512803071782268509201539092264922424808263426404160005862644325674499826652973461888235274556581887880860179074990309360146105949577910890996409188639724749137343484496172522921762228365629752876605197211006392321328758690240315723236512270114623094729951111842999731076832408602771708638087009925961509579828993041052130419636205224614459203909537618236437158781890169125269137682645336131975499044633087605383186800760155231875797586016801132423741428127272518857557440515546386730050424499142363364576933881062922086419693561045395328940258065103756717477402151091458455897022806377569758626801937510443841979122519342998959251101511221965335540367796581316328581036763768592860207270547396576489721984790144884618047983644044436773575444853310587810263736863909305140958418444359745130494822981160511673266076779147903646267983593719902807225450549082996462243536653072719846271775805351610877002904991584946480436847908289331002727918557891252821687529754471075569389416281580274219991589066137654186926352160180623232801900600092805521201361294139232184904589398833148902348321926250622117090922995795595976913631021207006944767673524108314518280863992029637384212406300855474366839780009756304320446582969921637668714585753363922460517711138356841916054202899003361445173337486380194717572225011563875323596159126416855561991432565301019302776566723972152222217148786897461250608378273453224911119186396316986166660245933848132683352088357156426606789452173181499468677494095359097410196519863317681873719255113964174485229435404796825528205218819474115601814322967177614586852595021122283372330982618624548568290095601431172058334534506578148305459984712323740093099341059991014285219435957386660481315454567404787592626602653978953982013048864983990945645318995661415575849241818316542286000041236709442357901736936187323850067459934954892513110816035813585667935907995187490166697800777574249383535573196203433983091742668942539788682583956248020409124169828159809923885160458986362296136748118966867036020201155311698826068617438018935901886728593255599173491789767688402750776927929574332942210877611414091767407717635983200797586130056532147427766302217976746193129079040479342474091083804898942107626688108102713944942158089913274086141020510999711070217129939667717566133611061412599353708345629274521046051824416258734691463873853774178791210409698054637745433601414042297313758020171866929228014144768160178464497994717153587176721753876720328013842476601351334101983435256532592056298570526796578387867188764396575100332089788780102666615966034323292393827729789442957111802306979114364811955975629879117406699040396229936095818014772054924248383220150984619406476964719163715813806989337773632767849415257919761504419366955248867019666562455033975176391556941650973022221114948432265125322796615363222451226204320337284904421557296124671416182805109743707500636805904196552809458885210483363871796064044719880272143238249926701622872122620825341510021534712330860725553616440406974023661845709992794681429717435609784893986763930388321957775736430863563456753933417413688103454356404287201298667196755331730035798013169403845612779907103643240563244581142637236738090050907455682959152873633038384524552069342328495927562836255657842370586253228787905114356414305072509323864482005139573873749291583065991176087714925142166209202757162451834217794145490317756034607237621890940691106581444357252497011771492046760233992471405865403772896196697950952473923162620192865070606519102130015053027154772177809807179087631018030725878758364463685875279983939874837210280376723894646955329199941250124544547660109026613993542537065723739504755750737021044531792438390335616964846560706817321842285607470224112684824904720194954492610556192093892291635455077670273226969081170324120785174697734760019880708514620592170216606410568697833731496623811985782735116743752960128421752585699527490579879271287688742072776629539955244100152134919169306495748202148164090314307255400322402922452044234456666941434758088848309872291557362843647376814429968300012850281567832246506548507950904542462071448011299438056332766237774581659564509802929166717555983100746993323008080473833764940683121651861273931303406881766326907267315789603486791354457539630667369190442330751893535326511725724513525375123026716093796323038939199073854089214798848126995165022946281697045253188246338986551482293143700816325415626153708164070427855970328313175473599280108139670580714546309927879883032210712978618090110493517841775360648455500795218360765465413783756120013508903634062934431785872242205419144750250700119144709167433259747212220768395917493729163438236947105117131081798212209628041758053247094308981268527681486772017776580380065250286666547599515082953247652000939391705220747143405758370421273332049197128585662079814495921475415603695729129248536951038364653923021225115918509026709633467842356937983939725173467224127148394377991183361031280205505976422777463030862846949697295393911960957681913655282331629232379506067420978572777339829595560889470270941782818164756392873298675816033827673170466243794477663076953809731827149390184889793426466923282020978254401264460047282338660615476216695301384895402972752845212096097565750755452413408596809431599266088796871592999634531412390277686411684502876025320532387230526023429213433493666315897206698669802835762660219938417754891953165471422495210232124158536992374414590881894495060341342862061949575888529607665133525157403681214839017828953298113224334390854087829104929375048451336280817134310020803066863060223979983091733862263404719165983632918417170920469501730021424838508295395697716807040029083575306116032468320823668999517067449758625702380698969703791131053498586638228798842933392362628109369852473993175224284542025405486566478233210288486687782532764358894364512057967222821490471076184906086278587466287793927428602929083309103779474205228704510863088612524494882380600085315302283865451793668538698691427991957563763201409741501102487392889459716196797486594265376281342914105927373914899302546532629089748714945683390098897204742935668859130761304149004220561322556855810538962854318458432046847978152228624709253747307323138358053663283548518718078385824559786555446844220895420910904108810774146569046644745019555442262808629557102422123140271619145770810564162751482867367907206905476324046593255324732169897955216038949064463205946527628034150979721548661635189264289545597919245508012532114153640091166290528640751019537934467521607533579590823374941362071412972673196487943105668894486167596265871284312077944592604534829051475328598702317195965794329563871252415606334769758565366431721342194382510366168375476465675377312047139859099389673321810282547500377571414313084373095623507967184002481694272312452419286367540575170609494590151962339457718124837613211162463612693464907957041631423179160192304404019712957155816548906549860393799749865999585254396124512331086089649853140698712561704895895354419354016773340464494172111292719930913261019822572906978624063485420757169618991930473065530673054055200119988924220038293885866955351689608726069259722898604125200877703788955669364684009546791954077432543376314067422809470678968758178563937346072996557928250336653580185895130410853379993658680613776306166150037704651572562556093155798609018470593918804765568031340562304261796478096774397743391463651690616455004081304579667937350591348971077457587947366265375482712315971964121489346873691925051460183161790369141246855085081823157743722192011775493764134395085951999113989199646830656438528527622470895710626703448239478309282493825561101990314912099031830964129345265157258516008725441258842885249919539849828712781377979886562178716440553905875675663022592404525750561378964819759859396997093778923619162545878656267361542448350001785288841926495825424829597489037181408776215907320689605338295677903556311947199746738423744906749150122741355925998032428638336215138669668739836861664313956608986016089033130319688373263942826467685945153745722168686553580157002900221091890050289955691733039103814295237783669298923993065186609100030254686497431795840262262306462006785045451137080890686486785287913473869295847564392234780594833316306183281994243436887699459857502992975488439991513496264877575187279775258435602690596566854774376203778147457894082076962819970767683237942186913224129204352860472781140291963038680352143463103775948640971668126933909881874435862189829561965948285365050451273737065251879449536769173982770240073444581299443826831154815298884268314755943085761814244203974740717081246504658279436172938491592625116759897720727898455877085112996190467735233457882807954520055864347794333474049183039268806862834840234151385172434486003291509439455525694057988848951128156231285402896762372325574502757747921935423025234378341823002803990761002703862919922483542058346684230170396889351545371909816354197456663680501483557836965094746053226071087965754867088109864508068893519993332414223634560190086528670552444651008867614253492701391844988421159778131250342120699725981761267006420884774298773835836943178415673813472634508432636620727952347833580605763963001156687915093138500459977608695923574810325655795099651949223736309862935869782664639371149268816505818808424499265705453961715614810803187785837490631335424966915150798553735803639112846536427597151413007101850640959126770620366015582292957124058547052575941876551095853690613599381796689498574497878400670338481900169814307115539542219607336790146409415779504798155394659716537371429619163601072885948827467878883175485770327534200570392040530014085026741911182860629224716009523437885644321284015612799453707389832420695565728922644539605644315282360565819177919484760052049196485648122271293754957886510779882377820395970048204578907552065273594303488091446407196894073858818234181136725976200148851966459236634485895940931848580763790216067143403027446499141551281762325194975615123287993144887519041904171458981614302126944417736399575995312059308025142655526655876427603705665561203712856414509219225018794280607710772753568263495583373770307459595632130945537582594699069065814751035652472198134552364567341193661371237888805043832618151840997101180923617058434206451184257095880509418150594655742078616268377896069769721604703745908350822282679391515959094050230022575712978151205061588116253923201356937383528486360447806119656016357145311068366172986152485724277685412744423876208500768752666396991049423078794121752450021926595611713687690336859497451772857372547607528452502865938100070055892589028367095643665768805942287127454712328162454625268735084364509981690760326101682127384015123385086783105158173300122547505640747289574926530699226341005570453224537886933130766892793633558498902566750993332526662235359983270725854181703968451225226719009816581095864315223979006636859245419231166019924730828635186733516432293186414631358943903029612150250078646534690212722089541045270156152706160714624584926735320233795829029343890079850427804366783559806940034793602017318510236511926339472664002694924471334028987285802105779429006080746613260732412138374506108045947101982584225377147560710694704503711051584059643307657171012310219361410064051012652304823941652387538273782274702612263545683059793429496328214501069360263330490560278598225551437716418008139964902031402644498037531641488558947495479206969860972778277189110919230583957265462946602664739204839973524063900441868963116404264286518140781962907930902785312523761290846251419519927464985429163740358492612984127117147781814203031995750336728680974837450644784711726559710808765729154207249550927331762266506708270583534767365574550427233918310914856669767601276061926394808580413749650979222560936150069631725232338223997547890553683990930832114552278689627867503923542922008339464499817232018322638626108240266837053351462112534454529535524899768148748242904084131918352912418715327085962630719447022926218494604656856022814954909116711844740951241413831668813405171150068993064021815600699305462599728290143685815451223515326794159180028463827145367054854217168292420493642182077761891538388397730780150923734780873591005239310937232475155760361609631474995281447803638719616919898036902667020502747980859743813358698004286583801412352635824846463325443202178946091264880661759247272297311360429307414384479787072345766850966019870692614075359219459546273663788721246029763331057846417654994508168052416759736316501614418096604217825876950791334628525518042409574599796239647230897356730186976286481951028767032788778825116177203360044324262368225071270973479740811833040835075918942504142604331768436407026869899228121913719794025023396232017569335224118230653081436500358145584476290665531578324656487427922905387569429651224407063401503745491836661232872858624766040560701518339917467167247345505750992264768931117970085942767718188462831651871245812468285206363013579421987033062083730514576971215508732111119159845748846948767352357902261176762068096846085071256459301385185696407649886086088698674561493775815973753812658260790052026634069631597514759859422888867509722419998026812466467931060962526121106662928300797331677964789257721017486443429928565505897071149560683905520669276521492662980136371858212220873337254820106840542416232397095684637658915418879274728436600198726704681770201361202817626986039107264808866925950655241733031210887770295932788834602081400451411459392107917145479913070246653682723219500231360938002785980801371957006231800774722470865669951512693465970847985820660926389653508171213196910798355529332356631559754946115443302295489079518695749075622122336572344963753752758455275683762502090038312052850475134733830691107016738266734319497180885334684339778809516969683600858285693504843657095007077153684925128334157557662333871704036678434809716851373757398357535516439614351935073163812726089219362963956922844026773019932561367689187714358546594586119754858764128339157229863097225674894762573817243199702214037322436822067948018818404908068249290695560418476247060967156274217549466837895697074695660649446425454253771455186502345975865269020153612638270772210614314662614892605101352154168319294318631138338263350087976544715437643261870053517518765060075380413127495350373527143090250665895931733001124897694357793750338722370672869931825017272544218274469068061648984362731932716513395857596455824331369939258851278274482999968532742801533855779892639153844438270208311205989071312329123474834885435424069649598647664680637834381068280817991761029826245916685987028669808866930426858238196680018131916925897534687688086227416849737660783986767453308321326868850905565835795914709243915440331696855159065612217788806574066361817665074079270598443832861049957771410924199552692362352190231026066370625760101596196899292072554095949299981889093498884921874002697902453589108181937427174463471433320271006784972106023360474540456296836108696171113429003065921573527878400940402938958408931434460966843625083416274265873770079092688995183458924711676351596030475709716225416419684906265145172536825910244756634651520432909299380128738288414219870982485093335340025297254021456989039130757765498834235277512711886482687600062350149569275272251781446350190440584183506947257097365558727400750061692948748500501840875060333447999511551371878790043643223789666180142514800365884093150347351967305583697254298436600699022514060604024128185881142630051733000339132666390598365701954151654309114185219381563689631640615003599835748759131842459570639883663035132225365689812229573886785010107906792665596768163399314758552331341952778785139280683042453464855339679570267418908038650214348645847027766276998712512559960526793050326666089028038708855229048589950908432014265327107688392464087616641703610469533453955309911273690673908469774770693438041133799796140939064275652751482302319386968587092666647324543863008561696207895465664862246930663094379450101376198300962949949717424530207110742533250611846708076921972820992943052047287947415232607677193034982672537546816585856340005203415900357095297027179585602820755692466784799492340981325761983141630262624484925114481974699236257647441638173247742896110604456884158160565124316279434735611388114382878020397554421166648198892770166812340823524625377822926364735365398544829806252604168203682388640948996984314626247555137891146770567299306637806235177583311608630869233078744920220607996687735226744500857918167253615466382249428579494362620398622875755539694089425634018747033143501624964375250791511591234453003940283953167797700624959595273133745491046052665711652641618513108436380053659775235205065017063020876389492857214956698303381628442735711215473782080473818671078229075613971603764197659349118243736101615336830699963250353905224361274835710377479775519609327053462405660689031999055406793303492494441420179130107928287594823703605705708081697196959174140844391015709057553075767917786414897109503330636228292191407254300556638895330103660198788849693605853004955090025364500652096654034262736784336194483793455976393561702559433283127098338003740043767221703162504475489142703725817401742477429624893082247257519900354816027955193707728079470213749964136241115718726937346274951662525931395723774838660125333665538555359080262918721932683556271674217811702120207699962695303956695611781095718366363375960816559234520693726739834259202286700134579106460774837359705325234039410660858770028501165573352764292454126022115013106339040592489365827214530295349915626598168822376428046887560761752901178756455024401170862083836265336657736660514879443830036311545123217494205851189210539235402875920235873146703354413700356965696192602768707686355962541541739009980007664849168593635434992153926488610068910082802218363041397351932616399572450537903986408228064664407898638984501497336167410528112624910464246026208079670046081534729483430541942805816483968576729622185539161487151721501319839975916667800482876039783251381088311621157981239603353741513563928700801870848882718159300836738188601933429077432350909922694760789989539021974552884578456026845589451204532643409020939640643119707770744007223708495841288026021483313856690747189161439316705798969897508130045935192040934938571286050132882235033972873263832609182370477320560702902069240255573632189933833438692896901864487723974253212975390519292537526235857293477281698690197211008972459476460589749871516306620462287004281247888446154547138608103451980774007160495012062025714948473683817118199323758919555484693497022829187458564356576280131814396272092462423115810508726371909492777514539188232374894668701254832837537917702335527109855595643065596331828722802950852417847804769583023026294134428326910637152450476486219051713735323447490776932533073977507272843522248787984839817342903151766330441368353729252547357124433433263728794155487858450159433286101283644032083299204370271912404938480674230019408052548771892577191792715110610134240449281251160482649436676117129371800163175568063121946505784632568596621487840748393524763208810751324171859791273489997823533308682157364212237527861273194118279933536585306712895293422718106722065669564685690117771218406380678323335278934474563654279780029102046897589159986545738073284611167868674463558570923288807192123769837728740606013306257066142812706325274063787068761674382552161099595722186420620558123446639981136920094783300910081491710721144080711889889780457260402650537283315528045134749269681454408261379194940679699568620718501004772861378162296908054792482434221376630155686051612261198063589132068477775353090096746967010134767862684896532219674678868617627757076452162808233682407806011492247344356892947828129522354497354258316168951736090908352320339010592773574877466212858350361545877176094297394137283896775306810480871912834251174891560545061194629947023122460604993952073720970748905986177476873914234706686293935804640220866556391969087922648876381591850770203013166328293157658281762114094885929535132510769249404177102990748254403674667840393922708229904572221806518096656795106453673193170133113937184553763936337215053739483303131329910505388803672225021019375345296408482457494578118560709906072046268904172391215579567974914472219897462456068439941781176406049469033437585841321039581772252210780385978742056004315452180236483860772449791936628229670719033714599065174255807526407842089105183276756866412053926177578056761679518921258638314712165447149571352713890875910604213755215906548943157668790371029701691406816433528419420456970255121362509260362718402796613364930862408848797857120596504696060134906471615254411045346891130635619843585212146860239444557467270220420195777535147800787383440327071520885013584981260518495692832390374895719824248871735924320587184503270281507892241947728453974780000312885750254354453826544613669975642897237758212529510415747903749960986162555995694341119771185518291795891593338384405308416733694560261891843209897541981084676068878054841308028336418562795567548206076069598334214553022754633050638330510932584366605538411863098067256648982117775245887380989612473332252257149540648504043376481519436632702495364634240833052593304514385600876509398804133701809866917245647893719640173199198099754420734055702148016749417882397161651655375243706660340997052964991262028433960955194082883159670211779455234351936931440720193983273241673875158231557418179383219792730252069264568715498564474975700861111297333329970925414836326581553620031843408633944527567934172214316603966496344225444308987984583471503043562708271959883366770918373851666424010772337582177636512576239127404898295259153795102607026175762443203748414119886943201393139742628419870265841078542166653518453880585721859701232762996622280749966758168829310431647273275289046253138041641765201351494756919004766486274760434244587635985394616091548502159723551864686090991492331890572152021747995062897756649746883822209295625010362135209582490340461641781704086035898014313950941566443232133714813050566970947912113566815234993130047556321315848962577554502424734389278403967554647313159272382190446331231920596885672007673570520207334424479357392416352327201657711443079462221302242282977389014276280945258105719708206493131110297134480408390814570543087781738114068594348713492373400077065028695170000580170420218196360411406785016333122199473822947260200547637431335378471507770191393579898051512443564022647466914627350145185824644201461662948418922863428224144657200183178776001482546502906070501408797723294723005220845962844195047938110537470699945837263630430810989701025160962491531041207483211222533507320609285999304269210870098241231813177342049156987366955794415850861819619046183283188696647172933168992695256802677110287803406484101762432419197186750841647661456487437738602688402892265430687723292199788791399820098070693949185939526491993874753987313847322015482673314565544396554257975782874083050195729566455546502650964671059491556226917451790811690376161789907619158700867115270173728862861683449960046627685947199254676596641086556122696434978244300913549181903284105924588460733841753412800446021466769679801982715315441870081398596457902196902227092214614817616292593194202299792410796527452988925535993161795173322079388214275120538444924181634830535900341173397172957207965480150909291803534601768371459575338991792381870503827453479886650743918577876806376886535927994799183630625585875806169020908768628862767959211613577886931640925065272204487101153005896031375351236484686295955027105150314698725944444948070116252460425801987846594228392031070627932614796276201693697107382271282477572022588276282024419258691374606234682434376280377373426564008124599142321005603839429062757802958983142794122092915650179645083280767994267814426005711312767071195769799633980494146489979535567579824356671495700160017315933727982460870285048860340111507518871320321897583968496890759906577253575225713568500140177140887017689847948641715097661864628529579298566723051541151676705284270395660052355524123359262544428808270366987547816205133581170978918667833071849715498459630523707547069563406284382551534934130296909051131036804655760121593233725094119170796904971257758719934158836570359402502530336969028137195312966058878810915761255255100647153908562834806119638488008795802019815626280950300074982246840996080746642623706327680159849898961989117143323011674689615923861718075857358675142270166993969766289575996492202878340726991062842111566306018516485188931922338737912318181037663188391660812960593537971254303690712676770108334018103691462171913409684935892422136472400122885272629021626018364980972617248791868804546879729120558276892785606072537922556948160110565823657022966383091977842246350550120053423393891872346599727387121440348069983098170465207217504294496319793127724324482903627565475893513307101100354315936711240160179454635196485521098701441823232235484253031381967348182454499408650230623280309748459732620787947248359898136910776649999644011532373742002194353246808563502878235868442761706029179244074857151915270532818588465097617073417986528351142436350313032588913820299339278643042865123366234695396860840484189248138063457794262730796474236978060239571216571473942513049396628231389358987603678443704804046018724594199741224785780388735917717063590582297358078206432932364029147550430945323411816397754409648918121826853580638269709484595389047212987205115573831772089934378589530048485298195908616716572015347936651126869036624332668274761097470590013100944623071424587676742591483592090022569589122345137557671775804119723340027316152681712382537327610249969639918966257799543228994334495339306270312614456198537072515446778228801671394608148980065558918839153898477308955940631380892772375696922572309843422422669852936211585292736315490912852038180393012152142595179921442587013495158287810581162778425547410058857871409283280855417952422267063797371470495487353341174606602281393657220297959432232072263159588132544550823701763774543059556073471851628764931207291912889107577989707722352714627996483087638264229288190094883488153949329101007759663684111588295111083616249076224012259231265177376648116041688667836602471837053223952632193640380677756374700108257190970412591431867936409942304150230276625279862255710654797874116920129733059670409179821128935312945089051839678002079753901593203468689574467801900938793999322668723976380502758233632568431047996808816379843653655396133374073864273643629632627525446586033672480032899697328703664378754500915736557069504984026033375330814612866194716290784275582259978143683132090936556922216690587769831755628052724305138234097915350584052749529832457271519157675722618487688474896649429346576103233228324299927324226588975913290503633967351341125396029139712786135988095117689767565665445464733071696214216596325164733959146247821658556433634060121938333978014150487034656731777184078770921906621335069767561282370472511145021160934087132182090384471322608967738319239347999352490006937485437369773032917146130089763389306425485796145044738917102625937831132637008592737061479306059378848398840340495660373602738113472930496268262783100198959602482874704711358424996877142445440036756921396548779872556090741301601244708236705075156655543263357103637159252321208701289193700011205218099721181132075681994905674189577250350740921953989946635855150795509530396191910749608718739902354024527233551225836274459600867233341347555197990851617862355829358168090106474093648654581599264527571155601686260174879477586312497238133820797203844788101981956357992448849600162294186296292693379694318244482620603548105588947807213703805868332558938957107273850930620175873708837025139930791282685310905656988702525435169096626380458314298636770607097867233569690867793396054397293728649652207739837016361262133792505056929146579655383454141035725867894591219258694709654334583946006366064098579647605171699898621704418409681815477278114226688522039034503505532088063025585729030627608259715423869400811118271847995369997273037082670127202401867740150602354966624289025982096403369808175223256997769274014435398268679245510124337815808967399507676763072406239830204083938690800949484793203147691049158151095880449290078896661691092302995047259688733705352718643621702371691880105384626608286625889516628874433044388178305185327923698283314191823485466673820104863642108846411978473503748189083256196214362951385929645238956025149593329578810272046128543571784890904973972122652464885209015498530205506459949490745501361998779018372684143650171455562669937926211167410690258622131973114728657502940097941947353761407778231302344737269259698620133898039522849687526551742271946911366481325954600464061413914047242751573942513833846112173977948771858957811323273494987466919209686967105531762182176763384085462996017536683229962864089085261301301700782766372823921922696164874577275737477248042303980491568995329616208658710524703481263977040777864451644042257705374341971626649340310996903190266055917049596753234879442335053065297329351235711421388856182182253062964734263529259059882954508518165969710563680956681543636705295715332887991782154535856426097098661057680596188346520816172332791998602283475131406337978773523191419961591915256901198485124693559371200819142162607472939081907622207023558114320061954480250811344014495952918225570759483457767125966498240233940035005473087946550916181920615570774647128448601194671813112698864333323954218413656149470417070868383083123985458930872872128856743118130703225067830953521349109076190575999845028993126755880449708918957762726456427146905147216735741895311607551969664318359301733851010315392251548632081338358976020339932934300189142117244677612828435946149393028711002813640568784469055916833251931427543067487318455092928406291964436152359063784825065590030362865439190072320255326872222244611709899901212595805487513200563838176007199393459763503740147690755155116361701156485072338787312903992897743220003809097432904809136833361131880492277046803212220020737591418150500700321106973818541064534587176362315296837608991089527290147470304030341328263609941168341626506212553206986045612611079556489853207525757124661909618397368791077001722169212154882967406512011272610565599296538596237731908954604158504792550413580181504733535138151307479691129964255642545006764510939091817027814059447364986556547188309556642794824546359652675652120024574190249500357766006216418310377609695507217870085727524494145741367847018923466686783971694161919629035898631193243716417644474646499120914866988943739389953553280273760989839813020599871873971242201339261520699074396258226130642888946536700912441629823923132894703858644431948446194663288521514240932615621780658625821747598048210155995803332118815918388129241345078210999076400460605221312816986080837946037300081938500955691022352433571602184322860200290799624022774058703940338731942575578235605851475607173219203690075184726361844452222242692240594954177499191838958329252817489799122349484526916562401747043229471132276991488096073852594248297706127447175785699213082685500955896558809601591165426144480283618514189817261930703573457980461304317235947614473516711158151123571167505625553249941498315400374947077340777677150591891290523346022258391608623506059246207472664098874578156799047914201878607557804392711187236513847183734624155081646527779154450592709087935820552187272499213574902144100917119473735675257450111547304262784375032639189407732159399334263960141995687103715740998213400641992307162935353940874136831513526021773203084019413396274479716441893478176893456876749607595407690216677433695874625807384978199144745552716178563956774827492056496412136096312466116172202635978882337762223824196922248563856661175994497550076244217845117520917780590420835245677781141987065731135720889380655618835529161374585419970716347726626240692046272647837359448899243073998218444566061114215497037473587953499850700485424228929206244005385717777464366121765649809074072943370422957202238102425042761552074527962495019662547056275474349374323599214161606274985056172937500985496898403580225616580735730239617440185984449121395438267406142597593212340113120868747102289395197878721319585451991423856173504547397072520063147903143329117815292292207088549158392503582269426875508238446325419599748606753631082255947447393267921220499259089498487564264922285444994828243126914005539436564098889120152524594122037910646788172953603466860856247341910262990625784812004611905948419804505612311820805211286185566983740309669081434186731114623167704820516704036362579758503089490072526726903562430337860916015100726224065520789175432244610911497634495785295547456920248737556255950998117921941609429606658111240821432361475133990360410736371278921853970019179054155665886654137380514325768501669409452741974993872950498355592234342853942880100838812240632110690887615826962420332647202003103366126587445241388683405869539307117580440311694468834853589222936026725931978409969367806596068297544722789095692723984661293225927292602554337467795794513542536440790548910470500456471591223669054883897280091102128490783054358847321389079559754589487682772719383981516407283200797979832091435647585392087618679935104618529863219148544011032089428042713868252947948168222373319928498610490083151705967922119502540571080210464639902423815429570257738744152606491752681911420822271825835422073028715031828478716585358393677266191024517699279895124547407146718461809479580391677161799989507183900937674101401110334448872397420265168995556128032473359778365113525041577553676457163157252274160458579940126726519134312694018445069282308262357713615565842645466286900511760767669434446988294080709550868107618398662123842456002256502287437412229821320964189313508964604812628100000212348940263219410974348283909998656382386037408032617187028638392810534370125923258301046883456952831120403098418201137868423965613331308807662730736226058714313710768362073853911536472725947601564810812859339496697835285824258418831136705170618613044765510258625020128377490948123812093995985312469002038380735115717444630228526332121253021677790571449579103897272839496312333861082565748828966564669786709587308418900221381220229327082832896759582063513144188001028429037318799421509034077475928257666852594101488696861660529826635301017593682682453380477120173038055937041020758205860371079848736722367627752500390279964882114303064307346708672597781467668167953679585445175792488799772907228079553023188324812929612906158718139597866922653538909479221854147914576438324928222289282576250177884483480839932823332942249912760986948244398563404733099909879537694318756700906616383343753642953007502045848982339876452946751430372701129824740517533855718449293839348485856094598834406413262363400423402839103509732257447274142763138420122451477265669742385938946357785671544025705621557587366674772685878352497863687053181585559949196690856636531906872446545668174282850155209702121036441082070572426358433689279505408142605974323657548103654116621824637267833184450403911472982731842204592335375555301081654248071393692658961724495891364603769115161511852564028683286435052604912276289363785702156541882172267765241282858668070581567964697719130492822938601185626149446993304919499817803510770954514979409453855341994269820739843526544328897320167514862658913460230407853981413303204439547407106611780312943954897949716660378721516817360370903181608049889383328992434918233583905849878564738186786323569761554784248930739620287343372769990472027514421282054618045840613617695032144817420769304791689980832366199007405799795239160660838903809288242548536147980061741621892895283786412575293210799511391587113400541784594861522735907381585894148798465437968843692657529771740836726395777509288792769666847094835188252103717407979821572242098850491174724021100188493413470010757661597953356006836817002530783897944214562806322528715513537657022008453234685979715512457272078198656684101074041260341305197533929127315312552745812423332920812104047922844813245799478967604768639222876779460562050665879732322490164017124493621991810105988578351639495802668308430124290548784870199543960127691306663682929870641380749544139013119174809117182383257867632615753137146374596857877302817189151556768711879769966925561456798512126614429729340617537466372518399551265973711808718868348015129119427824110959974415127788351353933250673184645301709582099866123701180556723767014145688776248473896355831931987804249940003622347765203753759616764543866947668797350567018045421878214182482253092194672049665538894333374918522914595248162487332942139727402472088940935449667727022266901441001992884147262347095215092320758210142797839689128105070810592904841517167151109816694261784667323101781712308628139768926412919895051097624760334680736660076952882624583886598928027619142795577455145180049508471038344244446123245094432899424923166260311693710484777620479717327807406128868565933977714992862171370059731967338823860421118241571351645874443565695450293699544787898223850008670379450094287723614555618495899304482894970295453019398650326271806570161021852608238305086782663555696941616856158949957042260042152044660150679666797619456025881945168122956182934224534576590549005687553158587869039958819938202933200646569342427143384576961609860564541882790298567622707506402981635189590500008355473653221736643973207346063065483126928266679498724345936571181101136059046791157462318731119291193676418598511688424404842444037199594868613406599165077068797623681386988446596892402708018891595773952191763203768888042136986795908235378872169882832251552440605865099244336928386123615965562569398020441265450250959399683263869289809224841013402682330950487887996822460434411901023419005633434877925161938272617951745475902696628982642069740728941669210375679915302457270118097072568577968531398580044174307201078981154595827307446383260771061194382247039198958102217906821124523760177571818991425068445195387737492597659586375336728079551760209829946764412131942316058362165654559388346490492418500124511140895724948309276528759220430013622701481278595197365911566074035223239411945734596375942246581007083190643112210165477490188795600988316413416173572797535135710033870318511891221718690987890099521520904763188916188632188637600526961732700878459390194717257840583528920536284039555535898608946245198365855527201226051334731192312841098683376665943605116474701539130438894482483135265765610030771363982318759834664867501247715343060043257163936067885934157974772201657700488323489534973697345970018908616661647243893208595424574074275511222346832527393601383081499181519915770390570297589781067174525062326982196749782582801504755213220327912959391581654485527655452212679768186776891338111402666847688196936916887978506082016283930776982644831858555054196394913608913975384399916573704878732790284585403758812253278336264257726991412164208076222311668442893648128252764322654845765700290537827994518984883460604549664266205635002505199160428766780327140522523127487298915699661656084049109406346227225256478309964779581746253396501734323086249114720993335544393474688748150243448083288644400700486026765858410662302406630490527968831843994108094976965351763357493975341436138240759359532224121126963940943440756692430519678922255123571946830610016506061417367941400722203718097016630958953534679281351258687408756166254201835821727722476028382783430134941991117483273422347460376175223556699584446208704792876060378234871709485654178276883070818236088066411976090654557491113750468273154715438841427649431100467324448707631017795057120276365233666298742585485114422319084311857241654526584418585011404096922578789711410276230390857187685875173311320925567029683193381398770722655551389758999527934640640842076502562383794286216343264374685104199970072634100865687077757363828913250585243958897995136662033513973204629477984735954412656020522899191277818158487927283602657850295034229265115719084974118023943001231049612140112069715860684033303818224349029736190659105910649267615520821453120808948483130138151051366220118123231079581104029204188487347921512655162853984297025533968411141000682972414763446183890858792175170640296955542184691331594196176382332188403410093578862114449275979208340157046111142902892606807620586452233276014498628634981523451764969722950445623646393921245045733729397316434473420833560969725797237331145544247203328921466924256111924848359809734930421485110732292940503884270937787384708228666021308435867101270212506211241011543700931226617369295571174538544588384717124859674341814812685005149263142243469535729982381888015690128764201197129260897766813104928667449802874966515060772479217302378035060312161971914925916800056175940558179558687670200085595941295927068569869438510496903983669634896134031945777857802484483592399569849521473559580365734175988512021748205579236812930698100453697661431827388018826919031030784449053666007007807742112108206997731877179378418232604399394266553593572066710210563319939801292602113789316235692395866488505810391915925520060032506902358430533684425442191582656047111460867307224567354218804417276509438580303354759030512961130516638795707645724105445530691894007987524461418415612466905670369352441925924040601724243615173513363101727641984743054780087756109436542513277366809371350149514173911453382996014630846303045163954983724414223881402334273972474399897502777826699633183398475226193485249511856235251062867894337067418291280694886413184207025055105247706602080748107196815512044915630319129158415945429854401409628033049881359002969090778657554677079218058696452902075510085155527514902585366173494115293689397888573006373644710368656533362049884811644728006143078670831015821767794525366419014148838689267778784310287165565967359184780589961711389509166749883423686546388752424176567113447794844671799024454470814272804676392626971876934958965276061301468927575522417614372604334831921437579990831412321483256716660583038176696744208837287872515917313085198596113155406047859803193184189956094313152613513924248183026820752101961088612621553451417176274891452358384543920632989292154794146406086877864815529543320288059199358974616977152499434676101579719980281928131188687883524697115797478129620488526404102161455655741683166026752459612556556177217900234154772901827731873732460734521841832487934897726466302149817489420702279951839110027872136205062794412072250781104928273822570824674952487127730220032835996502705217873777042059305365004499213824469782771685499167469140083931252855856248178429833788868233520101814134589444002190576454411891607476899473160614777819640482543251482505606547491745207761920478185524541467422982227731026314722745814979401398253992831067480916399775372058957513952344868118926872214783272235357697276394914250454573673418675825538300706013354179481341985127349058832168421906927442756706873358002579266120158363444922877314752696476112418246851928591729099810676183900059307209136688527574059729023958578950372273698882925343662887978461855710114946140327600489174424945769177088398557044579239587966177319653198015433952338368785046671599253865280297488562536618471341830540247271256750084941502495518871164983183077291672963326873846426029611365177743951479747272773150098903568447097692658562824518658806387362567120464966001694794260303586459526551052079637525493111533976487019717814540991344355997798033806961238177417697077858961274685592746618142712294343276045725808342878766937748851210992313736954514662218350059354058508697397158773416863499614016754859928520168974225454980397502402193748593696762131949715911701540055310418268611186801958500197885125430226715923284047283278632161462376774793107581675033324473426095061281555303750732846164062328589012934197134844258374052230659617875086663303323253047989504037245858966862849951508635953904437907472816825873518081018587616745883206141355603464910652238854954570296758523560234022669075797504769373112499537860963713342693221875767201047525651248048159203329160761560626085518849331081312167963382868939073333350830731979586633070433500262925059036041718330528787081978237332173906726935898219261179095450037585982334450897676019930302069393409540334857244556970691843016197101978997545147122054349632034829236418014010695345849002727341512440738123019002013668208336003762916084953424406538123308322929730476143966621148940980561542156411711743463148409210577226309352093848308425304512811558921321759881079733228482285199997375545044642934568445255949383967370886305883776740121176961304137386057230476362480694530828027048801512010370676752483215902512082777255108812430335544341758396357525811081673780775918782470930626166538298280561269670447651184879497291469172419213620656649558471993859678141244652462160065222348880299014940050161949874819183397537302148754540954920002293874707227393346403385260112918943985126554665887199203822195272190751370819892317922656161923674751943169439514077724116831409747833900558261621152418254051789753276247966276537326991792537348572850987135946355864445532959687713838263270870157968641644377094903626517557465656194162344916055413839292632571889784364518254594119772377144140173972960213738833728699669643957715697196684925143285411071466168681689882351271744212158069920565775426325514908692987123909558426145639758474539249704232786223475279945553505468585100183711831733592192338321952015056057919383335391663700581248568463465311216613954084937470491208484998212465202815468186880614075264083391888065082863002877591178183425326608916318434556139748721578583899768637308314568837171449421271202937219549341755561035819623569711332989709493684853831007144671913254488681792391339740917634102719719642736890558658351573825815576665787462400203262358119945109300501545079352730165109564394600564783659006826207837704414211458455165732947267414757579101786421675211716475714168554769569600461960714882519227628837689506847196090804714999457523166055280833918818055471721446401968973334836754450908745418804761622408955247518242297843232901573462715196898469420230453302601171968304465046905590828708415609399178025368527349576690395725139837254554203546310341282636473146119897782867275570910018028939606939949260993725503195307163925554209871892526434622068886570786064188094085374929456069383143397737758010014470029917677257687066519880484897527443527070745463500517979958811482614908212081747567000912354184405606464209311698785020521204822438826368683819388099171254981646571040658624406376137328637129977258572085291624329697435026794321224280128323267427454957841345430068736219492036439385497965784029169659070630020585088234436072999987174757898396956477608482794336521924982231833368493531338983501120849129873147295971387460699933996952473670178305624320380339097803540234993055259156795408529780408116757266714960406621419601676798831312262265595159718410270834685047086507956156787173650878163775659394174557929911540398491603916438201564149679625357905183093873280766068494836927281960035244932436405865314263978939115665897980498979145752432614222145564965832029240611886256336128517208913196916050761215636292254059204804412449435841898167038165519813116927983377721704235239058036102603486532781036321356632277751378482288150841516015480542258892550079818307057349619885121953534510075968893960653396232119875211427866850078410471599620102970172450285252353908508551308923297121987136392469399865123154628015948641215552482441895420624979509338561606993484786212886187007075802361690346495503533531656432390845473931842868325438786345878018548213478398724973728423944956427068385433283489057691318303542507587879688023017534002439509348279442189883580889874981193044496097688127418470336651089737616599670392707108339706277299540861521891305829629333591164402154418164537498679652313389676266197287762485111523726003518854131931507851564016881659264932415045624594286250934398160575172705821316860755390279942283450646926086326736001040182686100641757519180626678208252945670611834688526972152305456897052601033103850694692949659474549886287131740309473134865675606959521909516801549269638905058789337393157624848526463227902849972332454321485470225913969339710609154953297880942000391960519924572983947547765233943458105855257150480259984353214254459691099060299166199454627981776080169035907870019864467129813129638253950460708723127560698026863108920430342182444317412690160562712274970313280106239093516117798106410195458889873416623710125002065699232511078297471823447449333527647609762591282699695565875896422287248240754621959201640168689514772912236245325933247829497171027375829129770551820694668120168189301738529619644440448444712639427658905979582349912553972410146720235303208788342350757811556397689843996343947169147688400036924474945967772576494032510417759555793472829174506503032056794988356271587044866475852589209794843174469906802771265936977883057725110225279546506259877209471385488354813946598040690748528465303130147668774339361583953336430978985251228945666557733592591963723854621844003721384816024450003921762800390307538510454836216570900399807209557596631763490358542914292984227872280467993382801850202309507261934739525416520338905403061145863550808964836236735771950590085609573054600546818347030260571608931773518904833002747426167662318863203281064435838754881827801571065674971068190296565486226722275646002413324935320791429933394605036828218791683641338983117366148403033402577690950119718012512195803391184789018889902516460496161307624452780653553547131284662491032004744226730517662405888773712976658361512755679187437713752417954031924499966876301212199161985382479796129468063895290231958758267917334855505516548656223032900952611298799186713250332764444632454892712480976069546800206566159913043077144330389648865182403283618318359115627535289576462768366838454454155288516385616738949706297101282479186079741227324083384918904603716254796113605831245606480577245704709635042875671544494796605217862686756076390415051686410507412394887839295852566415996022238557384036863949023771239703461867617936998230892036007603277861975515438557922419022506658626392636695998639098873240663419515225149884503391693921911353911485799109006282919436479835893035585205067580138877621954288490967589501707453261141015284666977415094656495304064766165895416403962796533072000960336700918910110390840231758609713419082124133026428149782229243737212608510483682414591110936094483839491508983723129979490936868830428437729629457978111502986308342006698320160475496028679932736066727742407874454654531839617933531519316997649769411057462908695948241543773539038419844648995982130205423807672302565983584070789896189184931519544008647880000333539715310173009609191979662919987639626841529961856129110201029541648966578432335677864510829679254363883068524512529001129809193408162253647194918163606655397107361448218981837199421953268226351233539826543728352217773150404321397658675603392553799014925975123101681721710506046287819340406545877065645651251713615551776307300576890732010626112569738199294361213882783209507011340937261298525505525465432285969261380035140992556198194670093766479447056784208536677058660271205152386356718763318311129442898094048072955565148550347185578468740837821106378492742624674825444748185291717134417310906268826962117643256348366079375517893435817262628337293871627462585032571976518775479066071069935693460557712663609209591741047282951940522793306271649341207723175380493142663727221666378173407745867622846298112311779748745518524634029760545900052450525210602385276733744450697445485166860069975648716617327577698502917277989578255774293899337340695763145916024924152085479721293737514136061766615239508401899870612444411778189575366538876314368888767749265163452624638170793296741971437066193201820688411954329042854483187651465852594223707401455183107369280989524657346478003673593008900879629104254956413878617800824682924874240892501122851674362965712070662281766332852888843732355668007221319522154265759992967856286214089473234268417608095180996735529492803746993414008683798153981737032153795288392116905194046838108897898824020982743845171105039618646506282344372890660957851114565992363556810115639455265552197797981014667109955015576613532232168633139007336719439900732603701669424881481972491489402174663855947315428961931068759447083890578475095116261863888077135282287241541593808489618197169126862300014411815763602581171716337418370759328784505406464934931144225661737761461736063357568789348007980965218818956914852244434145378760315805308907975520308790269914812559214717246843588539042888020407682624644222864601078549123666698385750902285195736657210650498285360752591601589064144756861952236735234873852126931260060647757226888508555749664292975731734416644361838738984263223811449712417252270146962898411578299630790132723051489801210834632185803186169101482931358240966902722232759541423482557573029082204845321444252095775611106653898246694606798420341454112556346232759417142713807576777523005475217479827742870547342848136091145254335964133733171040657772410095854958782888798993341121935588299072116251301654755452070191677481318486003287279561695012867348952661978073625637258274080157344652056895990844347910332438848813754226409268762003979891859545230441999556416069015947180242684674176888867414572680777055196768848123009599977340040794561714709993782431235728342292260514881164161632486727236222769398920843683741674445943384949192746166428569559629024410907749938749552353054990676800751499078601802022436785040006936157047997939942456236348674394922860275303165131727623952466302029802206227568619015720379453091818628165316057859012174971088697063234324736944220484819504148006715715548362001910509203758425495226088066184388926418457192961708739633108487255888699260932977282091361803165988671529456784174740157543627436374391424759980872611600934463235952172830200282973377602669822667772650033970104969933786328673834131447627253523408660198363039207304081260227769811862997810485448850152691678431803638702532399684354678971093116836977592864559918996690668695842165463479082367368329468406523813277174937061497721256792919548110899290792898353670346894463801535779702602407757919818258423144179470311775610069556510274786516867487581533039489633928923135053445704495203450981174272923666957225503324404330502870470579396360820801678198613873583696067902592390146320381842375081854617093930365455053933342843322078786679759865961281567539347782411306810962989526203109699394962435191791572355449372025840569639237080659943850999749580862642808129373435442061130255191566545792532205242671808772251250256902253549233473031472758074609734512325113519565808521126941869378201278711052898708509469119292071835553161422740829017713969634044061489941701072923897911976533138598551795657266268605692072556380046176384125557361771133939089572011722858815317750694831457422639692808366952706649551584758567026612351184063026404969401096242286712015907704365900029645310278144399697573078793263550140830212359151654877816056141502392002564852719246061261568985516848039030053219046424367096892842180515348806481689268454125012949305866342006189374312041845820096018424843473505925621068395797204097817403083992768511890782906928714101483573534608828243717306795772837761433679230117041236201516783159461759636150903518805203033237222715514763750788932625225345755673673987290715627450911969727994491144873764151040796170197449499132107128046845616870312845496006268991478673840410939618348954316169065502333780712463411579545482100833519670977800689016572983789584581842341145647859707696612238050637975119146315476062703279556057383232663351512556129266016503102308435541088689418748238968128795722378180969539028207118304057426751743295596854731618995092939345937550467769947225888559605619415435179800708692809804959075150048105396518852995948882927842953319726063439997174460144981421301610580719141275691726863005017348398684692558869126968480361017379192531172552217184383281837361329911086287198996409664612476963204001541763129832978565507981415286876286303680547815120774548382683774087217292404572115500162414986730875823738231851847524677178135288534633400206883856829395531581461704631437705673279799777119543640969704164164979316159285236576184691698440110654199500991860716327249842579789136659850312286955858171585895629799404162029700353330672283520834743828600114100106554434064044399116375861337024175551105417308264095490888800107517885933113298152263110483924455482703173613593702037337091374887179272767150545390213436853216861768713826134280149205368184067611166660709680251589167274933020140024779680741205482507332026560295006000601009712624016194480047810086879889375783981882402394873927166202773062932577488704968407212366959758840697484763639864885298858400557603100057741403122694280163565776822609962979588469991699769094283700089952346955240108744819428964939718580262078845929805238159604106466974948798819284066184575616651307971440754718235304449360886915690206954736582804084533238547768791113220742550589799233476229992853277804398709038681699447797203570602365576136666082949018454132165315661614465661137528077260202778264554682851469969876957380313258002081269633958551294327274093693074223412903123706252935384414154175204704244845869637316715956211225738070214599872037216607064284165752294332798098666220882906099201039114490666614868143070735494304653169575145818299755995535936196451671788463820868173955463648507467210485055188275922145925838960909344675816848777691979541401841843643792909465213444462917959074956937100139283544189838875746236257994199497574797408456212520514167087489504912119769579757899178762483219014228398481482181557416128150920214640955071778116301680249762266730239529681395729996381519166804104463633761738486167463745927125677018975845917350640046050445534352364718880702631145217684936677991297175897242344666851653956510462016870124355060481642458320068747090857116440184147475784068611244513201372837814509679348583004729958247267983427301044482320435875598831656716019556583508070958538340913132458642383574314518492326294184715039025555055374640212091704477321377591941599015778278347689638966953637630442279192558264756667787710221981632402862599666978959578405790757821284299604498523966080873361499296338205508801443831613212655918117804917250698351424779669969548472414737951111086113901236357908430185765771866239874304895020038112394448888640514187918795275666312398361783603615582931404490399508097656586168496508004930622692914943707212773585723778641863708091221909889650048752304792557713453303643871435268364311727829478800493375021456341572501323540243974169127172548053563360718678116863456466437888325041694814447655906963899280145441739361197258249810021440194898544731040032890871695993946451632546520751357264642403791669589610606972342547193575205712629088788363795563858399417556957893880388360894316367265924831574153927002755796669625068664544055348699835142061462349959932267733427977986050850631958777533736073741126325558646579983908685339628019393985806263505651567757551285286244776837636805084294408108324221219023848563980342885960661528379714914301026776374284913287633841715168987071259955084920907285971597080365601891858317694810384150160338723760982722680962311429285453158677344733527115733774722360201086420357740705341379344694400705010707177617707030063647800734720994927999014237542055674975067127543014525991715692959478704474574561521217641249665062712869356393427588162832890600879638806538766910426494826357129517204272407531937238213971581954138007871349875591735654139280620475418598215503117870862816430843325446286301056483020755275405324461052097048210254976479519469195707428533925736082977967618889582386604438695147603128232326464826946268784766008327956012739177193023866101324248183057206680472155058033085824430169068776004865639647311182349354545801890664766242422850282023517891408589133407989582851892976742778044353132319213660669011548280572357342171075177350882197864061067550684631178419749033529732548810477545426332822103988245034071187978817821614184099255609314569932112615631847326948057784041666638847690526907457951469777392786947053816833223580090709911908498635192232204662718889493619257652855283037896542085071941814568428561242997145029459902673853365147174456910524428328479377033359778067467145383525014914824808084999911313387111679406569527923222743158790076922517319629993588710633493005450056819684843413129385648814087307980536900502309375456717596453716737549317647305062440515041836311898520339616067023228780195890007606179787342164709799263093395568385313577581987621042106475519435842389050244428110035394214492252742875813955776291655945008861467414136122929554821694127114960129400515534397797802740447961960272672593591579973268133630129561848886896435012757870056793120391329307685946105571538893926364125828960204078210981026577007324574880814336823527332681369282551348274714386817414374103693839479142179445622481750234274598084919609825883719041912232015186942868596822892784125431304432046179787853697486485424708634356423860360816363560399872797669764225627366392614737719496826747231310206987103452011907394541525813028664588943552024893600489892307348502531018795808049637024224503758074599391046535541288193017624316298287794905010430816524749781672254251897266349876842314198714916483262278304677573796276478312651505918819994866292586260115508129335406528092360546020998579936938880335170093270751123839587526553780846143736803771566099489753757443350982369495421030136996848074957909046259225663056832969290865128424874310865067376203556713444830110893841607740944894279750629526575882500713077470605126570984732044350112417216356239167464778607487823790023229423321280252962293369962619515271949916816228444442519467916712592624618205602291773533039946247358183941059876511022743333849068985833580943632798942078051297503468373623299511735026663441429764964526241028002815698609754609172072262697321558596144727323605045526099837612129130180277833937821169154458100792429612894834609309051274385804569980485204081454585090634753613321328984193620623533064171072642809444517211181385971650526187084088198971284026257688435942872585826939439962563718345368873700256214035264008086893169832815834233430053424331705515125583450771206178548875365283717796359109614166299170645527082422361997446086164662723677959068153089313535583498479989252577438407479547910424977128062494043641269969851093225843897727344111038804858186741875392644561672404545954587049938146090786987139772142821687228985642008739886746260186580738476848923483546992292087086433397876039 -1006575 536881971 -1006604